/** Shopify CDN: Minification failed

Line 150:0 Unexpected "}"

**/
/* ============================================================
   BABY ZAZA — Product page
   Loaded from sections/main-product.liquid AFTER Dawn's component CSS
   so these rules actually win the cascade.
   ============================================================ */

:root { --bz-marigold-ink: #A66A22; }   /* AA-safe marigold for paper grounds */

/* ---------- Layout ----------
   Do NOT set a column-gap on .product.grid. Dawn sizes the two columns as
   calc(65% - var(--grid-desktop-horizontal-spacing)/2) and calc(35% - …/2),
   so they only fit on one line while the gap equals that same variable.
   Overriding the gap alone pushes the total past 100% and wraps the whole
   buy box underneath the gallery. Space the columns with padding instead. */
.product { padding-top: clamp(2rem, 4vw, 5rem); }
@media screen and (min-width: 990px) {
  .product--large:not(.product--no-media) .product__info-wrapper { padding-left: clamp(3rem, 4vw, 6rem); }
}

/* ---------- Gallery ---------- */
.product__media-wrapper { padding: 0; }
.product__media-item { padding: 0; }
.product-media-container, .product-media-container .media,
.product__media-wrapper .global-media-settings { border-radius: 0 !important; border: 0 !important; }
.product-media-container::after { display: none; }
.product__media-wrapper .media { background: var(--bz-paper-2); }

/* true filmstrip */
.product--thumbnail .thumbnail-list, .thumbnail-list {
  display: flex; flex-wrap: nowrap; overflow-x: auto; gap: .9rem;
  margin-top: 1.2rem; padding-bottom: .4rem; scrollbar-width: none;
}
.thumbnail-list::-webkit-scrollbar { display: none; }
.thumbnail-list__item { flex: 0 0 9rem; width: 9rem !important; padding-top: 0 !important; }
.thumbnail { border-radius: 0; border: 1px solid transparent; box-shadow: none; }
.thumbnail img { border-radius: 0; }
.thumbnail[aria-current] { border-color: var(--bz-ink); box-shadow: none; }
.thumbnail:hover { border-color: rgba(var(--color-foreground), .4); }
.thumbnail-list__item .thumbnail::after { display: none; }
/* keep the zoom affordance working — only hide the decorative badge */
.product__media-icon { display: none; }
.product__modal-opener .product__media-toggle { cursor: zoom-in; }

/* ---------- Info column: explicit, paired rhythm ---------- */
.product__info-container { max-width: 54rem; }
.product__info-container > * + * { margin-top: 0; }
.product__info-container .product__text { margin: 0 0 .8rem; }
.product__info-container .product__title { margin: 0 0 1.2rem; }
.product__info-container .price { margin: 0 0 .6rem; }
.product__info-container .product__tax { margin: 0 0 3.2rem; }
.product__info-container .product-form__input { margin: 0 0 2.4rem; }
.product__info-container .product-form { margin: 0 0 3.2rem; }
.product__info-container .product__description { margin: 0 0 3.2rem; }

.product__info-container .product__text {
  font-family: var(--font-body-family);
  font-size: 1.15rem; letter-spacing: .26em; text-transform: uppercase;
  color: var(--bz-marigold-ink); opacity: 1;
}
.product__info-container .product__title,
.product__info-container .product__title > * {
  font-family: var(--font-heading-family); font-weight: 400;
  font-size: clamp(3.2rem, 4.4vw, 5.4rem) !important;
  line-height: 1.02; letter-spacing: -.03em; text-wrap: balance;
}
.product__info-container .price,
.product__info-container .price .price-item {
  font-family: var(--font-heading-family);
  font-size: 2.8rem !important; letter-spacing: -.01em; font-variant-numeric: tabular-nums;
}
.product__info-container .product__tax { font-size: 1.2rem; color: var(--bz-ink-soft); }

/* ---------- Description bullets: grid, never flex (flex splits inline runs) ---------- */
.product__description { font-size: 1.55rem; line-height: 1.72; color: rgba(var(--color-foreground), .82);
  border-top: 1px solid var(--bz-rule); padding-top: 2.4rem; }
.product__description p { margin-bottom: 1.2rem; }
.product__description h3 {
  font-family: var(--font-body-family); font-size: 1.15rem; letter-spacing: .26em;
  text-transform: uppercase; color: var(--bz-ink-soft); margin: 2.6rem 0 1rem; font-weight: 500;
}
.product__description ul { list-style: none; padding: 0; margin: 0; }
/* NOT a grid. A grid makes every child a grid item, so the text following a
   <strong> lands in the 0.6rem bullet column and wraps one word per line.
   Absolute bullet + padding keeps the whole line in one flowing text block. */
.product__description li {
  position: relative; padding: .9rem 0 .9rem 2rem;
  border-bottom: 1px solid var(--bz-rule); font-size: 1.45rem; line-height: 1.6;
}
.product__description li::before {
  content: ""; position: absolute; left: 0; top: 1.55rem;
  width: .6rem; height: .6rem; border-radius: 50%; background: var(--bz-marigold-ink);
}

/* ---------- Variant pills ---------- */
.product .product-form__input .form__label {
  font-family: var(--font-body-family); font-size: 1.15rem; letter-spacing: .26em;
  text-transform: uppercase; color: var(--bz-ink-soft); margin-bottom: 1.1rem;
}
.product .product-form__input input[type=radio] + label {
  border-radius: 0 !important; border: 1px solid var(--bz-rule); background: transparent;
  font-family: var(--font-body-family); font-size: 1.3rem; letter-spacing: .02em;
  padding: 1.1rem 1.8rem; margin: 0 .7rem .7rem 0; transition: all .25s var(--bz-ease);
}
.product .product-form__input input[type=radio]:checked + label {
  background: var(--bz-ink); color: var(--bz-paper); border-color: var(--bz-ink);
}
.product .product-form__input input[type=radio] + label:hover { border-color: var(--bz-ink); }
.product .product-form__input .select__select { border-radius: 0; font-size: 1.4rem; padding: 1.4rem 1.6rem; }
.product .quantity { border-radius: 0; }

/* ---------- Colourway chips: the real product, not an approximated dot ---------- */
.product .product-form__input input[type=radio] + label.bz-chip {
  display: inline-flex; align-items: center; gap: 1rem; padding: .7rem 1.5rem .7rem .7rem;
}
.product .product-form__input .bz-chip__img {
  width: 3.2rem; height: 3.2rem; flex: none; display: block;
  background-size: cover; background-position: center;
  background-color: var(--bz-paper-2); outline: 1px solid var(--bz-rule); outline-offset: -1px;
}
.product .product-form__input input[type=radio]:checked + label.bz-chip .bz-chip__img { outline-color: var(--bz-paper); }
.product .product-form__input input[type=radio].disabled + label.bz-chip .bz-chip__img { opacity: .35; }
@media screen and (max-width: 749px) {
  .product .product-form__input .bz-chip__img { width: 2.8rem; height: 2.8rem; }
}

/* ---------- Buy buttons ---------- */
.product .product-form__buttons { max-width: none; }
.product .product-form__submit,
.product .shopify-payment-button__button--unbranded {
  min-height: 6rem; border-radius: 0 !important;
  font-family: var(--font-body-family) !important; font-size: 1.25rem !important;
  font-weight: 500 !important; letter-spacing: .24em !important; text-transform: uppercase;
}
.product .shopify-payment-button__more-options {
  font-size: 1.2rem; letter-spacing: .1em; text-transform: uppercase; color: var(--bz-ink-soft);
}

/* ---------- Trust row: removed ----------
   Dawn's icon-with-text block used to sit here with stock glyphs filled in
   marigold. The bz_terms strip replaced it, and its marks are drawn by hand
   in bz-terms.liquid. Styling the stock block as well would mean two icon
   vocabularies in one 540px column the moment anyone re-enabled it in the
   theme editor — which is exactly how a hand-drawn set gets mistaken for a
   bought one. Left unstyled deliberately, so it looks wrong if it comes back. */
}

