.drawer{position:fixed;z-index:1000;left:0;top:0;width:100vw;height:100%;display:flex;justify-content:flex-end;background-color:rgba(var(--color-foreground),.5);transition:visibility var(--duration-default) ease}.drawer.active{visibility:visible}.drawer__inner{height:100%;width:40rem;max-width:calc(100vw - 3rem);border-right:0;background-color:rgb(var(--color-background));overflow:hidden;display:flex;flex-direction:column;transform:translateX(100%);transition:transform var(--duration-default) ease}.drawer__inner-empty{height:100%;background-color:rgb(var(--color-background));overflow:hidden;display:flex;flex-direction:column}.cart-drawer__warnings{display:flex;flex-direction:column;flex:1;justify-content:center}cart-drawer.is-empty .drawer__inner{display:grid;grid-template-rows:1fr;align-items:center;padding:0}cart-drawer.is-empty .drawer__header{display:none}cart-drawer:not(.is-empty) .cart-drawer__warnings,cart-drawer:not(.is-empty) .cart-drawer__collection{display:none}.cart-drawer__warnings--has-collection .cart__login-title{margin-top:2.5rem}.drawer.active .drawer__inner{transform:translateX(0)}.drawer__header{position:relative;background-color:rgb(var(--color-background));padding:1.7rem 0 .33rem 0;display:flex;justify-content:space-between;align-items:center}.drawer__heading{margin:0 0 1.22rem .8rem}.drawer__close{display:inline-block;padding:0;min-width:4.4rem;min-height:4.4rem;box-shadow:0 0 0 .2rem rgba(var(--color-button),0);position:absolute;top:10px;right:-10px;color:rgb(var(--color-foreground));background-color:#fff0;border:none;cursor:pointer;padding-right:2.5rem}.cart-drawer__warnings .drawer__close{right:5px}.drawer__close svg{height:1.8rem;width:1.8rem}.drawer__contents{flex-grow:1;display:flex;flex-direction:column}.drawer__footer{background-color:#f6f6f6!important;border-top:.1rem solid rgba(var(--color-foreground),.2);padding:2rem}cart-drawer.is-empty .drawer__footer{display:none}.drawer__footer>details{border-bottom:.1rem solid rgba(var(--color-foreground),.2)}.drawer__footer>details[open]{padding-bottom:1.5rem}.drawer__footer summary{display:flex;position:relative;line-height:1;padding:1.5rem 0}.drawer__footer>.cart-drawer__footer{}cart-drawer{position:fixed;top:0;left:0;width:100vw;height:100%}.cart-drawer__overlay{position:fixed;top:0;right:0;bottom:0;left:0}.cart-drawer__overlay:empty{display:block}.cart-drawer__form{flex-grow:1;display:flex;flex-wrap:wrap}.cart-drawer__collection{margin:0 2.5rem 1.5rem}.cart-drawer .drawer__cart-items-wrapper{flex-grow:1}.cart-drawer .cart-items,.cart-drawer tbody{display:block;width:100%}.cart-drawer thead{display:inline-table;width:100%;position:sticky;top:0;z-index:2;background-color:rgb(var(--color-base-background-1))}.cart-drawer-items-and-upsell{overflow:auto;flex:1}@media screen and (max-height:650px){.cart-drawer-items-and-upsell{overflow:visible}.drawer__inner{overflow:scroll}}.cart-drawer .cart-item{display:grid;grid-template-columns: 0.8fr 1fr 1fr;grid-template-rows: repeat(2, auto);gap:.11rem .1rem;margin-bottom:0;padding:1.5rem 1rem 1rem 0}.cart-drawer .cart-item:last-child{margin-bottom:1rem}.cart-drawer .cart-item__media{grid-row:1 / 3;max-height:88px;max-width:88px}.cart-drawer .cart-item__image{max-height:80px;max-width:80px;margin-left:1rem;border-radius:5px!important}.cart-drawer .cart-items thead{margin-bottom:.5rem}.cart-drawer .cart-items thead th:first-child,.cart-drawer .cart-items thead th:last-child{width:0;padding:0}.cart-drawer .cart-items thead th:nth-child(2){width:50%;padding-left:0}.cart-drawer .cart-items thead tr{display:table-row;margin-bottom:0}.cart-drawer .cart-items th{border-bottom:.1rem solid rgba(var(--color-foreground),.08)}.cart-drawer .cart-item:last-child{margin-bottom:3.5rem!important}.cart-drawer .cart-item .loading-overlay{right:5px;padding-top:2.5rem}.cart-drawer .cart-item__details{width:auto;grid-column:2 / 4}.cart-drawer .cart-item__totals{pointer-events:none;display:flex;align-items:flex-start;justify-content:flex-end}.cart-drawer.cart-drawer .cart-item__price-wrapper>*:only-child{margin-top:0;font-size:1.7rem;font-weight:800!important}.cart-drawer .cart-item__price-wrapper .cart-item__discounted-prices{display:flex;flex-direction:column;gap:.6rem}.cart-drawer .unit-price{margin-top:.6rem}.cart-drawer .cart-items .cart-item__quantity{padding-top:0;grid-column:2 / 5;margin-left:.8px}.cart-drawer .totals{justify-content:space-between}.cart-drawer .price{line-height:1}.cart-drawer .tax-note{margin:1.2rem 0 1rem auto;text-align:left}.cart-drawer .product-option dd{word-break:break-word}.cart-drawer details[open]>summary .icon-caret{transform:rotate(180deg)}.cart-drawer .cart__checkout-button{max-width:none}.drawer__footer .cart__dynamic-checkout-buttons{max-width:100%}.drawer__footer #dynamic-checkout-cart ul{flex-wrap:wrap!important;flex-direction:row!important;margin:.5rem -.5rem 0 0!important;gap:.5rem}.drawer__footer [data-shopify-buttoncontainer]{justify-content:flex-start}.drawer__footer #dynamic-checkout-cart ul>li{flex-basis:calc(50% - 0.5rem)!important;margin:0!important}.drawer__footer #dynamic-checkout-cart ul>li:only-child{flex-basis:100%!important;margin-right:0.5rem!important}@media screen and (min-width:750px){.drawer__footer #dynamic-checkout-cart ul>li{flex-basis:calc(100% / 3 - 0.5rem)!important;margin:0!important}.drawer__footer #dynamic-checkout-cart ul>li:first-child:nth-last-child(2),.drawer__footer #dynamic-checkout-cart ul>li:first-child:nth-last-child(2)~li,.drawer__footer #dynamic-checkout-cart ul>li:first-child:nth-last-child(4),.drawer__footer #dynamic-checkout-cart ul>li:first-child:nth-last-child(4)~li{flex-basis:calc(50% - 0.5rem)!important}}.cart-drawer-items-and-upsell::-webkit-scrollbar{width:3px}.cart-drawer-items-and-upsell::-webkit-scrollbar-thumb{background-color:rgba(var(--color-foreground),.7);border-radius:100px}.cart-drawer-items-and-upsell::-webkit-scrollbar-track-piece{margin-top:31px}.cart-progress{padding-bottom:.1rem}.cart-progress__bar{height:.9rem;position:relative;border-radius:5rem;text-align:center;}.cart-drawer thead{display:none}.cart-drawer tbody{border-top:.1rem solid rgba(var(--color-foreground),.08)}.cart-secondary-upsell-container{border-bottom:.1rem solid rgba(var(--color-foreground),.2)}.cart-secondary-upsell-container .title{margin:.75rem 0;font-size:calc(var(--font-heading-scale) * 1.5rem)}.cart-secondary-upsell{display:flex;padding:1rem;align-items:flex-start;background:rgb(var(--color-base-background-2));border-radius:2rem;box-shadow:.3rem .3rem 1rem rgb(0 0 0 / .15);margin:1.5rem 0}.cart-secondary-upsell__image{width:7rem;flex-shrink:0;box-shadow:.3rem .3rem 1rem rgb(0 0 0 / .05);border-radius:1rem;overflow:hidden}.cart-secondary-upsell__image img{vertical-align:bottom}.cart-secondary-upsell__content{padding-left:1.5rem;flex-grow:1}.cart-secondary-upsell__title{text-decoration:none;display:block;margin-bottom:.3em;font-size:calc(var(--font-heading-scale) * 1.4rem)}.cart-secondary-upsell__title:hover{text-decoration:underline}.cart-secondary-upsell__desc p{font-size:1.4rem;margin-top:0;line-height:1.3;margin-bottom:.5em}.cart-secondary-upsell__variants{margin:.3rem 0 .75rem}.cart-secondary-upsell__prices-and-btn{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;column-gap:.75rem;row-gap:.5rem}.cart-secondary-upsell__btn{cursor:pointer;position:relative;border:none;outline:none;padding:.1em 1em;font-weight:700;font-size:1.5rem;line-height:1.8;background:rgb(var(--color-base-accent-1));color:rgb(var(--color-base-background-1));white-space:nowrap;border-radius:.3em}.cart-secondary-upsell__btn:hover{background:rgba(var(--color-base-accent-1),.9)}.cart-secondary-upsell__btn .loading-overlay__spinner{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);height:1.8rem;width:1.8rem;display:inline-flex}.cart-secondary-upsell__prices-and-btn .price{flex-shrink:0;margin:0;font-size:1.8rem}@media screen and (max-width:370px){.cart-secondary-upsell__prices-and-btn product-form{max-width:7rem}}.cart-secondary-upsell .variant-selects--small{margin-bottom:.75rem}.cart-primary-upsell-container{padding:5rem 1.8rem 0 1.8rem}.cart-primary-upsell-container .title{margin: 0; width: fit-content; padding: 0 0 1.08rem; color: rgba(var(--color-foreground)); font-weight: 500; text-align: left; font-size: 1.34rem;}.cart-primary-upsell{display:flex;align-items:flex-start;border-radius:2rem;}.cart-primary-upsell__image{width:100px;border-radius:1rem;flex-shrink:0;overflow:hidden;margin-top:.44rem}.cart-primary-upsell__image img{vertical-align:bottom}.cart-primary-upsell__content{padding-left:1.5rem}.cart-primary-upsell__title{text-align:left;font-size: 1.38rem !important;line-height:1.3;margin-bottom:0.88rem;text-decoration:none;display:block}.cart-primary-upsell__title:hover{text-decoration:underline}.cart-primary-upsell__desc p{text-align:left;font-size:1.2rem;margin-top:0;line-height:1.3;margin-bottom:1.08rem}.cart-primary-upsell__btns{padding:.26em 2.6em;font-weight:700;font-size:1.37rem !important; font-weight:bold !important;line-height:1.8;background:rgb(var(--color-base-accent-1));color:rgb(var(--color-base-background-1));border-radius:.3em;border-color:#000000!important;border-radius:var(--buttons-radius);border-width:0;letter-spacing:.1rem;font-weight:500!important;color:white!important;box-shadow var(--duration-short) ease min-width:calc(5.5rem + var(--buttons-border-width) * 2);min-height:calc(1.45rem + var(--buttons-border-width) * 2)}.cart-primary-upsell__btn{font-weight: bold; cursor:pointer;position:relative;border:none;outline:none;padding: .33rem 2.6rem;font-size:1.37rem !important; font-weight:bold !important;line-height:1.8;background:rgb(var(--color-base-accent-1));color:rgb(var(--color-base-background-1));white-space:nowrap;border-radius:.3em;margin-bottom:0.3rem!important;margin:0 auto!important;color:white!important;justify-content:center!important;border-color:#000000!important;border-radius:var(--buttons-radius);border-width:0;letter-spacing:.1rem;color:white!important;background-color:#000000!important;font:inherit;text-decoration:none;transition:box-shadow var(--duration-short) ease min-width:calc(5.5rem + var(--buttons-border-width) * 2);min-height:calc(1.45rem + var(--buttons-border-width) * 2)}.cart-primary-upsell__btn .loading-overlay__spinner{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);height:1.8rem;width:1.8rem;display:inline-flex}.cart-primary-upsell__prices-and-btn{display:flex;align-items:center;text-align:center;column-gap:.75rem;row-gap:1.08rem;flex-wrap:wrap}.cart-primary-upsell__prices-and-btn .price{margin:0}.cart-primary-upsell__variants{margin:.5rem 0 1rem}.cart-primary-upsell .variant-selects--small{margin-bottom:.75rem;display:none}.cart__badges{background-color:#f6f6f6!important}.payment-badges{padding:0;display:flex;justify-content:center;align-items:center;flex-wrap:wrap;margin:0}.cart__badges img{height:25.8px;width:280px;display:flex;background-color:#f6f6f6!important;margin:0 2rem 2rem 2rem!important}.cartx-pricex{flex-direction:row;margin:0;display:grid!important;grid-template-rows:auto auto!important}.cartx-compare-price{flex-direction:row;flex-wrap:nowrap!important;display:flex!important}.cartx-compare-old-price{flex-direction:row;flex-wrap:nowrap!important;display:flex!important;font-size:1.3rem;font-weight:800;margin-left:0;text-decoration-line:line-through;color:#000;color:rgba(var(--color-foreground),.88)!important;opacity:.69;margin:auto}.pricex{flex-direction:row;flex-wrap:nowrap!important;display:grid!important;font-size:1.4rem;font-weight:800;opacity: 0.99;color:#262626}.pricexx{flex-direction:row;flex-wrap:nowrap!important;display:flex!important;min-width:120.594px;justify-content:center;padding-top:.8rem}.cartx-item__totals{flex-direction:row;flex-wrap:nowrap!important;display:flex!important}.saving8x{display:flex!important;margin-bottom: 1px;width:100%;font-size:1.13rem;line-height:16px;flex-direction:column;text-wrap:nowrap;color:#585858;font-weight:800}}.cart-grid{display:grid!important;grid-template-columns:1fr!important;padding-left:1rem;margin:0 auto!important}.xrow{display:grid!important;grid-template-columns:1fr 1fr!important;grid-gap:3.5px!important}.rowx{grid-column:1 / -1!important;margin:0 auto}.icon-discountx{margin:0 5px;font-size:13px}
/* Superseded by the drawer shell block at the end of this file. This rule
   scrolled the whole drawer as one document, which is what carried the footer
   off the bottom of the screen. */
.drawer__inner {
  overflow-x: hidden;
}

.cart-drawer__form {
  overflow-x: hidden;
}

/* Make tables responsive */
.cart-items {
  table-layout: fixed;
}

/* Ensure all content respects container boundaries */
.drawer__contents {
  overflow-x: hidden;
}

/* ── Drawer shell: pinned header, one scroll region, pinned footer ──────────
   The drawer is a column of four parts - title, reward milestone bar, the
   scrolling middle (cart lines + "You may also like"), and the footer that
   carries savings, shipping, subtotal and Checkout. Only the middle scrolls.

   Before this, `.drawer__inner` was `overflow-y: auto`, so the drawer scrolled
   as a single document: with a couple of cart lines and four upsell rows the
   footer sat a full screen below the fold on a phone, and the checkout button
   was simply not on screen until you scrolled past every recommendation.
   `hidden` here is what forces the middle to absorb the overflow instead. */
.cart-drawer .drawer__inner {
  overflow: hidden;
}

/* The one scroll region. min-height: 0 is the load-bearing declaration: a flex
   item's default min-height is auto - "never shrink below your content" - so
   without it this box still grows to fit every upsell row and pushes the
   footer back out of the drawer, with an overflow property that looks correct.
   Content that runs past the bottom is clipped and reached by scrolling here,
   which is the intended behaviour for the upsell rows. */
.cart-drawer .cart-drawer-items-and-upsell {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  -webkit-overflow-scrolling: touch;
  /* Hitting the end of the list must not hand the scroll to the page behind
     the drawer. */
  overscroll-behavior: contain;
}

/* Fixed furniture: the title, the milestone bar and the footer keep their
   natural height and never scroll away, at any viewport size. */
.cart-drawer .drawer__header,
.cart-drawer .cart-milestones,
.cart-drawer .cart-progress,
.cart-drawer .drawer__footer {
  flex: 0 0 auto;
}

/* Short viewports - landscape phones, small laptops - used to fall back to
   scrolling the whole drawer (`overflow: visible` on the middle, `scroll` on
   the shell, in the max-height: 650px block above). That is the same
   footer-off-screen failure, just conditional, so it is cancelled here: the
   pinned-footer layout is the layout at every height. */
@media screen and (max-height: 650px) {
  .cart-drawer .drawer__inner {
    overflow: hidden;
  }

  .cart-drawer .cart-drawer-items-and-upsell {
    overflow-y: auto;
    overflow-x: hidden;
  }
}

/* The empty state has no footer to protect and its recommended-collection
   block can be taller than the drawer, so it keeps its own scroll. */
cart-drawer.is-empty .drawer__inner {
  overflow-y: auto;
}

/* A fixed element's percentage height resolves against a viewport that mobile
   Safari's toolbars can be sitting on top of; dvh tracks the height that is
   actually visible, so the footer lands on the real bottom edge. Nothing
   inside the drawer scrolls the page any more, so the toolbars cannot collapse
   mid-scroll and the height does not move underneath the layout. */
@supports (height: 100dvh) {
  cart-drawer.drawer {
    height: 100dvh;
  }
}

/* ── Empty drawer ───────────────────────────────────────────────────────────
   One message, one way forward, one way back. The block sits a little above
   the geometric middle, which is where a centred composition reads as
   centred. Everything is drawn from the theme's colour tokens and button
   radius; nothing here uses .button, whose !important weight, tracking and
   colour are what made the old "Continue shopping" heavy. */
.cart-drawer .cart-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  max-width: 34rem;
  margin: 0 auto;
  padding: 0 2.4rem 6vh;
  text-align: center;
}

