:root {
  --pdp-ink: #161616;
  --pdp-muted: #777773;
  --pdp-faint: #9a9a96;
  --pdp-line: #dededb;
  --pdp-paper: #fff;
  --pdp-soft: #f6f6f5;
  --pdp-gold: #b98b3e;
  --pdp-max: 1540px;
  --pdp-header: 88px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--pdp-paper);
  color: var(--pdp-ink);
  font-family: "Hanken Grotesk", "Noto Sans SC", sans-serif;
  font-size: 16px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
}
body, button, input, select { font-family: "Hanken Grotesk", "Noto Sans SC", sans-serif; }
button, input, select { color: inherit; }
button { border-radius: 0; }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
[hidden] { display: none !important; }

.pdp-top-rule {
  position: fixed;
  z-index: 1001;
  top: 0;
  right: 0;
  left: 0;
  height: 8px;
  background: #050505;
}
.aqaq-header { top: 8px; }
.product-page { padding-top: calc(var(--pdp-header) + 8px); }

/* Hero: three vertical image panels at left, a sticky information column at right. */
.product-hero {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 58.25%) minmax(480px, 41.75%);
  align-items: start;
  border-bottom: 1px solid var(--pdp-line);
}
.product-gallery {
  position: relative;
  min-width: 0;
  background: #fff;
  border-right: 1px solid var(--pdp-line);
}
.product-gallery-panel {
  position: relative;
  height: calc(100vh - var(--pdp-header) - 8px);
  min-height: 720px;
  margin: 0;
  display: grid;
  place-items: center;
  overflow: hidden;
  background: #fff;
}
.product-gallery-panel + .product-gallery-panel { border-top: 1px solid #f1f1ef; }
.product-gallery-panel img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  max-height: 100%;
  object-fit: contain;
  transform: scale(.88);
  transform-origin: center;
}
.product-gallery-panel-2 img {
  transform: scale(1.18);
  object-position: center 25%;
}
.product-gallery-panel-3 img {
  transform: scale(.95);
  object-fit: cover;
}
.product-gallery-panel figcaption {
  position: absolute;
  right: 42px;
  bottom: 31px;
  color: #8a8a86;
  font-size: 10px;
  letter-spacing: .18em;
}
.product-gallery-dots {
  position: sticky;
  z-index: 4;
  top: 50vh;
  width: 28px;
  height: 0;
  margin-left: 34px;
  display: grid;
  gap: 14px;
  transform: translateY(-42px);
}
.product-gallery-dot {
  width: 14px;
  height: 14px;
  padding: 3px;
  border: 0;
  background: transparent;
  cursor: pointer;
}
.product-gallery-dot span {
  display: block;
  width: 8px;
  height: 8px;
  border: 1px solid #8c8c89;
  border-radius: 50%;
  background: #858582;
  transition: background 180ms ease, transform 180ms ease;
}
.product-gallery-dot.is-active span {
  background: #fff;
  transform: scale(1.12);
}