/* ---------- Collapsible tabs ---------- */
.product__accordion { border-top: 1px solid var(--bz-rule); }
.product__accordion .accordion__title,
.product__accordion .summary__title .h4 {
  font-family: var(--font-body-family) !important; font-size: 1.15rem !important;
  letter-spacing: .24em; text-transform: uppercase; font-weight: 500;
  color: rgba(var(--color-foreground), .82);
}
.product__accordion summary { padding: 1.9rem 0; }
.product__accordion .accordion__content { padding: 0 0 1.9rem; font-size: 1.42rem; line-height: 1.7;
  color: rgba(var(--color-foreground), .78); }
.product__accordion .svg-wrapper { width: 1.8rem; height: 1.8rem; fill: var(--bz-marigold-ink); }

/* ---------- Sticky: one stop line for both columns ---------- */
@media screen and (min-width: 990px) {
  .product__column-sticky { top: 10rem; }
}

/* ---------- Related ---------- */
.related-products { background: var(--bz-paper-2); padding-block: clamp(6rem, 8vw, 10rem); margin-top: clamp(4rem,6vw,8rem); }
.related-products .related-products__heading {
  font-family: var(--font-heading-family); font-weight: 400; font-size: clamp(2.4rem,3.4vw,3.8rem);
  letter-spacing: -.02em; text-align: left; margin-bottom: 3.4rem;
}

