/* Shared, conventional reading scale across all premium routes. */
:root {
  --type-title: clamp(2.25rem, 4.5vw, 4rem);
  --type-section: clamp(1.875rem, 3.4vw, 3rem);
  --type-card: clamp(1.375rem, 2.1vw, 1.875rem);
}
body { font-size: 1.0625rem; line-height: 1.62; }
body h1 { font-size: var(--type-title) !important; }
body h2 { font-size: var(--type-section) !important; }
body h3 { font-size: var(--type-card) !important; }
body :is(h1, h2, h3) {
  line-height: 1.2 !important;
  letter-spacing: -.025em !important;
  overflow-wrap: break-word;
}
body :is(input, select, textarea) { font-size: 1rem; }

/* One readable text scale for the homepage and every active subpage. */
body main :is(p, li, blockquote) { font-family: inherit; }
body main p:not(.eyebrow):not([class*="kicker"]):not([class*="index"]):not([class*="label"]):not([class*="number"]):not([class*="meta"]):not([class*="price"]):not([class*="tag"]) {
  font-size: 1.0625rem !important;
  line-height: 1.68 !important;
}
body main li {
  font-size: 1.0625rem !important;
  line-height: 1.62 !important;
}
body main blockquote {
  font-size: 1.0625rem !important;
  line-height: 1.68 !important;
}

/* Homepage philosophy is a display statement, not regular body copy. */
body main .sales-story-philosophy blockquote {
  max-width: 24ch;
  margin: 2rem auto 0;
  font-size: clamp(1.75rem, 2.86vw, 3.07rem) !important;
  font-weight: 680;
  letter-spacing: -.065em;
  line-height: .98 !important;
}

/* Solid text colors and open line boxes keep umlaut dots clear of adjacent text. */
body #hero-title {
  color: #f8f3ea;
  line-height: 1.35 !important;
  letter-spacing: .01em !important;
  white-space: normal;
  overflow: visible;
  overflow-wrap: normal;
  max-width: 100%;
  padding-block: .15em;
}
body #hero-title > span {
  color: #e2bf78;
  -webkit-text-fill-color: #e2bf78;
  background: none;
  animation: none;
  line-height: inherit;
  letter-spacing: inherit;
  overflow: visible;
}

/* The home carousel remains one coherent stage, with room for its controls. */
body .cinematic-hero.no-scroll-animation:not(.hero-deck--alternate) > .cinematic-sticky::after {
  content: '';
  position: absolute;
  inset: clamp(.5rem, 1vw, 1rem);
  z-index: 20;
  border: 1px solid rgba(212, 175, 103, .4);
  border-radius: .5rem;
  pointer-events: none;
  background: none;
  mix-blend-mode: normal;
}
@media (min-width: 901px) {
  body .cinematic-hero.no-scroll-animation,
  body .cinematic-hero.no-scroll-animation .cinematic-sticky {
    height: 100dvh !important;
    min-height: 38rem !important;
  }
  body .no-scroll-animation .cinematic-title.hero-editorial {
    min-height: 0 !important;
    padding-block: 7rem 5rem !important;
  }
}
body .hero-deck__copy h3 {
  font-size: clamp(1.75rem, 3.1vw, 3rem) !important;
}
body .hero-deck__slide--social h3 {
  font-size: clamp(1.5rem, 2.5vw, 2.5rem) !important;
}
body .hero-deck__copy { padding-block: 8rem 5rem; }
body .hero-deck__care { max-width: 24rem; justify-self: center; }
body .pw-hero-choice-only .pw-choice a { min-height: 8rem; padding: 1.5rem; }
body .pw-hero-choice-only .pw-choice strong { font-size: 1.375rem; line-height: 1.3; }
body .social-gate-grid > a { min-height: 26rem; }
body .film-choice__grid > :is(a, button) { min-height: 20rem; }

@media (max-width: 700px) {
  body .hero-deck__slide .hero-deck__copy { padding: 2rem 3.5rem; }
  body .hero-deck__copy h3,
  body .hero-deck__slide--social h3 { font-size: 1.75rem !important; }
  body .social-gate-grid > a { min-height: 22rem; }
  body .film-choice__grid > :is(a, button) { min-height: 18rem; }
  body :is(input, select, textarea) { font-size: 1rem !important; }
}
