/** Shopify CDN: Minification failed

Line 4225:1 Unexpected "/"
Line 4314:1 Unexpected "/"
Line 4556:0 Unexpected "("
Line 4557:2 Comments in CSS use "/* ... */" instead of "//"
Line 4607:4 Comments in CSS use "/* ... */" instead of "//"
Line 4610:4 Comments in CSS use "/* ... */" instead of "//"
Line 4611:4 Comments in CSS use "/* ... */" instead of "//"
Line 4614:4 Comments in CSS use "/* ... */" instead of "//"
Line 4631:2 Comments in CSS use "/* ... */" instead of "//"
Line 4635:2 Comments in CSS use "/* ... */" instead of "//"
... and 39 more hidden warnings

**/
@charset "UTF-8";
/*!
------------------------------------------------------------------
Author: Fuel Themes
Author URI: https://fuelthemes.net
------------------------------------------------------------------
*/


a, #wrapper .click-capture, .side-panel, .back-to-top, .back-to-top path, .header:after, .header.transparent--true:before, .header .logolink .logoimg, .thb-secondary-area-item.thb-secondary-myaccount span:after, .thb-secondary-area-item svg path, .thb-secondary-area .thb-item-count, .mobile-toggle span, .thb-full-menu a:after, .thb-full-menu li.menu-item-has-children > a svg path, .thb-full-menu .sub-menu, .thb-localization-forms.inside-header .select-arrow svg path, .shopify-payment-button__more-options:after,
.spr-summary-actions-newreview:after,
.text-button:after, .button:before,
input[type="submit"]:before, .button span,
input[type="submit"] span, input[type="text"],
input[type="password"],
input[type="date"],
input[type="datetime"],
input[type="email"],
input[type="number"],
input[type="search"],
input[type="tel"],
input[type="time"],
input[type="url"],
textarea,
select, input[type="checkbox"],
input[type="radio"], .field label, .custom-checkbox[type="checkbox"], .custom-checkbox[type="checkbox"]:after, .quantity .minus svg,
.quantity .plus svg, .cart-drawer .free-shipping--percentage, .cart-drawer .order-note-toggle__content, .cart-drawer .order-note-toggle__content-overlay, .flickity-page-dots .dot, .flickity-nav, .flickity-nav svg {
  transition: all 0.25s cubic-bezier(0.104, 0.204, 0.492, 1); }

.no-js .quantity .minus, .quantity .no-js .minus,
.no-js .quantity .plus, .quantity .no-js .plus, .no-js .flickity-nav {
  display: none !important; }



/*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */
html {
  line-height: 1.15;
  -webkit-text-size-adjust: 100%; }

body {
  margin: 0; }

h1 {
  font-size: 2em;
  margin: 0.67em 0; }

hr {
  box-sizing: content-box;
  height: 0;
  overflow: visible; }

pre {
  font-family: monospace, monospace;
  font-size: 1em; }

a {
  background-color: transparent; }

abbr[title] {
  border-bottom: 0;
  text-decoration: underline dotted; }

b,
strong {
  font-weight: bolder; }

code,
kbd,
samp {
  font-family: monospace, monospace;
  font-size: 1em; }

small {
  font-size: 80%; }

sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline; }

sub {
  bottom: -0.25em; }

sup {
  top: -0.5em; }

img {
  border-style: none; }

button,
input,
optgroup,
select,
textarea {
  font-family: inherit;
  font-size: 100%;
  line-height: 1.15;
  margin: 0; }

button,
input {
  overflow: visible; }

button,
select {
  text-transform: none; }

button,
[type="button"],
[type="reset"],
[type="submit"] {
  -webkit-appearance: button; }

button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
  border-style: none;
  padding: 0; }

button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
  outline: 1px dotted ButtonText; }

fieldset {
  padding: 0.35em 0.75em 0.625em; }

legend {
  box-sizing: border-box;
  color: inherit;
  display: table;
  max-width: 100%;
  padding: 0;
  white-space: normal; }

progress {
  vertical-align: baseline; }

textarea {
  overflow: auto; }

[type="checkbox"],
[type="radio"] {
  box-sizing: border-box;
  padding: 0; }

[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
  height: auto; }

[type="search"] {
  -webkit-appearance: textfield;
  outline-offset: -2px; }

[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none; }

::-webkit-file-upload-button {
  -webkit-appearance: button;
  font: inherit; }

details {
  display: block; }

summary {
  display: list-item; }

template {
  display: none; }

[hidden] {
  display: none; }

[data-whatintent="mouse"] *, [data-whatintent="mouse"] *:focus,
[data-whatintent="touch"] *,
[data-whatintent="touch"] *:focus,
[data-whatinput="mouse"] *,
[data-whatinput="mouse"] *:focus,
[data-whatinput="touch"] *,
[data-whatinput="touch"] *:focus {
  outline: none; }

[draggable=false] {
  -webkit-touch-callout: none;
  -webkit-user-select: none; }

.foundation-mq {
  font-family: "small=0em&medium=48em&large=66.75em&xlarge=75em"; }

html {
  box-sizing: border-box;
  font-size: 100%; }

*,
*::before,
*::after {
  box-sizing: inherit; }

body {
  margin: 0;
  padding: 0;
  background: var(--bg-body);
  font-family: -apple-system, BlinkMacSystemFont, avenir next, avenir, segoe ui, helvetica neue, helvetica, Ubuntu, roboto, noto, arial, sans-serif;
  font-weight: normal;
  line-height: 1.6;
  color: var(--color-body);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }

img {
  display: inline-block;
  vertical-align: middle;
  max-width: 100%;
  height: auto;
  -ms-interpolation-mode: bicubic; }

textarea {
  height: auto;
  min-height: 50px;
  border-radius: 0; }

select {
  box-sizing: border-box;
  width: 100%;
  border-radius: 0; }

.map_canvas img,
.map_canvas embed,
.map_canvas object,
.mqa-display img,
.mqa-display embed,
.mqa-display object {
  max-width: none !important; }

button {
  padding: 0;
  appearance: none;
  border: 0;
  border-radius: 0;
  background: transparent;
  line-height: 1;
  cursor: auto; }
  [data-whatinput='mouse'] button {
    outline: 0; }

pre {
  overflow: auto;
  -webkit-overflow-scrolling: touch; }

button,
input,
optgroup,
select,
textarea {
  font-family: inherit; }

.is-visible {
  display: block !important; }

.is-hidden {
  display: none !important; }

div,
dl,
dt,
dd,
ul,
ol,
li,
h1,
h2,
h3,
h4,
h5,
h6,
pre,
form,
p,
blockquote,
th,
td {
  margin: 0;
  padding: 0; }

p {
  margin-bottom: 1.25rem;
  font-size: inherit;
  line-height: 1.6;
  text-rendering: optimizeLegibility; }

em,
i {
  font-style: italic;
  line-height: inherit; }

strong,
b {
  font-weight: var(--font-body-bold-weight, 600);
  line-height: inherit; }

small {
  font-size: 80%;
  line-height: inherit; }

h1, .h1, .h1-large, .h1-xlarge,
h2, .h2,
h3, .h3,
h4, .h4,
h5, .h5,
h6, .h6 {
  font-family: -apple-system, BlinkMacSystemFont, avenir next, avenir, segoe ui, helvetica neue, helvetica, Ubuntu, roboto, noto, arial, sans-serif;
  font-style: normal;
  font-weight: 700;
  color: var(--color-body);
  text-rendering: optimizeLegibility; }
  h1 small, .h1 small, .h1-large small, .h1-xlarge small,
  h2 small, .h2 small,
  h3 small, .h3 small,
  h4 small, .h4 small,
  h5 small, .h5 small,
  h6 small, .h6 small {
    line-height: 0;
    color: #cacaca; }

h1, .h1, .h1-large, .h1-xlarge {
  font-size: 2.875rem;
  line-height: 1.45;
  margin-top: 0;
  margin-bottom: 1.25rem; }

h2, .h2 {
  font-size: 2.5rem;
  line-height: 1.45;
  margin-top: 0;
  margin-bottom: 1.25rem; }

h3, .h3 {
  font-size: 2.125rem;
  line-height: 1.45;
  margin-top: 0;
  margin-bottom: 1.25rem; }

h4, .h4 {
  font-size: 1.75rem;
  line-height: 1.45;
  margin-top: 0;
  margin-bottom: 1.25rem; }

h5, .h5 {
  font-size: 1.5rem;
  line-height: 1.45;
  margin-top: 0;
  margin-bottom: 1.25rem; }

h6, .h6 {
  font-size: 1.125rem;
  line-height: 1.45;
  margin-top: 0;
  margin-bottom: 1.25rem; }

@media print, screen and (min-width: 48em) {
  h1, .h1, .h1-large, .h1-xlarge {
    font-size: 3.375rem; }
  h2, .h2 {
    font-size: 2.875rem; }
  h3, .h3 {
    font-size: 2.25rem; }
  h4, .h4 {
    font-size: 1.75rem; }
  h5, .h5 {
    font-size: 1.5rem; }
  h6, .h6 {
    font-size: 1.125rem; } }

@media print, screen and (min-width: 66.75em) {
  h1, .h1, .h1-large, .h1-xlarge {
    font-size: 4rem; }
  h2, .h2 {
    font-size: 3.375rem; }
  h3, .h3 {
    font-size: 2.5rem; }
  h4, .h4 {
    font-size: 1.875rem; }
  h5, .h5 {
    font-size: 1.5rem; }
  h6, .h6 {
    font-size: 1.125rem; } }

a {
  line-height: inherit;
  color: var(--color-accent);
  text-decoration: none;
  cursor: pointer; }
  a:hover, a:focus {
    color: var(--color-accent); }
  a img {
    border: 0; }

hr {
  clear: both;
  max-width: 1440px;
  height: 0;
  margin: 1.25rem auto;
  border-top: 0;
  border-right: 0;
  border-bottom: 1px solid #cacaca;
  border-left: 0; }

ul,
ol,
dl {
  margin-bottom: 1.25rem;
  list-style-position: outside;
  line-height: 1.6; }

li {
  font-size: inherit; }

ul {
  margin-left: 1.25rem;
  list-style-type: disc; }

ol {
  margin-left: 1.25rem; }

ul ul, ol ul, ul ol, ol ol {
  margin-left: 1.25rem;
  margin-bottom: 0; }

dl {
  margin-bottom: 1rem; }
  dl dt {
    margin-bottom: 0.3rem;
    font-weight: var(--font-body-bold-weight, 600); }

blockquote {
  margin: 0 0 1.25rem;
  padding: 0.5625rem 1.25rem 0 1.1875rem;
  border-left: 1px solid #cacaca; }
  blockquote, blockquote p {
    line-height: 1.6;
    color: #8a8a8a; }

abbr, abbr[title] {
  border-bottom: 1px dotted #151515;
  cursor: help;
  text-decoration: none; }

figure {
  margin: 0; }

kbd {
  margin: 0;
  padding: 0.125rem 0.25rem 0;
  background-color: #e6e6e6;
  font-family: Consolas, "Liberation Mono", Courier, monospace;
  color: #151515; }

.subheader {
  margin-top: 0.2rem;
  margin-bottom: 0.5rem;
  font-weight: normal;
  line-height: 1.4;
  color: #8a8a8a; }

.lead {
  font-size: 125%;
  line-height: 1.6; }

.stat {
  font-size: 2.5rem;
  line-height: 1; }
  p + .stat {
    margin-top: -1rem; }

ul.no-bullet, ol.no-bullet {
  margin-left: 0;
  list-style: none; }

cite, .cite-block {
  display: block;
  color: #8a8a8a;
  font-size: 0.8125rem; }
  cite:before, .cite-block:before {
    content: "— "; }

code, .code-inline {
  border: 1px solid #cacaca;
  background-color: #e6e6e6;
  font-family: Consolas, "Liberation Mono", Courier, monospace;
  font-weight: normal;
  color: #151515;
  display: inline;
  max-width: 100%;
  word-wrap: break-word;
  padding: 0.125rem 0.3125rem 0.0625rem; }

.code-block {
  border: 1px solid #cacaca;
  background-color: #e6e6e6;
  font-family: Consolas, "Liberation Mono", Courier, monospace;
  font-weight: normal;
  color: #151515;
  display: block;
  overflow: auto;
  white-space: pre;
  padding: 1rem;
  margin-bottom: 1.5rem; }

.text-left {
  text-align: left; }

.text-right {
  text-align: right; }

.text-center {
  text-align: center; }

.text-justify {
  text-align: justify; }

@media print, screen and (min-width: 48em) {
  .medium-text-left {
    text-align: left; }
  .medium-text-right {
    text-align: right; }
  .medium-text-center {
    text-align: center; }
  .medium-text-justify {
    text-align: justify; } }

@media print, screen and (min-width: 66.75em) {
  .large-text-left {
    text-align: left; }
  .large-text-right {
    text-align: right; }
  .large-text-center {
    text-align: center; }
  .large-text-justify {
    text-align: justify; } }

.show-for-print {
  display: none !important; }

@media print {
  * {
    background: transparent !important;
    color: black !important;
    print-color-adjust: economy;
    box-shadow: none !important;
    text-shadow: none !important; }
  .show-for-print {
    display: block !important; }
  .hide-for-print {
    display: none !important; }
  table.show-for-print {
    display: table !important; }
  thead.show-for-print {
    display: table-header-group !important; }
  tbody.show-for-print {
    display: table-row-group !important; }
  tr.show-for-print {
    display: table-row !important; }
  td.show-for-print {
    display: table-cell !important; }
  th.show-for-print {
    display: table-cell !important; }
  a,
  a:visited {
    text-decoration: underline; }
  a[href]:after {
    content: " (" attr(href) ")"; }
  .ir a:after,
  a[href^='javascript:']:after,
  a[href^='#']:after {
    content: ''; }
  abbr[title]:after {
    content: " (" attr(title) ")"; }
  pre,
  blockquote {
    border: 1px solid #8a8a8a;
    page-break-inside: avoid; }
  thead {
    display: table-header-group; }
  tr,
  img {
    page-break-inside: avoid; }
  img {
    max-width: 100% !important; }
  @page {
    margin: 0.5cm; }
  p,
  h2,
  h3 {
    orphans: 3;
    widows: 3; }
  h2,
  h3 {
    page-break-after: avoid; }
  .print-break-inside {
    page-break-inside: auto; } }

.row {
  max-width: 1440px;
  margin-right: auto;
  margin-left: auto;
  display: flex;
  flex-flow: row wrap; }
  .row .row {
    margin-right: -0.25rem;
    margin-left: -0.25rem; }
    @media print, screen and (min-width: 48em) {
      .row .row {
        margin-right: -0.9375rem;
        margin-left: -0.9375rem; } }
    @media print, screen and (min-width: 66.75em) {
      .row .row {
        margin-right: -0.9375rem;
        margin-left: -0.9375rem; } }
    .row .row.collapse {
      margin-right: 0;
      margin-left: 0; }
  .row.expanded {
    max-width: none; }
    .row.expanded .row {
      margin-right: auto;
      margin-left: auto; }
  .row:not(.expanded) .row {
    max-width: none; }
  .row.collapse > .column, .row.collapse > .columns {
    padding-right: 0;
    padding-left: 0; }
  .row.is-collapse-child,
  .row.collapse > .column > .row,
  .row.collapse > .columns > .row {
    margin-right: 0;
    margin-left: 0; }

.column, .columns {
  flex: 1 1 0px;
  padding-right: 0.25rem;
  padding-left: 0.25rem;
  min-width: 0; }
  @media print, screen and (min-width: 48em) {
    .column, .columns {
      padding-right: 0.9375rem;
      padding-left: 0.9375rem; } }

.column.row.row, .row.row.columns {
  float: none;
  display: block; }

.row .column.row.row, .row .row.row.columns {
  margin-right: 0;
  margin-left: 0;
  padding-right: 0;
  padding-left: 0; }

.small-1 {
  flex: 0 0 8.33333%;
  max-width: 8.33333%; }

.small-offset-0 {
  margin-left: 0%; }

.small-2 {
  flex: 0 0 16.66667%;
  max-width: 16.66667%; }

.small-offset-1 {
  margin-left: 8.33333%; }

.small-3 {
  flex: 0 0 25%;
  max-width: 25%; }

.small-offset-2 {
  margin-left: 16.66667%; }

.small-4 {
  flex: 0 0 33.33333%;
  max-width: 33.33333%; }

.small-offset-3 {
  margin-left: 25%; }

.small-5 {
  flex: 0 0 41.66667%;
  max-width: 41.66667%; }

.small-offset-4 {
  margin-left: 33.33333%; }

.small-6 {
  flex: 0 0 50%;
  max-width: 50%; }

.small-offset-5 {
  margin-left: 41.66667%; }

.small-7 {
  flex: 0 0 58.33333%;
  max-width: 58.33333%; }

.small-offset-6 {
  margin-left: 50%; }

.small-8 {
  flex: 0 0 66.66667%;
  max-width: 66.66667%; }

.small-offset-7 {
  margin-left: 58.33333%; }

.small-9 {
  flex: 0 0 75%;
  max-width: 75%; }

.small-offset-8 {
  margin-left: 66.66667%; }

.small-10 {
  flex: 0 0 83.33333%;
  max-width: 83.33333%; }

.small-offset-9 {
  margin-left: 75%; }

.small-11 {
  flex: 0 0 91.66667%;
  max-width: 91.66667%; }

.small-offset-10 {
  margin-left: 83.33333%; }

.small-12 {
  flex: 0 0 100%;
  max-width: 100%; }

.small-offset-11 {
  margin-left: 91.66667%; }

.small-up-1 {
  flex-wrap: wrap; }
  .small-up-1 > .column, .small-up-1 > .columns {
    flex: 0 0 100%;
    max-width: 100%; }

.small-up-2 {
  flex-wrap: wrap; }
  .small-up-2 > .column, .small-up-2 > .columns {
    flex: 0 0 50%;
    max-width: 50%; }

.small-up-3 {
  flex-wrap: wrap; }
  .small-up-3 > .column, .small-up-3 > .columns {
    flex: 0 0 33.33333%;
    max-width: 33.33333%; }

.small-up-4 {
  flex-wrap: wrap; }
  .small-up-4 > .column, .small-up-4 > .columns {
    flex: 0 0 25%;
    max-width: 25%; }

.small-up-5 {
  flex-wrap: wrap; }
  .small-up-5 > .column, .small-up-5 > .columns {
    flex: 0 0 20%;
    max-width: 20%; }

.small-up-6 {
  flex-wrap: wrap; }
  .small-up-6 > .column, .small-up-6 > .columns {
    flex: 0 0 16.66667%;
    max-width: 16.66667%; }

.small-up-7 {
  flex-wrap: wrap; }
  .small-up-7 > .column, .small-up-7 > .columns {
    flex: 0 0 14.28571%;
    max-width: 14.28571%; }

.small-up-8 {
  flex-wrap: wrap; }
  .small-up-8 > .column, .small-up-8 > .columns {
    flex: 0 0 12.5%;
    max-width: 12.5%; }

.small-collapse > .column, .small-collapse > .columns {
  padding-right: 0;
  padding-left: 0; }

.small-uncollapse > .column, .small-uncollapse > .columns {
  padding-right: 0.25rem;
  padding-left: 0.25rem; }

@media print, screen and (min-width: 48em) {
  .medium-1 {
    flex: 0 0 8.33333%;
    max-width: 8.33333%; }
  .medium-offset-0 {
    margin-left: 0%; }
  .medium-2 {
    flex: 0 0 16.66667%;
    max-width: 16.66667%; }
  .medium-offset-1 {
    margin-left: 8.33333%; }
  .medium-3 {
    flex: 0 0 25%;
    max-width: 25%; }
  .medium-offset-2 {
    margin-left: 16.66667%; }
  .medium-4 {
    flex: 0 0 33.33333%;
    max-width: 33.33333%; }
  .medium-offset-3 {
    margin-left: 25%; }
  .medium-5 {
    flex: 0 0 41.66667%;
    max-width: 41.66667%; }
  .medium-offset-4 {
    margin-left: 33.33333%; }
  .medium-6 {
    flex: 0 0 50%;
    max-width: 50%; }
  .medium-offset-5 {
    margin-left: 41.66667%; }
  .medium-7 {
    flex: 0 0 58.33333%;
    max-width: 58.33333%; }
  .medium-offset-6 {
    margin-left: 50%; }
  .medium-8 {
    flex: 0 0 66.66667%;
    max-width: 66.66667%; }
  .medium-offset-7 {
    margin-left: 58.33333%; }
  .medium-9 {
    flex: 0 0 75%;
    max-width: 75%; }
  .medium-offset-8 {
    margin-left: 66.66667%; }
  .medium-10 {
    flex: 0 0 83.33333%;
    max-width: 83.33333%; }
  .medium-offset-9 {
    margin-left: 75%; }
  .medium-11 {
    flex: 0 0 91.66667%;
    max-width: 91.66667%; }
  .medium-offset-10 {
    margin-left: 83.33333%; }
  .medium-12 {
    flex: 0 0 100%;
    max-width: 100%; }
  .medium-offset-11 {
    margin-left: 91.66667%; }
  .medium-up-1 {
    flex-wrap: wrap; }
    .medium-up-1 > .column, .medium-up-1 > .columns {
      flex: 0 0 100%;
      max-width: 100%; }
  .medium-up-2 {
    flex-wrap: wrap; }
    .medium-up-2 > .column, .medium-up-2 > .columns {
      flex: 0 0 50%;
      max-width: 50%; }
  .medium-up-3 {
    flex-wrap: wrap; }
    .medium-up-3 > .column, .medium-up-3 > .columns {
      flex: 0 0 33.33333%;
      max-width: 33.33333%; }
  .medium-up-4 {
    flex-wrap: wrap; }
    .medium-up-4 > .column, .medium-up-4 > .columns {
      flex: 0 0 25%;
      max-width: 25%; }
  .medium-up-5 {
    flex-wrap: wrap; }
    .medium-up-5 > .column, .medium-up-5 > .columns {
      flex: 0 0 20%;
      max-width: 20%; }
  .medium-up-6 {
    flex-wrap: wrap; }
    .medium-up-6 > .column, .medium-up-6 > .columns {
      flex: 0 0 16.66667%;
      max-width: 16.66667%; }
  .medium-up-7 {
    flex-wrap: wrap; }
    .medium-up-7 > .column, .medium-up-7 > .columns {
      flex: 0 0 14.28571%;
      max-width: 14.28571%; }
  .medium-up-8 {
    flex-wrap: wrap; }
    .medium-up-8 > .column, .medium-up-8 > .columns {
      flex: 0 0 12.5%;
      max-width: 12.5%; } }

@media print, screen and (min-width: 48em) and (min-width: 48em) {
  .medium-expand {
    flex: 1 1 0px; } }

.row.medium-unstack > .column, .row.medium-unstack > .columns {
  flex: 0 0 100%; }
  @media print, screen and (min-width: 48em) {
    .row.medium-unstack > .column, .row.medium-unstack > .columns {
      flex: 1 1 0px; } }

@media print, screen and (min-width: 48em) {
  .medium-collapse > .column, .medium-collapse > .columns {
    padding-right: 0;
    padding-left: 0; }
  .medium-uncollapse > .column, .medium-uncollapse > .columns {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem; } }

@media print, screen and (min-width: 66.75em) {
  .large-1 {
    flex: 0 0 8.33333%;
    max-width: 8.33333%; }
  .large-offset-0 {
    margin-left: 0%; }
  .large-2 {
    flex: 0 0 16.66667%;
    max-width: 16.66667%; }
  .large-offset-1 {
    margin-left: 8.33333%; }
  .large-3 {
    flex: 0 0 25%;
    max-width: 25%; }
  .large-offset-2 {
    margin-left: 16.66667%; }
  .large-4 {
    flex: 0 0 33.33333%;
    max-width: 33.33333%; }
  .large-offset-3 {
    margin-left: 25%; }
  .large-5 {
    flex: 0 0 41.66667%;
    max-width: 41.66667%; }
  .large-offset-4 {
    margin-left: 33.33333%; }
  .large-6 {
    flex: 0 0 50%;
    max-width: 50%; }
  .large-offset-5 {
    margin-left: 41.66667%; }
  .large-7 {
    flex: 0 0 58.33333%;
    max-width: 58.33333%; }
  .large-offset-6 {
    margin-left: 50%; }
  .large-8 {
    flex: 0 0 66.66667%;
    max-width: 66.66667%; }
  .large-offset-7 {
    margin-left: 58.33333%; }
  .large-9 {
    flex: 0 0 75%;
    max-width: 75%; }
  .large-offset-8 {
    margin-left: 66.66667%; }
  .large-10 {
    flex: 0 0 83.33333%;
    max-width: 83.33333%; }
  .large-offset-9 {
    margin-left: 75%; }
  .large-11 {
    flex: 0 0 91.66667%;
    max-width: 91.66667%; }
  .large-offset-10 {
    margin-left: 83.33333%; }
  .large-12 {
    flex: 0 0 100%;
    max-width: 100%; }
  .large-offset-11 {
    margin-left: 91.66667%; }
  .large-up-1 {
    flex-wrap: wrap; }
    .large-up-1 > .column, .large-up-1 > .columns {
      flex: 0 0 100%;
      max-width: 100%; }
  .large-up-2 {
    flex-wrap: wrap; }
    .large-up-2 > .column, .large-up-2 > .columns {
      flex: 0 0 50%;
      max-width: 50%; }
  .large-up-3 {
    flex-wrap: wrap; }
    .large-up-3 > .column, .large-up-3 > .columns {
      flex: 0 0 33.33333%;
      max-width: 33.33333%; }
  .large-up-4 {
    flex-wrap: wrap; }
    .large-up-4 > .column, .large-up-4 > .columns {
      flex: 0 0 25%;
      max-width: 25%; }
  .large-up-5 {
    flex-wrap: wrap; }
    .large-up-5 > .column, .large-up-5 > .columns {
      flex: 0 0 20%;
      max-width: 20%; }
  .large-up-6 {
    flex-wrap: wrap; }
    .large-up-6 > .column, .large-up-6 > .columns {
      flex: 0 0 16.66667%;
      max-width: 16.66667%; }
  .large-up-7 {
    flex-wrap: wrap; }
    .large-up-7 > .column, .large-up-7 > .columns {
      flex: 0 0 14.28571%;
      max-width: 14.28571%; }
  .large-up-8 {
    flex-wrap: wrap; }
    .large-up-8 > .column, .large-up-8 > .columns {
      flex: 0 0 12.5%;
      max-width: 12.5%; } }

@media print, screen and (min-width: 66.75em) and (min-width: 66.75em) {
  .large-expand {
    flex: 1 1 0px; } }

.row.large-unstack > .column, .row.large-unstack > .columns {
  flex: 0 0 100%; }
  @media print, screen and (min-width: 66.75em) {
    .row.large-unstack > .column, .row.large-unstack > .columns {
      flex: 1 1 0px; } }

@media print, screen and (min-width: 66.75em) {
  .large-collapse > .column, .large-collapse > .columns {
    padding-right: 0;
    padding-left: 0; }
  .large-uncollapse > .column, .large-uncollapse > .columns {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem; } }

.shrink {
  flex: 0 0 auto;
  max-width: 100%; }

.column-block {
  margin-bottom: 0.5rem; }
  .column-block > :last-child {
    margin-bottom: 0; }
  @media print, screen and (min-width: 48em) {
    .column-block {
      margin-bottom: 1.875rem; }
      .column-block > :last-child {
        margin-bottom: 0; } }

.align-left {
  justify-content: flex-start; }

.align-right {
  justify-content: flex-end; }

.align-center {
  justify-content: center; }

.align-justify {
  justify-content: space-between; }

.align-spaced {
  justify-content: space-around; }

.align-left.vertical.menu > li > a {
  justify-content: flex-start; }

.align-right.vertical.menu > li > a {
  justify-content: flex-end; }

.align-center.vertical.menu > li > a {
  justify-content: center; }

.align-top {
  align-items: flex-start; }

.align-self-top {
  align-self: flex-start; }

.align-bottom {
  align-items: flex-end; }

.align-self-bottom {
  align-self: flex-end; }

.align-middle {
  align-items: center; }

.align-self-middle {
  align-self: center; }

.align-stretch {
  align-items: stretch; }

.align-self-stretch {
  align-self: stretch; }

.align-center-middle {
  justify-content: center;
  align-items: center;
  align-content: center; }

.small-order-1 {
  order: 1; }

.small-order-2 {
  order: 2; }

.small-order-3 {
  order: 3; }

.small-order-4 {
  order: 4; }

.small-order-5 {
  order: 5; }

.small-order-6 {
  order: 6; }

@media print, screen and (min-width: 48em) {
  .medium-order-1 {
    order: 1; }
  .medium-order-2 {
    order: 2; }
  .medium-order-3 {
    order: 3; }
  .medium-order-4 {
    order: 4; }
  .medium-order-5 {
    order: 5; }
  .medium-order-6 {
    order: 6; } }

@media print, screen and (min-width: 66.75em) {
  .large-order-1 {
    order: 1; }
  .large-order-2 {
    order: 2; }
  .large-order-3 {
    order: 3; }
  .large-order-4 {
    order: 4; }
  .large-order-5 {
    order: 5; }
  .large-order-6 {
    order: 6; } }

.flex-container {
  display: flex; }

.flex-child-auto {
  flex: 1 1 auto; }

.flex-child-grow {
  flex: 1 0 auto; }

.flex-child-shrink {
  flex: 0 1 auto; }

.flex-dir-row {
  flex-direction: row; }

.flex-dir-row-reverse {
  flex-direction: row-reverse; }

.flex-dir-column {
  flex-direction: column; }

.flex-dir-column-reverse {
  flex-direction: column-reverse; }

@media print, screen and (min-width: 48em) {
  .medium-flex-container {
    display: flex; }
  .medium-flex-child-auto {
    flex: 1 1 auto; }
  .medium-flex-child-grow {
    flex: 1 0 auto; }
  .medium-flex-child-shrink {
    flex: 0 1 auto; }
  .medium-flex-dir-row {
    flex-direction: row; }
  .medium-flex-dir-row-reverse {
    flex-direction: row-reverse; }
  .medium-flex-dir-column {
    flex-direction: column; }
  .medium-flex-dir-column-reverse {
    flex-direction: column-reverse; } }

@media print, screen and (min-width: 66.75em) {
  .large-flex-container {
    display: flex; }
  .large-flex-child-auto {
    flex: 1 1 auto; }
  .large-flex-child-grow {
    flex: 1 0 auto; }
  .large-flex-child-shrink {
    flex: 0 1 auto; }
  .large-flex-dir-row {
    flex-direction: row; }
  .large-flex-dir-row-reverse {
    flex-direction: row-reverse; }
  .large-flex-dir-column {
    flex-direction: column; }
  .large-flex-dir-column-reverse {
    flex-direction: column-reverse; } }



html {
  scroll-behavior: smooth;
  scroll-padding-top: calc(var(--logo-height-mobile) + 106px);
  font-size: calc(var(--font-body-scale) * 16px); }
  @media only screen and (min-width: 768px) {
    html {
      scroll-padding-top: calc(var(--logo-height) + 106px); } }

body {
  overflow-wrap: break-word;
  font-size: 1.0625rem;
  line-height: calc(var(--font-body-line-height-scale) * 1.6);
  letter-spacing: var(--font-body-letter-spacing, normal);
  background: var(--bg-body, #fff); }
  body.open-cc #wrapper .click-capture {
    opacity: 1;
    visibility: visible;
    pointer-events: all; }
  body.open-cc--product #wrapper .click-capture--product {
    opacity: 1;
    visibility: visible;
    pointer-events: all; }
  body.open-cc #shopify-chat {
    display: none; }

* {
  box-sizing: border-box; }

a {
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0); }

button,
summary {
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0); }

p {
  word-spacing: 0.001em;
  font-feature-settings: "kern" 1;
  font-kerning: normal;
  line-height: calc(var(--font-body-line-height-scale) * 1.6); }

figure {
  margin: 0;
  padding: 0; }

summary {
  display: inline-block; }

#wrapper {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  scroll-behavior: smooth; }
  #wrapper > [role="main"] {
    display: flex;
    flex: 1;
    flex-direction: column; }
    #wrapper > [role="main"] > .row {
      width: 100%; }
  #wrapper .click-capture {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    z-index: 52;
    opacity: 0;
    visibility: hidden;
    background: rgba(var(--color-overlay-rgb), 0.7);
    backdrop-filter: blur(3px); }
  #wrapper .click-capture--product {
    z-index: 91; }
  .template-product-quick-view #wrapper .click-capture--product {
    opacity: 1 !important;
    visibility: visible !important; }

