/* Final production overrides. This file loads after the legacy stylesheet so
   the approved hero and native horizontal-scrolling behavior stay deterministic. */
.hero--compact .hero__visual {
  min-height: 0;
  aspect-ratio: 1012 / 640;
  overflow: visible;
}

.hero--compact .hero-product--supplied img {
  width: 100%;
  max-width: 100%;
  height: auto;
  max-height: none;
  object-fit: contain;
}

.home-featured__heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 18px;
}

.home-featured__heading > p {
  margin: 0;
  font-size: clamp(1.65rem, 3vw, 2.35rem);
  font-weight: 750;
  letter-spacing: -.035em;
}

.home-featured__controls {
  display: flex;
  gap: 9px;
}

.home-featured__controls button {
  display: grid;
  width: 44px;
  height: 44px;
  place-items: center;
  padding: 0 0 3px;
  border: 1px solid rgb(0 0 0 / 10%);
  border-radius: 50%;
  background: #f5f5f7;
  color: #1d1d1f;
  font: 500 1.55rem/1 system-ui;
  cursor: pointer;
}

.home-featured__controls button:disabled {
  opacity: .28;
  cursor: default;
}

.home-featured__rail {
  scroll-snap-type: x mandatory;
  scroll-padding-inline: 2px;
}

.home-featured-card {
  background: #fff;
  box-shadow: 0 18px 42px rgb(0 0 0 / 8%);
  transform: translateZ(0);
}

.home-featured-card:hover {
  transform: translateY(-2px);
}

.home-featured-card--accessories {
  background: #fff;
}

.home-featured-card--accessories img {
  background: #fff;
}

@media (max-width: 820px) {
  .home-featured .shell {
    width: min(100% - 32px, var(--content));
  }

  .home-featured__rail {
    width: calc(100% + 16px);
    grid-auto-columns: min(80vw, 404px);
    gap: 12px;
    padding-right: 16px;
    scroll-snap-type: x mandatory;
  }

  .home-featured-card {
    border-radius: 22px;
    box-shadow: 0 12px 28px rgb(0 0 0 / 8%);
  }
}

.product-card,
.product-card__media {
  background: #fff;
}

/* Every Home category uses one identical, clipped white media tile. */
.home-page .most-wanted__item > span {
  overflow: hidden;
  background: #fff;
}

.home-page .most-wanted__item > span img {
  display: block;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}

.home-stock-section {
  padding-block: clamp(42px, 6vw, 72px);
}

.home-stock-section .section-heading {
  margin-bottom: 22px;
}

.home-stock-section [data-featured-products] {
  grid-auto-columns: minmax(220px, 272px);
  gap: 14px;
}

.home-stock-section .product-card--editorial {
  min-height: 0;
  border-color: rgb(0 0 0 / 7%);
  box-shadow: 0 10px 28px rgb(0 0 0 / 5%);
}

.catalog-page .filter-row--categories {
  scroll-padding-inline: 4px;
  padding-inline: 4px;
}

.catalog-page .filter-row--categories .filter-chip {
  scroll-margin-inline: 4px;
}

.repair-hero {
  min-height: 460px;
}

.repair-hero__copy {
  padding-block: clamp(38px, 5vw, 62px);
}

.repair-hero__media {
  min-height: 380px;
}

.repair-type {
  min-height: 150px;
  padding: 18px;
}

.repair-type__icon {
  margin-bottom: 18px;
  color: #1d1d1f;
}

.repair-type__icon [data-is-icon] {
  width: 23px;
  height: 23px;
}

.repair-types-section,
.repair-request-section {
  padding-block: clamp(48px, 6vw, 74px);
}

.repair-form-wrap {
  gap: clamp(24px, 5vw, 64px);
}

.repair-form-wrap .trust-list [data-is-icon] {
  width: 17px;
  height: 17px;
  color: #16833e;
}

.repair-form {
  gap: 12px;
  padding: clamp(20px, 3vw, 30px);
}

.repair-form textarea {
  min-height: 82px;
}

.repair-safety-note {
  margin: 2px 0 0;
  padding-top: 12px;
  border-top: 1px solid rgb(0 0 0 / 8%);
  color: #6e6e73;
  font-size: .75rem;
  line-height: 1.45;
}

.repair-request-section + .section {
  padding-block: clamp(42px, 5vw, 62px);
}

.repair-request-section + .section .policy-card {
  padding: 22px;
}

.repair-request-section + .section .policy-card::before {
  margin-bottom: 20px;
}

.page-hero {
  padding-block: clamp(38px, 5vw, 68px);
}

.page-hero h1 {
  font-size: clamp(2.45rem, 6vw, 4.9rem);
}

.editorial-rail--official .editorial-card {
  background: #f5f5f7;
}

.editorial-rail--official .editorial-card img {
  inset: auto 0 0;
  width: 100%;
  height: 78%;
  padding: 20px;
  object-fit: contain;
}

.editorial-rail--official .editorial-card--wide img {
  height: 72%;
  padding: 10px;
}

.official-asset-rail {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(230px, 290px);
  gap: 14px;
  margin-top: 28px;
  padding: 2px 2px 16px;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scroll-snap-type: x proximity;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}

