/* Shared public storefront primitives. Staff keeps its own component rules. */
.boutique-preview {
  --boutique-display:var(--font-display);
  --boutique-body:var(--font-sans);
  --editorial-gutter:clamp(20px,4vw,64px);
  font:16px/1.6 var(--boutique-body);
  background:var(--boutique-background,var(--color-background));
  color:var(--color-text)
}
.boutique-preview h1,.boutique-preview h2,.boutique-preview h3 {
  font-family:var(--boutique-display);
  font-weight:400;
  letter-spacing:-.025em;
  text-wrap:balance
}
.boutique-preview p {
  line-height:1.65
}
.boutique-preview a {
  color:inherit;
  text-underline-offset:5px
}
.boutique-preview a:hover {
  text-decoration-thickness:2px
}
.boutique-preview :focus-visible {
  outline:2px solid var(--color-focus);
  outline-offset:4px
}
.boutique-preview .site-main {
  min-height:0
}
.boutique-preview .global-announcement {
  font-size:12px;
  padding:8px 0
}
.boutique-preview .site-header-wrap {
  background:var(--boutique-header,var(--color-header));
  border-color:color-mix(in srgb,var(--header-fg) 15%,transparent)
}
.boutique-preview .site-header-wrap:not(.shared-header) .site-header {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);
  min-height:88px;
  gap:16px;
  position:relative;
  padding-block:12px
}
.boutique-preview .site-header-wrap:not(.shared-header) .site-header .global-brand {
  grid-column:2;
  grid-row:1;
  justify-self:center;
  margin:0;
  font:400 34px var(--font-display);
  letter-spacing:0;
  min-width:0;
  overflow-wrap:anywhere
}
.boutique-preview .site-header-wrap:not(.shared-header) .global-logo {
  width:40px
}
.boutique-preview .site-header-wrap:not(.shared-header) .desktop-nav {
  grid-column:1;
  grid-row:1;
  gap:20px;
  font:500 13px var(--boutique-body);
  flex-wrap:wrap;
  justify-self:start;
  justify-content:start
}
.boutique-preview .site-header-wrap:not(.shared-header) .desktop-nav a {
  min-height:44px;
  display:inline-flex;
  align-items:center
}
.boutique-preview .site-header-wrap:not(.shared-header) .header-utility-group {
  grid-column:3;
  grid-row:1;
  justify-self:end;
  display:flex;
  align-items:center;
  gap:8px
}
.boutique-preview .site-header-wrap:not(.shared-header) .boutique-utilities {
  display:flex;
  align-items:center;
  gap:0
}
.boutique-preview .site-header-wrap:not(.shared-header) .boutique-utilities>a {
  width:44px;
  height:44px;
  display:grid;
  place-items:center;
  position:relative
}
.boutique-preview .site-header-wrap:not(.shared-header) .boutique-utilities svg {
  width:20px;
  height:20px
}
.boutique-preview .site-header-wrap:not(.shared-header) .boutique-utilities>a:hover {
  background:color-mix(in srgb,currentColor 6%,transparent)
}
.boutique-preview .boutique-bag-count {
  position:absolute;
  top:0;
  inset-inline-end:0;
  font:600 10px var(--boutique-body);
  min-width:16px;
  height:16px;
  border-radius:50%;
  background:var(--color-primary);
  color:var(--color-on-accent);
  display:grid;
  place-items:center
}
.boutique-preview .language-picker {
  position:relative;
  font-size:12px
}
.boutique-preview .language-picker>summary {
  min-width:44px;
  min-height:44px;
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  list-style:none
}
.boutique-preview .language-picker>summary::-webkit-details-marker {
  display:none
}
.boutique-preview .language-picker>summary::after {
  content:'\2304';
  margin-inline-start:4px
}
.boutique-preview .language-picker .language-nav {
  position:absolute;
  inset-block-start:100%;
  inset-inline-end:0;
  display:flex;
  flex-direction:column;
  margin:0;
  gap:0;
  padding:4px;
  background:var(--boutique-header,var(--color-header));
  color:var(--header-fg);
  border:1px solid color-mix(in srgb,currentColor 20%,transparent);
  z-index:25
}
.boutique-preview .language-picker:not([open])>.language-nav {
  display:none
}
.boutique-preview .language-nav a {
  display:flex;
  align-items:center;
  justify-content:center;
  min-width:44px;
  min-height:44px
}
.boutique-preview .button,.boutique-preview button {
  min-height:44px;
  padding:12px 24px;
  border-radius:var(--button-radius);
  font:500 13px/1.4 var(--boutique-body);
  letter-spacing:.025em;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px
}
.boutique-preview .button {
  background:var(--color-primary);
  color:var(--color-on-accent)
}
.boutique-preview .button--secondary {
  background:transparent;
  color:var(--color-text);
  border:1px solid color-mix(in srgb,currentColor 35%,transparent)
}
.boutique-preview .content-page {
  isolation:isolate
}
.boutique-preview .content-page::before {
  display:none
}
.boutique-preview .cms-section {
  width:min(calc(100% - 2 * var(--editorial-gutter)),88rem);
  margin:clamp(40px,6vw,88px) auto;
  background:transparent;
  overflow:clip
}
.boutique-preview .cms-section h2 {
  font:400 clamp(25px,3vw,42px)/1.18 var(--boutique-display);
  letter-spacing:-.035em;
  max-width:24ch;
  margin:0 0 20px;
  text-wrap:balance
}
.boutique-preview .cms-section p {
  font-size:14px;
  max-width:55ch;
  margin-block:0 20px
}
.boutique-preview .cms-editorial__media {
  border-radius:0;
  outline:0;
  overflow:hidden;
  margin:0;
  aspect-ratio:var(--crop-ratio)
}
.boutique-preview .cms-section__copy {
  padding:0
}
.boutique-preview .cms-text {
  max-width:46rem;
  margin:auto;
  padding:0;
  text-align:center
}
.boutique-preview .cms-text h2 {
  margin-inline:auto
}
.boutique-preview .cms-text p {
  margin-inline:auto
}
.boutique-preview .product-rail__heading {
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:24px;
  margin-bottom:16px
}
.boutique-preview .product-rail__heading h2 {
  margin-bottom:10px
}
.boutique-preview .product-rail__heading p {
  font-size:13px;
  margin:0
}
.boutique-preview .product-rail__heading>a {
  white-space:nowrap;
  background:none;
  color:inherit;
  border:0;
  border-bottom:1px solid currentColor;
  border-radius:0;
  padding:8px 0
}
.boutique-preview .product-grid--rail {
  gap:20px
}
.boutique-preview .product-rail .carousel__item {
  flex:0 0 calc((100% - 60px)/4);
  min-width:0
}
.boutique-preview .product-card {
  border:0;
  background:transparent;
  border-radius:0
}
.boutique-preview .product-card__image {
  padding:0;
  position:relative;
  overflow:hidden;
  border-radius:0;
  background:var(--color-surface)
}
.boutique-preview .product-card__image>.cms-editorial__media {
  aspect-ratio:var(--crop-ratio,3/4)
}
.boutique-preview .product-card__alternate {
  position:absolute;
  inset:0;
  opacity:0;
  transition:opacity .4s;
  pointer-events:none
}
.boutique-preview .product-card__alternate .cms-editorial__media {
  height:100%;
  width:100%
}

