.product-redesign .editorial-header { position: absolute; }

.product-redesign .product {
  width: min(100%, 1440px);
  max-width: 1440px;
  padding: 136px var(--content-gutter) 140px;
  gap: clamp(56px, 6vw, 96px);
}

.product-redesign .product-panel {
  max-width: 460px;
  color: var(--text);
}

.product-redesign .product-title {
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(42px, 3.35vw, 58px);
  font-weight: 400;
  line-height: 0.95;
}

.product-redesign .product-price {
  color: var(--text);
  font-size: 20px;
}

.product-redesign .panel-label {
  color: #5f5852;
  font-size: 14px;
  letter-spacing: 0;
}

.product-redesign .size-grid {
  --choice-gap: 10px;
  --size-btn-width: 96px;
}

.product-redesign .size-btn {
  min-height: 46px;
  border-color: rgba(39, 39, 39, 0.65);
  color: var(--text);
  font-size: 15px;
}

.product-redesign .size-btn.active {
  background: var(--text);
  border-color: var(--text);
  color: #fff;
  font-weight: 600;
}

.product-redesign .size-btn.active:hover {
  color: #fff;
}

.product-redesign .size-btn:focus-visible,
.product-redesign .color-btn:focus-visible,
.product-redesign .tab:focus-visible,
.product-redesign .btn-request:focus-visible {
  outline: 1px solid var(--text);
  outline-offset: 5px;
}

.product-redesign .color-btn {
  border-color: rgba(39, 39, 39, 0.65);
}

.product-redesign .btn-request {
  min-height: 60px;
  display: grid;
  place-items: center;
  padding: 0 24px;
  border-color: var(--text);
  background: var(--text);
  font-size: 14px;
  transition: color 220ms ease, background-color 220ms ease, box-shadow 220ms ease, transform 220ms ease;
}

@media (hover: hover) and (pointer: fine) {
  .product-redesign .btn-request:hover {
    color: var(--text);
    background: transparent;
    box-shadow: inset 0 0 0 1px var(--text);
    transform: translateY(-1px);
  }
}

.product-redesign .product-gallery,
.product-redesign .product-gallery img { background: #f8f7f5; }

.product-redesign .product-gallery-counter,
.product-redesign .mobile-product-cta {
  display: none;
}

.product-redesign .tab {
  color: #5f5852;
  font-size: 14px;
}

.product-redesign .tab.active {
  color: var(--text);
  border-bottom-color: var(--text);
}

.product-redesign .tab-content,
.product-redesign .panel-description,
.product-redesign .preorder-note {
  color: #4f4944;
  font-size: 17px;
  line-height: 1.68;
}

@media (max-width: 820px) {
  .product-redesign .product {
    width: 100%;
    padding: 86px 0 132px;
    gap: 22px;
  }

  .product-redesign .product-media {
    width: 100%;
    padding: 0 16px;
  }

  .product-redesign .product-gallery {
    height: clamp(500px, 70svh, 640px);
    position: relative;
    background: #f8f7f5;
  }

  .product-redesign .product-gallery::after {
    content: none;
  }

  .product-redesign .product-gallery img {
    height: 100%;
    object-fit: contain;
  }

  .product-redesign .product-gallery-counter {
    display: block;
    margin-top: 10px;
    color: #5f5852;
    font-size: 13px;
    text-align: center;
  }

  .product-redesign .product-gallery-counter[hidden] {
    display: none;
  }

  .product-redesign .product-panel {
    width: 100%;
    max-width: none;
    padding: 0 22px;
    gap: 18px;
  }

  .product-redesign .product-title {
    max-width: 14ch;
    font-size: 42px;
    margin: 0;
  }

  .product-redesign .product-price {
    margin-top: -6px;
  }

  .product-redesign .panel-block {
    gap: 10px;
  }

  .product-redesign .size-grid {
    width: 100%;
  }

  .product-redesign .size-btn {
    flex: 1 1 0;
    width: auto;
  }

  .product-redesign .panel-block.needs-selection .panel-label {
    color: var(--text);
  }

  .product-redesign .panel-block.needs-selection .size-btn {
    animation: sizeChoicePulse 900ms ease both;
  }

  .product-redesign .btn-request {
    min-height: 62px;
    margin-top: 0;
    font-size: 15px;
  }

  .product-redesign .btn-request.is-disabled {
    opacity: 0.58;
  }

  .product-redesign .panel-tabs {
    gap: 22px;
    margin-top: 28px;
  }

  .product-redesign .tab {
    padding-bottom: 8px;
    font-size: 15px;
    color: #6a625c;
  }

  .product-redesign .tab.active {
    color: var(--text);
    border-bottom-width: 1px;
  }

  .product-redesign .tab-content,
  .product-redesign .panel-description,
  .product-redesign .preorder-note {
    color: #4a443f;
    font-size: 18px;
    line-height: 1.72;
  }

  .product-redesign .editorial-footer {
    display: none;
  }

  .product-redesign .mobile-product-cta {
    position: fixed;
    right: 14px;
    bottom: calc(46px + env(safe-area-inset-bottom));
    left: 14px;
    z-index: 80;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 12px;
    border: 1px solid rgba(39, 39, 39, 0.18);
    background: rgba(244, 242, 240, 0.94);
    box-shadow: 0 18px 52px rgba(55, 48, 42, 0.16);
    opacity: 0;
    pointer-events: none;
    transform: translateY(18px);
    transition: opacity 220ms ease, transform 220ms ease;
    backdrop-filter: blur(16px);
  }

  body.product-redesign.has-selected-size .mobile-product-cta {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0);
  }

  .product-redesign .mobile-product-cta__price {
    color: var(--text);
    font-size: 17px;
  }

  .product-redesign .mobile-product-cta__button {
    min-height: 48px;
    display: grid;
    place-items: center;
    padding: 0 18px;
    background: var(--text);
    color: #fff;
    font-size: 13px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    text-decoration: none;
  }
}

@media (max-width: 600px) {
  .product-redesign .product {
    padding-top: 76px;
    gap: 18px;
  }

  .product-redesign .product-media {
    padding: 0 16px;
  }

  .product-redesign .product-gallery {
    height: clamp(470px, 68svh, 610px);
  }

  .product-redesign .product-panel {
    padding-right: 18px;
    padding-left: 18px;
  }

  .product-redesign .product-title { font-size: 38px; }

  .product-redesign .product-price { font-size: 19px; }
  .product-redesign .panel-label { font-size: 14px; }
  .product-redesign .tab { font-size: 15px; }
  .product-redesign .size-btn { min-height: 48px; font-size: 15px; }
  .product-redesign .tab-content,
  .product-redesign .panel-description,
  .product-redesign .preorder-note { font-size: 18px; }
}

@keyframes sizeChoicePulse {
  0%, 100% { border-color: rgba(39, 39, 39, 0.65); }
  35% { border-color: var(--text); box-shadow: 0 0 0 2px rgba(39, 39, 39, 0.14); }
}
