/* Customizer — sits inside existing PDP / collection template */

/* Canvas inset = breathing room so the full watch (strap included) stays visible */
[data-wm-customizer] .pdp-gallery__item:has(.pdp-cz-canvas),
[data-wm-customizer] .pdp-gallery__item:first-child {
  background: var(--color-media, #d9d9d9);
  overflow: hidden;
}

.pdp-cz-canvas {
  position: absolute;
  inset: 0;
  width: auto;
  height: auto;
  box-sizing: border-box;
  background: transparent;
}

[data-wm-customizer] .pdp-gallery__item .pdp-cz-canvas img,
[data-wm-customizer] .pdp-cz-canvas img,
.pdp-cz-canvas img {
  position: absolute !important;
  top: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  left: 0 !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  inline-size: 100% !important;
  block-size: 100% !important;
  max-width: none !important;
  max-height: none !important;
  object-fit: contain !important;
  object-position: center center !important;
  pointer-events: none !important;
  user-select: none;
  transition: opacity 0.25s ease;
  filter: none !important;
  cursor: default !important;
  transform: none !important;
}

.pdp-cz-canvas img.is-swapping {
  opacity: 0;
}

.pdp-cz-steps {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2, 0.8rem);
  margin-block: var(--space-4, 1.6rem) var(--space-3, 1.2rem);
}

.pdp-cz-steps .pdp-tab {
  border: 1px solid var(--color-border, color-mix(in srgb, var(--color-ink) 15%, transparent));
  padding: 0.6rem 1.2rem;
  cursor: pointer;
  background: transparent;
}

/* Force optional bracelet onto the next flex row (same chip size as others) */
.pdp-cz-steps__break {
  flex: 1 0 100%;
  width: 100%;
  height: 0;
  margin: 0;
  padding: 0;
  overflow: hidden;
  pointer-events: none;
}

.pdp-cz-steps .pdp-tab--optional {
  flex: 0 0 auto;
}