@media screen and (max-width: 989px) {
  .product__info-container { max-width: none; }
  .product__info-container .product__title { font-size: clamp(2.8rem, 8vw, 4rem) !important; }
  .product__info-container { padding-bottom: 9rem; }  /* clearance for the sticky buy bar */
}

/* ---------- Quantity offer ----------
   Inherits the page's own controls: hairline borders, zero radius, ink for the
   chosen state. No sale colour, no badge, no percentage sticker — the saving is
   stated in euros because that is the number a customer can act on. */
.bzb { border: 0; margin: 0 0 2.4rem; padding: 0; min-width: 0; }
.bzb__lg { padding: 0; margin-bottom: 1.1rem;
  font-family: var(--font-body-family); font-size: 1.15rem; letter-spacing: .26em;
  text-transform: uppercase; color: var(--bz-ink-soft); }
.bzb__row { display: grid; grid-template-columns: repeat(auto-fit, minmax(0, 1fr)); gap: .8rem; }
.bzb__opt { position: relative; display: grid; gap: .25rem; cursor: pointer;
  border: 1px solid var(--bz-rule); padding: 1.3rem 1.4rem 1.2rem;
  transition: border-color .18s ease; }
.bzb__opt:hover { border-color: rgba(var(--color-foreground), .42); }
.bzb__opt.is-on { border-color: var(--bz-ink); box-shadow: inset 0 0 0 1px var(--bz-ink); }
.bzb__in { position: absolute; opacity: 0; pointer-events: none; }
.bzb__in:focus-visible + .bzb__n { outline: 2px solid var(--bz-marigold-ink); outline-offset: 3px; }
.bzb__n { font-family: var(--font-body-family); font-size: 1.15rem; letter-spacing: .18em;
  text-transform: uppercase; color: var(--bz-ink-soft); }
.bzb__opt.is-on .bzb__n { color: var(--bz-ink); }
.bzb__t { font-family: var(--font-heading-family); font-size: 1.9rem; line-height: 1.1;
  font-variant-numeric: tabular-nums; }
.bzb__s { font-size: 1.2rem; line-height: 1.4; color: var(--bz-ink-soft); min-height: 1.7rem; }
.bzb__best { justify-self: start; margin-top: .5rem; font-family: var(--font-body-family);
  font-size: 1.02rem; letter-spacing: .16em; text-transform: uppercase;
  color: var(--bz-marigold-ink); border-top: 1px solid var(--bz-rule); padding-top: .5rem; width: 100%; }