.boutique-preview .product-card__copy {
  display:flex;
  flex-direction:column;
  gap:6px;
  padding:12px 0
}
.boutique-preview .product-card__copy h3 {
  font:500 14px/1.4 var(--boutique-body);
  margin:0;
  letter-spacing:0
}
.boutique-preview .product-card__price {
  font-size:14px;
  margin:0
}
.boutique-preview .product-card__stock,.boutique-preview .product-card__category {
  font-size:12px;
  margin:0;
  letter-spacing:.02em
}
.editorial-product-card {
  position:relative;
  background:var(--color-primary);
  color:var(--color-on-accent);
  height:100%;
  min-height:260px;
  overflow:hidden
}
.editorial-product-card>.cms-editorial__media {
  position:absolute;
  inset:0;
  width:100%;
  height:100%
}
.editorial-product-card>div {
  position:relative;
  padding:24px;
  background:#0009;
  max-width:100%;
  display:flex;
  flex-direction:column;
  align-items:start;
  gap:16px
}
.editorial-product-card h3 {
  font:400 28px/1.2 var(--boutique-display)
}
.boutique-preview .carousel__controls {
  display:flex;
  gap:12px;
  align-items:center;
  margin-top:20px
}
.boutique-preview .carousel__controls button {
  min-width:44px;
  width:44px;
  height:44px;
  padding:0;
  border-radius:50%;
  font-size:0;
  background:transparent;
  color:var(--color-text);
  border:1px solid color-mix(in srgb,currentColor 25%,transparent)
}
.boutique-preview .carousel__controls button::after {
  content:'\2192';
  font-size:20px
}
.boutique-preview .carousel__controls button:first-child::after {
  content:'\2190'
}
.boutique-preview .carousel__controls button:disabled {
  opacity:.3
}
.boutique-preview .carousel__controls output {
  font-size:12px
}
.boutique-preview .cms-faq {
  padding:0;
  max-width:52rem;
  margin:auto
}
.boutique-preview .cms-faq details {
  border:0;
  border-bottom:1px solid color-mix(in srgb,currentColor 20%,transparent);
  border-radius:0;
  padding:16px 0;
  background:transparent
}
.boutique-preview .cms-faq summary {
  min-height:44px;
  cursor:pointer;
  display:flex;
  align-items:center;
  font-size:15px
}
.boutique-preview .cms-faq p {
  margin-top:12px
}
.boutique-preview .carousel__controls[hidden] {
  display:none
}
.boutique-preview .product-rail .carousel__item:only-child {
  flex:0 0 min(100%,260px)
}
.boutique-preview .product-category-links {
  margin-block:8px 16px
}
.boutique-preview .product-rail .carousel__track {
  align-items:start
}
.boutique-preview .site-footer-wrap {
  margin-top:24px;
  padding-block:24px;
  min-height:0;
  background:var(--color-footer);
  color:var(--footer-fg)
}
.boutique-preview .global-footer {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(160px,1fr));
  gap:20px 40px;
  align-items:start;
  padding-block:0;
}
.boutique-preview .global-footer-brand {
  font:400 32px var(--font-display);
  margin:0 0 8px;
}
.boutique-preview .global-footer .global-copy {
  font-size:13px;
  max-width:32ch;
  margin:0;
}
.boutique-preview .global-footer nav,.boutique-preview .global-footer address {
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:0;
  min-width:0;
  margin:0;
  padding:0;
}
.boutique-preview .global-footer nav h2,.boutique-preview .global-footer address h2 {
  font:500 14px var(--boutique-body);
  margin:0 0 8px;
}
.boutique-preview .global-footer nav a,.boutique-preview .global-footer address a {
  min-height:44px;
  font-size:13px;
  display:flex;
  align-items:center;
  border:0;
  padding:4px 0;
}
.boutique-preview .global-legal {
  grid-column:1/-1;
  flex-direction:row!important;
  flex-wrap:wrap;
  border-top:1px solid color-mix(in srgb,currentColor 25%,transparent);
  padding-top:16px
}
@media(max-width:65rem) {
  .boutique-preview .site-header-wrap:not(.shared-header) .desktop-nav {
    gap:12px
  }
  .boutique-preview .site-header-wrap:not(.shared-header) .header-utility-group {
    gap:0
  }
}
@media(max-width:65rem) {
  .boutique-preview .site-header-wrap:not(.shared-header) .site-header {
    grid-template-columns:52px minmax(0,1fr) auto;
    min-height:68px;
    gap:4px;
    padding-block:4px
  }
  .boutique-preview .site-header-wrap:not(.shared-header) .site-header .global-brand {
    font-size:23px
  }
  .boutique-preview .site-header-wrap:not(.shared-header) .global-logo {
    width:28px
  }
  .boutique-preview .site-header-wrap:not(.shared-header) .desktop-nav {
    display:none
  }
  .boutique-preview .site-header-wrap:not(.shared-header) .mobile-nav {
    grid-column:1;
    grid-row:1;
    margin:0
  }
  .boutique-preview .site-header-wrap:not(.shared-header) .mobile-nav summary {
    min-height:44px;
    display:flex;
    align-items:center
  }
  .boutique-preview .site-header-wrap:not(.shared-header) .mobile-nav[open] nav {
    position:absolute;
    inset-inline:0;
    top:100%;
    width:100%;
    background:var(--boutique-header,var(--color-header));
    color:var(--header-fg);
    padding:24px;
    z-index:20;
    box-shadow:0 12px 16px #0001;
    animation:menu-enter .2s ease-out
  }
  .boutique-preview .site-header-wrap:not(.shared-header) .mobile-nav nav a {
    min-height:44px;
    display:flex;
    align-items:center
  }
  .boutique-preview .cms-section {
    margin-block:40px
  }
  .boutique-preview .product-rail__heading {
    align-items:start;
    gap:16px
  }
  .boutique-preview .product-rail .carousel__item {
    flex-basis:72%
  }
  .boutique-preview .global-footer {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:20px 24px;
  }
  .boutique-preview .global-footer>div:first-child {
    grid-column:1/-1;
  }
  .boutique-preview .global-footer .footer-shop-links:last-child {
    grid-column:1/-1;
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    column-gap:24px;
  }
  .boutique-preview .global-footer .footer-shop-links:last-child h2 {
    grid-column:1/-1;
  }
}
@media(max-width:360px) {
  .boutique-preview .site-header-wrap:not(.shared-header) .site-header .header-utility-group {
    grid-row:2;
    grid-column:1/-1;
    justify-self:center;
  }
  .boutique-preview .site-header-wrap:not(.shared-header) .site-header .global-brand {
    grid-column:2/-1;
  }
}
@keyframes menu-enter {
  from {
    opacity:0;
    transform:translateY(-8px)
  }
  to {
    opacity:1;
    transform:none
  }
}
@media(prefers-reduced-motion:reduce) {
  .boutique-preview *,.boutique-preview *::before,.boutique-preview *::after {
    animation:none!important;
    transition:none!important;
    scroll-behavior:auto!important
  }
}
html[data-motion=off] .boutique-preview *,html[data-motion=off] .boutique-preview *::before,html[data-motion=off] .boutique-preview *::after {
  animation:none!important;
  transition:none!important;
  scroll-behavior:auto!important
}
