/** Shopify CDN: Minification failed

Line 829:0 Expected "}" to go with "{"

**/
/* v4 header — extracted from bal-com-v4 app/styles/app.css */

.marquee { overflow: hidden; white-space: nowrap; }
.marquee__track {
  display: inline-flex;
  animation: marquee 30s linear infinite;
}
.marquee__track:hover { animation-play-state: paused; }
@keyframes marquee {
  0% { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

/* ── Announcement Bar ── */

.announce-bar {
  /* Solid clay green — fallback required (IB pages don’t always define --v4-clay-deep) */
  background: var(--v4-clay, #425B45);
  color: #FFFFFF;
  padding: 6px 0;
  overflow: hidden;
  white-space: nowrap;
  font-family: var(--font-body);
  font-size: 0.68rem;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.announce-bar__track {
  display: inline-flex;
  gap: var(--space-5);
  animation: marquee 32s linear infinite;
}
.announce-bar:hover .announce-bar__track { animation-play-state: paused; }
@media (prefers-reduced-motion: reduce) { .announce-bar__track { animation: none; } }
.announce-bar__dot {
  width: 4px; height: 4px; border-radius: 50%;
  background: #FFFFFF; flex-shrink: 0;
  align-self: center;
  opacity: 0.5;
}

/* ── Header ── */

/* ── O Positiv–style header: hamburger left, logo center, account+cart right ── */
.header {
  position: sticky;
  top: 0;
  z-index: 100;
  background: var(--v4-cream-warm);
  height: var(--v4-header-h);
  border-bottom: 1px solid var(--v4-line);
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  padding: 0 clamp(16px, 2.4vw, 32px);
  font-family: var(--font-body);
}

/* Center cell — logo wordmark, sized to match O Positiv's 172×31 lockup */
.header__logo {
  grid-column: 2;
  display: inline-flex;
  align-items: center;
  text-decoration: none;
  color: var(--v4-ink);
  line-height: 1;
  position: relative;
  z-index: 2;
  overflow: visible;
}
.header__logo-text {
  font-family: var(--font-display);
  font-weight: 300;
  font-size: clamp(1.4rem, 1.7vw, 1.7rem);
  letter-spacing: -0.02em;
  text-transform: lowercase;
  color: var(--v4-ink);
  white-space: nowrap;
}
.header__logo-img {
  display: block;
  height: clamp(56px, 8.4vw, 76px);
  width: auto;
  max-width: min(380px, 92vw);
  /* Visual size only — header bar height stays fixed (not used on .header--ib) */
  transform: scale(3);
  transform-origin: center center;
}

.header--ib .header__logo-img {
  transform: none;
}

.header:has(.header__logo-img):not(.header--ib) {
  height: auto;
  min-height: 104px;
  padding-top: 12px;
  padding-bottom: 12px;
  overflow: visible;
}

/* Icon buttons — shared base (hamburger / account / cart) */
.header__icon-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  padding: 0;
  margin: 0;
  background: transparent;
  border: 0;
  border-radius: 50%;
  color: var(--v4-ink);
  cursor: pointer;
  text-decoration: none;
  transition: color 180ms var(--ease-out), background-color 180ms var(--ease-out);
}
.header__icon-btn:hover {
  color: var(--v4-clay-deep);
  background: rgba(40, 24, 16, 0.05);
}
.header__icon-btn:focus-visible {
  outline: 2px solid var(--v4-clay-deep);
  outline-offset: 2px;
}
.header__icon-btn svg { display: block; }

/* Left cell — hamburger menu */
.header__menu-btn {
  grid-column: 1;
  justify-self: start;
}

/* Right cell — account + cart */
.header__icons {
  grid-column: 3;
  justify-self: end;
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

/* Account icon hides below md breakpoint (matches O Positiv's hide-on-mobile) */
@media (max-width: 720px) {
  .header__icon-btn--account { display: none; }
}

/* Cart with badge — count chip overlays the icon's bottom-right */
.header__cart-btn { position: relative; }
.header__cart-count {
  position: absolute;
  top: 4px;
  right: 4px;
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  border-radius: 999px;
  background: var(--v4-ink);
  color: var(--v4-cream-warm);
  font-family: var(--font-body);
  font-size: 0.66rem;
  font-weight: 600;
  line-height: 18px;
  text-align: center;
  letter-spacing: 0.02em;
  pointer-events: none;
}
.header__cart-count[data-empty="true"] {
  background: transparent;
  color: var(--v4-ink);
  font-weight: 500;
}

/* ── Mobile drawer menu (opens via hamburger). Single-page site, so the
   list is anchor links to in-page sections, not page-level routes. */
.header-menu-mobile {
  display: flex;
  flex-direction: column;
  gap: clamp(14px, 2.6vw, 22px);
  padding-top: var(--space-3);
}
.header-menu-item {
  position: relative;
  display: inline-flex;
  align-items: baseline;
  gap: 14px;
  width: fit-content;
  font-family: var(--font-display);
  font-style: italic;
  font-size: clamp(1.7rem, 5.4vw, 2.4rem);
  font-weight: 400;
  letter-spacing: -0.02em;
  line-height: 1.05;
  color: var(--v4-ink);
  text-decoration: none;
  cursor: pointer;
  transition: color 240ms var(--ease-out);
}
/* Leading arrow — inline SVG, guaranteed to render. Points at the
   word at rest, slides slightly on hover, sweeps across the label on
   click. */
.header-menu-item__arrow {
  flex-shrink: 0;
  width: clamp(28px, 6vw, 38px);
  height: auto;
  color: var(--v4-clay-deep);
  opacity: 0.7;
  align-self: center;
  transition:
    transform 260ms var(--ease-out),
    opacity 260ms var(--ease-out);
}
.header-menu-item__label {
  display: inline-block;
}
.header-menu-item:hover,
.header-menu-item:focus-visible {
  color: var(--v4-clay-deep);
  outline: none;
}
.header-menu-item:hover .header-menu-item__arrow,
.header-menu-item:focus-visible .header-menu-item__arrow {
  opacity: 1;
  transform: translateX(6px);
}
/* On click — the arrow sweeps right across the label, fading out at
   the far edge. The drawer-close + smooth-scroll fire on mouseup, so
   the sweep reads as a satisfying departure cue. */
.header-menu-item:active .header-menu-item__arrow {
  animation: v4-nav-arrow-sweep 460ms cubic-bezier(0.4, 0, 0.2, 1);
}
@keyframes v4-nav-arrow-sweep {
  0%   { transform: translateX(0);     opacity: 1; }
  55%  { opacity: 1; }
  100% { transform: translateX(260px); opacity: 0; }
}

/* Staggered reveal when the mobile drawer opens. */
@keyframes v4-nav-slide-in {
  from { opacity: 0; transform: translateY(6px); }
  to   { opacity: 1; transform: translateY(0); }
}
@media (prefers-reduced-motion: no-preference) {
  .overlay.expanded .header-menu-item {
    animation: v4-nav-slide-in 320ms var(--ease-out) both;
  }
  .overlay.expanded .header-menu-item:nth-child(1) { animation-delay: 80ms; }
  .overlay.expanded .header-menu-item:nth-child(2) { animation-delay: 140ms; }
  .overlay.expanded .header-menu-item:nth-child(3) { animation-delay: 200ms; }
  .overlay.expanded .header-menu-item:nth-child(4) { animation-delay: 260ms; }
  .overlay.expanded .header-menu-item:nth-child(5) { animation-delay: 320ms; }
}

/* ── Aside / Cart Drawer ── */

@media (max-width: 45em) {
  html:has(.overlay.expanded) { overflow: hidden; }
}

/* ─── v4 cart drawer chrome ─────────────────────────────────────── */
.overlay aside {
  background: var(--v4-cream);
  box-shadow: -8px 0 56px rgba(40, 24, 16, 0.20);
  top: 0;
  bottom: 0;
  height: auto;
  max-height: none;
  width: min(var(--aside-width, 460px), 100vw);
  position: fixed;
  right: calc(-1 * var(--aside-width, 460px));
  transition: transform 320ms cubic-bezier(0.22, 1, 0.36, 1);
  font-family: var(--font-body);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  box-sizing: border-box;
}

/* Cart drawer: header + scrollable lines + pinned checkout footer */
.overlay aside.aside--cart {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
}

.overlay aside header {
  align-items: center;
  border-bottom: 1px solid var(--v4-line);
  display: flex;
  height: 56px;
  flex-shrink: 0;
  justify-content: space-between;
  padding: 0 18px;
  background: var(--v4-cream-warm);
}
.overlay aside header h3 {
  margin: 0;
  font-family: var(--font-body);
  font-weight: 600;
  font-size: 0.78rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--v4-ink);
}
.overlay aside header .close {
  font-weight: 400; font-size: 1.6rem;
  width: 36px; height: 36px;
  display: inline-flex; align-items: center; justify-content: center;
  border-radius: 50%;
  color: var(--v4-ink);
  transition: background-color 180ms var(--ease-out), color 180ms var(--ease-out);
  cursor: pointer;
}
.overlay aside header .close:hover {
  background: rgba(40, 24, 16, 0.06);
  color: var(--v4-clay-deep);
}

/* "← Continue shopping" button in cart aside header */
.aside--cart header { padding: 0 12px 0 12px; }
.aside__continue {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 12px;
  font-family: var(--font-body);
  font-size: 0.82rem;
  font-weight: 500;
  letter-spacing: 0.005em;
  color: var(--v4-ink);
  background: transparent;
  border: 0;
  border-radius: 999px;
  cursor: pointer;
  transition: color 180ms var(--ease-out), background-color 180ms var(--ease-out);
}
.aside__continue:hover {
  color: var(--v4-clay-deep);
  background: rgba(40, 24, 16, 0.05);
}
.aside__continue svg { display: block; }
.overlay aside header h2 { margin-bottom: 0.6rem; margin-top: 0; }
.overlay aside main,
.overlay aside .aside__body {
  margin: 0;
  padding: 0;
  overflow-x: hidden;
  overflow-y: auto;
  flex: 1 1 auto;
  min-height: 0;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
}
.overlay aside .aside__body {
  display: flex;
  flex-direction: column;
}
.overlay aside.aside--cart .aside__body {
  grid-row: 2;
  flex: unset;
  min-height: 0;
}
.cart-main.cart-main--aside {
  width: 100%;
  min-height: 0;
}
.overlay aside p { margin: 0 0 0.25rem; color: var(--v4-ink); }
.overlay aside p:last-child { margin: 0; }
.overlay aside li { margin-bottom: 0.125rem; }

.sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip-path: inset(50%); white-space: nowrap; border-width: 0;
}

.overlay {
  background: rgba(40, 24, 16, 0.40);
  backdrop-filter: blur(2px);
  -webkit-backdrop-filter: blur(2px);
  inset: 0; opacity: 0; pointer-events: none;
  position: fixed; transition: opacity 320ms cubic-bezier(0.22, 1, 0.36, 1);
  visibility: hidden; z-index: 200;
}
.overlay .close-outside {
  background: transparent; border: none; color: transparent;
  height: 100%; left: 0; position: absolute; top: 0;
  width: calc(100% - var(--aside-width, 460px));
  cursor: pointer;
}
.overlay .cancel { cursor: default; height: 100%; position: absolute; width: 100%; }
.overlay.expanded { opacity: 1; pointer-events: auto; visibility: visible; }
.overlay.expanded aside { transform: translateX(calc(var(--aside-width, 460px) * -1)); }

.cart-main {
  width: auto;
  padding: 0;
}
.cart-main[hidden] { display: none; }

/* Empty cart state */
.cart-main > div[hidden] + div { display: block; }
.cart-main > div:not([hidden]):first-of-type {
  padding: clamp(28px, 4vw, 56px) 24px;
  text-align: center;
}
.cart-main > div:not([hidden]):first-of-type p {
  font-family: var(--font-display);
  font-style: italic;
  font-size: 1.2rem;
  color: var(--v4-ink);
  margin: 12px 0 20px;
}
.cart-main > div:not([hidden]):first-of-type a {
  display: inline-block;
  padding: 14px 28px;
  border-radius: 999px;
  background: var(--v4-clay-deep);
  color: var(--v4-cream-warm);
  font-weight: 600;
  font-size: 0.8rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  text-decoration: none;
}

/* ─── Free shipping progress bar (top of cart drawer) ─── */
.cart-freeship {
  margin: 0;
  padding: 14px 24px 16px;
  background: var(--v4-cream-warm);
  border-bottom: 1px solid var(--v4-line);
}
.cart-freeship__text {
  margin: 0 0 12px;
  font-family: var(--font-body);
  font-size: 1.02rem;
  letter-spacing: 0;
  color: var(--v4-ink);
  text-align: center;
}
.cart-freeship__accent {
  color: #ff561c; /* matches Proceed to Checkout CTA */
  font-weight: 700;
}
.cart-freeship__accent > div { display: inline; }
.cart-freeship__bar {
  position: relative;
  width: 100%;
  height: 8px;
  background: rgba(40, 24, 16, 0.08);
  border-radius: 999px;
  overflow: hidden;
}
.cart-freeship__bar-fill {
  position: absolute;
  inset: 0 auto 0 0;
  height: 100%;
  background: #ff561c; /* matches Proceed to Checkout CTA */
  border-radius: 999px;
  transition: width 380ms cubic-bezier(0.22, 1, 0.36, 1);
}

/* "Your cart:" heading above the line items */
.cart-main__heading,
.cart-main__header {
  margin: 0;
  padding: 14px 24px 6px;
  font-family: var(--font-display);
  font-style: italic;
  font-weight: 400;
  font-size: 1.05rem;
  letter-spacing: -0.005em;
  color: var(--v4-ink);
}

.cart-details { padding: 0 24px 24px; }
.cart-details > p#cart-lines { display: none; }

.cart-details ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.cart-line {
  display: grid;
  grid-template-columns: 96px minmax(0, 1fr);
  gap: 16px;
  align-items: start;
  padding: 16px 0;
  border-bottom: 1px solid var(--v4-line);
}
.cart-line:last-of-type { border-bottom: none; }
.cart-line-inner {
  display: contents;
}

/* Product image */
.cart-line__img-link {
  display: block;
  width: 96px;
  height: 96px;
  border-radius: 12px;
  overflow: hidden;
  background: var(--v4-paper);
  border: 1px solid var(--v4-line);
}
.cart-line__img,
.cart-line__img--fallback {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center center;
  margin: 0;
}

/* Product info column — bal-com-v4 cart-line__info */
.cart-line__info,
.cart-line__body {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}
.cart-line__header,
.cart-line__title {
  font-family: var(--font-cart-product, var(--font-display));
  font-weight: 400;
  font-size: 1.15rem;
  letter-spacing: -0.01em;
  color: var(--v4-ink);
  margin: 0;
  line-height: 1.25;
}
.cart-line__header a {
  color: inherit;
  text-decoration: none;
}
.cart-line__header a:hover {
  color: var(--v4-clay-deep);
}
.cart-line__header strong {
  font-weight: 400;
}
.cart-line__info > ul,
.cart-line__options {
  list-style: none;
  padding: 0;
  margin: 0;
}
.cart-line__info > ul li,
.cart-line__options small {
  font-size: 0.74rem;
  color: var(--v4-ink-soft);
  letter-spacing: 0.02em;
}

.cart-line__item-update {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: 8px;
}

.cart-line__title-link { text-decoration: none; color: inherit; }
.cart-line__title-link:hover .cart-line__title { color: var(--v4-clay-deep); }
.cart-line__price {
  font-family: var(--font-body);
  font-weight: 600;
  font-size: 0.95rem;
  color: var(--v4-ink);
}
.cart-line__price > div { display: inline; }

/* Quantity stepper — single rounded pill */
.cart-line__qty {
  display: inline-flex;
  align-items: center;
  gap: 14px;
}
.cart-line__qty-pill {
  display: inline-flex;
  align-items: stretch;
  border: 1px solid var(--v4-line);
  border-radius: 999px;
  background: var(--v4-cream-warm);
  overflow: hidden;
  height: 32px;
}
.cart-line__qty-pill form {
  display: contents; /* hide the form wrappers around each button */
}
.cart-line__qty-btn {
  border: none;
  background: transparent;
  width: 32px;
  height: 32px;
  font-size: 1.05rem;
  font-weight: 500;
  color: var(--v4-ink);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: background-color 160ms var(--ease-out), color 160ms var(--ease-out);
}
.cart-line__qty-btn:hover:not(:disabled) {
  background: rgba(40, 24, 16, 0.06);
  color: var(--v4-clay-deep);
}
.cart-line__qty-btn:disabled { opacity: 0.3; cursor: default; }
.cart-line__qty-num {
  min-width: 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-body);
  font-weight: 600;
  font-size: 0.88rem;
  color: var(--v4-ink);
  border-left: 1px solid var(--v4-line);
  border-right: 1px solid var(--v4-line);
  background: var(--v4-cream);
}

/* "Remove" link — small ghost button */
.cart-line__remove,
.cart-line button[type="submit"]:not(.cart-line__qty-btn) {
  background: transparent;
  border: 0;
  padding: 0;
  font-family: var(--font-body);
  font-size: 0.74rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--v4-ink-soft);
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 3px;
  transition: color 160ms var(--ease-out);
}
.cart-line__remove:hover { color: var(--v4-clay-deep); }
.cart-line__remove:disabled { opacity: 0.5; cursor: default; }