@media screen and (max-width: 749px) {
  /* Stacked rows read faster on a phone than three squeezed columns. */
  .bzb__row { grid-template-columns: 1fr; gap: 0; }
  .bzb__opt { grid-template-columns: 1fr auto; align-items: baseline;
    border-bottom: 0; padding: 1.15rem 1.2rem; }
  .bzb__opt:last-child { border-bottom: 1px solid var(--bz-rule); }
  .bzb__n { grid-column: 1; }
  .bzb__t { grid-column: 2; grid-row: 1; text-align: right; font-size: 1.7rem; }
  .bzb__s { grid-column: 1 / -1; min-height: 0; }
  .bzb__best { width: auto; border-top: 0; padding-top: 0; margin-top: .3rem; }
}

/* ---------- Better together ----------
   Same hairline system as the rest of the buy box. The struck price here is a
   real one: the partner's own list price, which the automatic discount actually
   reduces at checkout. Nothing invented. */
.bzp { border: 1px solid var(--bz-rule); padding: 1.6rem; margin: 0 0 2.4rem; }
.bzp__lg { font-family: var(--font-body-family); font-size: 1.15rem; letter-spacing: .26em;
  text-transform: uppercase; color: var(--bz-ink-soft); margin: 0 0 1.2rem; }
.bzp__body { display: grid; grid-template-columns: 6.4rem 1fr; gap: 1.4rem; align-items: start; }
.bzp__img { display: block; background: var(--bz-paper-2); }
.bzp__img img { width: 6.4rem; height: 6.4rem; object-fit: cover; display: block; }
.bzp__txt { display: grid; gap: .35rem; min-width: 0; }
.bzp__nm { font-family: var(--font-heading-family); font-size: 1.6rem; line-height: 1.15;
  text-decoration: none; color: var(--bz-ink); }
.bzp__nm:hover { text-decoration: underline; text-underline-offset: .25em; }
.bzp__why { font-size: 1.2rem; color: var(--bz-ink-soft); line-height: 1.45; }
.bzp__pr { display: flex; align-items: baseline; gap: .8rem; flex-wrap: wrap; margin-top: .2rem; }
.bzp__pr s { color: var(--bz-ink-soft); font-size: 1.3rem; }
.bzp__pr b { font-family: var(--font-heading-family); font-weight: 400; font-size: 1.6rem; }
.bzp__pr em { font-style: normal; font-size: 1.15rem; letter-spacing: .1em; text-transform: uppercase;
  color: var(--bz-marigold-ink); }
.bzp__btn { width: 100%; margin-top: 1.4rem; background: transparent; color: var(--bz-ink);
  border: 1px solid var(--bz-ink); padding: 1.25rem; cursor: pointer;
  font-family: var(--font-body-family); font-size: 1.15rem; font-weight: 500;
  letter-spacing: .2em; text-transform: uppercase; transition: background-color .18s ease, color .18s ease; }
.bzp__btn:hover:not(:disabled) { background: var(--bz-ink); color: var(--bz-paper); }
.bzp__btn:disabled { opacity: .4; cursor: default; }
.bzp__btn:focus-visible { outline: 2px solid var(--bz-marigold-ink); outline-offset: 3px; }
@media screen and (max-width: 749px) {
  .bzp { padding: 1.3rem; }
  .bzp__body { grid-template-columns: 5.4rem 1fr; gap: 1.1rem; }
}

/* ---------- Mix-and-match pickers ----------
   Revealed only when a multi-buy tier is chosen, so the single-unit buy box
   stays exactly as it was. */
.bzb__set { border: 0; padding: 0; margin: 0; min-width: 0; }
.bzb__picks { display: grid; gap: .7rem; margin-top: 1.1rem;
  border-top: 1px solid var(--bz-rule); padding-top: 1.2rem; }
.bzb__pick { display: grid; grid-template-columns: 8.5rem 1fr; gap: 1rem; align-items: center; }
.bzb__pl { font-family: var(--font-body-family); font-size: 1.15rem; letter-spacing: .16em;
  text-transform: uppercase; color: var(--bz-ink-soft); }