.row {
  padding: 0 11px; }
  @media only screen and (min-width: 768px) {
    .row {
      padding: 0 35px; } }
  .row .columns {
    padding: 0 4px; }
    @media only screen and (min-width: 768px) {
      .row .columns {
        padding: 0 15px; } }
  .row.no-padding {
    padding: 0; }
  .row.full-width-row {
    max-width: none; }
  .row.full-width-row-full {
    padding: 0;
    max-width: none; }
    .row.full-width-row-full > .columns {
      padding: 0; }

.text-size-large {
  font-size: 1.25rem; }

.text-size-small {
  font-size: 0.9375rem; }


.visually-hidden {
  position: absolute !important;
  overflow: hidden;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  border: 0;
  clip: rect(0 0 0 0);
  word-wrap: normal !important; }

.overflow-hidden {
  overflow: hidden; }

blockquote {
  position: relative;
  text-align: center;
  padding: 75px 5% 45px;
  border-left: 0;
  color: var(--color-accent);
  color: inherit;
  font-size: 1.375rem;
  line-height: 1.4;
  letter-spacing: 0.02em;
  margin: 0; }
  @media only screen and (min-width: 768px) {
    blockquote {
      font-size: 1.875rem; } }
  @media only screen and (min-width: 768px) {
    blockquote {
      padding: 100px 10% 65px; } }
  blockquote:before {
    content: "“";
    position: absolute;
    top: -30px;
    font-size: 9rem;
    left: 50%;
    pointer-events: none;
    transform: translateX(-50%); }
    @media only screen and (min-width: 768px) {
      blockquote:before {
        top: -20px; } }
  blockquote p {
    color: inherit;
    font-size: inherit;
    line-height: inherit;
    letter-spacing: inherit;
    margin: 0; }
    @media only screen and (min-width: 768px) {
      blockquote p {
        font-size: inherit; } }

.thb-placeholder {
  background: rgba(var(--color-body-rgb), 0.03);
  display: flex; }
  .thb-placeholder svg {
    width: 100%;
    height: 100%;
    fill: var(--color-accent); }

.rte a {
  text-decoration: underline;
  text-underline-offset: 3px; }

.rte p + h1,
.rte p + h2,
.rte p + h3,
.rte p + h4,
.rte p + h5,
.rte p + h6 {
  margin-top: 30px; }

.rte iframe {
  max-width: 100%; }

.no-js .no-js-hidden, .no-js
img.lazyload {
  display: none !important; }

.screen-reader-shortcut {
  position: fixed;
  top: -1000em; }
  .screen-reader-shortcut:focus {
    left: 6px;
    top: 7px;
    height: auto;
    width: auto;
    display: block;
    font-size: 14px;
    font-weight: var(--font-body-bold-weight, 600);
    padding: 15px 23px 14px;
    background-color: #54cdcd;
    color: #fff;
    z-index: 100000;
    line-height: normal;
    text-decoration: none;
    box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6); }

table {
  width: 100%;
  text-align: left;
  border-spacing: 0;
  border-collapse: separate;
  margin-bottom: 30px;
  font-size: 15px;
  border-collapse: collapse;
  border: 1px solid var(--color-border); }
  [dir="rtl"] table {
    text-align: right; }
  table thead {
    line-height: 1; }
    table thead th {
      font-size: 13px;
      text-transform: uppercase;
      letter-spacing: 0.1em;
      font-weight: var(--font-body-bold-weight, 600); }
  table th,
  table td {
    padding: 10px 15px;
    border: 1px solid var(--color-border); }
    @media only screen and (min-width: 768px) {
      table th,
      table td {
        padding: 15px 25px; } }
  table.no-borders {
    border: 0; }
    table.no-borders thead {
      line-height: 1; }
      table.no-borders thead th {
        font-size: 11px;
        text-transform: uppercase;
        letter-spacing: 0.1em;
        padding: 18px 0;
        font-weight: 400;
        border-bottom: 1px solid var(--color-border); }
        table.no-borders thead th:last-child {
          text-align: right; }
    table.no-borders th,
    table.no-borders td {
      padding: 10px 15px;
      border: 0; }
      @media only screen and (min-width: 768px) {
        table.no-borders th,
        table.no-borders td {
          padding: 15px 25px; } }
    table.no-borders tbody tr th,
    table.no-borders tbody tr td {
      padding: 20px 15px 20px 0;
      border-bottom: 1px solid var(--color-border); }
      table.no-borders tbody tr th:last-child,
      table.no-borders tbody tr td:last-child {
        text-align: right;
        padding-right: 0; }
      @media only screen and (min-width: 768px) {
        table.no-borders tbody tr th,
        table.no-borders tbody tr td {
          padding: 20px 30px 20px 0; } }
    table.no-borders tbody tr:last-child td {
      border-bottom: 0; }
    table.no-borders tfoot {
      text-align: right; }
      table.no-borders tfoot td {
        padding: 0;
        border-top: 1px solid var(--color-border); }
        table.no-borders tfoot td:first-child {
          text-align: left; }
          [dir="rtl"] table.no-borders tfoot td:first-child {
            text-align: right; }

.shopify-challenge__container {
  padding: 40px 0; }
  @media only screen and (min-width: 768px) {
    .shopify-challenge__container {
      padding: 70px 0; } }
  @media only screen and (min-width: 1068px) {
    .shopify-challenge__container {
      padding: 100px 0; } }

.discounts {
  list-style: none;
  margin: 5px 0 0;
  padding: 0;
  font-size: 12px; }
  .discounts__discount {
    margin-bottom: 5px; }
    .discounts__discount svg {
      vertical-align: middle;
      margin-right: 6px;
      width: 10px; }

