:root {
  --raw-v110-black: #0d0c0b;
  --raw-v110-charcoal: #181513;
  --raw-v110-ink: #1c1815;
  --raw-v110-red: #d81e28;
  --raw-v110-deep-red: #8e1116;
  --raw-v110-oxblood: #4a090d;
  --raw-v110-gold: #c49a58;
  --raw-v110-gold-light: #ead1a4;
  --raw-v110-cream: #f4e8d2;
  --raw-v110-paper: #f5efe6;
  --raw-v110-white: #fffaf1;
  --raw-v110-serif: "Playfair Display", Georgia, serif;
  --raw-v110-body: Lora, Georgia, serif;
  --raw-v110-mono: "Space Mono", ui-monospace, monospace;
}

html.raw-v4-review-open,
html.raw-v4-review-open body,
body.drawer-open {
  overflow: hidden !important;
  overscroll-behavior: none;
}

[data-raw-reveal-v110-revision],
[data-raw-reveal-v110-revision] *,
[data-raw-reveal-v110-revision] *::before,
[data-raw-reveal-v110-revision] *::after {
  box-sizing: border-box;
}

[data-raw-reveal-v110-revision] {
  position: relative;
  width: 100%;
  min-width: 320px;
  overflow-x: clip;
  background: var(--raw-v110-black);
  color: var(--raw-v110-ink);
}

[data-raw-reveal-v110-revision] button,
[data-raw-reveal-v110-revision] a {
  -webkit-tap-highlight-color: transparent;
}

[data-raw-reveal-v110-revision] button:focus-visible,
[data-raw-reveal-v110-revision] a:focus-visible,
[data-raw-reveal-v110-revision] [tabindex]:focus-visible {
  outline: 3px solid var(--raw-v110-gold-light) !important;
  outline-offset: 3px;
}

[data-raw-reveal-v110-revision] img {
  max-width: 100%;
}

[data-raw-reveal-v110-revision] h1,
[data-raw-reveal-v110-revision] h2,
[data-raw-reveal-v110-revision] h3,
[data-raw-reveal-v110-revision] h4,
[data-raw-reveal-v110-revision] p,
[data-raw-reveal-v110-revision] figure,
[data-raw-reveal-v110-revision] blockquote {
  margin: 0;
}

[data-raw-reveal-v110-revision] .raw-v110-scroll-root {
  display: block;
  padding-top: 50px;
  overflow: visible;
  background: var(--raw-v110-paper);
}

/* Persistent top availability command */
[data-raw-reveal-v110-revision] .raw-v110-topbar {
  position: fixed;
  inset: 0 0 auto;
  z-index: 800;
  height: 50px;
  border-bottom: 1px solid rgba(234, 209, 164, 0.48);
  background: rgba(13, 12, 11, 0.99);
  color: var(--raw-v110-white);
}

[data-raw-reveal-v110-revision] .raw-v110-topbar__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  width: min(100%, 1500px);
  height: 100%;
  margin: 0 auto;
  padding: 0 clamp(14px, 4vw, 64px);
}

/* Offer-first hero */
[data-raw-reveal-v110-revision] .raw-v110-hero {
  position: relative;
  order: 0 !important;
  height: auto !important;
  min-height: calc(100svh - 50px) !important;
  max-height: none !important;
  overflow: hidden;
  background:
    radial-gradient(circle at 23% 46%, rgba(216, 30, 40, 0.24), transparent 35%),
    linear-gradient(118deg, #0d0c0b 0 47%, #26090b 68%, #690d14 100%);
  color: var(--raw-v110-white);
}

[data-raw-reveal-v110-revision] .raw-v110-hero::after {
  position: absolute;
  right: -15vw;
  bottom: -22vw;
  width: 70vw;
  height: 40vw;
  border: 1px solid rgba(234, 209, 164, 0.12);
  border-radius: 50%;
  content: "";
  transform: rotate(-11deg);
  pointer-events: none;
}

[data-raw-reveal-v110-revision] .raw-v110-hero__inner {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(460px, 0.96fr) minmax(540px, 1.04fr);
  align-items: center;
  gap: clamp(46px, 6vw, 100px);
  width: min(100%, 1500px);
  min-height: calc(100svh - 50px) !important;
  margin: 0 auto;
  padding: clamp(28px, 5vh, 58px) clamp(26px, 5vw, 78px);
}

[data-raw-reveal-v110-revision] .raw-v110-hero__product {
  position: relative;
  display: grid;
  place-items: center;
  width: 100%;
  height: min(700px, calc(100svh - 112px));
  min-height: 560px;
  overflow: hidden;
  border: 1px solid rgba(234, 209, 164, 0.48);
  background: linear-gradient(145deg, #ba1019, #700910 70%, #320609);
}

[data-raw-reveal-v110-revision] .raw-v110-hero__product img {
  position: absolute !important;
  inset: 0 !important;
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center 50%;
}

[data-raw-reveal-v110-revision] .raw-v110-discount-badge {
  position: absolute;
  top: 18px;
  left: 18px;
  z-index: 2;
  display: grid;
  place-items: center;
  min-width: 104px;
  min-height: 54px;
  padding: 8px 14px;
  border: 1px solid rgba(255, 250, 241, 0.72);
  background: var(--raw-v110-deep-red);
  color: var(--raw-v110-white);
  font: 700 15px/1 var(--raw-v110-mono);
  letter-spacing: 0.05em;
}

[data-raw-reveal-v110-revision] .raw-v110-hero__copy {
  width: min(100%, 620px);
}

[data-raw-reveal-v110-revision] .raw-v110-logo {
  display: block;
  width: 72px;
  height: 51px;
  margin-bottom: 16px;
  object-fit: contain;
  filter: brightness(0) invert(1);
}

[data-raw-reveal-v110-revision] .raw-v110-hero h1 {
  margin-top: 12px;
  color: var(--raw-v110-cream);
  font: 500 clamp(58px, 5.4vw, 84px)/0.94 var(--raw-v110-serif);
  letter-spacing: -0.045em;
}

[data-raw-reveal-v110-revision] .raw-v110-hero__copy > p {
  max-width: 590px;
  margin-top: 16px;
  color: rgba(255, 250, 241, 0.82);
  font: 400 17px/1.55 var(--raw-v110-body);
}

[data-raw-reveal-v110-revision] .raw-v110-mini-gifts article > strong,
[data-raw-reveal-v110-revision] .raw-v110-primary-cta,
[data-raw-reveal-v110-revision] .raw-v110-inline-cta {
  display: grid;
  place-items: center;
  width: 100%;
  min-height: 56px;
  padding: 13px 20px;
  border: 1px solid rgba(13, 12, 11, 0.48);
  border-radius: 2px;
  background: var(--raw-v110-gold);
  color: var(--raw-v110-black);
  cursor: pointer;
  text-align: center;
  font: 700 14px/1.2 var(--raw-v110-body);
  letter-spacing: 0.075em;
}

[data-raw-reveal-v110-revision] .raw-v110-primary-cta {
  margin-top: 14px;
}

[data-raw-reveal-v110-revision] .raw-v110-inline-cta {
  width: min(100%, 460px);
  margin-top: 26px;
  background: var(--raw-v110-deep-red);
  color: var(--raw-v110-white);
}

[data-raw-reveal-v110-revision] .raw-v110-inline-cta--gold {
  background: var(--raw-v110-gold);
  color: var(--raw-v110-black);
}

[data-raw-reveal-v110-revision] .raw-v110-hero__trust,
/* Shared editorial sections */
[data-raw-reveal-v110-revision] .raw-v110-story,
[data-raw-reveal-v110-revision] .raw-v110-faq {
  padding: clamp(64px, 7.5vw, 112px) clamp(22px, 5vw, 78px);
}

[data-raw-reveal-v110-revision] .raw-v110-story--light,
[data-raw-reveal-v110-revision] .raw-v110-faq {
  background: #fbfaf7;
}

[data-raw-reveal-v110-revision] .raw-v110-story--paper {
  background: var(--raw-v110-paper);
}

[data-raw-reveal-v110-revision] .raw-v110-story__inner,
[data-raw-reveal-v110-revision] .raw-v110-faq__inner,
[data-raw-reveal-v110-revision] .raw-v110-section-grid {
  width: min(100%, 1240px);
  margin: 0 auto;
}

[data-raw-reveal-v110-revision] .raw-v110-section-grid {
  display: grid;
  grid-template-columns: minmax(0, 0.93fr) minmax(420px, 1.07fr);
  align-items: center;
  gap: clamp(46px, 7vw, 108px);
}

[data-raw-reveal-v110-revision] .raw-v110-section-grid--reverse .raw-v110-copy-column {
  order: 2;
}

[data-raw-reveal-v110-revision] .raw-v110-section-grid--reverse .raw-v110-story-image {
  order: 1;
}

[data-raw-reveal-v110-revision] .raw-v110-eyebrow {
  display: flex;
  align-items: center;
  gap: 14px;
  color: var(--raw-v110-deep-red);
  font: 700 11px/1.3 var(--raw-v110-mono);
  letter-spacing: 0.09em;
}

[data-raw-reveal-v110-revision] .raw-v110-eyebrow > span {
  white-space: nowrap;
}

[data-raw-reveal-v110-revision] .raw-v110-eyebrow > i {
  flex: 1;
  height: 1px;
  background: currentColor;
  opacity: 0.46;
}

[data-raw-reveal-v110-revision] .raw-v110-eyebrow--dark {
  color: var(--raw-v110-gold-light);
}

[data-raw-reveal-v110-revision] .raw-v110-story h2,
[data-raw-reveal-v110-revision] .raw-v110-faq h2,
[data-raw-reveal-v110-revision] .raw-v110-proof h2,
[data-raw-reveal-v110-revision] .raw-v110-reviews h2,
[data-raw-reveal-v110-revision] .raw-v110-guarantee h2,
[data-raw-reveal-v110-revision] .raw-v110-offer-close h2 {
  max-width: 780px;
  margin-top: 16px;
  color: var(--raw-v110-ink);
  font: 500 clamp(42px, 4.7vw, 70px)/1.02 var(--raw-v110-serif);
  letter-spacing: -0.035em;
}

[data-raw-reveal-v110-revision] .raw-v110-story p,
[data-raw-reveal-v110-revision] .raw-v110-faq p,
[data-raw-reveal-v110-revision] .raw-v110-guarantee p,
[data-raw-reveal-v110-revision] .raw-v110-offer-close p {
  max-width: 720px;
  margin-top: 18px;
  color: rgba(28, 24, 21, 0.76);
  font: 400 17px/1.72 var(--raw-v110-body);
}

[data-raw-reveal-v110-revision] .raw-v110-copy-column blockquote {
  margin-top: 24px;
  padding: 18px 20px;
  border-left: 3px solid var(--raw-v110-gold);
  background: rgba(196, 154, 88, 0.08);
  color: var(--raw-v110-ink);
  font: italic 500 19px/1.48 var(--raw-v110-serif);
}

[data-raw-reveal-v110-revision] .raw-v110-copy-column blockquote cite {
  display: block;
  margin-top: 9px;
  color: var(--raw-v110-deep-red);
  font: normal 700 11px/1.3 var(--raw-v110-mono);
  letter-spacing: 0.06em;
}

[data-raw-reveal-v110-revision] .raw-v110-story-image {
  position: relative;
  height: min(700px, 64vw);
  overflow: hidden;
  background: var(--raw-v110-black);
}

[data-raw-reveal-v110-revision] .raw-v110-story-image img,
[data-raw-reveal-v110-revision] .raw-v110-wide-image img,
[data-raw-reveal-v110-revision] .raw-v110-formula-section figure img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

[data-raw-reveal-v110-revision] .raw-v110-story-image figcaption,
[data-raw-reveal-v110-revision] .raw-v110-wide-image figcaption,
[data-raw-reveal-v110-revision] .raw-v110-formula-section figure figcaption {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  padding: 14px 18px;
  background: rgba(13, 12, 11, 0.9);
  color: var(--raw-v110-cream);
  text-align: center;
  font: 700 11px/1.35 var(--raw-v110-mono);
  letter-spacing: 0.07em;
}

/* Early proof */
[data-raw-reveal-v110-revision] .raw-v110-proof {
  padding: clamp(62px, 7vw, 96px) clamp(22px, 5vw, 78px);
  background: linear-gradient(120deg, #0e0d0c, #2b090b 62%, #650d13);
  color: var(--raw-v110-white);
}

[data-raw-reveal-v110-revision] .raw-v110-proof__inner,
[data-raw-reveal-v110-revision] .raw-v110-reviews__inner,
[data-raw-reveal-v110-revision] .raw-v110-guarantee__inner,
[data-raw-reveal-v110-revision] .raw-v110-offer-close__inner {
  width: min(100%, 1280px);
  margin: 0 auto;
}

[data-raw-reveal-v110-revision] .raw-v110-proof h2,
[data-raw-reveal-v110-revision] .raw-v110-reviews h2,
[data-raw-reveal-v110-revision] .raw-v110-guarantee h2,
[data-raw-reveal-v110-revision] .raw-v110-offer-close h2 {
  color: var(--raw-v110-cream);
}

[data-raw-reveal-v110-revision] .raw-v110-proof__stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1px;
  margin-top: 34px;
  border: 1px solid rgba(234, 209, 164, 0.34);
  background: rgba(234, 209, 164, 0.28);
}

[data-raw-reveal-v110-revision] .raw-v110-proof__stats article {
  display: grid;
  align-content: center;
  gap: 8px;
  min-height: 145px;
  padding: 22px;
  background: rgba(13, 12, 11, 0.93);
}

[data-raw-reveal-v110-revision] .raw-v110-proof__stats strong {
  color: var(--raw-v110-gold-light);
  font: 500 clamp(34px, 4vw, 56px)/1 var(--raw-v110-serif);
}

[data-raw-reveal-v110-revision] .raw-v110-proof__stats span {
  color: rgba(255, 250, 241, 0.66);
  font: 700 11px/1.35 var(--raw-v110-mono);
  letter-spacing: 0.065em;
}

[data-raw-reveal-v110-revision] .raw-v110-source-line {
  margin-top: 14px;
  color: rgba(255, 250, 241, 0.5);
  font: 700 11px/1.5 var(--raw-v110-mono);
  letter-spacing: 0.025em;
}

/* Review wall and video proof */
[data-raw-reveal-v110-revision] .raw-v110-reviews {
  padding: clamp(64px, 7.5vw, 108px) clamp(22px, 5vw, 78px);
  background: var(--raw-v110-black);
  color: var(--raw-v110-white);
}

[data-raw-reveal-v110-revision] .raw-v110-review-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin-top: 30px;
}

[data-raw-reveal-v110-revision] .raw-v110-review-grid blockquote {
  min-height: 184px;
  padding: 22px;
  border: 1px solid rgba(234, 209, 164, 0.2);
  background: #191715;
}

[data-raw-reveal-v110-revision] .raw-v110-review-grid blockquote > span {
  color: var(--raw-v110-gold);
  font: 700 12px/1 var(--raw-v110-mono);
  letter-spacing: 0.08em;
}

[data-raw-reveal-v110-revision] .raw-v110-review-grid blockquote > p {
  margin-top: 14px;
  color: rgba(255, 250, 241, 0.9);
  font: italic 500 18px/1.5 var(--raw-v110-serif);
}

[data-raw-reveal-v110-revision] .raw-v110-review-grid cite {
  display: block;
  margin-top: 14px;
  color: var(--raw-v110-gold-light);
  font: normal 700 11px/1.35 var(--raw-v110-mono);
  letter-spacing: 0.05em;
}

[data-raw-reveal-v110-revision] .raw-v110-ugc {
  margin-top: 42px;
  padding-top: 32px;
  border-top: 1px solid rgba(234, 209, 164, 0.26);
}

[data-raw-reveal-v110-revision] .raw-v110-ugc__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 18px;
}

[data-raw-reveal-v110-revision] .raw-v110-ugc__head > span {
  color: var(--raw-v110-gold-light);
  font: 700 12px/1.3 var(--raw-v110-mono);
  letter-spacing: 0.08em;
}

[data-raw-reveal-v110-revision] .raw-v110-ugc__head h3 {
  color: var(--raw-v110-cream);
  font: italic 500 30px/1 var(--raw-v110-serif);
}

[data-raw-reveal-v110-revision] .raw-v110-ugc__rail {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px;
  margin-top: 18px;
}

[data-raw-reveal-v110-revision] .raw-v110-ugc__rail article {
  min-width: 0;
  aspect-ratio: 9 / 16;
  overflow: hidden;
  background: #211d1a;
}

[data-raw-reveal-v110-revision] .raw-v110-ugc__rail button {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
  padding: 0;
  border: 0;
  background: var(--raw-v110-black);
  cursor: pointer;
}