.cart-drawer .cart-empty__title {
  margin: 0;
  font-size: 2rem;
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: -.005em;
}

.cart-drawer .cart-empty__text {
  max-width: 26rem;
  margin: .6rem 0 0;
  font-size: 1.4rem;
  line-height: 1.5;
  letter-spacing: .01em;
  color: rgba(var(--color-foreground), .64);
  text-wrap: balance;
}

.cart-drawer .cart-empty__actions {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .8rem;
  margin-top: 2.6rem;
}

.cart-drawer .cart-empty__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  min-width: 22rem;
  max-width: 100%;
  min-height: 4.6rem;
  padding: 0 2.6rem;
  border-radius: var(--buttons-radius);
  background: rgb(var(--color-base-accent-1));
  color: rgb(var(--color-base-solid-button-labels));
  font-size: 1.5rem;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: .02em;
  text-decoration: none;
  -webkit-tap-highlight-color: transparent;
  transition: background-color .2s ease, transform .15s ease;
}

.cart-drawer .cart-empty__cta .icon-arrow {
  flex: 0 0 auto;
  width: 1.4rem;
  height: 1rem;
  transition: transform .25s cubic-bezier(.2, .7, .2, 1);
}

.cart-drawer .cart-empty__cta:active {
  transform: scale(.985);
}