.aside__footer {
  flex: 0 0 auto;
  flex-shrink: 0;
  border-top: 1px solid var(--v4-line);
  background: var(--v4-cream-warm);
  padding: 16px 20px max(20px, env(safe-area-inset-bottom, 0px));
  box-shadow: 0 -8px 18px rgba(40, 24, 16, 0.05);
}
.aside--cart .aside__footer {
  grid-row: 3;
  position: relative;
  z-index: 2;
}
.aside__footer .cart-checkout-actions {
  margin: 0;
}
.aside__footer .cart-checkout-actions__subtotal {
  margin-bottom: 12px;
}

.cart-checkout-actions {
  margin-top: 0;
}

.cart-checkout-actions__heading {
  margin: 0 0 10px;
  font-family: var(--font-body);
  font-weight: 600;
  font-size: 0.82rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--v4-ink);
}

.cart-discount-toggle {
  margin-bottom: 12px;
}
.cart-discount-toggle__btn {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 10px 0;
  border: 0;
  border-top: 1px solid var(--v4-line);
  border-bottom: 1px solid var(--v4-line);
  background: transparent;
  font-family: var(--font-body);
  font-size: 0.82rem;
  color: var(--v4-ink);
  cursor: pointer;
}
.cart-discount-toggle__btn[aria-expanded="true"] span[aria-hidden="true"] {
  transform: rotate(45deg);
}
.cart-discount-toggle__panel {
  padding: 8px 0 4px;
}
.cart-discount-toggle__note {
  margin: 0;
  font-size: 0.78rem;
  color: var(--v4-ink-soft);
  font-style: italic;
}

