/*
 * Revision F canonical layout contract
 *
 * This file owns geometry only. It intentionally loads after v3.css so the
 * storefront has one authoritative shell, spacing scale, card rhythm, and
 * responsive composition without depending on the legacy cascade's source
 * order. Product photography remains fully contained and unaltered.
 */

:root {
  --v3-gutter: clamp(20px, 5.5vw, 40px);
  --v3-shell: min(1140px, calc(100vw - (2 * var(--v3-gutter))));
  --v3-header-height: clamp(65px, 5.5vw, 76px);
  --v3-section-space: clamp(56px, 5.6vw, 80px);
  --v3-section-space-tight: clamp(44px, 4.5vw, 64px);
  --v3-grid-gap: clamp(12px, 1.4vw, 16px);
  --v3-control-height: 52px;
}

html {
  scroll-padding-top: calc(var(--v3-header-height) + 20px);
}

.v3-shell {
  width: var(--v3-shell);
}

.v3-nav {
  height: var(--v3-header-height);
}

.v3-catalog-controls {
  top: var(--v3-header-height);
}

/*
 * Content must remain available if an IntersectionObserver is delayed or
 * unavailable. Motion is progressive enhancement, never a visibility gate.
 */
.v3-reveal,
.v3-reveal.is-in {
  opacity: 1;
  transform: none;
}

/* Homepage composition */
body[data-v3-page="home"] .v3-hero-grid {
  padding-block: 32px 56px;
  grid-template-columns: minmax(0, 1.06fr) minmax(340px, 0.94fr);
  align-items: stretch;
  gap: clamp(24px, 2.8vw, 36px);
}

body[data-v3-page="home"] .v3-hero-copy {
  min-height: clamp(470px, 43vw, 580px);
  height: auto;
  padding: clamp(24px, 3vw, 38px) 0 0;
}

body[data-v3-page="home"] .v3-hero h1 {
  max-width: 680px;
  font-size: clamp(48px, 5.1vw, 72px);
}

body[data-v3-page="home"] .v3-status-pill {
  margin-bottom: 22px;
}

body[data-v3-page="home"] .v3-hero-lede {
  margin: 22px 0 24px;
  line-height: 1.55;
}

body[data-v3-page="home"] .v3-hero-facts {
  padding-top: 22px;
}

body[data-v3-page="home"] .v3-hero-media {
  position: relative;
  inset: auto;
  width: 100%;
  height: clamp(470px, 43vw, 580px);
  min-height: 0;
  margin: 0;
  display: grid;
  grid-template-rows: minmax(0, 1fr) 50px;
  overflow: hidden;
  border-radius: 20px;
  background: var(--v3-white);
}

body[data-v3-page="home"] .v3-hero-media > img {
  width: 100%;
  height: 100%;
  min-height: 0;
  object-fit: contain;
  object-position: center;
}

body[data-v3-page="home"] .v3-products-section {
  padding: var(--v3-section-space) 0
    clamp(64px, calc(var(--v3-section-space) + 8px), 88px);
}

body[data-v3-page="home"] .v3-section-head {
  margin-bottom: 24px;
}

/* Product-card geometry */
body:is([data-v3-page="home"], [data-v3-page="catalog"], [data-v3-page="product"])
  .v3-product-grid {
  gap: var(--v3-grid-gap);
}

body:is([data-v3-page="home"], [data-v3-page="catalog"], [data-v3-page="product"])
  .v3-product-card {
  border-radius: 18px;
}

body:is([data-v3-page="home"], [data-v3-page="catalog"], [data-v3-page="product"])
  .v3-product-media {
  height: auto;
  aspect-ratio: 1;
  background: var(--v3-white);
}

body:is([data-v3-page="home"], [data-v3-page="catalog"], [data-v3-page="product"])
  .v3-product-media
  > img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
}

body:is([data-v3-page="home"], [data-v3-page="catalog"], [data-v3-page="product"])
  .v3-product-body {
  min-height: 174px;
  padding: 16px;
  display: flex;
  flex-direction: column;
}

body:is([data-v3-page="home"], [data-v3-page="catalog"], [data-v3-page="product"])
  .v3-product-meta {
  margin-bottom: 8px;
}

body:is([data-v3-page="home"], [data-v3-page="catalog"], [data-v3-page="product"])
  .v3-product-card
  h3 {
  min-height: 0;
  margin: 0;
}

body:is([data-v3-page="home"], [data-v3-page="catalog"], [data-v3-page="product"])
  .v3-product-rating {
  display: flex;
  align-items: center;
  gap: 5px;
  margin: 8px 0 0;
}

body:is([data-v3-page="home"], [data-v3-page="catalog"], [data-v3-page="product"])
  .v3-product-format {
  display: block;
  margin: 5px 0 0;
}

body:is([data-v3-page="home"], [data-v3-page="catalog"], [data-v3-page="product"])
  .v3-product-price {
  margin: 12px 0 12px;
}

body:is([data-v3-page="home"], [data-v3-page="catalog"], [data-v3-page="product"])
  .v3-product-actions {
  margin: auto 0 0;
  grid-template-columns: 1fr;
}

.v3-product-rating .v3-stars {
  color: #d9a441;
  font-size: 12px;
  letter-spacing: 1px;
  line-height: 1;
}
.v3-product-rating strong {
  font-size: 12px;
  font-weight: 650;
  color: var(--v3-ink);
}
.v3-product-rating small {
  font-size: 11px;
  color: var(--v3-muted);
}

.v3-pdp-rating {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 10px 0 0;
}
.v3-pdp-rating .v3-stars {
  color: #d9a441;
  font-size: 15px;
  letter-spacing: 2px;
  line-height: 1;
}
.v3-pdp-rating strong {
  font-size: 14px;
  font-weight: 650;
  color: var(--v3-ink);
}
.v3-pdp-rating span {
  font-size: 13px;
  color: var(--v3-muted);
}

body:is([data-v3-page="home"], [data-v3-page="catalog"], [data-v3-page="product"])
  .v3-product-actions
  .v3-pill {
  width: 100%;
  min-width: 0;
  min-height: 46px;
  padding: 12px 16px;
}

/* Quick-add amounts popover: a bottom-anchored layer inside the card so the
   grid and viewport never clip it; the card's own overflow keeps it contained. */
body:is([data-v3-page="home"], [data-v3-page="catalog"], [data-v3-page="product"])
  .v3-product-card {
  position: relative;
}