.cart-drawer .cart-empty__continue {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 4.4rem;
  padding: 0 .4rem;
  border: 0;
  background: none;
  color: rgba(var(--color-foreground), .72);
  font: inherit;
  font-size: 1.4rem;
  font-weight: 500;
  letter-spacing: .02em;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  transition: color .2s ease;
}

.cart-drawer .cart-empty__cta:focus-visible,
.cart-drawer .cart-empty__continue:focus-visible {
  outline: 2px solid rgb(var(--color-foreground));
  outline-offset: 3px;
}

/* The underline is the countdown. A faint track reads as an ordinary link;
   over it the timer fills from left to right, and when it is full the drawer
   closes - so the line shows what is about to happen and how long is left.
   cart-drawer.js owns the timing and sets data-empty-countdown on the drawer:
   running, paused while the mouse rests on the panel, or stopped once the
   customer engages, at which point the fill fades and only the track stays. */
.cart-drawer .cart-empty__continue-label {
  position: relative;
  padding-bottom: .3rem;
}

.cart-drawer .cart-empty__continue-label::after,
.cart-drawer .cart-empty__timer {
  content: '';
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  height: 1px;
  background: currentColor;
  pointer-events: none;
}

.cart-drawer .cart-empty__continue-label::after {
  opacity: .22;
  transition: opacity .2s ease;
}