.cart-checkout-actions__main {
  margin-bottom: 12px;
}

/* Subtotal row inside the pinned footer, sits above the checkout CTA */
.cart-checkout-actions__subtotal {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  margin: 0 0 12px;
  padding: 0 4px;
}
.cart-checkout-actions__subtotal-label {
  font-family: var(--font-body);
  font-weight: 600;
  font-size: 0.95rem;
  letter-spacing: 0;
  color: var(--v4-ink);
}
.cart-checkout-actions__subtotal-amount {
  font-family: var(--font-display);
  font-weight: 400;
  font-size: 1.4rem;
  letter-spacing: -0.01em;
  color: var(--v4-ink);
  line-height: 1;
}
.cart-checkout-actions__subtotal-amount > div { display: inline; }

/* Tax/shipping line above the checkout CTA */
.cart-checkout-actions__tax {
  margin: 0 0 10px;
  text-align: center;
  font-family: var(--font-body);
  font-style: italic;
  font-size: 0.78rem;
  color: var(--v4-ink-soft);
}

/* Money-back guarantee line below the checkout CTA */
.cart-checkout-actions__guarantee {
  margin: 10px 0 0;
  text-align: center;
  font-family: var(--font-body);
  font-size: 0.7rem;
  font-weight: 500;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--v4-ink-soft);
}