.v3-card-options {
  position: absolute;
  right: 10px;
  bottom: 10px;
  left: 10px;
  z-index: 6;
  max-height: calc(100% - 20px);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid var(--v3-line-dark);
  border-radius: 12px;
  background: var(--v3-white);
  box-shadow: 0 26px 58px -30px rgba(0, 0, 0, 0.5);
}

.v3-card-options[hidden] {
  display: none;
}

@media (prefers-reduced-motion: no-preference) {
  .v3-card-options {
    animation: v3-card-options-in 0.18s var(--v3-ease);
  }

  @keyframes v3-card-options-in {
    from {
      opacity: 0;
      transform: translateY(7px);
    }

    to {
      opacity: 1;
      transform: translateY(0);
    }
  }
}

.v3-card-options-head {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 5px 5px 5px 14px;
  border-bottom: 1px solid var(--v3-line);
}

.v3-card-options-title {
  margin: 0;
  color: var(--v3-muted);
  font-family: "Noli Mono", monospace;
  font-size: 8px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.v3-card-options-close {
  width: 34px;
  height: 34px;
  padding: 0;
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  border: 0;
  border-radius: 9px;
  color: var(--v3-muted);
  background: none;
  cursor: pointer;
  transition:
    background-color 0.16s ease,
    color 0.16s ease;
}

.v3-card-options-close:hover {
  color: var(--v3-ink);
  background: var(--v3-paper);
}

.v3-card-options-close svg {
  width: 13px;
  height: 13px;
}

.v3-card-options-list {
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
}

/* More amounts below the fold: fade the tail until the list reaches its end. */
.v3-card-options.is-scrollable .v3-card-options-list {
  -webkit-mask-image: linear-gradient(
    to bottom,
    #000 0,
    #000 calc(100% - 32px),
    transparent 100%
  );
  mask-image: linear-gradient(
    to bottom,
    #000 0,
    #000 calc(100% - 32px),
    transparent 100%
  );
}

.v3-card-option {
  width: 100%;
  min-height: 44px;
  margin: 0;
  padding: 10px 14px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  border: 0;
  border-top: 1px solid var(--v3-line);
  color: var(--v3-ink);
  background: none;
  font: inherit;
  text-align: left;
  cursor: pointer;
  transition: background-color 0.16s ease;
}

.v3-card-option:first-child {
  border-top: 0;
}

.v3-card-option:hover {
  background: var(--v3-surface);
}

.v3-card-option:focus-visible {
  outline: 2px solid var(--v3-black);
  outline-offset: -2px;
}

.v3-card-option span {
  font-size: 13px;
  font-weight: 570;
  letter-spacing: -0.01em;
}

.v3-card-option strong {
  color: var(--v3-black);
  font-size: 13px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.02em;
}

@media (max-width: 620px) {
  .v3-card-options {
    right: 6px;
    bottom: 6px;
    left: 6px;
    max-height: calc(100% - 12px);
    border-radius: 11px;
  }

  .v3-card-options-head {
    padding: 4px 4px 4px 12px;
  }

  .v3-card-options-close {
    width: 30px;
    height: 30px;
  }

  .v3-card-option {
    padding-inline: 12px;
  }

  .v3-card-option span,
  .v3-card-option strong {
    font-size: 12px;
  }
}

/* Proof, close, and footer rhythm */
body[data-v3-page="home"] .v3-proof-section {
  padding: var(--v3-section-space) 0
    clamp(64px, calc(var(--v3-section-space) + 8px), 88px);
}

body[data-v3-page="home"] .v3-proof-section > .v3-shell {
  grid-template-columns: minmax(0, 0.82fr) minmax(520px, 1.18fr);
  gap: clamp(44px, 5vw, 64px);
}

body[data-v3-page="home"] .v3-proof-ledger article {
  padding-block: 26px;
}

.v3-closing {
  padding: var(--v3-section-space-tight) 0;
}

.v3-footer {
  padding: clamp(56px, 5vw, 72px) 0 30px;
}

.v3-footer-grid {
  padding-bottom: clamp(44px, 4.5vw, 64px);
  gap: clamp(32px, 4vw, 48px);
}

/* Catalog header: light and compact so Shop lands on product, not a slab. */
.v3-catalog-hero {
  padding: clamp(26px, 3vw, 42px) 0 clamp(14px, 1.6vw, 22px);
  color: var(--v3-ink);
  background: transparent;
}

.v3-catalog-hero .v3-kicker {
  color: var(--v3-muted);
}

.v3-catalog-hero h1 {
  max-width: 720px;
  color: var(--v3-ink);
  font-size: clamp(29px, 3.2vw, 46px);
  line-height: 1.02;
  letter-spacing: -0.045em;
}

.v3-catalog-hero h1 em {
  color: var(--v3-muted);
  font-style: normal;
}

.v3-catalog-hero > .v3-shell > p:last-child {
  /* The mono token line reads as one line wherever it fits; when it must
     wrap on small screens, balanced lines avoid an orphaned last token. */
  max-width: none;
  margin: 12px 0 0;
  color: var(--v3-muted);
  font-size: 14px;
  line-height: 1.55;
  text-wrap: balance;
}

.v3-catalog-controls {
  padding-block: 12px;
}

/* The chip list scrolls inside its own wrapper; the search control sits
   after it in normal flow, so chips can never slide underneath the button. */
.v3-filter-row,
.v3-catalog-body .v3-filter-row {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 8px;
  overflow: visible;
  padding-right: 0;
  -webkit-mask-image: none;
  mask-image: none;
}

.v3-filter-scroller {
  display: flex;
  align-items: center;
  gap: 8px;
  flex: 1 1 auto;
  min-width: 0;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scrollbar-width: none;
}

.v3-filter-scroller::-webkit-scrollbar {
  display: none;
}

@media (max-width: 620px) {
  .v3-filter-scroller {
    padding-right: 16px;
    -webkit-mask-image: linear-gradient(
      to right,
      #000 0,
      #000 calc(100% - 28px),
      transparent 100%
    );
    mask-image: linear-gradient(
      to right,
      #000 0,
      #000 calc(100% - 28px),
      transparent 100%
    );
  }
}

.v3-filter,
.v3-filter-search {
  min-height: 44px;
  flex: 0 0 auto;
}

.v3-catalog-body {
  padding: 34px 0 var(--v3-section-space);
}

.v3-catalog-summary {
  margin-bottom: 20px;
}

/* Product detail page */
.v3-pdp-hero {
  padding: 22px 0 clamp(64px, 5.5vw, 82px);
}

.v3-pdp-grid {
  grid-template-columns: minmax(0, 0.94fr) minmax(390px, 1.06fr);
  align-items: start;
  gap: clamp(32px, 4vw, 48px);
}

.v3-pdp-media {
  position: sticky;
  top: calc(var(--v3-header-height) + 16px);
  width: 100%;
  height: auto;
  min-height: 0;
  aspect-ratio: 1 / 1.08;
  margin: 0;
  border-radius: 20px;
  background: var(--v3-white);
}

.v3-pdp-media img.v3-media-render {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
}

.v3-pdp-summary {
  padding-top: clamp(18px, 2.3vw, 30px);
  display: block;
}

.v3-pdp-summary h1 {
  font-size: clamp(44px, 4.2vw, 62px);
}

.v3-pdp-price {
  margin: 22px 0 14px;
}

.v3-pdp-description {
  margin-bottom: 24px;
}

.v3-pdp-option-group {
  padding: 20px;
}

.v3-pdp-summary .v3-variant-grid {
  padding-block: 4px 5px;
  gap: 8px;
  overflow: visible;
}

.v3-variant,
.v3-variant:hover {
  transform: none;
}

.v3-pdp-summary .v3-variant {
  min-height: 58px;
  padding: 10px 12px;
}

.v3-pdp-summary .v3-variant strong {
  font-size: 12px;
}

.v3-pdp-summary .v3-variant span {
  font-size: 10px;
}

.v3-pdp-detail {
  padding: var(--v3-section-space) 0
    clamp(64px, calc(var(--v3-section-space) + 8px), 88px);
}

.v3-detail-layout {
  grid-template-columns: 180px minmax(0, 760px);
  gap: clamp(38px, 4vw, 52px);
}

.v3-detail-section {
  padding-bottom: 0;
}

.v3-detail-section + .v3-detail-section {
  margin-top: 56px;
  padding-top: 56px;
}

.v3-related {
  padding: var(--v3-section-space-tight) 0 var(--v3-section-space);
}

.v3-related .v3-section-head {
  margin-bottom: 24px;
}

/* Persistent purchase, cart, and search geometry */
.v3-dock-inner {
  min-height: 72px;
  grid-template-columns: 200px minmax(0, 1fr) auto;
  gap: 14px;
}

.v3-dock-variants {
  min-width: 0;
  padding-block: 5px 6px;
  padding-inline: 3px;
  justify-content: flex-start;
  gap: 8px;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scroll-padding-inline: 2px;
  scrollbar-width: none;
}

.v3-dock-variants::-webkit-scrollbar {
  display: none;
}

.v3-dock-variants[data-overflow-right="true"][data-overflow-left="false"] {
  -webkit-mask-image: linear-gradient(
    90deg,
    #000 0,
    #000 calc(100% - 18px),
    transparent 100%
  );
  mask-image: linear-gradient(
    90deg,
    #000 0,
    #000 calc(100% - 18px),
    transparent 100%
  );
}

.v3-dock-variants[data-overflow-left="true"][data-overflow-right="false"] {
  -webkit-mask-image: linear-gradient(
    90deg,
    transparent 0,
    #000 18px,
    #000 100%
  );
  mask-image: linear-gradient(
    90deg,
    transparent 0,
    #000 18px,
    #000 100%
  );
}

.v3-dock-variants[data-overflow-left="true"][data-overflow-right="true"] {
  -webkit-mask-image: linear-gradient(
    90deg,
    transparent 0,
    #000 18px,
    #000 calc(100% - 18px),
    transparent 100%
  );
  mask-image: linear-gradient(
    90deg,
    transparent 0,
    #000 18px,
    #000 calc(100% - 18px),
    transparent 100%
  );
}

.v3-dock-variants .v3-variant {
  min-width: 96px;
  min-height: 50px;
  padding: 8px 12px;
  flex: 0 0 96px;
}

.v3-dock-variants .v3-variant strong {
  font-size: 12px;
}

.v3-dock-variants .v3-variant span {
  font-size: 10px;
}

.v3-product-media > .v3-media-render--card.v3-neutral-media {
  padding: clamp(44px, 14%, 58px) clamp(12px, 8%, 28px) 12px;
  justify-content: flex-start;
}

.v3-cart-drawer {
  width: min(450px, 100vw);
}

.v3-cart-body {
  display: flex;
  flex-direction: column;
}

.v3-cart-upsell {
  margin-top: 12px;
  margin-bottom: 16px;
}

.v3-cart-drawer > header {
  min-height: 92px;
  padding: 18px 22px;
}

.v3-cart-line {
  padding: 16px 20px;
  grid-template-columns: 76px minmax(0, 1fr) auto;
  gap: 12px;
}

.v3-cart-line > a {
  width: 76px;
}

.v3-cart-upsell {
  margin-inline: 20px;
}

.v3-cart-drawer > footer {
  padding-inline: 20px;
}

/* Continuous grids: page geometry does not change at the nav's 900px mode. */
@media (min-width: 1200px) {
  body[data-v3-page="catalog"] .v3-product-grid--four,
  body[data-v3-page="product"] .v3-related .v3-product-grid--four {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

@media (min-width: 900px) and (max-width: 1199px) {
  body[data-v3-page="catalog"] .v3-product-grid--four,
  body[data-v3-page="product"] .v3-related .v3-product-grid--four {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (min-width: 600px) and (max-width: 899px) {
  body[data-v3-page="home"] .v3-product-grid--three,
  body[data-v3-page="catalog"] .v3-product-grid--four {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  body[data-v3-page="product"] .v3-related .v3-product-grid--four {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* Tablet composition */
@media (min-width: 701px) and (max-width: 900px) {
  body[data-v3-page="home"] .v3-hero-grid {
    padding-block: 30px 50px;
    grid-template-columns: minmax(0, 1.08fr) minmax(290px, 0.92fr);
    align-items: center;
    gap: 24px;
  }

  body[data-v3-page="home"] .v3-hero-copy {
    min-height: 470px;
    padding-top: 22px;
  }

  body[data-v3-page="home"] .v3-hero h1 {
    font-size: clamp(48px, 5.1vw, 72px);
  }

  body[data-v3-page="home"] .v3-hero-media {
    height: 470px;
  }

  body[data-v3-page="home"] .v3-proof-section > .v3-shell {
    grid-template-columns: 1fr;
    gap: 44px;
  }

  .v3-pdp-grid {
    grid-template-columns: minmax(0, 0.9fr) minmax(330px, 1.1fr);
    gap: 26px;
  }

  .v3-pdp-mobile-intro {
    display: none;
  }

  .v3-pdp-summary-heading {
    display: block;
  }

  .v3-pdp-summary {
    padding-top: 10px;
    display: block;
  }

  .v3-pdp-summary .v3-pdp-description,
  .v3-pdp-summary .v3-pdp-option-group,
  .v3-pdp-summary .v3-pdp-purchase,
  .v3-pdp-summary .v3-pdp-promises,
  .v3-pdp-summary [data-record-link-wrap] {
    order: initial;
  }

  .v3-pdp-option-group {
    padding: 16px;
  }
}

/* Mobile composition: actual grid tracks replace the former overlap hack. */
@media (max-width: 700px) {
  .v3-demo {
    min-height: 38px;
    padding: 7px 12px;
    font-size: 7.5px;
    line-height: 1.35;
  }

  body[data-v3-page="home"] .v3-hero-grid {
    width: var(--v3-shell);
    padding: 28px 0 36px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) clamp(126px, 38vw, 164px);
    grid-template-rows: auto auto auto auto auto auto;
    align-items: start;
    column-gap: 12px;
    row-gap: 0;
  }

  body[data-v3-page="home"] .v3-hero-copy {
    min-height: 0;
    height: auto;
    padding: 0;
    display: contents;
  }

  body[data-v3-page="home"] .v3-status-pill {
    width: fit-content;
    margin: 0;
    grid-column: 1;
    grid-row: 1;
    align-self: start;
    font-size: 8px;
  }

  body[data-v3-page="home"] .v3-status-detail {
    display: none;
  }

  body[data-v3-page="home"] .v3-hero h1 {
    width: auto;
    min-height: 0;
    margin: 16px 0 0;
    grid-column: 1;
    grid-row: 2;
    font-size: clamp(31px, 8.45vw, 36px);
    line-height: 1;
  }

  body[data-v3-page="home"] .v3-hero-media {
    position: relative;
    inset: auto;
    z-index: 1;
    width: 100%;
    height: auto;
    min-height: 0;
    margin: 0;
    grid-column: 2;
    grid-row: 1 / span 2;
    align-self: start;
    display: block;
    aspect-ratio: 4 / 5;
    border-radius: 20px;
  }

  body[data-v3-page="home"] .v3-hero-stock {
    top: 10px;
    left: 10px;
    padding: 7px 8px;
    display: inline-flex;
    font-size: 7px;
  }

  body[data-v3-page="home"] .v3-hero-media figcaption {
    display: none;
  }

  body[data-v3-page="home"] .v3-hero-lede {
    width: 100%;
    max-width: none;
    margin: 22px 0 18px;
    grid-column: 1 / -1;
    grid-row: 3;
    font-size: 15px;
    line-height: 1.55;
  }

  body[data-v3-page="home"] .v3-hero-actions {
    width: 100%;
    margin: 0;
    grid-column: 1 / -1;
    grid-row: 4;
    flex-direction: column;
    gap: 8px;
  }

  body[data-v3-page="home"] .v3-hero-actions .v3-pill,
  body[data-v3-page="home"] .v3-hero-testing-mobile {
    width: 100%;
    min-height: 48px;
  }

  body[data-v3-page="home"] .v3-hero-testing-desktop {
    display: none;
  }

  body[data-v3-page="home"] .v3-hero-testing-mobile {
    padding: 12px 20px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    border: 1px solid var(--v3-line-dark);
    border-radius: 999px;
    color: var(--v3-black);
    background: var(--v3-white);
    font-size: 13px;
    font-weight: 700;
    line-height: 1;
    text-decoration: none;
  }

  body[data-v3-page="home"] .v3-offer-card--mobile {
    width: 100%;
    min-height: 56px;
    margin: 12px 0 0;
    padding: 7px 10px 7px 7px;
    grid-column: 1 / -1;
    grid-row: 5;
    display: flex;
    border-radius: 12px;
    box-shadow: none;
  }

  body[data-v3-page="home"] .v3-offer-card--mobile .v3-offer-icon {
    width: 40px;
    height: 40px;
  }

  body[data-v3-page="home"] .v3-hero-facts {
    width: 100%;
    margin: 14px 0 0;
    padding: 14px 0 0;
    grid-column: 1 / -1;
    grid-row: 6;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px 12px;
    border-top: 1px solid var(--v3-line);
    border-bottom: 0;
  }

  body[data-v3-page="home"] .v3-hero-facts > div,
  body[data-v3-page="home"] .v3-hero-facts > div:nth-child(-n + 2) {
    padding: 0;
    display: block;
  }

  body[data-v3-page="home"] .v3-products-section {
    padding: 40px 0 48px;
  }

  body[data-v3-page="home"] .v3-products-section > .v3-shell,
  body[data-v3-page="catalog"] .v3-catalog-body > .v3-shell,
  body[data-v3-page="product"] .v3-related > .v3-shell {
    width: var(--v3-shell);
  }

  body[data-v3-page="home"] .v3-products-section .v3-section-head {
    margin-bottom: 18px;
  }

  body:is([data-v3-page="home"], [data-v3-page="catalog"], [data-v3-page="product"])
    .v3-product-grid--three,
  body:is([data-v3-page="home"], [data-v3-page="catalog"], [data-v3-page="product"])
    .v3-product-grid--four {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  body:is([data-v3-page="home"], [data-v3-page="catalog"], [data-v3-page="product"])
    .v3-product-card {
    border-radius: 16px;
  }

  body:is([data-v3-page="home"], [data-v3-page="catalog"], [data-v3-page="product"])
    .v3-product-body {
    min-height: 112px;
    padding: 12px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-rows: minmax(34px, auto) minmax(8px, 1fr) 44px;
    column-gap: 5px;
    row-gap: 0;
  }

  body:is([data-v3-page="home"], [data-v3-page="catalog"], [data-v3-page="product"])
    .v3-product-meta,
  body:is([data-v3-page="home"], [data-v3-page="catalog"], [data-v3-page="product"])
    .v3-product-format {
    display: none;
  }

  body:is([data-v3-page="home"], [data-v3-page="catalog"], [data-v3-page="product"])
    .v3-product-rating {
    grid-column: 1;
    grid-row: 2;
    align-self: center;
    margin: 6px 0 0;
    gap: 4px;
  }
  body:is([data-v3-page="home"], [data-v3-page="catalog"], [data-v3-page="product"])
    .v3-product-rating .v3-stars {
    font-size: 11px;
  }
  body:is([data-v3-page="home"], [data-v3-page="catalog"], [data-v3-page="product"])
    .v3-product-rating strong {
    font-size: 11px;
  }
  body:is([data-v3-page="home"], [data-v3-page="catalog"], [data-v3-page="product"])
    .v3-product-rating small {
    font-size: 10px;
  }

  body:is([data-v3-page="home"], [data-v3-page="catalog"], [data-v3-page="product"])
    .v3-product-card
    h3 {
    min-height: 34px;
    margin: 0;
    grid-column: 1 / -1;
    grid-row: 1;
    font-size: 15px;
    line-height: 1.08;
  }

  body:is([data-v3-page="home"], [data-v3-page="catalog"], [data-v3-page="product"])
    .v3-product-price {
    min-width: 0;
    margin: 0;
    grid-column: 1;
    grid-row: 3;
    align-self: center;
    flex-direction: column;
    align-items: flex-start;
    gap: 1px;
  }

  body:is([data-v3-page="home"], [data-v3-page="catalog"], [data-v3-page="product"])
    .v3-product-price
    strong {
    font-size: 16px;
    line-height: 1;
  }

  body:is([data-v3-page="home"], [data-v3-page="catalog"], [data-v3-page="product"])
    .v3-product-price
    small {
    display: block;
    font-size: 7px;
    line-height: 1;
  }

  body:is([data-v3-page="home"], [data-v3-page="catalog"], [data-v3-page="product"])
    .v3-product-actions {
    width: auto;
    margin: 0;
    grid-column: 2;
    grid-row: 3;
    align-self: center;
    display: block;
  }

  body:is([data-v3-page="home"], [data-v3-page="catalog"], [data-v3-page="product"])
    .v3-product-actions
    .v3-pill {
    width: clamp(48px, 16vw, 72px);
    min-width: 0;
    min-height: 44px;
    padding-inline: 4px;
    display: inline-flex;
    font-size: 11px;
  }

  body:is([data-v3-page="home"], [data-v3-page="catalog"], [data-v3-page="product"])
    .v3-product-actions
    .v3-action-wide {
    display: none;
  }

  body:is([data-v3-page="home"], [data-v3-page="catalog"], [data-v3-page="product"])
    .v3-product-actions
    .v3-action-compact {
    display: inline;
  }

  body:is([data-v3-page="home"], [data-v3-page="catalog"], [data-v3-page="product"])
    .v3-product-actions
    .v3-pill
    svg {
    display: none;
  }

  body[data-v3-page="home"] .v3-proof-section {
    padding: 56px 0 64px;
  }

  body[data-v3-page="home"] .v3-proof-section > .v3-shell {
    grid-template-columns: 1fr;
    gap: 34px;
  }

  body[data-v3-page="home"] .v3-proof-ledger article {
    padding-block: 20px;
  }

  .v3-closing {
    padding-block: 48px;
  }

  .v3-footer-grid {
    gap: 32px 22px;
  }

  .v3-catalog-hero {
    padding: 44px 0 40px;
  }

  .v3-catalog-controls {
    padding-block: 9px;
  }

  .v3-catalog-body {
    padding: 26px 0 52px;
  }

  /* Mobile PDP keeps one semantic order and a rounded, contained image. */
  .v3-pdp-hero {
    padding: 10px 0 52px;
  }

  .v3-pdp-grid {
    width: var(--v3-shell);
    display: grid;
    grid-template-columns: 1fr;
    gap: 0;
  }

  .v3-pdp-mobile-intro {
    order: 1;
    padding: 18px 0 20px;
    display: block;
  }

  .v3-pdp-media {
    position: relative;
    top: auto;
    order: 2;
    width: min(100%, 420px);
    aspect-ratio: 1 / 1.08;
    margin: 0 auto;
    border: 1px solid var(--v3-line);
    border-radius: 20px;
  }

  .v3-pdp-summary {
    order: 3;
    padding: 24px 0 0;
    display: block;
  }

  .v3-pdp-summary-heading {
    display: none;
  }

  .v3-pdp-summary .v3-pdp-description,
  .v3-pdp-summary .v3-pdp-option-group,
  .v3-pdp-summary .v3-pdp-purchase,
  .v3-pdp-summary .v3-pdp-promises,
  .v3-pdp-summary [data-record-link-wrap] {
    order: initial;
  }

  .v3-pdp-description {
    margin: 0 0 22px;
  }

  .v3-pdp-option-group {
    padding: 16px;
  }

  .v3-pdp-detail {
    padding: 60px 0 68px;
  }

  .v3-detail-layout {
    grid-template-columns: 1fr;
    gap: 40px;
  }

  .v3-detail-section + .v3-detail-section {
    margin-top: 48px;
    padding-top: 48px;
  }

  .v3-related {
    padding: 48px 0 56px;
  }

  .v3-dock-inner {
    width: var(--v3-shell);
    min-height: 0;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-rows: auto auto;
    gap: 8px 10px;
  }

  .v3-dock-product {
    grid-column: 1;
    grid-row: 1;
  }

  .v3-dock-add {
    min-width: 138px;
    grid-column: 2;
    grid-row: 1;
  }

  .v3-dock-variants {
    padding: 5px 2px 6px;
    grid-column: 1 / -1;
    grid-row: 2;
    justify-content: flex-start;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scroll-snap-type: x proximity;
    scrollbar-width: none;
  }

  .v3-dock-variants::-webkit-scrollbar {
    display: none;
  }

  .v3-dock-variants .v3-variant {
    min-width: 92px;
    min-height: 48px;
    padding: 8px 10px;
    flex: 0 0 92px;
    scroll-snap-align: start;
  }

  /*
   * Five is the common assortment. Keep every option fully visible at once,
   * including at 320px; six-option assortments retain intentional scrolling.
   */
  .v3-dock-variants:has(> .v3-variant:nth-child(5):last-child) .v3-variant {
    min-width: 48px;
    padding-inline: 4px;
    flex: 1 1 0;
  }

  .v3-cart-drawer > header {
    min-height: 82px;
    padding: 15px 16px;
  }

  .v3-cart-line {
    padding: 14px;
    grid-template-columns: 68px minmax(0, 1fr) auto;
    gap: 10px;
  }

  .v3-cart-line > a {
    width: 68px;
  }

  .v3-cart-upsell {
    margin-inline: 14px;
    padding: 12px;
  }

  .v3-cart-drawer > footer {
    padding-inline: 14px;
  }

  .v3-search-panel {
    top: auto;
    right: 0;
    bottom: 0;
    left: 0;
    width: 100%;
    max-height: 88dvh;
    border-radius: 22px 22px 0 0;
    transform: translateY(105%);
  }

  .v3-search-open .v3-search-panel {
    transform: none;
  }
}

@media (max-width: 359px) {
  .v3-demo span {
    display: none;
  }

  body:is([data-v3-page="home"], [data-v3-page="catalog"], [data-v3-page="product"])
    .v3-product-body {
    min-height: 108px;
    padding: 10px;
  }

  body:is([data-v3-page="home"], [data-v3-page="catalog"], [data-v3-page="product"])
    .v3-product-price
    strong {
    font-size: 15px;
  }

  body:is([data-v3-page="home"], [data-v3-page="catalog"], [data-v3-page="product"])
    .v3-product-actions
    .v3-pill {
    width: 48px;
    font-size: 10px;
  }

  .v3-dock-product .v3-dock-media {
    display: none;
  }
}

/*
 * Small tablets get a true two-column hero and three-column merchandising
 * grid. This removes the 621px dead zone without exposing the PDP to a cramped
 * two-column buy box.
 */
@media (min-width: 600px) and (max-width: 700px) {
  body[data-v3-page="home"] .v3-hero-grid {
    width: var(--v3-shell);
    padding-block: 28px 44px;
    display: grid;
    grid-template-columns: minmax(0, 1.08fr) minmax(230px, 0.92fr);
    grid-template-rows: auto;
    align-items: center;
    gap: 22px;
  }

  body[data-v3-page="home"] .v3-hero-copy {
    min-height: 0;
    padding: 20px 0 0;
    display: flex;
    grid-column: 1;
    grid-row: 1;
  }

  body[data-v3-page="home"] .v3-status-pill {
    width: fit-content;
    margin: 0 0 18px;
    order: 1;
    font-size: 8px;
  }

  body[data-v3-page="home"] .v3-hero h1 {
    width: 100%;
    min-height: 0;
    margin: 0;
    order: 2;
    font-size: 42px;
    line-height: 0.98;
  }

  body[data-v3-page="home"] .v3-hero-lede {
    width: 100%;
    margin: 20px 0;
    order: 3;
    font-size: 14px;
    line-height: 1.55;
  }

  body[data-v3-page="home"] .v3-hero-actions {
    width: 100%;
    margin: 0;
    order: 4;
    flex-direction: column;
  }

  body[data-v3-page="home"] .v3-offer-card--mobile {
    display: none;
  }

  body[data-v3-page="home"] .v3-hero-facts {
    width: 100%;
    margin: 18px 0 0;
    padding-top: 16px;
    order: 5;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  body[data-v3-page="home"] .v3-hero-media {
    position: relative;
    inset: auto;
    width: 100%;
    height: clamp(390px, 63vw, 430px);
    margin: 0;
    grid-column: 2;
    grid-row: 1;
    display: grid;
    aspect-ratio: auto;
    border-radius: 20px;
  }

  body[data-v3-page="home"] .v3-hero-media figcaption {
    display: flex;
  }

  body[data-v3-page="home"] .v3-product-grid--three,
  body[data-v3-page="catalog"] .v3-product-grid--four {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  body[data-v3-page="product"] .v3-related .v3-product-grid--four {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* Keep the 900/901 navigation switch from changing page composition. */
@media (max-width: 980px) {
  body[data-v3-page="home"] .v3-proof-section > .v3-shell {
    grid-template-columns: 1fr;
    gap: 44px;
  }
}

@media (min-width: 800px) {
  .v3-footer-grid {
    grid-template-columns: minmax(240px, 1.6fr) repeat(
        3,
        minmax(110px, 1fr)
      );
  }

  .v3-footer-brand {
    grid-column: auto;
  }
}

/* ===== 2026-07-30 visual polish: clean single-column mobile hero ===== */
/* Replaces the cramped headline-beside-small-vial layout with a full-width
   headline stacked above a centered product feature. Phones only (<=599px);
   the 600-700px two-column tablet layout above is left intact. */
@media (max-width: 599.98px) {
  body[data-v3-page="home"] .v3-hero-grid {
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: auto auto auto auto auto auto auto;
    column-gap: 0;
    padding: 22px 0 34px;
  }

  body[data-v3-page="home"] .v3-status-pill {
    grid-column: 1;
    grid-row: 1;
  }

  body[data-v3-page="home"] .v3-hero h1 {
    grid-column: 1;
    grid-row: 2;
    margin: 15px 0 0;
    font-size: clamp(34px, 9.2vw, 42px);
    line-height: 1.03;
  }

  body[data-v3-page="home"] .v3-hero-lede {
    grid-column: 1;
    grid-row: 3;
    margin: 16px 0 22px;
  }

  body[data-v3-page="home"] .v3-hero-media {
    grid-column: 1;
    grid-row: 4;
    width: 100%;
    max-width: 320px;
    margin: 0 auto 24px;
    aspect-ratio: 4 / 5;
    border-radius: 22px;
  }

  body[data-v3-page="home"] .v3-hero-actions {
    grid-column: 1;
    grid-row: 5;
  }

  body[data-v3-page="home"] .v3-offer-card--mobile {
    grid-column: 1;
    grid-row: 6;
  }

  body[data-v3-page="home"] .v3-hero-facts {
    grid-column: 1;
    grid-row: 7;
  }
}

/* 2026-07-30 audit fix: make the hero product a full clickable target */
.v3-hero-media-link {
  position: absolute;
  inset: 0;
  z-index: 3;
  border-radius: inherit;
}

/* Payment marks: recognizable wallet and card badges at checkout decision
   points. Chips stay white so the marks read on both light and dark bands. */
.v3-paybadges {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
}

.v3-paybadge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 46px;
  height: 30px;
  border: 1px solid rgba(10, 10, 9, 0.14);
  border-radius: 6px;
  background: #fff;
}

.v3-paybadge svg {
  width: 38px;
  height: 20px;
  display: block;
}

/* The global icon style strokes every svg shape; brand marks must render
   with their own fills only or the geometry reads hand-drawn. */
.v3-paybadge svg,
.v3-paybadge svg * {
  stroke: none;
}

.v3-paybadges--trustbar {
  margin-top: 7px;
}

.v3-paybadges--trustbar .v3-paybadge {
  width: 40px;
  height: 26px;
  border-radius: 5px;
}

.v3-paybadges--trustbar .v3-paybadge svg {
  width: 33px;
  height: 17px;
}

.v3-paybadges--footer {
  flex: 0 0 auto;
  border: 0;
}

.v3-paybadges--footer .v3-paybadge {
  border-color: rgba(255, 255, 255, 0.16);
}

.v3-paybadges--cart {
  justify-content: center;
  margin-top: 10px;
}

/* Amex reads as its real mark: white type on the solid brand-blue chip. */
.v3-paybadges .v3-paybadge--amex {
  background: #016fd0;
  border-color: #016fd0;
}

/* PDP reviews: two product-tagged cards in a tighter band than the home strip. */
.v3-reviews-section--pdp {
  padding: clamp(52px, 5vw, 68px) 0 clamp(20px, 2.4vw, 34px);
}

@media (min-width: 720px) {
  .v3-reviews-grid--pdp {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* Footer signup: first-order incentive above the link grid, dark band. */
.v3-footer-signup {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
  flex-wrap: wrap;
  padding-bottom: clamp(36px, 4vw, 52px);
  margin-bottom: clamp(36px, 4vw, 52px);
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.v3-footer-signup-copy h2 {
  margin: 0 0 6px;
  color: #fff;
  font-size: clamp(22px, 2.2vw, 28px);
  letter-spacing: -0.035em;
}

.v3-footer-signup-copy p {
  margin: 0;
  color: rgba(255, 255, 255, 0.62);
  font-size: 13.5px;
}

.v3-footer-signup-form {
  display: grid;
  grid-template-columns: minmax(220px, 320px) auto;
  gap: 10px;
  align-items: center;
}

.v3-footer-signup-form input[type="email"] {
  min-height: 48px;
  padding: 0 16px;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.22);
  background: rgba(255, 255, 255, 0.06);
  color: #fff;
  font-size: 14px;
}

.v3-footer-signup-form input[type="email"]::placeholder {
  color: rgba(255, 255, 255, 0.45);
}

.v3-footer-signup-form input[type="email"]:focus {
  outline: 2px solid rgba(255, 255, 255, 0.6);
  outline-offset: 1px;
}

.v3-hp {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  opacity: 0;
}

.v3-footer-signup-note {
  grid-column: 1 / -1;
  margin: 0;
  font-size: 11px;
  color: rgba(255, 255, 255, 0.5);
}

.v3-footer-signup-done {
  margin: 0;
  color: #fff;
  font-size: 15px;
}

@media (max-width: 700px) {
  .v3-footer-signup {
    display: block;
  }

  .v3-footer-signup-copy {
    margin-bottom: 16px;
  }

  .v3-footer-signup-form {
    grid-template-columns: 1fr;
  }
}

/* Full-site audit fixes: overflow, mobile proof, balance, decision points. */
html,
body {
  overflow-x: clip;
}

/* Display headlines never orphan a single word on their last line. */
h1,
.v3-section-head h2,
.v3-detail-section h2,
.v3-guarantee-copy h2,
.v3-proof-head h2,
.v3-closing h2,
.v3-cart-empty h3 {
  text-wrap: balance;
}

/* The buy-box rating row is a link to the reviews section, not plain text. */
a.v3-pdp-rating {
  text-decoration: none;
  cursor: pointer;
}

a.v3-pdp-rating:hover span:last-child {
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* Purchase notes: three promises on one desktop row, no orphan cell.
   Phones keep the stacked single-column list from the base stylesheet, so
   the notes never squeeze into three cramped wrapping columns. */
@media (min-width: 621px) {
  .v3-pdp-promises {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

/* Compact purity token lives in the rating row; desktop shows the full
   format line instead, so the token appears only on narrow cards. */
.v3-card-purity {
  display: none;
}

@media (max-width: 620px) {
  .v3-card-purity {
    display: inline;
    margin-left: 2px;
    color: var(--v3-muted);
    font-size: 11px;
  }

  /* Keep the two strongest conversion cues visible on mobile. */
  body[data-v3-page="home"] .v3-status-detail {
    display: inline;
  }

  /* Reviews aggregate stacks under the heading instead of overflowing. */
  .v3-reviews-section .v3-section-head {
    display: block;
  }

  .v3-reviews-aggregate {
    margin-top: 10px;
    justify-content: flex-start;
    white-space: nowrap;
  }

  /* Trust bar: icons top-aligned, titles keep their line. */
  .v3-trustbar-item {
    align-items: flex-start;
  }

  /* Sentence-case secondary hero action, matching every other button. */
  .v3-hero-testing-mobile {
    text-transform: none;
    letter-spacing: normal;
    font-family: inherit;
    font-size: 14px;
  }

  /* Give the card body breathing room between rating and action pill. */
  .v3-product-body {
    row-gap: 7px;
  }

  /* The search control lives outside the chip scroller, in normal flow at
     the right edge of the filter row, so it never covers a chip. */
  .v3-filter-search {
    position: static;
    background: var(--v3-white);
    box-shadow: none;
  }

  /* Sub-44px text links get real touch targets without visual change. */
  .v3-detail-rail a,
  .v3-record-link,
  .v3-footer nav a {
    min-height: 44px;
  }
}

/* Bundles and related-guide pairs fill their row instead of leaving a dead
   third column. */
.v3-product-grid--sets,
.v3-related-guides {
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
}

/* Trust line: quiet mono-caps copy in three parts. Lives in the PDP buy box
   under the purchase notes, and as a slim strip that closes the home page
   between the proof section and the footer. Each part stays unbroken so the
   line wraps only at the bullets. */
.v3-pdp-provenance,
.v3-trustline-text {
  color: var(--v3-muted);
  font-family: "Noli Mono", monospace;
  font-size: 10px;
  line-height: 2;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.v3-pdp-provenance > span,
.v3-trustline-text > span {
  white-space: nowrap;
}

.v3-provenance-sep {
  opacity: 0.5;
}

.v3-pdp-provenance {
  margin: 16px 0 0;
}

.v3-pdp-provenance + .v3-pdp-ruo {
  margin-top: 9px;
}

.v3-trustline {
  padding: 30px 0;
  color: var(--v3-white);
  background: var(--v3-black);
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.v3-trustline-text {
  margin: 0;
  text-align: center;
  color: rgba(255, 255, 255, 0.56);
}

@media (max-width: 700px) {
  .v3-trustline {
    padding: 24px 0;
  }

  .v3-trustline-text {
    font-size: 9.5px;
  }

  /* Break into two deliberate lines instead of leaving a dangling bullet
     at the end of a wrapped line. */
  .v3-pdp-provenance > span:nth-of-type(2) .v3-provenance-sep,
  .v3-trustline-text > span:nth-of-type(2) .v3-provenance-sep {
    display: none;
  }

  .v3-pdp-provenance > span:nth-of-type(3),
  .v3-trustline-text > span:nth-of-type(3) {
    display: block;
  }
}

/* Catalog token line: conversion facts, no prose. */
.v3-catalog-tokens {
  font-family: "Noli Mono", monospace;
  font-size: 10px;
  letter-spacing: 0.12em;
  color: var(--v3-muted);
}

/* On the PDP the trust ribbon sits on the light band between guarantee and
   related products; keep it hairline-separated, not floating. */
body[data-v3-page="product"] .v3-trustline {
  border-top: 1px solid var(--v3-line);
  border-bottom: 1px solid var(--v3-line);
}

.v3-catalog-hero .v3-catalog-tokens {
  max-width: none;
}

@media (max-width: 620px) {
  .v3-catalog-tokens {
    line-height: 1.8;
  }
}

/* Filter chips live in an overflow-x scroll row, which clips anything that
   leaves the box; a hover lift can only shear off the chip's top edge.
   Feedback stays color/border only, and the row gets ring clearance. */
.v3-filter:hover,
.v3-filter-search:hover {
  transform: none;
}

.v3-catalog-controls .v3-filter-row {
  padding-block: 4px;
}

.v3-catalog-controls .v3-filter-scroller {
  padding-block: 4px;
  margin-block: -4px;
}

/* Catalog facts: quiet designed row, not shouted mono caps. */
.v3-catalog-facts {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 10px 28px;
}

.v3-catalog-facts li {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--v3-ink);
  font-size: 13.5px;
  font-weight: 550;
}

.v3-catalog-facts svg {
  width: 15px;
  height: 15px;
  color: var(--v3-muted);
}

.v3-catalog-hero {
  padding: clamp(20px, 2.4vw, 30px) 0 clamp(10px, 1.2vw, 16px);
}

/* Hero provenance: seen immediately, quiet, one line. */
.v3-hero-provenance {
  margin: 0 0 18px;
  color: var(--v3-muted);
  font-size: 12.5px;
  letter-spacing: 0.01em;
}

@media (max-width: 620px) {
  .v3-hero-provenance {
    font-size: 11.5px;
    line-height: 1.7;
  }

  .v3-catalog-facts {
    gap: 8px 18px;
  }

  .v3-catalog-facts li {
    font-size: 12px;
  }
}

/* ===== 2026-07-31 spacing perfection pass ===== */

/* The guarantee "card" background matches the page background exactly, so
   its horizontal padding read as a random extra indent against every other
   section. Vertical padding stays; the phantom side inset goes, and the
   guarantee copy lines up with the shell like its neighbors. */
.v3-guarantee-inner {
  padding: 48px 0;
}

@media (max-width: 900px) {
  .v3-guarantee-inner {
    padding: 32px 0;
  }
}

/* In the stacked mobile purchase-notes list, the 9px ships-today dot sat in
   a narrower slot than the 25px circled icons below it, so the three text
   labels started at two different left edges. Center the dot in the same
   25px slot and every label shares one edge. */
@media (max-width: 620px) {
  .v3-pdp-promises .v3-pdp-ship .v3-ship-dot {
    margin-inline: 8px;
  }
}

/* Detail callout: the single-line note centers against its icon circle
   instead of top-aligning and leaving dead space beneath. */
.v3-detail-callout {
  align-items: center;
}

/* Added-to-cart dock: browse-surface confirmation bar in the purchase-dock
   language. Sits above content, below the drawer/backdrop layers. */
.v3-add-dock {
  position: fixed;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 70;
  padding-bottom: env(safe-area-inset-bottom, 0px);
  border-top: 1px solid var(--v3-line);
  background: var(--v3-white);
  box-shadow: 0 -18px 44px -30px rgba(0, 0, 0, 0.4);
}

.v3-add-dock[hidden] {
  display: none;
}

@media (prefers-reduced-motion: no-preference) {
  .v3-add-dock {
    animation: v3-add-dock-in 0.22s var(--v3-ease);
  }

  @keyframes v3-add-dock-in {
    from {
      opacity: 0;
      transform: translateY(14px);
    }

    to {
      opacity: 1;
      transform: translateY(0);
    }
  }
}

.v3-add-dock-inner {
  display: flex;
  align-items: center;
  gap: 14px;
  padding-block: 12px;
}

.v3-add-dock-media {
  width: 44px;
  height: 44px;
  display: grid;
  flex: 0 0 auto;
  place-items: center;
  overflow: hidden;
  border: 1px solid var(--v3-line);
  border-radius: 10px;
  background: var(--v3-white);
}

.v3-add-dock-media img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.v3-add-dock-text {
  min-width: 0;
  margin: 0;
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  gap: 1px;
}

.v3-add-dock-text strong {
  color: var(--v3-ink);
  font-size: 13px;
}

.v3-add-dock-text span {
  overflow: hidden;
  color: var(--v3-muted);
  font-size: 12px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.v3-add-dock-actions {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 8px;
}

.v3-add-dock-close {
  width: 38px;
  height: 38px;
}

@media (max-width: 620px) {
  .v3-add-dock-inner {
    gap: 10px;
    padding-block: 10px;
  }

  .v3-add-dock-actions .v3-pill--ghost {
    display: none;
  }

  .v3-add-dock-text strong {
    font-size: 12px;
  }

  .v3-add-dock-text span {
    font-size: 11px;
  }
}

.v3-add-dock-text {
  padding: 0;
  border: 0;
  background: none;
  text-align: left;
  cursor: pointer;
  font: inherit;
}

/* PDP provenance: one quiet line above the amount selector so direct and
   affiliate landings get the legitimacy handoff without leaving the fold. */
.v3-pdp-summary .v3-pdp-origin {
  margin: -14px 0 22px;
  color: var(--v3-muted);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

@media (max-width: 620px) {
  .v3-pdp-summary .v3-pdp-origin {
    margin: -8px 0 18px;
    font-size: 10px;
    line-height: 1.9;
  }
}

/* Mobile hero: the offer card and trust bar already carry dispatch and
   shipping; the facts line rendered as orphaned text with dead space. */
@media (max-width: 620px) {
  body[data-v3-page="home"] .v3-hero-provenance {
    display: none;
  }
}