.cart-drawer .cart-empty__timer {
  opacity: 0;
  transform: scaleX(0);
  transform-origin: left center;
  transition: opacity .3s ease;
}

/* Duration and offset are set inline on the element by cart-drawer.js; 5s
   is only the fallback. */
cart-drawer[data-empty-countdown] .cart-empty__timer {
  animation: cart-empty-countdown 5s linear both;
}

cart-drawer[data-empty-countdown='running'] .cart-empty__timer,
cart-drawer[data-empty-countdown='paused'] .cart-empty__timer {
  opacity: 1;
}

cart-drawer[data-empty-countdown='paused'] .cart-empty__timer,
cart-drawer[data-empty-countdown='stopped'] .cart-empty__timer {
  animation-play-state: paused;
}

@keyframes cart-empty-countdown {
  from { transform: scaleX(0); }
  to { transform: scaleX(1); }
}

@media (hover: hover) {
  .cart-drawer .cart-empty__cta:hover {
    background: rgba(var(--color-base-accent-1), .9);
  }

  .cart-drawer .cart-empty__cta:hover .icon-arrow {
    transform: translateX(.3rem);
  }

  .cart-drawer .cart-empty__continue:hover {
    color: rgb(var(--color-foreground));
  }

  .cart-drawer .cart-empty__continue:hover .cart-empty__continue-label::after {
    opacity: .45;
  }
}

/* The countdown fill stays: it is information, not decoration. */
@media (prefers-reduced-motion: reduce) {
  .cart-drawer .cart-empty__cta,
  .cart-drawer .cart-empty__cta .icon-arrow,
  .cart-drawer .cart-empty__continue {
    transition: none;
  }
}