.side-panel {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  z-index: 90;
  width: calc(100vw - 30px);
  background: var(--bg-body, #fff);
  max-width: 480px;
  overflow-x: hidden;
  transform: translateX(100%);
  will-change: transform; }
  .side-panel.active {
    transform: translateX(0%); }
  .side-panel.facet-drawer {
    transform: translateX(-100%);
    right: auto;
    left: 0; }
    .side-panel.facet-drawer.active {
      transform: translateX(0%); }
  .side-panel.search-drawer .side-panel-inner {
    height: 100%; }
  .side-panel.search-drawer .searchform {
    width: 100%;
    padding-right: 20px; }
    .side-panel.search-drawer .searchform input {
      border: 0;
      padding: 0;
      font-size: 1rem;
      outline: 0; }
      .side-panel.search-drawer .searchform input::-webkit-search-decoration, .side-panel.search-drawer .searchform input::-webkit-search-cancel-button, .side-panel.search-drawer .searchform input::-webkit-search-results-button, .side-panel.search-drawer .searchform input::-webkit-search-results-decoration {
        display: none; }
    .side-panel.search-drawer .searchform label {
      display: none; }
  .side-panel.search-drawer .side-panel-content--has-tabs {
    display: none;
    position: relative;
    flex: 1;
    height: calc(100% - 72px); }
    .side-panel.search-drawer .side-panel-content--has-tabs.active {
      display: flex;
      flex-direction: column; }
      .side-panel.search-drawer .side-panel-content--has-tabs.active + .side-panel-content--initial {
        display: none; }
    .side-panel.search-drawer .side-panel-content--has-tabs .thb-predictive-search--popular {
      padding: 25px 30px;
      margin-bottom: 0; }
      .side-panel.search-drawer .side-panel-content--has-tabs .thb-predictive-search--popular + .side-panel-content--tabs {
        border-top: 1px solid var(--color-border); }
    .side-panel.search-drawer .side-panel-content--has-tabs scroll-shadow {
      flex: 1;
      overflow: hidden; }
  .side-panel.product-drawer {
    overflow: visible;
    z-index: 92; }
    .side-panel.product-drawer .thb-product-detail {
      margin: 0; }
    .side-panel.product-drawer .side-panel-inner {
      position: relative;
      height: 100%;
      z-index: 5; }
    .side-panel.product-drawer .side-panel-content {
      padding: 0 30px 25px 30px;
      height: calc(100% - 72px);
      background: var(--bg-body, #fff);
      overflow-y: scroll; }
      @media only screen and (min-width: 1068px) {
        .side-panel.product-drawer .side-panel-content {
          padding: 25px 30px; } }
  .side-panel-header {
    position: sticky;
    top: 0;
    left: 0;
    z-index: 35;
    background: var(--bg-body, #fff);
    border-bottom: 1px solid var(--color-border);
    padding: 17px 30px;
    height: 72px; }
    .side-panel-header h4 {
      margin: 0;
      line-height: 1;
      font-size: 0.9375rem;
      letter-spacing: 0.1em;
      font-weight: var(--font-body-bold-weight, 600);
      color: var(--color-body);
      text-transform: uppercase; }
      .side-panel-header h4 > span {
        display: block; }
      .side-panel-header h4 .facets__label {
        font-size: 0.75rem;
        margin-top: 4px;
        display: block; }
    .side-panel-header div {
      line-height: 1;
      display: flex;
      justify-content: space-between;
      align-items: center;
      height: 100%; }
  .side-panel-close {
    cursor: pointer; }
  .side-panel-content {
    padding: 25px 30px; }
    .side-panel-content.side-panel-content--has-tabs {
      padding: 0; }
      .side-panel-content.side-panel-content--has-tabs .side-panel-content--inner {
        padding: 25px 30px;
        overflow-y: scroll;
        height: 100%; }
    .side-panel-content--tabs {
      display: flex; }
      .side-panel-content--tabs button {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        text-align: center;
        text-transform: uppercase;
        font-size: 0.75rem;
        letter-spacing: 0.1em;
        font-weight: var(--font-body-bold-weight, 600);
        padding: 0 15px;
        height: 50px;
        flex: 1;
        background: rgba(var(--color-body-rgb), 0.05);
        border-bottom: 1px solid var(--color-border);
        border-right: 1px solid var(--color-border);
        color: var(--color-body); }
        .side-panel-content--tabs button.tab-active {
          background: var(--bg-body);
          border-bottom-color: transparent; }
        .side-panel-content--tabs button:last-child {
          border-right: 0; }
    .side-panel-content--tab-panel {
      display: none; }
      .side-panel-content--tab-panel.tab-active {
        display: block; }
    .side-panel-content--search-footer {
      padding: 25px 30px;
      border-top: 1px solid var(--color-border);
      margin-top: auto; }
    .side-panel-content .button {
      flex-shrink: 0; }


.loading {
  position: relative; }
  .loading:after {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 10; }
  .loading .loading-overlay {
    display: block; }

.loading-overlay {
  display: none;
  width: 42px;
  height: 42px;
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 20;
  line-height: 0;
  transform: translate3d(-50%, -50%, 0); }

.spinner {
  animation: rotator 1.4s infinite linear; }

.spinner-path {
  stroke-dasharray: 280;
  stroke-dashoffset: 0;
  transform-origin: center;
  animation: dash 1.4s infinite ease; }

@keyframes rotator {
  0% {
    transform: rotate(0deg); }
  100% {
    transform: rotate(270deg); } }

@keyframes dash {
  0% {
    stroke-dashoffset: 280; }
  50% {
    stroke-dashoffset: 75;
    transform: rotate(135deg); }
  100% {
    stroke-dashoffset: 280;
    transform: rotate(450deg); } }

.mobile-menu-drawer {
  display: none; }


.lazyload,
.lazyloading {
  opacity: 0.75;
  will-change: opacity, filter;
  filter: blur(5px); }
  .lazyload.no-blur,
  .lazyloading.no-blur {
    filter: none;
    opacity: 1; }

.lazyloaded {
  opacity: 1;
  transition: opacity 0.2s cubic-bezier(0.104, 0.204, 0.492, 1), filter 0.2s cubic-bezier(0.104, 0.204, 0.492, 1); }


@media only screen and (min-width: 768px) {
  .medium-1\/5 {
    -webkit-flex: 0 0 20%;
    -ms-flex: 0 0 20%;
    flex: 0 0 20%;
    max-width: 20%; } }

@media only screen and (min-width: 1068px) {
  .large-1\/5 {
    -webkit-flex: 0 0 20%;
    -ms-flex: 0 0 20%;
    flex: 0 0 20%;
    max-width: 20%; } }


scroll-shadow {
  display: inline-block;
  --scroll-shadow-size: 60;
  --scroll-shadow-top: linear-gradient(rgba(var(--bg-body-rgb), 1),
      rgba(var(--bg-body-rgb), 0));
  --scroll-shadow-bottom: linear-gradient(rgba(var(--bg-body-rgb), 0),
      rgba(var(--bg-body-rgb), 1));
  --scroll-shadow-left: linear-gradient(90deg,
      rgba(var(--bg-body-rgb), 1),
      rgba(var(--bg-body-rgb), 0));
  --scroll-shadow-right: linear-gradient(90deg,
      rgba(var(--bg-body-rgb), 0),
      rgba(var(--bg-body-rgb), 1)); }

@media only screen and (max-width: 767px) {
  .mobile-height-full {
    height: calc(100vh - var(--announcement-height, 0px)); }
    @supports (height: 100svh) {
      .mobile-height-full {
        height: calc(100svh - var(--announcement-height, 0px)); } } }

@media only screen and (max-width: 767px) {
  .mobile-height-auto {
    min-height: auto; } }

@media only screen and (max-width: 767px) {
  .mobile-height-300 {
    min-height: 300px; } }

@media only screen and (max-width: 767px) {
  .mobile-height-350 {
    min-height: 350px; } }

@media only screen and (max-width: 767px) {
  .mobile-height-400 {
    min-height: 400px; } }

@media only screen and (max-width: 767px) {
  .mobile-height-450 {
    min-height: 450px; } }

@media only screen and (max-width: 767px) {
  .mobile-height-500 {
    min-height: 500px; } }

@media only screen and (min-width: 768px) {
  .desktop-height-full {
    height: calc(100vh - var(--announcement-height, 0px)); }
    @supports (height: 100dvh) {
      .desktop-height-full {
        height: calc(auto - var(--announcement-height, 0px)); } } }

@media only screen and (min-width: 768px) {
  .desktop-height-auto {
    min-height: auto; } }

@media only screen and (min-width: 768px) {
  .desktop-height-450 {
    min-height: 450px; } }

@media only screen and (min-width: 768px) {
  .desktop-height-550 {
    min-height: 550px; } }

@media only screen and (min-width: 768px) {
  .desktop-height-650 {
    min-height: 650px; } }

@media only screen and (min-width: 768px) {
  .desktop-height-750 {
    min-height: 750px; } }

.height-full {
  min-height: 100vh; }

.height-auto {
  min-height: auto; }

.height-300 {
  min-height: 300px; }

.height-350 {
  min-height: 350px; }

.height-400 {
  min-height: 400px; }

.height-450 {
  min-height: 450px; }

.page-content-width {
  max-width: 840px;
  margin: 0 auto; }

.subheading {
  font-size: 0.8125rem;
  letter-spacing: 0.4em;
  margin-bottom: 20px;
  text-transform: uppercase;
  font-weight: var(--font-body-medium-weight, 500); }
  @media only screen and (min-width: 768px) {
    .subheading {
      font-size: 0.9375rem; } }


.section-spacing {
  margin-top: var(--section-spacing-mobile, 0);
  margin-bottom: var(--section-spacing-mobile, 0); }
  @media only screen and (min-width: 768px) {
    .section-spacing {
      margin-top: var(--section-spacing-desktop, 0);
      margin-bottom: var(--section-spacing-desktop, 0); } }
  .section-spacing.section-spacing--disable-top {
    margin-top: 0; }
  .section-spacing.section-spacing--disable-bottom {
    margin-bottom: 0; }

.section-spacing-bottom {
  margin-bottom: var(--section-spacing-mobile, 0); }
  @media only screen and (min-width: 768px) {
    .section-spacing-bottom {
      margin-bottom: var(--section-spacing-desktop, 0); } }
  .section-spacing-bottom.section-spacing--disable-bottom {
    margin-bottom: 0; }

.section-spacing-padding {
  padding-top: var(--section-spacing-mobile, 0);
  padding-bottom: var(--section-spacing-mobile, 0); }
  @media only screen and (min-width: 768px) {
    .section-spacing-padding {
      padding-top: var(--section-spacing-desktop, 0);
      padding-bottom: var(--section-spacing-desktop, 0); } }
  .section-spacing-padding.section-spacing--disable-top {
    padding-top: 0; }
  .section-spacing-padding.section-spacing--disable-bottom {
    padding-bottom: 0; }

.visibility-hidden {
  visibility: hidden; }

.thb-parallax-image {
  pointer-events: none;
  will-change: transform;
  transform-style: preserve-3d;
  backface-visibility: hidden; }


.back-to-top {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  background: var(--bg-body);
  position: fixed;
  bottom: 20px;
  right: 20px;
  z-index: 30;
  border-radius: 50%;
  cursor: pointer;
  box-shadow: 0px 2px 10px rgba(0, 0, 0, 0.15);
  transform: translateY(70px); }
  @media only screen and (min-width: 1068px) {
    .back-to-top {
      bottom: 30px;
      right: 30px; } }
  .back-to-top.back-to-top--active {
    transform: translateY(0px); }
  .back-to-top svg {
    overflow: visible;
    transform: translateY(1px); }
  .back-to-top--handle {
    transform: translateY(4px); }
  .back-to-top--bar {
    opacity: 0;
    transform-origin: bottom center;
    transform: scale(1, 0) translateY(8px); }
  .back-to-top:hover .back-to-top--handle, .back-to-top:focus .back-to-top--handle {
    transform: translateY(0px); }
  .back-to-top:hover .back-to-top--bar, .back-to-top:focus .back-to-top--bar {
    opacity: 1;
    transform-origin: top center;
    transform: scale(1, 1) translateY(0); }

h1, .h1, .h1-large, .h1-xlarge {
  font-size: calc(var(--font-heading-scale) * 40px);
  line-height: calc( var(--font-heading-line-height-scale) * calc(var(--font-heading-scale) * 48px)); }
  @media only screen and (min-width: 768px) {
    h1, .h1, .h1-large, .h1-xlarge {
      font-size: calc(var(--font-heading-scale) * 48px);
      line-height: calc( var(--font-heading-line-height-scale) * calc(var(--font-heading-scale) * 56px)); } }
  @media only screen and (min-width: 1068px) {
    h1, .h1, .h1-large, .h1-xlarge {
      font-size: calc(var(--font-heading-scale) * 52px);
      line-height: calc( var(--font-heading-line-height-scale) * calc(var(--font-heading-scale) * 60px)); } }

h2, .h2 {
  font-size: calc(var(--font-heading-scale) * 28px);
  line-height: calc( var(--font-heading-line-height-scale) * calc(var(--font-heading-scale) * 36px)); }
  @media only screen and (min-width: 768px) {
    h2, .h2 {
      font-size: calc(var(--font-heading-scale) * 36px);
      line-height: calc( var(--font-heading-line-height-scale) * calc(var(--font-heading-scale) * 44px)); } }
  @media only screen and (min-width: 1068px) {
    h2, .h2 {
      font-size: calc(var(--font-heading-scale) * 40px);
      line-height: calc( var(--font-heading-line-height-scale) * calc(var(--font-heading-scale) * 48px)); } }

h3, .h3 {
  font-size: calc(var(--font-heading-scale) * 26px);
  line-height: calc( var(--font-heading-line-height-scale) * calc(var(--font-heading-scale) * 30px)); }
  @media only screen and (min-width: 768px) {
    h3, .h3 {
      font-size: calc(var(--font-heading-scale) * 30px);
      line-height: calc( var(--font-heading-line-height-scale) * calc(var(--font-heading-scale) * 38px)); } }
  @media only screen and (min-width: 1068px) {
    h3, .h3 {
      font-size: calc(var(--font-heading-scale) * 34px);
      line-height: calc( var(--font-heading-line-height-scale) * calc(var(--font-heading-scale) * 42px)); } }

h4, .h4 {
  font-size: calc(var(--font-heading-scale) * 20px);
  line-height: calc( var(--font-heading-line-height-scale) * calc(var(--font-heading-scale) * 28px)); }
  @media only screen and (min-width: 1068px) {
    h4, .h4 {
      font-size: calc(var(--font-heading-scale) * 28px);
      line-height: calc( var(--font-heading-line-height-scale) * calc(var(--font-heading-scale) * 36px)); } }

h5, .h5 {
  font-size: calc(var(--font-heading-scale) * 24px);
  line-height: calc( var(--font-heading-line-height-scale) * calc(var(--font-heading-scale) * 32px)); }

h6, .h6 {
  font-size: calc(var(--font-heading-scale) * 20px);
  line-height: calc( var(--font-heading-line-height-scale) * calc(var(--font-heading-scale) * 26px)); }

@media only screen and (min-width: 768px) {
  .h1-large {
    font-size: calc(var(--font-heading-scale) * 52px);
    line-height: calc( var(--font-heading-line-height-scale) * calc(var(--font-heading-scale) * 60px)); } }

@media only screen and (min-width: 1068px) {
  .h1-large {
    font-size: calc(var(--font-heading-scale) * 60px);
    line-height: calc( var(--font-heading-line-height-scale) * calc(var(--font-heading-scale) * 68px)); } }

@media only screen and (min-width: 768px) {
  .h1-xlarge {
    font-size: calc(var(--font-heading-scale) * 60px);
    line-height: calc( var(--font-heading-line-height-scale) * calc(var(--font-heading-scale) * 68px)); } }

@media only screen and (min-width: 1068px) {
  .h1-xlarge {
    font-size: calc(var(--font-heading-scale) * 72px);
    line-height: calc( var(--font-heading-line-height-scale) * calc(var(--font-heading-scale) * 80px)); } }

h1, .h1, .h1-large, .h1-xlarge,
h2,
.h2,
h3,
.h3,
h4,
.h4,
h5,
.h5,
h6,
.h6 .h1-large,
.h1-xlarge {
  letter-spacing: var(--font-heading-letter-spacing, normal); }

@media only screen and (min-width: 1068px) {
  .heading-size--small {
    font-size: 2.125rem;
    line-height: 2.625rem; } }

@media only screen and (min-width: 1068px) {
  .heading-size--medium {
    font-size: 3rem;
    line-height: 3.5rem; } }

@media only screen and (min-width: 1068px) {
  .heading-size--large {
    font-size: 3.75rem;
    line-height: 4.25rem; } }

@media only screen and (min-width: 1068px) {
  .heading-size--xlarge {
    font-size: 4.5rem;
    line-height: 5rem; } }


.header-section {
  position: sticky;
  top: 0;
  left: 0;
  z-index: 50;
  width: 100%; }

.header {
  display: block;
  border-bottom: 1px solid var(--color-header-border, var(--color-border));
  position: relative;
  background: var(--color-header-bg, #fff);
  z-index: 30;
  width: 100%; }
  .header:after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    bottom: 0;
    z-index: -1;
    opacity: 0;
    pointer-events: none; }
  .header.header--shadow-small:after {
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.06); }
  .header.header--shadow-medium:after {
    box-shadow: 0 9px 38px rgba(0, 0, 0, 0.05), 0 5px 12px rgba(0, 0, 0, 0.1); }
  .header.header--shadow-large:after {
    box-shadow: 0 19px 38px rgba(0, 0, 0, 0.1), 0 5px 22px rgba(0, 0, 0, 0.15); }
  .header.is-sticky:after {
    opacity: 1; }
  .header.transparent--true {
    position: absolute;
    background: transparent;
    border-bottom-color: rgba(255, 255, 255, 0.4); }
    .header.transparent--true:before {
      content: "";
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      bottom: 0;
      z-index: -1;
      background: var(--color-header-bg, #fff);
      transform: translateY(-100%); }
    .header.transparent--true:hover:before, .header.transparent--true.is-sticky:before {
      transform: translateY(0%); }
    .header.transparent--true:not(:hover):not(.is-sticky) .logolink.text-logo {
      color: var(--color-header-transparent-text, #fff); }
    .header.transparent--true:not(:hover):not(.is-sticky) .logolink .logoimg {
      opacity: 0; }
      .header.transparent--true:not(:hover):not(.is-sticky) .logolink .logoimg--light {
        opacity: 1; }
    .header.transparent--true:not(:hover):not(.is-sticky) .thb-full-menu > li > a {
      color: var(--color-header-transparent-text, #fff); }
      .header.transparent--true:not(:hover):not(.is-sticky) .thb-full-menu > li > a:after {
        background: var(--color-header-transparent-text, #fff); }
    .header.transparent--true:not(:hover):not(.is-sticky) .thb-localization-forms.inside-header .select-arrow svg path {
      stroke: var(--color-header-transparent-text, #fff); }
    .header.transparent--true:not(:hover):not(.is-sticky) .thb-localization-forms.inside-header .select select {
      color: var(--color-header-transparent-text, #fff); }
    .header.transparent--true:not(:hover):not(.is-sticky) .thb-secondary-area .thb-item-count {
      background-color: var(--color-header-transparent-text, #fff);
      color: var(--color-header-icons, --color-accent); }
    .header.transparent--true:not(:hover):not(.is-sticky) .thb-secondary-area-item.thb-secondary-myaccount {
      color: var(--color-header-transparent-text, #fff); }
    .header.transparent--true:not(:hover):not(.is-sticky) svg path {
      stroke: var(--color-header-transparent-text, #fff); }
    .header.transparent--true:not(:hover):not(.is-sticky) .mobile-toggle span {
      background: var(--color-header-transparent-text, #fff); }
  .header > .row > .columns {
    display: grid;
    align-items: center;
    grid-template-columns: 1fr auto 1fr;
    min-height: 60px; }
    @media only screen and (min-width: 1068px) {
      .header > .row > .columns {
        min-height: 80px; } }
  .header .logolink {
    position: relative; }
    .header .logolink .logoimg--light {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      object-fit: contain;
      opacity: 0; }
  .header.style1 .logolink {
    text-align: center;
    justify-content: center; }
    @media only screen and (min-width: 1068px) {
      .header.style1 .logolink {
        text-align: left;
        margin-right: auto;
        justify-content: flex-start; } }
  @media only screen and (min-width: 1068px) {
    .header.style1 > .row > .columns {
      grid-template-columns: auto minmax(auto, 70%) auto; } }
  .header.style2 .logolink {
    text-align: center;
    margin-right: auto;
    margin-left: auto;
    flex-shrink: 0; }
    @media only screen and (min-width: 1068px) {
      .header.style2 .logolink {
        margin-left: 0; } }
  @media only screen and (min-width: 1068px) {
    .header.style2 > .row > .columns {
      grid-template-columns: auto 1fr; } }
  .header.style2 .full-menu {
    margin-left: 25px; }
  @media only screen and (min-width: 1068px) {
    .header.style2 .logolink {
      text-align: left; } }
  .header.style3 .logolink {
    text-align: center;
    justify-content: center; }
    .header.style3 .logolink .logoimg {
      object-position: center; }
  .header.style3 .full-menu {
    margin-left: 0; }
  .header.style3 .thb-full-menu {
    text-align: left; }
    .header.style3 .thb-full-menu > li:first-child {
      padding-left: 0; }
  .header.style4 .full-menu {
    width: 100%;
    grid-column: span 3;
    justify-content: center; }
  @media only screen and (min-width: 1068px) {
    .header.style4 .logolink {
      margin: 15px 0; } }
  @media only screen and (min-width: 1068px) {
    .header.style4 > .row > .columns {
      padding-top: 10px;
      padding-bottom: 10px; } }
  .header .menu-logo-container {
    display: flex;
    align-items: center; }

.thb-secondary-area {
  margin-left: auto;
  line-height: 1;
  height: 100%;
  min-width: 70px;
  white-space: nowrap;
  justify-content: end;
  display: inline-flex; }
  @media only screen and (min-width: 768px) {
    .thb-secondary-area {
      min-width: 135px; } }
  [dir="rtl"] .thb-secondary-area {
    margin-left: 0; }
  .thb-secondary-area .no-js-hidden {
    align-items: center;
    display: none; }
    @media only screen and (min-width: 1068px) {
      .thb-secondary-area .no-js-hidden {
        display: inline-flex; } }
  .thb-secondary-area-item {
    padding: 0 7px;
    height: 100%;
    align-items: center;
    display: inline-flex; }
    @media only screen and (min-width: 1068px) {
      .thb-secondary-area-item {
        padding: 0 10px; } }
    .thb-secondary-area-item:last-child {
      padding-right: 0; }
    [dir="rtl"] .thb-secondary-area-item:last-child {
      padding: 0 7px; }
      @media only screen and (min-width: 1068px) {
        [dir="rtl"] .thb-secondary-area-item:last-child {
          padding: 0 10px; } }
    .thb-secondary-area-item.thb-secondary-myaccount {
      display: none;
      font-weight: var(--font-body-medium-weight, 500);
      font-size: calc(var(--font-navigation-scale, 1) * 15px);
      color: var(--color-header-links, --color-accent); }
      .thb-secondary-area-item.thb-secondary-myaccount:hover {
        color: var(--color-header-links-hover, --color-accent2); }
      .navigation-uppercase-true .thb-secondary-area-item.thb-secondary-myaccount {
        text-transform: uppercase; }
      @media only screen and (min-width: 768px) {
        .thb-secondary-area-item.thb-secondary-myaccount {
          display: inline-flex; } }
      .thb-secondary-area-item.thb-secondary-myaccount span {
        position: relative;
        line-height: 1.7; }
        .thb-secondary-area-item.thb-secondary-myaccount span:after {
          content: "";
          display: block;
          position: absolute;
          top: 100%;
          left: 0;
          width: 100%;
          will-change: transform;
          height: 1px;
          transform: scale(0, 1);
          transform-origin: left center;
          background: var(--color-header-links-hover, --color-accent); }
      .thb-secondary-area-item.thb-secondary-myaccount:hover, .thb-secondary-area-item.thb-secondary-myaccount:focus {
        color: var(--color-header-links-hover, --color-accent2); }
        .thb-secondary-area-item.thb-secondary-myaccount:hover span:after, .thb-secondary-area-item.thb-secondary-myaccount:focus span:after {
          transform: scale(1, 1); }
    .thb-secondary-area-item.thb-secondary-cart .thb-item-count svg {
      fill: var(--color-header-bg, #fff);
      width: 8px; }
    .thb-secondary-area-item svg {
      pointer-events: none; }
  .thb-secondary-area .thb-secondary-item-icon {
    position: relative; }
  .thb-secondary-area .thb-item-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    font-size: 0.625rem;
    font-weight: var(--font-body-bold-weight, 600);
    width: 19px;
    height: 19px;
    border-radius: 50%;
    background: var(--color-header-icons, --color-accent);
    color: var(--color-header-bg, #fff);
    position: absolute;
    top: -8px;
    right: -12px; }

.logolink {
  display: inline-flex;
  margin: 20px 0; }
  .logolink.text-logo {
    font-size: 1.125rem;
    font-weight: var(--font-body-bold-weight, 600);
    line-height: 1;
    word-break: break-all;
    color: var(--color-header-links, --color-accent); }
    .logolink.text-logo:hover, .logolink.text-logo:focus {
      color: var(--color-header-links-hover, --color-accent2); }
    @media only screen and (min-width: 768px) {
      .logolink.text-logo {
        font-size: 1.5rem; } }
  .logolink .logoimg {
    width: auto;
    height: var(--logo-height-mobile, 30px);
    object-fit: contain;
    object-position: left; }
    @media only screen and (min-width: 768px) {
      .logolink .logoimg {
        height: var(--logo-height, 30px); } }

.thb-header-mobile-left {
  display: inline-flex;
  margin-right: auto; }
  @media only screen and (min-width: 1068px) {
    .thb-header-mobile-left {
      display: none; } }
  [dir="rtl"] .thb-header-mobile-left {
    margin-right: 0; }

.thb-header-desktop-left {
  display: none;
  line-height: 1; }
  @media only screen and (min-width: 1068px) {
    .thb-header-desktop-left {
      display: inline-flex;
      margin-right: auto; }
      [dir="rtl"] .thb-header-desktop-left {
        margin-right: 0; } }

.mobile-toggle-wrapper {
  display: inline-flex; }
  .no-js .mobile-toggle-wrapper[open] .mobile-menu-drawer {
    opacity: 1;
    visibility: visible;
    transform: translateY(0); }
  .no-js .mobile-toggle-wrapper[open] .mobile-toggle span:nth-child(1) {
    transform: rotateZ(45deg) translateY(-1px); }
  .no-js .mobile-toggle-wrapper[open] .mobile-toggle span:nth-child(2) {
    opacity: 0; }
  .no-js .mobile-toggle-wrapper[open] .mobile-toggle span:nth-child(3) {
    transform: rotateZ(-45deg); }
  .js .mobile-toggle-wrapper[open].active .mobile-menu-drawer {
    opacity: 1;
    visibility: visible;
    transform: translateY(0); }
  .js .mobile-toggle-wrapper[open].active .mobile-toggle span:nth-child(1) {
    transform: rotateZ(45deg) translateY(-3px); }
  .js .mobile-toggle-wrapper[open].active .mobile-toggle span:nth-child(2) {
    opacity: 0; }
  .js .mobile-toggle-wrapper[open].active .mobile-toggle span:nth-child(3) {
    transform: rotateZ(-45deg) translateY(1px); }
  .mobile-toggle-wrapper summary::-webkit-details-marker {
    display: none; }

.mobile-toggle {
  display: inline-flex;
  position: relative;
  width: 48px;
  height: 48px;
  margin-left: -15px;
  display: flex;
  align-items: center;
  justify-content: center; }
  .mobile-toggle span {
    width: 18px;
    height: 1.5px;
    background: var(--color-header-icons, --color-accent);
    position: absolute;
    border-radius: 1px;
    top: 18px;
    left: 15px; }
    .mobile-toggle span:nth-child(1) {
      transform-origin: top left; }
    .mobile-toggle span:nth-child(2) {
      top: 23px; }
    .mobile-toggle span:nth-child(3) {
      transform-origin: top left;
      top: 28px; }

.mobile-menu-drawer {
  display: none;
  opacity: 0;
  visibility: hidden; }

.full-menu {
  display: none;
  margin: 0 auto;
  max-width: 100%; }
  @media only screen and (min-width: 1068px) {
    .full-menu {
      display: inline-flex; } }

.thb-full-menu {
  margin: 0;
  padding: 0;
  list-style: none;
  text-align: center;
  font-size: 0.9375rem; }
  .thb-full-menu a {
    color: var(--color-header-links, --color-accent);
    position: relative;
    font-size: calc(var(--font-navigation-scale, 1) * 15px); }
    .navigation-uppercase-true .thb-full-menu a {
      text-transform: uppercase; }
    .thb-full-menu a:after {
      content: "";
      display: block;
      position: absolute;
      top: 100%;
      left: 0;
      width: 100%;
      will-change: transform;
      height: 1px;
      transform: scale(0, 1);
      transform-origin: left center;
      background: var(--color-header-links-hover, --color-accent); }
    .thb-full-menu a:hover, .thb-full-menu a:focus {
      color: var(--color-header-links-hover, --color-accent2); }
      .thb-full-menu a:hover:after, .thb-full-menu a:focus:after {
        transform: scale(1, 1); }
      .thb-full-menu a:hover svg path, .thb-full-menu a:focus svg path {
        stroke: var(--color-header-links-hover, --color-accent2); }
  .thb-full-menu > li {
    display: inline-flex;
    padding: 0 15px;
    align-items: center; }
    .thb-full-menu > li > a {
      margin: 10px 0;
      font-weight: var(--font-body-medium-weight, 500); }
  .thb-full-menu li.menu-item-has-children {
    position: relative;
    z-index: 1; }
    .thb-full-menu li.menu-item-has-children:hover {
      z-index: 2; }
      .thb-full-menu li.menu-item-has-children:hover > .sub-menu {
        visibility: visible;
        opacity: 1; }
      .thb-full-menu li.menu-item-has-children:hover:before {
        content: attr(data-item-title);
        position: absolute;
        height: 100%;
        top: 0;
        margin-left: -30px;
        padding-left: 30px;
        padding-right: 30px;
        opacity: 0; }
    .thb-full-menu li.menu-item-has-children.left-submenu .sub-menu {
      left: auto;
      right: calc(100% + 35px); }
    .thb-full-menu li.menu-item-has-children.menu-item-has-megamenu {
      position: static; }
      .thb-full-menu li.menu-item-has-children.menu-item-has-megamenu .sub-menu {
        left: 0;
        right: 0;
        border-top: 1px solid var(--color-header-border, var(--color-border));
        box-shadow: 0px 10px 15px rgba(0, 0, 0, 0.1); }
      .thb-full-menu li.menu-item-has-children.menu-item-has-megamenu .sub-menu.mega-menu-container .mega-menu-promotion img {
        transform: scale(1); }
      .thb-full-menu li.menu-item-has-children.menu-item-has-megamenu .sub-menu.mega-menu-container .mega-menu-promotion:hover img {
        transform: scale(1.05); }
    .thb-full-menu li.menu-item-has-children > a {
      padding-right: 15px;
      position: relative; }
      .thb-full-menu li.menu-item-has-children > a:focus + .sub-menu {
        display: block;
        opacity: 1;
        visibility: visible;
        transform: translateY(0px); }
      .thb-full-menu li.menu-item-has-children > a svg {
        position: absolute;
        top: 50%;
        right: 0;
        margin-top: -3px; }
    .thb-full-menu li.menu-item-has-children:focus-within {
      z-index: 1; } /*Z INDEX ERROR SHOP ALL*/
      .thb-full-menu li.menu-item-has-children:focus-within > .sub-menu {
        display: block;
        opacity: 1;
        visibility: visible; }
        .thb-full-menu li.menu-item-has-children:focus-within > .sub-menu.mega-menu-container {
          display: flex; }
  .thb-full-menu .sub-menu {
    position: absolute;
    top: 100%;
    left: -15px;
    font-size: calc(var(--font-navigation-scale, 1) * 14px);
    line-height: 1;
    padding: 22px 30px;
    background: var(--color-header-bg, #fff);
    box-shadow: 0px 2px 10px rgba(0, 0, 0, 0.15);
    list-style: none;
    margin: 0;
    text-align: left;
    white-space: nowrap;
    line-height: 1.1;
    min-width: 190px;
    opacity: 0;
    visibility: hidden; }
    .thb-full-menu .sub-menu a:not(.text-button):after {
      top: calc(100% - 3px); }
    .thb-full-menu .sub-menu ul {
      line-height: inherit; }
    .thb-full-menu .sub-menu li a {
      display: inline-block;
      padding-top: 5px;
      padding-bottom: 5px; }
    .thb-full-menu .sub-menu .sub-menu {
      top: -22px;
      left: calc(100% + 35px); }
    .thb-full-menu .sub-menu li.menu-item-has-children:hover:before {
      width: calc(100% + 65px); }
    .thb-full-menu .sub-menu.mega-menu-container {
      padding: 0;
      display: flex; }
  .thb-full-menu .mega-menu-columns {
    display: grid;
    grid-auto-columns: minmax(0, 1fr);
    grid-auto-flow: column;
    grid-column-gap: 20px;
    list-style: none;
    padding: 50px;
    margin: 0;
    white-space: initial;
    flex: 1; }
    @media only screen and (min-width: 1200px) {
      .thb-full-menu .mega-menu-columns {
        grid-column-gap: 30px; } }
    .thb-full-menu .mega-menu-columns ul {
      list-style: none;
      margin: 0;
      padding: 0; }
    .thb-full-menu .mega-menu-columns__heading {
      font-size: calc(var(--font-navigation-scale, 1) * 12px);
      text-transform: uppercase;
      font-weight: var(--font-body-bold-weight, 600);
      letter-spacing: 0.1em;
      padding: 0;
      margin-bottom: 10px; }

.mega-menu-promotion {
  width: 25vw;
  position: relative;
  overflow: hidden; }
  .mega-menu-promotion > a {
    display: block;
    height: 100%; }
    .mega-menu-promotion > a:after {
      content: none; }
  .mega-menu-promotion img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transform: scale(1.05);
    will-change: transform;
    transition: all 0.5s cubic-bezier(0.104, 0.204, 0.492, 1); }
  .mega-menu-promotion--cover {
    position: absolute;
    bottom: 0;
    left: 0;
    max-width: 100%;
    color: #fff;
    white-space: normal;
    padding: 0 50px 50px 50px; }
    .mega-menu-promotion--cover p {
      font-size: 1rem;
      line-height: 1.375rem;
      letter-spacing: 0.1em;
      font-weight: var(--font-body-bold-weight, 600);
      text-transform: uppercase;
      margin-bottom: 15px; }
    .mega-menu-promotion--cover .text-button:before, .mega-menu-promotion--cover .text-button:after {
      top: calc(100% + 2px); }
    .mega-menu-promotion--cover .text-button:hover {
      color: #fff; }
  .mega-menu-promotion:hover img {
    transform: scale(1.05); }


.animations-true .animate-fade {
  opacity: 0; }

.animations-true .line-child {
  overflow: hidden; }


.thb-localization-forms {
  display: block;
  text-align: right; }
  .thb-localization-forms .shopify-localization-form {
    display: inline-flex; }
    .thb-localization-forms .shopify-localization-form > div {
      margin-left: 15px; }
  .thb-localization-forms .select select {
    background: none;
    border: none;
    padding: 0;
    height: auto;
    margin: 0;
    font-size: 0.75rem;
    line-height: 1; }
  .thb-localization-forms.inside-header .select {
    margin: 0 15px 0 0;
    padding-right: 12px; }
    .thb-localization-forms.inside-header .select-arrow {
      right: 0; }
      .thb-localization-forms.inside-header .select-arrow svg path {
        stroke: var(--color-header-text, --color-body); }
    .thb-localization-forms.inside-header .select select {
      font-weight: var(--font-body-medium-weight, 500);
      font-size: calc(var(--font-navigation-scale, 1) * 15px);
      color: var(--color-header-text, --color-body); }
      .navigation-uppercase-true .thb-localization-forms.inside-header .select select {
        text-transform: uppercase; }

.shopify-payment-button__more-options,
.spr-summary-actions-newreview,
.text-button {
  display: inline-flex;
  font-size: 0.9375rem;
  height: 1.0625rem;
  line-height: 1.0625rem;
  margin-right: 15px;
  font-weight: 400;
  letter-spacing: var(--button-letter-spacing, 0.02em);
  cursor: pointer;
  position: relative; }
  .shopify-payment-button__more-options:after, .shopify-payment-button__more-options:before,
  .spr-summary-actions-newreview:after,
  .spr-summary-actions-newreview:before,
  .text-button:after,
  .text-button:before {
    content: "";
    display: block;
    position: absolute;
    top: calc(100% + 2px);
    left: 0;
    width: 100%;
    height: 1px;
    pointer-events: none; }
  .shopify-payment-button__more-options:before,
  .spr-summary-actions-newreview:before,
  .text-button:before {
    background: rgba(var(--color-accent-rgb), 0.4); }
  .shopify-payment-button__more-options:after,
  .spr-summary-actions-newreview:after,
  .text-button:after {
    background: var(--color-accent);
    transform-origin: left center;
    transform: scale(0, 1); }
  @media (hover: hover) {
    .shopify-payment-button__more-options:hover:after,
    .spr-summary-actions-newreview:hover:after,
    .text-button:hover:after {
      transform: scale(1, 1); } }
  .shopify-payment-button__more-options.white,
  .spr-summary-actions-newreview.white,
  .text-button.white {
    color: #fff; }
    .shopify-payment-button__more-options.white:before,
    .spr-summary-actions-newreview.white:before,
    .text-button.white:before {
      background: rgba(255, 255, 255, 0.2); }
    .shopify-payment-button__more-options.white:after,
    .spr-summary-actions-newreview.white:after,
    .text-button.white:after {
      background: #fff; }

button {
  color: var(--color-accent);
  cursor: pointer; }

.button,
input[type="submit"] {
  display: inline-flex;
  cursor: pointer;
  padding: 7px 30px;
  align-items: center;
  justify-content: center;
  height: 48px;
  font-size: 0.875rem;
  font-weight: var(--font-body-bold-weight, 600);
  letter-spacing: var(--button-letter-spacing, 0.02em);
  border: 1px solid var(--solid-button-background, var(--color-accent));
  background: var(--solid-button-background, var(--color-accent));
  color: var(--solid-button-label, #fff);
  border-radius: var(--button-border-radius, 0px);
  text-align: center;
  position: relative;
  z-index: 1;
  overflow: hidden;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  transition: color 0.25s cubic-bezier(0.104, 0.204, 0.492, 1), background-color 0.25s cubic-bezier(0.104, 0.204, 0.492, 1), border-color 0.25s cubic-bezier(0.104, 0.204, 0.492, 1); }
  .button-uppercase-true .button, .button-uppercase-true
  input[type="submit"] {
    text-transform: uppercase; }
  .button:before,
  input[type="submit"]:before {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    bottom: 0;
    left: -5%;
    width: 125%;
    height: 100%;
    background: var(--bg-body);
    opacity: 0;
    z-index: 5;
    opacity: 1;
    border-radius: var(--button-border-radius, 0px);
    transform-origin: bottom left;
    backface-visibility: hidden;
    transform: rotate3d(0, 0, 1, 6deg) translate3d(-1.2em, 110%, 0);
    will-change: transform; }
  @media screen and (hover: hover) {
    .button:hover, .button:focus, .button.loading,
    [loading="true"] .button,
    input[type="submit"]:hover,
    input[type="submit"]:focus,
    input[type="submit"].loading,
    [loading="true"]
    input[type="submit"] {
      color: var(--outline-button-label, var(--color-accent)); }
      .button:hover:before, .button:focus:before, .button.loading:before,
      [loading="true"] .button:before,
      input[type="submit"]:hover:before,
      input[type="submit"]:focus:before,
      input[type="submit"].loading:before,
      [loading="true"]
      input[type="submit"]:before {
        transform: rotate3d(0, 0, 1, 0) translateZ(0); } }
  .button.loading span,
  [loading="true"] .button span,
  input[type="submit"].loading span,
  [loading="true"]
  input[type="submit"] span {
    opacity: 0; }
  .button.loading .loading-overlay,
  [loading="true"] .button .loading-overlay,
  input[type="submit"].loading .loading-overlay,
  [loading="true"]
  input[type="submit"] .loading-overlay {
    opacity: 1; }
  .button span,
  input[type="submit"] span {
    position: relative;
    z-index: 8; }
  .button .loading-overlay,
  input[type="submit"] .loading-overlay {
    opacity: 0;
    position: absolute;
    display: flex;
    align-items: center;
    justify-content: center;
    pointer-events: none; }
    .button .loading-overlay svg,
    input[type="submit"] .loading-overlay svg {
      width: 20px;
      height: 20px; }
  .button.full,
  input[type="submit"].full {
    width: 100%; }
  .button.pill,
  input[type="submit"].pill {
    border-radius: 500px; }
  .button.small,
  input[type="submit"].small {
    height: 32px;
    padding: 5px 20px;
    letter-spacing: 0.02em;
    font-weight: var(--font-body-medium-weight, 500);
    text-transform: none; }
  .button.medium,
  input[type="submit"].medium {
    height: 40px;
    font-size: 0.75rem; }
  .button.white,
  input[type="submit"].white {
    background: #fff;
    border-color: #fff;
    color: var(--color-body); }
    .button.white:before,
    input[type="submit"].white:before {
      background: var(--color-body); }
    @media screen and (hover: hover) {
      .button.white:hover,
      input[type="submit"].white:hover {
        color: #fff;
        border-color: var(--color-body); } }
  .button.outline,
  input[type="submit"].outline {
    border: 1px solid var(--outline-button-label, var(--color-accent));
    color: var(--outline-button-label, var(--color-accent));
    background: transparent; }
    .button.outline:before,
    input[type="submit"].outline:before {
      background: var(--outline-button-label, var(--color-accent)); }
    @media screen and (hover: hover) {
      .button.outline:hover,
      input[type="submit"].outline:hover {
        background: transparent;
        color: var(--solid-button-label, #fff); } }
    .button.outline:focus,
    input[type="submit"].outline:focus {
      background: transparent;
      color: var(--solid-button-label, #fff); }
    @media screen and (hover: hover) {
      .button.outline .loading-overlay .spinner-path,
      input[type="submit"].outline .loading-overlay .spinner-path {
        stroke: #fff; } }
    .button.outline.white,
    input[type="submit"].outline.white {
      border-color: #fff;
      color: #fff; }
      .button.outline.white:before,
      input[type="submit"].outline.white:before {
        background: #fff; }
      .button.outline.white:focus,
      input[type="submit"].outline.white:focus {
        color: var(--color-body); }
      @media screen and (hover: hover) {
        .button.outline.white:hover,
        input[type="submit"].outline.white:hover {
          color: var(--color-body); } }
  .button[disabled],
  input[type="submit"][disabled] {
    background: transparent;
    color: var(--color-accent);
    border: 1px solid var(--color-border);
    cursor: not-allowed;
    pointer-events: none; }
    .button[disabled] span:not(.loading-overlay),
    input[type="submit"][disabled] span:not(.loading-overlay) {
      opacity: 0.5; }


form {
  margin: 0; }
  form fieldset {
    padding: 0;
    margin: 0;
    border: 0; }

input[type="submit"]:hover, input[type="submit"]:focus, input[type="submit"].loading,
[loading="true"] input[type="submit"] {
  color: var(--solid-button-label, #fff); }


input[type="text"],
input[type="password"],
input[type="date"],
input[type="datetime"],
input[type="email"],
input[type="number"],
input[type="search"],
input[type="tel"],
input[type="time"],
input[type="url"],
textarea,
select {
  border: 1px solid var(--color-form-border);
  padding: 12px 17px;
  height: 48px;
  margin-bottom: 10px;
  color: var(--color-body);
  font-size: 0.75rem;
  font-weight: 400;
  background: transparent;
  max-width: 100%;
  border-radius: 0;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none; }
  input[type="text"]:focus,
  input[type="password"]:focus,
  input[type="date"]:focus,
  input[type="datetime"]:focus,
  input[type="email"]:focus,
  input[type="number"]:focus,
  input[type="search"]:focus,
  input[type="tel"]:focus,
  input[type="time"]:focus,
  input[type="url"]:focus,
  textarea:focus,
  select:focus {
    border-color: var(--color-accent); }
  input[type="text"]:-moz-placeholder,
  input[type="password"]:-moz-placeholder,
  input[type="date"]:-moz-placeholder,
  input[type="datetime"]:-moz-placeholder,
  input[type="email"]:-moz-placeholder,
  input[type="number"]:-moz-placeholder,
  input[type="search"]:-moz-placeholder,
  input[type="tel"]:-moz-placeholder,
  input[type="time"]:-moz-placeholder,
  input[type="url"]:-moz-placeholder,
  textarea:-moz-placeholder,
  select:-moz-placeholder {
    color: rgba(var(--color-body-rgb), 0); }
  input[type="text"]::-moz-placeholder,
  input[type="password"]::-moz-placeholder,
  input[type="date"]::-moz-placeholder,
  input[type="datetime"]::-moz-placeholder,
  input[type="email"]::-moz-placeholder,
  input[type="number"]::-moz-placeholder,
  input[type="search"]::-moz-placeholder,
  input[type="tel"]::-moz-placeholder,
  input[type="time"]::-moz-placeholder,
  input[type="url"]::-moz-placeholder,
  textarea::-moz-placeholder,
  select::-moz-placeholder {
    color: rgba(var(--color-body-rgb), 0); }
  input[type="text"]:-ms-input-placeholder,
  input[type="password"]:-ms-input-placeholder,
  input[type="date"]:-ms-input-placeholder,
  input[type="datetime"]:-ms-input-placeholder,
  input[type="email"]:-ms-input-placeholder,
  input[type="number"]:-ms-input-placeholder,
  input[type="search"]:-ms-input-placeholder,
  input[type="tel"]:-ms-input-placeholder,
  input[type="time"]:-ms-input-placeholder,
  input[type="url"]:-ms-input-placeholder,
  textarea:-ms-input-placeholder,
  select:-ms-input-placeholder {
    color: rgba(var(--color-body-rgb), 0); }
  input[type="text"]::-webkit-input-placeholder,
  input[type="password"]::-webkit-input-placeholder,
  input[type="date"]::-webkit-input-placeholder,
  input[type="datetime"]::-webkit-input-placeholder,
  input[type="email"]::-webkit-input-placeholder,
  input[type="number"]::-webkit-input-placeholder,
  input[type="search"]::-webkit-input-placeholder,
  input[type="tel"]::-webkit-input-placeholder,
  input[type="time"]::-webkit-input-placeholder,
  input[type="url"]::-webkit-input-placeholder,
  textarea::-webkit-input-placeholder,
  select::-webkit-input-placeholder {
    color: rgba(var(--color-body-rgb), 0); }
  input[type="text"].full,
  input[type="password"].full,
  input[type="date"].full,
  input[type="datetime"].full,
  input[type="email"].full,
  input[type="number"].full,
  input[type="search"].full,
  input[type="tel"].full,
  input[type="time"].full,
  input[type="url"].full,
  textarea.full,
  select.full {
    width: 100%; }
  input[type="text"].invalid,
  input[type="password"].invalid,
  input[type="date"].invalid,
  input[type="datetime"].invalid,
  input[type="email"].invalid,
  input[type="number"].invalid,
  input[type="search"].invalid,
  input[type="tel"].invalid,
  input[type="time"].invalid,
  input[type="url"].invalid,
  textarea.invalid,
  select.invalid {
    border-color: #e93636; }

input[type="checkbox"],
input[type="radio"] {
  border: 1px solid var(--color-form-border);
  width: 20px;
  height: 20px;
  border-radius: 3px;
  margin: 0 10px 0 0;
  vertical-align: middle; }

textarea {
  height: auto;
  min-height: 200px; }

label {
  font-size: 0.8125rem;
  letter-spacing: 0.02em;
  font-weight: 400;
  color: var(--color-body); }

select {
  width: auto; }
  select.resize-select {
    width: 100px;
    overflow: hidden;
    text-overflow: ellipsis;
    transition-property: color; }

@media only screen and (min-width: 1068px) {
  .fields {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-column-gap: 10px; } }

.field {
  position: relative; }
  .field label {
    position: absolute;
    display: flex;
    align-items: center;
    top: 0;
    left: 0;
    padding: 14px 17px;
    height: 48px;
    pointer-events: none;
    color: rgba(var(--color-body-rgb), 0.6); }
    [dir="rtl"] .field label {
      left: auto;
      right: 0; }
  .field textarea:focus + label,
  .field textarea:not(:placeholder-shown) + label,
  .field input[type="text"]:focus + label,
  .field input[type="text"]:not(:placeholder-shown) + label,
  .field input[type="password"]:focus + label,
  .field input[type="password"]:not(:placeholder-shown) + label,
  .field input[type="date"]:focus + label,
  .field input[type="date"]:not(:placeholder-shown) + label,
  .field input[type="datetime"]:focus + label,
  .field input[type="datetime"]:not(:placeholder-shown) + label,
  .field input[type="email"]:focus + label,
  .field input[type="email"]:not(:placeholder-shown) + label,
  .field input[type="number"]:focus + label,
  .field input[type="number"]:not(:placeholder-shown) + label,
  .field input[type="search"]:focus + label,
  .field input[type="search"]:not(:placeholder-shown) + label,
  .field input[type="tel"]:focus + label,
  .field input[type="tel"]:not(:placeholder-shown) + label,
  .field input[type="time"]:focus + label,
  .field input[type="time"]:not(:placeholder-shown) + label,
  .field input[type="url"]:focus + label,
  .field input[type="url"]:not(:placeholder-shown) + label,
  .field select:focus + label,
  .field select:not(:placeholder-shown) + label {
    background-color: var(--bg-body, #fff);
    font-size: 0.6875rem;
    padding: 0 6px;
    height: auto;
    left: 11px;
    transform: translateY(-50%); }
    [dir="rtl"] .field textarea:focus + label, [dir="rtl"]
    .field textarea:not(:placeholder-shown) + label, [dir="rtl"]
    .field input[type="text"]:focus + label, [dir="rtl"]
    .field input[type="text"]:not(:placeholder-shown) + label, [dir="rtl"]
    .field input[type="password"]:focus + label, [dir="rtl"]
    .field input[type="password"]:not(:placeholder-shown) + label, [dir="rtl"]
    .field input[type="date"]:focus + label, [dir="rtl"]
    .field input[type="date"]:not(:placeholder-shown) + label, [dir="rtl"]
    .field input[type="datetime"]:focus + label, [dir="rtl"]
    .field input[type="datetime"]:not(:placeholder-shown) + label, [dir="rtl"]
    .field input[type="email"]:focus + label, [dir="rtl"]
    .field input[type="email"]:not(:placeholder-shown) + label, [dir="rtl"]
    .field input[type="number"]:focus + label, [dir="rtl"]
    .field input[type="number"]:not(:placeholder-shown) + label, [dir="rtl"]
    .field input[type="search"]:focus + label, [dir="rtl"]
    .field input[type="search"]:not(:placeholder-shown) + label, [dir="rtl"]
    .field input[type="tel"]:focus + label, [dir="rtl"]
    .field input[type="tel"]:not(:placeholder-shown) + label, [dir="rtl"]
    .field input[type="time"]:focus + label, [dir="rtl"]
    .field input[type="time"]:not(:placeholder-shown) + label, [dir="rtl"]
    .field input[type="url"]:focus + label, [dir="rtl"]
    .field input[type="url"]:not(:placeholder-shown) + label, [dir="rtl"]
    .field select:focus + label, [dir="rtl"]
    .field select:not(:placeholder-shown) + label {
      left: auto;
      right: 11px; }
  .field textarea.invalid + label,
  .field input[type="text"].invalid + label,
  .field input[type="password"].invalid + label,
  .field input[type="date"].invalid + label,
  .field input[type="datetime"].invalid + label,
  .field input[type="email"].invalid + label,
  .field input[type="number"].invalid + label,
  .field input[type="search"].invalid + label,
  .field input[type="tel"].invalid + label,
  .field input[type="time"].invalid + label,
  .field input[type="url"].invalid + label,
  .field select.invalid + label {
    color: #e93636; }

.searchform fieldset {
  position: relative; }
  .searchform fieldset input {
    width: 100%;
    margin: 0;
    padding-right: 50px; }
    .searchform fieldset input:-moz-placeholder {
      color: rgba(var(--color-body-rgb), 0.6); }
    .searchform fieldset input::-moz-placeholder {
      color: rgba(var(--color-body-rgb), 0.6); }
    .searchform fieldset input:-ms-input-placeholder {
      color: rgba(var(--color-body-rgb), 0.6); }
    .searchform fieldset input::-webkit-input-placeholder {
      color: rgba(var(--color-body-rgb), 0.6); }
  .searchform fieldset .thb-search-submit {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 50px; }
    .searchform fieldset .thb-search-submit svg {
      height: 16px; }

.custom-checkbox[type="checkbox"] {
  -webkit-appearance: none;
  appearance: none;
  width: 48px;
  height: 24px;
  border-radius: 12px;
  border: 0;
  background: var(--color-border);
  position: relative;
  cursor: pointer; }
  .custom-checkbox[type="checkbox"]:after {
    content: "";
    display: block;
    width: 16px;
    height: 16px;
    position: absolute;
    top: 4px;
    left: 4px;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0px 2px 10px rgba(0, 0, 0, 0.15); }
  .custom-checkbox[type="checkbox"]:checked {
    background: var(--color-accent); }
    .custom-checkbox[type="checkbox"]:checked:after {
      transform: translateX(24px); }

.select {
  position: relative;
  margin-bottom: 20px; }
  .select select {
    padding-right: 24px;
    margin-bottom: 0; }
  .select-arrow {
    display: flex;
    position: absolute;
    top: 50%;
    right: 12px;
    margin-top: -3.5px;
    pointer-events: none;
    line-height: 0; }

.form-notification {
  display: flex;
  align-items: center;
  font-size: 0.8125rem; }
  .form-notification svg {
    margin-right: 10px; }
  .form-notification[hidden] {
    display: none; }
  .form-notification .errors ul {
    list-style: none;
    margin: 0;
    padding: 0; }
  .form-notification ul {
    list-style: none;
    margin: 0;
    padding: 0; }


.quantity {
  display: inline-flex;
  position: relative;
  border: 1px solid var(--color-form-border);
  padding: 0 30px;
  border-radius: var(--button-border-radius, 0px); }
  .quantity .qty {
    display: inline-flex;
    padding: 0;
    width: 25px;
    height: 46px;
    line-height: 46px;
    text-align: center;
    border: 0;
    justify-content: center;
    background: transparent;
    font-size: 0.875rem;
    font-weight: var(--font-body-bold-weight, 600);
    margin: 0;
    outline: 0; }
    .no-js .quantity .qty {
      width: 50px; }
  .quantity.buttons_added .qty {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    -moz-appearance: textfield; }
    .quantity.buttons_added .qty::-webkit-inner-spin-button, .quantity.buttons_added .qty::-webkit-outer-spin-button {
      margin: 0;
      -webkit-appearance: none;
      -moz-appearance: none;
      appearance: none; }
  .quantity.small-qty {
    padding: 0 25px; }
    .quantity.small-qty .qty {
      height: 34px;
      line-height: 1; }
    .quantity.small-qty .minus,
    .quantity.small-qty .plus {
      width: 25px;
      height: 34px; }
  .quantity .minus,
  .quantity .plus {
    display: flex;
    padding: 0;
    margin: 0;
    border: 0;
    height: 46px;
    position: absolute;
    justify-content: center;
    align-items: center;
    top: 0;
    left: 0;
    width: 30px;
    cursor: pointer;
    background: transparent;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none; }
    .quantity .minus svg,
    .quantity .plus svg {
      opacity: 0.6; }
    .quantity .minus:hover svg,
    .quantity .plus:hover svg {
      opacity: 1; }
    .quantity .minus.disabled,
    .quantity .plus.disabled {
      cursor: not-allowed; }
      .quantity .minus.disabled svg,
      .quantity .plus.disabled svg {
        opacity: 0.3; }
    .no-js .quantity .minus, .no-js
    .quantity .plus {
      display: none; }
  .quantity .plus {
    top: 0;
    left: auto;
    right: 0; }
  .quantity + .remove {
    margin-left: 13px; }
    [dir="rtl"] .quantity + .remove {
      margin-left: 0;
      margin-right: 13px; }

.remove svg {
  pointer-events: none; }

.badge {
  display: inline-flex;
  align-items: center;
  background: var(--color-badge-sale, #ee3a45);
  color: var(--color-badge-text, #fff);
  border-radius: var(--badge-corner-radius, 50px);
  text-transform: uppercase;
  font-size: 10px;
  letter-spacing: 0.05em;
  font-weight: var(--font-body-bold-weight, 600);
  height: 23px;
  padding: 0 10px;
  line-height: 0; }
  .badge.out-of-stock {
    background: var(--color-badge-sold-out, #acacac); }
  .badge.pre-order {
    background: var(--color-badge-preorder, #666666); }

.price {
  display: block;
  font-weight: 400;
  font-size: 0.9375rem;
  letter-spacing: 0.02em;
  color: var(--color-price, --color-accent); }
  .price > span {
    display: inline-flex;
    vertical-align: middle; }
  .price del .amount {
    opacity: 0.4; }
  .price del + ins {
    margin-left: 10px; }
  .price .from {
    font-weight: 400;
    text-transform: uppercase;
    font-size: 0.6875rem; }
  .price > .amount,
  .price ins {
    text-decoration: none; }
  .price .unit-price {
    margin-left: 5px;
    font-size: 0.75rem;
    color: rgba(var(--color-accent-rgb), 0.55); }
    .price .unit-price:before {
      content: "("; }
    .price .unit-price:after {
      content: ")"; }
    .price .unit-price.hidden {
      display: none; }

.product-cart-item {
  display: flex;
  width: 100%;
  align-items: flex-start;
  max-width: 400px;
  margin-bottom: 20px; }
  .product-cart-item-image {
    position: relative;
    flex-shrink: 0;
    margin-right: 15px; }
    @media only screen and (min-width: 768px) {
      .product-cart-item-image {
        margin-right: 25px; } }
    [dir="rtl"] .product-cart-item-image {
      margin-right: 0;
      margin-left: 15px; }
      @media only screen and (min-width: 768px) {
        [dir="rtl"] .product-cart-item-image {
          margin-left: 25px; } }
    .product-cart-item-image .loading-overlay {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      display: none;
      justify-content: center;
      align-items: center;
      transform: none;
      background: rgba(var(--bg-body-rgb), 0.5);
      backdrop-filter: blur(3px); }
      .product-cart-item-image .loading-overlay svg {
        width: 24px; }
  .product-cart-item-info .price {
    display: block; }
    @media only screen and (min-width: 1068px) {
      .product-cart-item-info .price {
        display: none; } }
  .product-cart-item-price {
    margin-left: auto;
    padding-left: 15px;
    text-align: right; }
    .product-cart-item-price .price {
      display: none; }
      @media only screen and (min-width: 1068px) {
        .product-cart-item-price .price {
          display: block; } }
      .product-cart-item-price .price .unit-price {
        display: block; }
  .product-cart-item img,
  .product-cart-item .thb-placeholder {
    width: 75px;
    height: auto; }
    @media only screen and (min-width: 768px) {
      .product-cart-item img,
      .product-cart-item .thb-placeholder {
        width: 96px; } }
  .product-cart-item .text-button {
    margin-top: 5px;
    font-size: 0.75rem;
    text-transform: uppercase; }
  .product-cart-item .product-card-quickview.loading span {
    opacity: 0; }
  .product-cart-item .product-card-quickview.loading:before, .product-cart-item .product-card-quickview.loading:after {
    display: none; }
  .product-cart-item .product-card-quickview .loading-overlay {
    width: 18px;
    height: 18px;
    top: calc(50% + 2px); }
  .product-cart-item .cart-product-link {
    display: block;
    font-size: calc(var(--font-product-title-scale, 1) * 0.9375rem);
    line-height: calc(var(--font-product-title-line-height-scale, 1) * 1.5);
    font-weight: var(--font-body-medium-weight, 500);
    display: block; }
    .product-title-uppercase-true .product-cart-item .cart-product-link {
      text-transform: uppercase; }
  .product-cart-item.thb-loading {
    pointer-events: none; }
    .product-cart-item.thb-loading .loading-overlay {
      display: flex; }
  .product-cart-item-options {
    font-size: 0.6875rem;
    opacity: 0.8;
    margin-top: 5px;
    letter-spacing: 0.02em;
    text-transform: uppercase; }
  .product-cart-item .small-qty {
    margin-top: 8px; }
  .product-cart-item .form-notification {
    margin-top: 8px; }

.cart-drawer {
  overflow: visible; }
  .cart-drawer .side-panel-inner {
    display: grid;
    grid-template-rows: auto 1fr auto;
    height: 100vh;
    position: relative;
    z-index: 5; }
  .cart-drawer .side-panel-content {
    overflow-x: hidden;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    padding-bottom: 0;
    background: var(--bg-body, #fff); }
  .cart-drawer .side-panel-footer {
    border-top: 1px solid var(--color-border);
    font-size: 0.875rem;
    position: relative;
    background: var(--bg-body, #fff); }
    .cart-drawer .side-panel-footer .cart-policy-text {
      font-size: 0.75rem;
      letter-spacing: 0.02em;
      margin-top: 5px;
      margin-bottom: 10px; }
    .cart-drawer .side-panel-footer .button {
      display: inline-block;
      padding: 12px 20px; }
  .cart-drawer-footer {
    padding: 0 30px 80px 30px; }
    @media only screen and (min-width: 768px) {
      .cart-drawer-footer {
        padding: 0 30px 30px 30px; } }
  .cart-drawer .product-cart-item {
    max-width: 100%; }
    .cart-drawer .product-cart-item--container {
      margin-bottom: 30px; }
  .cart-drawer--recommendations {
    display: block;
    padding: 15px; }
    @media only screen and (min-width: 1068px) {
      .cart-drawer--recommendations {
        padding: 15px 0; } }
    .cart-drawer--recommendations--products {
      padding: 0 15px;
      margin: 0 -15px;
      width: calc(100% + 30px);
      overflow-x: scroll;
      overflow-y: hidden;
      display: grid;
      grid-gap: 30px;
      grid-auto-flow: column;
      grid-auto-columns: max-content;
      scroll-snap-type: x mandatory;
      scrollbar-width: none;
      scroll-behavior: smooth; }
      .cart-drawer--recommendations--products::-webkit-scrollbar {
        display: none; }
      @media only screen and (min-width: 1068px) {
        .cart-drawer--recommendations--products {
          padding: 10px 0;
          grid-gap: 20px;
          grid-auto-flow: row;
          grid-auto-columns: 1fr;
          overflow: hidden;
          align-content: start;
          margin: 0 auto;
          width: 100%; } }
    .cart-drawer--recommendations--heading {
      letter-spacing: 0.02em;
      position: relative;
      font-size: 0.8125rem;
      line-height: 1.3;
      font-weight: var(--font-body-bold-weight, 600);
      text-transform: uppercase;
      margin-bottom: 20px; }
      @media only screen and (min-width: 1068px) {
        .cart-drawer--recommendations--heading {
          margin-bottom: 5px;
          text-align: center; } }
    .cart-drawer--recommendations--container {
      width: calc(100% + 60px);
      margin-left: -30px;
      margin-bottom: 0;
      margin-top: auto;
      background: var(--bg-body-darken, #f8f8f8);
      transition: transform 0.3s cubic-bezier(0.104, 0.204, 0.492, 1); }
      @media only screen and (min-width: 1068px) {
        .cart-drawer--recommendations--container {
          position: absolute;
          top: 0;
          left: 0;
          bottom: 0;
          width: 180px;
          padding: 0 15px;
          margin: 0;
          height: auto;
          z-index: -1;
          transition-delay: 0.25s;
          transform: translateX(0%);
          box-shadow: inset 0px 4px 40px rgba(0, 0, 0, 0.15);
          overflow-x: hidden;
          overflow-y: scroll;
          height: 100%; } }
      [dir="rtl"] .cart-drawer--recommendations--container {
        margin-right: -30px;
        margin-left: 0; }
        @media only screen and (min-width: 1068px) {
          [dir="rtl"] .cart-drawer--recommendations--container {
            margin: 0; } }
      @media only screen and (min-width: 1068px) {
        .cart-drawer--recommendations--container.active {
          transform: translateX(-100%); } }
    .cart-drawer--recommendations .product-cart-item {
      margin-bottom: 0;
      max-width: 320px; }
      @media only screen and (min-width: 1068px) {
        .cart-drawer--recommendations .product-cart-item {
          flex-direction: column;
          align-items: center;
          text-align: center; }
          .cart-drawer--recommendations .product-cart-item-image {
            margin: 0 0 15px 0; } }
      .cart-drawer--recommendations .product-cart-item .cart-product-link {
        font-size: calc(var(--font-product-title-scale, 1) * 0.8125rem); }
  .cart-drawer .free-shipping {
    font-size: 0.875rem;
    line-height: 1.2;
    text-align: center;
    margin-bottom: 25px; }
    .cart-drawer .free-shipping--text {
      margin-bottom: 10px; }
    .cart-drawer .free-shipping--bar {
      background: var(--color-border);
      height: 4px;
      width: 100%;
      position: relative; }
    .cart-drawer .free-shipping--percentage {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      transform: scale(var(--percentage, 0), 1);
      transform-origin: center left;
      background: var(--color-body); }
  .cart-drawer__empty-cart {
    height: 100%;
    padding: 10vh 0;
    display: flex;
    flex-direction: column;
    text-align: center;
    justify-content: center;
    align-items: center; }
    .cart-drawer__empty-cart svg {
      margin-bottom: 45px; }
    .cart-drawer__empty-cart + .cart-drawer--recommendations--container {
      display: none; }
  .cart-drawer--terms {
    margin-bottom: 15px; }
    .cart-drawer--terms a {
      color: var(--color-accent);
      text-decoration: underline;
      text-underline-offset: 2px; }
  .cart-drawer-buttons {
    margin-top: 15px;
    display: flex;
    flex-direction: column;
    align-items: center; }
    .cart-drawer-buttons form {
      width: 100%; }
    .cart-drawer-buttons .checkout b {
      font-weight: var(--font-body-bold-weight, 600);
      margin: 0 5px; }
  .cart-drawer .text-button {
    margin-top: 15px;
    margin-right: 0;
    font-size: 0.75rem;
    text-transform: uppercase; }
  .cart-drawer .mini-cart__row {
    display: flex;
    width: 100%;
    justify-content: space-between;
    border-bottom: 1px solid var(--color-border);
    padding: 14px 0;
    line-height: 1; }
    .cart-drawer .mini-cart__row span {
      font-weight: var(--font-body-medium-weight, 500); }
    .cart-drawer .mini-cart__row.total {
      border-bottom: 0; }
  .cart-drawer .order-note-toggle {
    padding: 14px 30px;
    align-items: center;
    background: var(--bg-body);
    color: var(--color-body); }
    .cart-drawer .order-note-toggle span {
      width: 10px;
      height: 10px;
      position: relative; }
      .cart-drawer .order-note-toggle span:before, .cart-drawer .order-note-toggle span:after {
        content: "";
        display: block;
        position: absolute;
        background: var(--color-body); }
      .cart-drawer .order-note-toggle span:before {
        top: 0;
        width: 1px;
        left: 4.5px;
        height: 10px; }
      .cart-drawer .order-note-toggle span:after {
        top: 4.5px;
        left: 0;
        width: 10px;
        height: 1px; }
    .cart-drawer .order-note-toggle__content {
      position: absolute;
      bottom: 0;
      left: 0;
      right: 0;
      padding: 30px;
      z-index: 40;
      background: var(--bg-body);
      box-shadow: 0px -8px 20px rgba(0, 0, 0, 0.05);
      transform: translateY(100%); }
      .cart-drawer .order-note-toggle__content-overlay {
        content: "";
        position: absolute;
        height: calc(100vh + 100%);
        bottom: 100%;
        right: 0;
        background: rgba(0, 0, 0, 0.2);
        left: 0;
        opacity: 0;
        z-index: 30;
        pointer-events: none; }
      .cart-drawer .order-note-toggle__content label {
        font-size: 0.75rem;
        text-transform: uppercase;
        margin-bottom: 20px;
        display: block;
        font-weight: var(--font-body-medium-weight, 500); }
      .cart-drawer .order-note-toggle__content textarea {
        width: 100%;
        min-height: 0; }
      .cart-drawer .order-note-toggle__content.active {
        transform: translateY(0); }
        .cart-drawer .order-note-toggle__content.active .order-note-toggle__content-overlay {
          pointer-events: all;
          opacity: 1; }

[role="main"] .shopify-policy__title {
  text-align: center;
  min-height: 250px;
  padding: 30px 0;
  display: flex;
  align-items: center;
  justify-content: center; }
  @media only screen and (min-width: 768px) {
    [role="main"] .shopify-policy__title {
      padding: 60px; } }

[role="main"] .shopify-policy__container {
  max-width: 100%;
  margin: 0 auto;
  padding: 0 12.5px; }
  @media only screen and (min-width: 768px) {
    [role="main"] .shopify-policy__container {
      padding: 0 40px; } }
  @media only screen and (min-width: 1068px) {
    [role="main"] .shopify-policy__container {
      max-width: 1140px; } }
  [role="main"] .shopify-policy__container .rte {
    margin-bottom: 40px; }
    @media only screen and (min-width: 768px) {
      [role="main"] .shopify-policy__container .rte {
        margin-bottom: 60px; } }



a, #wrapper .click-capture, .side-panel, .back-to-top, .back-to-top path, .header:after, .header.transparent--true:before, .header .logolink .logoimg, .thb-secondary-area-item.thb-secondary-myaccount span:after, .thb-secondary-area-item svg path, .thb-secondary-area .thb-item-count, .mobile-toggle span, .thb-full-menu a:after, .thb-full-menu li.menu-item-has-children > a svg path, .thb-full-menu .sub-menu, .thb-localization-forms.inside-header .select-arrow svg path, .shopify-payment-button__more-options:after,
.spr-summary-actions-newreview:after,
.text-button:after, .button:before,
input[type="submit"]:before, .button span,
input[type="submit"] span, input[type="text"],
input[type="password"],
input[type="date"],
input[type="datetime"],
input[type="email"],
input[type="number"],
input[type="search"],
input[type="tel"],
input[type="time"],
input[type="url"],
textarea,
select, input[type="checkbox"],
input[type="radio"], .field label, .custom-checkbox[type="checkbox"], .custom-checkbox[type="checkbox"]:after, .quantity .minus svg,
.quantity .plus svg, .cart-drawer .free-shipping--percentage, .cart-drawer .order-note-toggle__content, .cart-drawer .order-note-toggle__content-overlay, .flickity-page-dots .dot, .flickity-nav, .flickity-nav svg {
  transition: all 0.25s cubic-bezier(0.104, 0.204, 0.492, 1); }

.no-js .quantity .minus, .quantity .no-js .minus,
.no-js .quantity .plus, .quantity .no-js .plus, .no-js .flickity-nav {
  display: none !important; }


/*! Flickity v2.3.0
https://flickity.metafizzy.co
---------------------------------------------- */
.flickity-enabled {
  position: relative; }

.flickity-enabled:focus {
  outline: none; }

.flickity-viewport {
  overflow: hidden;
  position: relative;
  height: 100%;
  min-width: 100%; }

.flickity-slider {
  position: absolute;
  width: 100%;
  height: 100%;
  will-change: transform; }


.flickity-enabled.is-draggable {
  -webkit-tap-highlight-color: transparent;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none; }

.flickity-enabled.is-draggable .flickity-viewport {
  cursor: move;
  cursor: -webkit-grab;
  cursor: grab; }

.flickity-enabled.is-draggable .flickity-viewport.is-pointer-down {
  cursor: -webkit-grabbing;
  cursor: grabbing; }


.flickity-enabled.is-fade .flickity-slider > * {
  pointer-events: none;
  z-index: 0; }

.flickity-enabled.is-fade .flickity-slider > .is-selected {
  pointer-events: auto;
  z-index: 10; }

.flickity-enabled.is-fade .flickity-slider .carousel__slide {
  will-change: opacity, z-index; }

.flickity-enabled.is-fade.main-slideshow.transition--swipe .flickity-slider > * {
  opacity: 1 !important; }

.flickity-enabled.is-fade.main-slideshow.transition--swipe .slideshow__slide {
  will-change: clip-path, z-index; }
  .flickity-enabled.is-fade.main-slideshow.transition--swipe .slideshow__slide-bg {
    transform: scale(1.1); }


.flickity-page-dots {
  display: block;
  list-style: none;
  margin: 0;
  padding: 15px;
  text-align: center;
  line-height: 0; }
  .flickity-page-dots .dot {
    width: 8px;
    height: 8px;
    display: inline-block;
    opacity: 0.6;
    border-radius: 4px;
    margin: 0 10px;
    background: var(--color-text, #fff);
    cursor: pointer;
    position: relative; }
    .flickity-page-dots .dot:hover {
      opacity: 1; }
    .flickity-page-dots .dot .thb-pagination-svg {
      position: absolute;
      top: -6px;
      left: -6px;
      width: 20px;
      height: 20px;
      transform: rotateZ(-90deg);
      visibility: hidden; }
      .flickity-page-dots .dot .thb-pagination-svg circle {
        stroke-dasharray: 58 58;
        stroke-dashoffset: 58; }
    .flickity-page-dots .dot.is-selected {
      opacity: 1; }
      .flickity-page-dots .dot.is-selected .thb-pagination-svg {
        visibility: visible; }
        .flickity-page-dots .dot.is-selected .thb-pagination-svg circle {
          stroke-dashoffset: 0;
          transition: stroke-dashoffset var(--dot-speed) linear; }
  .flickity-page-dots.dot-style--logos {
    display: inline-flex;
    align-items: center;
    overflow: scroll;
    scrollbar-width: none; }
    .flickity-page-dots.dot-style--logos::-webkit-scrollbar {
      display: none; }
    .flickity-page-dots.dot-style--logos .dot {
      width: auto;
      height: 100px;
      background: none;
      flex-shrink: 0;
      display: inline-flex;
      align-items: center; }
      .flickity-page-dots.dot-style--logos .dot img {
        object-fit: contain;
        max-height: 100%;
        width: auto; }

.flickity-nav {
  background: var(--bg-body, #fff);
  border-radius: 50%;
  display: none;
  align-items: center;
  justify-content: center;
  position: absolute;
  top: 50%;
  width: 48px;
  height: 48px;
  margin-top: -24px;
  z-index: 30;
  opacity: 0;
  cursor: pointer;
  box-shadow: 0px 2px 10px rgba(0, 0, 0, 0.15); }
  .flickity-nav svg {
    pointer-events: none; }
  @media only screen and (min-width: 768px) {
    .flickity-enabled .flickity-nav {
      display: flex; } }
  .flickity-nav.flickity-prev {
    left: -24px; }
  .flickity-nav.flickity-next {
    right: -24px; }
  .flickity-nav:focus-visible {
    opacity: 1; }
  .flickity-nav:hover svg {
    transform: scale(1.2); }

.flickity-enabled:hover .flickity-nav {
  opacity: 1; }

.flickity-enabled.row .flickity-prev {
  left: -9px; }

.flickity-enabled.row .flickity-next {
  right: -9px; }

.flickity-progress {
  display: block;
  width: 100%;
  height: 1px;
  background: var(--color-border);
  border-radius: 0.5px;
  position: relative;
  margin-top: 20px; }
  .flickity-progress--bar {
    position: absolute;
    top: -1px;
    left: 0;
    height: 3px;
    background: var(--color-body);
    width: 0%;
    border-radius: 1.5px; }




a, #wrapper .click-capture, .side-panel, .back-to-top, .back-to-top path, .header:after, .header.transparent--true:before, .header .logolink .logoimg, .thb-secondary-area-item.thb-secondary-myaccount span:after, .thb-secondary-area-item svg path, .thb-secondary-area .thb-item-count, .mobile-toggle span, .thb-full-menu a:after, .thb-full-menu li.menu-item-has-children > a svg path, .thb-full-menu .sub-menu, .thb-localization-forms.inside-header .select-arrow svg path, .shopify-payment-button__more-options:after,
.spr-summary-actions-newreview:after,
.text-button:after, .button:before,
input[type="submit"]:before, .button span,
input[type="submit"] span, input[type="text"],
input[type="password"],
input[type="date"],
input[type="datetime"],
input[type="email"],
input[type="number"],
input[type="search"],
input[type="tel"],
input[type="time"],
input[type="url"],
textarea,
select, input[type="checkbox"],
input[type="radio"], .field label, .custom-checkbox[type="checkbox"], .custom-checkbox[type="checkbox"]:after, .quantity .minus svg,
.quantity .plus svg, .cart-drawer .free-shipping--percentage, .cart-drawer .order-note-toggle__content, .cart-drawer .order-note-toggle__content-overlay, .flickity-page-dots .dot, .flickity-nav, .flickity-nav svg {
  transition: all 0.25s cubic-bezier(0.104, 0.204, 0.492, 1); }

.no-js .quantity .minus, .quantity .no-js .minus,
.no-js .quantity .plus, .quantity .no-js .plus, .no-js .flickity-nav {
  display: none !important; }



.section-header {
  display: flex;
  flex-direction: column;
  margin-bottom: 30px; }
  .section-header--content {
    width: 100%;
    display: flex;
    flex-direction: column; }
    @media only screen and (min-width: 768px) {
      .section-header--content {
        max-width: 70%; } }
    .section-header--content .rte {
      margin-top: 5px; }
    .section-header--content p:last-child {
      margin-bottom: 0; }
  .section-header scroll-shadow {
    max-width: 100%; }
  .section-header--button {
    width: 100%;
    display: flex;
    align-items: flex-end;
    margin-top: 15px; }
    @media only screen and (min-width: 768px) {
      .section-header--button {
        justify-content: flex-end; } }
    .section-header--button .text-button {
      margin-right: 0; }
    .section-header--button.has--tabs .linked-to-tab {
      display: none; }
      .section-header--button.has--tabs .linked-to-tab.active {
        display: block; }
  .section-header-left--true .collection-tabs__list-link:first-child {
    margin-left: 0; }
  @media only screen and (min-width: 768px) {
    .section-header-left--true {
      flex-direction: row; } }
  .section-header-left--false {
    text-align: center; }
    @media only screen and (min-width: 768px) {
      .section-header-left--false {
        flex-direction: column; } }
    .section-header-left--false .section-header--content {
      margin: 0 auto;
      align-items: center; }
    .section-header-left--false .section-header--button {
      justify-content: center; }
  .section-header h2 {
    font-weight: var(--font-body-bold-weight, 600);
    margin-bottom: 0px; }

#product-grid .blog-post{
  display:none;
}
/* ARREGLO MENU SHOP ALL*/


.header__menu-item[aria-current],
.header__menu-item[aria-current="page"],
.header__menu-item.header__menu-item--active {
  pointer-events: auto !important;
}

/*


/***** DRAWERS ABOVE STICKY MENU – NO OVERLAY, NO STRIPE *****/


/* Raise drawers only while they're open */

body.cart-open .cart-drawer,
body.product-open .product-drawer,
body.quick-add-open .quick-add-drawer {
  position: fixed !important;
  top: 0; bottom: 0;
  right: 0; left: auto;            /* LTR */
  z-index: 13000 !important;       /* above Kobu (9999) */
  background: var(--bg-body, #fff);/* avoid hairline from transparent bg */
  transform: translateZ(0);        /* kill sub-pixel seam on high-DPI */
  backface-visibility: hidden;
  will-change: transform;
}

/* RTL: open from left, not right */
[dir="rtl"] body.cart-open .cart-drawer,
[dir="rtl"] body.product-open .product-drawer,
[dir="rtl"] body.quick-add-open .quick-add-drawer {
  left: 0; right: auto;
}

/* Drawer inner above its own parts */
body.cart-open .cart-drawer .side-panel-inner,
body.product-open .product-drawer .side-panel-inner,
body.quick-add-open .quick-add-drawer .side-panel-inner,
body.cart-open .cart-drawer .drawer__inner,
body.product-open .product-drawer .drawer__inner,
body.quick-add-open .quick-add-drawer .drawer__inner {
  position: relative;
  z-index: 13001 !important;
}

/* ============================================================
   CODIGO MENU STICKY
   ============================================================ */

/* Base drawer setup: fixed above all content */
.cart-drawer,
.product-drawer,
.quick-add-drawer {
  position: fixed !important;
  top: 0;
  bottom: 0;
  right: 0 !important;
  left: auto !important;
  z-index: 13000 !important;
  background: var(--bg-body, #fff);
  transform: translateX(100%);       /* hidden off-screen by default */
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: transform .3s ease, opacity .2s ease, visibility 0s linear .2s;
  backface-visibility: hidden;
  will-change: transform;
}

/* When open (slide in from right) */
body.cart-open .cart-drawer,
.cart-drawer.is-open,
.cart-drawer.active,
.cart-drawer[open],
body.product-open .product-drawer,
.product-drawer.is-open,
.product-drawer.active,
.product-drawer[open],
body.quick-add-open .quick-add-drawer,
.quick-add-drawer.is-open,
.quick-add-drawer.active,
.quick-add-drawer[open] {
  transform: translateX(0);
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transition: transform .3s ease, opacity .2s ease;
}

/* Prevent RTL flipping — always open from right */
[dir="rtl"] .cart-drawer,
[dir="rtl"] .product-drawer,
[dir="rtl"] .quick-add-drawer {
  left: auto !important;
  right: 0 !important;
}

/* Inner content above all overlays */
.cart-drawer .side-panel-inner,
.product-drawer .side-panel-inner,
.quick-add-drawer .side-panel-inner,
.cart-drawer .drawer__inner,
.product-drawer .drawer__inner,
.quick-add-drawer .drawer__inner {
  position: relative;
  z-index: 13001 !important;
}

/* Disable and remove all overlays */
.cart-drawer__overlay,
.product-drawer__overlay,
.quick-add-drawer__overlay,
.drawer__overlay,
.modal__overlay,
.side-panel-overlay,
.side-panel__overlay,
.thb-drawer-backdrop {
  display: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

/* Prevent page from shifting when drawers are open */
body.cart-open,
body.product-open,
body.quick-add-open,
body.drawer-open,
body.overflow-hidden {
  overflow: hidden !important;
  padding-right: 0 !important;
  margin-right: 0 !important;
  width: 100% !important;
  background-color: var(--bg-body, #fff);
}

/* Hide Kobu menu completely when any drawer is open */
body.cart-open .kobu-menu,
body.cart-open [data-kobu-sticky-clone],
body.product-open .kobu-menu,
body.product-open [data-kobu-sticky-clone],
body.quick-add-open .kobu-menu,
body.quick-add-open [data-kobu-sticky-clone],
body.drawer-open .kobu-menu,
body.drawer-open [data-kobu-sticky-clone] {
  display: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

/* Keep Kobu menu below drawers (when visible) */
.kobu-menu,
[data-kobu-sticky-clone] {
  z-index: 9000 !important;
}

/* Prevent any wrapper transforms or white gaps */
html, body {
  background: var(--bg-body, #fff);
  overscroll-behavior: contain;
}

.site-wrapper,
.page-wrapper,
#MainContent {
  transform: none !important;
  left: 0 !important;
  right: 0 !important;
}

/* =======================
   Add-ons / hardening
   ======================= */

/* 1) Explicit drawer width (no viewport rounding → no sliver) */
:root { --drawer-width: 92vw; }              /* phones */
@media (min-width: 768px) { :root { --drawer-width: 420px; } }  /* tablets/desktop */

.cart-drawer,
.product-drawer,
.quick-add-drawer {
  width: var(--drawer-width);
  max-width: 100%;
  box-sizing: border-box;        /* avoid sub-pixel overflow */
  outline: 0;
  border: 0;
  box-shadow: 0 8px 24px rgba(0,0,0,.18); /* subtle elevation (optional) */
  transform: translate3d(100%,0,0);       /* GPU path, prevents 1px seams */
}

/* 2) Scrolling inside the panel only (iOS rubber-band friendly) */
.cart-drawer .side-panel-content,
.product-drawer .side-panel-content,
.quick-add-drawer .side-panel-content,
.cart-drawer .drawer__inner,
.product-drawer .drawer__inner,
.quick-add-drawer .drawer__inner {
  height: 100%;
  overflow: auto;
  -webkit-overflow-scrolling: touch;
}

/* 3) When a drawer is open, lock BOTH html & body to prevent layout nudge */
html.cart-open, body.cart-open,
html.product-open, body.product-open,
html.quick-add-open, body.quick-add-open,
html.drawer-open, body.drawer-open,
html.overflow-hidden, body.overflow-hidden {
  overflow: hidden !important;
  padding-right: 0 !important;   /* block scrollbar compensation */
  margin-right: 0 !important;
  width: 100% !important;
}

/* 4) Safety: ensure the main wrapper never slides under the drawer */
.site-wrapper,
.page-wrapper,
#MainContent {
  transform: none !important;
  left: 0 !important;
  right: 0 !important;
}

/* 5) If your site is RTL, still open from the RIGHT (no flip) */
[dir="rtl"] .cart-drawer,
[dir="rtl"] .product-drawer,
[dir="rtl"] .quick-add-drawer {
  left: auto !important;
  right: 0 !important;
}

/* === FIX: Stop mobile drawer transitions from breaking desktop mega-menu === */

/* 1. Disable hidden mobile drawer animations on desktop viewports */
@media (min-width: 1024px) {
  #mobile-menu,
  .mobile-menu-drawer {
    display: none !important;
    opacity: 0 !important;
    visibility: hidden !important;
    transform: none !important;
    transition: none !important;
    position: absolute !important;
  }
}

/* 2. Neutralize 3D transforms & transitions that trigger WebKit repaint bugs */
@supports (-webkit-touch-callout: none) {
  .header,
  .thb-full-menu,
  .thb-full-menu .sub-menu,
  .thb-full-menu .mega-menu {
    -webkit-transform: none !important;
    transform: none !important;
    will-change: auto !important;
    backface-visibility: visible !important;
    perspective: none !important;
    transition: none !important;
  }
}

/* 3. Keep the active (“Shop All”) submenu visible and interactive */

.thb-full-menu li.menu-item-has-children > a[aria-current="page"] {
  pointer-events: auto !important;
}

.thb-full-menu li.menu-item-has-children > a[aria-current="page"] + .sub-menu {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  transform: none !important;
  pointer-events: auto !important;
  transition: none !important;
  z-index: 9999 !important;
}
*/
/* 4. Fallback if inline JS hides it again */

.thb-full-menu li.menu-item-has-children > a[aria-current="page"] + .sub-menu[style*="opacity: 0"],
.thb-full-menu li.menu-item-has-children > a[aria-current="page"] + .sub-menu[style*="visibility: hidden"] {
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
  display: block !important;
}

body.kobu-is-sticky .kobu-menu {
  display: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}


/* ============================
   HIDE KOBU MENU WHEN STICKY
   ============================ */

body.kobu-is-sticky .kobu-menu,
body.kobu-is-sticky [data-kobu-sticky-clone] {
  display: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
  z-index: -1 !important; /* Push behind everything just in case */
}
/* Push Kobu menu behind other UI when a drawer is open */

body.drawer-open .kobu-menu,
body.drawer-open [data-kobu-sticky-clone],
body.cart-open .kobu-menu,
body.cart-open [data-kobu-sticky-clone],
body.product-open .kobu-menu,
body.product-open [data-kobu-sticky-clone],
body.quick-add-open .kobu-menu,
body.quick-add-open [data-kobu-sticky-clone] {
  z-index: 1 !important;
  pointer-events: none !important;
}

body.menu-open .kobu-menu,
body.menu-open [data-kobu-sticky-clone] {
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
  z-index: 0 !important;
  position: absolute !important;
}
/* ✅ NEW: Hide Kobu menu when filters (facet drawer) are open */

body.filter-open .kobu-menu,
body.filter-open [data-kobu-sticky-clone],
.facet-drawer.is-open .kobu-menu,
.facet-drawer.is-open [data-kobu-sticky-clone],
.facet-drawer.active .kobu-menu,
.facet-drawer.active [data-kobu-sticky-clone],
.facet-drawer[open] .kobu-menu,
.facet-drawer[open] [data-kobu-sticky-clone] {
  display: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
  z-index: -1 !important;
}
/* Hide Kobu sticky menu and clone when facet drawer is active */

.facet-drawer.active ~ .kobu-menu,
.facet-drawer.active ~ [data-kobu-sticky-clone],
body.drawer-open .kobu-menu,
body.drawer-open [data-kobu-sticky-clone] {
  display: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
  z-index: -1 !important;
}
.facet-drawer.active ~ .kobu-menu,
.facet-drawer.active ~ [data-kobu-sticky-clone] {
  display: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
  z-index: -1 !important;
}
*/

.section-featured-collection .show-more-btn {
  display: inline-block;
  background: #000;
  color: #fff !important;
  padding: 12px 30px;
  border-radius: 50px;
  font-size: 16px;
  font-weight: 600;
  text-decoration: none !important;
  border: none;
  transition: 0.25s ease;
  line-height: 1;
}

.section-featured-collection .section-header--button {
  width: 100%;
  display: flex;
  justify-content: center;
}

.mobile-menu a {
  display: inline-block;
}

.mobile-menu a {
  font-weight: 400;
}

.mobile-menu a:has(span) span {
  font-weight: inherit;
}

/* Bold parenthesis text only */
.mobile-menu a {
  font-weight: 400;
}

.mobile-menu a {
  /* splits the text so parentheses get bold automatically */
}

.mobile-menu a {
  /* bold everything between parentheses */
}

.mobile-menu a {
  /* We'll replace parentheses text with a bold span */
}

.mobile-menu a {
  /* final override */
}

.mobile-menu a {
  /* apply regex replacement */
}

/* REAL WORKING CODE */
.mobile-menu a {
  /* nothing here, just selector base */
}

.mobile-menu a span {
  font-weight: 400;
}

/* Bold text inside parentheses */
.mobile-menu a span {
  white-space: pre-wrap;
}

.mobile-menu a span:before {
  content: attr(data-text);
}
.menu-bold {
  font-weight: 700;
  font-size: 0.75em; /* smaller than normal */
  direction: rtl;
  unicode-bidi: bidi-override;
  display: inline-block;
}

.product--text.clearance-warning {
  display: inline-block !important;
  background-color: #f1c5cd !important;
  color: #252525 !important;
  padding: 4px 8px !important;
  border-radius: 4px !important;
  font-weight: 500;
}

/* 🔝 Sticky countdown bar */
.bf-countdown-box {
  position: sticky;
  top: 0;
  left: 0;
  right: 0;

  z-index: 9999;
  width: 100%;
  padding: 6px 16px;
  background: #000;
  color: #fff;
  font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif;
  text-transform: uppercase;
  font-size: 11px;
  line-height: 1.2;
  letter-spacing: 0.06em;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}

/* Tiempo en rosa */
.bf-countdown-time {
  font-weight: 800;
  font-size: 13px;
  letter-spacing: 0.08em;
  margin: 0 4px;
  text-decoration: none;
  color: #f362ac;
}

/* “5% OFF” en blanco */
.bf-countdown-highlight {
  font-weight: 800;
  color: #ffffff;
}

/* En pantallas grandes, un poco más grande */
@media (min-width: 768px) {
  .bf-countdown-box {
    padding: 6px 24px;
    font-size: 12px;
  }

  .bf-countdown-time {
    font-size: 14px;
  }
}

/* ✅ Evitar que el header compita por el mismo top (desactiva sticky del header) */
.header-group,
.site-header,
.header-wrapper,
header[role="banner"] {
  position: relative !important;
  top: auto !important;
}


/* --- Biscuits bundle wizard (step-by-step) --- */
.bb-step {
  border: 1px solid rgba(0,0,0,.12);
  border-radius: 12px;
  margin: 12px 0;
  overflow: hidden;
}

.bb-step__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  width: 100%;
  padding: 14px 16px;
  background: rgba(0,0,0,.03);
  border: 0;
  cursor: pointer;
  text-align: left;
}

.bb-step__header:focus {
  outline: 2px solid rgba(0,0,0,.35);
  outline-offset: 2px;
}

.bb-step__title {
  display: flex;
  align-items: center;
  gap: 10px;
  font-weight: 600;
}

.bb-step__badge {
  width: 26px;
  height: 26px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(0,0,0,.12);
  font-size: 13px;
}

.bb-step__chev {
  transition: transform .2s ease;
}

.bb-step[data-open="true"] .bb-step__chev {
  transform: rotate(180deg);
}

.bb-step__content {
  padding: 14px 16px;
}

.bb-step__content[hidden] {
  display: none !important;
}

.bb-step__actions {
  margin-top: 14px;
  display: flex;
  justify-content: flex-end;
  gap: 10px;
}

.bb-next {
  padding: 10px 14px;
  border-radius: 10px;
  border: 1px solid rgba(0,0,0,.18);
  background: black;
  color: white;
  cursor: pointer;
}

.bb-next:disabled {
  opacity: .55;
  cursor: not-allowed;
}

/* =========================================================
   BISCUITS v16.3 — Wizard modal + HARD single bundle + HARD single select
   ✅ Never allow 2 bundles in cart (reverts accidental adds on close)
   ✅ Keeps UPDATED one after Add/Update (keepNew)
   ✅ Forces single selection on chosen steps (even if Biscuits allows multi)
   ✅ Clamps kept bundle quantities to 1
========================================================= */
(() => {
  // Kill older versions if present
  window.__bbBiscuitsWizardV11 = false;
  window.__bbBiscuitsWizardV12 = false;
  window.__bbBiscuitsWizardV13 = false;
  window.__bbBiscuitsWizardV14 = false;
  window.__bbBiscuitsWizardV141 = false;
  window.__bbBiscuitsWizardV15 = false;
  window.__bbBiscuitsWizardV16 = false;
  window.__bbBiscuitsWizardV161 = false;
  window.__bbBiscuitsWizardV162 = false;

  if (window.__bbBiscuitsWizardV163) return;
  window.__bbBiscuitsWizardV163 = true;

  const SEL = {
    wrap: ".biscuits-bundle-steps",
    step: ".biscuits-bundle-step",
    stepSelected: "[data-biscuits-step-selected]",
    card: ".biscuits-bundle-item-card",
    select: "select.biscuits-bundle-item__select",
    checkbox: "input.biscuits-bundle-item-checkbox",
    atcForm: 'form[action*="/cart/add"]',
    atcBtn:
      'form[action*="/cart/add"] button[type="submit"], ' +
      'form[action*="/cart/add"] button[name="add"], ' +
      'form[action*="/cart/add"] input[type="submit"]',
  };

  const IDS = {
    style: "bb-biscuits-v163-style",
    modal: "bb-biscuits-v163-modal",
  };

  const CLS = {
    hiddenOnPage: "bb-v163-hidden-on-page",
    stepHidden: "bb-v163-step-hidden",
    atcNote: "bb-v163-atc-note",
    flash: "bb-v163-flash",
    bodyLock: "bb-v163-body-lock",
    selectedCard: "bb-v163-selected-card",
    selectedBadge: "bb-v163-selected-badge",
  };

  const CFG = {
    buildBtnText: "הרכיבי קופסה משלך",
    lockedNoteText: " ",
    titleText: "הרכיבי קופסה משלך",

    editExistingInCart: true,

    // ✅ enforce SINGLE bundle always
    enforceSingleBoxInCart: true,

    // ✅ force SINGLE selection (radio behavior) on these steps (1-based index)
    // If you ever add a step that must allow multiple, remove it here.
    forceSingleSelectSteps: [1, 2, 3, 4],

    // Polling for cart updates after add
    cartPollTries: 12,
    cartPollDelayMs: 250,

    bundleIdKeyHints: [
      "_biscuits_bundle_id",
      "biscuits_bundle_id",
      "biscuits_bundle_uuid",
      "_bundle_id",
      "_bundle_uuid",
      "bundle_id",
      "bundle_uuid",
      "group_id",
      "bundleGroupId",
    ],
  };

  // DOM refs
  let wrap = null;
  let placeholder = null;

  // Modal UI
  let modal = null;
  let overlay = null;
  let panel = null;
  let titleEl = null;
  let btnBack = null;
  let btnNext = null;
  let btnClose = null;

  // State
  let currentIdx = 0;
  let lastSubmitBtn = null;
  let allowNextSubmit = false;
  let isOpen = false;
  let isSubmitting = false;

  // Cached ATC buttons
  let cachedATCButtons = null;
  let cachedATCButtonsAt = 0;

  // Edit state from cart
  let editState = {
    active: false,
    groupId: null,
    lineKeys: [],
    selectionVariantIds: new Set(),
  };

  // Cart snapshot before opening wizard (for revert-on-close)
  let cartBeforeOpen = null;

  // Track last touched checkbox so we keep the one user clicked last
  let lastTouchedCb = null;
  let fixingSingles = false;

  /* ---------------- utils ---------------- */
  const qsa = (root, sel) => Array.from((root || document).querySelectorAll(sel));
  const qs = (root, sel) => (root || document).querySelector(sel);
  const sleep = (ms) => new Promise((r) => setTimeout(r, ms));

  const parseIntSafe = (x) => {
    const n = parseInt((x || "").toString().trim(), 10);
    return Number.isFinite(n) ? n : 0;
  };

  function getCurrentProductHandle() {
    const m = window.location.pathname.match(/\/products\/([^/]+)/);
    return m ? decodeURIComponent(m[1]) : null;
  }

  function getSteps() {
    return wrap ? qsa(wrap, SEL.step) : [];
  }

  function getStepNumber(stepEl) {
    // safest: wizard order index
    const steps = getSteps();
    const idx = steps.indexOf(stepEl);
    return idx >= 0 ? idx + 1 : 0;
  }

  function isForceSingleStep(stepEl) {
    const n = getStepNumber(stepEl);
    return !!n && CFG.forceSingleSelectSteps.includes(n);
  }

  function isRequired(stepEl) {
    return stepEl.getAttribute("data-biscuits-required") === "1";
  }

  function minRequired(stepEl) {
    const v = stepEl.getAttribute("data-biscuits-minimum-quantity");
    if (v) return parseIntSafe(v);
    return isRequired(stepEl) ? 1 : 0;
  }

  function selectedCountFromCounter(stepEl) {
    const span = stepEl.querySelector(SEL.stepSelected);
    return parseIntSafe(span?.textContent);
  }

  function cbIsOn(cb) {
    return !!cb && (cb.checked || cb.getAttribute("aria-checked") === "true");
  }

  function selectedCountFromInputs(stepEl) {
    const inputs = qsa(stepEl, SEL.checkbox);
    let count = 0;
    for (const cb of inputs) if (cbIsOn(cb)) count++;
    return count;
  }

  function stepComplete(stepEl) {
    if (!isRequired(stepEl)) return true;
    const min = minRequired(stepEl);
    if (selectedCountFromCounter(stepEl) >= min) return true;
    return selectedCountFromInputs(stepEl) >= min;
  }

  function allRequiredComplete() {
    const steps = getSteps();
    return steps.length > 0 && steps.every(stepComplete);
  }

  function firstIncompleteIndex() {
    const steps = getSteps();
    const idx = steps.findIndex((s) => !stepComplete(s));
    return idx === -1 ? 0 : idx;
  }

  function flash(el) {
    if (!el) return;
    el.classList.add(CLS.flash);
    setTimeout(() => el.classList.remove(CLS.flash), 600);
  }

  /* ---------------- Swiper refresh (minimal) ---------------- */
  function refreshSwipersOnce() {
    if (!wrap || !isOpen) return;
    requestAnimationFrame(() => {
      qsa(wrap, ".swiper").forEach((el) => {
        try {
          if (el.swiper && typeof el.swiper.update === "function") {
            el.swiper.update();
            el.swiper.updateSize?.();
            el.swiper.updateSlides?.();
          }
        } catch {}
      });
      window.dispatchEvent(new Event("resize"));
    });
  }

  /* ---------------- Styles ---------------- */
  function injectStyles() {
    [
      "bb-biscuits-v11-style",
      "bb-biscuits-v12-style",
      "bb-biscuits-v13-style",
      "bb-biscuits-v14-style",
      "bb-biscuits-v141-style",
      "bb-biscuits-v15-style",
      "bb-biscuits-v16-style",
      "bb-biscuits-v161-style",
      "bb-biscuits-v162-style",
      "bb-biscuits-v163-style",
    ].forEach((id) => document.getElementById(id)?.remove());

    if (document.getElementById(IDS.style)) return;

    const s = document.createElement("style");
    s.id = IDS.style;
    s.textContent = `
      .${CLS.hiddenOnPage}{
        max-height:0 !important;
        overflow:hidden !important;
        opacity:0 !important;
        pointer-events:none !important;
        margin:0 !important;
        padding:0 !important;
        border:0 !important;
      }
      .${CLS.stepHidden}{ display:none !important; }
      body.${CLS.bodyLock}{ overflow:hidden !important; }

      #${IDS.modal}{ position:fixed; inset:0; z-index:2147483646; display:none; }
      #${IDS.modal}[data-open="true"]{ display:block; }
      #${IDS.modal} .bb-v163-overlay{ position:absolute; inset:0; background:rgba(0,0,0,.55); }

      #${IDS.modal} .bb-v163-panel{
        position:relative;
        width:min(920px, calc(100vw - 24px));
        max-height:calc(100vh - 24px);
        margin:12px auto;
        background:#fff;
        border-radius:14px;
        overflow:auto;
        padding:14px 14px 18px;
        box-shadow:0 16px 50px rgba(0,0,0,.25);
      }

      #${IDS.modal} .bb-v163-bar{
        position:sticky; top:0; z-index:3;
        background:#fff;
        padding:10px 6px 12px;
        border-bottom:1px solid rgba(0,0,0,.10);
        display:flex; align-items:center; justify-content:space-between; gap:10px;
      }
      #${IDS.modal} .bb-v163-title{ font-weight:700; font-size:16px; line-height:1.2; }
      #${IDS.modal} .bb-v163-actions{ display:flex; gap:8px; align-items:center; }

      .bb-v163-btn{
        border:1px solid rgba(0,0,0,.18);
        background:#fff;
        border-radius:10px;
        padding:9px 12px;
        cursor:pointer;
        font: inherit;
      }
      .bb-v163-btn--primary{ background:#000; color:#fff; border-color:#000; }
      .bb-v163-btn:disabled{ opacity:.55; cursor:not-allowed; }
      .bb-v163-build-btn{ display:block; width:100%; margin-top:10px; }

      .${CLS.atcNote}{
        margin-top:8px;
        font-size:13px;
        line-height:1.2;
        opacity:.85;
        display:none;
      }
      .${CLS.flash}{
        outline: 3px solid rgba(0,0,0,.25);
        outline-offset: 6px;
        border-radius: 12px;
      }

      /* Hide prices ONLY inside wizard */
      #${IDS.modal} .biscuits-bundle-price,
      #${IDS.modal} [data-biscuits-current-price],
      #${IDS.modal} .biscuits-bundle-item__price,
      #${IDS.modal} .biscuits-bundle-step__price,
      #${IDS.modal} [data-biscuits-compare-price],
      #${IDS.modal} .biscuits-bundle-price__compare{
        display:none !important;
      }

      /* Selected highlight */
      .${CLS.selectedCard}{
        outline: 3px solid rgba(0,0,0,.85) !important;
        outline-offset: 3px !important;
        border-radius: 14px !important;
        box-shadow: 0 10px 24px rgba(0,0,0,.12) !important;
      }
      .${CLS.selectedBadge}{
        position:absolute;
        top:10px;
        left:10px;
        z-index:5;
        background:#000;
        color:#fff;
        font-size:12px;
        line-height:1;
        padding:8px 10px;
        border-radius:999px;
        display:flex;
        gap:8px;
        align-items:center;
        max-width: calc(100% - 20px);
      }
      .${CLS.selectedBadge} small{
        opacity:.9;
        font-weight:600;
        white-space:nowrap;
        overflow:hidden;
        text-overflow:ellipsis;
      }
    `;
    document.head.appendChild(s);
  }

  /* ---------------- Modal ---------------- */
  function ensureModal() {
    if (modal) return;

    [
      "bb-biscuits-v11-modal",
      "bb-biscuits-v12-modal",
      "bb-biscuits-v13-modal",
      "bb-biscuits-v14-modal",
      "bb-biscuits-v141-modal",
      "bb-biscuits-v15-modal",
      "bb-biscuits-v16-modal",
      "bb-biscuits-v161-modal",
      "bb-biscuits-v162-modal",
      "bb-biscuits-v163-modal",
    ].forEach((id) => document.getElementById(id)?.remove());

    modal = document.createElement("div");
    modal.id = IDS.modal;
    modal.setAttribute("data-open", "false");

    overlay = document.createElement("div");
    overlay.className = "bb-v163-overlay";

    panel = document.createElement("div");
    panel.className = "bb-v163-panel";

    const bar = document.createElement("div");
    bar.className = "bb-v163-bar";

    titleEl = document.createElement("div");
    titleEl.className = "bb-v163-title";
    titleEl.textContent = CFG.titleText;

    const actions = document.createElement("div");
    actions.className = "bb-v163-actions";

    btnBack = document.createElement("button");
    btnBack.type = "button";
    btnBack.className = "bb-v163-btn";
    btnBack.textContent = "Back";

    btnNext = document.createElement("button");
    btnNext.type = "button";
    btnNext.className = "bb-v163-btn bb-v163-btn--primary";
    btnNext.textContent = "Next";

    btnClose = document.createElement("button");
    btnClose.type = "button";
    btnClose.className = "bb-v163-btn";
    btnClose.textContent = "Close";

    actions.appendChild(btnBack);
    actions.appendChild(btnNext);
    actions.appendChild(btnClose);

    bar.appendChild(titleEl);
    bar.appendChild(actions);

    panel.appendChild(bar);

    modal.appendChild(overlay);
    modal.appendChild(panel);
    document.body.appendChild(modal);

    overlay.addEventListener("click", (e) => { e.preventDefault(); e.stopPropagation(); closeWizard(); }, true);
    btnClose.addEventListener("click", (e) => { e.preventDefault(); e.stopPropagation(); closeWizard(); }, true);

    btnBack.addEventListener("click", () => {
      const steps = getSteps();
      if (!steps.length) return;
      currentIdx = Math.max(0, currentIdx - 1);
      renderWizard(true);
    });

    btnNext.addEventListener("click", () => {
      const steps = getSteps();
      if (!steps.length) return;

      if (!stepComplete(steps[currentIdx])) {
        flash(steps[currentIdx]);
        return;
      }

      const isLast = currentIdx >= steps.length - 1;
      if (!isLast) {
        currentIdx += 1;
        renderWizard(true);
      } else {
        addOrUpdateFromWizard();
      }
    });

    document.addEventListener("keydown", (e) => {
      if (e.key === "Escape" && isOpen) closeWizard();
    });
  }

  /* ---------------- Mount/unmount ---------------- */
  function ensurePlaceholder() {
    if (!wrap) return;
    if (placeholder && placeholder.isConnected) return;
    placeholder = document.createComment("bb-v163-placeholder");
    wrap.parentNode.insertBefore(placeholder, wrap);
  }

  function mountWrapIntoModal() {
    if (!wrap || !panel) return;
    ensurePlaceholder();
    wrap.classList.remove(CLS.hiddenOnPage);
    panel.appendChild(wrap);
    refreshSwipersOnce();
    requestUpdate(0);
  }

  function unmountWrapBackToPage() {
    if (!wrap || !placeholder) return;
    placeholder.parentNode.insertBefore(wrap, placeholder);
    wrap.classList.add(CLS.hiddenOnPage);
    requestUpdate(0);
  }

  /* ---------------- ATC lock ---------------- */
  function getATCButtonsCached() {
    const now = Date.now();
    if (cachedATCButtons && now - cachedATCButtonsAt < 2000) return cachedATCButtons;

    cachedATCButtons = [];
    qsa(document, SEL.atcForm).forEach((form) => {
      const b =
        form.querySelector('button[type="submit"]') ||
        form.querySelector('button[name="add"]') ||
        form.querySelector('input[type="submit"]');
      if (b) cachedATCButtons.push(b);
    });
    cachedATCButtonsAt = now;
    return cachedATCButtons;
  }

  function ensureATCNote(btn) {
    const wrapEl = btn.closest("form") || btn.parentElement;
    if (!wrapEl) return null;

    let note = wrapEl.querySelector(`.${CLS.atcNote}`);
    if (!note) {
      note = document.createElement("div");
      note.className = CLS.atcNote;
      note.textContent = CFG.lockedNoteText;
      btn.insertAdjacentElement("afterend", note);
    }
    return note;
  }

  function setATCLocked(locked) {
    getATCButtonsCached().forEach((btn) => {
      btn.disabled = locked;
      btn.setAttribute("aria-disabled", locked ? "true" : "false");
      const note = ensureATCNote(btn);
      if (note) note.style.display = locked ? "block" : "none";
    });
  }

  function refreshATCLock() {
    const ok = allRequiredComplete();
    setATCLocked(!ok);

    const steps = getSteps();
    if (isOpen && btnNext && steps[currentIdx]) {
      btnNext.disabled = !stepComplete(steps[currentIdx]);
    }
    return ok;
  }

  /* ---------------- HARD single-select fix ---------------- */
  function enforceSingleSelection(stepEl) {
    if (!stepEl) return;

    // Only enforce where we want radio behavior:
    // - either Biscuits max=1 OR we forced this step
    const max = parseIntSafe(stepEl.getAttribute("data-biscuits-maximum-quantity"));
    const mustBeSingle = (max === 1) || isForceSingleStep(stepEl);
    if (!mustBeSingle) return;

    const checked = qsa(stepEl, SEL.checkbox).filter(cbIsOn);
    if (checked.length <= 1) return;

    // keep last touched if it's in this step and is checked
    let keep = null;
    if (lastTouchedCb && stepEl.contains(lastTouchedCb) && cbIsOn(lastTouchedCb)) {
      keep = lastTouchedCb;
    } else {
      keep = checked[checked.length - 1];
    }

    if (fixingSingles) return;
    fixingSingles = true;
    try {
      for (const cb of checked) {
        if (cb !== keep && cbIsOn(cb)) cb.click();
      }
    } finally {
      setTimeout(() => { fixingSingles = false; }, 0);
    }
  }

  function enforceSinglesAll() {
    const steps = getSteps();
    for (const s of steps) enforceSingleSelection(s);
  }

  /* ---------------- Selected UI ---------------- */
  function applySelectedUI() {
    if (!wrap) return;

    const steps = getSteps();
    const stepEl = isOpen ? steps[currentIdx] : null;
    const targets = stepEl ? [stepEl] : steps;

    for (const s of targets) {
      const cards = qsa(s, SEL.card);
      for (const card of cards) {
        const cb = card.querySelector(SEL.checkbox);
        const isOn = cbIsOn(cb);

        card.classList.toggle(CLS.selectedCard, isOn);

        if (isOn) {
          const anchor =
            card.querySelector(".biscuits-bundle-item__container") ||
            card.querySelector(".biscuits-bundle-item__image") ||
            card;

          const cs = window.getComputedStyle(anchor);
          if (cs.position === "static") anchor.style.position = "relative";

          let badge = anchor.querySelector(`.${CLS.selectedBadge}`);
          if (!badge) {
            badge = document.createElement("div");
            badge.className = CLS.selectedBadge;
            badge.innerHTML = `<span>Selected</span><small></small>`;
            anchor.appendChild(badge);
          }

          const sel = card.querySelector(SEL.select);
          const label =
            sel?.selectedOptions?.[0]?.textContent?.trim() ||
            sel?.value?.toString()?.trim() ||
            "";

          const prev = badge.getAttribute("data-bb-size") || "";
          if (label !== prev) {
            badge.setAttribute("data-bb-size", label);
            const small = badge.querySelector("small");
            if (small) small.textContent = label ? `• ${label}` : "";
          }
        } else {
          const badge = card.querySelector(`.${CLS.selectedBadge}`);
          if (badge) badge.remove();
        }
      }
    }
  }

  /* ---------------- Debounced update ---------------- */
  let updateQueued = false;
  let updateTimer = null;

  function requestUpdate(delay = 0) {
    if (updateTimer) clearTimeout(updateTimer);
    updateTimer = setTimeout(() => {
      if (updateQueued) return;
      updateQueued = true;
      requestAnimationFrame(() => {
        updateQueued = false;

        // ✅ enforce single selection before anything else
        enforceSinglesAll();

        refreshATCLock();
        applySelectedUI();
      });
    }, delay);
  }

  /* ---------------- Auto-select single-card steps ---------------- */
  function autoSelectSingleCardIfNeeded(stepEl) {
    if (!stepEl) return;

    // If forced single step, we still allow auto-select if only one card exists
    const max = parseIntSafe(stepEl.getAttribute("data-biscuits-maximum-quantity"));
    const mustBeSingle = (max === 1) || isForceSingleStep(stepEl);

    if (!mustBeSingle) return;
    if (stepComplete(stepEl)) return;

    const cards = qsa(stepEl, SEL.card).filter(
      (c) => c.getAttribute("data-biscuits-available") !== "false"
    );
    if (cards.length !== 1) return;

    const card = cards[0];
    const sel = card.querySelector(SEL.select);
    const cb = card.querySelector(SEL.checkbox);

    if (sel) {
      const firstEnabled = Array.from(sel.options).find((o) => !o.disabled);
      if (firstEnabled && sel.value !== firstEnabled.value) {
        sel.value = firstEnabled.value;
        sel.dispatchEvent(new Event("change", { bubbles: true }));
      }
    }

    if (cb && !cbIsOn(cb)) {
      lastTouchedCb = cb;
      cb.click();
    }
  }

  /* ---------------- Wizard render ---------------- */
  function renderWizard(scrollTop = false) {
    const steps = getSteps();
    if (!steps.length) return;

    steps.forEach((s, i) => {
      if (i === currentIdx) s.classList.remove(CLS.stepHidden);
      else s.classList.add(CLS.stepHidden);
    });

    const isLast = currentIdx >= steps.length - 1;

    titleEl.textContent = editState.active
      ? `Editing box • Step ${currentIdx + 1} of ${steps.length}`
      : `Step ${currentIdx + 1} of ${steps.length}`;

    btnBack.disabled = currentIdx === 0;
    btnNext.textContent = isLast ? (editState.active ? "Update cart" : "Add to cart") : "Next";
    btnNext.disabled = !stepComplete(steps[currentIdx]);

    if (scrollTop) panel.scrollTop = 0;

    autoSelectSingleCardIfNeeded(steps[currentIdx]);
    enforceSingleSelection(steps[currentIdx]);

    refreshSwipersOnce();
    requestUpdate(0);
    requestUpdate(160);
  }

  /* ---------------- Open/close ---------------- */
  async function openWizard(submitBtn) {
    if (!wrap) return;

    ensureModal();
    lastSubmitBtn = submitBtn || lastSubmitBtn;

    isSubmitting = false;
    cartBeforeOpen = null;

    // snapshot cart for revert-on-close
    try { cartBeforeOpen = await fetchCart(); } catch {}

    modal.setAttribute("data-open", "true");
    document.body.classList.add(CLS.bodyLock);
    isOpen = true;

    mountWrapIntoModal();

    currentIdx = 0;
    renderWizard(true);

    if (CFG.editExistingInCart) {
      maybeEnterEditModeAndPrefill()
        .catch((err) => console.warn("[bb v16.3] edit mode failed:", err))
        .finally(() => {
          currentIdx = firstIncompleteIndex();
          renderWizard(true);
        });
    } else {
      currentIdx = firstIncompleteIndex();
      renderWizard(true);
    }
  }

  function closeWizard() {
    if (!modal) return;

    modal.setAttribute("data-open", "false");
    document.body.classList.remove(CLS.bodyLock);
    isOpen = false;

    getSteps().forEach((s) => s.classList.remove(CLS.stepHidden));
    unmountWrapBackToPage();
    requestUpdate(0);

    // ✅ if user closed without submitting, revert accidental cart changes
    if (!isSubmitting && CFG.enforceSingleBoxInCart) {
      (async () => {
        try {
          const after = await fetchCart();
          await enforceSingleBoxNow(after, cartBeforeOpen, "keepOld"); // revert accidental add
        } catch (e) {
          console.warn("[bb v16.3] revert on close failed:", e);
        }
      })();
    }
  }

  /* ---------------- Intercept ATC ---------------- */
  function interceptATC() {
    if (document.documentElement.dataset.bbV163Intercept === "1") return;
    document.documentElement.dataset.bbV163Intercept = "1";

    document.addEventListener(
      "click",
      (e) => {
        const btn = e.target.closest(SEL.atcBtn);
        if (btn) lastSubmitBtn = btn;
      },
      true
    );

    document.addEventListener(
      "submit",
      (e) => {
        const form = e.target;
        if (!form || !form.matches(SEL.atcForm)) return;

        if (allowNextSubmit) {
          allowNextSubmit = false;
          return;
        }

        if (!wrap) return;
        if (allRequiredComplete()) return;

        e.preventDefault();
        e.stopPropagation();

        const btn =
          form.querySelector('button[type="submit"], input[type="submit"]') ||
          lastSubmitBtn;

        openWizard(btn || undefined);
      },
      true
    );
  }

  /* ---------------- Build button ---------------- */
  function addBuildButton() {
    qsa(document, SEL.atcForm).forEach((form) => {
      if (form.querySelector('[data-bb-build-btn="v163"]')) return;

      const atcBtn =
        form.querySelector('button[type="submit"]') ||
        form.querySelector('button[name="add"]') ||
        form.querySelector('input[type="submit"]');

      if (!atcBtn) return;

      const build = document.createElement("button");
      build.type = "button";
      build.className = "bb-v163-btn bb-v163-build-btn";
      build.textContent = CFG.buildBtnText;
      build.setAttribute("data-bb-build-btn", "v163");

      atcBtn.insertAdjacentElement("afterend", build);

      build.addEventListener("click", (e) => {
        e.preventDefault();
        e.stopPropagation();
        lastSubmitBtn = atcBtn;
        openWizard(atcBtn);
      }, true);
    });
  }

  /* ---------------- Selection UX ---------------- */
  function bindSelectionUX() {
    if (!wrap || wrap.dataset.bbV163Bound === "1") return;
    wrap.dataset.bbV163Bound = "1";

    // click card -> open select (wizard only)
    wrap.addEventListener("click", (e) => {
      if (!isOpen) return;

      const card = e.target.closest(SEL.card);
      if (!card) return;

      const cb = card.querySelector(SEL.checkbox);
      if (cb) lastTouchedCb = cb;

      const stepEl = card.closest(SEL.step);
      if (stepEl) enforceSingleSelection(stepEl);

      const sel = card.querySelector(SEL.select);
      if (!sel) return;

      try { sel.showPicker?.(); } catch {}
      sel.focus();
      sel.click();
    }, true);

    // change size -> select checkbox
    wrap.addEventListener("change", (e) => {
      const t = e.target;
      if (!t || !t.matches(SEL.select)) return;

      const card = t.closest(SEL.card);
      const stepEl = t.closest(SEL.step);
      if (!card || !stepEl) return;

      const cb = card.querySelector(SEL.checkbox);
      if (!cb) return;

      lastTouchedCb = cb;

      // ✅ force radio behavior
      enforceSingleSelection(stepEl);

      if (!cbIsOn(cb)) cb.click();

      // enforce again (Biscuits sometimes toggles 2 on same tick)
      enforceSingleSelection(stepEl);

      requestUpdate(0);
      requestUpdate(160);
    }, true);

    // checkbox clicks
    wrap.addEventListener("click", (e) => {
      const cb = e.target.closest(SEL.checkbox);
      if (!cb) return;

      lastTouchedCb = cb;

      const stepEl = cb.closest(SEL.step);
      if (stepEl) enforceSingleSelection(stepEl);

      requestUpdate(0);
      requestUpdate(160);
    }, true);
  }

  /* ---------------- Cart helpers (EDIT MODE + SINGLE BOX) ---------------- */
  async function fetchCart() {
    const res = await fetch("/cart.js", {
      headers: { Accept: "application/json" },
      credentials: "same-origin",
    });
    if (!res.ok) throw new Error("Failed to fetch cart.js");
    return res.json();
  }

  function extractGroupIdFromItem(item) {
    const props = item?.properties || {};
    const keys = Object.keys(props);

    for (const k of CFG.bundleIdKeyHints) {
      if (k in props && props[k]) return String(props[k]);
    }

    for (const k of keys) {
      const lk = k.toLowerCase();
      if (lk.includes("biscuits") && (lk.includes("bundle") || lk.includes("group"))) {
        const v = props[k];
        if (v) return String(v);
      }
    }

    return null;
  }

  function getBoxGroupsFromCart(cart) {
    const handle = getCurrentProductHandle();
    const items = Array.isArray(cart?.items) ? cart.items : [];
    if (!handle || !items.length) return { handle, items, baseItems: [], groups: [] };

    const baseItems = items.filter((it) => it.handle === handle);
    if (!baseItems.length) return { handle, items, baseItems: [], groups: [] };

    const groups = baseItems.map((base) => {
      const gid = extractGroupIdFromItem(base);

      let groupItems = [];
      if (gid) {
        groupItems = items.filter((it) => extractGroupIdFromItem(it) === gid);
      } else {
        groupItems = [base];
      }

      const lineKeys = groupItems.map((it) => it.key).filter(Boolean);

      const selectionVariantIds = new Set(
        groupItems
          .map((it) => it.variant_id)
          .filter((vid) => vid && vid !== base.variant_id)
      );

      return { base, groupId: gid, groupItems, lineKeys, selectionVariantIds };
    });

    return { handle, items, baseItems, groups };
  }

  function buildEditStateFromCart(cart) {
    const { groups } = getBoxGroupsFromCart(cart);
    if (!groups.length) {
      return { active: false, groupId: null, lineKeys: [], selectionVariantIds: new Set() };
    }

    const keep = groups[groups.length - 1];
    return {
      active: true,
      groupId: keep.groupId,
      lineKeys: keep.lineKeys,
      selectionVariantIds: keep.selectionVariantIds,
    };
  }

  function prefillWizardFromEditState() {
    if (!wrap || !editState.active) return;

    const remaining = new Set(editState.selectionVariantIds);
    if (!remaining.size) return;

    const steps = getSteps();
    for (const stepEl of steps) {
      const selects = qsa(stepEl, SEL.select);

      for (const sel of selects) {
        for (const vid of Array.from(remaining)) {
          const opt = sel.querySelector(`option[value="${CSS.escape(String(vid))}"]`);
          if (opt && !opt.disabled) {
            sel.value = String(vid);
            sel.dispatchEvent(new Event("change", { bubbles: true }));
            remaining.delete(vid);
            break;
          }
        }
      }

      autoSelectSingleCardIfNeeded(stepEl);
      enforceSingleSelection(stepEl);
    }

    requestUpdate(0);
    requestUpdate(160);
  }

  async function maybeEnterEditModeAndPrefill() {
    editState = { active: false, groupId: null, lineKeys: [], selectionVariantIds: new Set() };

    const cart = await fetchCart();
    const st = buildEditStateFromCart(cart);
    if (!st.active) return;

    editState = st;
    prefillWizardFromEditState();
  }

  async function cartChangeByKey(key, quantity) {
    const res = await fetch("/cart/change.js", {
      method: "POST",
      headers: { "Content-Type": "application/json", Accept: "application/json" },
      credentials: "same-origin",
      body: JSON.stringify({ id: key, quantity }),
    });
    if (!res.ok) throw new Error("cart/change.js failed");
    return res.json();
  }

  function cartSignature(cart) {
    const items = Array.isArray(cart?.items) ? cart.items : [];
    return items.map((it) => `${it.key}:${it.quantity}`).join("|");
  }

  async function waitForCartToChange(preCart) {
    const preSig = preCart ? cartSignature(preCart) : "";
    for (let i = 0; i < CFG.cartPollTries; i++) {
      await sleep(CFG.cartPollDelayMs);
      try {
        const cur = await fetchCart();
        if (!preCart) return cur;
        if (cartSignature(cur) !== preSig) return cur;
      } catch {}
    }
    try { return await fetchCart(); } catch { return preCart; }
  }

  // ✅ MODE:
  // - "keepNew": keep the newest group (used after Add/Update)
  // - "keepOld": keep the pre-existing group (used on Close w/o submit)
  async function enforceSingleBoxNow(cartAfter, cartBefore, mode = "keepNew") {
    if (!CFG.enforceSingleBoxInCart) return;

    const cart = cartAfter || (await fetchCart());
    const { groups } = getBoxGroupsFromCart(cart);
    if (groups.length <= 1) {
      // also clamp qty on kept group if any
      if (groups.length === 1) {
        for (const it of groups[0].groupItems) {
          if (it?.key && (it.quantity || 1) !== 1) {
            try { await cartChangeByKey(it.key, 1); } catch {}
          }
        }
      }
      return;
    }

    const preKeys = new Set((cartBefore?.items || []).map((it) => it.key).filter(Boolean));

    let keepIdx = groups.length - 1; // fallback

    if (preKeys.size) {
      if (mode === "keepOld") {
        // keep the group with the highest overlap with preKeys (base key overlap is strongest)
        let bestScore = -1;
        groups.forEach((g, idx) => {
          const keys = Array.isArray(g.lineKeys) ? g.lineKeys : [];
          let overlap = 0;
          for (const k of keys) if (k && preKeys.has(k)) overlap++;
          const baseKey = g.base?.key;
          if (baseKey && preKeys.has(baseKey)) overlap += 1000;
          if (overlap > bestScore) {
            bestScore = overlap;
            keepIdx = idx;
          }
        });
      } else {
        // keepNew: prefer group with NEW base key (strong signal)
        let bestScore = -1;
        groups.forEach((g, idx) => {
          const keys = Array.isArray(g.lineKeys) ? g.lineKeys : [];
          let newCount = 0;
          for (const k of keys) if (k && !preKeys.has(k)) newCount++;
          const baseKey = g.base?.key;
          const baseIsNew = !!(baseKey && !preKeys.has(baseKey));
          const score = newCount + (baseIsNew ? 1000 : 0);
          if (score > bestScore) {
            bestScore = score;
            keepIdx = idx;
          }
        });
      }
    } else {
      // If there was no bundle before:
      // - keepOld should remove all (leave zero) but safest is keep last? No — user closed, so remove all.
      if (mode === "keepOld") {
        const allKeys = Array.from(new Set(groups.flatMap((g) => g.lineKeys || []))).filter(Boolean);
        for (const key of allKeys) {
          try { await cartChangeByKey(key, 0); } catch {}
        }
        return;
      }
    }

    // Remove all other groups
    const keysToRemove = [];
    groups.forEach((g, idx) => {
      if (idx === keepIdx) return;
      keysToRemove.push(...(g.lineKeys || []));
    });

    for (const key of Array.from(new Set(keysToRemove)).filter(Boolean)) {
      try { await cartChangeByKey(key, 0); } catch (e) { console.warn("[bb v16.3] remove dup key failed", key, e); }
    }

    // Clamp qty=1 on kept group (prevents “2 bundles” via qty increments)
    const kept = groups[keepIdx];
    if (kept?.groupItems?.length) {
      for (const it of kept.groupItems) {
        if (it?.key && (it.quantity || 1) !== 1) {
          try { await cartChangeByKey(it.key, 1); } catch {}
        }
      }
    }

    // Theme refresh signals (best effort)
    try {
      document.documentElement.dispatchEvent(new CustomEvent("cart:refresh"));
      document.documentElement.dispatchEvent(new CustomEvent("cart:updated"));
      document.dispatchEvent(new CustomEvent("cart:refresh"));
      document.dispatchEvent(new CustomEvent("cart:updated"));
    } catch {}
  }

  /* ---------------- Submit (Add/Update) ---------------- */
  function safeRequestSubmit(form) {
    if (!form) return false;
    if (typeof form.requestSubmit === "function") {
      form.requestSubmit();
      return true;
    }
    const tmp = document.createElement("button");
    tmp.type = "submit";
    tmp.style.display = "none";
    form.appendChild(tmp);
    tmp.click();
    tmp.remove();
    return true;
  }

  function findPrimaryATCFormAndButton() {
    const btn = lastSubmitBtn || qs(document, SEL.atcBtn);
    const form = btn?.form || qs(document, SEL.atcForm);
    return { form, btn };
  }

  function triggerAddToCartNow() {
    const { form, btn } = findPrimaryATCFormAndButton();

    if (btn) {
      const wasDisabled = btn.disabled;
      btn.disabled = false;
      btn.removeAttribute("disabled");

      allowNextSubmit = true;
      btn.click();

      setTimeout(() => {
        if (wasDisabled && !allRequiredComplete()) {
          btn.disabled = true;
          btn.setAttribute("disabled", "");
        }
      }, 250);

      return true;
    }

    allowNextSubmit = true;
    return safeRequestSubmit(form);
  }

  async function addOrUpdateFromWizard() {
    if (!allRequiredComplete()) {
      flash(getSteps()[currentIdx]);
      return;
    }

    // Final safety: prevent multi selection before add
    enforceSinglesAll();

    btnNext.disabled = true;
    btnBack.disabled = true;
    btnClose.disabled = true;
    btnNext.textContent = editState.active ? "Updating..." : "Adding...";

    getSteps().forEach((s) => s.classList.remove(CLS.stepHidden));
    setATCLocked(false);

    isSubmitting = true;

    // Snapshot cart BEFORE add/update
    let cartBefore = null;
    try { cartBefore = await fetchCart(); } catch {}

    closeWizard();

    setTimeout(async () => {
      const ok = triggerAddToCartNow();
      if (ok && CFG.enforceSingleBoxInCart) {
        try {
          const cartAfter = await waitForCartToChange(cartBefore);
          await enforceSingleBoxNow(cartAfter, cartBefore, "keepNew"); // keep updated one

          // extra pass (some themes add twice)
          await sleep(450);
          const cartAfter2 = await fetchCart();
          await enforceSingleBoxNow(cartAfter2, cartBefore, "keepNew");
        } catch (e) {
          console.warn("[bb v16.3] enforce single box failed:", e);
        } finally {
          isSubmitting = false;
        }
      } else {
        isSubmitting = false;
      }
    }, 160);
  }

  /* ---------------- Observers (fast) ---------------- */
  let wrapObserver = null;
  function observeWrap() {
    if (!wrap || wrapObserver) return;

    let last = 0;
    wrapObserver = new MutationObserver(() => {
      const now = Date.now();
      if (now - last < 90) return;
      last = now;

      // ✅ if Biscuits toggles 2 selected, snap back immediately
      enforceSinglesAll();

      requestUpdate(0);
      requestUpdate(160);
    });

    wrapObserver.observe(wrap, {
      subtree: true,
      childList: true,
      attributes: true,
      attributeFilter: ["aria-checked", "checked", "class", "value", "aria-selected"],
    });
  }

  /* ---------------- init ---------------- */
  function initWrap() {
    if (!wrap) return;
    if (wrap.getAttribute("data-bb-v163-init") === "1") return;
    wrap.setAttribute("data-bb-v163-init", "1");

    wrap.classList.add(CLS.hiddenOnPage);

    addBuildButton();
    interceptATC();
    bindSelectionUX();
    observeWrap();

    requestUpdate(0);

    // one-time cart cleanup (optional but helps if cart already has duplicates)
    if (CFG.enforceSingleBoxInCart) {
      (async () => {
        try {
          const c = await fetchCart();
          await enforceSingleBoxNow(c, null, "keepNew");
        } catch {}
      })();
    }
  }

  function init() {
    injectStyles();
    ensureModal();

    wrap = qs(document, SEL.wrap);
    if (wrap) initWrap();
  }

  if (document.readyState === "loading") {
    document.addEventListener("DOMContentLoaded", init);
  } else {
    init();
  }

  // Light re-init if theme replaces the bundle
  let docObsLast = 0;
  const docObs = new MutationObserver(() => {
    const now = Date.now();
    if (now - docObsLast < 400) return;
    docObsLast = now;

    const found = qs(document, SEL.wrap);
    if (found && found !== wrap) {
      wrapObserver?.disconnect?.();
      wrapObserver = null;
      wrap = found;
      initWrap();
    }
  });
  docObs.observe(document.documentElement, { childList: true, subtree: true });

  /* ---------------- Intercept ATC (must be defined before initWrap uses it) ---------------- */
  function interceptATC() {
    if (document.documentElement.dataset.bbV163Intercept === "1") return;
    document.documentElement.dataset.bbV163Intercept = "1";

    document.addEventListener(
      "click",
      (e) => {
        const btn = e.target.closest(SEL.atcBtn);
        if (btn) lastSubmitBtn = btn;
      },
      true
    );

    document.addEventListener(
      "submit",
      (e) => {
        const form = e.target;
        if (!form || !form.matches(SEL.atcForm)) return;

        if (allowNextSubmit) {
          allowNextSubmit = false;
          return;
        }

        if (!wrap) return;
        if (allRequiredComplete()) return;

        e.preventDefault();
        e.stopPropagation();

        const btn =
          form.querySelector('button[type="submit"], input[type="submit"]') ||
          lastSubmitBtn;

        openWizard(btn || undefined);
      },
      true
    );
  }
})();
/* Remove the "required" label */
#bb-biscuits-v163-modal .biscuits-bundle-step__required{
  display: none !important;
}
.biscuits-bundle-step__required{
  display: none !important;
}

.biscuits-bundle-step__number{
  display: none !important;
}
/* =========================
   Wizard styling tweaks
   - SIZE: red + bold
   - Titles: smaller + bold
   ========================= */

/* SIZE label/text (covers common Biscuits "size" headings) */
#bb-biscuits-v163-modal .biscuits-bundle-item__select-label,
#bb-biscuits-v163-modal .biscuits-bundle-item__select-label *,
#bb-biscuits-v163-modal .biscuits-bundle-item__select-title,
#bb-biscuits-v163-modal .biscuits-bundle-item__select-title *,
#bb-biscuits-v163-modal [class*="select-label"],
#bb-biscuits-v163-modal [class*="select-title"]{
  color: #e10600 !important;
  font-weight: 800 !important;
}

/* If your theme literally prints "SIZE" as plain text in a heading */
#bb-biscuits-v163-modal .biscuits-bundle-item__select,
#bb-biscuits-v163-modal select.biscuits-bundle-item__select{
  font-weight: 700 !important;
}

/* Product titles under each card: smaller + bold */
#bb-biscuits-v163-modal .biscuits-bundle-item__title,
#bb-biscuits-v163-modal .biscuits-bundle-item__title *,
#bb-biscuits-v163-modal .biscuits-bundle-item-card__title,
#bb-biscuits-v163-modal .biscuits-bundle-item-card__title *{
  font-size: 13px !important;
  font-weight: 800 !important;
  line-height: 1.15 !important;
}

/* Step header/title (e.g., "SELECT YOUR TOP"): smaller + bold */
#bb-biscuits-v163-modal .biscuits-bundle-step__title,
#bb-biscuits-v163-modal .biscuits-bundle-step__title *{
  font-size: 20px !important;
  font-weight: 900 !important;
  line-height: 1.15 !important;
}

/* =========================
   BISCUITS Wizard — FORCE SIZE red + bold
   (scoped to the modal)
   ========================= */

/* 1) Make ANY “size label” looking element red/bold inside the wizard */
#bb-biscuits-v162-modal [class*="size"],
#bb-biscuits-v162-modal [class*="Size"],
#bb-biscuits-v162-modal .biscuits-bundle-item__select-label,
#bb-biscuits-v162-modal .biscuits-bundle-item__select-title,
#bb-biscuits-v162-modal .biscuits-bundle-item__variant-title,
#bb-biscuits-v162-modal .biscuits-bundle-item__variant-label,
#bb-biscuits-v162-modal .biscuits-bundle-item__options-title,
#bb-biscuits-v162-modal .biscuits-bundle-item__option-title,
#bb-biscuits-v162-modal .biscuits-bundle-item__option-label{
  color: #e10600 !important;
  font-weight: 800 !important;
}

/* 2) If “SIZE” is just the SELECT itself / placeholder area */
#bb-biscuits-v162-modal select.biscuits-bundle-item__select,
#bb-biscuits-v162-modal .biscuits-bundle-item__select,
#bb-biscuits-v162-modal select{
  font-weight: 800 !important;
}

/* 3) Some layouts render “SIZE” as a standalone heading near the select */
#bb-biscuits-v162-modal .biscuits-bundle-item-card h1,
#bb-biscuits-v162-modal .biscuits-bundle-item-card h2,
#bb-biscuits-v162-modal .biscuits-bundle-item-card h3,
#bb-biscuits-v162-modal .biscuits-bundle-item-card h4,
#bb-biscuits-v162-modal .biscuits-bundle-item-card strong{
  /* only affects inside modal; keeps it bold */
  font-weight: 800 !important;
}

/* =========================
   Titles smaller + bold (as you asked before)
   ========================= */
#bb-biscuits-v162-modal .biscuits-bundle-item__title,
#bb-biscuits-v162-modal .biscuits-bundle-item-card__title{
  font-size: 13px !important;
  font-weight: 800 !important;
  line-height: 1.15 !important;
}

#bb-biscuits-v162-modal .biscuits-bundle-step__title{
  font-size: 20px !important;
  font-weight: 900 !important;
  line-height: 1.15 !important;
}

/* Optional: remove the “required” word */
#bb-biscuits-v162-modal .biscuits-bundle-step__required{
  display: none !important;
}
/* Hide ONLY the ATC button on this product page */
body.product-the-juv-elite-club_initiation-box-1 form[action*="/cart/add"] button[type="submit"],
body.product-the-juv-elite-club_initiation-box-1 form[action*="/cart/add"] button[name="add"],
body.product-the-juv-elite-club_initiation-box-1 form[action*="/cart/add"] input[type="submit"]{
  display:none !important;
}

/* Square style for SHOW MORE button */
.show-more-button .button,
.button.show-more,
a[href*="show-more"],
.section .button--show-more {
  background: #000 !important;
  color: #fff !important;
  border-radius: 0 !important;   /* remove pill */
  border: none !important;
  padding: 12px 22px !important;
  font-size: 0.9rem !important;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 1px;
  line-height: 1;
  transition: background 0.2s ease;
}

/* Hover */
.show-more-button .button:hover,
.button.show-more:hover,
.section .button--show-more:hover {
  background: #222 !important;
}
/* =========================
   SLIDES / BANNERS / HERO TYPOGRAPHY
========================= */

/* TITLES — BOLD (no extra bold) */

.banner__heading,
.banner__heading *,
.slideshow__heading,
.slide__heading,
.hero__title,
.section-header__title {

  font-family: "NotoSansHebrewCustom", "Inter", sans-serif !important;
  font-weight: 700 !important;

}


/* SUBHEADINGS / DESCRIPTIONS */

.banner__text,
.slideshow__text,
.slide__text,
.hero__subtitle,
.banner__text *,
.slideshow__text *,
.slide__text *,
.hero__subtitle * {

  font-family: "NotoSansHebrewCustom", "Inter", sans-serif !important;

  /* Regular or SemiBold */
  font-weight: 500 !important;

  /* smaller description size */
  font-size: 0.95rem !important;
  line-height: 1.35 !important;

}


/* Slightly larger on desktop */

@media only screen and (min-width: 768px) {

  .banner__text,
  .slideshow__text,
  .slide__text,
  .hero__subtitle {

    font-size: 1rem !important;

  }

}

/* ===============================
MAKE SLIDE + COLLECTION BUTTONS SAME
=============================== */

.show-more-btn,
.banner__buttons .button,
.slideshow__text .button,
.slide__text .button,
.hero__buttons .button {

  display: inline-block !important;
  background: #000 !important;
  color: #fff !important;

  padding: 12px 22px !important;
  font-size: 14px !important;
  font-weight: 700 !important;

  border-radius: 0px !important;

  text-transform: uppercase !important;
  letter-spacing: 1px !important;
  line-height: 1 !important;

  transition: background 0.2s ease, opacity 0.2s ease !important;
}

.show-more-btn:hover,
.banner__buttons .button:hover,
.slideshow__text .button:hover,
.slide__text .button:hover,
.hero__buttons .button:hover {

  background: #222 !important;
  opacity: 1 !important;
}

/* ===============================
MATCH SLIDESHOW BUTTON TO COLLECTION BUTTON
=============================== */

.show-more-btn,
.button.white.outline {

  display: inline-block !important;

  background: #000 !important;
  color: #fff !important;

  padding: 12px 22px !important;
  font-size: 14px !important;
  font-weight: 700 !important;

  border-radius: 0px !important;

  text-transform: uppercase !important;
  letter-spacing: 1px !important;
  line-height: 1 !important;

  border: none !important;

  transition: background 0.2s ease, opacity 0.2s ease !important;
}


/* hover */

.show-more-btn:hover,
.button.white.outline:hover {

  background: #222 !important;
  color: #fff !important;
  opacity: 1 !important;

}

html[lang="he"],
body:lang(he) {
  direction: rtl;
  unicode-bidi: embed;
}

/* Fix Hebrew text being reversed by split animation */

.slideshow-heading,
.split-text {
  direction: rtl;
  unicode-bidi: plaintext;
}

.slideshow-heading span,
.split-text span {
  direction: rtl;
  unicode-bidi: plaintext;
}