.bzb__sel { width: 100%; border: 1px solid var(--bz-rule); border-radius: 0; background: transparent;
  font-family: var(--font-body-family); font-size: 1.35rem; color: var(--bz-ink);
  padding: 1rem 1.2rem; cursor: pointer; appearance: none;
  background-image: linear-gradient(45deg, transparent 50%, var(--bz-ink-soft) 50%),
                    linear-gradient(135deg, var(--bz-ink-soft) 50%, transparent 50%);
  background-position: calc(100% - 1.6rem) 50%, calc(100% - 1.1rem) 50%;
  background-size: .5rem .5rem, .5rem .5rem; background-repeat: no-repeat; }
.bzb__sel:focus-visible { outline: 2px solid var(--bz-marigold-ink); outline-offset: 2px; }
.bzb__sel option:disabled { color: rgba(36,28,21,.35); }
@media screen and (max-width: 749px) {
  .bzb__pick { grid-template-columns: 1fr; gap: .4rem; }
}
/* display:grid beats the browser default for [hidden], so state it explicitly */
.bzb__picks[hidden], .bzb__pick[hidden] { display: none !important; }

/* ---------- Reduced price ----------
   A premium brand states the new price and lets the old one recede. It does not
   wear a Sale pill. The struck price is quiet and smaller; the price you pay is
   the one that carries weight, with the saving named in euros beside it. */
.product__info-container .price--on-sale .price-item--regular {
  font-size: 1.7rem !important; color: var(--bz-ink-soft);
  text-decoration: line-through; text-decoration-thickness: 1px;
  text-underline-offset: 0; margin-right: .2rem;
}
.product__info-container .price--on-sale .price-item--sale {
  font-size: 2.8rem !important; color: var(--bz-ink);
}
.product__info-container .price--on-sale .price__sale { display: flex; align-items: baseline; gap: 1.1rem; flex-wrap: wrap; }
/* Dawn's generic pill reads as clearance; the strikethrough already says it. */
.product__info-container .price .badge,
.product__info-container .price__badge-sale { display: none !important; }
.product__info-container .price--on-sale + .product__tax { margin-top: .4rem; }
@media screen and (max-width: 749px) {
  .product__info-container .price--on-sale .price-item--regular { font-size: 1.5rem !important; }
  .product__info-container .price--on-sale .price-item--sale { font-size: 2.4rem !important; }
}

/* ---------- Personalisation ----------
   Same control language as the rest of the buy box: hairline, zero radius,
   ink on focus. A live character count so nobody discovers the limit by
   having their engraving truncated. */
.bzpz { border: 1px solid var(--bz-rule); padding: 1.5rem; margin: 0 0 2.4rem; display: grid; gap: 1.1rem; }
.bzpz__lg { font-family: var(--font-body-family); font-size: 1.15rem; letter-spacing: .26em;
  text-transform: uppercase; color: var(--bz-ink-soft); margin: 0; }
.bzpz__note { font-size: 1.25rem; line-height: 1.5; color: var(--bz-ink-soft); margin: -.4rem 0 0; }
.bzpz__f { display: grid; gap: .5rem; position: relative; }
.bzpz__l { font-size: 1.3rem; color: var(--bz-ink); }
.bzpz__l abbr { color: var(--bz-marigold-ink); text-decoration: none; margin-left: .2rem; }
.bzpz__i { width: 100%; border: 1px solid var(--bz-rule); border-radius: 0; background: transparent;
  font-family: var(--font-body-family); font-size: 1.45rem; color: var(--bz-ink);
  padding: 1.15rem 1.2rem; }
.bzpz__i::placeholder { color: rgba(36,28,21,.38); }
.bzpz__i:focus { outline: none; border-color: var(--bz-ink); box-shadow: inset 0 0 0 1px var(--bz-ink); }
.bzpz__i:focus-visible { outline: 2px solid var(--bz-marigold-ink); outline-offset: 2px; }
.bzpz__i:invalid:not(:placeholder-shown) { border-color: #A6402A; }
.bzpz__c { justify-self: end; font-size: 1.05rem; color: var(--bz-ink-soft); font-variant-numeric: tabular-nums; }