.pdp-cz-steps .pdp-tab.is-active,
.pdp-cz-steps .pdp-tab[aria-current="true"] {
  background: var(--color-ink, #000);
  color: var(--color-bg, #fff);
  border-color: var(--color-ink, #000);
}

.pdp-cz-steps .pdp-tab.is-done {
  border-color: var(--color-ink, #000);
}

.pdp-cz-steps .pdp-tab.is-locked,
.pdp-cz-steps .pdp-tab:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

/* Step wizard: choose option → Suivant */
.pdp-cz-nav {
  display: grid;
  gap: var(--space-3, 1.2rem);
  margin-block: var(--space-4, 1.6rem) var(--space-2, 0.8rem);
}

.pdp-cz-progress {
  margin: 0;
  color: var(--color-ink-50, #777);
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.pdp-cz-nav__actions {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.4fr);
  gap: var(--space-2, 0.8rem);
  align-items: stretch;
}

/* Précédent = same visual language as Galerie (pdp-tab) */
.pdp-cz-nav__prev.pdp-tab {
  flex: 1 1 auto;
  width: 100%;
  min-inline-size: 0;
  block-size: auto;
  min-height: 3.9rem;
  border: 0;
  cursor: pointer;
  font: inherit;
}

.pdp-cz-nav__actions .btn:disabled,
.pdp-cz-nav__prev:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}

.pdp-cz-nav__prev[disabled] {
  visibility: hidden;
}

/* Suivant / ATC = Collection-style primary (btn + dot + labels) */
.pdp-cz-nav__next.btn {
  min-height: 3.9rem;
  align-items: center;
}

.pdp-cz-nav__next [data-cz-next-price]:empty {
  display: none;
}

/* Hide ATC until last step (wizard) */
[data-wm-customizer].is-cz-wizard .pdp-buy:not(.is-cz-ready),
[data-wm-customizer].is-cz-wizard .pdp-stickybar-section:not(.is-cz-ready) {
  display: none !important;
}

.pdp-cz-swatches {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--space-2, 0.8rem);
  max-height: 36vh;
  overflow: auto;
  padding-block-end: var(--space-2, 0.8rem);
  scrollbar-width: thin;
}

.pdp-cz-swatches .pdp-swatch {
  display: block;
  width: 100%;
  border: 1px solid transparent;
  background: var(--color-media, #d9d9d9);
  cursor: pointer;
  padding: 0;
  aspect-ratio: 1;
  overflow: hidden;
}

.pdp-cz-swatches .pdp-swatch img {
  position: static !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
  display: block;
  cursor: pointer !important;
}

.pdp-cz-swatches .pdp-swatch.is-active,
.pdp-cz-swatches .pdp-swatch[aria-current="true"] {
  border-color: var(--color-ink, #000);
}

.pdp-cz-swatches .pdp-swatch--none {
  display: grid;
  place-items: center;
  font-family: var(--font-mono, monospace);
  font-size: var(--fs-eyebrow, 1.1rem);
  text-transform: uppercase;
  color: var(--color-ink-50, #777);
  border-style: dashed;
  border-color: var(--color-border, #ccc);
  aspect-ratio: auto;
  min-height: 5.6rem;
  grid-column: 1 / -1;
}

.pdp-cz-summary {
  margin-block-start: var(--space-4, 1.6rem);
  display: grid;
  gap: 0.6rem;
}

.pdp-cz-summary__row {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  font-size: var(--fs-body, 1.4rem);
}

.pdp-cz-summary__row dt {
  color: var(--color-ink-50, #777);
}

.pdp-cz-summary__row dd {
  margin: 0;
  text-align: right;
}

/* Stacked steps (used on mobile; desktop keeps tabs) */
.pdp-cz-stack {
  display: none;
  flex-direction: column;
  gap: var(--space-5, 2.4rem);
}

.pdp-cz-stack__step {
  display: flex;
  flex-direction: column;
  gap: var(--space-3, 1.2rem);
}

.pdp-cz-stack__title {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 1rem;
  font-family: var(--font-mono, monospace);
  font-size: var(--fs-eyebrow, 1.1rem);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.pdp-cz-stack__title span:last-child {
  color: var(--color-ink-50, #777);
  text-transform: none;
  letter-spacing: 0;
  font-family: var(--font-sans, system-ui, sans-serif);
  font-size: var(--fs-body, 1.4rem);
}

/* Floating CTA — mobile primary action above everything */
.pdp-cz-float {
  display: none;
}

/* —— Product details / specs —— */
.wm-product-details {
  border-block-start: 1px solid color-mix(in srgb, var(--color-ink, #000) 10%, transparent);
  background: var(--color-bg, #fff);
}

.wm-product-details__inner {
  max-width: 72rem;
  margin-inline: auto;
  padding-block: clamp(3.2rem, 6vw, 5.6rem);
  padding-inline: var(--page-margin, 1.6rem);
}

.wm-product-details__eyebrow {
  margin: 0 0 0.8rem;
  font-family: var(--font-mono, monospace);
  font-size: var(--fs-eyebrow, 1.1rem);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-ink-50, #777);
}

.wm-product-details__title {
  margin: 0 0 2.4rem;
  font-size: clamp(2.2rem, 4vw, 3.2rem);
  letter-spacing: -0.02em;
}

.wm-specs {
  margin: 0;
  border-block-start: 1px solid color-mix(in srgb, var(--color-ink, #000) 12%, transparent);
}

.wm-specs__row {
  display: grid;
  grid-template-columns: minmax(12rem, 0.42fr) 1fr;
  gap: 1.2rem 2rem;
  padding-block: 1.4rem;
  border-block-end: 1px solid color-mix(in srgb, var(--color-ink, #000) 10%, transparent);
  align-items: baseline;
}

.wm-specs__row dt {
  margin: 0;
  font-family: var(--font-mono, monospace);
  font-size: var(--fs-eyebrow, 1.1rem);
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--color-ink-50, #666);
}

.wm-specs__row dd {
  margin: 0;
  font-size: var(--fs-body, 1.4rem);
  line-height: 1.45;
  color: var(--color-ink, #111);
}

.wm-product-details__faq-title {
  margin: 4rem 0 1.6rem;
  font-size: clamp(2rem, 3.5vw, 2.8rem);
  letter-spacing: -0.02em;
}

.wm-product-details__links {
  margin-block-start: 2.4rem;
  color: var(--color-ink-50, #666);
}

.wm-product-details__links a {
  text-decoration: underline;
  text-underline-offset: 0.2em;
}

@media (max-width: 767px) {
  .wm-specs__row {
    grid-template-columns: 1fr;
    gap: 0.4rem;
    padding-block: 1.2rem;
  }
}

/* —— Mobile —— */
@media (max-width: 767px) {
  /* Tighter page gutters so sections match the full-bleed watch */
  [data-wm-customizer] .pdp__layout.container {
    padding-inline: 1.2rem !important;
  }

  /* True square = 100vw height matching full-bleed width */
  [data-wm-customizer] .pdp-gallery__item:first-child {
    aspect-ratio: auto !important;
    width: 100vw !important;
    max-width: 100vw !important;
    margin-inline: calc(50% - 50vw) !important;
    height: 100vw !important;
    min-height: 100vw !important;
    max-height: 100vw !important;
    /* Clear fixed header without a large empty white band */
    margin-block-start: calc(max(env(safe-area-inset-top), 0px) + 6.4rem);
    padding: 0 !important;
    overflow: hidden !important;
    background: var(--color-media, #d9d9d9);
  }

  [data-wm-customizer] .pdp-cz-canvas {
    position: absolute;
    inset: 0;
    width: auto;
    height: auto;
  }

  /* Compact option grids — one step at a time */
  [data-wm-customizer] .pdp-cz-swatches {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--space-1, 0.4rem);
    max-height: none;
    overflow: visible;
  }

  /* Hide lifestyle second image + theme gallery tab on customizer */
  [data-wm-customizer] .pdp-gallery__item:not(:first-child) {
    display: none !important;
  }

  [data-wm-customizer] .pdp__layout > .pdp-tabs {
    display: none !important;
  }

  /* Wizard: steps wrap — optional bracelet on its own line (no horizontal clip) */
  [data-wm-customizer] .pdp-cz-steps {
    display: flex !important;
    flex-wrap: wrap;
    overflow-x: visible;
    gap: var(--space-1, 0.4rem);
    margin-block: 1.2rem 0.4rem;
  }

  [data-wm-customizer] .pdp-cz-steps .pdp-tab {
    flex: 0 0 auto;
    padding: 0.5rem 0.9rem;
    font-size: var(--fs-eyebrow, 1.1rem);
    white-space: nowrap;
  }

  [data-wm-customizer] .pdp-cz-steps .pdp-tab--optional {
    flex: 0 0 auto;
    white-space: nowrap;
  }

  /* Theme hides panel buy on mobile — show ours on last step */
  [data-wm-customizer] .pdp-panel > .pdp-buy.is-cz-ready {
    display: flex !important;
    flex-direction: column;
    gap: var(--space-3, 1.2rem);
  }

  /* One step at a time on mobile too */
  [data-wm-customizer] .pdp-cz-single {
    display: none !important;
  }

  [data-wm-customizer] .pdp-cz-stack {
    display: flex;
  }

  /* Panel: info → current step → nav → ATC (last) */
  [data-wm-customizer] .pdp-panel {
    margin-block: 1.2rem 0 !important;
    margin-inline: 0 !important;
    padding-block-end: calc(7.2rem + env(safe-area-inset-bottom, 0px)) !important;
    display: flex;
    flex-direction: column;
    gap: 1rem !important;
    min-block-size: 0 !important;
  }

  [data-wm-customizer] .pdp-panel > .pdp-card {
    order: 1;
    padding: 1rem 1rem 1.2rem !important;
  }

  [data-wm-customizer] .pdp-panel .pdp-detail > .t-body {
    margin-block-end: 0.8rem !important;
    max-width: none;
  }

  [data-wm-customizer] .pdp-cz-options-block {
    order: 2;
    padding: 1rem !important;
  }

  [data-wm-customizer] .pdp-cz-nav {
    order: 3;
  }

  /* Actions live in the floating dock on mobile (stickybar-style) */
  [data-wm-customizer] .pdp-cz-nav__actions {
    display: none !important;
  }

  [data-wm-customizer] .pdp-panel > .pdp-buy {
    order: 4;
    margin-block-start: var(--space-3, 1.2rem);
    padding: 1rem !important;
  }

  /* Sticky bar duplicates ATC — hide on mobile */
  [data-wm-customizer] .pdp-stickybar-section,
  [data-wm-customizer] .pdp-stickybar {
    display: none !important;
  }

  /* Floating dock — same language as Submariner stickybar (Galerie + Collection) */
  .pdp-cz-float {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    position: fixed;
    z-index: 9999;
    left: var(--page-margin, 1.2rem);
    right: var(--page-margin, 1.2rem);
    bottom: calc(1.2rem + env(safe-area-inset-bottom, 0px));
    align-items: center;
    gap: var(--space-2, 0.8rem);
    padding: 0.4rem;
    background-color: var(--color-glass-60, color-mix(in srgb, #fff 60%, transparent));
    -webkit-backdrop-filter: blur(var(--blur-glass, 16px));
    backdrop-filter: blur(var(--blur-glass, 16px));
    border-radius: var(--radius-md, 1.2rem);
    border: 0;
    box-shadow: none;
  }

  .pdp-cz-float__prev.pdp-tab {
    flex: 0 0 auto;
    inline-size: 10.4rem;
    max-inline-size: 36vw;
    block-size: 3.9rem;
    min-height: 3.9rem;
    border: 0;
    cursor: pointer;
    font: inherit;
    background-color: var(--color-white, #fff);
    color: var(--color-ink, #000);
  }

  .pdp-cz-float__prev.pdp-tab:hover {
    background-color: var(--color-ink, #000);
    color: var(--color-white, #fff);
  }

  .pdp-cz-float__prev[disabled] {
    opacity: 0.35;
    pointer-events: none;
    visibility: hidden;
  }

  .pdp-cz-float__next.btn {
    justify-self: stretch;
    width: 100%;
    min-height: 3.9rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-2, 0.8rem);
  }

  .pdp-cz-float__next[disabled] {
    opacity: 0.45;
    pointer-events: none;
  }

  .pdp-cz-float__next [data-cz-float-price]:empty {
    display: none;
  }
}

@media (min-width: 768px) {
  /* Hide mobile stack block entirely (avoids duplicate summary + dead space) */
  .pdp-cz-options-block {
    display: none !important;
  }

  .pdp-cz-stack {
    display: none !important;
  }

  .pdp-cz-single {
    display: block;
  }

  /* Keep wizard nav visible under swatches on desktop */
  .pdp-cz-single .pdp-cz-nav {
    display: grid;
  }

  .pdp-cz-float {
    display: none !important;
  }

  /* Desktop: no Photoroom twin under canvas, no Galerie tab / sticky ATC under media */
  [data-wm-customizer] .pdp-gallery__item:not(:first-child),
  [data-wm-customizer] .pdp__layout > .pdp-tabs,
  [data-wm-customizer] .pdp-stickybar-section,
  [data-wm-customizer] .pdp-stickybar {
    display: none !important;
  }
}

/* Only show summary once — inside the visible options host */
[data-wm-customizer].is-cz-wizard .pdp-cz-summary {
  margin-block-start: var(--space-3, 1.2rem);
}
