@charset "UTF-8";

/* Maison YAMM — cart route. Woo owns state; V2 owns presentation. */
body.yamm-route-cart,
body.woocommerce-cart {
  background:#f3f3f3;
  overflow-x:hidden;
}

body.yamm-route-cart .yamm-main,
body.woocommerce-cart .yamm-main {
  width:100%;
  max-width:none;
  min-height:100svh;
  margin:0;
  padding:var(--yamm-header-height) 0 0;
  background:#f3f3f3;
}

/* Cart is the one commerce route where the global header never auto-hides. */
body.yamm-route-cart .yamm-header,
body.woocommerce-cart .yamm-header {
  position:fixed!important;
  inset:0 0 auto!important;
  transform:none!important;
  background:#fff!important;
  color:#111!important;
  border-color:rgba(0,0,0,.065)!important;
  box-shadow:none!important;
}
body.yamm-route-cart .yamm-header.is-hidden,
body.woocommerce-cart .yamm-header.is-hidden { transform:none!important; }

.yamm-cart-v2 {
  --cart-grey:#f3f3f3;
  --cart-card:#fff;
  --cart-muted:#7a7a7a;
  --cart-line:#dedede;
  width:100%;
  min-height:calc(100svh - var(--yamm-header-height));
  color:#111;
  background:var(--cart-grey);
  font-family:var(--yamm-font-ui);
}

.yamm-cart-v2 button,
.yamm-cart-v2 a { -webkit-tap-highlight-color:transparent; }

.yamm-cart-v2__layout {
  display:grid;
  grid-template-columns:minmax(0,66fr) minmax(390px,34fr);
  align-items:stretch;
  min-height:calc(100svh - var(--yamm-header-height));
}

.yamm-cart-v2__left {
  min-width:0;
  padding:40px clamp(38px,5.1vw,82px) 48px;
  background:var(--cart-grey);
}

.yamm-cart-v2__left-inner {
  width:min(100%,660px);
  margin-inline:auto;
}

.yamm-cart-v2__support {
  width:100%;
  min-height:64px;
  margin:0 0 30px;
  display:flex;
  align-items:center;
  overflow:hidden;
  border-radius:8px;
  background:#fff;
  box-shadow:0 2px 12px rgba(0,0,0,.045);
}

.yamm-cart-v2__support-logo {
  align-self:stretch;
  flex:0 0 64px;
  width:64px;
  display:grid;
  place-items:center;
  background:#050505;
}
.yamm-cart-v2__support-logo img {
  width:38px;
  height:38px;
  object-fit:contain;
  background:#050505;
}
.yamm-cart-v2__support p {
  margin:0;
  padding:0 20px;
  font-size: 14px;
  font-weight:400;
  line-height:1.25;
}
.yamm-cart-v2__support strong { font-weight:500; }

.yamm-cart-v2__title {
  margin:0 0 25px;
  font-family:var(--yamm-font-ui);
  font-size: 22px;
  font-weight:400;
  line-height:1.1;
}
.yamm-cart-v2__title span {
  margin-left:7px;
  color:#555;
  font-family:var(--yamm-font-ui);
  font-weight: 400;
}

/* Product lines belong to the document flow. The page itself owns scrolling. */
.yamm-cart-v2__items-scroll {
  min-height:0;
  padding:0;
  overflow:visible;
}

.yamm-cart-v2__item {
  position:relative;
  width:100%;
  min-height:294px;
  margin:0 0 10px;
  padding:8px 18px 8px 8px;
  display:grid;
  grid-template-columns:224px minmax(0,1fr);
  gap:20px;
  overflow:hidden;
  border-radius:8px;
  background:var(--cart-card);
  box-shadow:0 1px 8px rgba(0,0,0,.025);
}
.yamm-cart-v2__item-media {
  width:224px;
  height:278px;
  overflow:hidden;
  background:#efefed;
  text-decoration:none;
}
.yamm-cart-v2__item-media img {
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
}
.yamm-cart-v2__item-copy {
  position:relative;
  min-width:0;
  min-height:278px;
  padding:13px 0 12px;
}
.yamm-cart-v2__sku {
  display:block;
  margin-bottom:8px;
  color:#111;
  font-family:var(--yamm-font-ui);
  font-size: 12px;
  font-weight:400;
  line-height:1.2;
}
.yamm-cart-v2__item-copy h2 {
  margin:0;
  font-size: 16px;
  font-weight:400;
  line-height:1.25;
}
.yamm-cart-v2__details-trigger {
  margin:7px 0 0;
  padding:0 0 1px;
  border:0;
  border-bottom:1px solid currentColor;
  border-radius:0!important;
  background:transparent;
  color:#111;
  cursor:pointer;
  font-family:var(--yamm-font-ui);
  font-size: 13px;
  font-weight:400;
  line-height:1.15;
}
.yamm-cart-v2__options {
  margin:25px 0 0;
  color:#111;
  font-family:var(--yamm-font-ui);
  font-size: 12px;
  font-weight:400;
}
.yamm-cart-v2__options div { display:flex; gap:4px; }
.yamm-cart-v2__options dt,.yamm-cart-v2__options dd { margin:0; }

