/* Universal Ateliê Ótico PDP: thumbnail rail, stacked product photography, sticky commerce panel. */
html,
body {
  overflow-x: clip !important;
  overflow-y: visible !important;
}

.product-page {
  position: relative !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(360px, 410px) !important;
  align-items: start !important;
  gap: clamp(28px, 2.8vw, 54px) !important;
  width: min(100%, 1780px) !important;
  max-width: 1780px !important;
  margin: 0 auto !important;
  padding: 24px clamp(18px, 3vw, 54px) 88px !important;
  overflow: visible !important;
}

.product-gallery.pdp-gallery-stacked {
  grid-column: 1 !important;
  display: grid !important;
  grid-template-columns: 88px minmax(0, 1fr) !important;
  align-items: start !important;
  gap: 14px !important;
  min-width: 0;
  background: transparent !important;
  overflow: visible !important;
  contain: none !important;
}

/* Native sticky keeps a single-photo gallery inside its own grid column and
 * stops automatically at the bottom of the product information container. */
.product-gallery.pdp-gallery-stacked.has-single-image {
  position: sticky !important;
  top: 126px !important;
  align-self: start !important;
  left: auto !important;
  width: auto !important;
  max-width: 100% !important;
  z-index: 1;
}

.product-gallery.pdp-gallery-stacked.has-single-image .pdp-thumb-rail,
.product-gallery.pdp-gallery-stacked.has-single-image .pdp-image-stack {
  position: static !important;
  top: auto !important;
}

.product-gallery.pdp-gallery-stacked.has-single-image.is-single-fixed {
  position: sticky !important;
  top: 126px !important;
  left: auto !important;
  width: auto !important;
  max-width: 100% !important;
  z-index: 1;
}

.product-gallery.pdp-gallery-stacked.has-single-image.is-single-ended {
  position: sticky !important;
  top: 126px !important;
  left: auto !important;
  width: auto !important;
  max-width: 100% !important;
  z-index: 1;
}

.product-gallery.pdp-gallery-stacked.has-single-image + .product-info {
  position: static !important;
  top: auto !important;
}

.pdp-gallery-stacked .pdp-thumb-rail {
  position: sticky !important;
  top: 126px !important;
  z-index: 2;
  align-self: start;
  display: grid;
  gap: 10px;
  width: 88px;
  max-height: calc(100vh - 148px);
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: none;
}
.pdp-gallery-stacked .pdp-thumb-rail::-webkit-scrollbar { display: none; }

.pdp-gallery-stacked .pdp-thumb {
  display: flex;
  width: 88px;
  height: 74px;
  align-items: center;
  justify-content: center;
  padding: 5px;
  border: 1px solid rgba(17, 17, 17, .16);
  border-radius: 0;
  background: #fff;
  color: #111;
  cursor: pointer;
  transition: border-color .18s ease, background-color .18s ease;
}

.pdp-gallery-stacked .pdp-thumb:hover,
.pdp-gallery-stacked .pdp-thumb:focus-visible,
.pdp-gallery-stacked .pdp-thumb.is-active {
  background: #fff;
  border-color: rgba(17, 17, 17, .42);
  outline: none;
}

.pdp-gallery-stacked .pdp-thumb img {
  width: 100% !important;
  height: 100% !important;
  max-height: none !important;
  padding: 0 !important;
  object-fit: contain !important;
  mix-blend-mode: normal !important;
  filter: none !important;
}

.pdp-image-stack {
  display: grid;
  gap: 12px;
  min-width: 0;
}

.pdp-image-stage {
  display: flex !important;
  width: 100% !important;
  min-height: 0 !important;
  aspect-ratio: 16 / 10 !important;
  align-items: center !important;
  justify-content: center !important;
  overflow: hidden !important;
  border: 1px solid rgba(17, 17, 17, .24) !important;
  border-radius: 0 !important;
  background: #fff !important;
  cursor: zoom-in;
  scroll-margin-top: 122px;
}
.pdp-image-stage.is-active { border-color: rgba(17, 17, 17, .38) !important; }

.pdp-image-stage img {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  width: 100% !important;
  height: 100% !important;
  max-width: 100% !important;
  max-height: 100% !important;
  padding: clamp(10px, 1.5vw, 24px) !important;
  object-fit: contain !important;
  mix-blend-mode: normal !important;
  filter: none !important;
  transform: scale(var(--pdp-hover-scale, 1)) !important;
  transform-origin: var(--pdp-hover-x, 50%) var(--pdp-hover-y, 50%) !important;
  transition: transform .16s cubic-bezier(.2, .7, .2, 1) !important;
  pointer-events: none;
}
.pdp-image-stage.is-hover-zoom { cursor: crosshair; }
.pdp-image-stage.is-hover-zoom img { transition-duration: .06s !important; }