.official-asset-rail::-webkit-scrollbar {
  display: none;
}

.official-asset-card {
  display: grid;
  grid-template-rows: 270px auto;
  gap: 14px;
  padding: 18px;
  border: 1px solid rgb(0 0 0 / 6%);
  border-radius: 26px;
  background: #f5f5f7;
  color: #1d1d1f;
  scroll-snap-align: start;
  text-decoration: none;
}

.official-asset-card img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.official-asset-card span {
  display: grid;
  gap: 4px;
}

.official-asset-card small {
  color: #6e6e73;
}

:is(
  .home-featured__rail,
  .most-wanted__rail,
  .product-rail,
  .editorial-rail,
  .budget-grid,
  .home-utilities__grid
) {
  overscroll-behavior-inline: contain;
  scroll-behavior: smooth;
  scroll-snap-type: x proximity;
  scrollbar-width: none;
  touch-action: pan-x pan-y pinch-zoom;
  -webkit-overflow-scrolling: touch;
}

:is(
  .home-featured__rail,
  .most-wanted__rail,
  .product-rail,
  .editorial-rail,
  .budget-grid,
  .home-utilities__grid
)::-webkit-scrollbar {
  display: none;
}

:is(
  .home-featured__rail,
  .most-wanted__rail,
  .product-rail,
  .editorial-rail,
  .budget-grid,
  .home-utilities__grid
) > * {
  scroll-snap-align: start;
  scroll-snap-stop: normal;
}

@media (max-width: 820px) {
  .hero--compact .hero__visual {
    min-height: 0;
    aspect-ratio: 1012 / 640;
    overflow: visible;
  }

  .hero--compact .hero-product--supplied img {
    width: 100%;
    max-width: 100%;
    height: auto;
    max-height: none;
  }

  .home-featured__heading {
    margin-bottom: 12px;
  }

  .home-featured__heading::after { content: none; }

  .home-featured__controls {
    display: none;
  }

  .home-page [data-featured-products] {
    grid-auto-columns: min(62vw, 232px);
    gap: 12px;
  }

  .home-page [data-featured-products] .product-card--editorial {
    min-height: 318px;
  }

  .home-page [data-featured-products] .product-card__media {
    min-height: 178px;
    padding: 14px;
  }

  .repair-hero {
    min-height: 0;
  }

  .repair-hero__copy {
    padding-block: 32px 26px;
  }

  .repair-hero__media {
    min-height: 260px;
  }

  .repair-type-grid {
    gap: 8px;
  }

  .repair-type {
    min-height: 124px;
    padding: 15px;
  }

  .repair-type__icon {
    width: 36px;
    height: 36px;
    margin-bottom: 13px;
  }

  .repair-types-section,
  .repair-request-section {
    padding-block: 34px;
  }

  .repair-form-wrap {
    gap: 22px;
  }

  .repair-request-section + .section .how-grid {
    gap: 8px;
  }

  [data-related-products] {
    overscroll-behavior-inline: contain;
    scroll-behavior: smooth;
    scroll-snap-type: x proximity;
    scrollbar-width: none;
    touch-action: pan-x pan-y pinch-zoom;
    -webkit-overflow-scrolling: touch;
  }

  [data-related-products]::-webkit-scrollbar {
    display: none;
  }

  [data-related-products] > * {
    scroll-snap-align: start;
    scroll-snap-stop: normal;
  }

  .official-asset-rail {
    width: calc(100% + 18px);
    grid-auto-columns: min(82vw, 300px);
    padding-right: 18px;
  }
}

@media (prefers-reduced-motion: reduce) {
  :is(
    .home-featured__rail,
    .most-wanted__rail,
    .product-rail,
    .editorial-rail,
    .budget-grid,
    .home-utilities__grid,
    [data-related-products]
  ) {
    scroll-behavior: auto;
  }
}

/* Compact, progressive order review: products first on mobile, optional fields on demand. */
.cart-summary__checkout {
  display: block;
  margin: 0 0 14px;
  padding-top: 0;
  border-top: 1px solid var(--line);
}

.cart-summary__checkout > summary {
  display: flex;
  min-height: 46px;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  cursor: pointer;
  list-style: none;
  font-size: .88rem;
  font-weight: 760;
}

.cart-summary__checkout > summary::-webkit-details-marker {
  display: none;
}

.cart-summary__checkout > summary::after {
  content: "+";
  font-size: 1.15rem;
  font-weight: 500;
}

.cart-summary__checkout[open] > summary::after {
  content: "−";
}

.cart-summary__checkout > summary span {
  margin-left: auto;
  color: var(--muted);
  font-size: .7rem;
  font-weight: 600;
}

.cart-summary__checkout-fields {
  display: grid;
  gap: 10px;
  padding: 2px 0 14px;
}

.sidecart__footer {
  gap: 7px;
  padding-top: 12px;
}

.sidecart__footer .button {
  min-height: 44px;
}

@media (max-width: 820px) {
  .cart-page .cart-items {
    grid-row: 1;
  }

  .cart-page .cart-summary {
    grid-row: 2;
    position: static;
    padding: 17px;
  }

  .cart-summary__total {
    padding-block: 14px;
  }

  .cart-summary__note {
    margin-block: 8px 2px;
  }
}