.product-summary {
  position: sticky;
  z-index: 3;
  top: calc(var(--pdp-header) + 8px);
  height: calc(100vh - var(--pdp-header) - 8px);
  min-height: 720px;
  overflow: hidden;
  background: #fff;
}
.product-summary-inner {
  width: min(100%, 610px);
  height: 100%;
  margin: 0 auto;
  padding: clamp(46px, 5.5vh, 72px) 54px 30px;
  display: flex;
  flex-direction: column;
}
.product-kicker {
  margin: 0 0 8px;
  color: #50504d;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: .14em;
}
.product-summary h1 {
  max-width: 520px;
  margin: 0;
  font-size: clamp(27px, 2vw, 35px);
  font-weight: 600;
  line-height: 1.23;
  letter-spacing: .07em;
}
.product-title-rule {
  width: 100%;
  height: 5px;
  margin: 10px 0 15px;
  background: #181818;
}
.product-english-name {
  margin: 0;
  color: #444441;
  font-size: 16px;
  font-weight: 350;
  line-height: 1.35;
}
.product-more-link {
  width: max-content;
  margin-top: 3px;
  border-bottom: 1px solid;
  font-size: 14px;
}
.product-reference {
  margin: 13px 0 0;
  color: var(--pdp-faint);
  font-size: 13px;
}
.product-price-row {
  min-height: 62px;
  margin-top: 10px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid var(--pdp-line);
}
.product-price-row strong { font-size: 20px; font-weight: 600; }
.product-wishlist {
  width: 36px;
  height: 36px;
  border: 0;
  background: transparent;
  font-size: 27px;
  font-weight: 300;
  cursor: pointer;
}
.product-size {
  min-height: 82px;
  padding: 17px 0 12px;
  display: grid;
  gap: 7px;
}
.product-size b {
  font-size: 13px;
  font-weight: 600;
  letter-spacing: .12em;
}
.product-size span { font-size: 15px; }
.product-purchase { position: relative; }
.product-buy-button,
.sticky-product-buy {
  width: 100%;
  min-height: 56px;
  padding: 0 24px;
  border: 1px solid #050505;
  background: #050505;
  color: #fff;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .1em;
  text-align: center;
  cursor: pointer;
  transition: background 160ms ease, color 160ms ease;
}
.product-buy-button:hover,
.product-buy-button[aria-expanded="true"],
.sticky-product-buy:hover { background: #fff; color: #050505; }
.product-store-panel {
  position: absolute;
  z-index: 8;
  right: 0;
  left: 0;
  border: 1px solid #111;
  border-top: 0;
  background: #fff;
  box-shadow: 0 20px 40px rgba(0,0,0,.1);
}
.product-store-panel a {
  min-height: 62px;
  padding: 0 20px;
  display: grid;
  grid-template-columns: 1fr auto;
  align-content: center;
  column-gap: 18px;
  border-top: 1px solid #e7e7e4;
}
.product-store-panel a:first-child { border-top: 0; }
.product-store-panel a span { font-size: 13px; font-weight: 600; }
.product-store-panel a small { grid-column: 1; color: #81817d; font-size: 10px; }
.product-store-panel a b { grid-column: 2; grid-row: 1 / span 2; align-self: center; font-weight: 400; }
.product-store-panel a:hover { background: #f6f6f4; }
.product-delivery-copy,
.product-price-note {
  margin: 13px 0 0;
  color: #8a8a87;
  font-size: 12px;
  line-height: 1.35;
}
.product-price-note { margin-top: 4px; }
.product-summary-links {
  margin-top: 13px;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 4px 11px;
  font-size: 12px;
}
.product-summary-links a { border-bottom: 1px solid; }
.product-summary-stars {
  color: #111;
  font-size: 15px;
  letter-spacing: .04em;
}
.product-summary-links b { font-weight: 600; }

.perfect-match { margin-top: auto; padding-top: 16px; }
.perfect-match-heading {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 11px;
}
.perfect-match-heading span { height: 1px; background: #262626; }
.perfect-match-heading h2 {
  margin: 0;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .22em;
  text-transform: uppercase;
}
.perfect-match-grid {
  margin-top: 8px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}
.perfect-match-card { min-width: 0; text-align: center; }
.perfect-match-card img {
  width: 100%;
  height: clamp(76px, 10vh, 120px);
  object-fit: contain;
  transition: transform 220ms ease;
}
.perfect-match-card:hover img { transform: translateY(-3px); }
.perfect-match-card h3 {
  min-height: 28px;
  margin: 4px 0 0;
  overflow: hidden;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: .05em;
  line-height: 1.35;
}
.perfect-match-card p {
  margin: 2px 0 0;
  color: #777;
  overflow: hidden;
  font-size: 9px;
  line-height: 1.2;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.perfect-match-card strong { font-size: 11px; }

/* Floating product bar */
.sticky-product-bar {
  position: fixed;
  z-index: 900;
  top: calc(var(--pdp-header) + 8px);
  right: 0;
  left: 0;
  min-height: 82px;
  padding: 0 42px;
  display: grid;
  grid-template-columns: 150px minmax(0, 1fr) auto 178px;
  align-items: center;
  gap: 26px;
  border-bottom: 1px solid var(--pdp-line);
  background: rgba(255,255,255,.97);
  box-shadow: 0 4px 12px rgba(0,0,0,.04);
  opacity: 0;
  pointer-events: none;
  transform: translateY(-110%);
  transition: opacity 180ms ease, transform 240ms ease;
}
.sticky-product-bar.is-visible { opacity: 1; pointer-events: auto; transform: none; }
.sticky-product-logo {
  font-size: 25px;
  font-weight: 700;
  letter-spacing: .13em;
}
.sticky-product-identity {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 15px;
}
.sticky-product-identity img { width: 54px; height: 54px; object-fit: contain; }
.sticky-product-identity span { min-width: 0; display: grid; }
.sticky-product-identity b {
  overflow: hidden;
  font-size: 13px;
  letter-spacing: .06em;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.sticky-product-identity small { color: #666; font-size: 11px; }
.sticky-product-bar > strong { font-size: 15px; }
.sticky-product-buy {
  min-height: 52px;
  display: grid;
  place-items: center;
}

/* Product information and common section headings */
.product-information,
.product-reviews,
.product-qa,
.product-online-services {
  width: min(calc(100% - 120px), var(--pdp-max));
  margin: 0 auto;
  scroll-margin-top: 190px;
}
.product-information { padding: 106px 0 70px; }
.product-information > h2 {
  margin: 0 0 64px;
  font-size: clamp(29px, 2.8vw, 44px);
  font-weight: 600;
  letter-spacing: .13em;
  text-align: center;
}
.product-information-group { border-top: 1px solid var(--pdp-line); }
.product-information-group:last-child { border-bottom: 1px solid var(--pdp-line); }
.product-information-group > button,
.section-line-heading {
  width: 100%;
  min-height: 70px;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border: 0;
  background: transparent;
}
.product-information-group > button {
  font-size: 13px;
  font-weight: 600;
  letter-spacing: .11em;
  cursor: pointer;
}
.product-information-group > button b {
  position: relative;
  width: 18px;
  height: 18px;
}
.product-information-group > button b::before,
.product-information-group > button b::after {
  position: absolute;
  top: 8px;
  left: 2px;
  width: 14px;
  height: 1px;
  background: #111;
  content: "";
}
.product-information-group > button b::after { transform: rotate(90deg); }
.product-information-group > button[aria-expanded="true"] b::after { transform: rotate(0); }
.product-information-group > div {
  padding: 4px 0 54px;
  color: #5f5f5b;
  font-size: 15px;
  line-height: 1.55;
}
.product-information-description > div { max-width: 1240px; }
.product-information-group h3 {
  margin: 23px 0 15px;
  color: #222;
  font-size: 13px;
  font-weight: 650;
  letter-spacing: .11em;
}
.product-information-group p { max-width: 1200px; margin: 0 0 20px; }
.product-ingredient-copy {
  max-width: 1200px;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 8px 45px;
  list-style: none;
}
.product-ingredient-copy li {
  padding: 9px 0;
  display: flex;
  justify-content: space-between;
  gap: 20px;
  border-bottom: 1px solid #ececea;
}
.product-ingredient-copy b { color: #333; font-weight: 500; }
.product-ingredient-copy span { color: #8a8a87; text-align: right; }
.product-application-list {
  max-width: 1200px;
  margin: 24px 0 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 36px;
  list-style: none;
}
.product-application-list li { display: grid; grid-template-columns: 36px 1fr; gap: 10px; }
.product-application-list li > b { color: #b6b6b2; font-size: 18px; font-weight: 400; }
.product-application-list span { display: grid; }
.product-application-list strong { color: #222; font-weight: 600; }
.product-detail-list { max-width: 1200px; margin: 0; }
.product-detail-list div {
  padding: 13px 0;
  display: grid;
  grid-template-columns: 170px 1fr;
  border-bottom: 1px solid #ececea;
}
.product-detail-list dt { color: #8a8a87; }
.product-detail-list dd { margin: 0; color: #333; }
.product-information-note { margin-top: 26px !important; color: #92928e; font-size: 13px; }

.section-line-heading {
  min-height: 74px;
  border-top: 1px solid var(--pdp-line);
}
.section-line-heading h2 {
  margin: 0;
  font-size: 13px;
  font-weight: 650;
  letter-spacing: .13em;
  text-transform: uppercase;
}
.section-line-heading > span { font-size: 22px; }

/* Review presentation */
.product-reviews { padding-bottom: 96px; }
.product-demo-disclosure {
  width: max-content;
  margin: 8px 0 34px;
  padding: 5px 9px;
  background: #f2f2f0;
  color: #757572;
  font-size: 11px;
  letter-spacing: .03em;
}
.product-reviews-layout {
  display: grid;
  grid-template-columns: 320px minmax(0, 1fr);
  gap: 72px;
}
.product-rating-summary { text-align: center; }
.product-rating-summary > strong {
  display: block;
  font-size: 64px;
  font-weight: 500;
  line-height: 1;
}
.product-rating-stars { margin-top: 9px; font-size: 24px; letter-spacing: .04em; }
.product-rating-summary p { margin: 4px 0 27px; color: #666; }
.product-rating-summary button {
  min-width: 220px;
  min-height: 54px;
  border: 1px solid #111;
  background: #fff;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .12em;
}
.product-review-list { position: relative; padding-top: 62px; }
.product-review-sort,
.product-qa-sort {
  position: absolute;
  top: 0;
  left: 0;
  padding: 0 13px;
  display: flex;
  align-items: center;
  border: 1px solid var(--pdp-line);
  color: #777;
  font-size: 13px;
}
.product-review-sort select,
.product-qa-sort select {
  min-height: 48px;
  border: 0;
  background: transparent;
  font-size: 13px;
}
.product-review-card {
  min-height: 190px;
  padding: 26px 0 30px;
  border-bottom: 1px solid #e7e7e4;
}
.product-review-card header {
  display: flex;
  justify-content: space-between;
  gap: 30px;
}
.product-review-card h3 {
  margin: 0;
  font-size: 13px;
  font-weight: 650;
  letter-spacing: .08em;
}
.product-review-card header span { font-size: 15px; letter-spacing: .04em; }
.product-review-card header b { margin-left: 8px; font-size: 11px; }
.product-review-card h4 { margin: 24px 0 5px; font-size: 15px; font-weight: 500; }
.product-review-card p { margin: 0; color: #666; font-size: 14px; }
.product-review-card small { display: block; margin-top: 18px; color: #9a9a96; font-size: 10px; }

/* Q&A */
.product-qa { position: relative; padding-bottom: 100px; }
.product-qa-search {
  position: relative;
  width: min(760px, 75%);
  margin: 65px auto 0;
  border-bottom: 2px solid #222;
}
.product-qa-search label { display: none; }
.product-qa-search input {
  width: 100%;
  height: 56px;
  padding: 0 58px 0 12px;
  border: 0;
  outline: none;
  font-size: 18px;
  font-weight: 300;
}
.product-qa-search span,
.product-qa-search span::after {
  position: absolute;
  content: "";
}
.product-qa-search span {
  right: 18px;
  bottom: 17px;
  width: 21px;
  height: 21px;
  border: 1.5px solid #111;
  border-radius: 50%;
}
.product-qa-search span::after {
  right: -6px;
  bottom: -3px;
  width: 8px;
  height: 1.5px;
  background: #111;
  transform: rotate(48deg);
}
.product-qa-intro {
  width: min(1100px, 92%);
  margin: 55px 0 70px;
  color: #8b8b87;
  font-size: 14px;
}
.product-qa-sort { top: 233px; right: 0; left: auto; }
.product-qa-item { padding: 43px 0; border-bottom: 1px solid #e3e3e0; }
.product-qa-item h3 { margin: 0; font-size: 18px; font-weight: 450; }
.product-qa-meta { margin: 6px 0 26px; color: #aaa; font-size: 11px; }
.product-qa-featured-answers {
  padding: 34px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 64px;
  background: #f5f5f4;
  color: #777;
  font-size: 14px;
}
.product-qa-featured-answers p { margin: 0; }
.product-qa-answer {
  padding: 16px 54px;
  color: #646460;
  font-size: 14px;
}
.product-qa-answer b { color: #333; font-size: 12px; letter-spacing: .08em; }
.product-qa-answer p { margin: 9px 0 0; }

/* Online services */
.product-online-services { padding-bottom: 98px; }
.product-services-layout {
  padding: 35px 40px 18px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
}
.aqaq-service-visual {
  position: relative;
  min-height: 560px;
  display: grid;
  place-items: center;
}
.aqaq-service-seal {
  width: min(470px, 78%);
  aspect-ratio: 1;
  display: grid;
  place-items: center;
  border: 8px solid #191919;
  border-radius: 50%;
}
.aqaq-service-seal span {
  font-size: clamp(48px, 6vw, 95px);
  font-weight: 700;
  letter-spacing: -.04em;
}
.aqaq-service-box {
  position: absolute;
  right: 12%;
  bottom: 9%;
  width: 250px;
  height: 260px;
  display: grid;
  place-items: center;
  border: 2px solid #111;
  background: linear-gradient(145deg, #fff, #eeeeec);
  box-shadow: 0 24px 0 #222;
}
.aqaq-service-outline {
  width: 72%;
  height: 78%;
  fill: none;
  stroke: #171717;
  stroke-width: 3;
  stroke-linecap: round;
  stroke-linejoin: round;
  vector-effect: non-scaling-stroke;
}
.product-service-copy {
  padding: 34px 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 45px 52px;
}
.product-service-copy article { align-self: start; }
.product-service-copy h3 {
  margin: 0 0 14px;
  font-size: 21px;
  font-weight: 600;
  letter-spacing: .11em;
}
.product-service-copy p { margin: 0; color: #6f6f6b; font-size: 15px; line-height: 1.45; }
.product-service-copy a {
  display: inline-block;
  margin-top: 32px;
  border-bottom: 1px solid;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .07em;
}

/* Editorial story alternates */
.product-story {
  min-height: 760px;
  display: grid;
  grid-template-columns: 1fr 1fr;
}
.product-story-image { min-height: 760px; overflow: hidden; background: #f3f3f2; }
.product-story-image img { width: 100%; height: 100%; object-fit: cover; }
.product-story-copy {
  padding: clamp(70px, 10vw, 180px);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
}
.product-story-copy > p {
  margin: 0 0 14px;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: .14em;
}
.product-story-copy h2 {
  max-width: 640px;
  margin: 0;
  font-size: clamp(34px, 4vw, 62px);
  font-weight: 550;
  line-height: 1.08;
  letter-spacing: .1em;
}
.product-story-copy > div {
  max-width: 600px;
  margin-top: 28px;
  color: #5d5d59;
  font-size: 17px;
  line-height: 1.55;
}
.product-story-reverse .product-story-image { order: 2; }

/* Series strip */
.product-series-banner {
  position: relative;
  aspect-ratio: 3.15 / 1;
  min-height: 440px;
  overflow: hidden;
  background: #faf3ef;
}
.product-series-backdrop {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
.product-series-copy {
  position: relative;
  z-index: 1;
  width: 50%;
  min-height: 100%;
  margin-left: auto;
  padding: 56px clamp(42px, 5vw, 96px);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
}
.product-series-copy p { margin: 0; font-size: 14px; font-weight: 600; letter-spacing: .18em; }
.product-series-copy h2 {
  margin: 12px 0 0;
  font-size: clamp(27px, 2.7vw, 40px);
  font-weight: 550;
  letter-spacing: .13em;
}
.product-series-copy span { max-width: 680px; margin-top: 14px; color: #5e574e; font-size: 16px; }
.product-series-copy a { margin-top: 30px; border-bottom: 1px solid; font-size: 13px; font-weight: 600; letter-spacing: .08em; }

/* Complete routine */
.product-complete-routine { padding: 190px 0 100px; overflow: hidden; }
.product-complete-routine > h2 {
  margin: 0 0 170px;
  font-size: clamp(26px, 2.4vw, 40px);
  font-weight: 550;
  letter-spacing: .14em;
  text-align: center;
}
.complete-routine-grid {
  --routine-product-frame-width: 320px;
  --routine-product-frame-height: 300px;
  --routine-digit-size: clamp(145px, 10.625vw, 204px);
  --routine-digit-top: 110px;
  width: calc(100% - 160px);
  max-width: 1920px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
}
.complete-routine-step {
  position: relative;
  min-height: 520px;
  padding: 0 0 30px;
  text-align: center;
}
.complete-routine-stage {
  position: relative;
  height: 340px;
}
.complete-routine-number {
  position: absolute;
  z-index: 0;
  top: var(--routine-digit-top);
  left: 50%;
  transform: translateX(-50%);
  display: inline-flex;
  gap: clamp(32px, 2.25vw, 46px);
  color: #e8e8e6;
  font-size: var(--routine-digit-size);
  font-weight: 650;
  line-height: 1;
  letter-spacing: 0;
  font-variant-numeric: tabular-nums;
}
.complete-routine-step.is-current .complete-routine-number {
  color: #151515;
}
.complete-routine-product {
  position: absolute;
  z-index: 1;
  top: calc(var(--routine-digit-top) + (var(--routine-digit-size) / 2) - (var(--routine-product-frame-height) / 2));
  bottom: auto;
  left: 52%;
  width: var(--routine-product-frame-width);
  height: var(--routine-product-frame-height);
  display: flex;
  align-items: center;
  justify-content: center;
  border: 0;
  background: transparent;
  box-shadow: none;
  pointer-events: none;
}
.complete-routine-product img {
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  transform: none;
  transition: transform 220ms ease;
}
.complete-routine-grid[data-current-step="1"] .complete-routine-step:nth-child(2) .complete-routine-number {
  left: 80%;
}
.complete-routine-grid[data-current-step="1"] .complete-routine-step:nth-child(1) .complete-routine-product {
  left: 80%;
}
.complete-routine-grid[data-current-step="2"] .complete-routine-step:nth-child(2) .complete-routine-number {
  left: 25%;
}
.complete-routine-grid[data-current-step="3"] .complete-routine-step:nth-child(3) .complete-routine-number {
  left: 20%;
}
.complete-routine-grid[data-current-step="3"] .complete-routine-step:nth-child(3) .complete-routine-product {
  left: 47%;
}
.complete-routine-grid[data-current-step="1"] .complete-routine-step:nth-child(2) > :is(p, h3, small),
.complete-routine-grid[data-current-step="2"] .complete-routine-step:nth-child(2) > :is(p, h3, small),
.complete-routine-grid[data-current-step="3"] .complete-routine-step:nth-child(3) > :is(p, h3, small) {
  position: relative;
}
.complete-routine-grid[data-current-step="1"] .complete-routine-step:nth-child(2) > :is(p, h3, small) {
  left: 30%;
}
.complete-routine-grid[data-current-step="2"] .complete-routine-step:nth-child(2) > :is(p, h3, small) {
  left: -25%;
}
.complete-routine-grid[data-current-step="3"] .complete-routine-step:nth-child(3) > :is(p, h3, small) {
  left: -30%;
}
.complete-routine-step:hover img {
  transform: translateY(-5px);
}
.complete-routine-step > p {
  margin: 14px 0 0;
  font-size: 17px;
  font-weight: 650;
  letter-spacing: .13em;
}
.complete-routine-step h3 { margin: 10px 0 0; font-size: 18px; font-weight: 500; }
.complete-routine-step small {
  display: block;
  margin-top: 8px;
  color: #7c7c78;
  font-size: 14px;
  line-height: 1.4;
}

/* Newsletter and footer */
.product-newsletter {
  padding: 72px max(60px, calc((100% - var(--pdp-max)) / 2));
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: end;
  gap: 80px;
  border-top: 1px solid var(--pdp-line);
}
.product-newsletter p { margin: 0; font-size: 12px; font-weight: 600; letter-spacing: .13em; }
.product-newsletter h2 { margin: 8px 0 0; font-size: 27px; font-weight: 500; letter-spacing: .04em; }
.product-newsletter form {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: end;
  border-bottom: 1px solid #222;
}
.product-newsletter label { grid-column: 1 / -1; color: #8b8b87; font-size: 11px; }
.product-newsletter input {
  height: 49px;
  padding: 0;
  border: 0;
  outline: none;
  font-size: 15px;
}
.product-newsletter button {
  height: 49px;
  padding: 0 15px;
  border: 0;
  background: transparent;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
}
.official-purchase-anchor { position: relative; top: -180px; }
.product-footer { background: #050505; color: #a7a7a4; }
.product-footer-top {
  width: min(calc(100% - 120px), var(--pdp-max));
  min-height: 360px;
  margin: 0 auto;
  padding: 70px 0;
  display: grid;
  grid-template-columns: 1.7fr 1fr 1fr 1.4fr;
  gap: 55px;
}
.product-footer-wordmark { color: #fff; font-size: 26px; font-weight: 700; letter-spacing: .14em; }
.product-footer-top > div { display: flex; flex-direction: column; align-items: flex-start; gap: 11px; }
.product-footer-top h2 { margin: 0 0 10px; color: #fff; font-size: 12px; letter-spacing: .13em; }
.product-footer-top a:not(.product-footer-wordmark) { font-size: 13px; }
.product-footer-top a:hover { color: #fff; }
.product-footer-bottom {
  width: min(calc(100% - 120px), var(--pdp-max));
  margin: 0 auto;
  padding: 25px 0 38px;
  display: flex;
  justify-content: space-between;
  gap: 20px;
  border-top: 1px solid #2d2d2d;
  font-size: 11px;
}
.product-footer-bottom p { margin: 0; }

@media (max-height: 850px) and (min-width: 1001px) {
  .product-summary-inner { padding-top: 28px; }
  .product-kicker { margin-bottom: 3px; }
  .product-summary h1 { font-size: 27px; }
  .product-title-rule { margin: 6px 0 9px; }
  .product-reference { margin-top: 8px; }
  .product-price-row { min-height: 50px; }
  .product-size { min-height: 60px; padding: 10px 0 7px; }
  .product-buy-button { min-height: 48px; }
  .product-delivery-copy { margin-top: 8px; }
  .product-summary-links { margin-top: 8px; }
  .perfect-match { padding-top: 9px; }
  .perfect-match-grid { margin-top: 3px; }
  .perfect-match-card img { height: 72px; }
}

@media (max-width: 1000px) {
  :root { --pdp-header: 72px; }
  .pdp-top-rule { height: 5px; }
  .aqaq-header { top: 5px; }
  .product-page { padding-top: calc(var(--pdp-header) + 5px); }
  .product-hero { display: block; }
  .product-gallery { border-right: 0; }
  .product-gallery-panel {
    height: min(112vw, 640px);
    min-height: 0;
  }
  .product-gallery-panel img { transform: scale(.93); }
  .product-gallery-panel-2 img { transform: scale(1.18); }
  .product-gallery-dots {
    position: absolute;
    top: min(103vw, 585px);
    bottom: auto;
    left: 50%;
    width: auto;
    height: 24px;
    margin: 0;
    display: flex;
    transform: translateX(-50%);
  }
  .product-summary {
    position: static;
    height: auto;
    min-height: 0;
    overflow: visible;
  }
  .product-summary-inner {
    width: 100%;
    height: auto;
    padding: 45px 24px 42px;
  }
  .product-summary h1 { font-size: clamp(26px, 7vw, 34px); }
  .perfect-match { margin-top: 38px; }
  .perfect-match-card img { height: 150px; }
  .sticky-product-bar {
    top: calc(var(--pdp-header) + 5px);
    min-height: 68px;
    padding: 0 13px;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 10px;
  }
  .sticky-product-logo,
  .sticky-product-bar > strong { display: none; }
  .sticky-product-identity img { width: 45px; height: 45px; }
  .sticky-product-identity small { display: none; }
  .sticky-product-buy { width: 132px; min-height: 44px; font-size: 10px; }
  .product-information,
  .product-reviews,
  .product-qa,
  .product-online-services {
    width: calc(100% - 40px);
  }
  .product-information { padding: 70px 0 50px; }
  .product-information > h2 { margin-bottom: 42px; font-size: 30px; }
  .product-information-group > div { font-size: 14px; }
  .product-ingredient-copy,
  .product-application-list { grid-template-columns: 1fr; }
  .product-detail-list div { grid-template-columns: 110px 1fr; }
  .product-reviews-layout { grid-template-columns: 1fr; gap: 35px; }
  .product-rating-summary > strong { font-size: 54px; }
  .product-review-list { padding-top: 62px; }
  .product-qa-search { width: 100%; margin-top: 34px; }
  .product-qa-intro { margin: 32px 0 80px; }
  .product-qa-sort { top: 245px; }
  .product-qa-featured-answers { grid-template-columns: 1fr; gap: 25px; padding: 25px; }
  .product-qa-answer { padding: 14px 10px; }
  .product-services-layout { padding: 25px 0; grid-template-columns: 1fr; gap: 20px; }
  .aqaq-service-visual { min-height: 430px; }
  .aqaq-service-box { right: 14%; width: 180px; height: 185px; }
  .product-service-copy { grid-template-columns: 1fr; gap: 36px; }
  .product-story { min-height: 0; display: flex; flex-direction: column; }
  .product-story-image { min-height: 0; height: 100vw; }
  .product-story-reverse .product-story-image { order: 0; }
  .product-story-copy { min-height: 520px; padding: 65px 28px; }
  .product-story-copy h2 { font-size: 37px; }
  .product-story-copy > div { font-size: 15px; }
  .product-series-banner {
    aspect-ratio: auto;
    min-height: 660px;
  }
  .product-series-backdrop {
    height: 370px;
    object-position: left center;
  }
  .product-series-copy {
    width: 100%;
    min-height: 660px;
    margin-left: 0;
    padding: 405px 24px 58px;
  }
  .product-complete-routine { padding: 70px 0 55px; }
  .product-complete-routine > h2 { font-size: 30px; }
  .complete-routine-grid {
    --routine-product-frame-width: 230px;
    --routine-product-frame-height: 220px;
    --routine-digit-size: 162px;
    --routine-digit-top: 90px;
    width: 100%;
    padding: 0 20px 10px;
    display: flex;
    gap: 0;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
  }
  .complete-routine-step {
    min-width: 84vw;
    min-height: 540px;
    scroll-snap-align: center;
  }
  .complete-routine-stage { height: 400px; }
  .complete-routine-number {
    top: var(--routine-digit-top);
    font-size: var(--routine-digit-size);
  }
  .complete-routine-grid[data-current-step] .complete-routine-number {
    left: 50%;
  }
  .complete-routine-grid[data-current-step] .complete-routine-step.is-current .complete-routine-number {
    left: 27%;
  }
  .complete-routine-grid[data-current-step] .complete-routine-step.is-current .complete-routine-product {
    left: 52%;
  }
  .complete-routine-grid[data-current-step] .complete-routine-step.is-current > :is(p, h3, small) {
    left: -23%;
  }
  .complete-routine-grid[data-current-step="1"] .complete-routine-step:nth-child(2) > :is(p, h3, small) {
    left: 0;
  }
  .product-newsletter {
    padding: 55px 24px;
    grid-template-columns: 1fr;
    gap: 42px;
  }
  .product-newsletter h2 { font-size: 23px; }
  .product-footer-top {
    width: calc(100% - 48px);
    padding: 52px 0;
    grid-template-columns: 1fr 1fr;
    gap: 46px 25px;
  }
  .product-footer-wordmark { grid-column: 1 / -1; }
  .product-footer-bottom {
    width: calc(100% - 48px);
    flex-direction: column;
  }
}

@media (max-width: 520px) {
  .product-gallery-panel { height: 118vw; }
  .product-gallery-dots { display: none; }
  .product-summary-inner { padding-top: 36px; }
  .product-title-rule { height: 4px; }
  .product-english-name { font-size: 14px; }
  .perfect-match-grid { gap: 10px; }
  .perfect-match-card img { height: 120px; }
  .product-information,
  .product-reviews,
  .product-qa,
  .product-online-services { width: calc(100% - 32px); }
  .product-information-group > button,
  .section-line-heading { min-height: 62px; }
  .product-reviews-layout { gap: 15px; }
  .product-review-card header { display: grid; gap: 8px; }
  .product-qa-sort { top: 240px; }
  .aqaq-service-visual { min-height: 340px; }
  .aqaq-service-seal { width: 76%; border-width: 6px; }
  .aqaq-service-box { right: 8%; width: 140px; height: 150px; font-size: 18px; }
  .product-story-image { height: 116vw; }
  .product-story-copy { min-height: 450px; }
  .product-series-banner,
  .product-series-copy { min-height: 600px; }
  .product-series-backdrop { height: 310px; }
  .product-series-copy { padding-top: 338px; }
  .product-series-copy h2 { font-size: 29px; }
  .complete-routine-step { min-width: 90vw; }
  .product-footer-top { grid-template-columns: 1fr; }
  .product-footer-wordmark { grid-column: auto; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}