/* "Proceed to checkout" — bright orange, bold white text always
   visible. Hover deepens slightly with a 1px lift. */
.cart-checkout-cta {
  display: block;
  width: 100%;
  padding: 18px 22px;
  border-radius: 999px;
  text-align: center;
  text-decoration: none;
  font-family: var(--font-body);
  font-weight: 700;
  font-size: 0.92rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: #ffffff;
  background: #ff561c; /* bright orange */
  border: 1.5px solid #ff561c;
  box-shadow: 0 6px 22px rgba(255, 86, 28, 0.32);
  transition:
    background-color 220ms var(--ease-out),
    border-color 220ms var(--ease-out),
    box-shadow 240ms var(--ease-out),
    transform 200ms var(--ease-out);
}
.cart-checkout-cta:hover {
  background: #e54810;
  border-color: #e54810;
  color: #ffffff;
  transform: translateY(-1px);
  box-shadow: 0 10px 28px rgba(255, 86, 28, 0.42);
}
.cart-checkout-cta:active {
  transform: translateY(0);
}
.cart-checkout-cta:focus-visible {
  outline: 2px solid var(--v4-clay-deep);
  outline-offset: 4px;
}

/* ─── Fun checkout button — playful, friendly, brand-warm ───

html {
  scroll-padding-top: var(--v4-header-h);
  scroll-behavior: smooth;
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}
/* Per-section scroll-margin as the suspenders — explicit targets so
   browsers without scroll-padding-top support still respect the offset. */
#shop,
#reviews,
#pdp-guarantee,
#formula,
#how,
#faq,
#v4-pdp-title,
#subscribe {
  scroll-margin-top: var(--v4-header-h);