.yamm-cart-v2__item-commerce {
  position:absolute;
  right:0;
  bottom:10px;
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:13px;
}
.yamm-cart-v2__item-commerce > strong {
  font-family:var(--yamm-font-ui);
  font-size: 15px;
  font-weight: 400;
  line-height:1;
}
.yamm-cart-v2__item-commerce .woocommerce-Price-amount { font-weight: 400; }
.yamm-cart-v2__qty {
  height:38px;
  display:grid;
  grid-template-columns:38px 34px 38px;
  align-items:center;
  border:1px solid #d4d4d4;
  border-radius:4px;
  background:#fff;
}
.yamm-cart-v2__qty button {
  width:38px;
  height:36px;
  padding:0;
  display:grid;
  place-items:center;
  border:0;
  border-radius:0!important;
  background:transparent;
  color:#111;
  cursor:pointer;
  font-family:var(--yamm-font-ui);
  font-size: 16px;
  font-weight: 400;
}
.yamm-cart-v2__qty button:disabled { opacity:.35; cursor:default; }
.yamm-cart-v2__qty button svg {
  width:18px;
  height:18px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.45;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.yamm-cart-v2__qty span {
  text-align:center;
  font-family:var(--yamm-font-ui);
  font-size: 13px;
  font-weight: 400;
}

.yamm-cart-v2__sample-recap[hidden] { display:none!important; }
.yamm-cart-v2__item--samples { margin-top:10px; }
.yamm-cart-v2__sample-label {
  margin:18px 0 4px;
  color:#777;
  font-family:var(--yamm-font-ui);
  font-size: 12px;
}
.yamm-cart-v2__item--samples ul {
  margin:0;
  padding:0;
  columns:2;
  list-style:none;
  color:#555;
  font-family:var(--yamm-font-ui);
  font-size: 12px;
  line-height:1.45;
}
.yamm-cart-v2__sample-free {
  position:absolute;
  right:0;
  bottom:16px;
  font-size: 12px;
  font-weight:400;
}

.yamm-cart-v2__personalization { margin-top:25px; }
.yamm-cart-v2__personalization > h2 {
  position:relative;
  margin:0 0 12px;
  display:flex;
  align-items:center;
  gap:8px;
  color:#666;
  font-family:var(--yamm-font-ui);
  font-size: 13px;
  font-weight: 400;
}
.yamm-cart-v2__personalization > h2::after {
  content:"";
  flex:1 1 auto;
  height:1px;
  margin-left:8px;
  background:#d7d7d7;
}
.yamm-cart-v2__personalization > h2 span {
  font-size: 11px;
  text-transform:uppercase;
}
.yamm-cart-v2__extra-card {
  width:100%;
  min-height:94px;
  margin:0 0 10px;
  padding:10px 16px;
  display:grid;
  grid-template-columns:76px minmax(0,1fr) 20px;
  align-items:center;
  gap:16px;
  border:0;
  border-radius:12px!important;
  background:#fff;
  color:#111;
  cursor:pointer;
  text-align:left;
}
.yamm-cart-v2__extra-card.is-disabled { opacity:.42; cursor:not-allowed; }
.yamm-cart-v2__extra-card img {
  width:76px;
  height:72px;
  object-fit:cover;
  object-position:center;
  border-radius:7px;
}
.yamm-cart-v2__extra-card span { min-width:0; display:block; }
.yamm-cart-v2__extra-card strong {
  display:block;
  margin-bottom:5px;
  font-size: 15px;
  font-weight:400;
}
.yamm-cart-v2__extra-card small {
  display:block;
  overflow:hidden;
  color:#999;
  font-family:var(--yamm-font-ui);
  font-size: 13px;
  font-weight: 400;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.yamm-cart-v2__extra-card b {
  justify-self:end;
  font-family:var(--yamm-font-ui);
  font-size: 22px;
  font-weight: 400;
}

.yamm-cart-v2__empty {
  min-height:320px;
  padding:50px 30px;
  display:grid;
  place-items:center;
  align-content:center;
  gap:20px;
  border-radius:8px;
  background:#fff;
  text-align:center;
}
.yamm-cart-v2__empty p { margin:0; font-size: 19px; }
.yamm-cart-v2__empty a {
  min-width:280px;
  min-height:52px;
  display:grid;
  place-items:center;
  border:1px solid #111;
  border-radius:999px;
  text-decoration:none;
}

.yamm-cart-v2__right {
  position:relative;
  min-width:390px;
  background:#fff;
}
.yamm-cart-v2__sidebar {
  position:sticky;
  top:var(--yamm-header-height);
  width:100%;
  min-height:calc(100svh - var(--yamm-header-height));
  padding:28px clamp(34px,4vw,54px) 42px;
  display:flex;
  flex-direction:column;
  background:#fff;
}
.yamm-cart-v2__summary {
  margin:0 0 29px;
  font-family:var(--yamm-font-ui);
}
.yamm-cart-v2__summary > div {
  padding:3px 0;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  font-size: 13px;
  line-height:1.3;
}
.yamm-cart-v2__summary strong { font-weight:400; white-space:nowrap; }
.yamm-cart-v2__summary .is-total {
  margin-top:17px;
  font-size: 19px;
}
.yamm-cart-v2__summary .is-total strong { font-size: 19px; }

.yamm-cart-v2__checkout,
.yamm-cart-v2__paypal {
  width:100%;
  min-height:52px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  text-decoration:none;
  font-family:var(--yamm-font-ui);
  font-size: 16px;
  font-weight:400;
}
.yamm-cart-v2__checkout {
  border:1px solid #050505;
  background:#050505;
  color:#fff;
}
.yamm-cart-v2__checkout:hover { background:#1a1a1a; }
.yamm-cart-v2__paypal {
  min-height:50px;
  margin-top:12px;
  gap:9px;
  border:1px solid #0070e0;
  background:#0070e0;
  color:#fff;
  transition:background-color 180ms ease,border-color 180ms ease;
}
.yamm-cart-v2__paypal:hover,
.yamm-cart-v2__paypal:focus-visible {
  border-color:#005bb5;
  background:#005bb5;
}
.yamm-cart-v2__paypal span { line-height:1; }
.yamm-cart-v2__paypal strong {
  font-family:Arial,Helvetica,sans-serif;
  font-size: 22px;
  font-style:italic;
  font-weight:700;
  line-height:1;
  letter-spacing:-.045em;
}

.yamm-cart-v2__continue {
  margin:18px auto 23px;
  display:inline-block;
  color:#111;
  font-size: 13px;
  text-decoration:underline;
  text-underline-offset:3px;
}

.yamm-cart-v2__services {
  border-top:1px solid #e4e4e4;
}
.yamm-cart-v2__services button {
  width:100%;
  min-height:117px;
  padding:23px 0;
  display:grid;
  grid-template-columns:34px minmax(0,1fr) 18px;
  align-items:center;
  gap:17px;
  border:0;
  border-bottom:1px solid #e4e4e4;
  border-radius:0!important;
  background:#fff;
  color:#111;
  cursor:pointer;
  text-align:left;
}
.yamm-cart-v2__services button > svg {
  width:24px;
  height:24px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.45;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.yamm-cart-v2__services span { min-width:0; }
.yamm-cart-v2__services strong {
  display:block;
  margin-bottom:4px;
  font-family:var(--yamm-font-ui);
  font-size: 16px;
  font-weight:400;
  line-height:1.2;
}
.yamm-cart-v2__services small {
  display:block;
  color:#929292;
  font-family:var(--yamm-font-ui);
  font-size: 13px;
  font-weight: 400;
  line-height:1.45;
}
.yamm-cart-v2__services b {
  justify-self:end;
  font-size:21px;
  font-weight: 400;
}

/* Modal system: a single layer, content swapped by the cart runtime. */
.yamm-cart-v2__modal-layer {
  position:fixed;
  z-index:1400;
  inset:0;
  display:grid;
  place-items:center;
  padding:40px;
  opacity:0;
  visibility:hidden;
  transition:opacity 220ms ease,visibility 220ms step-end;
}
.yamm-cart-v2__modal-layer.is-open {
  opacity:1;
  visibility:visible;
  transition:opacity 220ms ease,visibility 0s;
}
.yamm-cart-v2__modal-backdrop {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  border:0;
  border-radius:0!important;
  background:rgba(0,0,0,.55);
  cursor:default;
}
.yamm-cart-v2__modal {
  position:relative;
  z-index:1;
  width:min(960px,calc(100vw - 80px));
  max-height:calc(100svh - 80px);
  overflow:auto;
  border-radius:2px;
  background:#fff;
  box-shadow:0 20px 70px rgba(0,0,0,.18);
  opacity:0;
  transform:translateY(8px) scale(.99);
  transition:opacity 220ms ease,transform 300ms var(--yamm-ease-lux);
  scrollbar-width:none;
}
.yamm-cart-v2__modal::-webkit-scrollbar { width:0; height:0; }
.yamm-cart-v2__modal-layer.is-open .yamm-cart-v2__modal {
  opacity:1;
  transform:none;
}
body.yamm-cart-modal-open { overflow:hidden!important; }

.yamm-cart-modal__header {
  position:sticky;
  z-index:2;
  top:0;
  min-height:74px;
  padding:0 32px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  border-bottom:1px solid #e5e5e5;
  background:#fff;
}
.yamm-cart-modal__header h2 {
  margin:0;
  font-family:var(--yamm-font-ui);
  font-size: 19px;
  font-weight:400;
  line-height:1.2;
}
.yamm-cart-modal__close {
  width:38px;
  height:38px;
  padding:0;
  display:grid;
  place-items:center;
  border:0;
  border-radius:0!important;
  background:transparent;
  cursor:pointer;
  font-size:25px;
  font-weight:200;
  line-height:1;
}
.yamm-cart-modal__body {
  padding:30px 32px 34px;
  color:#333;
  font-family:var(--yamm-font-ui);
  font-size: 14px;
  font-weight: 400;
  line-height:1.55;
}
.yamm-cart-modal__body > :first-child { margin-top:0; }
.yamm-cart-modal__body > :last-child { margin-bottom:0; }
.yamm-cart-modal__body h3 {
  margin:25px 0 7px;
  color:#111;
  font-family:var(--yamm-font-ui);
  font-size: 16px;
  font-weight:400;
}
.yamm-cart-modal__body ul { margin:9px 0 0; padding-left:19px; }

.yamm-cart-modal--product { width:min(980px,calc(100vw - 80px)); }

.yamm-cart-modal__product-shell {
  position:relative;
  width:100%;
  min-height:0;
  background:#fff;
}

.yamm-cart-modal__product-scroll {
  min-height:0;
}

.yamm-cart-modal__product-gallery {
  width:100%;
  height:100%;
  display:grid;
  grid-auto-flow:column;
  grid-auto-columns:100%;
  overflow-x:auto;
  overflow-y:hidden;
  scroll-snap-type:x mandatory;
  scrollbar-width:none;
}

.yamm-cart-modal__product-gallery::-webkit-scrollbar {
  display:none;
}

.yamm-cart-modal__gallery-slide {
  width:100%;
  height:100%;
  margin:0;
  scroll-snap-align:start;
  scroll-snap-stop:always;
}

.yamm-cart-modal__gallery-slide img {
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  object-position:center;
}

.yamm-cart-modal__gallery-indicator {
  width:100%;
  height:1px;
  overflow:hidden;
  background:rgba(0,0,0,.14);
}

.yamm-cart-modal__gallery-indicator > span {
  width:calc(100% / var(--yamm-cart-gallery-count,1));
  height:1px;
  display:block;
  background:#111;
  transform:translateX(
    calc(
      var(--yamm-cart-gallery-index,0)
      * 100%
    )
  );
  will-change:transform;
}

.yamm-cart-modal__product-footer {
  display:none;
}

.yamm-cart-modal__product-grid {
  display:grid;
  grid-template-columns:48% 52%;
  min-height:550px;
}
.yamm-cart-modal__product-media {
  min-height:550px;
  padding:58px 46px;
  display:grid;
  place-items:center;
  background:#f3f3f3;
}
.yamm-cart-modal__product-media img {
  width:100%;
  height:100%;
  max-height:430px;
  object-fit:cover;
  object-position:center;
}
.yamm-cart-modal__product-copy {
  position:relative;
  padding:67px 50px 50px;
  display:flex;
  flex-direction:column;
}
.yamm-cart-modal__product-close {
  position:absolute;
  top:24px;
  right:28px;
}
.yamm-cart-modal__product-copy .yamm-cart-v2__sku {
  margin-bottom:16px;
  color:#111;
  font-family:var(--yamm-font-ui);
  font-size: 13px;
  font-weight:400;
}
.yamm-cart-modal__product-copy h2 {
  margin:0 0 9px;
  font-size: 22px;
  font-weight:400;
}
.yamm-cart-modal__product-price {
  margin:0 0 35px;
  font-family:var(--yamm-font-ui);
  font-size: 15px;
}
.yamm-cart-modal__product-options {
  margin:0 0 30px;
  color:#111;
  font-family:var(--yamm-font-ui);
  font-size: 14px;
  font-weight:400;
  line-height:1.35;
}
.yamm-cart-modal__product-options p { margin:0; }
.yamm-cart-modal__product-options strong { font-weight:400; }
.yamm-cart-modal__product-description {
  padding-top:22px;
  border-top:1px solid #dedede;
  color:#111;
  font-family:var(--yamm-font-ui);
  font-size: 14px;
  font-weight:400;
  line-height:1.45;
}
.yamm-cart-modal__product-description > :first-child { margin-top:0; }
.yamm-cart-modal__product-description > strong {
  display:block;
  margin-bottom:14px;
  font-weight:400;
}
.yamm-cart-modal__note-list {
  margin:0;
  padding-left:17px;
  display:grid;
  gap:3px;
  color:#111;
  list-style:disc;
}
.yamm-cart-modal__note-list li {
  margin:0;
  padding:0;
  color:#111;
  line-height:1.45;
}
.yamm-cart-modal__note-list strong { font-weight:400; }
.yamm-cart-modal__product-cta {
  width:100%;
  min-height:56px;
  margin-top:auto;
  display:grid;
  place-items:center;
  border-radius:999px;
  background:#050505;
  color:#fff;
  text-decoration:none;
  font-size: 13px;
}

.yamm-cart-modal--confirm { width:min(600px,calc(100vw - 56px)); }
.yamm-cart-modal__confirm { padding:28px 42px 34px; }
.yamm-cart-modal__confirm h2 { margin:0 0 22px; font-family:var(--yamm-font-ui); font-size:16px; font-weight:400; }
.yamm-cart-modal__confirm p { margin:0 0 17px; font-size: 13px; }
.yamm-cart-modal__confirm-product {
  margin-bottom:16px;
  display:grid;
  grid-template-columns:70px 1fr;
  align-items:center;
  gap:12px;
}
.yamm-cart-modal__confirm-product img { width:70px; height:70px; object-fit:cover; border-radius:6px; }
.yamm-cart-modal__confirm-product strong { display:block; font-size: 13px; font-weight:400; }
.yamm-cart-modal__confirm-product span { display:block; margin-top:5px; font-size: 13px; }
.yamm-cart-modal__confirm-actions { display:grid; gap:10px; }
.yamm-cart-modal__confirm-actions button {
  width:100%;
  min-height:44px;
  border:1px solid #050505;
  border-radius:0!important;
  cursor:pointer;
  font-size: 13px;
}
.yamm-cart-modal__confirm-remove { background:#050505; color:#fff; }
.yamm-cart-modal__confirm-cancel { background:#fff; color:#111; }

.yamm-cart-modal--samples { width:min(720px,calc(100vw - 70px)); }
.yamm-cart-modal--samples .yamm-cart-modal__body { padding:24px 28px 28px; }
.yamm-cart-modal__samples-intro { margin:0 0 7px; }
.yamm-cart-modal__samples-counter { margin:0 0 16px; color:#777; font-size: 12px; }
.yamm-cart-modal__samples-list {
  max-height:min(56svh,520px);
  overflow-y:auto;
  border-top:1px solid #eee;
  scrollbar-width:none;
}
.yamm-cart-modal__samples-list::-webkit-scrollbar { width:0; }
.yamm-cart-modal__sample {
  min-height:76px;
  padding:9px 3px;
  display:grid;
  grid-template-columns:60px minmax(0,1fr) 28px;
  align-items:center;
  gap:13px;
  border-bottom:1px solid #eee;
  cursor:pointer;
}
.yamm-cart-modal__sample.is-disabled { opacity:.36; cursor:not-allowed; }
.yamm-cart-modal__sample img { width:60px; height:60px; object-fit:cover; }
.yamm-cart-modal__sample-copy strong { display:block; font-size: 13px; font-weight:400; }
.yamm-cart-modal__sample-copy small { display:block; margin-top:3px; color:#888; font-size: 12px; }
.yamm-cart-modal__sample input { position:absolute; opacity:0; pointer-events:none; }
.yamm-cart-modal__sample-check {
  width:20px;
  height:20px;
  border:1px solid #888;
  border-radius:50%;
}
.yamm-cart-modal__sample input:checked + .yamm-cart-modal__sample-check {
  border:6px solid #111;
}
.yamm-cart-modal__samples-save,
.yamm-cart-modal__gift-save {
  width:100%;
  min-height:54px;
  margin-top:18px;
  border:0;
  border-radius:999px;
  background:#050505;
  color:#fff;
  cursor:pointer;
  font-size: 13px;
}
.yamm-cart-modal__samples-save:disabled,
.yamm-cart-modal__gift-save:disabled { opacity:.45; cursor:default; }

.yamm-cart-modal--gift { width:min(820px,calc(100vw - 70px)); }
.yamm-cart-modal__gift-options {
  margin:0 0 25px;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}
.yamm-cart-modal__gift-option {
  min-height:100px;
  padding:18px;
  display:grid;
  grid-template-columns:22px 1fr;
  align-content:start;
  gap:10px;
  border:1px solid #d5d5d5;
  cursor:pointer;
}
.yamm-cart-modal__gift-option:has(input:checked) { border-color:#111; box-shadow:inset 0 0 0 1px #111; }
.yamm-cart-modal__gift-option input { margin:3px 0 0; }
.yamm-cart-modal__gift-option strong { display:block; color:#111; font-size: 13px; font-weight:400; }
.yamm-cart-modal__gift-option small { display:block; margin-top:5px; color:#666; font-size: 12px; }
.yamm-cart-modal__gift-label { display:block; margin-bottom:8px; color:#111; font-size: 13px; }
.yamm-cart-modal__gift-textarea {
  width:100%;
  min-height:126px;
  padding:15px;
  resize:vertical;
  border:1px solid #d5d5d5;
  border-radius:8px;
  background:#fff;
  color:#111;
  outline:none;
}
.yamm-cart-modal__gift-footer {
  margin-top:8px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
}
.yamm-cart-modal__gift-lines { color:#666; font-size: 12px; }
.yamm-cart-modal__gift-save { width:auto; min-width:112px; margin:0; padding:0 22px; }

.yamm-cart-modal--packaging { width:min(960px,calc(100vw - 70px)); }
.yamm-cart-modal__packaging {
  min-height:330px;
  padding:22px 32px 30px;
  display:grid;
  place-items:center;
  align-content:center;
  text-align:center;
}
.yamm-cart-modal__packaging img { width:230px; height:190px; object-fit:cover; }
.yamm-cart-modal__packaging p { margin:17px 0 0; font-size: 13px; }

.yamm-cart-v2.is-busy .yamm-cart-v2__item { opacity:.88; }
.yamm-cart-v2__notice {
  position:fixed;
  z-index:1600;
  right:24px;
  bottom:24px;
  max-width:360px;
  padding:12px 16px;
  background:#111;
  color:#fff;
  font-size: 13px;
  opacity:0;
  transform:translateY(8px);
  pointer-events:none;
  transition:opacity .18s ease,transform .24s var(--yamm-ease-lux);
}
.yamm-cart-v2__notice.is-visible { opacity:1; transform:none; }

@media (max-width:1100px) {
  .yamm-cart-v2__layout { grid-template-columns:minmax(0,62fr) minmax(360px,38fr); }
  .yamm-cart-v2__left { padding-inline:32px; }
  .yamm-cart-v2__item { grid-template-columns:190px minmax(0,1fr); min-height:260px; }
  .yamm-cart-v2__item-media { width:190px; height:244px; }
  .yamm-cart-v2__item-copy { min-height:244px; }
}

@media (max-width:900px) {
  body.yamm-route-cart .yamm-main,
  body.woocommerce-cart .yamm-main { padding-top:var(--yamm-header-height); }
  .yamm-cart-v2__layout { display:block; min-height:0; }
  .yamm-cart-v2__left { padding:18px 14px 14px; }
  .yamm-cart-v2__left-inner { width:100%; }
  .yamm-cart-v2__support { min-height:58px; margin-bottom:18px; }
  .yamm-cart-v2__support-logo { flex-basis:58px; width:58px; height:58px; }
  .yamm-cart-v2__support-logo img { width:32px; height:32px; }
  .yamm-cart-v2__support p { padding-inline:13px; font-size: 12px; }
  .yamm-cart-v2__title { margin-bottom:14px; font-size: 19px; }
  .yamm-cart-v2__item { min-height:200px; padding:7px; grid-template-columns:142px minmax(0,1fr); gap:13px; }
  .yamm-cart-v2__item-media { width:142px; height:186px; }
  .yamm-cart-v2__item-copy { min-height:186px; padding:8px 3px 7px 0; }
  .yamm-cart-v2__sku { margin-bottom:5px; font-size: 11px; }
  .yamm-cart-v2__item-copy h2 { padding-right:80px; font-size: 14px; }
  .yamm-cart-v2__details-trigger { margin-top:4px; font-size: 12px; }
  .yamm-cart-v2__options { margin-top:14px; font-size: 11px; }
  .yamm-cart-v2__item-commerce { right:2px; bottom:6px; gap:8px; }
  .yamm-cart-v2__item-commerce > strong { font-size: 12px; }
  .yamm-cart-v2__qty { height:32px; grid-template-columns:32px 28px 32px; }
  .yamm-cart-v2__qty button { width:32px; height:30px; font-size: 14px; }
  .yamm-cart-v2__qty button svg { width:16px; height:16px; }
  .yamm-cart-v2__qty span { font-size: 12px; }
  .yamm-cart-v2__personalization { margin-top:18px; }
  .yamm-cart-v2__extra-card { min-height:82px; grid-template-columns:62px minmax(0,1fr) 18px; padding:8px 11px; gap:12px; }
  .yamm-cart-v2__extra-card img { width:62px; height:62px; }
  .yamm-cart-v2__extra-card strong { font-size: 13px; }
  .yamm-cart-v2__extra-card small { font-size: 12px; }
  .yamm-cart-v2__right { min-width:0; }
  .yamm-cart-v2__sidebar { position:static; min-height:0; padding:24px 18px 28px; }
  .yamm-cart-v2__services button { min-height:100px; }
  .yamm-cart-v2__services strong { font-size: 15px; }
  .yamm-cart-v2__modal-layer { padding:14px; align-items:center; }
  .yamm-cart-v2__modal,.yamm-cart-modal--product,.yamm-cart-modal--confirm,.yamm-cart-modal--samples,.yamm-cart-modal--gift,.yamm-cart-modal--packaging { width:min(100%,760px); max-height:calc(100dvh - 28px); }
  .yamm-cart-modal__product-grid { grid-template-columns:1fr; min-height:0; }
  .yamm-cart-modal__product-media { min-height:320px; padding:28px; }
  .yamm-cart-modal__product-media img { max-height:300px; object-fit:contain; }
  .yamm-cart-modal__product-copy { min-height:370px; padding:46px 26px 24px; }
  .yamm-cart-modal__product-close { top:12px; right:14px; }
  .yamm-cart-modal__header { min-height:62px; padding-inline:20px; }
  .yamm-cart-modal__body { padding:22px 20px 25px; }
  .yamm-cart-modal__gift-options { grid-template-columns:1fr; }
}

@media (max-width:520px) {
  .yamm-cart-v2__item { grid-template-columns:122px minmax(0,1fr); min-height:180px; }
  .yamm-cart-v2__item-media { width:122px; height:166px; }
  .yamm-cart-v2__item-copy { min-height:166px; }
  .yamm-cart-v2__item-copy h2 { padding-right:50px; }
  .yamm-cart-v2__modal-layer { padding:0; align-items:end; }
  .yamm-cart-v2__modal,.yamm-cart-modal--product,.yamm-cart-modal--confirm,.yamm-cart-modal--samples,.yamm-cart-modal--gift,.yamm-cart-modal--packaging {
    width:100%;
    max-height:calc(100dvh - 8px);
    border-radius:0;
  }

  /*
   * Product details = mini product page.
   * Gallery + internal document scroll + persistent CTA.
   */
  .yamm-cart-modal--product {
    height:min(90dvh,820px);
    max-height:min(90dvh,820px);
    overflow:hidden;
    border-radius:20px 20px 0 0;
    background:#fff;
    touch-action:auto;
  }

  .yamm-cart-modal--product [data-yamm-cart-modal-content] {
    width:100%;
    height:100%;
    min-height:0;
    overflow:hidden;
  }

  .yamm-cart-modal--product .yamm-cart-modal__product-shell {
    width:100%;
    height:100%;
    min-height:0;
    display:grid;
    grid-template-rows:minmax(0,1fr) auto;
    overflow:hidden;
    isolation:isolate;
  }

  .yamm-cart-modal--product .yamm-cart-modal__product-scroll {
    position:relative;
    z-index:1;
    width:100%;
    height:100%;
    min-height:0;
    overflow-x:hidden;
    overflow-y:auto;
    overscroll-behavior-y:contain;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
    touch-action:auto;
  }

  .yamm-cart-modal--product .yamm-cart-modal__product-scroll::-webkit-scrollbar {
    display:none;
  }

  .yamm-cart-modal--product .yamm-cart-modal__product-grid {
    display:block;
    min-height:0;
  }

  .yamm-cart-modal--product .yamm-cart-modal__product-media {
    width:100%;
    height:auto;
    min-height:0;
    padding:0;
    display:block;
    background:#f3f3f3;
  }

  .yamm-cart-modal--product .yamm-cart-modal__product-gallery {
    width:100%;
    height:auto;
    aspect-ratio:1 / 1;
    overflow-x:auto;
    overflow-y:hidden;
    background:#f3f3f3;
    scroll-snap-type:x mandatory;
    overscroll-behavior-x:contain;
    -webkit-overflow-scrolling:touch;
    touch-action:auto;
  }

  .yamm-cart-modal--product .yamm-cart-modal__gallery-slide {
    height:100%;
  }

  .yamm-cart-modal--product .yamm-cart-modal__gallery-slide img {
    width:100%;
    height:100%;
    max-height:none;
    object-fit:cover;
    object-position:center;
  }

  .yamm-cart-modal--product .yamm-cart-modal__gallery-indicator {
    position:relative;
    z-index:2;
  }

  .yamm-cart-modal--product .yamm-cart-modal__product-close {
    position:absolute;
    top:14px;
    right:15px;
    z-index:20;
    width:40px;
    height:40px;
    margin:0;
    padding:0;
    border:0;
    border-radius:0!important;
    background:transparent;
    color:#111;
    font-family:Arial,Helvetica,sans-serif;
    font-size:32px;
    font-weight:200;
    line-height:1;
    text-shadow:
      0 1px 8px rgba(255,255,255,.88),
      0 0 3px rgba(255,255,255,.7);
    pointer-events:auto;
    touch-action:manipulation;
  }

  .yamm-cart-modal--product .yamm-cart-modal__product-copy {
    min-height:0;
    padding:28px 22px 32px;
  }

  .yamm-cart-modal--product .yamm-cart-modal__product-copy .yamm-cart-v2__sku {
    margin:0 0 10px;
    font-size:12px;
    line-height:1.2;
  }

  .yamm-cart-modal--product .yamm-cart-modal__product-copy h2 {
    margin:0 0 9px;
    padding:0;
    font-size:22px;
    line-height:1.15;
  }

  .yamm-cart-modal--product .yamm-cart-modal__product-price {
    margin:0 0 30px;
    font-size:16px;
    line-height:1.2;
  }

  .yamm-cart-modal--product .yamm-cart-modal__product-options {
    margin:0 0 30px;
    font-size:14px;
    line-height:1.45;
  }

  .yamm-cart-modal--product .yamm-cart-modal__product-options p {
    margin:0;
  }

  .yamm-cart-modal--product .yamm-cart-modal__product-description {
    margin:0;
    padding:0;
    border:0;
    font-size:14px;
    line-height:1.48;
  }

  .yamm-cart-modal--product .yamm-cart-modal__note-list {
    margin:0;
    padding-left:19px;
    gap:7px;
  }

  .yamm-cart-modal--product .yamm-cart-modal__note-list li {
    margin:0;
    line-height:1.48;
  }

  .yamm-cart-modal--product .yamm-cart-modal__product-cta--desktop {
    display:none;
  }

  .yamm-cart-modal--product .yamm-cart-modal__product-footer {
    position:relative;
    z-index:30;
    display:block;
    flex:0 0 auto;
    pointer-events:auto;
    touch-action:manipulation;
    padding:
      14px
      18px
      max(
        15px,
        calc(
          12px +
          env(safe-area-inset-bottom)
        )
      );
    border-top:1px solid rgba(0,0,0,.08);
    background:#fff;
  }

  .yamm-cart-modal--product .yamm-cart-modal__product-cta--mobile {
    position:relative;
    z-index:2;
    width:100%;
    min-height:56px;
    margin:0;
    display:grid;
    place-items:center;
    border-radius:999px;
    background:#050505;
    color:#fff;
    font-size:16px;
    text-decoration:none;
    cursor:pointer;
    pointer-events:auto;
    touch-action:manipulation;
  }

  .yamm-cart-modal__product-media { min-height:260px; }
  .yamm-cart-modal__confirm { padding:24px 22px 28px; }
}