[data-raw-reveal-v110-revision] .raw-v110-ugc__rail button > img,
[data-raw-reveal-v110-revision] .raw-v110-ugc__rail video {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

[data-raw-reveal-v110-revision] .raw-v110-ugc__rail button > span {
  position: absolute;
  top: 50%;
  left: 50%;
  display: grid;
  place-items: center;
  width: 54px;
  height: 54px;
  border: 1px solid rgba(255, 250, 241, 0.72);
  border-radius: 50%;
  background: rgba(13, 12, 11, 0.72);
  color: var(--raw-v110-white);
  font-size: 18px;
  transform: translate(-50%, -50%);
  pointer-events: none;
}

/* Mechanism, comparison, formula */
[data-raw-reveal-v110-revision] .raw-v110-mechanism h3 {
  margin-top: 28px;
  color: var(--raw-v110-ink);
  font: italic 500 26px/1.2 var(--raw-v110-serif);
}

[data-raw-reveal-v110-revision] .raw-v110-wide-image {
  position: relative;
  height: clamp(380px, 45vw, 620px);
  margin-top: 34px;
  overflow: hidden;
  background: var(--raw-v110-black);
}

[data-raw-reveal-v110-revision] .raw-v110-wide-image img {
  object-position: center 40%;
}

[data-raw-reveal-v110-revision] .raw-v110-read-more {
  display: none;
  margin-top: 10px;
  padding: 8px 0;
  border: 0;
  background: transparent;
  color: var(--raw-v110-deep-red);
  cursor: pointer;
  font: 700 11px/1.3 var(--raw-v110-mono);
  letter-spacing: 0.06em;
}

[data-raw-reveal-v110-revision] .raw-v110-comparison-grid {
  margin-top: 30px;
  border: 1px solid rgba(28, 24, 21, 0.18);
}

[data-raw-reveal-v110-revision] .raw-v110-comparison-grid > div {
  display: grid;
  grid-template-columns: minmax(170px, 1.45fr) repeat(3, minmax(110px, 1fr));
  min-width: 0;
  border-bottom: 1px solid rgba(28, 24, 21, 0.12);
}

[data-raw-reveal-v110-revision] .raw-v110-comparison-grid > div:last-child {
  border-bottom: 0;
}

[data-raw-reveal-v110-revision] .raw-v110-comparison-grid > div > * {
  display: grid;
  place-items: center;
  min-width: 0;
  min-height: 58px;
  padding: 10px;
  border-right: 1px solid rgba(28, 24, 21, 0.12);
  text-align: center;
  font: 700 11px/1.35 var(--raw-v110-mono);
}

[data-raw-reveal-v110-revision] .raw-v110-comparison-grid > div > *:first-child {
  place-items: center start;
  text-align: left;
  font-family: var(--raw-v110-body);
  font-size: 14px;
}

[data-raw-reveal-v110-revision] .raw-v110-comparison-grid > div > *:last-child {
  border-right: 0;
}

[data-raw-reveal-v110-revision] .raw-v110-comparison-grid > div > strong {
  background: var(--raw-v110-black);
  color: var(--raw-v110-gold-light);
}

[data-raw-reveal-v110-revision] .raw-v110-comparison-grid__head {
  background: #e9dfd0;
}

[data-raw-reveal-v110-revision] .raw-v110-comparison__close {
  text-align: center;
  font-style: italic !important;
}

[data-raw-reveal-v110-revision] .raw-v110-formula-section {
  padding: clamp(64px, 7vw, 104px) clamp(22px, 5vw, 78px);
  background: linear-gradient(122deg, var(--raw-v110-black), #40090d 64%, #720e14);
  color: var(--raw-v110-white);
}

[data-raw-reveal-v110-revision] .raw-v110-formula-section__inner {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(440px, 1.1fr);
  align-items: center;
  gap: clamp(46px, 7vw, 100px);
  width: min(100%, 1280px);
  margin: 0 auto;
}

[data-raw-reveal-v110-revision] .raw-v110-formula-section h2 {
  margin-top: 16px;
  color: var(--raw-v110-cream);
  font: 500 clamp(44px, 4.8vw, 70px)/1 var(--raw-v110-serif);
  letter-spacing: -0.035em;
}

[data-raw-reveal-v110-revision] .raw-v110-formula-section p {
  margin-top: 18px;
  color: rgba(255, 250, 241, 0.72);
  font: 400 17px/1.7 var(--raw-v110-body);
}

[data-raw-reveal-v110-revision] .raw-v110-formula-section__facts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1px;
  margin-top: 28px;
  border: 1px solid rgba(234, 209, 164, 0.32);
  background: rgba(234, 209, 164, 0.24);
}

[data-raw-reveal-v110-revision] .raw-v110-formula-section__facts span {
  min-height: 58px;
  padding: 16px;
  background: rgba(13, 12, 11, 0.88);
  color: var(--raw-v110-gold-light);
  font: 700 11px/1.35 var(--raw-v110-mono);
  letter-spacing: 0.05em;
}

[data-raw-reveal-v110-revision] .raw-v110-formula-section figure {
  position: relative;
  height: min(680px, 60vw);
  overflow: hidden;
  border: 1px solid rgba(234, 209, 164, 0.44);
}

/* Guarantee and FAQ */
[data-raw-reveal-v110-revision] .raw-v110-notes {
  color: var(--raw-v110-ink) !important;
  font: italic 500 19px/1.45 var(--raw-v110-serif) !important;
}

[data-raw-reveal-v110-revision] .raw-v110-kicker {
  color: var(--raw-v110-deep-red) !important;
  font: 700 11px/1.5 var(--raw-v110-mono) !important;
  letter-spacing: 0.055em;
}

[data-raw-reveal-v110-revision] .raw-v110-guarantee {
  padding: clamp(64px, 7vw, 104px) clamp(22px, 5vw, 78px);
  background: linear-gradient(110deg, #0d0c0b 0 44%, #3a090c 44% 75%, #8e1116 100%);
  color: var(--raw-v110-white);
}

[data-raw-reveal-v110-revision] .raw-v110-guarantee__inner {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: clamp(34px, 6vw, 94px);
}

[data-raw-reveal-v110-revision] .raw-v110-guarantee__number {
  color: var(--raw-v110-gold);
  font: 500 clamp(120px, 17vw, 240px)/0.75 var(--raw-v110-serif);
}

[data-raw-reveal-v110-revision] .raw-v110-guarantee p {
  color: rgba(255, 250, 241, 0.72);
}

[data-raw-reveal-v110-revision] .raw-v110-faq h2 {
  max-width: 620px;
}

[data-raw-reveal-v110-revision] .raw-v110-faq__list {
  margin-top: 28px;
  border-top: 1px solid rgba(28, 24, 21, 0.18);
}

[data-raw-reveal-v110-revision] .raw-v110-faq__list article {
  border-bottom: 1px solid rgba(28, 24, 21, 0.18);
}

[data-raw-reveal-v110-revision] .raw-v110-faq__list button {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  width: 100%;
  min-height: 62px;
  padding: 14px 2px;
  border: 0;
  background: transparent;
  color: var(--raw-v110-ink);
  cursor: pointer;
  text-align: left;
  font: 600 17px/1.35 var(--raw-v110-body);
}

[data-raw-reveal-v110-revision] .raw-v110-faq__list button b {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  flex: 0 0 auto;
  border: 1px solid rgba(142, 17, 22, 0.5);
  border-radius: 50%;
  color: var(--raw-v110-deep-red);
  font: 500 20px/1 var(--raw-v110-serif);
}

[data-raw-reveal-v110-revision] .raw-v110-faq__list article > div {
  padding: 0 46px 20px 2px;
  color: rgba(28, 24, 21, 0.72);
  font: 400 15px/1.65 var(--raw-v110-body);
}

[data-raw-reveal-v110-revision] .raw-v110-faq__list article > div[hidden] {
  display: none;
}

/* Closing offer */
[data-raw-reveal-v110-revision] .raw-v110-offer-close {
  padding: clamp(62px, 7vw, 104px) clamp(22px, 5vw, 78px);
  background: linear-gradient(125deg, #0d0c0b 0 34%, #3d080c 64%, #9d1119 100%);
  color: var(--raw-v110-white);
}

[data-raw-reveal-v110-revision] .raw-v110-offer-close__inner {
  display: grid;
  grid-template-columns: minmax(420px, 0.92fr) minmax(0, 1.08fr);
  align-items: center;
  gap: clamp(42px, 6vw, 92px);
}

[data-raw-reveal-v110-revision] .raw-v110-offer-close figure {
  position: relative;
  height: min(680px, 58vw);
  overflow: hidden;
  border: 1px solid rgba(234, 209, 164, 0.5);
  background: var(--raw-v110-red);
}

[data-raw-reveal-v110-revision] .raw-v110-offer-close figure img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

[data-raw-reveal-v110-revision] .raw-v110-offer-close p {
  color: rgba(255, 250, 241, 0.76);
}

[data-raw-reveal-v110-revision] .raw-v110-offer-close ul {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1px;
  margin: 26px 0 0;
  padding: 0;
  border: 1px solid rgba(234, 209, 164, 0.28);
  background: rgba(234, 209, 164, 0.22);
  list-style: none;
}

[data-raw-reveal-v110-revision] .raw-v110-offer-close li {
  min-height: 72px;
  padding: 14px;
  background: rgba(13, 12, 11, 0.9);
}

[data-raw-reveal-v110-revision] .raw-v110-offer-close li > strong,
[data-raw-reveal-v110-revision] .raw-v110-offer-close li > span {
  display: block;
}

[data-raw-reveal-v110-revision] .raw-v110-offer-close li > strong {
  color: var(--raw-v110-white);
  font: 700 12px/1.3 var(--raw-v110-mono);
}

[data-raw-reveal-v110-revision] .raw-v110-offer-close li > span {
  margin-top: 5px;
  color: rgba(255, 250, 241, 0.58);
  font: 400 13px/1.35 var(--raw-v110-body);
}

[data-raw-reveal-v110-revision] .raw-v110-offer-close__scarcity,
[data-raw-reveal-v110-revision] .raw-v110-offer-close__trust {
  margin-top: 9px;
  color: var(--raw-v110-gold-light);
  text-align: center;
  font: 700 12px/1.4 var(--raw-v110-mono);
  letter-spacing: 0.035em;
}

[data-raw-reveal-v110-revision] .raw-v110-offer-close__trust {
  margin-top: 5px;
  color: rgba(255, 250, 241, 0.54);
  font-size: 11px;
}

[data-raw-reveal-v110-revision] .raw-v110-final {
  display: grid;
  justify-items: center;
  padding: clamp(64px, 8vw, 116px) 24px;
  background: var(--raw-v110-deep-red);
  color: var(--raw-v110-white);
  text-align: center;
}

[data-raw-reveal-v110-revision] .raw-v110-final > img {
  width: 72px;
  height: 51px;
  object-fit: contain;
  filter: brightness(0) invert(1);
}

[data-raw-reveal-v110-revision] .raw-v110-final > span {
  margin-top: 14px;
  color: var(--raw-v110-gold-light);
  font: 700 12px/1.4 var(--raw-v110-mono);
  letter-spacing: 0.07em;
}

[data-raw-reveal-v110-revision] .raw-v110-final h2 {
  margin-top: 14px;
  color: var(--raw-v110-cream);
  font: 500 clamp(46px, 6vw, 82px)/1 var(--raw-v110-serif);
  letter-spacing: -0.04em;
}

[data-raw-reveal-v110-revision] .raw-v110-final .raw-v110-primary-cta {
  width: min(100%, 560px);
  margin-top: 24px;
}

[data-raw-reveal-v110-revision] .raw-v110-final > p {
  margin-top: 10px;
  color: rgba(255, 250, 241, 0.62);
  font: 700 11px/1.45 var(--raw-v110-mono);
  letter-spacing: 0.04em;
}

[data-raw-reveal-v110-revision] .raw-v110-footer {
  display: grid;
  justify-items: center;
  padding: 44px 24px calc(50px + env(safe-area-inset-bottom));
  background: var(--raw-v110-black);
  color: var(--raw-v110-white);
  text-align: center;
}

[data-raw-reveal-v110-revision] .raw-v110-footer > img {
  width: 60px;
  height: 42px;
  filter: brightness(0) invert(1);
}

[data-raw-reveal-v110-revision] .raw-v110-footer nav {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 18px;
  margin-top: 16px;
}

[data-raw-reveal-v110-revision] .raw-v110-footer a {
  color: var(--raw-v110-gold-light);
  font: 400 13px/1.4 var(--raw-v110-body);
}

[data-raw-reveal-v110-revision] .raw-v110-footer p {
  max-width: 430px;
  margin-top: 16px;
  color: rgba(255, 250, 241, 0.46);
  font: 400 11px/1.6 var(--raw-v110-body);
}

/* Opaque, viewport-fit offer drawer */
[data-raw-reveal-v110-revision] [data-raw-review-drawer] {
  position: fixed !important;
  inset: 0 !important;
  z-index: 10000 !important;
  display: none !important;
  width: 100vw !important;
  height: 100dvh !important;
  padding: 0 !important;
  overflow: hidden !important;
  visibility: hidden !important;
  opacity: 0 !important;
  background: var(--raw-v110-black) !important;
}

[data-raw-reveal-v110-revision] [data-raw-review-drawer][data-open="true"] {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
}

.raw-reveal-v1-rev40 [data-raw-reveal-v110-revision] [data-raw-review-drawer] {
  display: none !important;
  place-items: unset !important;
  transform: none !important;
}

.raw-reveal-v1-rev40 [data-raw-reveal-v110-revision] [data-raw-review-drawer][data-open="true"] {
  display: block !important;
}

[data-raw-reveal-v110-revision] [data-raw-review-panel] {
  position: relative !important;
  display: grid !important;
  grid-template-rows: 56px 62px minmax(0, 1fr);
  width: 100vw !important;
  height: 100dvh !important;
  max-width: none !important;
  max-height: none !important;
  margin: 0 !important;
  overflow: hidden !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: var(--raw-v110-paper) !important;
  box-shadow: none !important;
  transform: none !important;
}

[data-raw-reveal-v110-revision] .raw-v110-drawer__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  min-height: 0;
  padding: 0 clamp(14px, 4vw, 58px);
  border-bottom: 1px solid rgba(196, 154, 88, 0.44);
  background: var(--raw-v110-black);
  color: var(--raw-v110-white);
}

[data-raw-reveal-v110-revision] .raw-v110-drawer__brand {
  display: flex;
  align-items: baseline;
  gap: 14px;
  font: 700 14px/1 var(--raw-v110-serif);
  letter-spacing: 0.05em;
}

[data-raw-reveal-v110-revision] .raw-v110-drawer__brand span {
  color: var(--raw-v110-gold-light);
  font: 700 11px/1 var(--raw-v110-mono);
  letter-spacing: 0.07em;
}

[data-raw-reveal-v110-revision] .raw-v110-drawer__head button {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 1px solid rgba(255, 250, 241, 0.42);
  border-radius: 0;
  background: transparent;
  color: var(--raw-v110-white);
  cursor: pointer;
  font: 400 28px/1 Arial, sans-serif;
}

[data-raw-reveal-v110-revision] .raw-v110-drawer__urgency {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 5px 20px;
  min-height: 0;
  padding: 8px clamp(14px, 4vw, 58px);
  background: var(--raw-v110-red);
  color: var(--raw-v110-white);
}

[data-raw-reveal-v110-revision] .raw-v110-drawer__urgency > span {
  font: 700 12px/1.25 var(--raw-v110-mono);
  letter-spacing: 0.06em;
}

[data-raw-reveal-v110-revision] .raw-v110-drawer__urgency > strong {
  min-width: 112px;
  padding: 5px 12px;
  border: 1px solid rgba(255, 250, 241, 0.72);
  text-align: center;
  font: 700 23px/1.1 var(--raw-v110-mono);
}

[data-raw-reveal-v110-revision] .raw-v110-drawer__urgency > i {
  grid-column: 1 / -1;
  display: block;
  height: 5px;
  overflow: hidden;
  background: rgba(13, 12, 11, 0.22);
}

[data-raw-reveal-v110-revision] .raw-v110-drawer__urgency > i b {
  display: block;
  height: 100%;
  background: var(--raw-v110-cream);
  transition: width 0.8s linear;
}

[data-raw-reveal-v110-revision] .raw-v110-drawer__body {
  min-height: 0;
  overflow: hidden;
  padding: 14px clamp(14px, 3vw, 46px) 18px;
  background: var(--raw-v110-paper);
}

[data-raw-reveal-v110-revision] .raw-v110-drawer__intro {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: end;
  gap: 12px 26px;
  width: min(100%, 1460px);
  margin: 0 auto 12px;
}

[data-raw-reveal-v110-revision] .raw-v110-drawer__intro h2 {
  color: var(--raw-v110-ink);
  font: 500 clamp(30px, 3.2vw, 48px)/1 var(--raw-v110-serif);
  letter-spacing: -0.03em;
}

[data-raw-reveal-v110-revision] .raw-v110-drawer__intro p {
  max-width: 480px;
  color: rgba(28, 24, 21, 0.64);
  text-align: right;
  font: 400 13px/1.45 var(--raw-v110-body);
}

[data-raw-reveal-v110-revision] .raw-v110-drawer__content {
  display: grid;
  grid-template-columns: minmax(430px, 0.92fr) minmax(520px, 1.08fr);
  align-items: start;
  gap: 16px;
  width: min(100%, 1460px);
  height: calc(100% - 60px);
  margin: 0 auto;
  min-height: 0;
}

[data-raw-reveal-v110-revision] .raw-v110-ladder {
  display: grid;
  align-content: start;
  gap: 8px;
  min-height: 0;
}

[data-raw-reveal-v110-revision] .raw-v110-tier {
  position: relative;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 14px;
  width: 100%;
  min-height: 108px;
  padding: 14px 16px;
  overflow: hidden;
  border: 1px solid rgba(28, 24, 21, 0.2);
  border-radius: 2px;
  background: #fffdfa;
  color: var(--raw-v110-ink);
  cursor: pointer;
  text-align: left;
  box-shadow: none;
}

[data-raw-reveal-v110-revision] .raw-v110-tier--popular {
  min-height: 130px;
  padding-bottom: 34px;
}

[data-raw-reveal-v110-revision] .raw-v110-tier__radio {
  width: 22px;
  height: 22px;
  border: 2px solid rgba(28, 24, 21, 0.38);
  border-radius: 50%;
  background: #fff;
}

[data-raw-reveal-v110-revision] .raw-v110-tier__main,
[data-raw-reveal-v110-revision] .raw-v110-tier__price {
  display: grid;
  gap: 4px;
  min-width: 0;
}

[data-raw-reveal-v110-revision] .raw-v110-tier__main em {
  width: max-content;
  max-width: 100%;
  padding: 4px 7px;
  background: var(--raw-v110-deep-red);
  color: var(--raw-v110-white);
  font: normal 700 11px/1.15 var(--raw-v110-mono);
  letter-spacing: 0.045em;
}

[data-raw-reveal-v110-revision] .raw-v110-tier__main > strong {
  font: 700 13px/1.3 var(--raw-v110-mono);
  letter-spacing: 0.015em;
}

[data-raw-reveal-v110-revision] .raw-v110-tier__main > small {
  color: rgba(28, 24, 21, 0.58);
  font: 700 11px/1.3 var(--raw-v110-mono);
}

[data-raw-reveal-v110-revision] .raw-v110-tier__price {
  justify-items: end;
  text-align: right;
}

[data-raw-reveal-v110-revision] .raw-v110-tier__price s {
  color: rgba(28, 24, 21, 0.46);
  font: 700 12px/1 var(--raw-v110-mono);
}

[data-raw-reveal-v110-revision] .raw-v110-tier__price strong {
  color: var(--raw-v110-ink);
  font: 500 32px/1 var(--raw-v110-serif);
}

[data-raw-reveal-v110-revision] .raw-v110-upgrade::before,
[data-raw-reveal-v110-revision] [data-selected-offer="single"] [data-offer-id="single"],
[data-raw-reveal-v110-revision] [data-selected-offer="three"] [data-offer-id="three"],
[data-raw-reveal-v110-revision] [data-selected-offer="five"] [data-offer-id="five"] {
  border: 2px solid var(--raw-v110-red);
  background: #fff6eb;
}

[data-raw-reveal-v110-revision] [data-selected-offer="single"] [data-offer-id="single"] .raw-v110-tier__radio,
[data-raw-reveal-v110-revision] [data-selected-offer="three"] [data-offer-id="three"] .raw-v110-tier__radio,
[data-raw-reveal-v110-revision] [data-selected-offer="five"] [data-offer-id="five"] .raw-v110-tier__radio {
  border: 6px solid var(--raw-v110-red);
}

[data-raw-reveal-v110-revision] .raw-v110-order {
  min-height: 0;
  padding: 14px;
  border: 1px solid rgba(234, 209, 164, 0.32);
  background: var(--raw-v110-black);
  color: var(--raw-v110-white);
}

[data-raw-reveal-v110-revision] .raw-v110-order__selected small,
[data-raw-reveal-v110-revision] .raw-v110-gifts__title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: 10px;
  color: rgba(255, 250, 241, 0.62);
  font: 700 11px/1.3 var(--raw-v110-mono);
  letter-spacing: 0.04em;
}

[data-raw-reveal-v110-revision] .raw-v110-gifts__title strong {
  color: var(--raw-v110-gold-light);
}

[data-raw-reveal-v110-revision] .raw-v110-gifts {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 1px;
  margin-top: 8px;
  border: 1px solid rgba(255, 250, 241, 0.13);
  background: rgba(255, 250, 241, 0.13);
}

[data-raw-reveal-v110-revision] .raw-v110-gifts article {
  display: grid;
  align-content: center;
  justify-items: center;
  gap: 4px;
  min-width: 0;
  min-height: 88px;
  padding: 8px 5px;
  background: #1d1a18;
  text-align: center;
  transition: opacity 0.2s ease, background 0.2s ease;
}

[data-raw-reveal-v110-revision] .raw-v110-gifts article > span {
  display: grid;
  place-items: center;
  min-width: 28px;
  height: 26px;
  color: var(--raw-v110-gold-light);
  font: 700 11px/1 var(--raw-v110-mono);
}

[data-raw-reveal-v110-revision] .raw-v110-gifts article > strong,
[data-raw-reveal-v110-revision] .raw-v110-gifts article > em {
  min-width: 0;
  color: var(--raw-v110-white);
  font: normal 700 11px/1.2 var(--raw-v110-mono);
  overflow-wrap: anywhere;
}

[data-raw-reveal-v110-revision] .raw-v110-gifts article > em {
  color: rgba(255, 250, 241, 0.58);
}

[data-raw-reveal-v110-revision] .raw-v110-gifts article[data-state="locked"] {
  background: #282422;
  opacity: 0.48;
}

[data-raw-reveal-v110-revision] [data-raw-review-error] {
  margin-top: 8px;
  padding: 8px 10px;
  border: 1px solid var(--raw-v110-red);
  color: var(--raw-v110-white);
  font: 700 11px/1.35 var(--raw-v110-mono);
}

[data-raw-reveal-v110-revision] [data-raw-review-error][hidden] {
  display: none;
}

[data-raw-reveal-v110-revision] [data-raw-review-cta] {
  width: 100%;
  min-height: 56px;
  margin-top: 10px;
  padding: 12px 16px;
  border: 1px solid rgba(13, 12, 11, 0.48);
  border-radius: 2px;
  background: var(--raw-v110-gold);
  color: var(--raw-v110-black);
  cursor: pointer;
  font: 700 14px/1.2 var(--raw-v110-body);
  letter-spacing: 0.06em;
}

[data-raw-reveal-v110-revision] .raw-v110-drawer__trust {
  margin-top: 6px;
  color: rgba(255, 250, 241, 0.54);
  text-align: center;
  font: 700 11px/1.35 var(--raw-v110-mono);
  letter-spacing: 0.025em;
}

[data-raw-reveal-v110-revision] [data-reservation-state="expired"] .raw-v110-drawer__urgency {
  background: var(--raw-v110-deep-red);
}

/* Mobile purchase rail */
[data-raw-reveal-v110-revision] .raw-v110-mobile-sticky {
  position: fixed;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 700;
  display: none;
  align-items: center;
  gap: 10px;
  min-height: calc(68px + env(safe-area-inset-bottom));
  padding: 8px 10px calc(8px + env(safe-area-inset-bottom));
  border-top: 1px solid rgba(196, 154, 88, 0.5);
  background: rgba(13, 12, 11, 0.99);
  color: var(--raw-v110-white);
  opacity: 0;
  transform: translateY(110%);
  transition: transform 0.25s ease, opacity 0.2s ease;
}

[data-raw-reveal-v110-revision] .raw-v110-mobile-sticky.rev61-sticky-visible {
  opacity: 1;
  transform: translateY(0);
}

[data-raw-reveal-v110-revision] .raw-v110-mobile-sticky.rev20-suppress {
  opacity: 0;
  transform: translateY(110%);
  pointer-events: none;
}

[data-raw-reveal-v110-revision] .raw-v110-mobile-sticky > div {
  display: grid;
  gap: 2px;
  min-width: 0;
}

[data-raw-reveal-v110-revision] .raw-v110-mobile-sticky > div strong,
[data-raw-reveal-v110-revision] .raw-v110-mobile-sticky > div span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font: 700 11px/1.2 var(--raw-v110-mono);
}

[data-raw-reveal-v110-revision] .raw-v110-mobile-sticky > div span {
  color: var(--raw-v110-gold-light);
}

[data-raw-reveal-v110-revision] .raw-v110-mobile-sticky button {
  flex: 1 0 auto;
  min-height: 50px;
  padding: 9px 12px;
  border: 0;
  border-radius: 2px;
  background: var(--raw-v110-gold);
  color: var(--raw-v110-black);
  cursor: pointer;
  white-space: nowrap;
  font: 700 11px/1.15 var(--raw-v110-body);
  letter-spacing: 0.045em;
}