.product-info {
  grid-column: 2 !important;
  position: sticky !important;
  top: 126px !important;
  align-self: start !important;
  min-width: 0;
  max-height: none !important;
  overflow: visible !important;
  padding: 4px 4px 28px 0 !important;
  background: #fff !important;
  isolation: isolate;
  z-index: 4;
}

.product-info .breadcrumbs { margin: 0 0 20px; color: #666; font-size: 10px; letter-spacing: .1em; }
.product-info h1 { margin: 0 0 10px !important; font-size: clamp(31px, 2.7vw, 47px) !important; font-weight: 500 !important; line-height: 1.03 !important; letter-spacing: -.045em !important; }
.product-info .product-type { margin: 0 0 20px; color: #555; font-size: 13px; }
.product-info .product-price { margin: 18px 0 24px !important; font-size: 25px !important; font-weight: 500; letter-spacing: -.025em; }
.product-color-section { margin: 24px 0 !important; padding: 20px 0 !important; border-top: 1px solid #d8d8d8; border-bottom: 1px solid #d8d8d8; }
.product-color-swatches.has-image-variants { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px !important; margin-top: 12px; }
.color-variant-card { position: relative; display: grid; grid-template-rows: 62px auto; gap: 6px; min-width: 0; padding: 5px; border: 1px solid #e4e4e4; background: #fff; color: #111; text-decoration: none; }
.color-variant-card:hover,
.color-variant-card:focus-visible,
.color-variant-card.is-active { border-color: #111; outline: none; }
.color-variant-card img { width: 100% !important; height: 62px !important; object-fit: contain !important; background: #fff !important; }
.color-variant-card span { overflow: hidden; color: #333; font-size: 9px; line-height: 1.25; text-align: center; text-overflow: ellipsis; white-space: nowrap; }
.add-cart { min-height: 56px !important; border: 1px solid #111 !important; background: #111 !important; color: #fff !important; font-size: 11px !important; font-weight: 600 !important; letter-spacing: .11em !important; }
.add-cart:hover { background: #fff !important; color: #111 !important; }
.product-editorial-description { margin-top: 28px !important; }
.product-editorial-description > p { max-width: none !important; font-size: 14px; line-height: 1.7; }
.verified-catalog-facts { margin-top: 24px !important; }
.verified-catalog-facts > div { min-height: 46px !important; padding: 9px 0 !important; }
.product-details-popovers { margin-top: 30px !important; border-bottom: 1px solid #e5e5e5; }
.product-details-popovers details { padding: 0 !important; border-top: 1px solid #e5e5e5 !important; }
.product-details-popovers summary { position: relative; padding: 21px 42px 21px 0 !important; color: #333; font-size: 16px !important; font-weight: 500; line-height: 1.35; letter-spacing: 0 !important; list-style: none; cursor: pointer; }
.product-details-popovers summary::-webkit-details-marker { display: none; }
.product-details-popovers summary::after { content: ""; position: absolute; right: 5px; top: 50%; width: 9px; height: 9px; border-right: 2px solid #111; border-bottom: 2px solid #111; transform: translateY(-70%) rotate(45deg); transition: transform .18s ease; }
.product-details-popovers details[open] summary::after { transform: translateY(-25%) rotate(225deg); }
.product-details-popovers details > p { margin: 0 !important; padding: 0 36px 22px 0 !important; color: #555; font-size: 14px; line-height: 1.65; }

@media (max-width: 1040px) {
  .product-page { grid-template-columns: minmax(0, 1fr) !important; gap: 34px !important; }
  .product-gallery.pdp-gallery-stacked.has-single-image { position: static !important; top: auto !important; }
  .product-gallery.pdp-gallery-stacked.has-single-image.is-single-fixed,
  .product-gallery.pdp-gallery-stacked.has-single-image.is-single-ended { position: static !important; width: auto !important; }
  .product-info { grid-column: 1 !important; }
  .product-info { position: static !important; top: auto !important; max-height: none; overflow: visible; }
}

@media (max-width: 680px) {
  .product-page { padding: 16px 14px 62px !important; }
  .product-gallery.pdp-gallery-stacked { grid-template-columns: minmax(0, 1fr) !important; }
  .pdp-gallery-stacked .pdp-thumb-rail { position: static !important; grid-row: 2; display: flex; width: 100%; overflow-x: auto; padding: 1px; }
  .pdp-gallery-stacked .pdp-thumb { flex: 0 0 82px; width: 82px; height: 66px; }
  .pdp-image-stack { grid-row: 1; }
  .pdp-image-stage { min-height: 0 !important; aspect-ratio: 4 / 3 !important; scroll-margin-top: 92px; }
  .pdp-image-stage img { max-width: 100% !important; padding: 16px !important; transform: none !important; }
  .product-info h1 { font-size: 31px !important; }
  .product-color-swatches.has-image-variants { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