@media (max-width: 520px) {
  .sidecart__header {
    min-height: 64px;
  }

  .sidecart__footer {
    padding: 10px 16px calc(10px + env(safe-area-inset-bottom));
  }

  .sidecart-continue {
    min-height: 44px;
    font-size: .76rem;
  }
}

/* Explicit boxes prevent intrinsic image height from overflowing grid tracks. */
[hidden] { display: none !important; }
.product-card__media { min-height: 0; aspect-ratio: 1 / .9; position: relative; }
.product-card__media img { position: absolute; inset: 8%; width: 84%; height: 84%; max-width: 84%; max-height: 84%; object-fit: contain; transform: none !important; }
.product-card__image-note { z-index: 1; }
.product-group-visual { overflow: visible; }
.product-group-visual picture { width: 100%; min-width: 0; height: 100%; display: grid; place-items: center; }
.product-group-visual img { width: 100%; height: 100%; max-height: 540px; object-fit: contain; }
.product-group-page .product-group-visual {
  min-height: 560px;
  padding: clamp(10px, 3vw, 36px);
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
body.product-group-page { background: #fff; }
.product-group-page .product-layout,
.product-group-page .product-visual,
.product-group-page .product-summary { min-width: 0; }
.product-group-page .product-summary h1 { overflow-wrap: anywhere; }
.product-group-summary .product-device-details { margin: 12px 0 0; gap: 6px 14px; display: flex; flex-wrap: wrap; }
.product-group-summary .product-device-details > div { border: 0; padding: 0; display: flex; gap: 6px; font-size: .8rem; }
.product-unit-reference { color: var(--muted); font-size: .69rem; margin: 10px 0; }
.group-device { min-width: 0; }
.group-device small { overflow-wrap: anywhere; }
.sidecart { height: 100dvh; max-height: 100dvh; grid-template-rows: auto minmax(0, 1fr) auto; }
.sidecart__body { min-height: 0; overscroll-behavior: contain; }
.sidecart-item__media, .cart-item__image { background: #fff; }
.quantity button:disabled, .sidecart-item__controls button:disabled { opacity: .35; cursor: not-allowed; }
.cart-summary[hidden] { display: none !important; }
.finder-form { display: flex; flex-wrap: wrap; gap: 16px; margin-bottom: 24px; }
.finder-form label { display: grid; gap: 8px; flex: 1 1 200px; font-size: .9rem; font-weight: 600; }
.finder-form select { width: 100%; min-height: 44px; border: 1px solid var(--line); border-radius: 12px; background: #fff; padding: 10px; font: inherit; }
.discovery-table { min-width: 0; width: 100%; }
.discovery-table th, .discovery-table td { white-space: normal; }

@media (max-width: 820px) {
  .product-group-page .product-layout { width: 100%; grid-template-columns: minmax(0, 1fr); }
  .product-group-page .product-summary h1 { font-size: clamp(2rem, 8.6vw, 2.35rem); line-height: .96; }
  .home-featured .home-featured__rail { grid-auto-columns: 78vw; width: calc(100% + 18px); grid-template-columns: none; gap: 12px; padding: 2px 18px 12px 0; margin: 0; scroll-padding-inline: 0; }
  .home-featured-card { min-width: 0; }
  .home-featured { padding-block: 32px; }
  .home-page .most-wanted--first .most-wanted__rail { grid-auto-columns: 104px; width: calc(100% + 18px); margin: 0; gap: 12px; padding: 2px 18px 10px 0; scroll-padding-inline: 0; }
  .home-page [data-featured-products] .product-card--editorial { min-height: 0; }
  .home-page [data-featured-products] .product-card__media { min-height: 0; aspect-ratio: 1 / .9; }
  .product-group-page .product-group-visual { height: 300px; min-height: 0; padding: 4px 14px 14px; }
  .product-group-visual img { max-height: 240px; }
  .discovery-table th, .discovery-table td { padding: 12px 8px; font-size: .8rem; }
  .seo-hero .page-hero__aside { display: none; }
  .seo-hero { padding-block: 28px; }
  .seo-hero h1 { font-size: clamp(2rem, 8vw, 2.8rem); }
  .seo-collection { padding-block: 28px; }
}

/* V25 ProductFamily → Offers presentation lock. */
.product-card__media-placeholder,
.product-group-visual__pending {
  display: grid;
  width: 100%;
  height: 100%;
  place-content: center;
  gap: 5px;
  border-radius: inherit;
  background: linear-gradient(145deg, #fff, #f5f5f7);
  color: #1d1d1f;
  text-align: center;
}

.product-card__media-placeholder > span,
.product-group-visual__pending > span {
  font-size: clamp(1.15rem, 3vw, 1.8rem);
  font-weight: 750;
  letter-spacing: -.045em;
}

.product-card__media-placeholder small,
.product-group-visual__pending small {
  color: #6e6e73;
  font-size: .68rem;
  font-weight: 600;
}

.product-group-visual__pending {
  min-height: 420px;
  border: 1px solid rgb(0 0 0 / 6%);
}

.group-configurator {
  display: grid;
  gap: 20px;
  margin: 24px 0 16px;
}

.group-option {
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}

.group-option legend {
  margin: 0 0 10px;
  color: #1d1d1f;
  font-size: .86rem;
  font-weight: 740;
  letter-spacing: -.01em;
}

.group-option > div {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.group-option button {
  touch-action: manipulation;
  display: inline-flex;
  min-width: 112px;
  min-height: 58px;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 9px 13px;
  border: 1px solid #d2d2d7;
  border-radius: 14px;
  background: #fff;
  color: #1d1d1f;
  font: inherit;
  font-size: .78rem;
  font-weight: 650;
  cursor: pointer;
  text-align: left;
  transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease, background 160ms ease;
}

.group-option button > span:not(.group-option__swatch) { display: grid; gap: 2px; }
.group-option button strong { font-size: .82rem; font-weight: 720; }
.group-option button small { color: #6e6e73; font-size: .68rem; font-weight: 560; }
.group-option button i { width: 18px; height: 18px; margin-left: auto; border: 1px solid #c7c7cc; border-radius: 50%; }

.group-option button[aria-pressed="true"] {
  border-color: #1d1d1f;
  background: #f5f5f7;
  box-shadow: inset 0 0 0 1px #1d1d1f, 0 7px 18px rgb(0 0 0 / 6%);
}

.group-option button[aria-pressed="true"] i { border: 5px solid #1d1d1f; background: #fff; }

.group-option button:focus-visible {
  outline: 3px solid rgb(0 113 227 / 24%);
  outline-offset: 2px;
}

.group-option button:disabled {
  cursor: not-allowed;
  opacity: .36;
}

.group-option__swatch {
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
  border: 1px solid rgb(0 0 0 / 14%);
  border-radius: 50%;
  background: #d1d1d6;
  box-shadow: inset 0 0 0 2px #fff;
}

.group-option__finish-preference .group-option__swatch,
.group-option--finish-preference .group-option__swatch { background: var(--finish-swatch, #d1d1d6); }
.group-option--finish-preference legend { display: flex; width: 100%; align-items: baseline; justify-content: space-between; gap: 12px; }
.group-option--finish-preference legend strong { color: #6e6e73; font-size: .8rem; font-weight: 650; }
.group-option--finish-preference > div { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.group-option--finish-preference button { width: 100%; min-width: 0; min-height: 58px; justify-content: flex-start; padding: 10px 13px; }
.group-option--finish-preference button > strong { min-width: 0; font-size: .8rem; line-height: 1.15; }
.group-option--finish-preference button[aria-pressed="true"] { border-color: #0071e3; background: #fff; box-shadow: inset 0 0 0 1px #0071e3; }
.group-option--finish-preference .group-option__swatch { width: 24px; height: 24px; flex-basis: 24px; box-shadow: inset 0 0 0 2px #fff, 0 0 0 1px rgb(0 0 0 / 8%); }
.group-option--finish-preference > p { margin: 8px 0 0; color: #6e6e73; font-size: .7rem; line-height: 1.4; }
.product-red-label { color: #c8202f; white-space: nowrap; }
.product-red-label > span { position: relative; top: -.23em; margin-right: 1px; font-size: .62em; letter-spacing: -.02em; }
.group-option--finish-preference.needs-selection { margin: -8px; padding: 8px; border-radius: 18px; background: #fff7ed; box-shadow: 0 0 0 1px #f0c89c; }

.group-option__swatch[data-colour*="black" i],
.group-option__swatch[data-colour*="midnight" i],
.group-option__swatch[data-colour*="space" i] { background: #252529; }
.group-option__swatch[data-colour*="white" i],
.group-option__swatch[data-colour*="starlight" i],
.group-option__swatch[data-colour*="silver" i] { background: #f1f0eb; }
.group-option__swatch[data-colour*="blue" i] { background: #8fa9bd; }
.group-option__swatch[data-colour*="green" i] { background: #8fa596; }
.group-option__swatch[data-colour*="red" i] { background: #b84b56; }
.group-option__swatch[data-colour*="gold" i] { background: #d6c3a1; }
.group-option__swatch[data-colour*="purple" i] { background: #aaa2b8; }
.group-option__swatch[data-colour*="pink" i] { background: #d7a4aa; }

.group-option__swatch--spectrum { background: conic-gradient(from 35deg, #7b86a6, #d1baa3, #d7d4ca, #5a6271, #7b86a6); }

.group-option__request {
  display: flex;
  width: min(100%, 320px);
  min-height: 58px;
  align-items: center;
  gap: 11px;
  padding: 9px 13px;
  border: 1px solid #d2d2d7;
  border-radius: 14px;
  background: #fff;
  color: #1d1d1f;
  text-decoration: none;
}
.group-option__request > span:nth-child(2) { display: grid; flex: 1; gap: 2px; }
.group-option__request strong { font-size: .82rem; }
.group-option__request small { color: #6e6e73; font-size: .68rem; }

.product-group-price { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.product-group-price .product-summary__price { margin-bottom: 0; }
.product-group-price > small { flex-basis: 100%; max-width: 28rem; color: #6e6e73; font-size: .82rem; font-weight: 500; line-height: 1.35; }

.product-selected-summary {
  margin: 10px 0 0;
  color: #1d1d1f;
  font-size: .8rem;
  font-weight: 650;
  line-height: 1.45;
}

.catalog-checkout {
  width: min(100% - 24px, 620px);
  max-height: min(92svh, 820px);
  margin: auto;
  padding: 0;
  border: 0;
  border-radius: 28px;
  background: transparent;
  box-shadow: 0 30px 100px rgb(0 0 0 / 30%);
}
.catalog-checkout::backdrop { background: rgb(0 0 0 / 58%); backdrop-filter: blur(9px); }
.catalog-checkout__card { position: relative; max-height: min(92svh, 820px); overflow: auto; padding: 30px; border-radius: 28px; background: #fff; }
.catalog-checkout__close { position: absolute; top: 16px; right: 16px; display: grid; width: 38px; height: 38px; padding: 0; place-items: center; border: 0; border-radius: 50%; background: #eeeef0; color: #1d1d1f; font-size: 24px; cursor: pointer; }
.catalog-checkout h2 { max-width: 12ch; margin: 8px 0 18px; color: #1d1d1f; font-size: clamp(2rem, 7vw, 3rem); line-height: .98; letter-spacing: -.052em; }
.catalog-checkout__product { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 16px; margin: 0 0 20px; padding: 15px; border-radius: 18px; background: #f5f5f7; }
.catalog-checkout__product strong { color: #1d1d1f; font-size: .95rem; }
.catalog-checkout__product span { grid-column: 1; color: #6e6e73; font-size: .72rem; line-height: 1.4; }
.catalog-checkout__product b { grid-column: 2; grid-row: 1 / span 2; align-self: center; color: #1d1d1f; font-size: 1.08rem; }
.catalog-checkout__fields { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.catalog-checkout label, .catalog-checkout legend { color: #3a3a3c; font-size: .74rem; font-weight: 720; }
.catalog-checkout__fields input { width: 100%; min-height: 52px; margin-top: 7px; padding: 0 14px; border: 1px solid #d2d2d7; border-radius: 14px; background: #fff; color: #1d1d1f; font: inherit; font-size: 1rem; }
.catalog-checkout__fields input:focus { border-color: #1d1d1f; outline: 3px solid rgb(0 113 227 / 18%); outline-offset: 1px; }
.catalog-checkout fieldset { min-width: 0; margin: 22px 0 0; padding: 0; border: 0; }
.catalog-checkout fieldset legend { margin-bottom: 10px; }
.catalog-payment-methods { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.catalog-payment-method { position: relative; display: flex; min-height: 62px; align-items: center; gap: 10px; padding: 10px 12px; border: 1px solid #d2d2d7; border-radius: 15px; cursor: pointer; }
.catalog-payment-method:has(input:checked) { border-color: #1d1d1f; background: #f5f5f7; box-shadow: inset 0 0 0 1px #1d1d1f; }
.catalog-payment-method input { position: absolute; opacity: 0; pointer-events: none; }
.catalog-payment-method span { display: grid; flex: 1; gap: 2px; }
.catalog-payment-method strong { color: #1d1d1f; font-size: .82rem; }
.catalog-payment-method small { color: #6e6e73; font-size: .68rem; font-weight: 560; }
.catalog-payment-method em { padding: 3px 6px; border-radius: 999px; background: #1d1d1f; color: #fff; font-size: .55rem; font-style: normal; text-transform: uppercase; }
.catalog-payment-method i { width: 18px; height: 18px; border: 1px solid #c7c7cc; border-radius: 50%; }
.catalog-payment-method:has(input:checked) i { border: 5px solid #1d1d1f; background: #fff; }
.catalog-checkout__notice { margin: 18px 0; padding: 13px 14px; border-radius: 14px; background: #f5f5f7; color: #505054; font-size: .74rem; line-height: 1.5; }
.catalog-checkout form > .button { width: 100%; }
.catalog-checkout__privacy { margin: 10px 0 0; color: #86868b; font-size: .65rem; text-align: center; }
.catalog-checkout__success { display: grid; min-height: 420px; align-content: center; justify-items: start; gap: 14px; }
.catalog-checkout__success > span { display: grid; width: 52px; height: 52px; place-items: center; border-radius: 50%; background: #1d1d1f; color: #fff; font-size: 1.5rem; }
.catalog-checkout__success h2 { margin: 0; }
.catalog-checkout__success > p:not(.eyebrow) { max-width: 42ch; margin: 0; color: #505054; line-height: 1.5; }
.catalog-checkout__success > div { display: grid; gap: 3px; padding: 13px 15px; border-radius: 14px; background: #f5f5f7; }
.catalog-checkout__success > div small { color: #6e6e73; }
.catalog-checkout__success > .button { min-width: 180px; margin-top: 4px; }

body:is([data-product-group="iphone-18-pro"], [data-product-group="iphone-18-pro-max"]) .product-group-visual { background: #f6f5f8; }
body:is([data-product-group="iphone-18-pro"], [data-product-group="iphone-18-pro-max"]) .product-group-visual img {
  mix-blend-mode: normal;
}

.product-media-stage { display: grid; min-height: min(650px, 58vw); place-items: center; overflow: hidden; border-radius: inherit; background: #fff; }
.product-group-page .product-group-visual { display: block; height: auto; min-height: 0; }
.product-media-stage picture { display: grid; width: 100%; height: 100%; place-items: center; }
.product-media-stage img { width: 100%; height: 100%; max-height: 650px; object-fit: contain; }
.product-media-thumbs { display: flex; gap: 9px; padding: 10px 2px 2px; overflow-x: auto; scrollbar-width: none; scroll-snap-type: x proximity; }
.product-media-thumbs::-webkit-scrollbar { display: none; }
.product-media-thumbs button { flex: 0 0 68px; width: 68px; height: 68px; padding: 3px; overflow: hidden; border: 1px solid #d2d2d7; border-radius: 14px; background: #fff; cursor: pointer; scroll-snap-align: start; }
.product-media-thumbs button[aria-pressed="true"] { border-color: #1d1d1f; box-shadow: inset 0 0 0 1px #1d1d1f; }
.product-media-thumbs img { width: 100%; height: 100%; object-fit: contain; border-radius: 10px; }
.product-reservation-note { margin: 8px 0 0; max-width: 36rem; color: #6e6e73; font-size: .92rem; line-height: 1.45; }
.product-listed-note{margin:8px 0 0;max-width:36rem;color:#6e6e73;font-size:.92rem;line-height:1.45}
.product-summary__actions .product-buy { width: 100%; }
.product-summary__help { justify-self: center; color: #6e6e73; font-size: .85rem; text-decoration: none; }
.product-summary__help:hover { color: #1d1d1f; }

@media (max-width: 820px) {
  .product-group-page .product-group-visual { height: auto; padding: 4px 14px 14px; }
  .product-media-stage { min-height: 330px; }
  .product-media-stage img { max-height: 430px; }
  .product-mobile-cta,
  .product-group-page .product-mobile-cta,
  .product-group-page .product-mobile-cta--no-add { grid-template-columns: minmax(0, 1fr) auto; }
  .product-mobile-cta__buy { min-height: 48px; padding: 0 22px; border: 0; border-radius: 14px; background: #1d1d1f; color: #fff; font-size: .95rem; font-weight: 700; }
}

@media (max-width: 520px) {
  .catalog-checkout { width: 100%; max-height: 94svh; margin: auto 0 0; border-radius: 26px 26px 0 0; }
  .catalog-checkout__card { max-height: 94svh; padding: 24px 18px calc(22px + env(safe-area-inset-bottom)); border-radius: 26px 26px 0 0; }
  .catalog-checkout__fields { grid-template-columns: 1fr 1fr; }
  .catalog-payment-methods { grid-template-columns: 1fr 1fr; gap: 7px; }
  .catalog-payment-method { min-height: 58px; padding: 8px 10px; }
  .catalog-payment-method strong { font-size: .77rem; }
  .catalog-payment-method em { display: block; width: fit-content; margin-top: 2px; }
  .catalog-checkout__product { grid-template-columns: 1fr; }
  .catalog-checkout__product b { grid-column: 1; grid-row: auto; }
}

@media (max-width: 350px) {
  .catalog-checkout__fields { grid-template-columns: 1fr; }
}

@media (max-width: 390px) {
  .product-group-page .product-mobile-cta--no-add { display: none; }
  .product-group-page .product-mobile-cta { grid-template-columns: minmax(0, 1fr) auto; }
  .product-group-page .product-mobile-cta__summary { display: block; }
}

@media (max-width: 820px) {
  .product-group-visual__pending { min-height: 238px; }
  .group-option > div { flex-wrap: wrap; overflow: visible; padding: 2px; }
  .group-option button { min-width: 118px; min-height: 58px; }
  .group-option--finish-preference > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); overflow: visible; padding: 2px; }
  .group-option--finish-preference button { min-width: 0; }
  .product-selected-summary { font-size: .76rem; }
}

/* Payment preference guide: preserve tap targets and avoid iPhone keyboard overflow. */
.catalog-payment-guidance{margin:11px 0 0;color:#565a63;font-size:.74rem;line-height:1.55}
.catalog-payment-method:has(input:focus-visible){outline:3px solid #79a7ec;outline-offset:2px}
.catalog-checkout__card{padding-bottom:max(24px,env(safe-area-inset-bottom))}
@media(max-width:440px){.catalog-payment-methods{grid-template-columns:minmax(0,1fr)}.catalog-payment-method{min-height:52px}.catalog-checkout__fields{grid-template-columns:minmax(0,1fr)}}


/* Retail-first editorial system — collection pages use the first viewport for
   decisions/products, not repeated SEO copy. Applied after historical styles. */
.seo-hero--retail {
  padding:clamp(24px,3.5vw,42px) 0 clamp(18px,2.6vw,30px);
  border-bottom:1px solid #ececef;
  background:#fff;
}
.seo-hero--retail .page-hero__grid {
  display:block;
  width:min(100% - 48px,1080px);
}
.seo-hero--retail .seo-hero__content {max-width:920px;}
.seo-hero--retail .breadcrumbs {
  margin:0 0 17px;
  font-size:.76rem;
  line-height:1.4;
}
.seo-hero--retail .eyebrow {
  margin:0 0 8px;
  font-size:.67rem;
  font-weight:750;
  letter-spacing:.08em;
}
.seo-hero--retail h1 {
  max-width:18ch;
  margin:0;
  font-size:clamp(2.12rem,4.6vw,3.55rem);
  line-height:1.06;
  letter-spacing:-.055em;
  font-weight:760;
  text-wrap:balance;
}
.seo-hero--retail .page-hero__lede {
  max-width:62ch;
  margin:12px 0 0;
  color:#62626a;
  font-size:clamp(.94rem,1.4vw,1.07rem);
  line-height:1.5;
  text-wrap:pretty;
}
.seo-hero__actions {
  display:flex;
  align-items:center;
  gap:15px 20px;
  flex-wrap:wrap;
  margin-top:19px;
}
.seo-hero__actions .button {
  min-height:44px;
  padding:11px 20px;
  border-radius:999px;
  font-size:.87rem;
}
.seo-hero__help {
  display:inline-flex;
  align-items:center;
  min-height:44px;
  gap:6px;
  color:#45454a;
  font-size:.83rem;
  font-weight:650;
  text-decoration:none;
}
.seo-hero__help:hover,.seo-hero__help:focus-visible {text-decoration:underline;text-underline-offset:4px;}
.seo-collection {padding-block:clamp(22px,3.5vw,42px);}
.seo-collection .section-heading {
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:10px 20px;
  margin-bottom:clamp(18px,2vw,26px);
}
.seo-collection .section-heading__copy {max-width:650px;}
.seo-collection .section-heading h2 {
  margin:0;
  font-size:clamp(1.5rem,2.8vw,2.3rem);
  line-height:1.14;
  letter-spacing:-.035em;
}
.seo-collection .section-heading__copy > p:last-child {
  margin:8px 0 0;
  font-size:.88rem;
  line-height:1.4;
  color:#6e6e73;
}
.seo-collection .section-heading .text-link {
  flex-shrink:0;
  min-height:44px;
  display:inline-flex;
  align-items:center;
  font-size:.83rem;
}
.seo-collection__details {
  margin:24px 0 0;
  padding:0;
  border-top:1px solid #e8e8ec;
}
.seo-collection__details summary {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  width:100%;
  min-height:50px;
  padding:14px 1px 10px;
  cursor:pointer;
  list-style:none;
  font-size:.84rem;
  font-weight:690;
  color:#55555c;
}
.seo-collection__details summary::-webkit-details-marker {display:none;}
.seo-collection__details[open] summary span {transform:rotate(45deg);}
.seo-collection__details summary span {transition:transform .18s ease;}
.seo-collection__details > p {
  max-width:78ch;
  margin:0 0 14px;
  font-size:.85rem;
  line-height:1.65;
  color:#64646c;
}
.seo-collection__details summary:focus-visible {outline:2px solid #0071e3;outline-offset:3px;border-radius:6px;}

/* Product tiles remain readable and tappable down to 320px. */
.seo-collection .product-grid {gap:clamp(10px,1.6vw,20px);}
.seo-collection .product-card {min-width:0;overflow:hidden;}
.seo-collection .product-card__body {min-width:0;}
.seo-collection .product-card__view {min-height:44px;display:inline-flex;align-items:center;}
.seo-collection .product-card h3 {overflow-wrap:anywhere;}
.seo-local-proof {align-items:center;}
.seo-local-proof h2 {font-size:clamp(1.45rem,2.5vw,2.5rem);letter-spacing:-.03em;}

/* The mobile search icon must look tappable before the full-screen sheet
   from PR #26 opens; do not rely on an invisible input expanding in the header. */
@media(max-width:820px) {
  .site-header .header-search {height:44px;}
  .site-header .header-search button[type="submit"] {
    width:44px;height:44px;
    display:grid;place-items:center;
    border-radius:13px;
    background:#f5f5f7;
    color:#1d1d1f;
    -webkit-tap-highlight-color:transparent;
    touch-action:manipulation;
  }
  .site-header .header-search button[type="submit"]:active {background:#e8e8ed;transform:scale(.96);}
  .seo-hero--retail {padding:20px 0 20px;}
  .seo-hero--retail .page-hero__grid {width:min(100% - 36px,1080px);}
  .seo-hero--retail .breadcrumbs {margin:0 0 12px;font-size:.72rem;}
  .seo-hero--retail .eyebrow {font-size:.65rem;margin-bottom:7px;}
  .seo-hero--retail h1 {
    max-width:22ch;
    font-size:clamp(1.95rem,8.4vw,2.55rem);
    line-height:1.06;
    letter-spacing:-.05em;
  }
  .seo-hero--retail .page-hero__lede {margin-top:9px;font-size:.93rem;line-height:1.48;}
  .seo-hero__actions {gap:6px 13px;margin-top:13px;}
  .seo-hero__actions .button {min-height:44px;padding:11px 17px;font-size:.82rem;}
  .seo-hero__help {font-size:.78rem;}
  .seo-collection {padding-block:20px 24px;}
  .seo-collection .section-heading {margin-bottom:16px;align-items:start;}
  .seo-collection .section-heading h2 {font-size:clamp(1.45rem,6vw,1.9rem);}
  .seo-collection .section-heading__copy > p:last-child {font-size:.83rem;}
  .seo-collection .section-heading > .text-link {display:none;}
  .seo-collection .product-grid {gap:10px;}
}
@media(max-width:359px) {
  .seo-hero--retail .page-hero__grid {width:calc(100% - 28px);}
  .seo-hero__help {font-size:.76rem;}
  .seo-collection .product-grid {grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;}
  .seo-collection .product-card__body {padding-inline:10px;}
}
@media(prefers-reduced-motion:reduce) {
  .seo-collection__details summary span {transition:none;}
}


/* Shop index desktop: one decisive headline, filters immediately below. */
.catalog-page .page-hero--catalog-retail {
  display:block;
  padding:clamp(24px,3.1vw,40px) 0 clamp(18px,2.2vw,26px);
  background:#fff;
}
.catalog-page .page-hero--catalog-retail .page-hero__grid {
  align-items:center;
  grid-template-columns:minmax(0,1fr) minmax(230px,.55fr);
  gap:clamp(20px,4vw,54px);
}
.catalog-page .page-hero--catalog-retail h1 {
  max-width:18ch;
  margin:8px 0;
  font-size:clamp(2.1rem,4vw,3.35rem);
  line-height:1.04;
  letter-spacing:-.052em;
}
.catalog-page .page-hero--catalog-retail .page-hero__lede {
  max-width:56ch;
  font-size:.98rem;
  line-height:1.5;
}
.catalog-page .page-hero--catalog-retail .page-hero__aside {
  padding:16px 20px;
  background:#f5f5f7;
  border-radius:17px;
}
@media(max-width:820px) {
  .catalog-page .page-hero--catalog-retail {display:none;}
}


/* Same-day delivery: only shown after recent, authorized POS + dispatch checks.
   Never use CSS to manufacture a stock/ETA promise. */
.product-card__media {position:relative;}
.stock-fulfilment-chip {
  position:absolute;
  z-index:4;
  top:10px;
  left:10px;
  display:inline-flex;
  align-items:center;
  gap:5px;
  max-width:calc(100% - 20px);
  min-height:26px;
  padding:5px 9px;
  border:1px solid rgb(0 0 0 / 6%);
  border-radius:999px;
  background:rgb(255 255 255 / 96%);
  box-shadow:0 2px 9px rgb(0 0 0 / 6%);
  color:#1d1d1f;
  font-size:10px;
  font-weight:700;
  line-height:1.25;
  letter-spacing:-.005em;
  white-space:nowrap;
  pointer-events:none;
}
.stock-fulfilment-chip::before {
  display:inline-block;
  width:14px;
  height:14px;
  flex:0 0 14px;
  content:"";
  background:currentColor;
  -webkit-mask:url("/ui/icons/service-trust/delivery.svg") center / contain no-repeat;
  mask:url("/ui/icons/service-trust/delivery.svg") center / contain no-repeat;
}
.stock-fulfilment-chip[data-status="in-store"] {color:#4b4b51;}
.stock-fulfilment-chip[data-status="in-store"]::before {
  -webkit-mask:url("/ui/icons/service-trust/store.svg") center / contain no-repeat;
  mask:url("/ui/icons/service-trust/store.svg") center / contain no-repeat;
}
.stock-fulfilment-detail {
  display:block;
  width:fit-content;
  max-width:100%;
  margin:9px 0 13px;
  padding:9px 12px;
  border:1px solid #e3e3e8;
  border-radius:12px;
  background:#f7f7f9;
  color:#414149;
  font-size:12px;
  font-weight:625;
  line-height:1.45;
  letter-spacing:-.01em;
  overflow-wrap:anywhere;
}
.stock-fulfilment-detail[data-status="today"] {border-color:#d5e5d7;background:#f4f8f4;}
@media(max-width:820px) {
  .stock-fulfilment-chip {top:7px;left:7px;min-height:25px;padding:5px 7px;font-size:9.5px;}
  .stock-fulfilment-detail {font-size:11.5px;margin:8px 0 12px;}
}
@media(max-width:359px) {
  .stock-fulfilment-chip {gap:3px;font-size:9px;top:6px;left:5px;padding:4px 5px;}
  .stock-fulfilment-chip::before {width:12px;height:12px;flex-basis:12px;}
}
.mac-config { display: grid; gap: 12px; margin-top: 8px; }
.mac-config label { display: grid; gap: 6px; font-size: .82rem; font-weight: 650; }
.mac-config input {
  width: 100%;
  box-sizing: border-box;
  min-height: 52px;
  padding: 0 14px;
  border: 1px solid #d2d2d7;
  border-radius: 14px;
  background: #fff;
  font: inherit;
  font-size: 16px;
  font-weight: 500;
}