@media (max-width: 1120px) {
  [data-raw-reveal-v110-revision] .raw-v110-hero__inner,
  [data-raw-reveal-v110-revision] .raw-v110-section-grid,
  [data-raw-reveal-v110-revision] .raw-v110-formula-section__inner,
  [data-raw-reveal-v110-revision] .raw-v110-offer-close__inner {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  }

  [data-raw-reveal-v110-revision] .raw-v110-hero__product {
    min-height: 500px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-drawer__content {
    grid-template-columns: minmax(390px, 0.9fr) minmax(0, 1.1fr);
  }
}

@media (max-width: 820px) {
  [data-raw-reveal-v110-revision] .raw-v110-section-grid,
  [data-raw-reveal-v110-revision] .raw-v110-formula-section__inner,
  [data-raw-reveal-v110-revision] .raw-v110-offer-close__inner {
    grid-template-columns: minmax(0, 1fr);
  }

  [data-raw-reveal-v110-revision] .raw-v110-section-grid--reverse .raw-v110-copy-column,
  [data-raw-reveal-v110-revision] .raw-v110-section-grid--reverse .raw-v110-story-image {
    order: initial;
  }

  [data-raw-reveal-v110-revision] .raw-v110-story-image,
  [data-raw-reveal-v110-revision] .raw-v110-formula-section figure,
  [data-raw-reveal-v110-revision] .raw-v110-offer-close figure {
    height: min(680px, 112vw);
  }

  [data-raw-reveal-v110-revision] .raw-v110-proof__stats,
  [data-raw-reveal-v110-revision] .raw-v110-review-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  [data-raw-reveal-v110-revision] .raw-v110-ugc__rail {
    display: flex;
    gap: 10px;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
  }

  [data-raw-reveal-v110-revision] .raw-v110-ugc__rail::-webkit-scrollbar {
    display: none;
  }

  [data-raw-reveal-v110-revision] .raw-v110-ugc__rail article {
    flex: 0 0 min(68vw, 280px);
    scroll-snap-align: start;
  }

  [data-raw-reveal-v110-revision] .raw-v110-guarantee__inner {
    grid-template-columns: minmax(0, 1fr);
  }

  [data-raw-reveal-v110-revision] .raw-v110-guarantee__number {
    font-size: 132px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-drawer__intro p {
    display: none;
  }

  [data-raw-reveal-v110-revision] .raw-v110-drawer__intro {
    display: block;
    margin-bottom: 8px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-drawer__content {
    grid-template-columns: minmax(0, 1fr);
    height: calc(100% - 40px);
  }
}

@media (max-width: 767px) {
  [data-raw-reveal-v110-revision] .raw-v110-scroll-root {
    padding-top: 46px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-topbar {
    height: 46px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-topbar__inner {
    gap: 8px;
    padding-inline: 10px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-hero {
    min-height: calc(100svh - 46px) !important;
  }

  [data-raw-reveal-v110-revision] .raw-v110-hero__inner {
    grid-template-columns: minmax(0, 1fr);
    align-content: start;
    gap: 8px;
    min-height: calc(100svh - 46px);
    padding: 8px 14px 12px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-hero__product {
    height: clamp(238px, 32svh, 280px) !important;
    min-height: 238px !important;
    border-color: rgba(234, 209, 164, 0.34);
  }

  [data-raw-reveal-v110-revision] .raw-v110-hero__product img {
    object-position: center 64% !important;
  }

  [data-raw-reveal-v110-revision] .raw-v110-hero__product img {
    object-position: center 48%;
  }

  [data-raw-reveal-v110-revision] .raw-v110-discount-badge {
    top: 8px;
    left: 8px;
    min-width: 82px;
    min-height: 38px;
    padding: 6px 9px;
    font-size: 12px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-hero__copy {
    width: 100%;
  }

  [data-raw-reveal-v110-revision] .raw-v110-logo {
    display: none;
  }

  [data-raw-reveal-v110-revision] .raw-v110-hero h1 {
    margin-top: 4px;
    font-size: clamp(39px, 11.2vw, 47px);
    line-height: 0.94;
  }

  [data-raw-reveal-v110-revision] .raw-v110-hero__copy > p {
    margin-top: 6px;
    font-size: 13.5px;
    line-height: 1.38;
  }

  [data-raw-reveal-v110-revision] .raw-v110-mini-gifts article > strong,
  [data-raw-reveal-v110-revision] .raw-v110-primary-cta {
    min-height: 50px;
    margin-top: 7px;
    padding: 10px 12px;
    font-size: 13px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-story,
  [data-raw-reveal-v110-revision] .raw-v110-faq {
    padding: 58px 20px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-section-grid {
    gap: 28px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-eyebrow > span {
    white-space: normal;
  }

  [data-raw-reveal-v110-revision] .raw-v110-story h2,
  [data-raw-reveal-v110-revision] .raw-v110-faq h2,
  [data-raw-reveal-v110-revision] .raw-v110-proof h2,
  [data-raw-reveal-v110-revision] .raw-v110-reviews h2,
  [data-raw-reveal-v110-revision] .raw-v110-guarantee h2,
  [data-raw-reveal-v110-revision] .raw-v110-offer-close h2 {
    margin-top: 12px;
    font-size: 40px;
    line-height: 1.02;
  }

  [data-raw-reveal-v110-revision] .raw-v110-story p,
  [data-raw-reveal-v110-revision] .raw-v110-faq p,
  [data-raw-reveal-v110-revision] .raw-v110-guarantee p,
  [data-raw-reveal-v110-revision] .raw-v110-offer-close p {
    margin-top: 14px;
    font-size: 15.5px;
    line-height: 1.62;
  }

  [data-raw-reveal-v110-revision] .raw-v110-story-image,
  [data-raw-reveal-v110-revision] .raw-v110-formula-section figure,
  [data-raw-reveal-v110-revision] .raw-v110-offer-close figure {
    height: 118vw;
    max-height: 620px;
    margin-inline: -20px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-mobile-clamp:not([data-expanded="true"]) {
    position: relative;
    max-height: 7.4em;
    overflow: hidden;
  }

  [data-raw-reveal-v110-revision] .raw-v110-mobile-clamp:not([data-expanded="true"])::after {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    height: 42px;
    background: linear-gradient(transparent, var(--raw-v110-paper));
    content: "";
    pointer-events: none;
  }

  [data-raw-reveal-v110-revision] .raw-v110-read-more {
    display: inline-block;
  }

  [data-raw-reveal-v110-revision] .raw-v110-proof,
  [data-raw-reveal-v110-revision] .raw-v110-reviews,
  [data-raw-reveal-v110-revision] .raw-v110-guarantee,
  [data-raw-reveal-v110-revision] .raw-v110-offer-close {
    padding: 58px 20px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-proof__stats {
    margin-top: 24px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-proof__stats article {
    min-height: 104px;
    padding: 14px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-proof__stats strong {
    font-size: 33px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-review-grid {
    grid-template-columns: minmax(0, 1fr);
    margin-top: 24px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-review-grid blockquote {
    min-height: 0;
    padding: 18px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-review-grid blockquote > p {
    font-size: 17px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-ugc__head {
    display: block;
  }

  [data-raw-reveal-v110-revision] .raw-v110-ugc__head h3 {
    margin-top: 5px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-wide-image {
    height: 420px;
    margin-inline: -20px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-comparison-grid > div {
    grid-template-columns: minmax(104px, 1.4fr) repeat(3, minmax(0, 1fr));
  }

  [data-raw-reveal-v110-revision] .raw-v110-comparison-grid > div > * {
    min-height: 56px;
    padding: 7px 4px;
    font-size: 11px;
    overflow-wrap: anywhere;
  }

  [data-raw-reveal-v110-revision] .raw-v110-comparison-grid > div > *:first-child {
    font-size: 12px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-formula-section {
    padding: 58px 20px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-formula-section h2 {
    font-size: 42px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-formula-section figure {
    margin-top: 4px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-guarantee__number {
    font-size: 112px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-offer-close__inner {
    gap: 28px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-offer-close figure {
    order: 2;
  }

  [data-raw-reveal-v110-revision] .raw-v110-offer-close__copy {
    order: 1;
  }

  [data-raw-reveal-v110-revision] .raw-v110-offer-close ul {
    grid-template-columns: minmax(0, 1fr);
  }

  [data-raw-reveal-v110-revision] .raw-v110-offer-close li {
    min-height: 60px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-mobile-sticky {
    display: flex;
  }

  [data-raw-reveal-v110-revision] [data-raw-review-panel] {
    grid-template-rows: 50px 54px minmax(0, 1fr);
  }

  [data-raw-reveal-v110-revision] .raw-v110-drawer__head {
    padding-inline: 10px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-drawer__brand {
    display: grid;
    gap: 2px;
    font-size: 12px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-drawer__brand span {
    font-size: 11px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-drawer__urgency {
    padding: 6px 10px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-drawer__urgency > span {
    font-size: 11px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-drawer__urgency > strong {
    min-width: 88px;
    padding: 4px 7px;
    font-size: 19px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-drawer__body {
    padding: 7px 8px max(7px, env(safe-area-inset-bottom));
  }

  [data-raw-reveal-v110-revision] .raw-v110-drawer__intro {
    height: 36px;
    margin-bottom: 5px;
    overflow: hidden;
  }

  [data-raw-reveal-v110-revision] .raw-v110-drawer__intro h2 {
    font-size: 25px;
    line-height: 1.05;
    white-space: nowrap;
  }

  [data-raw-reveal-v110-revision] .raw-v110-drawer__content {
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
    gap: 6px;
    height: calc(100% - 41px);
  }

  [data-raw-reveal-v110-revision] .raw-v110-ladder {
    gap: 4px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-tier {
    gap: 8px;
    min-height: 66px;
    padding: 7px 8px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-tier--popular {
    min-height: 82px;
    padding-bottom: 22px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-tier__radio {
    width: 18px;
    height: 18px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-tier__main {
    gap: 2px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-tier__main em,
  [data-raw-reveal-v110-revision] .raw-v110-tier__main > strong,
  [data-raw-reveal-v110-revision] .raw-v110-tier__main > small {
    font-size: 11px;
    line-height: 1.08;
  }

  [data-raw-reveal-v110-revision] .raw-v110-tier__main em {
    padding: 2px 4px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-tier__price {
    gap: 1px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-tier__price s {
    font-size: 11px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-tier__price strong {
    font-size: 25px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-order {
    display: grid;
    grid-template-rows: auto auto auto auto auto;
    align-content: end;
    padding: 7px;
    min-height: 0;
  }

  [data-raw-reveal-v110-revision] .raw-v110-order__selected small,
  [data-raw-reveal-v110-revision] .raw-v110-order__selected em,
  [data-raw-reveal-v110-revision] .raw-v110-gifts__title {
    margin-top: 4px;
    font-size: 11px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-gifts {
    margin-top: 4px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-gifts article {
    min-height: 58px;
    gap: 2px;
    padding: 4px 2px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-gifts article > span {
    height: 15px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-gifts article > strong,
  [data-raw-reveal-v110-revision] .raw-v110-gifts article > em {
    font-size: 11px;
    line-height: 1.02;
  }

  [data-raw-reveal-v110-revision] .raw-v110-gifts article > em {
    display: none;
  }

  [data-raw-reveal-v110-revision] [data-raw-review-error] {
    margin-top: 4px;
    padding: 5px 7px;
  }

  [data-raw-reveal-v110-revision] [data-raw-review-cta] {
    min-height: 50px;
    margin-top: 5px;
    padding: 9px 10px;
    font-size: 13px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-drawer__trust {
    margin-top: 3px;
    font-size: 11px;
    line-height: 1.2;
  }
}

@media (max-width: 374px) {
  [data-raw-reveal-v110-revision] .raw-v110-hero__inner {
    padding-inline: 10px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-hero__product {
    height: 170px;
    min-height: 170px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-hero h1 {
    font-size: 38px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-hero__copy > p {
    font-size: 13px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-mobile-sticky > div {
    display: none;
  }

  [data-raw-reveal-v110-revision] .raw-v110-mobile-sticky button {
    width: 100%;
  }

  [data-raw-reveal-v110-revision] .raw-v110-drawer__intro h2 {
    font-size: 23px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-tier__main > small {
    display: none;
  }

  [data-raw-reveal-v110-revision] .raw-v110-gifts article > strong {
    font-size: 11px;
    letter-spacing: -0.04em;
  }
}

@media (prefers-reduced-motion: reduce) {
  [data-raw-reveal-v110-revision] *,
  [data-raw-reveal-v110-revision] *::before,
  [data-raw-reveal-v110-revision] *::after {
    scroll-behavior: auto !important;
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
  }
}

/* ==========================================================================
   v110 delta — two-rung priceless presell
   Branched from the accepted v109 sheet. Everything below implements
   raw-v110-structure.md: 40+60px rail budget (§2), names-only gift row and
   zero page-level dollars (§0/§3), one urgency device per surface (§4), eight
   in-page CTAs (§6), unnumbered sections (§7), proof above the H1 (§8),
   art-directed hero per breakpoint (§9), and an 11px type floor (§10).
   ========================================================================== */

/* §2 — rails. 40px top on every viewport; 60px bottom rail on mobile only. */
[data-raw-reveal-v110-revision] .raw-v110-topbar {
  height: 40px;
}

[data-raw-reveal-v110-revision] .raw-v110-scroll-root {
  padding-top: 40px;
}

[data-raw-reveal-v110-revision] .raw-v110-topbar__inner {
  justify-content: center;
  gap: 8px;
  font: 700 13px/1 var(--raw-v110-mono);
  letter-spacing: 0.055em;
  text-transform: uppercase;
}

[data-raw-reveal-v110-revision] .raw-v110-topbar__inner > i {
  color: var(--raw-v110-gold);
  font-style: normal;
}

[data-raw-reveal-v110-revision] .raw-v110-topbar__batch,
[data-raw-reveal-v110-revision] .raw-v110-topbar__offer {
  white-space: nowrap;
}

[data-raw-reveal-v110-revision] .raw-v110-topbar__offer {
  color: var(--raw-v110-gold-light);
}

[data-raw-reveal-v110-revision] [data-raw-batch-clock] {
  min-width: 76px;
  color: var(--raw-v110-white);
  font-variant-numeric: tabular-nums;
  text-align: center;
}

/* Quiet expiry: the clock disappears, the offer line stays, nothing disables. */
[data-raw-reveal-v110-revision][data-batch-window="closed"] [data-raw-batch-clock],
[data-raw-reveal-v110-revision][data-batch-window="closed"] [data-raw-batch-clock-sep] {
  display: none;
}

/* §8 — hero. Proof above the H1, 620px text column, optically centred desktop. */
[data-raw-reveal-v110-revision] .raw-v110-hero {
  min-height: calc(100svh - 40px) !important;
}

[data-raw-reveal-v110-revision] .raw-v110-hero__inner {
  min-height: calc(100svh - 40px) !important;
  padding-block: clamp(24px, 4.6vh, 52px) clamp(34px, 5.6vh, 62px);
}

[data-raw-reveal-v110-revision] .raw-v110-hero__proof {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 8px;
  margin-top: 14px;
  color: var(--raw-v110-cream);
  font: 700 13px/1.3 var(--raw-v110-mono);
  letter-spacing: 0.05em;
}

[data-raw-reveal-v110-revision] .raw-v110-stars {
  color: var(--raw-v110-gold);
  font-family: Arial, sans-serif;
  font-size: 14px;
  letter-spacing: 0.08em;
}

[data-raw-reveal-v110-revision] .raw-v110-hero__bullets {
  margin: 16px 0 0;
  padding: 0;
  list-style: none;
}

[data-raw-reveal-v110-revision] .raw-v110-hero__bullets li {
  position: relative;
  padding-left: 20px;
  color: var(--raw-v110-white);
  font: 400 16px/1.5 var(--raw-v110-body);
}

[data-raw-reveal-v110-revision] .raw-v110-hero__bullets li + li {
  margin-top: 6px;
}

[data-raw-reveal-v110-revision] .raw-v110-hero__bullets li::before {
  position: absolute;
  left: 0;
  color: var(--raw-v110-gold);
  content: "›";
  font-weight: 700;
}

/* §3 — page-level gift row: names only, no values, no padlocks, no counts. */
[data-raw-reveal-v110-revision] .raw-v110-hero__gifts {
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px solid rgba(234, 209, 164, 0.3);
  color: var(--raw-v110-gold-light);
  font: 700 13px/1.45 var(--raw-v110-mono);
  letter-spacing: 0.06em;
}

[data-raw-reveal-v110-revision] .raw-v110-hero__strip {
  margin-top: 6px;
  color: rgba(255, 250, 241, 0.82);
  font: 400 13px/1.45 var(--raw-v110-mono);
  letter-spacing: 0.04em;
}

/* §7.2 — agitation. Names the problem before anything is sold. */
[data-raw-reveal-v110-revision] .raw-v110-agitation {
  padding: clamp(64px, 8vw, 108px) clamp(20px, 5vw, 78px);
  background: var(--raw-v110-black);
  color: var(--raw-v110-white);
}

[data-raw-reveal-v110-revision] .raw-v110-agitation__inner {
  width: min(100%, 760px);
  margin: 0 auto;
  text-align: center;
}

[data-raw-reveal-v110-revision] .raw-v110-agitation h2 {
  font: 700 clamp(38px, 5.4vw, 62px)/1.02 var(--raw-v110-serif);
}

[data-raw-reveal-v110-revision] .raw-v110-agitation p {
  margin-top: 18px;
  color: rgba(255, 250, 241, 0.88);
  font: 400 clamp(16px, 1.5vw, 18px)/1.62 var(--raw-v110-body);
}

[data-raw-reveal-v110-revision] .raw-v110-agitation p:last-child {
  color: var(--raw-v110-gold-light);
  font-weight: 700;
}

[data-raw-reveal-v110-revision] .raw-v110-agitation .raw-v110-inline-cta {
  margin-top: 26px;
}

/* §7.3 — what two sprays do to her. */
[data-raw-reveal-v110-revision] .raw-v110-effect-list {
  margin: 22px 0 0;
}

[data-raw-reveal-v110-revision] .raw-v110-effect-list dt {
  margin-top: 18px;
  font: 700 clamp(17px, 1.6vw, 20px)/1.3 var(--raw-v110-serif);
}

[data-raw-reveal-v110-revision] .raw-v110-effect-list dd {
  margin: 5px 0 0;
  color: rgba(28, 24, 21, 0.82);
  font: 400 15.5px/1.6 var(--raw-v110-body);
}

/* §7.7 — mechanism ladder: detection → arousal response → seduction. */
[data-raw-reveal-v110-revision] .raw-v110-mechanism-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 26px;
  border: 1px solid rgba(28, 24, 21, 0.16);
}

[data-raw-reveal-v110-revision] .raw-v110-mechanism-grid article {
  padding: 22px 20px;
  border-right: 1px solid rgba(28, 24, 21, 0.16);
}

[data-raw-reveal-v110-revision] .raw-v110-mechanism-grid article:last-child {
  border-right: 0;
}

[data-raw-reveal-v110-revision] .raw-v110-mechanism-grid strong {
  display: block;
  color: var(--raw-v110-deep-red);
  font: 700 13px/1 var(--raw-v110-mono);
  letter-spacing: 0.09em;
  text-transform: uppercase;
}

[data-raw-reveal-v110-revision] .raw-v110-mechanism-grid p {
  margin-top: 10px;
  font: 400 15px/1.58 var(--raw-v110-body);
}

/* §7.6 — video proof is now its own section rather than a review-wall tail. */
[data-raw-reveal-v110-revision] .raw-v110-ugc-section {
  padding: clamp(56px, 6vw, 92px) clamp(20px, 5vw, 78px);
  background: var(--raw-v110-charcoal);
}

[data-raw-reveal-v110-revision] .raw-v110-ugc-section .raw-v110-ugc {
  width: min(100%, 1180px);
  margin: 0 auto;
  padding: 0;
  border: 0;
}

[data-raw-reveal-v110-revision] .raw-v110-ugc__head h2 {
  margin-top: 6px;
  color: var(--raw-v110-white);
  font: 700 clamp(32px, 3.8vw, 46px)/1.04 var(--raw-v110-serif);
}

/* §7.9 — RAW 27 note line. */
[data-raw-reveal-v110-revision] .raw-v110-formula-section .raw-v110-notes {
  margin-top: 14px;
  color: var(--raw-v110-gold-light);
  font: 700 13px/1.5 var(--raw-v110-mono);
  letter-spacing: 0.08em;
}

/* §4 — the page's single scarcity number lives here and nowhere else. */
[data-raw-reveal-v110-revision] .raw-v110-offer-close__scarcity {
  display: grid;
  gap: 8px;
  margin-top: 16px;
  color: var(--raw-v110-gold-light);
  font: 700 13px/1.3 var(--raw-v110-mono);
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

[data-raw-reveal-v110-revision] .raw-v110-offer-close__scarcity > i {
  display: block;
  height: 4px;
  background: rgba(234, 209, 164, 0.24);
}

[data-raw-reveal-v110-revision] .raw-v110-offer-close__scarcity > i b {
  display: block;
  height: 100%;
  background: var(--raw-v110-red);
}

[data-raw-reveal-v110-revision] .raw-v110-final h2 {
  margin-top: 18px;
}

/* §1/§9 — two-rung ladder. MOST POPULAR is first, dominant, and default. */
[data-raw-reveal-v110-revision] .raw-v110-ladder__divider {
  display: grid;
  place-items: center;
  min-height: 22px;
  color: rgba(255, 250, 241, 0.6);
  font: 700 12px/1 var(--raw-v110-mono);
  letter-spacing: 0.16em;
}

[data-raw-reveal-v110-revision] .raw-v110-tier--popular {
  box-shadow: 0 14px 34px rgba(0, 0, 0, 0.42);
}

[data-raw-reveal-v110-revision] .raw-v110-tier--single {
  opacity: 0.94;
  box-shadow: none;
}

[data-raw-reveal-v110-revision] .raw-v110-tier__price b {
  color: var(--raw-v110-gold-light);
  font: 700 12px/1.2 var(--raw-v110-mono);
  letter-spacing: 0.05em;
  white-space: nowrap;
}

/* §12.3 — never restore the equal-weight column ladder on desktop. */
[data-raw-reveal-v110-revision] .raw-v110-ladder {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
}

/* §12.2 — real gift icons, never literal PDF/RAW/↗ text. */
[data-raw-reveal-v110-revision] .raw-v110-gift-icon {
  display: grid;
  place-items: center;
  height: 20px;
  color: var(--raw-v110-gold);
}

[data-raw-reveal-v110-revision] .raw-v110-gift-icon svg {
  width: 18px;
  height: 18px;
}

[data-raw-reveal-v110-revision] .raw-v110-gifts article > strong {
  font: 700 12px/1.2 var(--raw-v110-mono);
  letter-spacing: 0.03em;
  text-transform: none;
}

[data-raw-reveal-v110-revision] .raw-v110-gifts__title > span {
  font: 700 12px/1.2 var(--raw-v110-mono);
  letter-spacing: 0.07em;
}

/* §4 — reservation expiry degrades the roll-on only; every CTA stays live. */
[data-raw-reveal-v110-revision] [data-reservation-state="expired"] [data-gift-id="roll-on"] {
  opacity: 0.55;
}

[data-raw-reveal-v110-revision] [data-reservation-state="expired"] [data-gift-id="roll-on"] strong,
[data-raw-reveal-v110-revision] [data-reservation-state="expired"] [data-gift-id="roll-on"] em {
  text-decoration: line-through;
}

[data-raw-reveal-v110-revision] [data-reservation-state="expired"] .raw-v110-drawer__urgency > strong,
[data-raw-reveal-v110-revision] [data-reservation-state="expired"] .raw-v110-drawer__urgency > i {
  display: none;
}

[data-raw-reveal-v110-revision] [data-reservation-state="expired"] [data-raw-reservation-label] {
  font-size: 12px;
  letter-spacing: 0.05em;
}

/* §9 — restrained elevation: the selected bundle card and the sheet only. */
[data-raw-reveal-v110-revision] .raw-v110-proof__stats article,
[data-raw-reveal-v110-revision] .raw-v110-review-grid blockquote,
[data-raw-reveal-v110-revision] .raw-v110-offer-close li {
  box-shadow: none;
}

/* §9 — desktop hero is a true 3:2 frame, so cover crops nothing. */
@media (min-width: 1025px) {
  [data-raw-reveal-v110-revision] .raw-v110-hero__product {
    height: auto;
    min-height: 0;
    max-height: calc(100svh - 150px);
    aspect-ratio: 3 / 2;
  }

  [data-raw-reveal-v110-revision] .raw-v110-hero__product img {
    height: 100% !important;
    object-position: center 50% !important;
  }
}

@media (max-width: 1024px) {
  /* The mobile/tablet band already contains the whole cluster: never crop it. */
  [data-raw-reveal-v110-revision] .raw-v110-hero__product img {
    object-fit: contain !important;
    object-position: center 50% !important;
  }

  [data-raw-reveal-v110-revision] .raw-v110-hero__product {
    background: linear-gradient(145deg, #c2121c, #7a0a12 72%, #360609);
  }
}

@media (max-width: 767px) {
  /* §2 — 40px top + 60px bottom = 100px of chrome, 567px working fold at 375. */
  [data-raw-reveal-v110-revision] .raw-v110-topbar {
    height: 40px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-topbar__inner {
    gap: 6px;
    padding-inline: 10px;
    font-size: 11px;
    letter-spacing: 0.03em;
  }

  [data-raw-reveal-v110-revision] .raw-v110-stars {
    font-size: 12px;
  }

  [data-raw-reveal-v110-revision] [data-raw-batch-clock] {
    min-width: 62px;
    font-size: 11px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-scroll-root {
    padding-top: 40px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-hero,
  [data-raw-reveal-v110-revision] .raw-v110-hero__inner {
    min-height: calc(100svh - 40px) !important;
  }

  [data-raw-reveal-v110-revision] .raw-v110-hero__inner {
    gap: 10px;
    padding: 10px 16px 14px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-hero__product {
    height: clamp(196px, 26svh, 232px) !important;
    min-height: 196px !important;
  }

  [data-raw-reveal-v110-revision] .raw-v110-hero h1 {
    margin-top: 6px;
    font-size: clamp(33px, 9.2vw, 40px);
    line-height: 0.98;
  }

  [data-raw-reveal-v110-revision] .raw-v110-hero__proof {
    gap: 6px;
    margin-top: 8px;
    font-size: 11px;
    line-height: 1.25;
  }

  [data-raw-reveal-v110-revision] .raw-v110-hero__bullets {
    margin-top: 10px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-hero__bullets li {
    padding-left: 15px;
    font-size: 14px;
    line-height: 1.34;
  }

  [data-raw-reveal-v110-revision] .raw-v110-hero__bullets li + li {
    margin-top: 3px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-primary-cta {
    min-height: 52px;
    margin-top: 12px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-hero__gifts {
    margin-top: 10px;
    padding-top: 9px;
    font-size: 11px;
    line-height: 1.35;
  }

  [data-raw-reveal-v110-revision] .raw-v110-hero__strip {
    margin-top: 4px;
    font-size: 11px;
    line-height: 1.3;
  }

  /* §9 — 48–64px between sections, no gap more than 1.5x its neighbours. */
  [data-raw-reveal-v110-revision] .raw-v110-story,
  [data-raw-reveal-v110-revision] .raw-v110-faq,
  [data-raw-reveal-v110-revision] .raw-v110-proof,
  [data-raw-reveal-v110-revision] .raw-v110-reviews,
  [data-raw-reveal-v110-revision] .raw-v110-guarantee,
  [data-raw-reveal-v110-revision] .raw-v110-offer-close,
  [data-raw-reveal-v110-revision] .raw-v110-formula-section,
  [data-raw-reveal-v110-revision] .raw-v110-agitation,
  [data-raw-reveal-v110-revision] .raw-v110-ugc-section {
    padding-block: 56px;
    padding-inline: 20px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-agitation h2 {
    font-size: 36px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-mechanism-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  [data-raw-reveal-v110-revision] .raw-v110-mechanism-grid article {
    border-right: 0;
    border-bottom: 1px solid rgba(28, 24, 21, 0.16);
  }

  [data-raw-reveal-v110-revision] .raw-v110-mechanism-grid article:last-child {
    border-bottom: 0;
  }

  /* §9 — ~55 visible words per mobile section; the rest sits behind Read more. */
  [data-raw-reveal-v110-revision] .raw-v110-mobile-clamp:not([data-expanded="true"]) {
    max-height: 6.6em;
  }

  [data-raw-reveal-v110-revision] .raw-v110-agitation .raw-v110-mobile-clamp:not([data-expanded="true"])::after {
    background: linear-gradient(transparent, var(--raw-v110-black));
  }

  [data-raw-reveal-v110-revision] .raw-v110-story--light .raw-v110-mobile-clamp:not([data-expanded="true"])::after,
  [data-raw-reveal-v110-revision] .raw-v110-formula-section .raw-v110-mobile-clamp:not([data-expanded="true"])::after {
    background: linear-gradient(transparent, var(--raw-v110-white));
  }

  [data-raw-reveal-v110-revision] .raw-v110-formula-section .raw-v110-mobile-clamp:not([data-expanded="true"])::after {
    background: linear-gradient(transparent, var(--raw-v110-black));
  }

  /* §2 — bottom rail: exactly 60px, two-line block plus CTA. */
  [data-raw-reveal-v110-revision] .raw-v110-mobile-sticky {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 10px;
    height: calc(60px + env(safe-area-inset-bottom));
    min-height: calc(60px + env(safe-area-inset-bottom));
    padding: 0 12px env(safe-area-inset-bottom);
  }

  [data-raw-reveal-v110-revision] .raw-v110-mobile-sticky > strong {
    color: var(--raw-v110-gold-light);
    font: 700 12px/1.2 var(--raw-v110-mono);
    letter-spacing: 0.03em;
  }

  [data-raw-reveal-v110-revision] .raw-v110-mobile-sticky button {
    min-height: 44px;
    padding: 8px 12px;
    font-size: 12px;
  }
}

@media (max-width: 374px) {
  [data-raw-reveal-v110-revision] .raw-v110-topbar__batch {
    display: none;
  }

  [data-raw-reveal-v110-revision] .raw-v110-topbar__inner > i:first-of-type {
    display: none;
  }

  [data-raw-reveal-v110-revision] .raw-v110-hero h1 {
    font-size: 32px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-mobile-sticky > strong {
    font-size: 11px;
  }
}

/* ==========================================================================
   v110 visual-QA repairs — defects found in rendered evidence, not in code
   ========================================================================== */

/* The divider inherited a light colour and vanished on the cream drawer. */
[data-raw-reveal-v110-revision] .raw-v110-ladder__divider {
  min-height: 26px;
  color: rgba(28, 24, 21, 0.55);
}

/* Four gifts, four columns. The inherited 5-up grid left an empty cell and
   pushed "Free RAW Roll-On" across its own border. */
[data-raw-reveal-v110-revision] .raw-v110-gifts {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

[data-raw-reveal-v110-revision] .raw-v110-gifts article > strong,
[data-raw-reveal-v110-revision] .raw-v110-gifts article > em {
  max-width: 100%;
  overflow-wrap: anywhere;
}

/* The drawer body sat at the top of a full-height sheet, leaving a dead half
   screen under the ledger at every viewport. */
[data-raw-reveal-v110-revision] .raw-v110-drawer__body {
  display: grid;
  align-content: center;
}

[data-raw-reveal-v110-revision] .raw-v110-drawer__content {
  align-items: center;
  height: auto;
}

[data-raw-reveal-v110-revision] .raw-v110-drawer__intro {
  grid-template-columns: minmax(0, 1fr);
  gap: 6px;
  text-align: left;
}

[data-raw-reveal-v110-revision] .raw-v110-drawer__intro p {
  max-width: 62ch;
  text-align: left;
}

@media (max-width: 767px) {
  /* Mobile only ever had room for four values once the fifth gift went away. */
  [data-raw-reveal-v110-revision] .raw-v110-gifts article > em {
    display: block;
    font-size: 11px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-gifts article > strong {
    font-size: 11px;
    letter-spacing: -0.01em;
  }

  [data-raw-reveal-v110-revision] .raw-v110-gifts article {
    min-height: 76px;
    padding: 6px 3px;
  }

  /* The top rail clipped "AUGUST BATCH" and the clock at both edges. */
  [data-raw-reveal-v110-revision] .raw-v110-topbar__inner {
    gap: 5px;
    padding-inline: 8px;
    letter-spacing: 0.01em;
  }

  /* The hero was top-aligned inside a 100svh section, so the fold ended in a
     ~230px band of empty gradient under the offer strip. */
  [data-raw-reveal-v110-revision] .raw-v110-hero,
  [data-raw-reveal-v110-revision] .raw-v110-hero__inner {
    min-height: 0 !important;
  }

  [data-raw-reveal-v110-revision] .raw-v110-hero__inner {
    align-content: start;
    padding-bottom: 26px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-hero__product {
    height: clamp(226px, 31svh, 292px) !important;
    min-height: 226px !important;
  }
}

@media (max-width: 430px) {
  [data-raw-reveal-v110-revision] .raw-v110-topbar__inner {
    gap: 4px;
    font-size: 11px;
    letter-spacing: 0;
  }

  [data-raw-reveal-v110-revision] [data-raw-batch-clock] {
    min-width: 58px;
  }
}

@media (max-width: 400px) {
  [data-raw-reveal-v110-revision] .raw-v110-topbar__batch,
  [data-raw-reveal-v110-revision] .raw-v110-topbar__inner > i:first-of-type {
    display: none;
  }

  [data-raw-reveal-v110-revision] .raw-v110-topbar__inner {
    font-size: 11px;
    letter-spacing: 0.02em;
  }
}

/* Short phones (375x667 and similar) need ~40px back to keep the gift row
   inside the 567px working fold. The hero window pays for it, not the copy. */
@media (max-width: 767px) and (max-height: 700px) {
  /* On a 667px-tall phone the hero content ran 29px past its own box and the
     offer strip landed underneath the bottom rail. The hero window pays for the
     space, not the copy. */
  [data-raw-reveal-v110-revision] .raw-v110-hero__product {
    height: clamp(148px, 22svh, 176px) !important;
    min-height: 148px !important;
  }

  [data-raw-reveal-v110-revision] .raw-v110-hero__inner {
    gap: 6px;
    padding-block: 8px 12px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-hero h1 {
    font-size: clamp(30px, 8.4vw, 34px);
  }

  [data-raw-reveal-v110-revision] .raw-v110-hero__bullets li {
    font-size: 13px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-primary-cta {
    min-height: 48px;
    margin-top: 8px;
  }
}

/* The mobile band is letterboxed with object-fit: contain so no cap or carton
   is ever cropped. These stops are sampled from the band's own left edge
   column, so the letterbox reads as the same studio sweep rather than a bar. */
@media (max-width: 1024px) {
  [data-raw-reveal-v110-revision] .raw-v110-hero__product {
    background: linear-gradient(
      180deg,
      rgb(142, 1, 1) 0%,
      rgb(166, 2, 1) 12%,
      rgb(188, 6, 4) 30%,
      rgb(212, 15, 9) 50%,
      rgb(219, 22, 17) 70%,
      rgb(232, 28, 22) 88%,
      rgb(232, 28, 22) 100%
    );
  }
}

/* With two rungs the mobile sheet had room for the drawer's own explainer
   line, which v109 had to hide when it carried three tiers and five gifts. */
@media (max-width: 767px) {
  [data-raw-reveal-v110-revision] .raw-v110-drawer__intro {
    height: auto;
    margin-bottom: 10px;
    overflow: visible;
  }

  [data-raw-reveal-v110-revision] .raw-v110-drawer__intro h2 {
    white-space: normal;
  }

  [data-raw-reveal-v110-revision] .raw-v110-drawer__intro p {
    display: block;
    margin-top: 4px;
    font-size: 13px;
    line-height: 1.42;
  }

  [data-raw-reveal-v110-revision] .raw-v110-tier {
    min-height: 84px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-tier--popular {
    min-height: 96px;
  }
}

/* The agitation section centres its copy, but the inherited CTA is a block and
   was hanging off the left edge of that centred column. */
[data-raw-reveal-v110-revision] .raw-v110-agitation .raw-v110-inline-cta {
  margin-inline: auto;
}

/* ==========================================================================
   P0 — contrast repair
   Sections that read as dark were setting only a gradient, which is a
   background-IMAGE. Their computed background-COLOR stayed the cream page
   colour inherited from the scroll root, so every light-on-dark element
   measured ~1.1:1 against its own computed background. On any device where the
   gradient does not paint, the H1 was invisible.
   Light text is now only ever used over a declared dark colour; the gradient
   is decoration on top of that colour, never load-bearing.
   ========================================================================== */
[data-raw-reveal-v110-revision] .raw-v110-hero,
[data-raw-reveal-v110-revision] .raw-v110-proof,
[data-raw-reveal-v110-revision] .raw-v110-formula-section,
[data-raw-reveal-v110-revision] .raw-v110-guarantee,
[data-raw-reveal-v110-revision] .raw-v110-offer-close,
[data-raw-reveal-v110-revision] .raw-v110-final,
[data-raw-reveal-v110-revision] .raw-v110-agitation,
[data-raw-reveal-v110-revision] .raw-v110-ugc-section,
[data-raw-reveal-v110-revision] .raw-v110-footer {
  background-color: var(--raw-v110-black);
}

/* The hero product frame keeps its own red plate under its gradient. */
[data-raw-reveal-v110-revision] .raw-v110-hero__product {
  background-color: #7a0a12;
}

/* Gold-on-dark accents cleared 4.5:1 only because of the gradient. Lift them
   so they clear against the declared #0d0c0b as well. */
[data-raw-reveal-v110-revision] .raw-v110-stars,
[data-raw-reveal-v110-revision] .raw-v110-guarantee__number,
[data-raw-reveal-v110-revision] .raw-v110-eyebrow--dark > span,
[data-raw-reveal-v110-revision] .raw-v110-offer-close__scarcity {
  color: var(--raw-v110-gold-light);
}

/* READ MORE sat crimson-on-black in the agitation section. */
[data-raw-reveal-v110-revision] .raw-v110-agitation .raw-v110-read-more,
[data-raw-reveal-v110-revision] .raw-v110-formula-section .raw-v110-read-more {
  color: var(--raw-v110-gold-light);
  border-color: rgba(234, 209, 164, 0.5);
}

/* Attribution under the pull quote was 3.62:1 deep-red on cream. */
[data-raw-reveal-v110-revision] .raw-v110-copy-column blockquote cite {
  color: #8a1015;
}

/* ==========================================================================
   Fix-list pass — page (A1–A7) and drawer (B1–B6)
   ========================================================================== */

/* A1 — the rail carries the batch and its counter. No clock exists any more, so
   nothing on the rail counts toward an event the page never names. */
[data-raw-reveal-v110-revision] .raw-v110-topbar__supply {
  color: var(--raw-v110-white);
  white-space: nowrap;
}

[data-raw-reveal-v110-revision] .raw-v110-topbar__supply b {
  color: var(--raw-v110-gold-light);
  font-variant-numeric: tabular-nums;
}

[data-raw-reveal-v110-revision] .raw-v110-topbar__meter {
  display: block;
  width: clamp(48px, 9vw, 110px);
  height: 4px;
  background: rgba(234, 209, 164, 0.26);
}

[data-raw-reveal-v110-revision] .raw-v110-topbar__meter b {
  display: block;
  height: 100%;
  background: var(--raw-v110-red);
}

/* A2/A3 — the hero owns the first screen: it fills the viewport minus both
   rails and centres its content, so nothing lands under the bottom rail and the
   next section starts below the fold instead of bleeding into it. */
@media (max-width: 767px) {
  [data-raw-reveal-v110-revision] .raw-v110-hero,
  [data-raw-reveal-v110-revision] .raw-v110-hero__inner {
    min-height: calc(100svh - 100px) !important;
  }

  [data-raw-reveal-v110-revision] .raw-v110-hero__inner {
    align-content: center;
    padding-block: 14px 18px;
  }

  /* A1 — mobile keeps the batch label; only the offer line is dropped. */
  [data-raw-reveal-v110-revision] .raw-v110-topbar__offer,
  [data-raw-reveal-v110-revision] .raw-v110-topbar__sep:not(.raw-v110-topbar__sep--always) {
    display: none;
  }
}

@media (max-width: 400px) {
  [data-raw-reveal-v110-revision] .raw-v110-topbar__batch {
    display: inline;
  }

  [data-raw-reveal-v110-revision] .raw-v110-topbar__meter {
    display: none;
  }
}

/* A4 — section rhythm. The dark editorial sections carried far more internal
   padding than their neighbours, which is where the oversized gaps came from. */
@media (max-width: 767px) {
  [data-raw-reveal-v110-revision] .raw-v110-formula-section,
  [data-raw-reveal-v110-revision] .raw-v110-story,
  [data-raw-reveal-v110-revision] .raw-v110-close-range {
    padding-block: 56px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-formula-section__inner {
    gap: 24px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-formula-section figure {
    margin-top: 0;
  }

  [data-raw-reveal-v110-revision] .raw-v110-section-grid {
    gap: 24px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-notes {
    margin-bottom: 0;
  }
}

/* A7 — close the desktop hero void between the headline and the bullets. */
@media (min-width: 1025px) {
  [data-raw-reveal-v110-revision] .raw-v110-hero__bullets {
    margin-top: 12px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-hero h1 {
    margin-bottom: 0;
  }
}

/* B1 — every trace of the expiry state is gone, including its styling. */
[data-raw-reveal-v110-revision] [data-gift-id="roll-on"] strong,
[data-raw-reveal-v110-revision] [data-gift-id="roll-on"] em {
  text-decoration: none;
}

/* B2 — one 44px bar instead of two stacked bars totalling ~220px. */
[data-raw-reveal-v110-revision] [data-raw-review-panel] {
  grid-template-rows: 44px minmax(0, 1fr);
}

[data-raw-reveal-v110-revision] .raw-v110-drawer__head {
  height: 44px;
  min-height: 44px;
}

[data-raw-reveal-v110-revision] .raw-v110-drawer__brand {
  display: block;
  font-size: 13px;
  letter-spacing: 0.09em;
}

/* B3/B5 — content starts under the header and runs on a fixed rhythm; the CTA
   group anchors to the bottom rather than leaving a void beneath it. */
[data-raw-reveal-v110-revision] .raw-v110-drawer__body {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  align-content: start;
  gap: 20px;
  padding: 20px clamp(14px, 3vw, 46px) 20px;
}

[data-raw-reveal-v110-revision] .raw-v110-drawer__intro {
  gap: 8px;
  margin-bottom: 0;
}

[data-raw-reveal-v110-revision] .raw-v110-drawer__content {
  align-content: start;
  gap: 28px;
  height: auto;
}

[data-raw-reveal-v110-revision] .raw-v110-ladder {
  gap: 12px;
}

[data-raw-reveal-v110-revision] .raw-v110-order {
  display: grid;
  align-content: start;
  gap: 12px;
}

[data-raw-reveal-v110-revision] .raw-v110-gifts {
  margin-top: 0;
}

[data-raw-reveal-v110-revision] .raw-v110-drawer__trust {
  margin-top: 0;
}

/* B6 — desktop: the commit button sits under the ladder it commits to, not in a
   parallel column beside the rung the shopper did not pick. */
@media (min-width: 821px) {
  [data-raw-reveal-v110-revision] .raw-v110-drawer__content {
    grid-template-columns: minmax(0, 1fr);
    width: min(100%, 720px);
    margin-inline: auto;
  }

  [data-raw-reveal-v110-revision] .raw-v110-drawer__intro {
    width: min(100%, 720px);
    margin-inline: auto;
  }
}

@media (max-width: 767px) {
  [data-raw-reveal-v110-revision] .raw-v110-drawer__body {
    gap: 16px;
    padding: 16px 14px max(16px, env(safe-area-inset-bottom));
  }

  [data-raw-reveal-v110-revision] .raw-v110-drawer__content {
    gap: 20px;
    height: auto;
  }

  [data-raw-reveal-v110-revision] .raw-v110-drawer__intro h2 {
    font-size: 27px;
    white-space: normal;
  }

  [data-raw-reveal-v110-revision] .raw-v110-tier {
    min-height: 78px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-tier--popular {
    min-height: 86px;
    padding-bottom: 8px;
  }
}

/* Two survivors of the contrast pass, both caused by inherited legacy sheets:
   `raw-reveal-v1-main.min.css` carries `!important` colour rules that outrank
   normal v110 declarations, and the pull-quote attribution sat on a gold-tinted
   panel that lifted its effective background. Both are pinned explicitly and
   verified by measurement rather than by specificity reasoning. */
[data-raw-reveal-v110-revision] .raw-v110-formula-section .raw-v110-notes {
  color: var(--raw-v110-gold-light) !important;
}

[data-raw-reveal-v110-revision] .raw-v110-copy-column blockquote cite {
  color: #6d0c10;
}

/* A4 — the widest remaining internal gap was the gutter between the effects
   copy column and its image, at roughly twice the 48–64px target. */
@media (max-width: 767px) {
  [data-raw-reveal-v110-revision] .raw-v110-effects .raw-v110-section-grid {
    gap: 20px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-copy-column blockquote {
    margin-bottom: 0;
  }

  [data-raw-reveal-v110-revision] .raw-v110-effect-list dd:last-of-type {
    margin-bottom: 0;
  }
}

/* ==========================================================================
   Operator review pass — full first screen, no white bands, dense drawer
   ========================================================================== */

/* Three gifts, three columns. */
[data-raw-reveal-v110-revision] .raw-v110-gifts {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

/* The hero filled its box but not the screen: centring left a band of empty
   gradient under the offer strip. The product frame now absorbs whatever the
   copy does not use, so the first screen is full of page rather than padding. */
@media (max-width: 1024px) {
  [data-raw-reveal-v110-revision] .raw-v110-hero__inner {
    grid-template-rows: minmax(120px, 1fr) auto;
    align-content: stretch;
  }

  [data-raw-reveal-v110-revision] .raw-v110-hero__product {
    height: auto !important;
    min-height: 0 !important;
    align-self: stretch;
  }
}

[data-raw-reveal-v110-revision] .raw-v110-hero__trust {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 14px;
  margin: 12px 0 0;
  padding: 10px 0 0;
  border-top: 1px solid rgba(234, 209, 164, 0.24);
  list-style: none;
}

[data-raw-reveal-v110-revision] .raw-v110-hero__trust li {
  position: relative;
  padding-left: 14px;
  color: rgba(255, 250, 241, 0.86);
  font: 700 11px/1.35 var(--raw-v110-mono);
  letter-spacing: 0.04em;
}

[data-raw-reveal-v110-revision] .raw-v110-hero__trust li::before {
  position: absolute;
  left: 0;
  color: var(--raw-v110-gold);
  content: "✓";
}

/* A full-bleed image that ends a section was followed by 56px of cream before
   the next section began — the white band under WHAT SHE NOTICES and THE LAST
   STEP BEFORE YOU WALK OUT. The image now butts straight into what follows. */
@media (max-width: 820px) {
  [data-raw-reveal-v110-revision] .raw-v110-effects,
  [data-raw-reveal-v110-revision] .raw-v110-close-range {
    padding-bottom: 0;
  }

  [data-raw-reveal-v110-revision] .raw-v110-effects .raw-v110-story-image,
  [data-raw-reveal-v110-revision] .raw-v110-close-range .raw-v110-story-image {
    margin-bottom: 0;
  }
}

/* ---- Drawer -------------------------------------------------------------- */

/* The header said only AUGUST BATCH and carried no reason to act. It now holds
   the batch counter, so the sheet opens with live scarcity instead of a label —
   urgency that cannot expire on a customer mid-decision. */
[data-raw-reveal-v110-revision] .raw-v110-drawer__brand {
  display: flex;
  align-items: baseline;
  gap: 8px;
  white-space: nowrap;
}

[data-raw-reveal-v110-revision] .raw-v110-drawer__brand i {
  color: var(--raw-v110-gold);
  font-style: normal;
}

[data-raw-reveal-v110-revision] .raw-v110-drawer__brand b {
  color: var(--raw-v110-gold-light);
  font: 700 12px/1 var(--raw-v110-mono);
  letter-spacing: 0.04em;
}

[data-raw-reveal-v110-revision] .raw-v110-drawer__brand b span {
  color: var(--raw-v110-white);
  font-variant-numeric: tabular-nums;
}

/* A selected-offer summary gives the sheet a subject: the shopper sees what
   they are claiming, with the product, before the ladder asks them to choose. */
[data-raw-reveal-v110-revision] .raw-v110-drawer__summary {
  display: grid;
  grid-template-columns: 62px minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  padding: 10px 12px;
  border: 1px solid rgba(28, 24, 21, 0.16);
  background: rgba(196, 154, 88, 0.1);
}

[data-raw-reveal-v110-revision] .raw-v110-drawer__summary img {
  width: 62px;
  height: 62px;
  object-fit: cover;
}

[data-raw-reveal-v110-revision] .raw-v110-drawer__summary span {
  display: grid;
  gap: 2px;
  min-width: 0;
}

[data-raw-reveal-v110-revision] .raw-v110-drawer__summary small {
  color: rgba(28, 24, 21, 0.62);
  font: 700 11px/1 var(--raw-v110-mono);
  letter-spacing: 0.09em;
}

[data-raw-reveal-v110-revision] .raw-v110-drawer__summary strong {
  color: var(--raw-v110-ink);
  font: 700 14px/1.15 var(--raw-v110-mono);
  letter-spacing: 0.02em;
}

[data-raw-reveal-v110-revision] .raw-v110-drawer__summary em {
  color: rgba(28, 24, 21, 0.72);
  font: 400 12px/1.25 var(--raw-v110-body);
  font-style: normal;
}

[data-raw-reveal-v110-revision] .raw-v110-drawer__summary b {
  color: var(--raw-v110-ink);
  font: 500 26px/1 var(--raw-v110-serif);
}

/* The body stretched its last row and parked the CTA group at the bottom,
   leaving a hole in the middle. Rows are sized to their content and the whole
   stack is centred, so the sheet reads as one dense block at any height. */
[data-raw-reveal-v110-revision] .raw-v110-drawer__body {
  grid-template-rows: auto auto auto;
  align-content: center;
  gap: 14px;
}

[data-raw-reveal-v110-revision] .raw-v110-drawer__content {
  gap: 14px;
}

[data-raw-reveal-v110-revision] .raw-v110-order {
  align-content: start;
  gap: 10px;
  padding: 12px;
}

@media (max-width: 767px) {
  [data-raw-reveal-v110-revision] .raw-v110-drawer__body {
    gap: 12px;
    padding: 12px 14px max(12px, env(safe-area-inset-bottom));
  }

  [data-raw-reveal-v110-revision] .raw-v110-drawer__content {
    gap: 12px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-drawer__intro h2 {
    font-size: 25px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-drawer__intro p {
    font-size: 12.5px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-order {
    padding: 10px;
  }
}

/* ==========================================================================
   Drawer v2 — urgency band, tier cards with product, itemised order
   ========================================================================== */

[data-raw-reveal-v110-revision] [data-raw-review-panel] {
  grid-template-rows: 44px auto minmax(0, 1fr);
}

[data-raw-reveal-v110-revision] .raw-v110-drawer__brand {
  display: grid;
  gap: 1px;
  white-space: nowrap;
}

[data-raw-reveal-v110-revision] .raw-v110-drawer__brand strong {
  color: var(--raw-v110-white);
  font: 700 13px/1 var(--raw-v110-serif);
  letter-spacing: 0.1em;
}

[data-raw-reveal-v110-revision] .raw-v110-drawer__brand span {
  color: var(--raw-v110-gold-light);
  font: 700 10.5px/1 var(--raw-v110-mono);
  letter-spacing: 0.07em;
}

/* The red band the drawer was missing. */
[data-raw-reveal-v110-revision] .raw-v110-drawer__urgency {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  padding: 10px clamp(14px, 3vw, 46px);
  background: linear-gradient(96deg, #8e1116, #d81e28 78%);
  color: var(--raw-v110-white);
}

[data-raw-reveal-v110-revision] .raw-v110-drawer__urgency > span {
  font: 700 12px/1.2 var(--raw-v110-mono);
  letter-spacing: 0.07em;
}

[data-raw-reveal-v110-revision] .raw-v110-drawer__urgency > strong {
  min-width: 96px;
  padding: 5px 10px;
  border: 1px solid rgba(255, 250, 241, 0.6);
  font: 700 21px/1 var(--raw-v110-mono);
  font-variant-numeric: tabular-nums;
  text-align: center;
}

[data-raw-reveal-v110-revision] .raw-v110-drawer__urgency > i {
  grid-column: 1 / -1;
  display: block;
  height: 3px;
  background: rgba(255, 250, 241, 0.28);
}

[data-raw-reveal-v110-revision] .raw-v110-drawer__urgency > i b {
  display: block;
  height: 100%;
  background: var(--raw-v110-gold-light);
  transition: width 1s linear;
}

/* Expiry changes wording only. Nothing is withdrawn, so the band calms down
   rather than shouting about something the shopper can no longer have. */
[data-raw-reveal-v110-revision] [data-offer-window="held"] .raw-v110-drawer__urgency {
  background: linear-gradient(96deg, #2b090b, #6b0d12 78%);
}

[data-raw-reveal-v110-revision] [data-offer-window="held"] .raw-v110-drawer__urgency > strong {
  font-size: 14px;
  letter-spacing: 0.08em;
}

/* Tier cards now carry the product, like the rungs the operator preferred. */
[data-raw-reveal-v110-revision] .raw-v110-tier {
  grid-template-columns: 62px minmax(0, 1fr) 22px;
  align-items: center;
  gap: 12px;
  padding: 12px;
  text-align: left;
}

[data-raw-reveal-v110-revision] .raw-v110-tier > img {
  width: 62px;
  height: 78px;
  object-fit: cover;
  border: 1px solid rgba(28, 24, 21, 0.18);
}

[data-raw-reveal-v110-revision] .raw-v110-tier__value {
  display: block;
  margin-top: 3px;
  color: var(--raw-v110-deep-red);
  font: 700 12.5px/1.3 var(--raw-v110-mono);
  letter-spacing: 0.01em;
}

[data-raw-reveal-v110-revision] .raw-v110-tier__value s {
  color: rgba(28, 24, 21, 0.5);
}

[data-raw-reveal-v110-revision] .raw-v110-tier__value u {
  color: var(--raw-v110-ink);
  text-decoration: none;
}

/* Itemised order — the breakdown the drawer was missing entirely. */
[data-raw-reveal-v110-revision] .raw-v110-order__head {
  color: var(--raw-v110-gold-light);
  font: 700 11px/1 var(--raw-v110-mono);
  letter-spacing: 0.1em;
}

[data-raw-reveal-v110-revision] .raw-v110-order__lines {
  display: grid;
  gap: 6px;
  margin: 0;
  padding: 0;
  list-style: none;
}

[data-raw-reveal-v110-revision] .raw-v110-order__lines li {
  display: grid;
  grid-template-columns: 40px minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  padding: 8px 10px;
  background: rgba(255, 250, 241, 0.06);
}

[data-raw-reveal-v110-revision] .raw-v110-order__qty {
  display: grid;
  place-items: center;
  height: 24px;
  border-radius: 999px;
  background: var(--raw-v110-deep-red);
  color: var(--raw-v110-white);
  font: 700 10.5px/1 var(--raw-v110-mono);
}

[data-raw-reveal-v110-revision] .raw-v110-order__name {
  color: var(--raw-v110-white);
  font: 700 11.5px/1.25 var(--raw-v110-mono);
  letter-spacing: 0.02em;
}

[data-raw-reveal-v110-revision] .raw-v110-order__val {
  color: rgba(255, 250, 241, 0.72);
  font: 700 11.5px/1 var(--raw-v110-mono);
  white-space: nowrap;
}

[data-raw-reveal-v110-revision] .raw-v110-order__lines li[data-free="true"] .raw-v110-order__val {
  color: var(--raw-v110-gold-light);
}

[data-raw-reveal-v110-revision] .raw-v110-order__total,
[data-raw-reveal-v110-revision] .raw-v110-order__saving {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 12px;
  color: rgba(255, 250, 241, 0.78);
  font: 700 11.5px/1 var(--raw-v110-mono);
  letter-spacing: 0.06em;
}

[data-raw-reveal-v110-revision] .raw-v110-order__saving b {
  color: var(--raw-v110-gold-light);
}

[data-raw-reveal-v110-revision] .raw-v110-order__pay {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  padding: 10px 12px;
  background: var(--raw-v110-black);
  color: var(--raw-v110-white);
  font: 700 12px/1 var(--raw-v110-mono);
  letter-spacing: 0.08em;
}

[data-raw-reveal-v110-revision] .raw-v110-order__pay b {
  color: var(--raw-v110-gold-light);
  font: 500 26px/1 var(--raw-v110-serif);
  letter-spacing: 0;
}

[data-raw-reveal-v110-revision] .raw-v110-order__promise {
  color: var(--raw-v110-gold-light);
  font: 700 11.5px/1 var(--raw-v110-mono);
  letter-spacing: 0.08em;
  text-align: center;
}

/* The hero frame matches the asset's own aspect, so cover fills it exactly:
   no letterbox, no crop, and the image grows with the frame instead of the
   border growing around a fixed image. */
@media (max-width: 1024px) {
  [data-raw-reveal-v110-revision] .raw-v110-hero__product {
    aspect-ratio: 1200 / 740;
    align-self: start;
  }

  [data-raw-reveal-v110-revision] .raw-v110-hero__product img {
    object-fit: cover !important;
  }

  [data-raw-reveal-v110-revision] .raw-v110-hero__inner {
    grid-template-rows: auto auto;
    align-content: center;
  }
}

[data-raw-reveal-v110-revision] .raw-v110-hero__quote {
  margin-top: 14px;
  padding: 10px 0 0;
  border-top: 1px solid rgba(234, 209, 164, 0.24);
  color: var(--raw-v110-cream);
  font: italic 400 15px/1.45 var(--raw-v110-body);
}

[data-raw-reveal-v110-revision] .raw-v110-hero__quote cite {
  display: block;
  margin-top: 5px;
  color: var(--raw-v110-gold-light);
  font: 700 11px/1 var(--raw-v110-mono);
  font-style: normal;
  letter-spacing: 0.07em;
}

@media (max-width: 767px) {
  [data-raw-reveal-v110-revision] .raw-v110-drawer__urgency {
    padding: 8px 14px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-drawer__urgency > span {
    font-size: 11px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-drawer__urgency > strong {
    min-width: 84px;
    font-size: 19px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-tier {
    grid-template-columns: 54px minmax(0, 1fr) 20px;
    gap: 10px;
    padding: 10px;
    min-height: 0;
  }

  [data-raw-reveal-v110-revision] .raw-v110-tier > img {
    width: 54px;
    height: 68px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-tier--popular {
    min-height: 0;
  }

  [data-raw-reveal-v110-revision] .raw-v110-order__lines li {
    padding: 6px 8px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-hero__quote {
    margin-top: 10px;
    padding-top: 8px;
    font-size: 13.5px;
  }
}

/* The drawer stack is a flex column, not a grid. The inherited v109 grid rules
   (`grid-template-rows` with `align-content: end`) were sizing rows against a
   layout that no longer exists, which let the order block start before the
   ladder had finished and paint over the single-bottle card. */
[data-raw-reveal-v110-revision] .raw-v110-drawer__content {
  display: flex !important;
  flex-direction: column;
  gap: 12px;
  height: auto !important;
  grid-template-columns: none !important;
  grid-template-rows: none !important;
}

[data-raw-reveal-v110-revision] .raw-v110-ladder,
[data-raw-reveal-v110-revision] .raw-v110-order {
  display: flex !important;
  flex-direction: column;
  margin: 0 !important;
  grid-template-rows: none !important;
}

[data-raw-reveal-v110-revision] .raw-v110-ladder {
  gap: 8px;
}

[data-raw-reveal-v110-revision] .raw-v110-order {
  gap: 8px;
}

/* The whole sheet has to clear a 844px viewport with the timer band added, so
   the order block is tightened rather than allowed to overflow. */
@media (max-width: 767px) {
  [data-raw-reveal-v110-revision] .raw-v110-drawer__body {
    gap: 10px;
    padding: 10px 14px max(10px, env(safe-area-inset-bottom));
  }

  [data-raw-reveal-v110-revision] .raw-v110-drawer__content {
    gap: 10px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-drawer__intro h2 {
    font-size: 23px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-drawer__intro p {
    font-size: 12px;
    line-height: 1.35;
  }

  [data-raw-reveal-v110-revision] .raw-v110-order {
    gap: 6px;
    padding: 8px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-order__lines {
    gap: 4px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-order__lines li {
    grid-template-columns: 34px minmax(0, 1fr) auto;
    gap: 8px;
    padding: 5px 7px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-order__qty {
    height: 20px;
    font-size: 9.5px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-order__name,
  [data-raw-reveal-v110-revision] .raw-v110-order__val {
    font-size: 11px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-order__pay {
    padding: 7px 10px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-order__pay b {
    font-size: 23px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-order__promise {
    font-size: 11px;
  }

  [data-raw-reveal-v110-revision] [data-raw-review-cta] {
    min-height: 46px;
    margin-top: 0;
    font-size: 12.5px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-tier__value {
    font-size: 11.5px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-tier__main > strong {
    font-size: 12px;
    line-height: 1.2;
  }
}

/* Short phones: the timer band and the itemised order together push the commit
   button below a 667px fold, so the sheet is compressed rather than scrolled.
   Nothing drops below the 11px type floor. */
@media (max-width: 767px) and (max-height: 700px) {
  [data-raw-reveal-v110-revision] .raw-v110-drawer__body {
    gap: 8px;
    padding: 8px 12px max(8px, env(safe-area-inset-bottom));
  }

  [data-raw-reveal-v110-revision] .raw-v110-drawer__content {
    gap: 8px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-drawer__intro h2 {
    font-size: 20px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-drawer__intro p {
    display: none;
  }

  [data-raw-reveal-v110-revision] .raw-v110-drawer__urgency {
    padding: 6px 12px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-drawer__urgency > strong {
    min-width: 76px;
    padding: 3px 8px;
    font-size: 17px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-tier > img {
    width: 46px;
    height: 58px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-tier {
    grid-template-columns: 46px minmax(0, 1fr) 18px;
    padding: 8px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-ladder {
    gap: 6px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-ladder__divider {
    min-height: 14px;
    font-size: 11px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-order {
    gap: 5px;
    padding: 7px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-order__lines li {
    padding: 4px 6px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-order__qty {
    height: 18px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-order__pay {
    padding: 6px 8px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-order__pay b {
    font-size: 20px;
  }

  [data-raw-reveal-v110-revision] [data-raw-review-cta] {
    min-height: 44px;
    font-size: 11.5px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-drawer__trust {
    font-size: 11px;
  }
}

/* ==========================================================================
   One price lock everywhere; no layout shift when switching rungs
   ========================================================================== */

[data-raw-reveal-v110-revision] .raw-v110-topbar__lock {
  color: var(--raw-v110-gold-light);
  white-space: nowrap;
}

[data-raw-reveal-v110-revision] .raw-v110-topbar__inner > [data-raw-offer-clock] {
  min-width: 62px;
  color: var(--raw-v110-white);
  font-variant-numeric: tabular-nums;
  text-align: center;
}

/* The offer box carries the same lock, in the same words, as the rail. */
[data-raw-reveal-v110-revision] .raw-v110-offer-close__scarcity {
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  text-transform: none;
}

[data-raw-reveal-v110-revision] .raw-v110-offer-close__scarcity > span {
  font: 700 13px/1.2 var(--raw-v110-mono);
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

[data-raw-reveal-v110-revision] .raw-v110-offer-close__scarcity > strong {
  padding: 4px 10px;
  border: 1px solid rgba(234, 209, 164, 0.55);
  color: var(--raw-v110-white);
  font: 700 19px/1 var(--raw-v110-mono);
  font-variant-numeric: tabular-nums;
}

[data-raw-reveal-v110-revision] .raw-v110-offer-close__scarcity > i {
  grid-column: 1 / -1;
}

/* Expiry is quiet: wording changes, nothing is withdrawn, the button stays live. */
[data-raw-reveal-v110-revision][data-offer-window="expired"] .raw-v110-topbar__lock,
[data-raw-reveal-v110-revision][data-offer-window="expired"] .raw-v110-offer-close__scarcity > span {
  color: rgba(255, 250, 241, 0.7);
}

[data-raw-reveal-v110-revision] [data-offer-window="expired"] .raw-v110-drawer__urgency {
  background: linear-gradient(96deg, #2b090b, #6b0d12 78%);
}

/* Locked gift rows keep their place so the sheet cannot resize on a rung switch. */
[data-raw-reveal-v110-revision] .raw-v110-order__lines li[data-free="false"] .raw-v110-order__qty {
  background: rgba(255, 250, 241, 0.16);
  color: rgba(255, 250, 241, 0.75);
}

[data-raw-reveal-v110-revision] .raw-v110-order__lines li[data-free="false"] .raw-v110-order__name,
[data-raw-reveal-v110-revision] .raw-v110-order__lines li[data-free="false"] .raw-v110-order__val {
  color: rgba(255, 250, 241, 0.5);
}

[data-raw-reveal-v110-revision] .raw-v110-order__lines li[data-free="false"] .raw-v110-order__val {
  font-size: 10.5px;
  letter-spacing: 0.04em;
}

/* ==========================================================================
   Savings emphasis + no clipping under mobile browser chrome
   ========================================================================== */

/* On a real Android browser the address bar and nav bar eat height that
   `100dvh` still counts, so the trust line was being cut off. `svh` is the
   smallest viewport unit — it assumes chrome is showing, so the sheet fits
   whether the bar is expanded or collapsed. */
[data-raw-reveal-v110-revision] [data-raw-review-panel] {
  height: 100svh !important;
  max-height: 100svh !important;
}

[data-raw-reveal-v110-revision] .raw-v110-drawer__body {
  padding-bottom: calc(14px + env(safe-area-inset-bottom)) !important;
}

[data-raw-reveal-v110-revision] .raw-v110-drawer__trust {
  padding-bottom: 2px;
}

/* ---- Savings, stated loudly ------------------------------------------- */

/* The struck value is the whole argument, so it is sized like one. */
[data-raw-reveal-v110-revision] .raw-v110-tier__value {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 4px 6px;
  margin-top: 4px;
  font-size: 13px;
}

[data-raw-reveal-v110-revision] .raw-v110-tier__value s {
  color: #a8121a;
  font-size: 15px;
  text-decoration: line-through;
  text-decoration-thickness: 2px;
}

[data-raw-reveal-v110-revision] .raw-v110-tier__value u {
  color: var(--raw-v110-ink);
  font-size: 17px;
  font-weight: 700;
}

/* The saving gets its own badge rather than trailing a run of small print. */
[data-raw-reveal-v110-revision] .raw-v110-tier__main > small {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  margin-top: 4px;
}

[data-raw-reveal-v110-revision] .raw-v110-tier__save {
  display: inline-block;
  padding: 3px 7px;
  background: var(--raw-v110-deep-red);
  color: var(--raw-v110-white);
  font: 700 12px/1 var(--raw-v110-mono);
  letter-spacing: 0.03em;
}

/* Order block: the struck total and the saving are the loudest things in it. */
[data-raw-reveal-v110-revision] .raw-v110-order__total b {
  color: rgba(255, 250, 241, 0.72);
  font-size: 14px;
  text-decoration: line-through;
  text-decoration-color: #e0454d;
  text-decoration-thickness: 2px;
}

[data-raw-reveal-v110-revision] .raw-v110-order__saving {
  align-items: center;
  padding: 8px 10px;
  background: linear-gradient(96deg, #8e1116, #d81e28 82%);
  color: var(--raw-v110-white);
}

[data-raw-reveal-v110-revision] .raw-v110-order__saving span {
  font-size: 12px;
  letter-spacing: 0.09em;
}

[data-raw-reveal-v110-revision] .raw-v110-order__saving b {
  color: var(--raw-v110-white);
  font: 700 22px/1 var(--raw-v110-mono);
  font-variant-numeric: tabular-nums;
}

[data-raw-reveal-v110-revision] .raw-v110-order__pay b {
  font-size: 30px;
}

/* The line values read as a discount, not a price list. */
[data-raw-reveal-v110-revision] .raw-v110-order__lines li[data-free="true"] .raw-v110-order__val s {
  color: rgba(255, 250, 241, 0.55);
  text-decoration-thickness: 2px;
}

@media (max-width: 767px) {
  [data-raw-reveal-v110-revision] .raw-v110-order__saving b {
    font-size: 19px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-order__pay b {
    font-size: 26px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-tier__value s {
    font-size: 14px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-tier__value u {
    font-size: 16px;
  }
}

/* The louder savings block pushed the commit button past the fold on tablet and
   desktop. The sheet is compressed there too rather than allowed to scroll. */
@media (min-width: 768px) {
  [data-raw-reveal-v110-revision] .raw-v110-drawer__body {
    gap: 12px;
    padding-top: 12px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-drawer__intro h2 {
    font-size: clamp(26px, 2.8vw, 34px);
  }

  [data-raw-reveal-v110-revision] .raw-v110-drawer__content {
    gap: 12px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-order {
    gap: 7px;
    padding: 10px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-order__lines {
    gap: 5px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-order__lines li {
    padding: 6px 9px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-order__saving {
    padding: 6px 10px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-order__saving b {
    font-size: 19px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-order__pay {
    padding: 8px 10px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-order__pay b {
    font-size: 26px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-tier {
    padding: 10px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-tier > img {
    width: 56px;
    height: 70px;
  }

  [data-raw-reveal-v110-revision] [data-raw-review-cta] {
    min-height: 50px;
  }
}

/* Final mobile fit. The savings badges and the louder totals added height, and
   it was the trust line at the very bottom that clipped on a real handset —
   the gate now measures that line, not just the button. */
@media (max-width: 767px) {
  [data-raw-reveal-v110-revision] .raw-v110-drawer__body {
    gap: 8px;
    padding: 8px 12px calc(8px + env(safe-area-inset-bottom)) !important;
  }

  [data-raw-reveal-v110-revision] .raw-v110-drawer__content {
    gap: 8px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-drawer__urgency {
    padding: 6px 12px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-drawer__urgency > i {
    height: 2px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-ladder {
    gap: 6px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-tier {
    grid-template-columns: 46px minmax(0, 1fr) 18px;
    gap: 9px;
    padding: 8px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-tier > img {
    width: 46px;
    height: 58px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-tier__main em {
    padding: 2px 5px;
    font-size: 11px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-tier__value {
    margin-top: 2px;
    font-size: 11.5px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-tier__value s {
    font-size: 12.5px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-tier__value u {
    font-size: 14px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-tier__save {
    padding: 2px 5px;
    font-size: 11px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-ladder__divider {
    min-height: 14px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-order {
    gap: 5px;
    padding: 8px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-order__lines {
    gap: 3px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-order__lines li {
    padding: 4px 7px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-order__qty {
    height: 18px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-order__saving {
    padding: 5px 9px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-order__saving b {
    font-size: 17px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-order__pay {
    padding: 6px 9px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-order__pay b {
    font-size: 23px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-order__promise,
  [data-raw-reveal-v110-revision] .raw-v110-drawer__trust {
    font-size: 11px;
    line-height: 1.25;
  }

  [data-raw-reveal-v110-revision] [data-raw-review-cta] {
    min-height: 46px;
  }
}

@media (max-width: 767px) and (max-height: 700px) {
  [data-raw-reveal-v110-revision] .raw-v110-drawer__intro h2 {
    font-size: 19px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-tier > img {
    width: 42px;
    height: 52px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-order__lines li {
    padding: 3px 6px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-order__pay b {
    font-size: 20px;
  }
}

/* 375x667 still clipped the trust line by 11px. Last trim, all above the floor. */
@media (max-width: 767px) and (max-height: 700px) {
  [data-raw-reveal-v110-revision] .raw-v110-drawer__urgency {
    padding: 5px 12px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-drawer__urgency > strong {
    padding: 2px 8px;
    font-size: 16px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-order {
    gap: 4px;
    padding: 7px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-order__saving {
    padding: 4px 8px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-order__pay {
    padding: 5px 8px;
  }

  [data-raw-reveal-v110-revision] [data-raw-review-cta] {
    min-height: 44px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-order__promise {
    display: none;
  }
}

/* The header was setting the wordmark as letter-spaced Playfair, which read as
   two words in the wrong face. It uses the real logo asset instead. */
[data-raw-reveal-v110-revision] .raw-v110-drawer__brand img {
  display: block;
  width: auto;
  height: 20px;
}

@media (max-width: 767px) {
  [data-raw-reveal-v110-revision] .raw-v110-drawer__brand img {
    height: 17px;
  }
}

/* Drop shadows removed: the selected rung is already carried by its red border,
   its fill and its badge, and the shadow was the only thing lifting off the
   sheet. Removing it also stops the 3px reflow when switching rungs. */
[data-raw-reveal-v110-revision] .raw-v110-tier--popular,
[data-raw-reveal-v110-revision] .raw-v110-tier,
[data-raw-reveal-v110-revision] [data-raw-review-panel],
[data-raw-reveal-v110-revision] .raw-v110-drawer__summary {
  box-shadow: none !important;
}

/* Selection must not change any box dimension, or the sheet reflows under the
   thumb. Emphasis is carried by outline and fill only — both draw outside the
   layout box — and both rungs are pinned to the same height. */
[data-raw-reveal-v110-revision] .raw-v110-tier {
  border-width: 1px !important;
  outline-offset: -2px;
}

[data-raw-reveal-v110-revision] .raw-v110-tier[aria-checked="true"] {
  outline: 2px solid var(--raw-v110-red);
}

[data-raw-reveal-v110-revision] .raw-v110-tier[aria-checked="false"] {
  outline: 0 solid transparent;
}

@media (max-width: 767px) {
  [data-raw-reveal-v110-revision] .raw-v110-tier {
    min-height: 104px;
  }
}

@media (min-width: 768px) {
  [data-raw-reveal-v110-revision] .raw-v110-tier {
    min-height: 112px;
  }
}

/* The inherited selected-tier rule swaps a 1px border for 2px, which adds 2px
   to that card and removes 2px from the other — the reflow the operator felt
   when switching rungs. Border width is now constant; the red ring is an
   outline, which is painted outside the layout box. */
[data-raw-reveal-v110-revision] [data-selected-offer="single"] [data-offer-id="single"],
[data-raw-reveal-v110-revision] [data-selected-offer="three"] [data-offer-id="three"] {
  border-width: 1px !important;
  background: #fff6eb;
}

/* The bundle card re-wrapped by ~6px depending on selection state, which moved
   everything under it. Both rungs are pinned so the ladder is a fixed box and
   switching can never move the commit button. */
@media (max-width: 767px) {
  [data-raw-reveal-v110-revision] .raw-v110-tier--popular {
    min-height: 142px !important;
  }

  [data-raw-reveal-v110-revision] .raw-v110-tier--single {
    min-height: 104px !important;
  }
}

@media (min-width: 768px) {
  [data-raw-reveal-v110-revision] .raw-v110-tier--popular {
    min-height: 150px !important;
  }

  [data-raw-reveal-v110-revision] .raw-v110-tier--single {
    min-height: 112px !important;
  }
}

/* Root cause of the reflow: the savings badge sat on the same flex line as the
   per-bottle text and re-wrapped depending on state, changing the card's height.
   The badge now always takes its own line, so both cards have one deterministic
   height and the pinned minimums can come back down. */
[data-raw-reveal-v110-revision] .raw-v110-tier__save {
  flex-basis: 100%;
  width: fit-content;
}

@media (max-width: 767px) {
  [data-raw-reveal-v110-revision] .raw-v110-tier--popular,
  [data-raw-reveal-v110-revision] .raw-v110-tier--single {
    min-height: 0 !important;
  }
}

@media (min-width: 768px) {
  [data-raw-reveal-v110-revision] .raw-v110-tier--popular,
  [data-raw-reveal-v110-revision] .raw-v110-tier--single {
    min-height: 0 !important;
  }
}

/* The commit button is a fixed box: its label length differs between rungs, and
   a wrap to two lines was what actually moved the sheet. */
[data-raw-reveal-v110-revision] [data-raw-review-cta] {
  display: grid;
  place-items: center;
  min-height: 50px !important;
  height: 50px;
  white-space: nowrap;
}

@media (max-width: 767px) {
  [data-raw-reveal-v110-revision] [data-raw-review-cta] {
    min-height: 46px !important;
    height: 46px;
  }
}

/* Desktop: the trust line was the last thing clipped, so the order block gives
   back the few pixels it needs. */
@media (min-width: 768px) {
  [data-raw-reveal-v110-revision] .raw-v110-order {
    gap: 6px;
    padding: 9px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-order__lines li {
    padding: 5px 9px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-drawer__body {
    gap: 10px;
  }
}

/* Everything that changes size between rungs is pinned. Measured causes:
   the order line name wrapped on "SPRAYS" but not "SPRAY" (-13.7px), and the
   large pay/savings numerals produced different line boxes for different digit
   strings. Names now never wrap and every numeral box has a fixed line height. */
[data-raw-reveal-v110-revision] .raw-v110-order__name {
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

[data-raw-reveal-v110-revision] .raw-v110-order__lines li {
  min-height: 30px;
}

[data-raw-reveal-v110-revision] .raw-v110-order__pay b,
[data-raw-reveal-v110-revision] .raw-v110-order__saving b,
[data-raw-reveal-v110-revision] .raw-v110-order__total b {
  display: block;
  line-height: 1.1;
}

[data-raw-reveal-v110-revision] .raw-v110-order__pay {
  min-height: 44px;
}

[data-raw-reveal-v110-revision] .raw-v110-order__saving {
  min-height: 34px;
}

@media (max-width: 767px) {
  [data-raw-reveal-v110-revision] .raw-v110-order__lines li {
    min-height: 26px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-order__pay {
    min-height: 38px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-order__saving {
    min-height: 30px;
  }
}

/* Desktop still clipped the trust line by a few pixels. */
@media (min-width: 768px) {
  [data-raw-reveal-v110-revision] .raw-v110-drawer__intro p {
    display: none;
  }

  [data-raw-reveal-v110-revision] .raw-v110-order__promise {
    display: none;
  }
}

/* Short phones: the pinned boxes cost a little height, so they are pinned
   smaller here. Still nothing below the 11px type floor. */
@media (max-width: 767px) and (max-height: 700px) {
  [data-raw-reveal-v110-revision] .raw-v110-order__lines li {
    min-height: 22px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-order__pay {
    min-height: 32px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-order__saving {
    min-height: 26px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-order__saving b {
    font-size: 15px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-drawer__trust {
    line-height: 1.2;
  }
}

/* ==========================================================================
   Stop compressing; scroll instead.
   The sheet had been squeezed until it read as cramped and still clipped its
   last line on a real handset, because browser chrome takes height that no
   viewport unit reports reliably. The content area now scrolls and the commit
   group is pinned to the bottom of the sheet, so the button and the trust line
   are always visible and everything above them can breathe again.
   ========================================================================== */
[data-raw-reveal-v110-revision] [data-raw-review-panel] {
  grid-template-rows: 44px auto minmax(0, 1fr);
}

[data-raw-reveal-v110-revision] .raw-v110-drawer__body {
  display: flex !important;
  flex-direction: column;
  min-height: 0;
  overflow: hidden !important;
  padding: 0 !important;
}

[data-raw-reveal-v110-revision] .raw-v110-drawer__content {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
  gap: 14px !important;
  padding: 14px clamp(14px, 3vw, 46px) 8px;
}

[data-raw-reveal-v110-revision] .raw-v110-drawer__intro {
  flex: 0 0 auto;
  padding: 14px clamp(14px, 3vw, 46px) 0;
}

[data-raw-reveal-v110-revision] .raw-v110-drawer__commit {
  position: sticky;
  bottom: 0;
  display: grid;
  gap: 8px;
  padding: 10px clamp(14px, 3vw, 46px) calc(12px + env(safe-area-inset-bottom));
  border-top: 1px solid rgba(255, 250, 241, 0.14);
  background: var(--raw-v110-black);
}

/* Breathing room restored everywhere the compression had taken it. */
[data-raw-reveal-v110-revision] .raw-v110-order {
  gap: 10px !important;
  padding: 12px !important;
}

[data-raw-reveal-v110-revision] .raw-v110-order__lines {
  gap: 6px !important;
}

[data-raw-reveal-v110-revision] .raw-v110-order__lines li {
  min-height: 34px !important;
  padding: 8px 10px !important;
}

[data-raw-reveal-v110-revision] .raw-v110-order__pay {
  min-height: 46px !important;
  padding: 10px 12px !important;
}

[data-raw-reveal-v110-revision] .raw-v110-order__saving {
  min-height: 36px !important;
  padding: 8px 12px !important;
}

[data-raw-reveal-v110-revision] .raw-v110-tier {
  padding: 12px !important;
  gap: 12px !important;
}

[data-raw-reveal-v110-revision] .raw-v110-drawer__intro p,
[data-raw-reveal-v110-revision] .raw-v110-order__promise {
  display: block !important;
}

[data-raw-reveal-v110-revision] .raw-v110-drawer__urgency {
  padding: 10px clamp(14px, 3vw, 46px) !important;
}

/* The savings badge was running past the card's right edge. */
[data-raw-reveal-v110-revision] .raw-v110-tier__main {
  min-width: 0;
}

[data-raw-reveal-v110-revision] .raw-v110-tier__save {
  flex-basis: auto;
  max-width: 100%;
  width: auto;
}

/* The wordmark had been shrunk to the point of illegibility. */
[data-raw-reveal-v110-revision] .raw-v110-drawer__brand img {
  height: 24px;
}

@media (max-width: 767px) {
  [data-raw-reveal-v110-revision] .raw-v110-drawer__brand img {
    height: 21px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-tier > img {
    width: 58px;
    height: 72px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-drawer__intro h2 {
    font-size: 25px;
  }
}

/* ==========================================================================
   Cards were clipping their own text.
   `.raw-v110-tier` inherits `overflow: hidden` from v109, and the min-height
   overrides left it shorter than its content, so the value line was sliced in
   half. Cards size to their content and never clip.
   ========================================================================== */
[data-raw-reveal-v110-revision] .raw-v110-tier {
  height: auto !important;
  min-height: 0 !important;
  overflow: visible !important;
  align-items: center;
}

[data-raw-reveal-v110-revision] .raw-v110-tier__main {
  min-width: 0;
  overflow: visible;
}

/* The scrolling area gets room to clear the pinned commit group, so a partial
   row is never the last thing visible. */
[data-raw-reveal-v110-revision] .raw-v110-drawer__content {
  padding-bottom: 4px;
  scrollbar-width: thin;
}

[data-raw-reveal-v110-revision] .raw-v110-order {
  overflow: visible !important;
}

/* A hairline above the pinned footer makes it read as chrome rather than as the
   content having been cut off. */
[data-raw-reveal-v110-revision] .raw-v110-drawer__commit {
  box-shadow: 0 -10px 18px -12px rgba(0, 0, 0, 0.9);
}

/* The real cause: the sheet is a flex column, and flex items shrink by default.
   When the content was taller than the sheet, the browser squashed the cards
   instead of scrolling — which is why text was sliced mid-line. Nothing in the
   stack may shrink; the content area scrolls instead. */
[data-raw-reveal-v110-revision] .raw-v110-drawer__content > *,
[data-raw-reveal-v110-revision] .raw-v110-ladder > *,
[data-raw-reveal-v110-revision] .raw-v110-order > * {
  flex: 0 0 auto;
}

[data-raw-reveal-v110-revision] .raw-v110-drawer__commit {
  flex: 0 0 auto;
}

/* The stacked logo + caption overflowed the 44px bar and the mark was clipped
   at the top. They sit side by side, vertically centred, and fit. */
[data-raw-reveal-v110-revision] .raw-v110-drawer__head {
  align-items: center;
}

[data-raw-reveal-v110-revision] .raw-v110-drawer__brand {
  display: flex !important;
  align-items: center;
  gap: 10px;
  min-width: 0;
  overflow: hidden;
}

[data-raw-reveal-v110-revision] .raw-v110-drawer__brand img {
  flex: 0 0 auto;
  height: 18px;
}

[data-raw-reveal-v110-revision] .raw-v110-drawer__brand span {
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

/* A fade above the pinned footer so a scrolled row reads as "more below"
   rather than as content that has been chopped off. */
[data-raw-reveal-v110-revision] .raw-v110-drawer__commit::before {
  position: absolute;
  right: 0;
  bottom: 100%;
  left: 0;
  height: 26px;
  background: linear-gradient(rgba(13, 12, 11, 0), var(--raw-v110-black));
  content: "";
  pointer-events: none;
}

[data-raw-reveal-v110-revision] .raw-v110-drawer__commit {
  position: sticky;
  box-shadow: none;
}

/* ==========================================================================
   The pre-checkout must consume one viewport with nothing to scroll.
   Height was bought back by removing duplicated content, not by shrinking type:
   the TOTAL VALUE row (already struck on the selected card), the 60-day promise
   line (already in the trust line), and the intro sub-line on phones (the
   headline says it). Type stays at the same sizes.
   ========================================================================== */
@media (max-width: 767px) {
  [data-raw-reveal-v110-revision] .raw-v110-drawer__intro p {
    display: none !important;
  }

  [data-raw-reveal-v110-revision] .raw-v110-drawer__intro {
    padding-bottom: 0;
  }

  [data-raw-reveal-v110-revision] .raw-v110-drawer__content {
    gap: 10px !important;
    padding-top: 10px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-ladder {
    gap: 6px !important;
  }

  [data-raw-reveal-v110-revision] .raw-v110-ladder__divider {
    min-height: 16px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-order {
    gap: 7px !important;
    padding: 10px !important;
  }

  [data-raw-reveal-v110-revision] .raw-v110-order__lines {
    gap: 5px !important;
  }

  [data-raw-reveal-v110-revision] .raw-v110-order__lines li {
    min-height: 30px !important;
    padding: 6px 9px !important;
  }

  [data-raw-reveal-v110-revision] .raw-v110-order__saving {
    min-height: 34px !important;
  }

  [data-raw-reveal-v110-revision] .raw-v110-order__pay {
    min-height: 42px !important;
  }

  [data-raw-reveal-v110-revision] .raw-v110-drawer__commit {
    gap: 6px;
    padding-top: 8px;
  }
}

/* The unselected rung collapses to its headline numbers; the selected rung
   stays full. Exactly one is always selected, so the pair's combined height is
   constant — the sheet gets ~50px back and switching still moves nothing.
   Price, discount and product stay visible on both, so the comparison holds. */
@media (max-width: 767px) {
  [data-raw-reveal-v110-revision] .raw-v110-tier[aria-checked="false"] .raw-v110-tier__value,
  [data-raw-reveal-v110-revision] .raw-v110-tier[aria-checked="false"] .raw-v110-tier__main > small {
    display: none;
  }

  [data-raw-reveal-v110-revision] .raw-v110-tier[aria-checked="false"] {
    padding-block: 9px !important;
  }

  [data-raw-reveal-v110-revision] .raw-v110-tier[aria-checked="false"] > img {
    width: 44px;
    height: 44px;
    object-position: center 30%;
  }

  /* The collapsed rung still shows what it costs. */
  [data-raw-reveal-v110-revision] .raw-v110-tier[aria-checked="false"] .raw-v110-tier__main::after {
    display: block;
    margin-top: 2px;
    color: var(--raw-v110-ink);
    content: attr(data-collapsed-price);
    font: 700 13px/1.2 var(--raw-v110-mono);
  }

  [data-raw-reveal-v110-revision] .raw-v110-tier > img {
    width: 54px;
    height: 66px;
  }
}

/* Remaining height comes from row rhythm, not type size. */
@media (max-width: 767px) {
  [data-raw-reveal-v110-revision] .raw-v110-order__lines li {
    min-height: 26px !important;
    padding: 5px 9px !important;
  }

  [data-raw-reveal-v110-revision] .raw-v110-order__saving {
    min-height: 30px !important;
    padding: 6px 10px !important;
  }

  [data-raw-reveal-v110-revision] .raw-v110-order__pay {
    min-height: 38px !important;
    padding: 7px 10px !important;
  }

  [data-raw-reveal-v110-revision] .raw-v110-drawer__content {
    gap: 8px !important;
  }

  [data-raw-reveal-v110-revision] .raw-v110-ladder__divider {
    min-height: 12px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-drawer__urgency {
    padding: 8px 14px !important;
  }
}

/* Short handsets — the ones where browser chrome eats the most — drop the order
   heading too. The rows are self-describing. */
@media (max-width: 767px) and (max-height: 790px) {
  [data-raw-reveal-v110-revision] .raw-v110-order__head {
    display: none;
  }

  [data-raw-reveal-v110-revision] .raw-v110-order {
    gap: 6px !important;
    padding: 8px !important;
  }

  [data-raw-reveal-v110-revision] .raw-v110-order__lines li {
    min-height: 24px !important;
    padding: 4px 8px !important;
  }

  [data-raw-reveal-v110-revision] .raw-v110-drawer__intro h2 {
    font-size: 22px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-drawer__commit {
    padding-top: 6px;
    gap: 5px;
  }
}

/* Final few pixels, so every common handset height lands at zero scroll. */
@media (max-width: 767px) and (max-height: 790px) {
  [data-raw-reveal-v110-revision] .raw-v110-drawer__intro {
    padding-top: 10px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-drawer__content {
    padding-top: 8px;
    gap: 7px !important;
  }

  [data-raw-reveal-v110-revision] .raw-v110-tier[aria-checked="false"] {
    padding-block: 7px !important;
  }
}

/* Small legacy handsets (640–670px of usable height). The sheet drops its
   headline there: the red band already says what this screen is, and a
   guaranteed no-scroll path to the button is worth more than a title. */
@media (max-width: 767px) and (max-height: 680px) {
  [data-raw-reveal-v110-revision] .raw-v110-drawer__intro {
    display: none;
  }

  [data-raw-reveal-v110-revision] .raw-v110-tier > img {
    width: 46px;
    height: 56px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-tier[aria-checked="false"] > img {
    width: 38px;
    height: 38px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-order__lines li {
    min-height: 22px !important;
  }

  [data-raw-reveal-v110-revision] .raw-v110-drawer__urgency {
    padding: 6px 14px !important;
  }
}

/* Collapse applies at every width, and both rungs share one expanded height and
   one collapsed height. Exactly one rung is selected, so the pair always sums to
   the same total and switching cannot move anything below it. */
[data-raw-reveal-v110-revision] .raw-v110-tier[aria-checked="false"] .raw-v110-tier__value,
[data-raw-reveal-v110-revision] .raw-v110-tier[aria-checked="false"] .raw-v110-tier__main > small {
  display: none;
}

[data-raw-reveal-v110-revision] .raw-v110-tier[aria-checked="false"] .raw-v110-tier__main::after {
  display: block;
  margin-top: 2px;
  color: var(--raw-v110-ink);
  content: attr(data-collapsed-price);
  font: 700 13px/1.2 var(--raw-v110-mono);
}

@media (min-width: 768px) {
  [data-raw-reveal-v110-revision] .raw-v110-tier[aria-checked="true"] {
    min-height: 118px !important;
  }

  [data-raw-reveal-v110-revision] .raw-v110-tier[aria-checked="false"] {
    min-height: 74px !important;
  }

  [data-raw-reveal-v110-revision] .raw-v110-tier[aria-checked="false"] > img {
    width: 46px;
    height: 46px;
    object-position: center 30%;
  }
}

@media (max-width: 767px) {
  [data-raw-reveal-v110-revision] .raw-v110-tier[aria-checked="true"] {
    min-height: 106px !important;
  }

  [data-raw-reveal-v110-revision] .raw-v110-tier[aria-checked="false"] {
    min-height: 66px !important;
  }
}

@media (max-width: 767px) and (max-height: 680px) {
  [data-raw-reveal-v110-revision] .raw-v110-tier[aria-checked="true"] {
    min-height: 98px !important;
  }

  [data-raw-reveal-v110-revision] .raw-v110-tier[aria-checked="false"] {
    min-height: 60px !important;
  }
}

/* ==========================================================================
   REVERTED: no rung ever collapses, expands or changes on click.
   Collapsing the unselected rung bought height but it meant the cards resized
   when you tapped them — the exact behaviour that was asked to stop. Both rungs
   are always fully shown, always the same size, in every state. Selection is
   carried by the outline and fill only.
   ========================================================================== */
[data-raw-reveal-v110-revision] .raw-v110-tier[aria-checked="false"] .raw-v110-tier__value,
[data-raw-reveal-v110-revision] .raw-v110-tier[aria-checked="false"] .raw-v110-tier__main > small {
  display: flex !important;
}

[data-raw-reveal-v110-revision] .raw-v110-tier[aria-checked="false"] .raw-v110-tier__main::after {
  display: none !important;
  content: none !important;
}

[data-raw-reveal-v110-revision] .raw-v110-tier[aria-checked="true"],
[data-raw-reveal-v110-revision] .raw-v110-tier[aria-checked="false"] {
  min-height: 0 !important;
  padding-block: 12px !important;
}

[data-raw-reveal-v110-revision] .raw-v110-tier[aria-checked="false"] > img,
[data-raw-reveal-v110-revision] .raw-v110-tier[aria-checked="true"] > img {
  width: 54px !important;
  height: 66px !important;
  object-position: center !important;
}

/* Both rungs share one fixed height so the pair is a constant block. */
@media (max-width: 767px) {
  [data-raw-reveal-v110-revision] .raw-v110-tier {
    min-height: 104px !important;
    padding-block: 10px !important;
  }
}

@media (min-width: 768px) {
  [data-raw-reveal-v110-revision] .raw-v110-tier {
    min-height: 112px !important;
  }
}

/* Structure trimmed so the sheet fits statically: the bundle headline is one
   line, the OR divider is gone, and desktop gives back the padding it had
   spare. No element changes size on interaction. */
[data-raw-reveal-v110-revision] .raw-v110-tier__main > strong {
  line-height: 1.25;
}

@media (min-width: 768px) {
  [data-raw-reveal-v110-revision] .raw-v110-drawer__intro h2 {
    font-size: 28px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-drawer__intro {
    padding-top: 12px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-drawer__content {
    gap: 10px !important;
    padding-top: 10px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-ladder {
    gap: 8px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-tier {
    min-height: 104px !important;
  }

  [data-raw-reveal-v110-revision] .raw-v110-order__lines li {
    min-height: 30px !important;
    padding: 6px 10px !important;
  }
}

@media (max-width: 767px) {
  [data-raw-reveal-v110-revision] .raw-v110-ladder {
    gap: 8px !important;
  }

  [data-raw-reveal-v110-revision] .raw-v110-tier {
    min-height: 96px !important;
  }
}

/* Narrow handsets (360–380px) wrap the ladder copy onto extra lines, which is
   why they needed more height than taller-but-wider screens. Trimmed statically;
   nothing here changes on interaction and nothing drops below 11px. */
@media (max-width: 392px) {
  [data-raw-reveal-v110-revision] .raw-v110-tier {
    grid-template-columns: 46px minmax(0, 1fr) 18px !important;
    gap: 9px !important;
    min-height: 88px !important;
    padding-block: 9px !important;
  }

  [data-raw-reveal-v110-revision] .raw-v110-tier[aria-checked="false"] > img,
  [data-raw-reveal-v110-revision] .raw-v110-tier[aria-checked="true"] > img {
    width: 46px !important;
    height: 56px !important;
  }

  [data-raw-reveal-v110-revision] .raw-v110-tier__main > strong {
    font-size: 11.5px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-order__lines li {
    min-height: 24px !important;
    padding: 4px 8px !important;
  }

  [data-raw-reveal-v110-revision] .raw-v110-drawer__urgency {
    padding: 6px 12px !important;
  }

  [data-raw-reveal-v110-revision] .raw-v110-drawer__content {
    gap: 7px !important;
  }

  [data-raw-reveal-v110-revision] .raw-v110-ladder {
    gap: 6px !important;
  }
}

/* 360px still ran a few pixels long. */
@media (max-width: 366px) {
  [data-raw-reveal-v110-revision] .raw-v110-tier {
    min-height: 82px !important;
  }

  [data-raw-reveal-v110-revision] .raw-v110-order {
    gap: 5px !important;
    padding: 8px !important;
  }

  [data-raw-reveal-v110-revision] .raw-v110-order__saving {
    min-height: 28px !important;
  }

  [data-raw-reveal-v110-revision] .raw-v110-order__pay {
    min-height: 36px !important;
  }
}

/* Last few pixels at 360px wide. */
@media (max-width: 366px) {
  [data-raw-reveal-v110-revision] .raw-v110-drawer__intro h2 {
    font-size: 21px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-drawer__content {
    gap: 6px !important;
    padding-top: 8px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-drawer__commit {
    gap: 5px;
    padding-top: 7px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-order__lines {
    gap: 4px !important;
  }
}

/* The sheet consumes the viewport instead of sitting compact with slack under
   it. Blocks keep their own sizes — the leftover height is distributed between
   them — so the commit group lands at the bottom of the screen. This is the
   proportion the operator preferred when an injected message happened to push
   the button down; it is now the intended layout rather than a side effect. */
[data-raw-reveal-v110-revision] .raw-v110-drawer__content {
  justify-content: space-between;
}

[data-raw-reveal-v110-revision] .raw-v110-drawer__content > * {
  flex: 0 0 auto;
}

/* ==========================================================================
   One black box, no fade, subtle divider back, single rung dialled down
   ========================================================================== */

/* The commit group now lives inside the order block, so the rows, the totals,
   the button and the trust line read as a single box the width of the button —
   and the fade over a scrolling edge is gone because nothing scrolls. */
[data-raw-reveal-v110-revision] .raw-v110-drawer__commit::before {
  display: none !important;
  content: none !important;
}

[data-raw-reveal-v110-revision] .raw-v110-order {
  display: flex !important;
  flex-direction: column;
  gap: 8px !important;
  padding: 12px !important;
  background: var(--raw-v110-black);
}

[data-raw-reveal-v110-revision] .raw-v110-order [data-raw-review-cta] {
  width: 100%;
  margin-top: 2px;
}

[data-raw-reveal-v110-revision] .raw-v110-order .raw-v110-drawer__trust {
  margin: 0;
  padding: 0;
}

/* The divider returns, quiet. */
[data-raw-reveal-v110-revision] .raw-v110-ladder__divider {
  display: grid;
  place-items: center;
  min-height: 18px;
  color: rgba(28, 24, 21, 0.45);
  font: 700 11px/1 var(--raw-v110-mono);
  letter-spacing: 0.16em;
}

/* The single rung should not look as desirable as the bundle. The bundle keeps
   a warm tint, a heavier name and a solid save badge; the single sits on plain
   white with lighter weight and a muted badge. Sizes stay identical so nothing
   moves when the selection changes. */
[data-raw-reveal-v110-revision] .raw-v110-tier--popular {
  background: #fdf3e6;
}

[data-raw-reveal-v110-revision] .raw-v110-tier--single {
  background: #ffffff;
}

[data-raw-reveal-v110-revision] .raw-v110-tier--single .raw-v110-tier__main > strong {
  font-weight: 400;
  color: rgba(28, 24, 21, 0.86);
}

[data-raw-reveal-v110-revision] .raw-v110-tier--single .raw-v110-tier__main > em {
  background: rgba(28, 24, 21, 0.5);
}

[data-raw-reveal-v110-revision] .raw-v110-tier--single .raw-v110-tier__save {
  background: rgba(28, 24, 21, 0.55);
}

[data-raw-reveal-v110-revision] .raw-v110-tier--single .raw-v110-tier__value {
  color: rgba(28, 24, 21, 0.7);
}

[data-raw-reveal-v110-revision] .raw-v110-tier--single .raw-v110-tier__value s {
  color: rgba(28, 24, 21, 0.45);
}

[data-raw-reveal-v110-revision] .raw-v110-tier--single > img {
  opacity: 0.88;
}

/* The restored divider and the merged box cost a little height back; the two
   smallest profiles reclaim it from rhythm, not from type or from the divider. */
@media (max-width: 767px) {
  [data-raw-reveal-v110-revision] .raw-v110-ladder__divider {
    min-height: 14px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-order {
    gap: 6px !important;
    padding: 10px !important;
  }
}

@media (max-width: 767px) and (max-height: 700px) {
  [data-raw-reveal-v110-revision] .raw-v110-ladder__divider {
    min-height: 12px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-order {
    gap: 5px !important;
    padding: 8px !important;
  }

  [data-raw-reveal-v110-revision] .raw-v110-order__lines li {
    min-height: 22px !important;
  }
}

@media (max-width: 366px) {
  [data-raw-reveal-v110-revision] .raw-v110-ladder__divider {
    min-height: 12px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-order__lines {
    gap: 3px !important;
  }

  [data-raw-reveal-v110-revision] .raw-v110-order__pay {
    min-height: 34px !important;
  }

  [data-raw-reveal-v110-revision] .raw-v110-order__saving {
    min-height: 26px !important;
  }
}

/* ==========================================================================
   Persistent conversion control on every viewport + full-page desktop drawer
   ========================================================================== */

/* The rail was mobile-only, so 11,700px of desktop scroll had no route to the
   offer at all — only a text strip with a clock. It is now a real control on
   desktop too, sized for the wider viewport. */
@media (min-width: 768px) {
  [data-raw-reveal-v110-revision] .raw-v110-mobile-sticky {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 24px;
    height: 68px;
    padding: 0 clamp(20px, 5vw, 78px);
  }

  [data-raw-reveal-v110-revision] .raw-v110-mobile-sticky > strong {
    color: var(--raw-v110-gold-light);
    font: 700 14px/1.2 var(--raw-v110-mono);
    letter-spacing: 0.05em;
  }

  [data-raw-reveal-v110-revision] .raw-v110-mobile-sticky > strong em {
    color: rgba(255, 250, 241, 0.78);
    font-style: normal;
  }

  [data-raw-reveal-v110-revision] .raw-v110-mobile-sticky button {
    min-width: 320px;
    min-height: 48px;
    font-size: 14px;
  }
}

@media (max-width: 767px) {
  [data-raw-reveal-v110-revision] .raw-v110-mobile-sticky > strong em {
    display: block;
    color: rgba(255, 250, 241, 0.76);
    font-style: normal;
    font-size: 11px;
  }
}

/* The desktop offer step stays a full-page drawer — that was the preference —
   but its content is centred in a single readable column instead of sitting
   left-aligned inside a much wider frame with dead space beside it. */
@media (min-width: 768px) {
  [data-raw-reveal-v110-revision] .raw-v110-drawer__body {
    align-items: center;
  }

  [data-raw-reveal-v110-revision] .raw-v110-drawer__intro,
  [data-raw-reveal-v110-revision] .raw-v110-drawer__content {
    width: min(100%, 680px);
    margin-inline: auto;
  }

  [data-raw-reveal-v110-revision] .raw-v110-drawer__urgency > span,
  [data-raw-reveal-v110-revision] .raw-v110-drawer__urgency > strong,
  [data-raw-reveal-v110-revision] .raw-v110-drawer__urgency > i {
    max-width: 680px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-drawer__urgency {
    justify-content: center;
    grid-template-columns: minmax(0, 680px);
    grid-auto-flow: column;
    justify-items: stretch;
  }

  [data-raw-reveal-v110-revision] .raw-v110-drawer__head {
    padding-inline: clamp(20px, 5vw, 78px);
  }
}

/* The save badges gained "(66%)" and wrap on the shortest profile. */
@media (max-width: 767px) and (max-height: 700px) {
  [data-raw-reveal-v110-revision] .raw-v110-tier__save {
    padding: 2px 5px;
    font-size: 11px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-tier {
    min-height: 0 !important;
  }

  [data-raw-reveal-v110-revision] .raw-v110-order__lines li {
    min-height: 21px !important;
  }

  [data-raw-reveal-v110-revision] .raw-v110-order {
    gap: 4px !important;
  }
}

/* ==========================================================================
   Featured video + supporting rail
   The competitor runs 14 videos and puts motion in front of the reader early.
   Ours ran five equal thumbnails at ~31% depth. The section now sits third and
   leads with one full-width tile, with the remainder as a scrollable rail.
   ========================================================================== */
[data-raw-reveal-v110-revision] .raw-v110-ugc__rail--featured {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

[data-raw-reveal-v110-revision] .raw-v110-ugc__rail--featured article:first-child {
  grid-column: 1 / -1;
}

[data-raw-reveal-v110-revision] .raw-v110-ugc__rail--featured article:first-child button {
  aspect-ratio: 16 / 10;
}

[data-raw-reveal-v110-revision] .raw-v110-ugc__rail--featured article:first-child img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 30%;
}

[data-raw-reveal-v110-revision] .raw-v110-ugc__rail--featured article:first-child button > span {
  width: 74px;
  height: 74px;
  font-size: 26px;
}

@media (max-width: 820px) {
  [data-raw-reveal-v110-revision] .raw-v110-ugc__rail--featured {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    overflow: visible;
  }

  [data-raw-reveal-v110-revision] .raw-v110-ugc__rail--featured article {
    flex: none;
  }

  [data-raw-reveal-v110-revision] .raw-v110-ugc__rail--featured article:first-child button {
    aspect-ratio: 4 / 3;
  }

  [data-raw-reveal-v110-revision] .raw-v110-ugc__rail--featured article:nth-child(n+4) {
    display: none;
  }
}

/* ==========================================================================
   One featured film up top; a scrollable reaction wall after the reviews
   ========================================================================== */
[data-raw-reveal-v110-revision] .raw-v110-ugc__rail--featured {
  display: block !important;
  grid-template-columns: none !important;
}

[data-raw-reveal-v110-revision] .raw-v110-ugc__rail--featured article {
  width: 100%;
  flex: none;
}

[data-raw-reveal-v110-revision] .raw-v110-ugc__rail--featured button {
  aspect-ratio: 16 / 10;
  width: 100%;
}

[data-raw-reveal-v110-revision] .raw-v110-ugc__rail--featured img,
[data-raw-reveal-v110-revision] .raw-v110-ugc__rail--featured video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 28%;
}

[data-raw-reveal-v110-revision] .raw-v110-ugc__rail--featured button > span {
  width: 76px;
  height: 76px;
  font-size: 27px;
}

/* The wall reads as volume: a row you can push sideways. */
[data-raw-reveal-v110-revision] .raw-v110-ugc__rail--wall {
  display: flex !important;
  gap: 10px;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  grid-template-columns: none !important;
}

[data-raw-reveal-v110-revision] .raw-v110-ugc__rail--wall::-webkit-scrollbar {
  display: none;
}

[data-raw-reveal-v110-revision] .raw-v110-ugc__rail--wall article {
  flex: 0 0 min(46vw, 240px);
  scroll-snap-align: start;
  display: block;
}

[data-raw-reveal-v110-revision] .raw-v110-ugc__rail--wall button {
  aspect-ratio: 9 / 16;
  width: 100%;
}

[data-raw-reveal-v110-revision] .raw-v110-ugc__rail--wall img,
[data-raw-reveal-v110-revision] .raw-v110-ugc__rail--wall video {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

[data-raw-reveal-v110-revision] .raw-v110-ugc-section--wall {
  padding-block: 48px;
}

/* Fallback control when the browser refuses audible playback. */
[data-raw-reveal-v110-revision] .raw-v110-ugc__unmute {
  position: absolute;
  right: 10px;
  bottom: 10px;
  z-index: 3;
  padding: 7px 11px;
  border: 1px solid rgba(255, 250, 241, 0.7);
  background: rgba(13, 12, 11, 0.82);
  color: var(--raw-v110-white);
  font: 700 11px/1 var(--raw-v110-mono);
  letter-spacing: 0.06em;
}

[data-raw-reveal-v110-revision] .raw-v110-ugc__rail article {
  position: relative;
}

/* The bundle rung's name is longer now that the mechanic is gone, so it wraps
   on the shortest profile. Reclaimed from rhythm, not type. */
@media (max-width: 767px) and (max-height: 700px) {
  [data-raw-reveal-v110-revision] .raw-v110-tier__main > strong {
    font-size: 11.5px;
    line-height: 1.2;
  }

  [data-raw-reveal-v110-revision] .raw-v110-tier > img {
    width: 40px !important;
    height: 50px !important;
  }

  [data-raw-reveal-v110-revision] .raw-v110-order__lines li {
    min-height: 20px !important;
    padding: 3px 7px !important;
  }

  [data-raw-reveal-v110-revision] .raw-v110-drawer__commit {
    padding-top: 5px;
  }
}

/* Last 15px on the 375x667 profile. */
@media (max-width: 767px) and (max-height: 700px) {
  [data-raw-reveal-v110-revision] .raw-v110-order__saving {
    min-height: 24px !important;
    padding: 3px 8px !important;
  }

  [data-raw-reveal-v110-revision] .raw-v110-order__pay {
    min-height: 30px !important;
    padding: 4px 8px !important;
  }

  [data-raw-reveal-v110-revision] .raw-v110-order {
    gap: 3px !important;
    padding: 6px !important;
  }
}

/* The featured film was rendering at the poster's own 9:16 — 2,403px tall on
   desktop for one clip — because the inherited tile rule sets `height: 100%`,
   which resolves against the article, not against my aspect-ratio on the button.
   The ratio belongs on the article, and the film is capped so it leads the
   section without swallowing it. */
[data-raw-reveal-v110-revision] .raw-v110-ugc__rail--featured article {
  aspect-ratio: 16 / 10;
  width: min(100%, 860px);
  margin-inline: auto;
  height: auto;
}

[data-raw-reveal-v110-revision] .raw-v110-ugc__rail--featured button {
  aspect-ratio: auto;
  height: 100%;
}

[data-raw-reveal-v110-revision] .raw-v110-ugc__rail--wall article {
  aspect-ratio: 9 / 16;
  height: auto;
}

[data-raw-reveal-v110-revision] .raw-v110-ugc__rail--wall button {
  aspect-ratio: auto;
  height: 100%;
}

@media (max-width: 767px) {
  [data-raw-reveal-v110-revision] .raw-v110-ugc__rail--featured article {
    aspect-ratio: 4 / 3;
  }
}

/* ==========================================================================
   Video repairs
   ========================================================================== */

/* THE BUG: audio played but only the thumbnail showed. `launch.hidden = true`
   relies on the UA stylesheet's `[hidden] { display: none }`, but the inherited
   tile rule sets `display: block` on the button — an author declaration, which
   wins. So the poster button stayed visible on top of a playing video. */
[data-raw-reveal-v110-revision] .raw-v110-ugc__rail button[hidden] {
  display: none !important;
}

[data-raw-reveal-v110-revision] .raw-v110-ugc__rail article video {
  display: block;
  width: 100%;
  height: 100%;
  background: #000;
  object-fit: contain;
}

/* The featured film keeps the clip's own vertical frame instead of being
   cropped to a square; height is capped so it leads without taking the screen. */
[data-raw-reveal-v110-revision] .raw-v110-ugc__rail--featured article {
  aspect-ratio: 9 / 16;
  width: min(100%, 420px);
  max-height: 68svh;
  margin-inline: auto;
}

@media (min-width: 768px) {
  [data-raw-reveal-v110-revision] .raw-v110-ugc__rail--featured article {
    width: min(100%, 380px);
    max-height: 74vh;
  }
}

[data-raw-reveal-v110-revision] .raw-v110-ugc__rail--featured img {
  object-fit: cover;
  object-position: center 40%;
}

/* The reaction wall becomes a grid — one large, then pairs — instead of a rail
   the reader has to push sideways to discover. */
[data-raw-reveal-v110-revision] .raw-v110-ugc__rail--wall {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  overflow: visible !important;
}

[data-raw-reveal-v110-revision] .raw-v110-ugc__rail--wall article {
  flex: none;
  width: auto;
  aspect-ratio: 9 / 16;
}

[data-raw-reveal-v110-revision] .raw-v110-ugc__rail--wall article:first-child {
  grid-column: 1 / -1;
  aspect-ratio: 4 / 3;
}

[data-raw-reveal-v110-revision] .raw-v110-ugc__rail--wall article:first-child img {
  object-position: center 35%;
}

@media (min-width: 900px) {
  [data-raw-reveal-v110-revision] .raw-v110-ugc__rail--wall {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  [data-raw-reveal-v110-revision] .raw-v110-ugc__rail--wall article:first-child {
    grid-column: span 2;
    grid-row: span 2;
    aspect-ratio: auto;
  }
}

/* ==========================================================================
   Reaction wall: one full portrait film, then pairs — never a square crop.
   An earlier `grid-template-columns: none !important` on this rail was beating
   the two-column declaration, so every tile stacked one per row; and the lead
   tile was being cropped to 4:3, which is the square that was objected to.
   Both are corrected here with matching specificity.
   ========================================================================== */
[data-raw-reveal-v110-revision] .raw-v110-ugc__rail--wall {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 10px !important;
  overflow: visible !important;
}

/* Every tile keeps the clip's own vertical frame. */
[data-raw-reveal-v110-revision] .raw-v110-ugc__rail--wall article {
  aspect-ratio: 9 / 16 !important;
  width: auto !important;
  max-height: none !important;
  flex: none !important;
}

/* The lead tile is a full-width portrait film, same treatment as the featured
   one at the top of the page. */
[data-raw-reveal-v110-revision] .raw-v110-ugc__rail--wall article:first-child {
  grid-column: 1 / -1 !important;
  width: min(100%, 420px) !important;
  max-height: 68svh !important;
  margin-inline: auto !important;
}

[data-raw-reveal-v110-revision] .raw-v110-ugc__rail--wall article:first-child img {
  object-position: center 40%;
}

@media (min-width: 900px) {
  [data-raw-reveal-v110-revision] .raw-v110-ugc__rail--wall {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  }

  [data-raw-reveal-v110-revision] .raw-v110-ugc__rail--wall article:first-child {
    grid-column: span 2 !important;
    grid-row: span 2 !important;
    width: min(100%, 380px) !important;
    max-height: 72vh !important;
  }
}

/* ==========================================================================
   ROUND 12 — desktop composition
   Mobile was signed off; nothing below 1025px is touched. Desktop was built as
   a widened mobile page and read that way: a 387px letterbox hero, one portrait
   film marooned in a black field, a reaction wall whose rows did not line up,
   and a 456px offer column centred in 1440px of cream. Each of the four is
   given a layout of its own here.
   ========================================================================== */

/* --- 1. Hero: the image owns the left half, full height, no frame --------- */
@media (min-width: 1025px) {
  [data-raw-reveal-v110-revision] .raw-v110-hero {
    overflow: hidden;
  }

  [data-raw-reveal-v110-revision] .raw-v110-hero__inner {
    width: 100% !important;
    max-width: none !important;
    grid-template-columns: clamp(420px, 42vw, 700px) minmax(0, 1fr) !important;
    align-items: stretch !important;
    gap: 0 !important;
    padding: 0 !important;
  }

  /* aspect-ratio was capping the frame at half the hero's height. The panel
     now takes whatever height the fold has and the 4:5 crop covers it. */
  [data-raw-reveal-v110-revision] .raw-v110-hero__product {
    aspect-ratio: auto !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    align-self: stretch !important;
    border: 0 !important;
  }

  /* Bottom-anchored: the canvas carries its headroom above the cluster, so a
     shorter fold trims backdrop off the top and never a cap. */
  [data-raw-reveal-v110-revision] .raw-v110-hero__product img {
    object-fit: cover !important;
    object-position: 50% 100% !important;
  }

  [data-raw-reveal-v110-revision] .raw-v110-hero__copy {
    align-self: center;
    width: min(100%, 620px);
    margin-inline: auto;
    padding-inline: clamp(36px, 4vw, 90px);
  }

  [data-raw-reveal-v110-revision] .raw-v110-discount-badge {
    top: 24px;
    left: 24px;
  }
}

/* --- 2. Featured film: a two-column editorial block ---------------------- */
[data-raw-reveal-v110-revision] .raw-v110-ugc__aside {
  display: none;
}

@media (min-width: 1025px) {
  [data-raw-reveal-v110-revision] .raw-v110-ugc-section:not(.raw-v110-ugc-section--wall) .raw-v110-ugc {
    display: grid !important;
    grid-template-columns: minmax(0, 380px) minmax(0, 1fr) !important;
    grid-template-rows: auto auto !important;
    align-items: center !important;
    gap: 18px clamp(44px, 4.6vw, 88px) !important;
  }

  [data-raw-reveal-v110-revision] .raw-v110-ugc-section:not(.raw-v110-ugc-section--wall) .raw-v110-ugc__rail--featured {
    grid-column: 1 !important;
    grid-row: 1 / span 2 !important;
    margin-top: 0 !important;
  }

  [data-raw-reveal-v110-revision] .raw-v110-ugc-section:not(.raw-v110-ugc-section--wall) .raw-v110-ugc__rail--featured article {
    width: 100% !important;
    max-height: none !important;
    aspect-ratio: 9 / 16 !important;
    margin-inline: 0 !important;
  }

  [data-raw-reveal-v110-revision] .raw-v110-ugc-section:not(.raw-v110-ugc-section--wall) .raw-v110-ugc__head {
    grid-column: 2 !important;
    grid-row: 1 !important;
    align-self: end;
  }

  [data-raw-reveal-v110-revision] .raw-v110-ugc__aside {
    display: block;
    grid-column: 2 !important;
    grid-row: 2 !important;
    align-self: start;
  }

  [data-raw-reveal-v110-revision] .raw-v110-ugc__lede {
    max-width: 46ch;
    color: rgba(255, 250, 241, 0.82);
    font: 400 18px/1.55 var(--raw-v110-body);
  }

  [data-raw-reveal-v110-revision] .raw-v110-ugc__facts {
    display: grid;
    gap: 8px;
    margin-top: 20px;
    padding-top: 18px;
    border-top: 1px solid rgba(234, 209, 164, 0.24);
    list-style: none;
  }

  [data-raw-reveal-v110-revision] .raw-v110-ugc__facts li {
    position: relative;
    padding-left: 18px;
    color: rgba(255, 250, 241, 0.74);
    font: 400 15px/1.5 var(--raw-v110-body);
  }

  [data-raw-reveal-v110-revision] .raw-v110-ugc__facts li::before {
    position: absolute;
    left: 0;
    color: var(--raw-v110-gold-light);
    content: "›";
  }

  [data-raw-reveal-v110-revision] .raw-v110-ugc__aside [data-raw-offer-cta] {
    margin-top: 24px;
  }

  /* The eyebrow and the headline were opposite ends of a flex row, which is what
     made the section read as a line running across the page. They stack. */
  [data-raw-reveal-v110-revision] .raw-v110-ugc__head {
    display: block !important;
  }

  [data-raw-reveal-v110-revision] .raw-v110-ugc__head > span {
    display: block;
    margin-bottom: 10px;
  }
}

/* --- 3. Reaction wall: four columns that actually line up ---------------- */
@media (min-width: 1025px) {
  /* Small tiles are 9:16, so two of them plus the row gap is 0.568 of the lead
     tile's two-column width — within a pixel of 9:16. The lead therefore has no
     ratio of its own: it stretches into its 2x2 area and the rows stay flush.
     Setting a ratio AND a max-height on it was what tore the grid apart. */
  [data-raw-reveal-v110-revision] .raw-v110-ugc__rail--wall {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 14px !important;
    align-items: stretch !important;
  }

  [data-raw-reveal-v110-revision] .raw-v110-ugc__rail--wall article {
    grid-column: auto !important;
    grid-row: auto !important;
    aspect-ratio: 9 / 16 !important;
    width: auto !important;
    max-height: none !important;
    margin-inline: 0 !important;
  }

  /* The mobile lead tile is width-capped at 380px and height-capped at 72vh.
     Both caps have to be lifted here or the tile sits at 380x648 inside a
     583x975 grid area and every row below it runs ragged. */
  [data-raw-reveal-v110-revision] .raw-v110-ugc__rail--wall article:first-child {
    grid-column: 1 / span 2 !important;
    grid-row: 1 / span 2 !important;
    aspect-ratio: auto !important;
    width: auto !important;
    height: auto !important;
    max-height: none !important;
    margin-inline: 0 !important;
    align-self: stretch !important;
  }

  [data-raw-reveal-v110-revision] .raw-v110-ugc__rail--wall article:first-child img,
  [data-raw-reveal-v110-revision] .raw-v110-ugc__rail--wall article:first-child video {
    object-fit: cover !important;
  }
}

/* --- 4. Offer drawer: choice on the left, receipt on the right ----------- */
@media (min-width: 1025px) {
  /* The single 680px column was the right answer for a phone-shaped sheet and
     the wrong one for a 1440px page: two thirds of the screen was empty cream.
     Desktop gets a real two-column offer step, vertically centred so the
     remainder is shared above and below instead of pooling at the bottom. */
  [data-raw-reveal-v110-revision] .raw-v110-drawer__body {
    justify-content: center !important;
    padding: 0 clamp(32px, 4vw, 78px) clamp(20px, 3vh, 38px) !important;
  }

  [data-raw-reveal-v110-revision] .raw-v110-drawer__intro {
    display: grid !important;
    grid-template-columns: 1fr auto !important;
    align-items: end !important;
    width: min(100%, 1160px) !important;
    margin-inline: auto !important;
    padding: clamp(16px, 2.6vh, 32px) 0 0 !important;
  }

  [data-raw-reveal-v110-revision] .raw-v110-drawer__intro p {
    max-width: 420px;
    text-align: right;
  }

  [data-raw-reveal-v110-revision] .raw-v110-drawer__content {
    display: grid !important;
    grid-template-columns: minmax(0, 1.02fr) minmax(400px, 0.98fr) !important;
    align-items: start !important;
    justify-content: center !important;
    gap: clamp(24px, 2.6vw, 44px) !important;
    width: min(100%, 1160px) !important;
    margin-inline: auto !important;
    padding: clamp(18px, 2.4vh, 30px) 0 0 !important;
    overflow: visible !important;
    flex: 0 0 auto !important;
  }

  [data-raw-reveal-v110-revision] .raw-v110-ladder,
  [data-raw-reveal-v110-revision] .raw-v110-order {
    width: 100% !important;
    max-width: none !important;
    align-self: stretch !important;
  }

  [data-raw-reveal-v110-revision] .raw-v110-ladder {
    gap: 14px !important;
  }

  /* There is room for the product to be seen rather than thumbnailed. */
  [data-raw-reveal-v110-revision] .raw-v110-tier {
    grid-template-columns: 116px minmax(0, 1fr) 24px !important;
    gap: 18px !important;
    padding: 18px !important;
  }

  [data-raw-reveal-v110-revision] .raw-v110-order {
    gap: 12px !important;
    padding: 20px !important;
  }

  /* The price-lock band aligns with the columns beneath it. */
  [data-raw-reveal-v110-revision] .raw-v110-drawer__urgency {
    grid-template-columns: minmax(0, 1160px) !important;
    padding-inline: clamp(32px, 4vw, 78px) !important;
  }

  [data-raw-reveal-v110-revision] .raw-v110-drawer__urgency > span,
  [data-raw-reveal-v110-revision] .raw-v110-drawer__urgency > strong,
  [data-raw-reveal-v110-revision] .raw-v110-drawer__urgency > i {
    max-width: 1160px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-drawer__head {
    padding-inline: clamp(32px, 4vw, 78px) !important;
  }
}

/* ==========================================================================
   ROUND 12b — desktop, second pass
   ========================================================================== */
@media (min-width: 1025px) {
  /* The wall grew with the viewport: 1,741px tall at 1920 for five clips. The
     rail is capped so the tiles stay a readable size and the section is the
     same shape on every desktop width. */
  [data-raw-reveal-v110-revision] .raw-v110-ugc__rail--wall {
    width: min(100%, 1120px) !important;
    margin-inline: auto !important;
  }

  /* Headline and subline sat at opposite ends of 1,160px with nothing between
     them. The subline belongs under the headline. */
  [data-raw-reveal-v110-revision] .raw-v110-drawer__intro {
    display: block !important;
  }

  [data-raw-reveal-v110-revision] .raw-v110-drawer__intro p {
    max-width: 56ch;
    margin-top: 8px;
    text-align: left;
    font-size: 15px;
  }

  /* The price-lock band now shares the content's own 1160px measure, so the
     bar starts and ends exactly where the columns do. */
  [data-raw-reveal-v110-revision] .raw-v110-drawer__urgency {
    display: flex !important;
    align-items: center !important;
    gap: 18px !important;
    width: min(100%, 1160px) !important;
    margin-inline: auto !important;
    padding-inline: 0 !important;
  }

  [data-raw-reveal-v110-revision] .raw-v110-drawer__urgency > i {
    order: -1;
    flex: 1 1 auto;
    max-width: none;
  }

  /* Both columns fill one height, and the rungs are sized for a desktop screen
     instead of being phone thumbnails floated in a wide box. */
  [data-raw-reveal-v110-revision] .raw-v110-drawer__content {
    align-items: stretch !important;
  }

  [data-raw-reveal-v110-revision] .raw-v110-ladder {
    display: flex !important;
    flex-direction: column;
    justify-content: space-between !important;
  }

  [data-raw-reveal-v110-revision] .raw-v110-order {
    justify-content: space-between !important;
  }

  [data-raw-reveal-v110-revision] .raw-v110-tier {
    grid-template-columns: 150px minmax(0, 1fr) 26px !important;
    gap: 22px !important;
    padding: 22px !important;
    min-height: 210px !important;
  }
}

/* ==========================================================================
   ROUND 12c — desktop rungs, at a specificity that actually lands
   The mobile stack fixes the rungs' height and their thumbnail with
   `[aria-checked]` selectors, which outrank a plain `.raw-v110-tier` no matter
   how late it appears. So the desktop rung rules carry the drawer ancestor and
   the tier's own data attribute: 132px of product, and two cards that fill the
   column instead of two phone rows floating in it.
   ========================================================================== */
@media (min-width: 1025px) {
  [data-raw-reveal-v110-revision] [data-raw-v110-drawer] .raw-v110-tier[data-raw-tier] {
    grid-template-columns: 132px minmax(0, 1fr) 26px !important;
    gap: 20px !important;
    padding: 20px !important;
    min-height: 205px !important;
  }

  [data-raw-reveal-v110-revision] [data-raw-v110-drawer] .raw-v110-tier[data-raw-tier] > img,
  [data-raw-reveal-v110-revision] [data-raw-v110-drawer] .raw-v110-tier[aria-checked="true"] > img,
  [data-raw-reveal-v110-revision] [data-raw-v110-drawer] .raw-v110-tier[aria-checked="false"] > img {
    width: 132px !important;
    height: 165px !important;
    object-fit: cover !important;
  }

  [data-raw-reveal-v110-revision] [data-raw-v110-drawer] .raw-v110-ladder {
    justify-content: space-between !important;
  }

  /* The rung copy is set for a 360px sheet; beside a 132px product shot on a
     573px card it needs a step up, and the value line is the point of the card. */
  [data-raw-reveal-v110-revision] [data-raw-v110-drawer] .raw-v110-tier[data-raw-tier] .raw-v110-tier__main > strong {
    font-size: 15px !important;
  }

  [data-raw-reveal-v110-revision] [data-raw-v110-drawer] .raw-v110-tier[data-raw-tier] .raw-v110-tier__value {
    font-size: 19px !important;
  }
}

/* ==========================================================================
   ROUND 12d — the price-lock band keeps its full bleed
   Centring the band itself to the content measure stranded cream either side of
   a 53px red bar. The band stays edge to edge; only its contents are pulled in
   to the columns' measure, with the page gutter as the floor.
   ========================================================================== */
@media (min-width: 1025px) {
  [data-raw-reveal-v110-revision] .raw-v110-drawer__urgency {
    width: auto !important;
    margin-inline: 0 !important;
    padding-inline: max(clamp(32px, 4vw, 78px), calc((100% - 1160px) / 2)) !important;
  }

  /* At 44px the wordmark was a smudge. 30px is the most the bar will take
     without breaking the gated 44px header height. */
  [data-raw-reveal-v110-revision] .raw-v110-drawer__brand img {
    width: auto !important;
    height: 30px !important;
  }
}

/* ==========================================================================
   ROUND 12e — the offer step's measure scales with the screen
   A fixed 1160px block still read as small on a 1920 display. One custom
   property drives the intro, the columns and the price-lock band together, so
   they can never drift out of alignment again.
   ========================================================================== */
@media (min-width: 1025px) {
  [data-raw-reveal-v110-revision] [data-raw-v110-drawer] {
    --raw-v110-offer-measure: min(100%, clamp(1120px, 76vw, 1420px));
  }

  [data-raw-reveal-v110-revision] .raw-v110-drawer__intro,
  [data-raw-reveal-v110-revision] .raw-v110-drawer__content {
    width: var(--raw-v110-offer-measure) !important;
  }

  [data-raw-reveal-v110-revision] .raw-v110-drawer__urgency {
    padding-inline: max(
      clamp(32px, 4vw, 78px),
      calc((100% - clamp(1120px, 76vw, 1420px)) / 2)
    ) !important;
  }
}

/* ==========================================================================
   ROUND 14 — desktop dead space between dark sections
   All three blind lanes named this, and it measured at roughly 210px of
   contiguous empty black between the agitation beat and the film below it. The
   cause is additive: a 760px centred column leaves the width unused, the beat
   carries up to 108px of bottom padding, the next section carries up to 92px of
   top padding, and because BOTH sections are black the boundary is invisible —
   so the two paddings read as one void rather than as two margins.
   Three things fix it: the beat uses the width, the space carries content, and
   the seam between two dark sections is drawn.
   ========================================================================== */
[data-raw-reveal-v110-revision] .raw-v110-agitation__assurance {
  display: none;
}

@media (min-width: 1025px) {
  /* Headline and argument sit side by side, so the beat occupies its own width
     instead of a narrow column with black either side. */
  [data-raw-reveal-v110-revision] .raw-v110-agitation__inner {
    width: min(100%, 1240px) !important;
    display: grid;
    grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr);
    align-items: start;
    gap: clamp(40px, 4.4vw, 84px);
    text-align: left !important;
  }

  [data-raw-reveal-v110-revision] .raw-v110-agitation h2 {
    margin: 0;
  }

  [data-raw-reveal-v110-revision] .raw-v110-agitation__inner > div p:first-child {
    margin-top: 0;
  }

  /* The remaining space carries the offer's own reassurances rather than nothing. */
  [data-raw-reveal-v110-revision] .raw-v110-agitation__assurance {
    display: grid;
    grid-column: 1 / -1;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0;
    margin: clamp(34px, 3.6vh, 52px) 0 0;
    padding-top: clamp(22px, 2.4vh, 32px);
    border-top: 1px solid rgba(234, 209, 164, 0.26);
  }

  [data-raw-reveal-v110-revision] .raw-v110-agitation__assurance > div {
    padding-inline: clamp(14px, 1.6vw, 26px);
    border-left: 1px solid rgba(234, 209, 164, 0.16);
  }

  [data-raw-reveal-v110-revision] .raw-v110-agitation__assurance > div:first-child {
    padding-left: 0;
    border-left: 0;
  }

  [data-raw-reveal-v110-revision] .raw-v110-agitation__assurance dt {
    color: var(--raw-v110-gold-light);
    font: 700 12px/1.3 var(--raw-v110-mono);
    letter-spacing: 0.07em;
  }

  [data-raw-reveal-v110-revision] .raw-v110-agitation__assurance dd {
    margin: 5px 0 0;
    color: rgba(255, 250, 241, 0.72);
    font: 400 14px/1.45 var(--raw-v110-body);
  }

  /* The beat no longer needs a deep tail: the assurance row ends it. */
  [data-raw-reveal-v110-revision] .raw-v110-agitation {
    padding-bottom: clamp(38px, 4vh, 56px);
  }

  /*
   * Draw the seam. Where one dark section follows another the two paddings were
   * indistinguishable from a single dead field; a hairline plus a shallower top
   * padding makes the same space read as a section break.
   */
  [data-raw-reveal-v110-revision] .raw-v110-agitation + .raw-v110-ugc-section,
  [data-raw-reveal-v110-revision] .raw-v110-proof + .raw-v110-reviews,
  [data-raw-reveal-v110-revision] .raw-v110-reviews + .raw-v110-ugc-section {
    padding-top: clamp(44px, 4.6vh, 64px);
    border-top: 1px solid rgba(234, 209, 164, 0.14);
  }
}

/* ==========================================================================
   ROUND 15 — the commit box is the width of the offer it commits to
   The order block was never given a width, so as a flex child it took its
   max-content measure. That made it 354px against the rungs' 362px — and it got
   visibly narrower in r14, because shortening the trust line inside it shrank
   the box that was being sized by it. It now matches the rungs exactly and the
   button fills it.
   ========================================================================== */
@media (max-width: 1024px) {
  [data-raw-reveal-v110-revision] .raw-v110-drawer__content > .raw-v110-order {
    width: 100% !important;
    align-self: stretch !important;
  }

  [data-raw-reveal-v110-revision] .raw-v110-order [data-raw-review-cta] {
    width: 100% !important;
  }
}

/* ==========================================================================
   ROUND 16 — the lead films crop by a fixed amount, not by the phone's height
   Both big films (the featured one at S3 and the lead tile of the reaction
   wall) were sized "full width, then capped at 68svh". On a 390 or 430 phone
   that cap is generous and the frame reads as portrait; on a 375x667 phone it
   trimmed the 9:16 clip to 0.74 — which is the near-square crop that was
   objected to, reappearing only on short screens.

   The cap is replaced by a fixed 3:5 frame. The crop is now the same 6% of the
   clip on every phone instead of 0% on a tall one and 24% on a short one, and
   the shape no longer changes with the device. The captions burned into these
   clips sit inside that margin.
   ========================================================================== */
@media (max-width: 1024px) {
  [data-raw-reveal-v110-revision] .raw-v110-ugc__rail--featured article {
    aspect-ratio: 3 / 5;
    max-height: none;
  }
}

@media (max-width: 899px) {
  [data-raw-reveal-v110-revision] .raw-v110-ugc__rail--wall article:first-child {
    aspect-ratio: 3 / 5 !important;
    max-height: none !important;
  }
}

/* From 900px the wall is already four columns with the lead spanning 2x2, so a
   ratio on the lead can only fight the grid: at 1024x768 it sized itself 553px
   tall inside a 694px area and every row under it ran ragged. Above 1024 that
   was solved by letting the lead stretch into its area; the same treatment now
   covers the 900-1024 band instead of stopping short of it. */
@media (min-width: 900px) and (max-width: 1024px) {
  [data-raw-reveal-v110-revision] .raw-v110-ugc__rail--wall article:first-child {
    aspect-ratio: auto !important;
    width: auto !important;
    height: auto !important;
    max-height: none !important;
    margin-inline: 0 !important;
    align-self: stretch !important;
  }

  [data-raw-reveal-v110-revision] .raw-v110-ugc__rail--wall article:first-child img,
  [data-raw-reveal-v110-revision] .raw-v110-ugc__rail--wall article:first-child video {
    object-fit: cover !important;
  }
}

/* ==========================================================================
   ROUND 19 — the price is the loudest number, not the saving
   Team feedback from the drawer: "on mobile the thing at the bottom looks like
   it's the $236, not the $99. My first reaction was to grimace at the price."
   Exactly right. The savings row owned the filled red bar while YOU PAY TODAY
   sat on plain ground, so the largest, highest-contrast number in the block was
   the one the shopper does NOT pay. The two treatments swap: the price takes the
   emphasis, the saving becomes a quiet supporting line, and the total value is
   struck through directly beside the price so the figure cannot be misread.
   ========================================================================== */
[data-raw-reveal-v110-revision] .raw-v110-order__pay {
  display: flex !important;
  align-items: center;
  gap: 10px;
  padding: 10px 12px !important;
  background: linear-gradient(96deg, #8e1116, #d81e28 82%) !important;
  color: var(--raw-v110-white) !important;
}

[data-raw-reveal-v110-revision] .raw-v110-order__pay > span {
  color: rgba(255, 250, 241, 0.86);
  font: 700 12px/1.2 var(--raw-v110-mono);
  letter-spacing: 0.09em;
}

/* The struck total sits with the price, not with the saving, so "was / now"
   reads as one thought. */
[data-raw-reveal-v110-revision] .raw-v110-order__was,
[data-raw-reveal-v110-revision] .raw-v110-order__pay > s {
  margin-left: auto;
  color: rgba(255, 250, 241, 0.62);
  font: 400 15px/1 var(--raw-v110-mono);
  text-decoration-thickness: 1px;
}

[data-raw-reveal-v110-revision] .raw-v110-order__pay > b {
  margin-left: 0 !important;
  color: var(--raw-v110-white) !important;
  font: 700 30px/1 var(--raw-v110-mono) !important;
  font-variant-numeric: tabular-nums;
}

/* The saving keeps its meaning but stops shouting. */
[data-raw-reveal-v110-revision] .raw-v110-order__saving {
  padding: 6px 12px !important;
  border: 0 !important;
  background: none !important;
  color: rgba(255, 250, 241, 0.72) !important;
}

[data-raw-reveal-v110-revision] .raw-v110-order__saving > span {
  color: rgba(255, 250, 241, 0.62) !important;
  font: 700 11px/1.2 var(--raw-v110-mono) !important;
  letter-spacing: 0.08em;
}

[data-raw-reveal-v110-revision] .raw-v110-order__saving > b {
  color: var(--raw-v110-gold-light) !important;
  font: 700 15px/1 var(--raw-v110-mono) !important;
  font-variant-numeric: tabular-nums;
}

/* ==========================================================================
   ROUND 21 · Hero gallery rail
   --------------------------------------------------------------------------
   The rail is absolutely positioned inside the hero figure, which is already
   `position: relative; overflow: hidden` for the discount badge. Nothing in
   the hero's grid, height or image rules is touched, so the signed-off fold
   geometry is unchanged on both breakpoints.

   The panel's own `.raw-v110-hero__product img` rule is `position:absolute;
   inset:0; width:100%; height:100%` with !important, and it would otherwise
   catch the thumbnails too. The rules below carry one extra type selector, so
   they outrank it on specificity as well as source order.
   ========================================================================== */

[data-raw-reveal-v110-revision] .raw-v110-hero__rail {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 3;
  display: flex;
  justify-content: center;
  gap: 10px;
  padding: 34px 14px 14px;
  /* Scrim so the rail holds contrast over both the scarlet tiles and the dark
     room one. Transparent at the top so it never reads as a bar. */
  background: linear-gradient(to top, rgba(12, 2, 3, 0.68), rgba(12, 2, 3, 0));
  pointer-events: none;
}

[data-raw-reveal-v110-revision] .raw-v110-hero__rail > button.raw-v110-hero__tile {
  position: relative;
  /* A flex item's default `min-width: auto` is a content-based minimum, and the
     thumbnail inside is a full-size master, so the tile was being floored at the
     image's contribution instead of sitting at 48px. Pin the basis and drop the
     automatic minimum; without `min-width: 0` the width declaration is ignored. */
  flex: 0 0 48px;
  min-width: 0;
  width: 48px !important;
  height: 48px !important;
  padding: 0;
  overflow: hidden;
  border: 1px solid rgba(255, 250, 241, 0.42);
  border-radius: 0;
  background: rgba(12, 2, 3, 0.4);
  cursor: pointer;
  pointer-events: auto;
  transition: border-color 160ms ease;
  -webkit-appearance: none;
  appearance: none;
}

/* The tall tiles carry their product low in the frame, so a centred square
   crop would show mostly empty backdrop. Bias the crop downward. */
[data-raw-reveal-v110-revision] .raw-v110-hero__rail > button.raw-v110-hero__tile > img {
  position: static !important;
  inset: auto !important;
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: 50% 62% !important;
  opacity: 0.68;
  transition: opacity 160ms ease;
}

[data-raw-reveal-v110-revision] .raw-v110-hero__rail > button.raw-v110-hero__tile:hover > img,
[data-raw-reveal-v110-revision] .raw-v110-hero__rail > button.raw-v110-hero__tile:focus-visible > img {
  opacity: 1;
}

[data-raw-reveal-v110-revision] .raw-v110-hero__rail > button.raw-v110-hero__tile:hover {
  border-color: rgba(234, 209, 164, 0.85);
}

[data-raw-reveal-v110-revision] .raw-v110-hero__rail > button.raw-v110-hero__tile:focus-visible {
  outline: 2px solid var(--raw-v110-gold-light);
  outline-offset: 2px;
}

[data-raw-reveal-v110-revision] .raw-v110-hero__rail > button.raw-v110-hero__tile.is-active {
  border-color: var(--raw-v110-gold-light);
}

[data-raw-reveal-v110-revision] .raw-v110-hero__rail > button.raw-v110-hero__tile.is-active > img {
  opacity: 1;
}

/* Tap targets stay at the 44px floor even though the tile paints at 48px;
   the pseudo-element extends the hit area into the rail's own gap. */
[data-raw-reveal-v110-revision] .raw-v110-hero__rail > button.raw-v110-hero__tile::after {
  content: "";
  position: absolute;
  inset: -5px;
}

/* The image swap is a cross-fade rather than a hard cut, so a heavier tile
   arriving late does not flash. */
[data-raw-reveal-v110-revision] .raw-v110-hero__product picture > img[data-raw-hero-image] {
  transition: opacity 220ms ease;
}

[data-raw-reveal-v110-revision] .raw-v110-hero__product[data-raw-hero-swapping] picture > img[data-raw-hero-image] {
  opacity: 0.28;
}

@media (min-width: 1025px) {
  [data-raw-reveal-v110-revision] .raw-v110-hero__rail {
    justify-content: flex-start;
    gap: 12px;
    padding: 44px 24px 24px;
  }

  [data-raw-reveal-v110-revision] .raw-v110-hero__rail > button.raw-v110-hero__tile {
    flex-basis: 58px;
    width: 58px !important;
    height: 58px !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  [data-raw-reveal-v110-revision] .raw-v110-hero__rail > button.raw-v110-hero__tile,
  [data-raw-reveal-v110-revision] .raw-v110-hero__rail > button.raw-v110-hero__tile > img,
  [data-raw-reveal-v110-revision] .raw-v110-hero__product picture > img[data-raw-hero-image] {
    transition: none;
  }
}

/* ==========================================================================
   ROUND 23 · Hero gallery — scroll-snap track
   --------------------------------------------------------------------------
   Replaces the swapping `src` with four real slides in a snap track.

   The reason is handheld. A thumbnail row under the picture needs ~50-60px,
   and the only place to find that on a short viewport was the picture's own
   height — which crops, because the image keeps its ratio and `cover` eats the
   difference. Measured: 27% cropped at 390x676, 31% at 412x700. Those are
   ordinary phones with browser chrome, not edge cases.

   Swiping costs nothing, so the picture box goes back to the image's own ratio
   and the product is never cut. The dots overlay the bottom six pixels.

   Desktop keeps the rail — the panel is full-height and has the room.
   ========================================================================== */

[data-raw-reveal-v110-revision] .raw-v110-hero__track {
  position: absolute;
  inset: 0;
  z-index: 1;
  display: flex;
  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  overscroll-behavior-x: contain;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}

[data-raw-reveal-v110-revision] .raw-v110-hero__track::-webkit-scrollbar {
  display: none;
}

[data-raw-reveal-v110-revision] .raw-v110-hero__slide {
  position: relative;
  flex: 0 0 100%;
  width: 100%;
  height: 100%;
  scroll-snap-align: center;
  scroll-snap-stop: always;
}

/* The picture box is restored to the image's own ratio, so `cover` has nothing
   to crop. This is the rule the handheld override used to fight. */
@media (max-width: 1024px) {
  [data-raw-reveal-v110-revision] .raw-v110-hero__product {
    aspect-ratio: 1200 / 736;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: hidden;
  }

  [data-raw-reveal-v110-revision] .raw-v110-hero__rail {
    display: none;
  }
}

/* --- Position dots (handheld) --------------------------------------------- */

[data-raw-reveal-v110-revision] .raw-v110-hero__dots {
  position: absolute;
  right: 0;
  bottom: 10px;
  left: 0;
  z-index: 3;
  display: flex;
  justify-content: center;
  gap: 7px;
  pointer-events: none;
}

[data-raw-reveal-v110-revision] .raw-v110-hero__dots > span {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: rgba(255, 250, 241, 0.42);
  /* No scrim behind the dots — a shadow is enough to hold them against either
     a scarlet or a near-black slide, and costs the picture nothing. */
  box-shadow: 0 0 4px rgba(12, 2, 3, 0.85);
  transition: background-color 160ms ease, transform 160ms ease;
}

[data-raw-reveal-v110-revision] .raw-v110-hero__dots > span.is-active {
  background: var(--raw-v110-gold-light);
  transform: scale(1.35);
}

@media (min-width: 1025px) {
  [data-raw-reveal-v110-revision] .raw-v110-hero__dots {
    display: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  [data-raw-reveal-v110-revision] .raw-v110-hero__track {
    scroll-behavior: auto;
  }

  [data-raw-reveal-v110-revision] .raw-v110-hero__dots > span {
    transition: none;
  }
}
