/* ==========================================================================
   Desiree de Lunae — homepage styles
   Built on the Desiree de Lunae brand system (Nicole A Yang / The Design Lab)
   ========================================================================== */

/* ---- Fonts ---------------------------------------------------------------- */
@font-face {
  font-family: "TAN Mon Cheri";
  font-style: normal; font-weight: 400; font-display: swap;
  src: url("../assets/fonts/TANMonCheri.woff2") format("woff2"),
       url("../assets/fonts/TANMonCheri.woff") format("woff");
}
@font-face {
  font-family: "Nunito Sans";
  font-style: normal; font-weight: 400; font-display: swap;
  src: url("../assets/fonts/NunitoSans-Regular.ttf") format("truetype");
}
@font-face {
  font-family: "Nunito Sans";
  font-style: normal; font-weight: 600; font-display: swap;
  src: url("../assets/fonts/NunitoSans-SemiBold.ttf") format("truetype");
}
@font-face {
  font-family: "Nunito Sans";
  font-style: normal; font-weight: 700; font-display: swap;
  src: url("../assets/fonts/NunitoSans-Bold.ttf") format("truetype");
}
@font-face {
  font-family: "Big Shoulders Display";
  font-style: normal; font-weight: 500; font-display: swap;
  src: url("../assets/fonts/BigShouldersDisplay-Medium.ttf") format("truetype");
}
@font-face {
  font-family: "Big Shoulders Display";
  font-style: normal; font-weight: 600; font-display: swap;
  src: url("../assets/fonts/BigShouldersDisplay-SemiBold.ttf") format("truetype");
}

/* ---- Tokens --------------------------------------------------------------- */
:root {
  --salmon: #fc8068;
  --salmon-700: #cf5036;
  --salmon-300: #fea892;
  --coral: #ff5c36;
  --peach: #fe9b71;
  --peach-100: #ffe6da;
  --blush: #f7d2c9;
  --blush-100: #fdf3ef;
  --blush-200: #fae8e1;
  --lilac: #95a3e8;
  --lilac-100: #e7eafb;
  --sand: #e2dcd5;
  --cream: #fbf6f1;
  --charcoal: #292728;
  --text-body: rgba(41, 39, 40, .8);
  --text-muted: rgba(41, 39, 40, .55);
  --border-soft: rgba(41, 39, 40, .12);

  --font-display: "TAN Mon Cheri", "Cormorant Garamond", Georgia, serif;
  --font-sans: "Nunito Sans", system-ui, -apple-system, sans-serif;
  --font-accent: "Big Shoulders Display", "Nunito Sans", sans-serif;

  --ease: cubic-bezier(.22, .61, .36, 1);
  --container: 1120px;
  --gutter: clamp(20px, 4vw, 56px);
}

/* ---- Base ----------------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  margin: 0;
  background: #fff;
  color: var(--charcoal);
  font-family: var(--font-sans);
  font-size: 16.5px;
  line-height: 1.72;
  -webkit-font-smoothing: antialiased;
}

img, svg { display: block; max-width: 100%; height: auto; }

a { color: var(--salmon); text-decoration: none; }
a:hover { color: var(--salmon-700); text-decoration: underline; }

h1, h2, h3 { font-family: var(--font-display); font-weight: 400; margin: 0; }

p { margin: 0 0 16px; text-wrap: pretty; }

.container { max-width: var(--container); margin: 0 auto; }

.label {
  font-family: var(--font-sans);
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: .22em;
  text-transform: uppercase;
}

/* Outline button — brand default: hairline charcoal, fills on hover */
.btn {
  display: inline-flex;
  align-items: center;
  gap: .7em;
  padding: 14px 22px;
  border: 1px solid var(--charcoal);
  color: var(--charcoal);
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: .2em;
  text-transform: uppercase;
  line-height: 1;
  white-space: nowrap;
  transition: background 200ms var(--ease), color 200ms var(--ease);
}
.btn:hover { background: var(--charcoal); color: #fff; text-decoration: none; }

.btn--fill {
  background: var(--salmon);
  border: none;
  color: var(--charcoal);
  cursor: pointer;
  font-family: var(--font-sans);
  justify-content: center;
  padding: 16px 18px;
}
.btn--fill:hover { background: #fff; color: var(--charcoal); }

.skip-link {
  position: absolute;
  left: -9999px;
  top: 0;
  background: var(--charcoal);
  color: #fff;
  padding: 12px 18px;
  z-index: 100;
}
.skip-link:focus { left: 8px; top: 8px; }

/* ---- Announcement bar ------------------------------------------------------ */
.announce {
  background: var(--charcoal);
  color: #fff;
  text-align: center;
  padding: 11px 20px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .22em;
  text-transform: uppercase;
  line-height: 1.5;
}
.announce a { color: var(--salmon-300); text-decoration: underline; text-underline-offset: 3px; }
.announce br { display: none; }

/* ---- Header / nav ---------------------------------------------------------- */
.masthead {
  position: sticky;
  top: 0;
  z-index: 60;
}

.header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  height: 132px;
  padding: 0 var(--gutter);
  background: linear-gradient(96deg, var(--blush) 0%, var(--peach) 42%, var(--blush-200) 100%);
}
.header__logo { display: flex; align-items: center; flex: none; }
.header__logo img { height: 172px; width: auto; max-width: none; }

.nav { display: flex; align-items: stretch; gap: 26px; align-self: stretch; }
.nav__item { position: relative; display: flex; align-items: center; }

.nav__link {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  background: none;
  border: none;
  padding: 0;
  font-family: var(--font-sans);
  font-size: 13.5px;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--charcoal);
  cursor: pointer;
}
.nav__link:hover { color: var(--salmon-700); text-decoration: none; }
.nav__caret { font-size: 9px; line-height: 1; transition: transform 180ms var(--ease); }
.nav__item[aria-expanded="true"] .nav__caret { transform: rotate(180deg); }

.nav__panel {
  position: absolute;
  top: 100%;
  left: -18px;
  min-width: 232px;
  padding: 10px 0;
  margin: 0;
  list-style: none;
  background: var(--cream);
  border: 1px solid rgba(41, 39, 40, .14);
  box-shadow: 0 18px 40px rgba(41, 39, 40, .16);
  opacity: 0;
  visibility: hidden;
  transform: translateY(-6px);
  transition: opacity 180ms var(--ease), transform 180ms var(--ease), visibility 180ms;
  z-index: 20;
}
.nav__item:hover .nav__panel,
.nav__item:focus-within .nav__panel,
.nav__item[aria-expanded="true"] .nav__panel {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.nav__panel a {
  display: block;
  padding: 9px 22px;
  color: var(--charcoal);
  font-size: 12.5px;
  font-weight: 600;
  letter-spacing: .12em;
  white-space: nowrap;
}
.nav__panel a:hover { background: var(--blush-100); color: var(--salmon-700); text-decoration: none; }

.nav__login {
  align-self: center;
  border: 1px solid var(--charcoal);
  padding: 9px 16px;
  color: var(--charcoal);
  font-size: 13.5px;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  transition: background 200ms var(--ease), color 200ms var(--ease);
}
.nav__login:hover { background: var(--charcoal); color: #fff; text-decoration: none; }

.burger { display: none; }

/* ---- Hero ------------------------------------------------------------------ */
.hero {
  position: relative;
  height: 760px;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 96px 40px 0;
  background-image:
    linear-gradient(180deg, rgba(41, 39, 40, .30), rgba(41, 39, 40, .10) 34%, rgba(41, 39, 40, .42)),
    url("../assets/img/hero-field.jpg");
  background-size: cover;
  background-position: center 40%;
}
.hero__title {
  max-width: 900px;
  margin: 0 0 20px;
  color: #fff;
  font-size: 66px;
  line-height: 1.06;
  text-transform: uppercase;
  text-align: center;
  text-shadow: 0 2px 18px rgba(41, 39, 40, .55), 0 1px 3px rgba(41, 39, 40, .35);
}
.hero__kicker {
  font-size: 19px;
  font-weight: 700;
  letter-spacing: .28em;
  text-transform: uppercase;
  text-align: center;
  color: rgba(255, 255, 255, .96);
  text-shadow: 0 2px 14px rgba(41, 39, 40, .55), 0 1px 3px rgba(41, 39, 40, .35);
}

/* ---- Intro ----------------------------------------------------------------- */
.page-wash { background: var(--blush-100); padding: 0 var(--gutter) 76px; }

.intro {
  max-width: var(--container);
  margin: -190px auto 0;
  padding: 44px;
  display: grid;
  grid-template-columns: 280px 1fr;
  gap: 48px;
  align-items: center;
  background: rgba(226, 220, 213, .9);
  backdrop-filter: blur(4px);
}
.arch {
  aspect-ratio: 3 / 4;
  width: 100%;
  height: auto;
  object-fit: cover;
  border-radius: 999px 999px 2px 2px;
}
.intro__title { font-size: 40px; line-height: 1.05; text-transform: uppercase; margin-bottom: 6px; }
.intro__kicker { color: var(--salmon-700); margin-bottom: 22px; }
.intro__name {
  font-family: var(--font-accent);
  font-size: 25px;
  font-weight: 500;
  letter-spacing: .15em;
  text-transform: uppercase;
  margin-bottom: 12px;
}
.intro p { color: var(--text-body); max-width: 520px; }
.intro p:last-of-type { margin-bottom: 26px; }

/* ---- Elemental Medicine ---------------------------------------------------- */
.elemental {
  max-width: var(--container);
  margin: 80px auto 0;
  padding: 60px 88px;
  background: var(--cream);
  display: grid;
  grid-template-columns: 1fr 420px;
  gap: 64px;
  align-items: center;
}
.elemental__eyebrow { color: var(--salmon-700); margin-bottom: 16px; }
.elemental h2 { font-size: 46px; line-height: 1.08; margin-bottom: 24px; }
.elemental p { color: var(--text-body); max-width: 600px; }
.elemental__cta { margin-top: 14px; }
.elemental__caption {
  margin: 22px 0 0;
  text-align: center;
  color: var(--text-muted);
}

/* ---- Four paths ------------------------------------------------------------ */
.paths-head { max-width: var(--container); margin: 76px auto 0; text-align: center; }
.paths-head h2 {
  font-size: 52px;
  line-height: 1.06;
  letter-spacing: .03em;
  text-transform: uppercase;
  color: var(--salmon);
  margin-bottom: 12px;
}
.paths-head p { max-width: 600px; margin: 0 auto 52px; color: var(--text-body); }

.paths {
  max-width: var(--container);
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
}
.path {
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: 38px 30px 34px;
  min-width: 0;
  border-top: 1px solid var(--charcoal);
  border-right: 1px solid var(--border-soft);
  transition: background 200ms var(--ease);
}
.path:hover { text-decoration: none; }
.path:first-child { padding-left: 0; }
.path:last-child { padding-right: 0; border-right: none; }
.path__num {
  font-family: var(--font-accent);
  font-size: 15px;
  font-weight: 500;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--salmon-700);
}
.path__title {
  font-family: var(--font-display);
  font-size: 30px;
  line-height: 1.1;
  letter-spacing: .03em;
  text-transform: uppercase;
  color: var(--charcoal);
}
.path p { flex: 1; margin: 0; color: var(--text-body); }
.path__more { color: var(--charcoal); }

/* ---- Events ---------------------------------------------------------------- */
.events {
  padding: 80px var(--gutter);
  background: radial-gradient(120% 90% at 22% 8%,
    rgba(149, 163, 232, .42) 0%, rgba(231, 234, 251, .85) 46%, var(--lilac-100) 100%);
}
.events__head { text-align: center; margin-bottom: 40px; }
.events__head .label { font-size: 14px; color: var(--salmon-700); display: block; margin-bottom: 14px; }
.events__head h2 {
  font-size: 56px;
  line-height: 1.06;
  letter-spacing: .02em;
  text-transform: uppercase;
}
.events__list { border-top: 1px solid var(--charcoal); }

.event {
  display: grid;
  grid-template-columns: 190px 1fr 180px 215px;
  gap: 28px;
  align-items: center;
  padding: 26px 0;
  border-bottom: 1px solid var(--border-soft);
  transition: background 200ms var(--ease);
}
.event:hover { text-decoration: none; }
.event__date {
  font-family: var(--font-accent);
  font-size: 30px;
  font-weight: 600;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--salmon-700);
  line-height: 1;
}
.event__duration { font-size: 13px; color: var(--text-muted); margin-top: 6px; }
.event__title {
  font-family: var(--font-display);
  font-size: 26px;
  line-height: 1.15;
  letter-spacing: .03em;
  text-transform: uppercase;
  color: var(--charcoal);
  margin-bottom: 8px;
}
.event p { margin: 0; max-width: 520px; color: var(--text-body); }
.event__meta { font-size: 13px; line-height: 1.6; color: var(--text-muted); }
.event__format {
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--charcoal);
  margin-bottom: 6px;
}
.event .btn { justify-self: end; padding: 11px 18px; }
.events__cta { display: flex; justify-content: center; margin-top: 40px; }

/* ---- Footer ---------------------------------------------------------------- */
.footer { background: var(--charcoal); padding: 64px var(--gutter) 40px; color: #fff; }
.footer__top {
  max-width: var(--container);
  margin: 0 auto;
  display: grid;
  grid-template-columns: 300px 1fr;
  gap: 72px;
  align-items: start;
}
.signup { display: flex; flex-direction: column; gap: 12px; }
.signup h2 { font-size: 26px; line-height: 1.15; letter-spacing: .04em; text-transform: uppercase; color: #fff; }
.signup p { font-size: 14px; line-height: 1.6; color: rgba(255, 255, 255, .72); margin: 0 0 6px; }
.signup input {
  font-family: var(--font-sans);
  font-size: 14px;
  color: #fff;
  background: transparent;
  border: 1px solid rgba(255, 255, 255, .28);
  padding: 12px 14px;
  transition: border-color 180ms var(--ease);
}
.signup input::placeholder { color: rgba(255, 255, 255, .5); }
.signup input:focus { outline: none; border-color: var(--salmon); }

.footer__nav { display: grid; grid-template-columns: repeat(4, 1fr); gap: 36px; }
.footer__col { display: flex; flex-direction: column; gap: 12px; }
.footer__col h3 {
  font-family: var(--font-sans);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, .5);
}
.footer__col a { color: #fff; font-size: 14px; }

.footer__bottom {
  max-width: var(--container);
  margin: 44px auto 0;
  padding-top: 22px;
  border-top: 1px solid rgba(255, 255, 255, .14);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  flex-wrap: wrap;
}
.legal { display: flex; flex-direction: column; gap: 8px; font-size: 12px; line-height: 1.6; color: rgba(255, 255, 255, .5); }
.legal a { color: rgba(255, 255, 255, .5); }
.legal__links { display: flex; align-items: center; gap: 10px; }
.legal__sep { color: rgba(255, 255, 255, .28); }
.legal__credit a { color: rgba(255, 255, 255, .75); text-decoration: underline; text-underline-offset: 3px; }

.social { display: flex; flex-direction: column; align-items: flex-end; gap: 14px; }
.social__label { font-size: 11px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: rgba(255, 255, 255, .5); }
.social__links { display: flex; align-items: center; gap: 22px; }
.social__links a { color: rgba(255, 255, 255, .75); }
.social__links a:hover { color: var(--salmon); }

/* ==========================================================================
   Tablet
   ========================================================================== */
@media (min-width: 1025px) and (max-width: 1240px) {
  .header { height: 108px; }
  .header__logo img { height: 132px; }
  .nav { gap: 18px; }
  .nav__link, .nav__login { font-size: 12px; letter-spacing: .1em; }
  .hero__title { font-size: 52px; }
  .elemental { grid-template-columns: 1fr; padding: 48px; gap: 36px; }
  .elemental__art { max-width: 380px; margin: 0 auto; }
  .paths { grid-template-columns: repeat(2, 1fr); }
  .path { padding: 32px 26px; }
  .path:first-child, .path:nth-child(3) { padding-left: 0; }
  .path:nth-child(2), .path:last-child { padding-right: 0; border-right: none; }
  .event { grid-template-columns: 170px 1fr 170px; }
  .event .btn { grid-column: 2 / -1; justify-self: start; }
  .footer__nav { grid-template-columns: repeat(2, 1fr); }
}

/* ==========================================================================
   Mobile
   ========================================================================== */
@media (max-width: 1024px) {
  body { font-size: 16.5px; }

  .announce { padding: 10px 16px; font-size: 10px; letter-spacing: .16em; }
  .announce br { display: inline; }

  /* Only the header pins on mobile; the announcement bar scrolls away */
  .announce-wrap { position: static; }

  .header { height: 84px; padding: 0 18px; }
  .header__logo img { height: 104px; margin-left: -6px; max-width: none; }

  .burger {
    display: flex;
    flex-direction: column;
    gap: 5px;
    background: none;
    border: none;
    padding: 12px 4px;
    cursor: pointer;
  }
  .burger span {
    display: block;
    width: 26px;
    height: 1.5px;
    background: var(--charcoal);
    transition: transform 200ms var(--ease), opacity 160ms;
  }
  .burger[aria-expanded="true"] span:nth-child(1) { transform: translateY(6.5px) rotate(45deg); }
  .burger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
  .burger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-6.5px) rotate(-45deg); }

  /* Nav becomes an accordion drawer */
  .nav {
    position: absolute;
    left: 0;
    right: 0;
    top: 100%;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    background: var(--cream);
    max-height: 0;
    overflow: hidden;
    transition: max-height 320ms var(--ease);
  }
  .nav.is-open {
    max-height: 80vh;
    overflow-y: auto;
    border-bottom: 1px solid rgba(41, 39, 40, .14);
    box-shadow: 0 18px 40px rgba(41, 39, 40, .16);
  }
  .nav__item { display: block; border-bottom: 1px solid rgba(41, 39, 40, .10); }
  .nav__link {
    width: 100%;
    justify-content: space-between;
    padding: 16px 20px;
    font-size: 13px;
    letter-spacing: .16em;
  }
  .nav__caret { font-size: 10px; }
  .nav__panel {
    position: static;
    min-width: 0;
    opacity: 1;
    visibility: visible;
    transform: none;
    border: none;
    box-shadow: none;
    background: var(--blush-100);
    padding: 6px 0 12px;
    display: none;
  }
  .nav__item[aria-expanded="true"] .nav__panel { display: block; }
  .nav__panel a { padding: 11px 20px 11px 34px; font-size: 14px; letter-spacing: 0; font-weight: 400; }
  .nav__login {
    display: block;
    margin: 18px 20px 22px;
    text-align: center;
    padding: 14px;
    font-size: 11.5px;
    letter-spacing: .2em;
  }

  .hero {
    height: auto;
    min-height: 560px;
    justify-content: center;
    padding: 64px 24px;
    background-position: 58% 30%;
  }
  .hero__title { font-size: 36px; line-height: 1.08; margin-bottom: 18px; }
  .hero__kicker { font-size: 12px; letter-spacing: .22em; line-height: 1.7; }

  /* Intro: portrait first, centred heading trio */
  .page-wash { padding: 0; background: none; }
  .intro {
    margin: 0;
    padding: 56px 24px 64px;
    grid-template-columns: 1fr;
    gap: 26px;
    background: var(--sand);
    backdrop-filter: none;
  }
  .intro__art { max-width: 260px; margin: 0 auto; }
  .intro__title, .intro__kicker, .intro__name { text-align: center; }
  .intro__title { font-size: 32px; }
  .intro p { max-width: none; }
  .intro .btn { margin: 0 auto; }

  .elemental {
    margin: 0;
    padding: 64px 24px 68px;
    grid-template-columns: 1fr;
    gap: 0;
  }
  .elemental h2 { font-size: 34px; line-height: 1.12; margin-bottom: 22px; }
  .elemental__art { order: -1; max-width: 78%; margin: 0 auto 22px; }
  .elemental__caption { display: none; }
  .elemental p { max-width: none; }
  .elemental .btn { margin: 10px auto 0; }

  .paths-head { margin: 0; padding: 64px 24px 0; }
  .paths-head h2 { font-size: 34px; line-height: 1.1; }
  .paths-head p { margin-bottom: 30px; }
  .paths {
    grid-template-columns: 1fr;
    padding: 0 24px 20px;
    background: var(--blush-100);
  }
  .paths-head { background: var(--blush-100); }
  .path { padding: 26px 0; border-right: none; }
  .path:not(:first-child) { border-top-color: var(--border-soft); }
  .path:first-child, .path:last-child, .path:nth-child(2), .path:nth-child(3) { padding-left: 0; padding-right: 0; }
  .path__title { font-size: 28px; }

  .events { padding: 64px 24px 68px; }
  .events__head h2 { font-size: 34px; line-height: 1.08; }
  .events__head .label { font-size: 12px; }
  .event {
    grid-template-columns: 1fr;
    gap: 10px;
    padding: 22px 0;
    align-items: start;
  }
  .event__when { display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; }
  .event__date { font-size: 26px; }
  .event__duration { margin-top: 0; }
  .event__title { font-size: 24px; margin-bottom: 0; }
  .event p { display: none; }
  .event .btn { grid-column: auto; justify-self: start; margin-top: 4px; padding: 12px 18px; }

  .footer { padding: 60px 24px 34px; }
  .footer__top { grid-template-columns: 1fr; gap: 38px; }
  .signup input { padding: 14px; font-size: 15px; }
  .footer__nav { grid-template-columns: 1fr 1fr; gap: 28px; }
  .footer__col { text-align: center; gap: 11px; }
  .footer__bottom {
    flex-direction: column-reverse;
    align-items: center;
    margin-top: 34px;
  }
  .legal { align-items: center; text-align: center; }
  .social { align-items: center; padding-bottom: 26px; }
}

@media (prefers-reduced-motion: reduce) {
  * { animation: none !important; transition: none !important; }
  html { scroll-behavior: auto; }
}


/* ==========================================================================
   About page
   ========================================================================== */
.about-hero {
  position: relative;
  height: 620px;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  padding: 0 96px;
  background-image: url("../assets/img/about-hero.jpg");
  background-size: cover;
  background-position: center 42%;
}
.about-hero__inner { max-width: 520px; text-align: right; }
.about-hero h1 {
  font-size: 52px;
  line-height: 1.12;
  letter-spacing: .02em;
  text-transform: uppercase;
  margin-bottom: 18px;
  text-shadow: 0 2px 18px rgba(255, 255, 255, .5);
}
.about-hero__soami { font-family: var(--font-display); font-size: 32px; margin-bottom: 16px; }
.about-hero__kicker { font-size: 15px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; line-height: 1.9; margin: 0; }

.about-intro {
  padding: 88px var(--gutter) 72px;
  max-width: var(--container);
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: start;
}
.about-intro__left { text-align: right; }
.about-intro__label { font-size: 15px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; margin-bottom: 20px; }
.about-intro p { color: var(--text-body); }
.about-intro__mission { font-size: 15px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--salmon); margin-bottom: 16px; }
.about-intro__display { font-family: var(--font-display); font-size: 46px; line-height: 1.14; color: var(--salmon); }

.story {
  background: linear-gradient(180deg, #fff 0%, var(--blush-100) 22%, var(--blush) 100%);
  padding: 0 var(--gutter) 110px;
}
.story__row {
  max-width: var(--container);
  margin: 0 auto;
  display: grid;
  gap: 72px;
  align-items: center;
}
.story__row--first { grid-template-columns: 340px 1fr; }
.story__row--second { grid-template-columns: 1fr 360px; margin-top: 92px; }
.story__row--third { grid-template-columns: 360px 1fr; margin-top: 96px; }
.story__row--second .story__copy { text-align: right; }
.story__label {
  font-size: 15px;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
  line-height: 1.8;
  margin-bottom: 20px;
}
.story p { color: var(--text-body); max-width: 520px; }
.story__row--second .story__copy p { max-width: none; }
.story__today { font-family: var(--font-display); font-size: 42px; line-height: 1.1; margin: 26px 0 18px; }

.story__quote { max-width: 860px; margin: 104px auto 0; text-align: center; }
.story__quote h2 { font-size: 42px; line-height: 1.22; color: var(--salmon); margin-bottom: 26px; }
.story__quote p { max-width: 640px; margin: 0 auto 40px; }
.story__quote-note { font-size: 15px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; line-height: 1.9; }

/* Arch photo with the offset outline */
.arch-frame { position: relative; }
.arch-frame::before {
  content: "";
  position: absolute;
  inset: -18px -18px 18px 18px;
  border: 1px solid var(--salmon);
  border-radius: 999px 999px 2px 2px;
  pointer-events: none;
}
.arch-frame img { position: relative; }

.mission {
  padding: 120px var(--gutter);
  text-align: center;
  background-image: linear-gradient(rgba(41, 39, 40, .52), rgba(41, 39, 40, .52)), url("../assets/img/about-ocean.jpg");
  background-size: cover;
  background-position: center 45%;
  color: #fff;
}
.mission__inner { max-width: 760px; margin: 0 auto; }
.mission__label { font-size: 15px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; line-height: 1.9; color: rgba(255, 255, 255, .92); margin-bottom: 22px; }
.mission h2 { font-size: 44px; line-height: 1.1; color: #fff; margin-bottom: 34px; }
.mission__rule { width: 120px; height: 1px; background: rgba(255, 255, 255, .45); margin: 0 auto 34px; }
.mission p { color: rgba(255, 255, 255, .92); line-height: 1.8; margin-bottom: 10px; }

.team { background: var(--sand); padding: 88px var(--gutter); }
.team h2 { font-size: 44px; text-align: center; margin-bottom: 52px; }
.team__grid { max-width: 960px; margin: 0 auto; display: grid; grid-template-columns: repeat(3, 1fr); gap: 56px; }
.team__member { text-align: center; }
.team__member img,
.team__photo-placeholder {
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  margin-bottom: 22px;
}
.team__photo-placeholder {
  background: rgba(255, 255, 255, .6);
  border: 1px solid var(--border-soft);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--text-muted);
}
.team__name { font-family: var(--font-accent); font-size: 22px; font-weight: 600; letter-spacing: .15em; text-transform: uppercase; margin-bottom: 6px; }
.team__role { font-size: 11.5px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--text-muted); }

.paths-section { background: var(--blush-100); padding: 88px var(--gutter); }

.rise { background: var(--blush); padding: 88px var(--gutter); }
.rise__inner { max-width: 1000px; margin: 0 auto; display: grid; grid-template-columns: 1fr 320px; gap: 72px; align-items: center; }
.rise h2 { font-size: 48px; line-height: 1.08; text-transform: uppercase; letter-spacing: .02em; color: var(--salmon-700); margin-bottom: 16px; }
.rise__sub { font-size: 15px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; line-height: 1.7; max-width: 520px; margin-bottom: 22px; }
.rise p { color: var(--text-body); max-width: 540px; margin-bottom: 30px; }

@media (min-width: 1025px) and (max-width: 1240px) {
  .about-hero { padding: 0 56px; height: 540px; }
  .about-hero h1 { font-size: 44px; }
  .story__row--first, .story__row--third { grid-template-columns: 280px 1fr; }
  .story__row--second { grid-template-columns: 1fr 280px; }
  .rise__inner { grid-template-columns: 1fr 260px; gap: 48px; }
}

@media (max-width: 1024px) {
  .about-hero {
    height: auto;
    min-height: 400px;
    align-items: flex-end;
    justify-content: stretch;
    padding: 56px 24px 14px;
    background-position: 38% 30%;
    background-image:
      linear-gradient(180deg, rgba(255, 255, 255, 0) 30%, rgba(253, 243, 239, .86) 78%, var(--blush-100) 100%),
      url("../assets/img/about-hero.jpg");
  }
  .about-hero__inner { max-width: none; text-align: center; }
  .about-hero h1 { font-size: 36px; margin-bottom: 14px; }
  .about-hero__soami { font-size: 30px; margin-bottom: 14px; }
  .about-hero__kicker { font-size: 13px; letter-spacing: .16em; }

  .about-intro {
    grid-template-columns: 1fr;
    gap: 26px;
    padding: 56px 24px 60px;
    background: var(--blush-100);
    text-align: center;
  }
  .about-intro__left { text-align: center; }
  .about-intro__display { font-size: 38px; }

  .story { padding: 8px 24px 64px; }
  .story__row--first, .story__row--second, .story__row--third {
    grid-template-columns: 1fr;
    gap: 30px;
    margin-top: 44px;
  }
  .story__row--second .story__copy { text-align: left; }
  .story__row--first .arch-frame { max-width: 280px; margin: 0 auto; }
  .story__label { font-size: 13px; }
  .story p { max-width: none; }
  .story__quote { margin-top: 44px; }
  .story__quote h2 { font-size: 32px; line-height: 1.22; }
  .story__quote-note { font-size: 13px; }
  .story__today { font-size: 38px; }

  .mission { padding: 72px 24px; }
  .mission__label { font-size: 13px; }
  .mission h2 { font-size: 36px; margin-bottom: 26px; }

  .team { padding: 60px 24px 64px; }
  .team h2 { font-size: 36px; margin-bottom: 38px; }
  .team__grid { grid-template-columns: 1fr; gap: 38px; max-width: 280px; }

  .paths-section { padding: 60px 24px 20px; }

  .rise { padding: 60px 24px 64px; }
  .rise__inner { grid-template-columns: 1fr; gap: 26px; }
  .rise h2 { font-size: 38px; }
  .rise__sub { font-size: 13px; max-width: none; }
  .rise .arch-frame { max-width: 260px; margin: 0 auto; order: -1; }
  .rise p { max-width: none; }
  .rise .btn { margin: 0 auto; }
}


/* ==========================================================================
   Chinese Medicine page
   ========================================================================== */
.cm-hero {
  padding: 96px var(--gutter) 120px;
  background-image: url("../assets/img/tcm-hero.png");
  background-size: cover;
  background-position: center 40%;
}
.cm-hero__head { max-width: var(--container); margin: 0 auto; text-align: center; }
.cm-hero h1 { font-size: 58px; line-height: 1.1; letter-spacing: .02em; text-transform: uppercase; color: var(--lilac); margin-bottom: 18px; }
.cm-hero__kicker { font-size: 19px; font-weight: 700; letter-spacing: .24em; text-transform: uppercase; color: var(--lilac); margin: 0; }
.cm-hero__body { max-width: 1000px; margin: 72px auto 0; display: grid; grid-template-columns: 340px 1fr; gap: 64px; align-items: start; }
.cm-hero__statement {
  font-family: var(--font-accent);
  font-size: 34px;
  font-weight: 500;
  letter-spacing: .14em;
  text-transform: uppercase;
  line-height: 1.6;
  text-align: right;
  margin: 0;
}
.cm-hero__body p { color: var(--text-body); }

.guide { background: var(--lilac-100); padding: 80px var(--gutter); }
.guide__inner { max-width: 1000px; margin: 0 auto; display: grid; grid-template-columns: 360px 1fr; gap: 64px; align-items: center; }
.guide__label { font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--salmon-700); margin-bottom: 16px; }
.guide h2 { font-size: 44px; line-height: 1.1; text-transform: uppercase; letter-spacing: .02em; margin-bottom: 18px; }
.guide p { color: var(--text-body); max-width: 560px; margin-bottom: 32px; }

.workshops { background: #fff; padding: 96px var(--gutter); }
.workshops__head { max-width: var(--container); margin: 0 auto 52px; text-align: center; }
.workshops__head .label { display: block; font-size: 14px; color: var(--salmon-700); margin-bottom: 14px; }
.workshops__head h2 { font-size: 46px; line-height: 1.08; text-transform: uppercase; letter-spacing: .02em; }
.workshops__grid { max-width: 1000px; margin: 0 auto; display: grid; grid-template-columns: 1fr 1fr; gap: 56px; }
.workshop img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; margin-bottom: 22px; }
.workshop__meta { font-size: 12.5px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--salmon-700); margin-bottom: 16px; }
.workshop__price { font-family: var(--font-accent); font-weight: 600; font-size: 30px; letter-spacing: .04em; line-height: 1; margin-bottom: 16px; }
.workshop p { color: var(--text-body); margin-bottom: 24px; }

.session { background: var(--charcoal); padding: 84px var(--gutter); color: #fff; }
.session__inner { max-width: 1000px; margin: 0 auto; display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, auto); gap: 72px; align-items: end; }
.session p.session__label { font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--salmon-300); margin-bottom: 46px; }
.session h2 { font-size: 52px; line-height: 1.06; text-transform: uppercase; letter-spacing: .02em; color: #fff; margin-bottom: 20px; }
.session p { color: rgba(255, 255, 255, .85); max-width: 520px; margin: 0; }
.session__price { text-align: right; padding-left: 48px; white-space: nowrap; border-left: 1px solid rgba(255, 255, 255, .18); }
.session__amount { font-family: var(--font-accent); font-weight: 600; font-size: 56px; letter-spacing: .04em; line-height: 1; margin-bottom: 8px; }
.session__per { font-size: 12.5px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: rgba(255, 255, 255, .6); margin-bottom: 6px; }
.session__member { font-size: 12.5px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--salmon-300); margin-bottom: 26px; }
.btn--salmon { background: var(--salmon); border: none; color: var(--charcoal); padding: 16px 26px; }
.btn--salmon:hover { background: #fff; color: var(--charcoal); }

@media (min-width: 1025px) and (max-width: 1240px) {
  .cm-hero h1 { font-size: 46px; }
  .cm-hero__body { grid-template-columns: 260px 1fr; gap: 44px; }
  .guide__inner { grid-template-columns: 280px 1fr; gap: 44px; }
  .session__inner { gap: 40px; }
}

@media (max-width: 1024px) {
  .cm-hero { padding: 56px 24px 60px; background-position: 52% 40%; }
  .cm-hero h1 { font-size: 40px; }
  .cm-hero__kicker { font-size: 14px; letter-spacing: .2em; }
  .cm-hero__head { margin-bottom: 40px; }
  .cm-hero__body { grid-template-columns: 1fr; gap: 28px; margin-top: 0; }
  .cm-hero__statement { font-size: 30px; line-height: 1.5; text-align: center; }

  .guide { padding: 56px 24px 60px; }
  .guide__inner { grid-template-columns: 1fr; gap: 0; text-align: center; }
  .guide__cover { max-width: 82%; margin: 0 auto 28px; }
  .guide__label { font-size: 13px; }
  .guide h2 { font-size: 34px; line-height: 1.12; }
  .guide p { max-width: none; }
  .guide .btn { margin: 0 auto; }

  .workshops { padding: 60px 24px 64px; }
  .workshops__head { margin-bottom: 38px; }
  .workshops__head .label { font-size: 13px; }
  .workshops__head h2 { font-size: 34px; }
  .workshops__grid { grid-template-columns: 1fr; gap: 48px; }

  .session { padding: 60px 24px 64px; }
  .session__inner { grid-template-columns: 1fr; gap: 26px; align-items: start; }
  .session p.session__label { font-size: 13px; margin-bottom: 38px; }
  .session h2 { font-size: 38px; }
  .session p { max-width: none; }
  .session__price { text-align: left; padding-left: 0; padding-top: 26px; border-left: none; border-top: 1px solid rgba(255, 255, 255, .18); }
  .session__amount { font-size: 48px; }
}


/* ==========================================================================
   Essential Oils page
   ========================================================================== */
.eo-hero { background: linear-gradient(180deg, var(--cream) 0%, var(--blush-100) 100%); padding: 88px var(--gutter) 96px; }
.eo-hero__head { max-width: var(--container); margin: 0 auto 64px; text-align: center; }
.eo-hero h1 { font-size: 58px; line-height: 1.1; letter-spacing: .02em; text-transform: uppercase; color: var(--salmon); margin-bottom: 16px; }
.eo-hero__kicker { font-size: 19px; font-weight: 700; letter-spacing: .24em; text-transform: uppercase; margin: 0; }
.eo-hero__body { max-width: 1080px; margin: 0 auto; display: grid; grid-template-columns: 440px 1fr; gap: 72px; align-items: center; }
.eo-hero__body p { color: var(--text-body); }

.uses { background: #fff; padding: 80px var(--gutter); }
.uses__head { max-width: 1000px; margin: 0 auto 44px; text-align: center; }
.uses__head .label { display: block; font-size: 14px; color: var(--salmon-700); margin-bottom: 14px; }
.uses__head h2 { font-size: 44px; line-height: 1.1; text-transform: uppercase; letter-spacing: .02em; }
.uses__grid { max-width: 1000px; margin: 0 auto; display: grid; grid-template-columns: repeat(3, 1fr); }
.use { padding: 36px 32px 30px; min-width: 0; border-top: 1px solid var(--charcoal); border-right: 1px solid var(--border-soft); }
.use:first-child { padding-left: 0; }
.use:last-child { padding-right: 0; border-right: none; }
.use__num { font-family: var(--font-accent); font-weight: 500; font-size: 15px; letter-spacing: .22em; text-transform: uppercase; color: var(--salmon-700); margin-bottom: 14px; }
.use__title { font-family: var(--font-display); font-size: 28px; line-height: 1.12; text-transform: uppercase; letter-spacing: .03em; }

.quality { background: var(--sand); padding: 88px var(--gutter); text-align: center; }
.quality__inner { max-width: 980px; margin: 0 auto; }
.quality h2 { font-family: var(--font-display); font-size: 42px; line-height: 1.1; margin-bottom: 24px; }
.quality p { color: var(--text-body); margin-bottom: 16px; }
.quality__actions { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; margin-top: 32px; }

.blends { background: var(--lilac-100); padding: 88px var(--gutter); }
.blends__inner { max-width: 1000px; margin: 0 auto; display: grid; grid-template-columns: 1fr 380px; gap: 72px; align-items: center; }
.blends__label { font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--salmon-700); margin-bottom: 16px; }
.blends h2 { font-size: 44px; line-height: 1.1; text-transform: uppercase; letter-spacing: .02em; margin-bottom: 20px; }
.blends p { color: var(--text-body); max-width: 520px; margin-bottom: 30px; }

.books { background: var(--cream); padding: 88px var(--gutter); }
.books__head { max-width: var(--container); margin: 0 auto 52px; text-align: center; }
.books__head .label { display: block; font-size: 14px; color: var(--salmon-700); margin-bottom: 14px; }
.books__head h2 { font-size: 44px; line-height: 1.1; text-transform: uppercase; letter-spacing: .02em; margin-bottom: 12px; }
.books__head p { color: var(--text-body); max-width: 620px; margin: 0 auto; }
.books__grid { max-width: 1000px; margin: 0 auto; display: grid; grid-template-columns: repeat(3, 1fr); gap: 48px; }
.book { min-width: 0; }
.book img { height: 300px; width: auto; max-width: 100%; object-fit: contain; display: block; margin: 0 auto 22px; }
.book p { color: var(--text-body); margin-bottom: 20px; }
.book__links { display: flex; gap: 18px; flex-wrap: wrap; }
.book__links a:not(.btn) { font-size: 11.5px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--charcoal); border-bottom: 1px solid var(--charcoal); padding-bottom: 4px; }
.book__links a:hover { text-decoration: none; color: var(--salmon-700); border-color: var(--salmon-700); }

.blending { background: #fff; padding: 88px var(--gutter); }
.blending__head { max-width: 1000px; margin: 0 auto 44px; text-align: center; }
.blending__head .label { display: block; font-size: 14px; color: var(--salmon-700); margin-bottom: 14px; }
.blending__head h2 { font-size: 46px; line-height: 1.08; text-transform: uppercase; letter-spacing: .02em; }
.blending__card { max-width: 560px; margin: 0 auto; }
.blending__card img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; display: block; margin-bottom: 22px; }
.blending__meta { font-size: 12.5px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--salmon-700); margin-bottom: 16px; }
.blending__price { font-family: var(--font-accent); font-weight: 600; font-size: 30px; letter-spacing: .04em; line-height: 1; margin-bottom: 16px; }
.blending__card p { color: var(--text-body); margin-bottom: 24px; }

@media (min-width: 1025px) and (max-width: 1240px) {
  .eo-hero h1 { font-size: 46px; }
  .eo-hero__body { grid-template-columns: 340px 1fr; gap: 48px; }
  .blends__inner { grid-template-columns: 1fr 300px; gap: 48px; }
  .books__grid { gap: 32px; }
}

@media (max-width: 1024px) {
  .eo-hero { padding: 56px 24px 60px; }
  .eo-hero__head { margin-bottom: 32px; }
  .eo-hero h1 { font-size: 40px; }
  .eo-hero__kicker { font-size: 14px; letter-spacing: .2em; }
  .eo-hero__body { grid-template-columns: 1fr; gap: 30px; }
  .eo-hero__body img { width: 88%; margin: 0 auto; }

  .uses { padding: 56px 24px 60px; }
  .uses__head { margin-bottom: 30px; }
  .uses__head .label { font-size: 13px; }
  .uses__head h2 { font-size: 34px; line-height: 1.12; }
  .uses__grid { grid-template-columns: 1fr; }
  .use { padding: 24px 0; text-align: center; border-right: none; border-top: 1px solid var(--border-soft); }
  .use:first-child { border-top-color: var(--charcoal); }
  .use:last-child { border-bottom: 1px solid var(--border-soft); }
  .use__title { font-size: 26px; }

  .quality { padding: 56px 24px 60px; }
  .quality h2 { font-size: 32px; line-height: 1.14; }
  .quality p { text-align: left; }
  .quality__actions { flex-direction: column; align-items: center; gap: 12px; }

  .blends { padding: 56px 24px 60px; text-align: center; }
  .blends__inner { grid-template-columns: 1fr; gap: 0; }
  .blends__label { font-size: 13px; line-height: 1.7; }
  .blends h2 { font-size: 34px; line-height: 1.12; margin-bottom: 22px; }
  .blends img { width: 82%; margin: 0 auto 26px; order: -1; }
  .blends p { max-width: none; text-align: left; }
  .blends .btn { margin: 0 auto; }

  .books { padding: 56px 24px 60px; }
  .books__head { margin-bottom: 34px; }
  .books__head .label { font-size: 13px; }
  .books__head h2 { font-size: 34px; line-height: 1.12; }
  .books__grid { grid-template-columns: 1fr; gap: 44px; }
  .book { text-align: center; }
  .book img { height: 280px; }
  .book__links { justify-content: center; }

  .blending { padding: 56px 24px 60px; text-align: center; }
  .blending__head { margin-bottom: 28px; }
  .blending__head .label { font-size: 13px; }
  .blending__head h2 { font-size: 34px; line-height: 1.12; }
  .blending__card .btn { margin: 0 auto; }
}


/* ==========================================================================
   Astrology page
   ========================================================================== */
.astro-hero {
  background-image: url("../assets/img/astro-moon.png");
  background-size: cover;
  background-position: center 56%;
  padding: 88px var(--gutter) 96px;
}
.astro-hero__head { max-width: var(--container); margin: 0 auto 56px; text-align: center; }
.astro-hero h1 { font-size: 58px; line-height: 1.1; letter-spacing: .02em; text-transform: uppercase; margin-bottom: 16px; }
.astro-hero__kicker { font-size: 19px; font-weight: 700; letter-spacing: .24em; text-transform: uppercase; margin: 0; }
.astro-hero__body { max-width: 820px; margin: 260px auto 0; text-align: center; }
.astro-hero__body p { color: var(--text-body); }

.astro-clock {
  background-image: url("../assets/img/astro-moon.png");
  background-size: cover;
  background-position: center 92%;
  padding: 88px var(--gutter);
}
.astro-clock__inner { max-width: 1000px; margin: 0 auto; display: grid; grid-template-columns: 1fr 360px; gap: 72px; align-items: center; }
.astro-clock__inner p { color: var(--text-body); }

.feelings {
  background-image: linear-gradient(rgba(247, 242, 255, .86), rgba(247, 242, 255, .86)), url("../assets/img/astro-stars.png");
  background-size: cover;
  background-position: center;
  padding: 88px var(--gutter);
}
.feelings h2 { max-width: var(--container); margin: 0 auto 48px; text-align: center; font-size: 46px; line-height: 1.08; text-transform: uppercase; letter-spacing: .02em; }
.feelings__grid { max-width: 1000px; margin: 0 auto; display: grid; grid-template-columns: 1fr 1fr; }
.feeling { min-width: 0; padding: 34px 40px 34px 0; border-top: 1px solid var(--border-soft); }
.feeling:nth-child(odd) { border-right: 1px solid var(--border-soft); }
.feeling:nth-child(even) { padding: 34px 0 34px 40px; }
.feeling:nth-child(1), .feeling:nth-child(2) { border-top-color: var(--charcoal); }
.feeling__num { font-family: var(--font-accent); font-weight: 500; font-size: 15px; letter-spacing: .22em; text-transform: uppercase; color: var(--salmon-700); margin-bottom: 12px; }
.feeling__title { font-family: var(--font-display); font-size: 28px; line-height: 1.14; margin-bottom: 12px; }
.feeling p { color: var(--text-body); margin: 0; }

.approach { background: var(--cream); padding: 64px var(--gutter) 56px; }
.approach__head { max-width: 820px; margin: 0 auto 28px; text-align: center; }
.approach__head h2 { font-size: 46px; line-height: 1.08; text-transform: uppercase; letter-spacing: .02em; margin-bottom: 18px; }
.approach__sub { font-size: 15px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; line-height: 1.7; color: var(--salmon-700); margin: 0; }
.approach__inner { max-width: 1000px; margin: 0 auto; display: grid; grid-template-columns: 340px 1fr; gap: 72px; align-items: end; }
.approach__inner img { margin-top: 24px; }
.approach__inner p { color: var(--text-body); }

.start { background: #fff; padding: 88px var(--gutter); }
.start__head { max-width: var(--container); margin: 0 auto 48px; text-align: center; }
.start__head .label { display: block; font-size: 14px; color: var(--salmon-700); margin-bottom: 14px; }
.start__head h2 { font-size: 46px; line-height: 1.08; text-transform: uppercase; letter-spacing: .02em; }
.start__grid { max-width: 1080px; margin: 0 auto; display: grid; grid-template-columns: repeat(3, 1fr); }
.start__card { display: flex; flex-direction: column; gap: 14px; min-width: 0; padding: 36px 34px 34px; border-top: 1px solid var(--charcoal); border-right: 1px solid var(--border-soft); }
.start__card:first-child { padding-left: 0; }
.start__card:last-child { padding-right: 0; border-right: none; }
.start__card h3 { font-family: var(--font-display); font-weight: 400; font-size: 28px; line-height: 1.12; text-transform: uppercase; letter-spacing: .03em; }
.start__card p { color: var(--text-body); margin: 0; flex: 1; }
.start__card a { font-size: 11.5px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--charcoal); }

.wits {
  background-image: url("../assets/img/gradient-2b.png");
  background-size: cover;
  background-position: center;
  padding: 88px var(--gutter);
}
.wits__inner { max-width: 820px; margin: 0 auto; text-align: center; }
.wits__label { font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--salmon-700); margin-bottom: 14px; }
.wits h2 { font-size: 48px; line-height: 1.08; text-transform: uppercase; letter-spacing: .02em; margin-bottom: 18px; }
.wits p { color: var(--text-body); max-width: 620px; margin: 0 auto 32px; }
.wits__form { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; max-width: 620px; margin: 0 auto; }
.wits__form input {
  flex: 1 1 200px;
  min-width: 0;
  font-family: var(--font-sans);
  font-size: 15px;
  color: var(--charcoal);
  background: #fff;
  border: 1px solid rgba(41, 39, 40, .18);
  padding: 15px 16px;
}
.wits__form button {
  font-family: var(--font-sans);
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: #fff;
  background: var(--charcoal);
  border: none;
  padding: 16px 26px;
  cursor: pointer;
}
.wits__form button:hover { background: var(--salmon); color: var(--charcoal); }
.wits__fine { font-size: 12.5px; color: var(--text-muted); margin-top: 16px; }

.readings { background: var(--charcoal); padding: 88px var(--gutter); }
.readings__head { max-width: var(--container); margin: 0 auto 52px; text-align: center; }
.readings__head .label { display: block; font-size: 14px; color: var(--salmon-300); margin-bottom: 14px; }
.readings__head h2 { font-size: 48px; line-height: 1.08; text-transform: uppercase; letter-spacing: .02em; color: #fff; }
.readings__grid { max-width: var(--container); margin: 0 auto; display: grid; grid-template-columns: repeat(3, 1fr); column-gap: 40px; row-gap: 80px; }
.reading { display: flex; flex-direction: column; gap: 14px; }
.reading img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; display: block; }
.reading > a:first-child { display: block; margin-bottom: 6px; }
.reading > a:first-child:hover { opacity: .88; }
.reading p { color: rgba(255, 255, 255, .85); margin: 0; flex: 1; }
.reading__cta { align-self: flex-start; font-size: 11.5px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--salmon-300); }
.readings__note { max-width: 620px; margin: 64px auto 0; text-align: center; color: rgba(255, 255, 255, .8); }
.readings__note a { color: var(--salmon-300); text-decoration: underline; text-underline-offset: 3px; }

@media (min-width: 1025px) and (max-width: 1240px) {
  .astro-hero h1 { font-size: 46px; }
  .astro-clock__inner { grid-template-columns: 1fr 300px; gap: 48px; }
  .approach__inner { grid-template-columns: 280px 1fr; gap: 48px; }
  .readings__grid { column-gap: 28px; }
}

@media (max-width: 1024px) {
  .astro-hero { padding: 56px 24px 60px; background-position: center 52%; }
  .astro-hero__head { margin-bottom: 36px; }
  .astro-hero h1 { font-size: 40px; }
  .astro-hero__kicker { font-size: 14px; letter-spacing: .2em; }
  .astro-hero__body { margin: 0 auto; }

  .astro-clock { background: var(--lilac-100); padding: 56px 24px 60px; }
  .astro-clock__inner { grid-template-columns: 1fr; gap: 30px; }
  .astro-clock__inner img { order: -1; width: 82%; margin: 0 auto; }

  .feelings { padding: 56px 24px 60px; }
  .feelings h2 { font-size: 34px; line-height: 1.12; margin-bottom: 30px; }
  .feelings__grid { grid-template-columns: 1fr; }
  .feeling, .feeling:nth-child(even) { padding: 26px 0; text-align: center; border-right: none; }
  .feeling:nth-child(odd) { border-right: none; }
  .feeling:last-child { border-bottom: 1px solid var(--border-soft); }
  .feeling__title { font-size: 26px; }

  .approach { padding: 56px 24px 60px; }
  .approach__head h2 { font-size: 34px; line-height: 1.12; }
  .approach__sub { font-size: 13px; }
  .approach__inner { grid-template-columns: 1fr; gap: 26px; }
  .approach__inner img { order: -1; width: 78%; margin: 0 auto; }

  .start { padding: 56px 24px 60px; }
  .start__head { margin-bottom: 30px; }
  .start__head .label { font-size: 13px; }
  .start__head h2 { font-size: 34px; line-height: 1.12; }
  .start__grid { grid-template-columns: 1fr; }
  .start__card, .start__card:first-child, .start__card:last-child { padding: 26px 0; border-right: none; border-top: 1px solid var(--border-soft); }
  .start__card:first-child { border-top-color: var(--charcoal); }
  .start__card h3 { font-size: 26px; }

  .wits { padding: 56px 24px 60px; }
  .wits__label { font-size: 13px; }
  .wits h2 { font-size: 36px; }
  .wits__form { flex-direction: column; }
  .wits__form input, .wits__form button { flex: none; width: 100%; }

  .readings { padding: 56px 24px 60px; }
  .readings__head { margin-bottom: 34px; }
  .readings__head .label { font-size: 13px; }
  .readings__head h2 { font-size: 36px; }
  .readings__grid { grid-template-columns: 1fr; row-gap: 44px; }
  .reading p { text-align: center; }
  .reading__cta { align-self: center; }
  .readings__note { margin-top: 44px; }
}


/* Individual essential oils */
.oils { background: var(--blush-100); padding: 88px var(--gutter); }
.oils h2 { max-width: 1000px; margin: 0 auto 44px; text-align: center; font-size: 44px; line-height: 1.1; text-transform: uppercase; letter-spacing: .02em; }
.oils__grid { max-width: 1080px; margin: 0 auto; display: grid; grid-template-columns: repeat(5, 1fr); gap: 24px; }
.oil { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.oil:hover { opacity: .9; text-decoration: none; }
.oil img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; display: block; }
.oil__name { font-family: var(--font-display); font-size: 22px; line-height: 1.14; text-transform: uppercase; letter-spacing: .01em; text-align: center; color: var(--charcoal); }
.oil__cta { font-size: 11.5px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; text-align: center; color: var(--charcoal); margin-top: -4px; }

@media (max-width: 1024px) {
  .oils { padding: 56px 24px 60px; }
  .oils h2 { font-size: 34px; line-height: 1.12; margin-bottom: 30px; }
  .oils__grid { grid-template-columns: 1fr 1fr; gap: 24px 18px; }
  .oil { gap: 12px; }
  .oil__name { font-size: 19px; }
  .oil__cta { font-size: 10.5px; letter-spacing: .18em; }
}


/* ==========================================================================
   Elemental Medicine page
   ========================================================================== */
.em-hero {
  background-image: url("../assets/img/gradient-2b.png");
  background-size: cover;
  background-position: center;
  padding: 88px var(--gutter) 96px;
}
.em-hero h1 { max-width: var(--container); margin: 0 auto 52px; text-align: center; font-size: 58px; line-height: 1.1; letter-spacing: .02em; text-transform: uppercase; }
.em-hero__intro { max-width: 820px; margin: 0 auto; }
.em-hero__intro p { color: var(--text-body); margin: 0; }
.em-defs { max-width: 820px; margin: 44px auto 0; display: grid; grid-template-columns: 1fr 1fr; }
.em-def { padding: 26px 32px 26px 0; border-top: 1px solid var(--charcoal); border-right: 1px solid var(--border-soft); }
.em-def:last-child { padding: 26px 0 26px 32px; border-right: none; }
.em-def h2 { font-family: var(--font-display); font-weight: 400; font-size: 28px; line-height: 1.1; text-transform: uppercase; letter-spacing: .03em; margin-bottom: 10px; }
.em-def p { color: var(--text-body); font-style: italic; margin: 0; }

.em-systems { background: #fff; padding: 88px var(--gutter); }
.em-systems__inner { max-width: 820px; margin: 0 auto; }
.em-systems p { color: var(--text-body); }

.em-nature { background: var(--cream); padding: 88px var(--gutter); }
.em-nature__inner { max-width: 1000px; margin: 0 auto; display: grid; grid-template-columns: 420px 1fr; gap: 72px; align-items: center; }
.em-nature__label { font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--salmon-700); margin-bottom: 0; }
.em-nature h2 { margin-top: 20px; }
.em-nature h2 { font-size: 42px; line-height: 1.14; margin-bottom: 22px; }
.em-nature p { color: var(--text-body); margin: 0; }

.em-close { background: var(--sand); padding: 88px var(--gutter); }
.em-close__inner { max-width: 1000px; margin: 0 auto; display: grid; grid-template-columns: 1fr 360px; gap: 72px; align-items: center; }
.em-close p { color: var(--text-body); }
.em-close__q { font-family: var(--font-display); font-size: 36px; line-height: 1.14; color: var(--salmon-700); }

@media (min-width: 1025px) and (max-width: 1240px) {
  .em-hero h1 { font-size: 46px; }
  .em-nature__inner { grid-template-columns: 320px 1fr; gap: 48px; }
  .em-close__inner { grid-template-columns: 1fr 280px; gap: 48px; }
}

@media (max-width: 1024px) {
  .em-hero { padding: 56px 24px 60px; }
  .em-hero h1 { font-size: 40px; margin-bottom: 30px; }
  .em-defs { grid-template-columns: 1fr; margin-top: 34px; }
  .em-def, .em-def:last-child { padding: 24px 0; text-align: center; border-right: none; border-top: 1px solid var(--border-soft); }
  .em-def:first-child { border-top-color: var(--charcoal); }
  .em-def h2 { font-size: 26px; }

  .em-systems { padding: 56px 24px 60px; }

  .em-nature { padding: 56px 24px 60px; text-align: center; }
  .em-nature__inner { grid-template-columns: 1fr; gap: 28px; }
  .em-nature img { width: 82%; margin: 0 auto; }
  .em-nature__label { font-size: 13px; }
  .em-nature h2 { font-size: 32px; line-height: 1.16; }

  .em-close { padding: 56px 24px 60px; }
  .em-close__inner { grid-template-columns: 1fr; gap: 30px; }
  .em-close img { width: 72%; margin: 0 auto; order: -1; }
  .em-close__q { font-size: 30px; text-align: center; }
}


/* ==========================================================================
   Emotions page
   ========================================================================== */
.qi-hero {
  background-image: url("../assets/img/gradient-2b.png");
  background-size: cover;
  background-position: center;
  padding: 64px var(--gutter) 56px;
}
.qi-hero__head { max-width: var(--container); margin: 0 auto 30px; text-align: center; }
.qi-hero h1 { font-size: 58px; line-height: 1.1; letter-spacing: .02em; text-transform: uppercase; margin-bottom: 16px; }
.qi-hero__kicker { font-size: 19px; font-weight: 700; letter-spacing: .24em; text-transform: uppercase; color: var(--salmon-700); margin: 0; }
.qi-hero__body { max-width: 820px; margin: 0 auto; }
.qi-hero__body p { color: var(--text-body); }
.qi-hero__mark { width: 360px; max-width: 100%; height: auto; display: block; margin: 30px auto 0; }

.suwen { background: #fff; padding: 88px var(--gutter); }
.suwen__inner { max-width: 1000px; margin: 0 auto; display: grid; grid-template-columns: 1fr 1fr; gap: 72px; align-items: start; }
.suwen h2 { font-size: 42px; line-height: 1.12; margin-bottom: 22px; }
.suwen p { color: var(--text-body); }
.suwen__quote { background: var(--cream); padding: 44px 40px; }
.suwen__quote p { font-size: 16.5px; line-height: 1.85; font-style: italic; color: var(--charcoal); margin: 0; }
.suwen__src { font-size: 12.5px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--text-muted); margin-top: 22px; }

.frequency { background: var(--lilac-100); padding: 88px var(--gutter); }
.frequency__inner { max-width: 820px; margin: 0 auto; text-align: center; }
.frequency h2 { font-size: 42px; line-height: 1.12; margin-bottom: 24px; }
.frequency p { color: var(--text-body); }
.frequency__bridge { font-size: 15px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; line-height: 1.8; color: var(--salmon-700); margin-top: 34px; }

.empath-intro { background: linear-gradient(180deg, var(--blush-100) 0%, var(--blush) 100%); padding: 88px var(--gutter) 96px; }
.empath-intro__head { max-width: var(--container); margin: 0 auto 48px; text-align: center; }
.empath-intro h2 { font-size: 52px; line-height: 1.08; letter-spacing: .02em; text-transform: uppercase; margin-bottom: 16px; }
.empath-intro__kicker { font-size: 19px; font-weight: 700; letter-spacing: .24em; text-transform: uppercase; color: var(--salmon-700); margin: 0; }
.empath-intro__body { max-width: 820px; margin: 0 auto; text-align: center; }
.empath-intro__body p { color: var(--text-body); }

.antennas { background: #fff; padding: 88px var(--gutter); }
.antennas__inner { max-width: 1000px; margin: 0 auto; display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: center; }
.antennas__label { font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--salmon-700); margin-bottom: 16px; }
.antennas h2 { font-size: 42px; line-height: 1.12; margin-bottom: 22px; }
.antennas p { color: var(--text-body); }
.stats { background: var(--cream); padding: 44px 40px; }
.stat__n { font-family: var(--font-accent); font-weight: 600; font-size: 64px; letter-spacing: .02em; line-height: 1; color: var(--salmon-700); margin-bottom: 8px; }
.stat__l { font-size: 12.5px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--text-muted); }
.stat + .stat { margin-top: 28px; }

.signs { background: var(--blush-100); padding: 88px var(--gutter); }
.signs__head { max-width: var(--container); margin: 0 auto 48px; text-align: center; }
.signs__head h2 { font-size: 46px; line-height: 1.08; text-transform: uppercase; letter-spacing: .02em; margin-bottom: 12px; }
.signs__head p { color: var(--text-body); max-width: 620px; margin: 0 auto; }
.signs__grid { max-width: 1000px; margin: 0 auto; display: grid; grid-template-columns: 1fr 1fr; }
.sign { min-width: 0; padding: 30px 40px 30px 0; border-top: 1px solid var(--border-soft); }
.sign:nth-child(odd) { border-right: 1px solid var(--border-soft); }
.sign:nth-child(even) { padding: 30px 0 30px 40px; }
.sign:nth-child(1), .sign:nth-child(2) { border-top-color: var(--charcoal); }
.sign h3 { font-family: var(--font-display); font-weight: 400; font-size: 26px; line-height: 1.14; margin-bottom: 10px; }
.sign p { color: var(--text-body); margin: 0; }

.article-cta { background: var(--cream); padding: 88px var(--gutter); }
.article-cta__inner { max-width: 820px; margin: 0 auto; text-align: center; }
.article-cta .label { display: block; font-size: 14px; color: var(--salmon-700); margin-bottom: 14px; }
.article-cta h2 { font-size: 44px; line-height: 1.1; text-transform: uppercase; letter-spacing: .02em; margin-bottom: 18px; }
.article-cta p { color: var(--text-body); max-width: 620px; margin: 0 auto 30px; }

.book { background: var(--cream); padding: 88px var(--gutter); }
.book__inner { max-width: 1000px; margin: 0 auto; display: grid; grid-template-columns: 340px 1fr; gap: 72px; align-items: center; }
.book__inner > a:hover { opacity: .92; }
.book__label { font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--salmon-700); margin-bottom: 16px; }
.book h2 { font-size: 44px; line-height: 1.1; text-transform: uppercase; letter-spacing: .02em; margin-bottom: 18px; }
.book p { color: var(--text-body); max-width: 520px; }
.book__links { display: flex; gap: 14px; flex-wrap: wrap; align-items: center; margin-top: 26px; }

@media (min-width: 1025px) and (max-width: 1240px) {
  .qi-hero h1 { font-size: 46px; }
  .empath-intro h2 { font-size: 42px; }
  .antennas__inner, .suwen__inner { gap: 44px; }
  .book__inner { grid-template-columns: 280px 1fr; gap: 48px; }
}

@media (max-width: 1024px) {
  .qi-hero { padding: 56px 24px; }
  .qi-hero__head { margin-bottom: 26px; }
  .qi-hero h1 { font-size: 40px; }
  .qi-hero__kicker { font-size: 14px; letter-spacing: .2em; }
  .qi-hero__mark { width: 260px; }

  .suwen { padding: 56px 24px 60px; }
  .suwen__inner { grid-template-columns: 1fr; gap: 30px; }
  .suwen h2 { font-size: 32px; line-height: 1.16; }
  .suwen__quote { padding: 32px 26px; }
  .suwen__quote p { font-size: 15.5px; }

  .frequency { padding: 56px 24px 60px; }
  .frequency h2 { font-size: 32px; line-height: 1.16; }
  .frequency p { text-align: left; }
  .frequency__bridge { font-size: 13px; text-align: center; }

  .empath-intro { padding: 56px 24px 60px; }
  .empath-intro__head { margin-bottom: 26px; }
  .empath-intro h2 { font-size: 36px; }
  .empath-intro__kicker { font-size: 13px; letter-spacing: .2em; }
  .empath-intro__body { text-align: left; }

  .antennas { padding: 56px 24px 60px; }
  .antennas__inner { grid-template-columns: 1fr; gap: 30px; }
  .antennas__label { font-size: 13px; }
  .antennas h2 { font-size: 32px; line-height: 1.16; }
  .stats { padding: 34px 26px; text-align: center; }
  .stat__n { font-size: 52px; }
  .stat__l { font-size: 11.5px; }

  .signs { padding: 56px 24px 60px; }
  .signs__head { margin-bottom: 26px; }
  .signs__head h2 { font-size: 34px; line-height: 1.12; }
  .signs__grid { grid-template-columns: 1fr; }
  .sign, .sign:nth-child(even) { padding: 24px 0; text-align: center; border-right: none; }
  .sign:nth-child(odd) { border-right: none; }
  .sign:last-child { border-bottom: 1px solid var(--border-soft); }
  .sign h3 { font-size: 24px; }

  .article-cta { padding: 56px 24px 60px; }
  .article-cta .label { font-size: 13px; }
  .article-cta h2 { font-size: 34px; line-height: 1.12; }
  .article-cta .btn { margin: 0 auto; }

  .book { padding: 56px 24px 60px; }
  .book__inner { grid-template-columns: 1fr; gap: 26px; text-align: center; }
  .book__inner img { height: 280px; width: auto; max-width: 100%; object-fit: contain; margin: 0 auto; }
  .book__label { font-size: 13px; }
  .book h2 { font-size: 34px; line-height: 1.12; }
  .book p { max-width: none; text-align: left; }
  .book__links { justify-content: center; }
}


/* ==========================================================================
   Coaching page
   ========================================================================== */
.coach-hero {
  position: relative;
  min-height: 520px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 96px var(--gutter);
  text-align: center;
  background-image: linear-gradient(rgba(41, 39, 40, .34), rgba(41, 39, 40, .42)), url("../assets/img/about-ocean.jpg");
  background-size: cover;
  background-position: center 45%;
}
.coach-hero h1 { font-size: 64px; line-height: 1.06; letter-spacing: .03em; text-transform: uppercase; color: #fff; margin-bottom: 20px; text-shadow: 0 2px 18px rgba(41, 39, 40, .5); }
.coach-hero p { font-size: 17px; font-weight: 700; letter-spacing: .24em; text-transform: uppercase; color: rgba(255, 255, 255, .94); margin: 0; text-shadow: 0 2px 14px rgba(41, 39, 40, .5); }

.offer { padding: 88px var(--gutter); }
.offer--sand { background: var(--sand); }
.offer--lilac { background: var(--lilac-100); }
.offer--cream { background: var(--cream); }
.offer__inner {
  max-width: 1080px;
  margin: 0 auto;
  background: #fff;
  padding: 56px;
  display: grid;
  grid-template-columns: 360px 1fr;
  gap: 64px;
  align-items: center;
}
.offer__inner--flip { grid-template-columns: 1fr 360px; }
.offer h2 { font-size: 44px; line-height: 1.1; margin-bottom: 16px; }
.offer__kicker { font-size: 14px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; line-height: 1.8; color: var(--salmon-700); margin-bottom: 20px; }
.offer p { color: var(--text-body); max-width: 560px; }
.offer__price { display: flex; align-items: baseline; gap: 16px; margin: 22px 0 26px; }
.offer__amount { font-family: var(--font-accent); font-weight: 600; font-size: 40px; letter-spacing: .04em; line-height: 1; }
.offer__terms { font-size: 12.5px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--text-muted); }
.offer .btn { margin-top: 4px; }
.offer__media--mobile { display: none; }

@media (min-width: 1025px) and (max-width: 1240px) {
  .coach-hero h1 { font-size: 52px; }
  .offer__inner { grid-template-columns: 300px 1fr; gap: 44px; padding: 44px; }
  .offer__inner--flip { grid-template-columns: 1fr 300px; }
}

@media (max-width: 1024px) {
  .coach-hero { min-height: 400px; padding: 56px 24px; }
  .coach-hero h1 { font-size: 44px; }
  .coach-hero p { font-size: 13px; letter-spacing: .2em; line-height: 1.8; }

  .offer { padding: 44px 20px 48px; }
  .offer__inner, .offer__inner--flip { grid-template-columns: 1fr; gap: 26px; padding: 30px 22px 34px; }
  .offer h2 { font-size: 34px; line-height: 1.12; }
  .offer__kicker { font-size: 13px; letter-spacing: .16em; }
  .offer p { max-width: none; }
  .offer__price { flex-direction: column; gap: 6px; align-items: flex-start; margin: 18px 0 24px; }
  .offer__amount { font-size: 36px; }
  .offer__terms { font-size: 11.5px; line-height: 1.7; }
  .offer__media { display: none; }
  .offer__media--mobile { display: block; order: -1; }
  .offer__arch { max-width: 260px; margin: 0 auto; }
}


/* ==========================================================================
   Healing Session sales page
   ========================================================================== */
.hs-hero { background: var(--lilac-100); padding: 88px var(--gutter) 96px; }
.hs-hero__inner { max-width: 1080px; margin: 0 auto; display: grid; grid-template-columns: 1fr 400px; gap: 72px; align-items: center; }
.hs-hero__label { font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--salmon-700); margin-bottom: 16px; }
.hs-hero h1 { font-size: 58px; line-height: 1.06; letter-spacing: .02em; text-transform: uppercase; margin-bottom: 20px; }
.hs-hero__kicker { font-size: 15px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; line-height: 1.8; color: var(--charcoal); margin-bottom: 24px; }
.hs-hero p { color: var(--text-body); max-width: 540px; }
.hs-meta { font-size: 12.5px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; line-height: 1.9; color: var(--text-muted); margin: 20px 0 30px; }

.hs-carry { background: #fff; padding: 88px var(--gutter); }
.hs-head { max-width: var(--container); margin: 0 auto 44px; text-align: center; }
.hs-head h2 { font-size: 46px; line-height: 1.08; text-transform: uppercase; letter-spacing: .02em; margin-bottom: 12px; }
.hs-head p { color: var(--text-body); max-width: 620px; margin: 0 auto; }
.hs-grid { max-width: 1080px; margin: 0 auto; display: grid; grid-template-columns: repeat(3, 1fr); }
.hs-cell { min-width: 0; padding: 30px 32px 28px; border-top: 1px solid var(--border-soft); border-right: 1px solid var(--border-soft); }
.hs-cell:nth-child(3n) { border-right: none; padding-right: 0; }
.hs-cell:nth-child(3n+1) { padding-left: 0; }
.hs-cell:nth-child(1), .hs-cell:nth-child(2), .hs-cell:nth-child(3) { border-top-color: var(--charcoal); }
.hs-cell h3 { font-family: var(--font-display); font-weight: 400; font-size: 26px; line-height: 1.14; margin-bottom: 10px; }
.hs-cell p { color: var(--text-body); margin: 0; }

.hs-may { background: var(--charcoal); padding: 88px var(--gutter); }
.hs-may .hs-head .label { display: block; font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--salmon-300); margin-bottom: 14px; }
.hs-may .hs-head h2 { color: #fff; }
.hs-may .hs-head p { color: rgba(255, 255, 255, .8); }
.hs-may__list { max-width: 960px; margin: 0 auto; }
.hs-row { display: grid; grid-template-columns: 300px 1fr; gap: 40px; align-items: baseline; padding: 26px 0; border-top: 1px solid rgba(255, 255, 255, .16); }
.hs-row:first-child { border-top-color: rgba(255, 255, 255, .3); }
.hs-row:last-child { border-bottom: 1px solid rgba(255, 255, 255, .16); }
.hs-row h3 { font-family: var(--font-display); font-weight: 400; font-size: 26px; line-height: 1.14; color: #fff; }
.hs-row p { color: rgba(255, 255, 255, .85); margin: 0; }

.hs-quotes { background: var(--cream); padding: 80px var(--gutter); }
.hs-quotes__inner { max-width: 900px; margin: 0 auto; text-align: center; }
.hs-quotes .label { display: block; font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--salmon-700); margin-bottom: 34px; }
.hs-quote { font-size: 24px; font-style: italic; line-height: 1.6; color: var(--charcoal); margin: 0 auto 24px; min-height: 150px; max-width: 760px; }
.hs-quote__by { font-size: 11.5px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--text-muted); margin-bottom: 30px; }
.hs-nav { display: flex; align-items: center; justify-content: center; gap: 26px; }
.hs-nav button { background: none; border: 1px solid var(--charcoal); color: var(--charcoal); width: 44px; height: 44px; cursor: pointer; font-size: 15px; display: flex; align-items: center; justify-content: center; }
.hs-nav button:hover { background: var(--charcoal); color: #fff; }
.hs-dots { display: flex; gap: 10px; }
.hs-dots button { width: 9px; height: 9px; border-radius: 50%; border: none; padding: 0; cursor: pointer; background: rgba(41, 39, 40, .22); }
.hs-dots button[aria-current="true"] { background: var(--charcoal); }
.hs-dots button:hover { background: var(--charcoal); }

.hs-steps { background: var(--sand); padding: 88px var(--gutter); }
.hs-steps__grid { max-width: 1080px; margin: 0 auto; display: grid; grid-template-columns: repeat(4, 1fr); }
.hs-step { display: flex; flex-direction: column; gap: 12px; min-width: 0; padding: 34px 26px 30px; border-top: 1px solid var(--charcoal); border-right: 1px solid var(--border-soft); }
.hs-step:last-child { border-right: none; padding-right: 0; }
.hs-step:first-child { padding-left: 0; }
.hs-step__n { font-family: var(--font-accent); font-weight: 500; font-size: 15px; letter-spacing: .22em; text-transform: uppercase; color: var(--salmon-700); }
.hs-step h3 { font-family: var(--font-display); font-weight: 400; font-size: 28px; line-height: 1.12; }
.hs-step p { color: var(--text-body); margin: 0; }

.hs-buy {
  background-image: url("../assets/img/gradient-2b.png");
  background-size: cover;
  background-position: center;
  padding: 88px var(--gutter);
}
.hs-buy__inner { max-width: 720px; margin: 0 auto; text-align: center; }
.hs-buy h2 { font-size: 46px; line-height: 1.08; text-transform: uppercase; letter-spacing: .02em; margin-bottom: 22px; }
.hs-buy__amount { font-family: var(--font-accent); font-weight: 600; font-size: 64px; letter-spacing: .04em; line-height: 1; margin-bottom: 8px; }
.hs-buy__terms { font-size: 12.5px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--text-muted); margin-bottom: 6px; }
.hs-buy__member { font-size: 12.5px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--salmon-700); margin-bottom: 32px; }
.hs-buy .btn { margin: 0 auto; }
.hs-buy__note { color: var(--text-body); margin-top: 26px; }

@media (min-width: 1025px) and (max-width: 1240px) {
  .hs-hero__inner { grid-template-columns: 1fr 320px; gap: 48px; }
  .hs-hero h1 { font-size: 46px; }
  .hs-row { grid-template-columns: 240px 1fr; gap: 28px; }
}

@media (max-width: 1024px) {
  .hs-hero { padding: 44px 24px 52px; text-align: center; }
  .hs-hero__inner { grid-template-columns: 1fr; gap: 0; }
  .hs-hero__inner > div { display: flex; flex-direction: column; }
  .hs-hero__label { font-size: 13px; letter-spacing: .2em; margin-bottom: 12px; }
  .hs-hero h1 { font-size: 40px; line-height: 1.08; margin-bottom: 22px; }
  .hs-hero__media { margin-top: 26px; }
  .hs-hero__kicker { font-size: 13px; margin-bottom: 18px; }
  .hs-hero p { max-width: none; text-align: left; }
  .hs-meta { font-size: 11.5px; }
  .hs-hero .btn { margin: 0 auto; }

  .hs-carry, .hs-may, .hs-steps { padding: 56px 24px 60px; }
  .hs-head { margin-bottom: 26px; }
  .hs-head h2 { font-size: 34px; line-height: 1.12; }
  .hs-grid, .hs-steps__grid { grid-template-columns: 1fr; }
  .hs-cell, .hs-cell:nth-child(3n), .hs-cell:nth-child(3n+1) { padding: 24px 0; text-align: center; border-right: none; }
  .hs-cell:last-child { border-bottom: 1px solid var(--border-soft); }
  .hs-cell h3 { font-size: 24px; }
  .hs-row { grid-template-columns: 1fr; gap: 8px; padding: 24px 0; text-align: center; }
  .hs-row h3 { font-size: 24px; }
  .hs-step, .hs-step:first-child, .hs-step:last-child { padding: 26px 0; text-align: center; border-right: none; border-top: 1px solid var(--border-soft); }
  .hs-step:first-child { border-top-color: var(--charcoal); }
  .hs-step:last-child { border-bottom: 1px solid var(--border-soft); }
  .hs-step h3 { font-size: 24px; }

  .hs-quotes { padding: 52px 24px 56px; }
  .hs-quotes .label { font-size: 13px; margin-bottom: 26px; }
  .hs-quote { font-size: 19px; min-height: 180px; }
  .hs-nav { gap: 20px; }
  .hs-nav button { width: 46px; height: 46px; }

  .hs-buy { padding: 56px 24px 60px; }
  .hs-buy h2 { font-size: 34px; line-height: 1.12; margin-bottom: 20px; }
  .hs-buy__amount { font-size: 54px; }
  .hs-buy__terms, .hs-buy__member { font-size: 11.5px; }
}


/* ==========================================================================
   Soul Activation Mentorship page
   ========================================================================== */
.sam-hero { background: var(--cream); padding: 88px var(--gutter) 96px; }
.sam-hero__inner { max-width: 1080px; margin: 0 auto; display: grid; grid-template-columns: 1fr 360px; gap: 72px; align-items: center; }
.sam-hero h1 { font-size: 56px; line-height: 1.08; letter-spacing: .02em; margin-bottom: 20px; }
.sam-hero__kicker { font-size: 15px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; line-height: 1.8; color: var(--salmon-700); margin-bottom: 24px; }
.sam-hero p { color: var(--text-body); max-width: 540px; }
.sam-hero .btn { margin-top: 10px; }

.sam-emerge { background: #fff; padding: 88px var(--gutter); }
.sam-emerge__inner { max-width: 1000px; margin: 0 auto; display: grid; grid-template-columns: 340px 1fr; gap: 72px; align-items: start; }
.sam-emerge h2 { font-size: 42px; line-height: 1.1; text-transform: uppercase; letter-spacing: .02em; margin-bottom: 24px; }
.sam-more { display: flex; flex-direction: column; gap: 6px; }
.sam-more div { font-family: var(--font-display); font-size: 34px; line-height: 1.3; }
.sam-more div:last-child { color: var(--salmon-700); }
.sam-emerge p { color: var(--text-body); }
.sam-floral { width: 320px; max-width: 100%; height: auto; display: block; margin: 36px auto 0; }

.sam-container { background: var(--sand); padding: 88px var(--gutter); }
.sam-container__inner { max-width: 820px; margin: 0 auto; }
.sam-container .label { display: block; font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--salmon-700); margin-bottom: 16px; }
.sam-container h2 { font-size: 42px; line-height: 1.12; margin-bottom: 24px; }
.sam-container p { color: var(--text-body); }
.sam-pull { font-family: var(--font-display); font-size: 28px; line-height: 1.3; color: var(--salmon-700); margin: 0; }

.sam-ideal { background: var(--charcoal); padding: 88px var(--gutter); }
.sam-ideal__head { max-width: var(--container); margin: 0 auto 44px; text-align: center; }
.sam-ideal h2 { font-size: 46px; line-height: 1.08; text-transform: uppercase; letter-spacing: .02em; color: #fff; margin-bottom: 12px; }
.sam-ideal__head p { color: rgba(255, 255, 255, .8); max-width: 660px; margin: 0 auto; }
.sam-ideal__head p + p { margin-top: 16px; }
.sam-ideal__grid { max-width: 1000px; margin: 0 auto; display: grid; grid-template-columns: 1fr 1fr; }
.sam-q { display: grid; grid-template-columns: auto 1fr; gap: 16px; align-items: baseline; min-width: 0; padding: 20px 36px 20px 0; border-top: 1px solid rgba(255, 255, 255, .16); border-right: 1px solid rgba(255, 255, 255, .16); }
.sam-q:nth-child(even) { padding: 20px 0 20px 36px; border-right: none; }
.sam-q:nth-child(1), .sam-q:nth-child(2) { border-top-color: rgba(255, 255, 255, .3); }
.sam-q__n { font-family: var(--font-accent); font-weight: 500; font-size: 14px; letter-spacing: .16em; color: var(--salmon-300); }
.sam-q p { color: rgba(255, 255, 255, .9); margin: 0; }
.sam-ideal__close { color: #fff; max-width: 820px; margin: 40px auto 0; text-align: center; }

.sam-month { background: #fff; padding: 88px var(--gutter); }
.sam-month__head { max-width: var(--container); margin: 0 auto 44px; text-align: center; }
.sam-month h2 { font-size: 46px; line-height: 1.08; text-transform: uppercase; letter-spacing: .02em; margin-bottom: 12px; }
.sam-month__head p { color: var(--text-body); max-width: 660px; margin: 0 auto; }
.sam-stats { max-width: 1080px; margin: 0 auto 56px; display: grid; grid-template-columns: 1fr 1fr; }
.sam-stat { padding: 40px 48px 40px 0; border-top: 1px solid var(--charcoal); border-right: 1px solid var(--border-soft); }
.sam-stat:last-child { padding: 40px 0 40px 48px; border-right: none; }
.sam-stat__n { font-family: var(--font-accent); font-weight: 600; font-size: 56px; letter-spacing: .02em; line-height: 1; color: var(--salmon-700); margin-bottom: 10px; }
.sam-stat h3 { font-family: var(--font-display); font-weight: 400; font-size: 28px; line-height: 1.14; margin-bottom: 12px; }
.sam-stat p { color: var(--text-body); margin: 0; }
.sam-weave { max-width: 960px; margin: 0 auto; }
.sam-weave .label { display: block; font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; text-align: center; color: var(--salmon-700); margin-bottom: 8px; }
.sam-row { display: grid; grid-template-columns: 300px 1fr; gap: 40px; align-items: baseline; padding: 26px 0; border-top: 1px solid var(--border-soft); }
.sam-row:first-of-type { border-top-color: var(--charcoal); }
.sam-row:last-of-type { border-bottom: 1px solid var(--border-soft); }
.sam-row h3 { font-family: var(--font-display); font-weight: 400; font-size: 26px; line-height: 1.14; }
.sam-row p { color: var(--text-body); margin: 0; }

.sam-quote {
  background-image: url("../assets/img/gradient-2b.png");
  background-size: cover;
  background-position: center;
  padding: 88px var(--gutter);
}
.sam-quote__inner { max-width: 820px; margin: 0 auto; text-align: center; }
.sam-quote p { font-size: 24px; font-style: italic; line-height: 1.6; color: var(--charcoal); margin: 0 0 20px; }
.sam-quote__by { font-size: 11.5px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--text-muted); }

.sam-apply { background: var(--blush-100); padding: 88px var(--gutter); }
.sam-apply__inner { max-width: 720px; margin: 0 auto; text-align: center; }
.sam-apply h2 { font-size: 46px; line-height: 1.08; text-transform: uppercase; letter-spacing: .02em; margin-bottom: 16px; }
.sam-apply p { color: var(--text-body); margin-bottom: 30px; }
.sam-apply .btn { margin: 0 auto; }

@media (min-width: 1025px) and (max-width: 1240px) {
  .sam-hero__inner { grid-template-columns: 1fr 300px; gap: 48px; }
  .sam-hero h1 { font-size: 44px; }
  .sam-emerge__inner { grid-template-columns: 280px 1fr; gap: 44px; }
  .sam-row { grid-template-columns: 240px 1fr; gap: 28px; }
}

@media (max-width: 1024px) {
  .sam-hero { padding: 44px 24px 52px; }
  .sam-hero__inner { grid-template-columns: 1fr; gap: 0; }
  .sam-hero__inner > div { display: flex; flex-direction: column; }
  .sam-hero h1 { font-size: 40px; text-align: center; margin-bottom: 16px; }
  .sam-hero__kicker { font-size: 13px; text-align: center; }
  .sam-hero__media { margin-bottom: 26px; }
  .sam-hero p { max-width: none; }
  .sam-hero .btn { margin: 0 auto; }

  .sam-emerge, .sam-container, .sam-ideal, .sam-month { padding: 56px 24px 60px; }
  .sam-emerge__inner { grid-template-columns: 1fr; gap: 30px; }
  .sam-emerge h2 { font-size: 32px; line-height: 1.12; text-align: center; }
  .sam-more div { font-size: 28px; text-align: center; }
  .sam-floral { width: 300px; margin-top: 32px; }

  .sam-container .label { font-size: 13px; text-align: center; }
  .sam-container h2 { font-size: 32px; line-height: 1.14; text-align: center; }
  .sam-pull { font-size: 24px; text-align: center; }

  .sam-ideal__head { margin-bottom: 24px; }
  .sam-ideal h2 { font-size: 32px; line-height: 1.12; }
  .sam-ideal__head p { text-align: left; }
  .sam-ideal__grid { grid-template-columns: 1fr; }
  .sam-q, .sam-q:nth-child(even) { padding: 18px 0; border-right: none; border-top: 1px solid rgba(255, 255, 255, .16); }
  .sam-q:first-child { border-top-color: rgba(255, 255, 255, .3); }
  .sam-q:last-child { border-bottom: 1px solid rgba(255, 255, 255, .16); }
  .sam-ideal__close { margin-top: 26px; }

  .sam-month h2 { font-size: 32px; line-height: 1.12; }
  .sam-stats { grid-template-columns: 1fr; margin-bottom: 24px; }
  .sam-stat, .sam-stat:last-child { padding: 26px 0; text-align: center; border-right: none; border-top: 1px solid var(--border-soft); }
  .sam-stat:first-child { border-top-color: var(--charcoal); }
  .sam-stat__n { font-size: 44px; }
  .sam-stat h3 { font-size: 24px; }
  .sam-weave .label { font-size: 13px; }
  .sam-row { grid-template-columns: 1fr; gap: 8px; padding: 24px 0; text-align: center; }
  .sam-row h3 { font-size: 24px; }

  .sam-quote { padding: 52px 24px 56px; }
  .sam-quote p { font-size: 19px; }

  .sam-apply { padding: 56px 24px 60px; }
  .sam-apply h2 { font-size: 32px; line-height: 1.12; }
  .sam-apply p { text-align: left; }
}


/* ==========================================================================
   404
   ========================================================================== */
.nf-hero {
  background-color: var(--lilac-100);
  background-image: radial-gradient(120% 90% at 50% 0%, var(--lilac) 0%, var(--lilac-100) 46%, var(--cream) 100%);
  background-size: cover;
  background-position: center;
  padding: 104px var(--gutter) 112px;
  text-align: center;
}
.nf-mark { width: 54px; height: auto; display: block; margin: 0 auto 26px; opacity: .9; }
.nf-label { font-family: var(--font-accent); font-weight: 600; font-size: 15px; letter-spacing: .3em; text-transform: uppercase; color: var(--salmon-700); margin-bottom: 18px; }
.nf-hero h1 { font-size: 62px; line-height: 1.06; letter-spacing: .02em; text-transform: uppercase; margin-bottom: 22px; }
.nf-copy { color: var(--text-body); max-width: 480px; margin: 0 auto 32px; }
.nf-hero .btn { margin: 0 auto; }

.nf-dests { background: #fff; padding: 88px var(--gutter); }
.nf-dests h2 { font-size: 40px; line-height: 1.1; text-transform: uppercase; letter-spacing: .02em; text-align: center; margin-bottom: 44px; }
.nf-grid { max-width: 1080px; margin: 0 auto; display: grid; grid-template-columns: repeat(3, 1fr); }
.nf-dest {
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-width: 0;
  padding: 34px 32px 30px;
  border-top: 1px solid var(--border-soft);
  border-right: 1px solid var(--border-soft);
  text-decoration: none;
  color: inherit;
}
.nf-dest:nth-child(1), .nf-dest:nth-child(2), .nf-dest:nth-child(3) { border-top-color: var(--charcoal); }
.nf-dest:nth-child(3n) { border-right: none; padding-right: 0; }
.nf-dest:nth-child(3n+1) { padding-left: 0; }
.nf-dest:nth-last-child(-n+3) { border-bottom: 1px solid var(--border-soft); }
.nf-dest h3 { font-family: var(--font-display); font-weight: 400; font-size: 28px; line-height: 1.12; }
.nf-dest p { color: var(--text-body); margin: 0; }
.nf-dest__go { font-size: 11.5px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--salmon-700); margin-top: 4px; }

@media (min-width: 1025px) and (max-width: 1240px) {
  .nf-hero h1 { font-size: 48px; }
  .nf-dest { padding: 28px 24px; }
}

@media (max-width: 1024px) {
  .nf-hero { padding: 64px 24px 72px; }
  .nf-mark { width: 46px; margin-bottom: 20px; }
  .nf-label { font-size: 13px; }
  .nf-hero h1 { font-size: 32px; }
  .nf-hero h1 br { display: none; }

  .nf-dests { padding: 56px 24px 60px; }
  .nf-dests h2 { font-size: 32px; margin-bottom: 26px; }
  .nf-grid { grid-template-columns: 1fr; }
  .nf-dest, .nf-dest:nth-child(3n), .nf-dest:nth-child(3n+1) { padding: 24px 0; text-align: center; border-right: none; border-top: 1px solid var(--border-soft); }
  .nf-dest:first-child { border-top-color: var(--charcoal); }
  .nf-dest:last-child { border-bottom: 1px solid var(--border-soft); }
  .nf-dest h3 { font-size: 24px; }
}


/* ==========================================================================
   Rise & Thrive membership page
   ========================================================================== */
.rt-hero {
  position: relative;
  min-height: 620px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 104px var(--gutter) 112px;
  background-image: linear-gradient(rgba(41, 39, 40, .16), rgba(41, 39, 40, .28)), url("../assets/img/rt-arms-up.jpg");
  background-size: cover;
  background-position: center 38%;
}
.rt-hero__label { font-size: 14px; font-weight: 700; letter-spacing: .24em; text-transform: uppercase; color: #fff; margin-bottom: 18px; text-shadow: 0 2px 16px rgba(41, 39, 40, .5); }
.rt-hero h1 { font-size: 74px; line-height: 1.02; letter-spacing: .03em; text-transform: uppercase; color: #fff; margin-bottom: 22px; text-shadow: 0 2px 22px rgba(41, 39, 40, .45); }
.rt-hero__sub { font-size: 17px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; line-height: 1.8; color: #fff; max-width: 660px; margin: 0 auto 34px; text-shadow: 0 2px 16px rgba(41, 39, 40, .5); }
.rt-hero__from { font-size: 12.5px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: rgba(255, 255, 255, .9); margin-top: 20px; text-shadow: 0 2px 14px rgba(41, 39, 40, .5); }
.btn--onphoto { color: #fff; border-color: #fff; }
.btn--onphoto:hover { background: #fff; color: var(--charcoal); }

.rt-ticker { background: var(--salmon); overflow: hidden; padding: 15px 0; }
.rt-ticker__track {
  display: flex;
  width: max-content;
  gap: 26px;
  align-items: center;
  font-size: 12.5px;
  font-weight: 700;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--charcoal);
  animation: rtmarquee 46s linear infinite;
}
.rt-ticker__track span { display: inline-flex; align-items: center; gap: 26px; }
.rt-ticker__track img { width: 13px; height: 13px; opacity: .75; }
@keyframes rtmarquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .rt-ticker__track { animation: none; } }

.rt-denial { background: var(--blush-100); padding: 96px var(--gutter); }
.rt-denial__inner { max-width: 820px; margin: 0 auto; }
.rt-denial h2 { font-size: 44px; line-height: 1.1; text-transform: uppercase; letter-spacing: .02em; margin-bottom: 20px; }
.rt-denial__sub { font-size: 15px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; line-height: 1.8; color: var(--salmon-700); margin-bottom: 26px; }
.rt-bullet { display: grid; grid-template-columns: 22px 1fr; gap: 14px; align-items: start; padding: 18px 0; border-top: 1px solid var(--border-soft); }
.rt-bullet:first-of-type { border-top-color: var(--charcoal); }
.rt-bullet:last-of-type { border-bottom: 1px solid var(--border-soft); }
.rt-bullet img { width: 12px; height: 12px; margin-top: 8px; opacity: .7; }
.rt-bullet p { color: var(--text-body); margin: 0; }
.rt-denial__close { color: var(--text-body); margin-top: 26px; }

.rt-what {
  padding: 104px var(--gutter) 112px;
  background-image: linear-gradient(rgba(41, 39, 40, .5), rgba(41, 39, 40, .58)), url("../assets/img/rt-follow-me.jpg");
  background-size: cover;
  background-position: center 32%;
}
.rt-what__inner { max-width: 1000px; margin: 0 auto; }
.rt-what__head { max-width: 760px; margin: 0 auto 46px; text-align: center; }
.rt-what h2 { font-size: 52px; line-height: 1.06; letter-spacing: .02em; text-transform: uppercase; color: #fff; margin-bottom: 20px; text-shadow: 0 2px 20px rgba(41, 39, 40, .4); }
.rt-what__head p { font-size: 17px; line-height: 1.8; color: #fff; margin: 0; }
.rt-what__grid { display: grid; grid-template-columns: 1fr 1fr; }
.rt-q { min-width: 0; padding: 34px 46px 34px 0; border-top: 1px solid rgba(255, 255, 255, .28); border-right: 1px solid rgba(255, 255, 255, .28); }
.rt-q:nth-child(even) { padding: 34px 0 34px 46px; border-right: none; }
.rt-q:nth-child(1), .rt-q:nth-child(2) { border-top-color: rgba(255, 255, 255, .5); }
.rt-q h3 { font-family: var(--font-display); font-weight: 400; font-size: 28px; line-height: 1.14; color: #fff; margin-bottom: 12px; }
.rt-q p { color: #fff; margin: 0; }
.rt-what__close { font-family: var(--font-display); font-size: 32px; line-height: 1.2; color: #fff; text-align: center; max-width: 620px; margin: 52px auto 0; text-shadow: 0 2px 18px rgba(41, 39, 40, .4); }

.rt-story { background: #fff; padding: 96px var(--gutter); }
.rt-story__inner { max-width: 1000px; margin: 0 auto; display: grid; grid-template-columns: 1fr 380px; gap: 80px; align-items: center; }
.rt-story__label { font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--salmon-700); margin-bottom: 18px; }
.rt-story h2 { font-size: 44px; line-height: 1.14; margin-bottom: 24px; }
.rt-story p { color: var(--text-body); max-width: 540px; }
.rt-archframe { position: relative; padding: 24px 24px 0 0; }
.rt-archframe::before { content: ""; position: absolute; top: 0; right: 0; width: calc(100% - 24px); height: calc(100% - 24px); border: 1px solid var(--salmon); border-radius: 50% 50% 0 0 / 34% 34% 0 0; }
.rt-archframe img { position: relative; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; display: block; border-radius: 50% 50% 0 0 / 34% 34% 0 0; }

.rt-pull { padding: 76px var(--gutter); }
.rt-pull--blush { background: var(--blush); }
.rt-pull--sand { background: var(--sand); }
.rt-pull--white { background: #fff; }
.rt-pull--lilac { background: var(--lilac-100); }
.rt-pull__inner { max-width: 760px; margin: 0 auto; text-align: center; }
.rt-pull img { width: 34px; height: auto; display: block; margin: 0 auto 24px; opacity: .8; }
.rt-pull__head { font-family: var(--font-display); font-size: 36px; line-height: 1.16; margin-bottom: 18px; }
.rt-pull p { font-size: 17px; line-height: 1.72; color: var(--text-body); max-width: 620px; margin: 0 auto 20px; }
.rt-pull__by { font-size: 11.5px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--text-muted); }

.rt-for { background: #fff; padding: 88px var(--gutter); }
.rt-for__head { max-width: var(--container); margin: 0 auto 44px; text-align: center; }
.rt-for h2 { font-size: 46px; line-height: 1.08; text-transform: uppercase; letter-spacing: .02em; margin: 0; }
.rt-for__grid { max-width: 1080px; margin: 0 auto; display: grid; grid-template-columns: repeat(3, 1fr); }
.rt-cell { min-width: 0; padding: 30px 32px 28px; border-top: 1px solid var(--border-soft); border-right: 1px solid var(--border-soft); }
.rt-cell:nth-child(3n+1) { padding: 30px 32px 28px 0; }
.rt-cell:nth-child(3n) { padding: 30px 0 28px 32px; border-right: none; }
.rt-cell:nth-child(1), .rt-cell:nth-child(2), .rt-cell:nth-child(3) { border-top-color: var(--charcoal); }
.rt-cell h3 { font-family: var(--font-display); font-weight: 400; font-size: 26px; line-height: 1.14; margin-bottom: 10px; }
.rt-cell p { color: var(--text-body); margin: 0; }

.rt-vsl { background: var(--charcoal); padding: 88px var(--gutter); }
.rt-vsl__inner { max-width: 900px; margin: 0 auto; text-align: center; }
.rt-vsl .label { display: block; font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--salmon-300); margin-bottom: 14px; }
.rt-vsl h2 { font-size: 44px; line-height: 1.1; text-transform: uppercase; letter-spacing: .02em; color: #fff; margin-bottom: 18px; }
.rt-vsl p { font-size: 16.5px; line-height: 1.72; color: rgba(255, 255, 255, .82); max-width: 600px; margin: 0 auto 34px; }
.rt-video { position: relative; width: 100%; aspect-ratio: 16 / 9; background: rgba(255, 255, 255, .06); }
.rt-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: none; }

.rt-benefits { background: var(--cream); padding: 88px var(--gutter); }
.rt-benefits__head { max-width: var(--container); margin: 0 auto 44px; text-align: center; }
.rt-benefits .label { display: block; font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--salmon-700); margin-bottom: 14px; }
.rt-benefits h2 { font-size: 46px; line-height: 1.08; text-transform: uppercase; letter-spacing: .02em; margin: 0; }
.rt-benefits__list { max-width: 1120px; margin: 0 auto; }
.rt-row { display: grid; grid-template-columns: 120px 320px 1fr; gap: 32px; align-items: baseline; padding: 24px 0; border-top: 1px solid var(--border-soft); }
.rt-row:first-of-type { border-top-color: var(--charcoal); }
.rt-row:last-of-type { border-bottom: 1px solid var(--border-soft); }
.rt-row__cad { font-family: var(--font-accent); font-weight: 600; font-size: 18px; letter-spacing: .16em; text-transform: uppercase; color: var(--salmon-700); }
.rt-row h3 { font-family: var(--font-display); font-weight: 400; font-size: 26px; line-height: 1.14; }
.rt-row p { color: var(--text-body); margin: 0; }

.rt-math {
  padding: 88px var(--gutter);
  background-image: url("../assets/img/rt-salmon-gradient.jpg");
  background-size: cover;
  background-position: center;
}
.rt-math__head { max-width: var(--container); margin: 0 auto 44px; text-align: center; }
.rt-math h2 { font-size: 46px; line-height: 1.08; text-transform: uppercase; letter-spacing: .02em; margin-bottom: 12px; }
.rt-math__head p { color: var(--text-body); max-width: 560px; margin: 0 auto; }
.rt-math__grid { max-width: 900px; margin: 0 auto; display: grid; grid-template-columns: 1fr 1fr; gap: 24px; align-items: stretch; }
.rt-price { padding: 44px 40px; text-align: center; }
.rt-price--pale { background: rgba(255, 255, 255, .6); }
.rt-price--dark { background: var(--charcoal); }
.rt-price__label { font-size: 12.5px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--text-muted); margin-bottom: 18px; }
.rt-price--dark .rt-price__label { color: var(--salmon-300); }
.rt-price__n { font-family: var(--font-accent); font-weight: 600; font-size: 64px; letter-spacing: .02em; line-height: 1; margin-bottom: 18px; }
.rt-price--dark .rt-price__n { color: #fff; }
.rt-price p { color: var(--text-body); margin: 0; }
.rt-price--dark p { color: rgba(255, 255, 255, .85); }

.rt-perk { background: var(--lilac-100); padding: 88px var(--gutter); }
.rt-perk__inner { max-width: 1000px; margin: 0 auto; display: grid; grid-template-columns: 1fr 380px; gap: 72px; align-items: center; }
.rt-perk .label { display: block; font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--salmon-700); margin-bottom: 16px; }
.rt-perk h2 { font-size: 46px; line-height: 1.08; text-transform: uppercase; letter-spacing: .02em; margin-bottom: 20px; }
.rt-perk p { color: var(--text-body); max-width: 540px; }
.rt-perk__prices { display: flex; align-items: baseline; gap: 22px; margin: 26px 0 8px; }
.rt-perk__was { font-family: var(--font-accent); font-weight: 600; font-size: 34px; letter-spacing: .02em; line-height: 1; color: var(--text-muted); text-decoration: line-through; }
.rt-perk__now { font-family: var(--font-accent); font-weight: 600; font-size: 56px; letter-spacing: .02em; line-height: 1; }
.rt-perk__terms { font-size: 12.5px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; line-height: 1.7; color: var(--text-muted); margin-bottom: 28px; }
.rt-perk__media { width: 100%; height: auto; display: block; }
.rt-perk__media--mobile { display: none; }

.rt-says {
  padding: 88px var(--gutter);
  background-image: linear-gradient(rgba(41, 39, 40, .18), rgba(41, 39, 40, .24)), url("../assets/img/rt-lavender-walk.jpg");
  background-size: cover;
  background-position: center 40%;
}
.rt-says__inner { max-width: 900px; margin: 0 auto; text-align: center; }
.rt-says h2 { font-size: 46px; line-height: 1.08; text-transform: uppercase; letter-spacing: .02em; color: #fff; margin-bottom: 40px; text-shadow: 0 2px 18px rgba(41, 39, 40, .45); }
.rt-says__card { background: rgba(255, 255, 255, .92); padding: 52px 56px 44px; }
.rt-says__card > img { width: 36px; height: auto; display: block; margin: 0 auto 24px; opacity: .8; }
.rt-says__quote { font-size: 20px; line-height: 1.66; color: var(--charcoal); max-width: 700px; min-height: 132px; margin: 0 auto 22px; }
.rt-says__by { font-size: 11.5px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--text-muted); margin-bottom: 28px; }
.rt-slider__nav { display: flex; align-items: center; justify-content: center; gap: 24px; }
.rt-arrow { background: none; border: 1px solid var(--charcoal); color: var(--charcoal); width: 44px; height: 44px; cursor: pointer; font-size: 15px; display: flex; align-items: center; justify-content: center; }
.rt-arrow:hover { background: var(--charcoal); color: #fff; }
.rt-dots { display: flex; gap: 9px; flex-wrap: wrap; justify-content: center; max-width: 260px; }
.rt-dot { width: 9px; height: 9px; border-radius: 50%; border: none; padding: 0; cursor: pointer; background: rgba(41, 39, 40, .22); }
.rt-dot[aria-current="true"] { background: var(--charcoal); }

.rt-faq { background: #fff; padding: 88px var(--gutter); }
.rt-faq__inner { max-width: 840px; margin: 0 auto; }
.rt-faq__head { text-align: center; margin-bottom: 44px; }
.rt-faq .label { display: block; font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--salmon-700); margin-bottom: 14px; }
.rt-faq h2 { font-size: 46px; line-height: 1.08; text-transform: uppercase; letter-spacing: .02em; margin: 0; }
.rt-faq__item { border-top: 1px solid var(--border-soft); }
.rt-faq__item:last-of-type { border-bottom: 1px solid var(--border-soft); }
.rt-faq__q {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  background: none;
  border: none;
  padding: 26px 0;
  cursor: pointer;
  text-align: left;
  font-family: var(--font-sans);
  font-size: 18px;
  font-weight: 700;
  line-height: 1.5;
  color: var(--charcoal);
}
.rt-faq__q img { width: 17px; height: 17px; flex-shrink: 0; }
.rt-faq__a { padding: 0 0 28px; }
.rt-faq__a p { color: var(--text-body); max-width: 680px; margin: 0 0 14px; }
.rt-faq__a p:last-child { margin-bottom: 0; }
.rt-faq__item:not([open]) .rt-faq__a { display: none; }
.rt-faq__item[open] .rt-faq__icon--open { display: none; }
.rt-faq__item:not([open]) .rt-faq__icon--close { display: none; }

.rt-join {
  padding: 88px var(--gutter);
  background-image: url("../assets/img/rt-sunset-sky.jpg");
  background-size: cover;
  background-position: center;
}
.rt-join__head { max-width: var(--container); margin: 0 auto 44px; text-align: center; }
.rt-join h2 { font-size: 46px; line-height: 1.08; text-transform: uppercase; letter-spacing: .02em; margin-bottom: 12px; }
.rt-join__head p { color: var(--text-body); max-width: 560px; margin: 0 auto; }
.rt-tiers { max-width: 1000px; margin: 0 auto; display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.rt-tier { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 14px; padding: 44px 32px 40px; background: rgba(255, 255, 255, .86); border: 1px solid rgba(41, 39, 40, .14); }
.rt-tier--feat { background: var(--charcoal); border-color: var(--charcoal); }
.rt-tier__name { font-size: 12.5px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--salmon-700); }
.rt-tier--feat .rt-tier__name { color: var(--salmon-300); }
.rt-tier__price { font-family: var(--font-accent); font-weight: 600; font-size: 56px; letter-spacing: .02em; line-height: 1; }
.rt-tier--feat .rt-tier__price { color: #fff; }
.rt-tier__terms { font-size: 11.5px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; line-height: 1.7; color: var(--text-muted); margin-bottom: 6px; }
.rt-tier--feat .rt-tier__terms { color: rgba(255, 255, 255, .7); }
.rt-tier--feat .btn { color: #fff; border-color: #fff; }
.rt-tier--feat .btn:hover { background: #fff; color: var(--charcoal); }

.rt-close {
  padding: 104px var(--gutter) 112px;
  background-image: linear-gradient(rgba(41, 39, 40, .42), rgba(41, 39, 40, .5)), url("../assets/img/rt-arms-out.jpg");
  background-size: cover;
  background-position: center 30%;
}
.rt-close__inner { max-width: 760px; margin: 0 auto; text-align: center; }
.rt-close h2 { font-size: 52px; line-height: 1.08; letter-spacing: .02em; text-transform: uppercase; color: #fff; margin-bottom: 28px; text-shadow: 0 2px 20px rgba(41, 39, 40, .45); }
.rt-close p { font-size: 17px; line-height: 1.8; color: rgba(255, 255, 255, .92); margin-bottom: 18px; }
.rt-close p:last-of-type { margin-bottom: 36px; }
.btn--solidwhite { color: var(--charcoal); background: #fff; border: 1px solid #fff; }
.btn--solidwhite:hover { background: transparent; color: #fff; }

@media (min-width: 1025px) and (max-width: 1240px) {
  .rt-hero h1 { font-size: 58px; }
  .rt-what h2, .rt-close h2 { font-size: 42px; }
  .rt-story__inner, .rt-perk__inner { grid-template-columns: 1fr 300px; gap: 48px; }
  .rt-row { grid-template-columns: 110px 240px 1fr; gap: 24px; }
}

@media (max-width: 1024px) {
  .rt-hero { min-height: 480px; padding: 64px 24px 72px; }
  .rt-hero__label { font-size: 13px; letter-spacing: .2em; margin-bottom: 14px; }
  .rt-hero h1 { font-size: 44px; line-height: 1.12; margin-bottom: 18px; }
  .rt-hero__sub { font-size: 13px; margin-bottom: 28px; }
  .rt-hero__from { font-size: 11.5px; }

  .rt-ticker { padding: 13px 0; }
  .rt-ticker__track { font-size: 11.5px; letter-spacing: .2em; gap: 22px; }
  .rt-ticker__track span { gap: 22px; }
  .rt-ticker__track img { width: 11px; height: 11px; }

  .rt-denial { padding: 56px 24px 60px; }
  .rt-denial h2 { font-size: 34px; line-height: 1.1; text-align: center; }
  .rt-denial__sub { font-size: 13px; text-align: center; }
  .rt-bullet { grid-template-columns: 20px 1fr; gap: 12px; }

  .rt-what { padding: 60px 24px 64px; }
  .rt-what__head { margin-bottom: 30px; }
  .rt-what h2 { font-size: 36px; line-height: 1.06; }
  .rt-what__head p { font-size: 16.5px; line-height: 1.72; }
  .rt-what__grid { grid-template-columns: 1fr; }
  .rt-q, .rt-q:nth-child(even) { padding: 24px 0; text-align: center; border-right: none; border-top: 1px solid rgba(255, 255, 255, .28); }
  .rt-q:first-child { border-top-color: rgba(255, 255, 255, .5); }
  .rt-q:last-child { border-bottom: 1px solid rgba(255, 255, 255, .28); }
  .rt-q h3 { font-size: 25px; }
  .rt-what__close { font-size: 28px; margin-top: 34px; }

  .rt-story { padding: 56px 24px 60px; }
  .rt-story__inner { grid-template-columns: 1fr; gap: 0; }
  .rt-story__inner > div { display: flex; flex-direction: column; }
  .rt-story__label { font-size: 13px; text-align: center; }
  .rt-story h2 { font-size: 34px; text-align: center; }
  .rt-story p { max-width: none; }
  .rt-archframe { order: -1; padding: 20px 20px 0 0; margin-bottom: 26px; }
  .rt-archframe::before { width: calc(100% - 20px); height: calc(100% - 20px); }

  .rt-pull { padding: 52px 24px 56px; }
  .rt-pull img { width: 30px; margin-bottom: 20px; }
  .rt-pull__head { font-size: 28px; }
  .rt-pull p { font-size: 16.5px; }

  .rt-for { padding: 56px 24px 60px; }
  .rt-for__head { margin-bottom: 24px; }
  .rt-for h2 { font-size: 34px; line-height: 1.12; }
  .rt-for__grid { grid-template-columns: 1fr; }
  .rt-cell, .rt-cell:nth-child(3n+1), .rt-cell:nth-child(3n) { padding: 24px 0; text-align: center; border-right: none; border-top: 1px solid var(--border-soft); }
  .rt-cell:first-child { border-top-color: var(--charcoal); }
  .rt-cell:last-child { border-bottom: 1px solid var(--border-soft); }
  .rt-cell h3 { font-size: 25px; }

  .rt-vsl { padding: 56px 24px 60px; }
  .rt-vsl .label { font-size: 13px; }
  .rt-vsl h2 { font-size: 32px; line-height: 1.12; }
  .rt-vsl p { margin-bottom: 26px; }

  .rt-benefits { padding: 56px 24px 60px; }
  .rt-benefits__head { margin-bottom: 24px; }
  .rt-benefits .label { font-size: 13px; }
  .rt-benefits h2 { font-size: 34px; line-height: 1.12; }
  .rt-row { grid-template-columns: 1fr; gap: 8px; padding: 26px 0; text-align: center; }
  .rt-row__cad { font-size: 16px; }
  .rt-row h3 { font-size: 25px; }

  .rt-math { padding: 56px 24px 60px; }
  .rt-math__head { margin-bottom: 28px; }
  .rt-math h2 { font-size: 34px; line-height: 1.12; }
  .rt-math__grid { grid-template-columns: 1fr; gap: 16px; }
  .rt-price { padding: 32px 26px; }
  .rt-price__label { font-size: 12px; margin-bottom: 14px; }
  .rt-price__n { font-size: 54px; margin-bottom: 14px; }

  .rt-perk { padding: 56px 24px 60px; }
  .rt-perk__inner { grid-template-columns: 1fr; gap: 0; }
  .rt-perk__inner > div { display: flex; flex-direction: column; }
  .rt-perk .label { font-size: 13px; text-align: center; }
  .rt-perk h2 { font-size: 34px; line-height: 1.12; text-align: center; }
  .rt-perk p { max-width: none; }
  .rt-perk__media { display: none; }
  .rt-perk__media--mobile { display: block; order: -1; margin-bottom: 26px; }
  .rt-perk__prices { justify-content: center; gap: 18px; }
  .rt-perk__was { font-size: 30px; }
  .rt-perk__now { font-size: 50px; }
  .rt-perk__terms { font-size: 11.5px; text-align: center; margin-bottom: 22px; }
  .rt-perk .btn { margin: 0 auto; }

  .rt-says { padding: 56px 24px 60px; }
  .rt-says h2 { font-size: 34px; line-height: 1.12; margin-bottom: 26px; }
  .rt-says__card { padding: 36px 26px 32px; }
  .rt-says__card > img { width: 30px; margin-bottom: 20px; }
  .rt-says__quote { font-size: 17px; line-height: 1.68; min-height: 200px; }
  .rt-slider__nav { gap: 18px; }
  .rt-arrow { width: 46px; height: 46px; }
  .rt-dots { gap: 8px; max-width: 190px; }

  .rt-faq { padding: 56px 24px 60px; }
  .rt-faq__head { margin-bottom: 26px; }
  .rt-faq .label { font-size: 13px; }
  .rt-faq h2 { font-size: 34px; line-height: 1.12; }
  .rt-faq__q { font-size: 16.5px; gap: 16px; padding: 22px 0; }
  .rt-faq__q img { width: 16px; height: 16px; }
  .rt-faq__a { padding: 0 0 24px; }

  .rt-join { padding: 56px 24px 60px; }
  .rt-join__head { margin-bottom: 28px; }
  .rt-join h2 { font-size: 34px; line-height: 1.12; }
  .rt-tiers { grid-template-columns: 1fr; gap: 16px; }
  .rt-tier { padding: 34px 26px 32px; gap: 12px; }
  .rt-tier__name { font-size: 12px; }
  .rt-tier__price { font-size: 48px; }
  .rt-tier__terms { font-size: 11px; margin-bottom: 4px; }

  .rt-close { padding: 64px 24px 72px; }
  .rt-close h2 { font-size: 36px; line-height: 1.08; margin-bottom: 24px; }
  .rt-close p { font-size: 16.5px; line-height: 1.72; text-align: left; }
  .rt-close p:last-of-type { margin-bottom: 32px; }
  .rt-close .btn { margin: 0 auto; }
}


/* ==========================================================================
   Contact page
   ========================================================================== */
.ct-hero {
  background-image: url("../assets/img/gradient-2b.png");
  background-size: cover;
  background-position: center;
  padding: 80px var(--gutter) 88px;
}
.ct-hero h1 { max-width: 820px; margin: 0 auto; text-align: center; font-size: 58px; line-height: 1.06; letter-spacing: .03em; text-transform: uppercase; }

.ct-main { background: #fff; padding: 88px var(--gutter); }
.ct-main__inner { max-width: 900px; margin: 0 auto; }
.ct-intro { text-align: center; }
.ct-intro .label { display: block; font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--salmon-700); margin-bottom: 16px; }
.ct-intro h2 { font-size: 42px; line-height: 1.12; margin-bottom: 18px; }
.ct-intro > p { color: var(--text-body); margin: 0 0 40px; }
.ct-email { border-top: 1px solid var(--charcoal); padding-top: 28px; margin-bottom: 56px; }
.ct-email__head { font-family: var(--font-display); font-size: 26px; line-height: 1.14; margin-bottom: 10px; }
.ct-email p { color: var(--text-body); margin: 0 0 12px; }
.ct-email a {
  font-family: var(--font-accent);
  font-weight: 600;
  font-size: 30px;
  letter-spacing: .02em;
  color: var(--charcoal);
  text-decoration: none;
  border-bottom: 1px solid var(--salmon);
  padding-bottom: 2px;
  display: inline-block;
  word-break: break-word;
}
.ct-email a:hover { color: var(--salmon-700); }

.ct-form { background: var(--cream); padding: 44px 40px; }
.ct-form__head { font-family: var(--font-display); font-size: 30px; line-height: 1.14; margin-bottom: 24px; }
.ct-form form { display: flex; flex-direction: column; gap: 22px; }
.ct-form label {
  display: block;
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--charcoal);
  margin-bottom: 9px;
}
.ct-field {
  width: 100%;
  box-sizing: border-box;
  font-family: var(--font-sans);
  font-size: 16.5px;
  line-height: 1.6;
  color: var(--charcoal);
  background: #fff;
  border: 1px solid rgba(41, 39, 40, .28);
  border-radius: 2px;
  padding: 14px 16px;
  outline: none;
}
.ct-field:focus { border-color: var(--charcoal); }
textarea.ct-field { resize: vertical; min-height: 140px; }
select.ct-field {
  appearance: none;
  background-image: url("../assets/img/faq-open.svg");
  background-repeat: no-repeat;
  background-position: right 16px center;
  background-size: 13px;
  padding-right: 44px;
  cursor: pointer;
}
.ct-form button[type="submit"] { align-self: flex-start; }

@media (min-width: 1025px) and (max-width: 1240px) {
  .ct-hero h1 { font-size: 46px; }
  .ct-intro h2 { font-size: 34px; }
}

@media (max-width: 1024px) {
  .ct-hero { padding: 52px 24px 56px; }
  .ct-hero h1 { font-size: 42px; }

  .ct-main { padding: 52px 24px 60px; }
  .ct-intro .label { font-size: 13px; margin-bottom: 14px; }
  .ct-intro h2 { font-size: 32px; line-height: 1.14; }
  .ct-intro > p { text-align: left; margin-bottom: 34px; }
  .ct-email { padding-top: 26px; margin-bottom: 44px; }
  .ct-email__head { font-size: 25px; }
  .ct-email a { font-size: 23px; }

  .ct-form { padding: 32px 22px 34px; }
  .ct-form__head { font-size: 27px; text-align: center; margin-bottom: 22px; }
  .ct-form form { gap: 20px; }
  .ct-form button[type="submit"] { align-self: stretch; width: 100%; justify-content: center; padding: 17px 24px; }
  textarea.ct-field { min-height: 150px; }
}


/* ==========================================================================
   Contact thank-you page
   ========================================================================== */
.ty-hero {
  background-image: url("../assets/img/gradient-2b.png");
  background-size: cover;
  background-position: center;
  padding: 96px var(--gutter) 104px;
}
.ty-hero__inner { max-width: 760px; margin: 0 auto; text-align: center; }
.ty-hero h1 { font-size: 58px; line-height: 1.06; letter-spacing: .03em; text-transform: uppercase; margin-bottom: 20px; }
.ty-hero p { color: var(--text-body); max-width: 560px; margin: 0 auto 12px; }
.ty-hero p:last-child { margin-bottom: 0; }

.ty-next { background: #fff; padding: 88px var(--gutter); }
.ty-next__head { max-width: 1080px; margin: 0 auto 40px; text-align: center; }
.ty-next .label { display: block; font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--salmon-700); margin-bottom: 14px; }
.ty-next h2 { font-size: 42px; line-height: 1.1; text-transform: uppercase; letter-spacing: .02em; margin: 0; }
.ty-grid { max-width: 1080px; margin: 0 auto; display: grid; grid-template-columns: repeat(3, 1fr); }
.ty-card {
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-width: 0;
  padding: 34px 36px 32px;
  border-top: 1px solid var(--charcoal);
  border-right: 1px solid var(--border-soft);
  text-decoration: none;
}
.ty-card:nth-child(1) { padding: 34px 36px 32px 0; }
.ty-card:nth-child(3) { padding: 34px 0 32px 36px; border-right: none; }
.ty-card:hover { opacity: .72; }
.ty-card h3 { font-family: var(--font-display); font-weight: 400; font-size: 28px; line-height: 1.12; }
.ty-card p { color: var(--text-body); margin: 0; flex-grow: 1; }
.ty-card__cta { font-size: 11.5px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--salmon-700); }
.ty-next__foot { display: flex; justify-content: center; margin-top: 44px; }

@media (min-width: 1025px) and (max-width: 1240px) {
  .ty-hero h1 { font-size: 44px; }
  .ty-next h2 { font-size: 34px; }
  .ty-card, .ty-card:nth-child(1), .ty-card:nth-child(3) { padding: 30px 24px 28px; }
}

@media (max-width: 1024px) {
  .ty-hero { padding: 56px 24px 62px; }
  .ty-hero h1 { font-size: 38px; line-height: 1.1; }

  .ty-next { padding: 56px 24px 60px; }
  .ty-next__head { margin-bottom: 24px; }
  .ty-next .label { font-size: 13px; margin-bottom: 12px; }
  .ty-next h2 { font-size: 32px; line-height: 1.12; }
  .ty-grid { grid-template-columns: 1fr; }
  .ty-card, .ty-card:nth-child(1), .ty-card:nth-child(3) {
    padding: 26px 0;
    align-items: center;
    text-align: center;
    gap: 10px;
    border-right: none;
    border-top: 1px solid var(--border-soft);
  }
  .ty-card:first-child { border-top-color: var(--charcoal); }
  .ty-card:last-child { border-bottom: 1px solid var(--border-soft); }
  .ty-card h3 { font-size: 25px; }
  .ty-next__foot { margin-top: 34px; }
}


/* ==========================================================================
   Digital courses page
   ========================================================================== */
.dcs-hero {
  background-image: url("../assets/img/gradient-2b.png");
  background-size: cover;
  background-position: center;
  padding: 80px var(--gutter) 88px;
}
.dcs-hero__inner { max-width: 820px; margin: 0 auto; text-align: center; }
.dcs-hero h1 { font-size: 58px; line-height: 1.06; letter-spacing: .03em; text-transform: uppercase; margin-bottom: 18px; }
.dcs-hero p { color: var(--text-body); max-width: 600px; margin: 0 auto; }

.dcs-course { padding: 88px var(--gutter); }
.dcs-course--white { background: #fff; }
.dcs-course--cream { background: var(--cream); }
.dcs-course__inner { max-width: 1000px; margin: 0 auto; }
.dcs-course__media { display: block; margin-bottom: 40px; }
.dcs-course__media:hover { opacity: .92; }
.dcs-course__media img { width: 100%; height: auto; display: block; }
.dcs-course__body { max-width: 760px; margin: 0 auto; text-align: center; }
.dcs-course .label { display: block; font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--salmon-700); margin-bottom: 14px; }
.dcs-course h2 { font-size: 44px; line-height: 1.1; text-transform: uppercase; letter-spacing: .02em; margin-bottom: 18px; }
.dcs-course__promise { font-size: 15px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; line-height: 1.8; color: var(--charcoal); margin-bottom: 22px; }
.dcs-course__body p { color: var(--text-body); margin: 0 0 16px; }
.dcs-course__format { font-size: 12.5px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; line-height: 1.9; color: var(--text-muted); margin: 26px 0 8px; }
.dcs-course__price { font-family: var(--font-accent); font-weight: 600; font-size: 44px; letter-spacing: .04em; line-height: 1; margin-bottom: 8px; }
.dcs-course__plans { font-size: 12.5px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--salmon-700); margin-bottom: 28px; }
.dcs-course .btn { margin: 0 auto; }

@media (min-width: 1025px) and (max-width: 1240px) {
  .dcs-hero h1 { font-size: 46px; }
  .dcs-course h2 { font-size: 34px; }
}

@media (max-width: 1024px) {
  .dcs-hero { padding: 52px 24px 56px; }
  .dcs-hero h1 { font-size: 40px; margin-bottom: 16px; }

  .dcs-course { padding: 52px 24px 60px; }
  .dcs-course__media { margin-bottom: 28px; }
  .dcs-course .label { font-size: 13px; margin-bottom: 12px; }
  .dcs-course h2 { font-size: 34px; line-height: 1.12; margin-bottom: 16px; }
  .dcs-course__promise { font-size: 13px; margin-bottom: 20px; }
  .dcs-course__body { text-align: center; }
  .dcs-course__body p { text-align: left; }
  .dcs-course__format { font-size: 11.5px; margin-top: 24px; }
  .dcs-course__price { font-size: 40px; }
  .dcs-course__plans { font-size: 11.5px; margin-bottom: 26px; }
}


/* ==========================================================================
   Language of the Stars sales page
   ========================================================================== */
:root { --lots-navy: #141c42; --lots-navy-2: #1b2450; }

.lots { background: var(--lots-navy); }
.lots h1, .lots h2, .lots h3 { color: #fff; }
.lots p { color: rgba(255, 255, 255, .88); }
.lots em { font-style: italic; }
.lots__label { display: block; font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--salmon-300); margin-bottom: 14px; }
.lots-btn--solid { color: var(--charcoal); background: #fff; border: 1px solid #fff; padding: 16px 26px; }
.lots-btn--solid:hover { background: transparent; color: #fff; }
.lots-btn--ghost { color: #fff; border-color: rgba(255, 255, 255, .7); }
.lots-btn--ghost:hover { background: #fff; color: var(--lots-navy); }

.lots-hero {
  padding: 104px var(--gutter) 112px;
  background-image: linear-gradient(rgba(19, 26, 58, .4), rgba(19, 26, 58, .52)), url("../assets/img/lots-milkyway.png");
  background-size: cover;
  background-position: center;
}
.lots-hero__inner { max-width: 820px; margin: 0 auto; text-align: center; }
.lots-hero h1 { font-size: 56px; line-height: 1.04; letter-spacing: .02em; text-transform: uppercase; margin-bottom: 20px; text-shadow: 0 2px 22px rgba(19, 26, 58, .5); }
.lots-hero__sub { font-size: 19px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; line-height: 1.7; color: #fff; margin-bottom: 28px; text-shadow: 0 2px 16px rgba(19, 26, 58, .5); }
.lots-hero p { color: #fff; }
.lots-hero .btn { margin: 32px auto 0; }

.lots-prose { padding: 88px var(--gutter); }
.lots-prose--navy { background: var(--lots-navy); }
.lots-prose--navy2 { background: var(--lots-navy-2); }
.lots-prose--nebula { background-image: url("../assets/img/lots-nebula.png"); background-size: cover; background-position: center; }
.lots-prose__inner { max-width: 820px; margin: 0 auto; }
.lots-prose h2 { font-size: 44px; line-height: 1.12; margin-bottom: 24px; text-align: center; }
.lots-prose h2.lots-prose__h--sm { font-size: 40px; line-height: 1.16; }

.lots-list { max-width: 900px; margin: 44px auto 0; }
.lots-list__label { font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; text-align: center; color: var(--salmon-300); margin-bottom: 8px; }
.lots-list__grid { display: grid; grid-template-columns: 1fr 1fr; }
.lots-item { display: grid; grid-template-columns: 22px 1fr; gap: 14px; align-items: start; min-width: 0; padding: 26px 40px 26px 0; border-top: 1px solid rgba(255, 255, 255, .16); border-right: 1px solid rgba(255, 255, 255, .16); }
.lots-item:nth-child(even) { padding: 26px 0 26px 40px; border-right: none; }
.lots-item:nth-child(1), .lots-item:nth-child(2) { border-top-color: rgba(255, 255, 255, .4); }
.lots-item img { width: 12px; height: 12px; margin-top: 8px; opacity: .85; }
.lots-item p { margin: 0; }

.lots-rows { max-width: 820px; margin: 0 auto; }
.lots-row { display: grid; grid-template-columns: 22px 1fr; gap: 14px; align-items: start; padding: 18px 0; border-top: 1px solid rgba(255, 255, 255, .16); }
.lots-row:first-of-type { border-top-color: rgba(255, 255, 255, .4); }
.lots-row:last-of-type { border-bottom: 1px solid rgba(255, 255, 255, .16); }
.lots-row img { width: 12px; height: 12px; margin-top: 8px; opacity: .85; }
.lots-row p { margin: 0; }

.lots-planets { width: 100%; height: auto; display: block; }

.lots-weeks { background: var(--lots-navy); padding: 88px var(--gutter); }
.lots-weeks__head { max-width: var(--container); margin: 0 auto 44px; text-align: center; }
.lots-weeks__head h2 { font-size: 46px; line-height: 1.08; text-transform: uppercase; letter-spacing: .02em; margin: 0; }
.lots-weeks__list { max-width: 1000px; margin: 0 auto; }
.lots-week { display: grid; grid-template-columns: 80px 1fr 1fr; gap: 32px; align-items: baseline; padding: 24px 0; border-top: 1px solid rgba(255, 255, 255, .16); }
.lots-week:first-of-type { border-top-color: rgba(255, 255, 255, .4); }
.lots-week:last-of-type { border-bottom: 1px solid rgba(255, 255, 255, .16); }
.lots-week__n { font-family: var(--font-accent); font-weight: 600; font-size: 18px; letter-spacing: .16em; color: var(--salmon-300); }
.lots-week h3 { font-family: var(--font-display); font-weight: 400; font-size: 26px; line-height: 1.14; }
.lots-week p { margin: 0; }

.lots-quote { background: var(--blush); padding: 72px var(--gutter); }
.lots-quote__inner { max-width: 760px; margin: 0 auto; text-align: center; }
.lots-quote img { width: 32px; height: auto; display: block; margin: 0 auto 22px; opacity: .8; }
.lots-quote p { font-size: 24px; font-style: italic; line-height: 1.6; color: var(--charcoal); margin: 0; }
.lots-quote__by { font-size: 11.5px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--text-muted); margin-top: 16px; }

.lots-bio { background: var(--lots-navy); padding: 88px var(--gutter); }
.lots-bio__inner { max-width: 1000px; margin: 0 auto; display: grid; grid-template-columns: 1fr 380px; gap: 72px; align-items: center; }
.lots-bio h2 { font-size: 42px; line-height: 1.12; margin-bottom: 22px; }
.lots-bio p { max-width: 540px; }
.lots-bio__pull { font-family: var(--font-display); font-size: 26px; line-height: 1.3; color: var(--salmon-300); }
.lots-bio__media img { width: 100%; display: block; }

.lots-vsl { background: var(--cream); padding: 88px var(--gutter); }
.lots-vsl__inner { max-width: 900px; margin: 0 auto; text-align: center; }
.lots-vsl .label { display: block; font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--salmon-700); margin-bottom: 14px; }
.lots-vsl h2 { font-size: 42px; line-height: 1.1; text-transform: uppercase; letter-spacing: .02em; margin-bottom: 18px; }
.lots-vsl p { color: var(--text-body); max-width: 600px; margin: 0 auto 34px; }
.lots-video {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  background-image: linear-gradient(rgba(19, 26, 58, .34), rgba(19, 26, 58, .46)), url("../assets/img/course-lots.jpg");
  background-size: cover;
  background-position: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 20px;
}
.lots-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: none; }
.lots-video__play { width: 74px; height: 74px; border-radius: 50%; border: 1px solid rgba(255, 255, 255, .75); display: flex; align-items: center; justify-content: center; color: #fff; font-size: 20px; padding-left: 5px; }
.lots-video__note { font-size: 11.5px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: rgba(255, 255, 255, .82); }

.lots-bring { background: var(--sand); padding: 80px var(--gutter); }
.lots-bring__inner { max-width: 820px; margin: 0 auto; text-align: center; }
.lots-bring h2 { font-size: 38px; line-height: 1.12; text-transform: uppercase; letter-spacing: .02em; color: var(--charcoal); margin-bottom: 26px; }
.lots-chips { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-bottom: 26px; }
.lots-chip { font-size: 12.5px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--charcoal); border: 1px solid rgba(41, 39, 40, .3); padding: 11px 18px; }
.lots-bring p { color: var(--text-body); font-style: italic; margin: 0; }

.lots-enroll { padding: 88px var(--gutter); background-image: url("../assets/img/lots-nebula.png"); background-size: cover; background-position: center; }
.lots-enroll__head { max-width: 820px; margin: 0 auto 44px; text-align: center; }
.lots-enroll h2 { font-size: 44px; line-height: 1.1; text-transform: uppercase; letter-spacing: .02em; margin-bottom: 20px; }
.lots-tiers { max-width: 1000px; margin: 0 auto; display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; align-items: stretch; }
.lots-tier { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 12px; padding: 40px 30px 36px; background: rgba(255, 255, 255, .08); border: 1px solid rgba(255, 255, 255, .28); }
.lots-tier--feat { background: #fff; border-color: #fff; }
.lots-tier__lab { font-size: 12px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: rgba(255, 255, 255, .72); }
.lots-tier--feat .lots-tier__lab { color: var(--salmon-700); }
.lots-tier__price { font-family: var(--font-accent); font-weight: 600; font-size: 52px; letter-spacing: .02em; line-height: 1; color: #fff; }
.lots-tier--feat .lots-tier__price { color: var(--charcoal); }
.lots-tier__note { font-size: 11px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--salmon-700); min-height: 14px; margin-bottom: 4px; }
.lots-tier--feat .btn { color: var(--charcoal); border-color: var(--charcoal); }
.lots-tier--feat .btn:hover { background: var(--charcoal); color: #fff; }

.lots-faq { background: var(--cream); padding: 88px var(--gutter); }
.lots-faq__inner { max-width: 840px; margin: 0 auto; }
.lots-faq__head { text-align: center; margin-bottom: 44px; }
.lots-faq .label { display: block; font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--salmon-700); margin-bottom: 14px; }
.lots-faq h2 { font-size: 44px; line-height: 1.1; text-transform: uppercase; letter-spacing: .02em; color: var(--charcoal); margin: 0; }
.lots-faq__item { border-top: 1px solid var(--border-soft); }
.lots-faq__item:last-of-type { border-bottom: 1px solid var(--border-soft); }
.lots-faq__q {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  background: none;
  border: none;
  padding: 26px 0;
  cursor: pointer;
  text-align: left;
  font-family: var(--font-sans);
  font-size: 18px;
  font-weight: 700;
  line-height: 1.5;
  color: var(--charcoal);
}
.lots-faq__q img { width: 17px; height: 17px; flex-shrink: 0; }
.lots-faq__a { padding: 0 0 28px; }
.lots-faq__a p { color: var(--text-body); max-width: 680px; margin: 0; }
.lots-faq__item:not([open]) .lots-faq__a { display: none; }
.lots-faq__item[open] .lots-faq__icon--open { display: none; }
.lots-faq__item:not([open]) .lots-faq__icon--close { display: none; }
.lots-faq p.lots-faq__more { color: var(--text-body); text-align: center; margin: 30px 0 0; }

.lots-close {
  padding: 104px var(--gutter) 112px;
  background-image: linear-gradient(rgba(19, 26, 58, .44), rgba(19, 26, 58, .54)), url("../assets/img/lots-butterflies.png");
  background-size: cover;
  background-position: center 30%;
}
.lots-close__inner { max-width: 760px; margin: 0 auto; text-align: center; }
.lots-close h2 { font-size: 46px; line-height: 1.08; text-transform: uppercase; letter-spacing: .02em; margin-bottom: 24px; text-shadow: 0 2px 20px rgba(19, 26, 58, .5); }
.lots-close p { color: #fff; }
.lots-close__pull { font-family: var(--font-display); font-size: 30px; line-height: 1.26; color: #fff; margin: 0 0 32px; text-shadow: 0 2px 16px rgba(19, 26, 58, .45); }

@media (min-width: 1025px) and (max-width: 1240px) {
  .lots-hero h1 { font-size: 44px; }
  .lots-prose h2, .lots-enroll h2, .lots-faq h2 { font-size: 34px; }
  .lots-weeks__head h2, .lots-close h2 { font-size: 36px; }
  .lots-bio__inner { grid-template-columns: 1fr 300px; gap: 44px; }
  .lots-week { grid-template-columns: 60px 1fr 1fr; gap: 22px; }
}

@media (max-width: 1024px) {
  .lots-hero { padding: 60px 24px 66px; }
  .lots-hero h1 { font-size: 42px; margin-bottom: 18px; }
  .lots-hero__sub { font-size: 15px; margin-bottom: 24px; }
  .lots-hero .btn { margin-top: 30px; }

  .lots-prose { padding: 56px 24px 60px; }
  .lots-prose h2 { font-size: 34px; line-height: 1.14; margin-bottom: 22px; }
  .lots-prose h2.lots-prose__h--sm { font-size: 32px; }
  .lots-list { margin-top: 34px; }
  .lots-list__label { font-size: 13px; }
  .lots-list__grid { grid-template-columns: 1fr; }
  .lots-item, .lots-item:nth-child(even) { grid-template-columns: 20px 1fr; gap: 12px; padding: 18px 0; border-right: none; border-top: 1px solid rgba(255, 255, 255, .16); }
  .lots-item:first-child { border-top-color: rgba(255, 255, 255, .4); }
  .lots-item:last-child { border-bottom: 1px solid rgba(255, 255, 255, .16); }
  .lots-row { grid-template-columns: 20px 1fr; gap: 12px; }

  .lots-weeks { padding: 56px 24px 60px; }
  .lots-weeks__head { margin-bottom: 24px; }
  .lots-weeks__head h2 { font-size: 34px; line-height: 1.12; }
  .lots-week { grid-template-columns: 1fr; gap: 8px; padding: 24px 0; text-align: center; }
  .lots-week__n { font-size: 16px; }
  .lots-week h3 { font-size: 25px; }

  .lots-quote { padding: 52px 24px 56px; }
  .lots-quote img { width: 28px; margin-bottom: 20px; }
  .lots-quote p { font-size: 19px; }

  .lots-bio { padding: 56px 24px 60px; }
  .lots-bio__inner { grid-template-columns: 1fr; gap: 0; }
  .lots-bio__inner > div { display: flex; flex-direction: column; }
  .lots-bio__label { text-align: center; font-size: 13px; }
  .lots-bio h2 { font-size: 32px; text-align: center; }
  .lots-bio p { max-width: none; }
  .lots-bio__pull { font-size: 24px; text-align: center; }
  .lots-bio__media { order: -1; max-width: 280px; margin: 0 auto 28px; }

  .lots-vsl { padding: 56px 24px 60px; }
  .lots-vsl .label { font-size: 13px; }
  .lots-vsl h2 { font-size: 32px; line-height: 1.12; }
  .lots-vsl p { margin-bottom: 26px; }
  .lots-video { gap: 16px; }
  .lots-video__play { width: 60px; height: 60px; font-size: 17px; }
  .lots-video__note { font-size: 11px; }

  .lots-bring { padding: 52px 24px 56px; }
  .lots-bring h2 { font-size: 30px; margin-bottom: 22px; }
  .lots-chips { gap: 9px; margin-bottom: 22px; }
  .lots-chip { font-size: 11.5px; padding: 10px 15px; }

  .lots-enroll { padding: 56px 24px 60px; }
  .lots-enroll__head { margin-bottom: 30px; }
  .lots-enroll h2 { font-size: 32px; line-height: 1.12; margin-bottom: 18px; }
  .lots-tiers { grid-template-columns: 1fr; gap: 16px; }
  .lots-tier { padding: 32px 24px 30px; gap: 11px; }
  .lots-tier__price { font-size: 46px; }

  .lots-faq { padding: 56px 24px 60px; }
  .lots-faq__head { margin-bottom: 26px; }
  .lots-faq .label { font-size: 13px; }
  .lots-faq h2 { font-size: 32px; line-height: 1.12; }
  .lots-faq__q { font-size: 16.5px; gap: 16px; padding: 22px 0; }
  .lots-faq__q img { width: 16px; height: 16px; }
  .lots-faq__a { padding: 0 0 24px; }
  .lots-faq__more { margin-top: 26px; }

  .lots-close { padding: 60px 24px 66px; }
  .lots-close h2 { font-size: 34px; line-height: 1.1; margin-bottom: 22px; }
  .lots-close__pull { font-size: 26px; margin-bottom: 30px; }
}


/* ==========================================================================
   Awake Yourself sales page
   ========================================================================== */
.ay-hero { padding: 88px var(--gutter) 40px; background-image: url("../assets/img/ay-blush-wash.png"); background-size: cover; background-position: center; }
.ay-hero__inner { max-width: 820px; margin: 0 auto; text-align: center; }
.ay-hero h1 { font-size: 64px; line-height: 1.04; letter-spacing: .03em; text-transform: uppercase; margin-bottom: 20px; }
.ay-hero__sub { font-size: 19px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; line-height: 1.7; color: var(--salmon-700); margin-bottom: 30px; }
.ay-hero .btn { margin: 0 auto; }

.ay-bleed { width: 100%; height: auto; display: block; }

.ay-premise { background: #fff; padding: 88px var(--gutter); }
.ay-premise__inner { max-width: 820px; margin: 0 auto; }
.ay-premise p { color: var(--text-body); }
.ay-premise__pull { font-family: var(--font-display); font-size: 30px; line-height: 1.26; color: var(--salmon-700); margin: 26px 0 0; text-align: center; }

.ay-quote { background: var(--blush); padding: 72px var(--gutter); }
.ay-quote__inner { max-width: 820px; margin: 0 auto; text-align: center; }
.ay-quote img { width: 32px; height: auto; display: block; margin: 0 auto 22px; opacity: .8; }
.ay-quote p { font-size: 20px; font-style: italic; line-height: 1.66; color: var(--charcoal); margin: 0 0 16px; }
.ay-quote__by { font-size: 11.5px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--text-muted); }

.ay-mods { background: #fff; padding: 88px var(--gutter); }
.ay-mods__head { max-width: var(--container); margin: 0 auto 44px; text-align: center; }
.ay-mods__head .label { display: block; font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--salmon-700); margin-bottom: 14px; }
.ay-mods__head h2 { font-size: 46px; line-height: 1.08; text-transform: uppercase; letter-spacing: .02em; margin: 0; }
.ay-mods__grid { max-width: 1120px; margin: 0 auto; display: grid; grid-template-columns: 1fr 1fr; }
.ay-mod { min-width: 0; padding: 32px 44px 30px 0; border-top: 1px solid var(--border-soft); border-right: 1px solid var(--border-soft); }
.ay-mod:nth-child(even) { padding: 32px 0 30px 44px; border-right: none; }
.ay-mod:nth-child(1), .ay-mod:nth-child(2) { border-top-color: var(--charcoal); }
.ay-mod__n { font-family: var(--font-accent); font-weight: 600; font-size: 18px; letter-spacing: .16em; color: var(--salmon-700); margin-bottom: 10px; }
.ay-mod h3 { font-family: var(--font-display); font-weight: 400; font-size: 28px; line-height: 1.12; margin-bottom: 12px; }
.ay-mod p { color: var(--text-body); margin: 0; }

.ay-outcome { background: var(--cream); padding: 88px var(--gutter); }
.ay-outcome__inner { max-width: 1000px; margin: 0 auto; display: grid; grid-template-columns: 380px 1fr; gap: 72px; align-items: center; }
.ay-outcome img { width: 100%; height: auto; display: block; }
.ay-outcome h2 { font-size: 42px; line-height: 1.12; margin-bottom: 22px; }
.ay-outcome p { color: var(--text-body); max-width: 520px; }

.ay-enroll { padding: 88px var(--gutter); background-image: url("../assets/img/ay-blush-wash.png"); background-size: cover; background-position: center; }
.ay-enroll__head { max-width: 820px; margin: 0 auto 44px; text-align: center; }
.ay-enroll h2 { font-size: 44px; line-height: 1.1; text-transform: uppercase; letter-spacing: .02em; margin: 0; }
.ay-tiers { max-width: 1000px; margin: 0 auto; display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; align-items: stretch; }
.ay-tier { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 12px; padding: 40px 30px 36px; background: rgba(255, 255, 255, .86); border: 1px solid rgba(41, 39, 40, .14); }
.ay-tier--feat { background: var(--charcoal); border-color: var(--charcoal); }
.ay-tier__lab { font-size: 12px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--text-muted); }
.ay-tier--feat .ay-tier__lab { color: var(--salmon-300); }
.ay-tier__price { font-family: var(--font-accent); font-weight: 600; font-size: 52px; letter-spacing: .02em; line-height: 1; color: var(--charcoal); }
.ay-tier--feat .ay-tier__price { color: #fff; }
.ay-tier__note { font-size: 11px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--salmon-300); min-height: 14px; margin-bottom: 4px; }
.ay-tier--feat .btn { color: #fff; border-color: #fff; }
.ay-tier--feat .btn:hover { background: #fff; color: var(--charcoal); }

.ay-slider { padding: 88px var(--gutter); background-image: linear-gradient(rgba(41, 39, 40, .42), rgba(41, 39, 40, .52)), url("../assets/img/ay-dark-clouds.jpg"); background-size: cover; background-position: center; }
.ay-slider__inner { max-width: 900px; margin: 0 auto; text-align: center; }
.ay-slider .label { display: block; font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--salmon-300); margin-bottom: 34px; }
.ay-slider__q { font-size: 22px; font-style: italic; line-height: 1.62; color: #fff; margin: 0 auto 22px; min-height: 190px; max-width: 760px; }
.ay-slider__by { font-size: 11.5px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: rgba(255, 255, 255, .75); margin-bottom: 30px; }
.ay-slider__nav { display: flex; align-items: center; justify-content: center; gap: 24px; }
.ay-slider__arrow { background: none; border: 1px solid rgba(255, 255, 255, .7); color: #fff; width: 44px; height: 44px; cursor: pointer; font-size: 15px; display: flex; align-items: center; justify-content: center; }
.ay-slider__arrow:hover { background: #fff; color: var(--charcoal); }
.ay-slider__dots { display: flex; gap: 9px; flex-wrap: wrap; justify-content: center; max-width: 280px; }
.ay-slider__dot { width: 9px; height: 9px; border-radius: 50%; border: none; padding: 0; cursor: pointer; background: rgba(255, 255, 255, .35); }
.ay-slider__dot[aria-current="true"] { background: #fff; }

.ay-oils { background: var(--cream); padding: 88px var(--gutter); }
.ay-oils__inner { max-width: 1000px; margin: 0 auto; }
.ay-oils__head { text-align: center; margin-bottom: 34px; }
.ay-oils__head .label { display: block; font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--salmon-700); margin-bottom: 14px; }
.ay-oils__head h2 { font-size: 44px; line-height: 1.1; text-transform: uppercase; letter-spacing: .02em; margin-bottom: 18px; }
.ay-oils__head p { color: var(--text-body); max-width: 620px; margin: 0 auto; }
.ay-chips { display: flex; flex-wrap: wrap; justify-content: center; gap: 9px; margin-bottom: 40px; }
.ay-chip { font-size: 12.5px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--charcoal); border: 1px solid rgba(41, 39, 40, .32); padding: 10px 16px; }
.ay-chip--soft { border-color: rgba(41, 39, 40, .2); }
.ay-oils__foot { max-width: 760px; margin: 0 auto; padding-top: 32px; border-top: 1px solid rgba(41, 39, 40, .18); text-align: center; }
.ay-oils__foot .sub { font-size: 13px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--text-muted); margin-bottom: 18px; }
.ay-oils__foot p { color: var(--text-body); margin: 0 0 26px; }
.ay-oils__foot .btn { margin: 0 auto; }

.ay-faq { background: #fff; padding: 88px var(--gutter); }
.ay-faq__inner { max-width: 840px; margin: 0 auto; }
.ay-faq__head { text-align: center; margin-bottom: 44px; }
.ay-faq .label { display: block; font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--salmon-700); margin-bottom: 14px; }
.ay-faq h2 { font-size: 44px; line-height: 1.1; text-transform: uppercase; letter-spacing: .02em; margin: 0; }
.ay-faq__item { border-top: 1px solid var(--border-soft); }
.ay-faq__item:last-of-type { border-bottom: 1px solid var(--border-soft); }
.ay-faq__q { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 24px; background: none; border: none; padding: 26px 0; cursor: pointer; text-align: left; font-family: var(--font-sans); font-size: 18px; font-weight: 700; line-height: 1.5; color: var(--charcoal); }
.ay-faq__q img { width: 17px; height: 17px; flex-shrink: 0; }
.ay-faq__a { padding: 0 0 28px; }
.ay-faq__a p { color: var(--text-body); max-width: 680px; margin: 0; }
.ay-faq__item:not([open]) .ay-faq__a { display: none; }
.ay-faq__item[open] .ay-faq__icon--open { display: none; }
.ay-faq__item:not([open]) .ay-faq__icon--close { display: none; }
.ay-faq p.ay-faq__more { color: var(--text-body); text-align: center; margin: 30px 0 0; }

.ay-close { padding: 104px var(--gutter) 112px; background-image: linear-gradient(rgba(41, 39, 40, .3), rgba(41, 39, 40, .4)), url("../assets/img/ay-swimmer.jpg"); background-size: cover; background-position: center 55%; }
.ay-close__inner { max-width: 760px; margin: 0 auto; text-align: center; }
.ay-close h2 { font-size: 48px; line-height: 1.08; text-transform: uppercase; letter-spacing: .02em; color: #fff; margin-bottom: 24px; text-shadow: 0 2px 20px rgba(41, 39, 40, .5); }
.ay-close p { font-size: 17px; line-height: 1.8; color: #fff; margin: 0 0 34px; }
.ay-close .btn { margin: 0 auto; color: var(--charcoal); background: #fff; border: 1px solid #fff; padding: 16px 26px; }
.ay-close .btn:hover { background: transparent; color: #fff; }

@media (min-width: 1025px) and (max-width: 1240px) {
  .ay-hero h1 { font-size: 48px; }
  .ay-mods__head h2, .ay-enroll h2, .ay-faq h2, .ay-oils__head h2 { font-size: 34px; }
  .ay-close h2 { font-size: 38px; }
  .ay-mod { padding: 28px 28px 26px 0; }
  .ay-mod:nth-child(even) { padding: 28px 0 26px 28px; }
  .ay-outcome__inner { grid-template-columns: 300px 1fr; gap: 44px; }
}

@media (max-width: 1024px) {
  .ay-hero { padding: 56px 24px 34px; }
  .ay-hero h1 { font-size: 46px; margin-bottom: 18px; }
  .ay-hero__sub { font-size: 15px; margin-bottom: 26px; }

  .ay-premise { padding: 56px 24px 60px; }
  .ay-premise__pull { font-size: 26px; line-height: 1.28; margin-top: 24px; }

  .ay-quote { padding: 52px 24px 56px; }
  .ay-quote img { width: 28px; margin-bottom: 20px; }
  .ay-quote p { font-size: 19px; line-height: 1.62; }

  .ay-mods { padding: 56px 24px 60px; }
  .ay-mods__head { margin-bottom: 24px; }
  .ay-mods__head .label { font-size: 13px; }
  .ay-mods__head h2 { font-size: 34px; line-height: 1.12; }
  .ay-mods__grid { grid-template-columns: 1fr; }
  .ay-mod, .ay-mod:nth-child(even) { padding: 26px 0; text-align: center; border-right: none; border-top: 1px solid var(--border-soft); }
  .ay-mod:first-child { border-top-color: var(--charcoal); }
  .ay-mod:last-child { border-bottom: 1px solid var(--border-soft); }
  .ay-mod__n { font-size: 16px; }
  .ay-mod h3 { font-size: 26px; }

  .ay-outcome { padding: 56px 24px 60px; }
  .ay-outcome__inner { grid-template-columns: 1fr; gap: 28px; }
  .ay-outcome h2 { font-size: 32px; line-height: 1.14; text-align: center; }
  .ay-outcome p { max-width: none; }

  .ay-enroll { padding: 56px 24px 60px; }
  .ay-enroll__head { margin-bottom: 30px; }
  .ay-enroll h2 { font-size: 32px; line-height: 1.12; }
  .ay-tiers { grid-template-columns: 1fr; gap: 16px; }
  .ay-tier { padding: 32px 24px 30px; gap: 11px; }
  .ay-tier__price { font-size: 46px; }

  .ay-slider { padding: 56px 24px 60px; }
  .ay-slider .label { font-size: 13px; margin-bottom: 26px; }
  .ay-slider__q { font-size: 19px; min-height: 220px; margin-bottom: 18px; }
  .ay-slider__by { margin-bottom: 24px; }
  .ay-slider__nav { gap: 20px; }
  .ay-slider__arrow { width: 46px; height: 46px; }
  .ay-slider__dots { gap: 8px; max-width: 170px; }
  .ay-slider__dot { width: 8px; height: 8px; }

  .ay-oils { padding: 56px 24px 60px; }
  .ay-oils__head { margin-bottom: 26px; }
  .ay-oils__head .label { font-size: 13px; }
  .ay-oils__head h2 { font-size: 32px; line-height: 1.12; margin-bottom: 16px; }
  .ay-chips { gap: 8px; margin-bottom: 34px; }
  .ay-chip { font-size: 11.5px; letter-spacing: .1em; padding: 9px 13px; }
  .ay-oils__foot { padding-top: 28px; }
  .ay-oils__foot .sub { font-size: 12px; margin-bottom: 16px; }
  .ay-oils__foot p { margin-bottom: 24px; }

  .ay-faq { padding: 56px 24px 60px; }
  .ay-faq__head { margin-bottom: 26px; }
  .ay-faq .label { font-size: 13px; }
  .ay-faq h2 { font-size: 32px; line-height: 1.12; }
  .ay-faq__q { font-size: 16.5px; gap: 16px; padding: 22px 0; }
  .ay-faq__q img { width: 16px; height: 16px; }
  .ay-faq__a { padding: 0 0 24px; }

  .ay-close { padding: 60px 24px 66px; }
  .ay-close h2 { font-size: 38px; line-height: 1.08; margin-bottom: 22px; }
  .ay-close p { font-size: 16.5px; margin-bottom: 30px; }
}


/* ==========================================================================
   Privacy policy
   ========================================================================== */
.legaldoc-hero { background: var(--cream); padding: 72px var(--gutter) 64px; }
.legaldoc-hero__inner { max-width: 1080px; margin: 0 auto; text-align: center; }
.legaldoc-hero .label { display: block; font-size: 13px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--salmon-700); margin-bottom: 16px; }
.legaldoc-hero h1 { font-size: 56px; line-height: 1.06; letter-spacing: .02em; text-transform: uppercase; margin-bottom: 18px; }
.legaldoc-hero p { color: var(--text-body); max-width: 640px; margin: 0 auto; line-height: 1.78; }

.legal-doc { background: #fff; padding: 72px var(--gutter) 96px; }
.legal-doc__inner { max-width: 1080px; margin: 0 auto; display: grid; grid-template-columns: 280px 1fr; gap: 80px; align-items: start; }
.legal-doc__toc { position: sticky; top: 150px; }
.legal-doc__toc .sub { font-size: 12px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--text-muted); margin-bottom: 8px; }
.legal-doc__toc a { display: block; padding: 11px 0; border-top: 1px solid var(--border-soft); font-size: 14px; line-height: 1.5; color: var(--text-body); text-decoration: none; }
.legal-doc__toc a:hover { color: var(--salmon-700); }
.legal-doc__body { max-width: 680px; }
.legal-doc__body h2 { font-family: var(--font-display); font-weight: 400; font-size: 30px; line-height: 1.14; margin-bottom: 18px; }
.legal-doc__body p { color: var(--text-body); line-height: 1.78; margin: 0 0 16px; }
.legal-doc__sec { padding-top: 44px; margin-top: 44px; border-top: 1px solid var(--border-soft); }
.legal-doc__num, .legal-doc__li { display: grid; gap: 10px; align-items: start; padding: 16px 0; border-top: 1px solid var(--border-soft); }
.legal-doc__num { grid-template-columns: 34px 1fr; }
.legal-doc__li { grid-template-columns: 20px 1fr; gap: 12px; padding: 14px 0; }
.legal-doc__num:first-of-type, .legal-doc__li:first-of-type { border-top-color: var(--charcoal); }
.legal-doc__num:last-of-type, .legal-doc__li:last-of-type { border-bottom: 1px solid var(--border-soft); }
.legal-doc__num > div:first-child { font-family: var(--font-accent); font-weight: 600; font-size: 16px; letter-spacing: .1em; color: var(--salmon-700); margin-top: 3px; }
.legal-doc__li img { width: 11px; height: 11px; margin-top: 8px; opacity: .65; }
.legal-doc__num p, .legal-doc__li p { margin: 0; }
.legal-doc__foot { margin-top: 44px; padding-top: 44px; border-top: 1px solid var(--charcoal); }
.legal-doc__foot p { margin-bottom: 26px; }

@media (max-width: 1024px) {
  .legaldoc-hero { padding: 48px 24px 44px; }
  .legaldoc-hero .label { font-size: 12.5px; }
  .legaldoc-hero h1 { font-size: 42px; margin-bottom: 16px; }

  .legal-doc { padding: 52px 24px 60px; }
  .legal-doc__inner { grid-template-columns: 1fr; gap: 0; }
  .legal-doc__toc { display: none; }
  .legal-doc__body { max-width: none; }
  .legal-doc__body h2 { font-size: 27px; margin-bottom: 16px; }
  .legal-doc__sec { padding-top: 34px; margin-top: 34px; }
  .legal-doc__num { grid-template-columns: 30px 1fr; }
  .legal-doc__num > div:first-child { font-size: 15px; }
  .legal-doc__li { grid-template-columns: 18px 1fr; gap: 11px; }
  .legal-doc__foot { margin-top: 34px; padding-top: 34px; }
}


/* ==========================================================================
   Meditations page
   ========================================================================== */
.med-hero {
  background-image: url("../assets/img/gradient-2b.png");
  background-size: cover;
  background-position: center;
  padding: 88px var(--gutter) 96px;
}
.med-hero__inner { max-width: 820px; margin: 0 auto; text-align: center; }
.med-hero h1 { font-size: 56px; line-height: 1.06; letter-spacing: .02em; text-transform: uppercase; margin-bottom: 18px; }
.med-hero__sub { font-size: 17px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; line-height: 1.8; color: var(--salmon-700); margin-bottom: 26px; }
.med-hero p { color: var(--text-body); margin: 0; }

.med-solo { background: #fff; padding: 88px var(--gutter); }
.med-solo__inner { max-width: 1080px; margin: 0 auto; display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: center; }
.med-solo__media { width: 100%; height: auto; display: block; }
.med-solo__label { font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--salmon-700); margin-bottom: 16px; }
.med-solo h2 { font-size: 44px; line-height: 1.1; margin-bottom: 18px; }
.med-solo__q { font-size: 17px; font-weight: 600; line-height: 1.6; color: var(--charcoal); margin-bottom: 18px; max-width: 520px; }
.med-solo p { color: var(--text-body); max-width: 520px; }
.med-price { display: flex; align-items: baseline; gap: 18px; margin: 24px 0 8px; }
.med-price__n { font-family: var(--font-accent); font-weight: 600; font-size: 40px; letter-spacing: .04em; line-height: 1; }
.med-price__t { font-size: 12.5px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--text-muted); }
.med-solo .btn { margin-top: 18px; }

.med-library { background: var(--blush-100); padding: 88px var(--gutter); }
.med-library__head { max-width: 820px; margin: 0 auto 48px; text-align: center; }
.med-library .label { display: block; font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--salmon-700); margin-bottom: 14px; }
.med-library h2 { font-size: 46px; line-height: 1.08; text-transform: uppercase; letter-spacing: .02em; margin-bottom: 18px; }
.med-library__head p { color: var(--text-body); margin: 0; }
.med-grid { max-width: 1120px; margin: 0 auto 48px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; align-items: stretch; }
.med-card { display: flex; flex-direction: column; min-width: 0; background: #fff; }
.med-card img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; display: block; }
.med-card__body { padding: 26px 26px 30px; display: flex; flex-direction: column; gap: 12px; flex-grow: 1; }
.med-card h3 { font-family: var(--font-display); font-weight: 400; font-size: 26px; line-height: 1.14; }
.med-card p { color: var(--text-body); margin: 0; }
.med-library__cta { display: flex; justify-content: center; }

@media (min-width: 1025px) and (max-width: 1240px) {
  .med-hero h1 { font-size: 44px; }
  .med-solo__inner { gap: 44px; }
  .med-solo h2, .med-library h2 { font-size: 36px; }
  .med-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 1024px) {
  .med-hero { padding: 56px 24px 60px; }
  .med-hero h1 { font-size: 40px; line-height: 1.08; margin-bottom: 16px; }
  .med-hero__sub { font-size: 14px; margin-bottom: 22px; }
  .med-hero p { text-align: left; }

  .med-solo { padding: 56px 24px 60px; }
  .med-solo__inner { grid-template-columns: 1fr; gap: 0; }
  .med-solo__inner > div { display: flex; flex-direction: column; }
  .med-solo__label { text-align: center; font-size: 13px; order: -3; margin-bottom: 12px; }
  .med-solo h2 { font-size: 32px; line-height: 1.12; text-align: center; order: -2; margin-bottom: 24px; }
  .med-solo__media { order: -1; margin-bottom: 26px; }
  .med-solo__q, .med-solo p { max-width: none; }
  .med-price { flex-direction: column; align-items: center; gap: 6px; margin: 24px 0; text-align: center; }
  .med-price__n { font-size: 38px; }
  .med-price__t { font-size: 11.5px; }
  .med-solo .btn { margin: 0 auto; }

  .med-library { padding: 56px 24px 60px; }
  .med-library__head { margin-bottom: 32px; }
  .med-library .label { font-size: 13px; }
  .med-library h2 { font-size: 34px; line-height: 1.1; margin-bottom: 16px; }
  .med-library__head p { text-align: left; }
  .med-grid { grid-template-columns: 1fr; gap: 22px; margin-bottom: 34px; }
  .med-card__body { padding: 22px 22px 26px; text-align: center; }
  .med-card h3 { font-size: 24px; }
}


/* ==========================================================================
   Live events page
   ========================================================================== */
.ev-hero {
  position: relative;
  min-height: 480px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 96px var(--gutter);
  background-image: linear-gradient(rgba(41, 39, 40, .38), rgba(41, 39, 40, .46)), url("../assets/img/about-ocean.jpg");
  background-size: cover;
  background-position: center 45%;
}
.ev-hero h1 { font-size: 58px; line-height: 1.06; letter-spacing: .03em; text-transform: uppercase; color: #fff; margin-bottom: 18px; text-shadow: 0 2px 20px rgba(41, 39, 40, .5); }
.ev-hero p { font-size: 17px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; line-height: 1.8; color: #fff; margin: 0; max-width: 620px; text-shadow: 0 2px 16px rgba(41, 39, 40, .5); }

.ev-feature { background: var(--cream); padding: 88px var(--gutter); }
.ev-feature__inner { max-width: 1080px; margin: 0 auto; }
.ev-feature__when { font-size: 19px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; text-align: center; color: var(--salmon-700); margin-bottom: 26px; }
.ev-feature__media { width: 100%; height: auto; display: block; margin-bottom: 40px; }
.ev-feature__media--mobile { display: none; }
.ev-feature__body { max-width: 720px; margin: 0 auto; text-align: center; }
.ev-feature__body p { color: var(--text-body); }
.ev-feature .btn { margin: 30px auto 0; }
.ev-feature__note { font-size: 12.5px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--text-muted); margin-top: 18px; }

.ev-dinner { background: #fff; padding: 88px var(--gutter); }
.ev-dinner__inner { max-width: 1000px; margin: 0 auto; display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: center; }
.ev-dinner__media { width: 100%; height: auto; display: block; margin-bottom: 30px; }
.ev-dinner__media--mobile { display: none; }
.ev-dinner__label { font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--salmon-700); margin-bottom: 16px; }
.ev-dinner h2 { font-size: 44px; line-height: 1.1; margin-bottom: 20px; }
.ev-dinner p { color: var(--text-body); max-width: 520px; }

.ev-form { background: var(--blush-100); padding: 44px 40px; }
.ev-form h3 { font-family: var(--font-display); font-weight: 400; font-size: 28px; line-height: 1.2; margin-bottom: 8px; }
.ev-form > p, .ev-form form p { color: var(--text-body); margin-bottom: 26px; }
.ev-form label { display: block; font-size: 11.5px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--charcoal); margin-bottom: 8px; }
.ev-form input {
  width: 100%;
  box-sizing: border-box;
  background: #fff;
  border: 1px solid rgba(41, 39, 40, .2);
  padding: 14px 16px;
  font-family: var(--font-sans);
  font-size: 15px;
  color: var(--charcoal);
  margin-bottom: 20px;
}
.ev-form button {
  width: 100%;
  font-family: var(--font-sans);
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: #fff;
  background: var(--charcoal);
  border: 1px solid var(--charcoal);
  padding: 16px 24px;
  margin-top: 6px;
  cursor: pointer;
}
.ev-form button:hover { background: transparent; color: var(--charcoal); }
.ev-form__thanks { text-align: center; padding: 24px 0; }
.ev-form__thanks div { font-family: var(--font-display); font-size: 28px; line-height: 1.2; margin-bottom: 12px; }
.ev-form__thanks p { color: var(--text-body); margin: 0; }
.ev-form.is-sent form, .ev-form:not(.is-sent) .ev-form__thanks { display: none; }

@media (min-width: 1025px) and (max-width: 1240px) {
  .ev-hero h1 { font-size: 46px; }
  .ev-dinner__inner { gap: 44px; }
  .ev-dinner h2 { font-size: 36px; }
}

@media (max-width: 1024px) {
  .ev-hero { min-height: 340px; padding: 56px 24px; }
  .ev-hero h1 { font-size: 42px; margin-bottom: 16px; }
  .ev-hero p { font-size: 14px; letter-spacing: .18em; }

  .ev-feature { padding: 56px 24px 60px; }
  .ev-feature__when { font-size: 15px; letter-spacing: .16em; line-height: 1.7; margin-bottom: 22px; }
  .ev-feature__media { display: none; }
  .ev-feature__media--mobile { display: block; width: 100%; height: auto; margin-bottom: 28px; }
  .ev-feature__body { text-align: left; }
  .ev-feature .btn { margin: 28px auto 0; }
  .ev-feature__note { font-size: 11.5px; margin-top: 16px; text-align: center; }

  .ev-dinner { padding: 56px 24px 60px; }
  .ev-dinner__inner { grid-template-columns: 1fr; gap: 30px; }
  .ev-dinner__media { display: none; }
  .ev-dinner__media--mobile { display: block; width: 100%; height: auto; margin-bottom: 28px; }
  .ev-dinner__label { font-size: 13px; text-align: center; }
  .ev-dinner h2 { font-size: 34px; line-height: 1.12; text-align: center; }
  .ev-dinner p { max-width: none; }

  .ev-form { padding: 32px 24px 34px; }
  .ev-form h3 { font-size: 26px; text-align: center; }
  .ev-form > p, .ev-form form p { text-align: center; margin-bottom: 24px; }
}


/* ==========================================================================
   Fate + Fortune event page
   ========================================================================== */
.ff-hero { padding: 96px var(--gutter) 104px; background-image: url("../assets/img/ff-gradient.png"); background-size: cover; background-position: center; }
.ff-hero__inner { max-width: 860px; margin: 0 auto; text-align: center; }
.ff-hero__label { font-size: 14px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; line-height: 1.7; color: var(--salmon-700); margin-bottom: 18px; }
.ff-hero h1 { font-size: 72px; line-height: 1.02; letter-spacing: .02em; text-transform: uppercase; margin-bottom: 22px; }
.ff-hero__when { font-size: 17px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; line-height: 1.7; color: var(--charcoal); margin-bottom: 12px; }
.ff-hero__where { font-size: 12.5px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; line-height: 1.9; color: var(--text-muted); margin-bottom: 28px; }
.ff-hero p { color: var(--text-body); }
.ff-hero .btn { margin: 30px auto 0; }
.ff-hero__note { font-size: 12.5px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--text-muted); margin-top: 16px; }

.ff-prose { padding: 88px var(--gutter); }
.ff-prose--white { background: #fff; }
.ff-prose--blush { background: var(--blush-100); }
.ff-prose--sand { background: var(--sand); }
.ff-prose--lilac { background: var(--lilac-100); }
.ff-prose--cream { background: var(--cream); }
.ff-prose--peach { background-image: url("../assets/img/gradient-2b.png"); background-size: cover; background-position: center; }
.ff-prose__inner { max-width: 820px; margin: 0 auto; }
.ff-prose h2 { font-size: 42px; line-height: 1.12; margin-bottom: 24px; text-align: center; }
.ff-prose p { color: var(--text-body); }
.ff-pull { font-family: var(--font-display); font-size: 30px; line-height: 1.28; text-align: center; color: var(--salmon-700); margin: 0 0 24px; }
.ff-bigpull { font-family: var(--font-display); font-size: 40px; line-height: 1.22; text-align: center; color: var(--charcoal); margin: 0; }

.ff-head { max-width: var(--container); margin: 0 auto 44px; text-align: center; }
.ff-head .label { display: block; font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--salmon-700); margin-bottom: 14px; }
.ff-head h2 { font-size: 44px; line-height: 1.1; text-transform: uppercase; letter-spacing: .02em; margin: 0; }

.ff-lots { max-width: 1000px; margin: 0 auto; display: grid; grid-template-columns: 1fr 1fr; }
.ff-lot { min-width: 0; padding: 28px 40px 26px 0; border-top: 1px solid var(--border-soft); border-right: 1px solid var(--border-soft); }
.ff-lot:nth-child(even) { padding: 28px 0 26px 40px; border-right: none; }
.ff-lot:nth-child(1), .ff-lot:nth-child(2) { border-top-color: var(--charcoal); }
.ff-lot h3 { font-family: var(--font-display); font-weight: 400; font-size: 28px; line-height: 1.14; margin-bottom: 8px; }
.ff-lot p { color: var(--text-body); margin: 0; }

.ff-rows { max-width: 820px; margin: 0 auto; }
.ff-row { display: grid; grid-template-columns: 22px 1fr; gap: 14px; align-items: start; padding: 18px 0; border-top: 1px solid var(--border-soft); }
.ff-row:first-of-type { border-top-color: var(--charcoal); }
.ff-row:last-of-type { border-bottom: 1px solid var(--border-soft); }
.ff-row img { width: 12px; height: 12px; margin-top: 8px; opacity: .7; }
.ff-row p { margin: 0; }

.ff-vsl { background: var(--charcoal); padding: 88px var(--gutter); }
.ff-vsl__inner { max-width: 900px; margin: 0 auto; text-align: center; }
.ff-vsl .label { display: block; font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--salmon-300); margin-bottom: 14px; }
.ff-vsl h2 { font-size: 42px; line-height: 1.1; text-transform: uppercase; letter-spacing: .02em; color: #fff; margin-bottom: 18px; }
.ff-vsl p { color: rgba(255, 255, 255, .82); max-width: 620px; margin: 0 auto 34px; }
.ff-video {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  background-image: linear-gradient(rgba(19, 26, 58, .3), rgba(19, 26, 58, .42)), url("../assets/img/event-fate-fortune.jpg");
  background-size: cover;
  background-position: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 18px;
}
.ff-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: none; }
.ff-video__play { width: 70px; height: 70px; border-radius: 50%; border: 1px solid rgba(255, 255, 255, .75); display: flex; align-items: center; justify-content: center; color: #fff; font-size: 19px; padding-left: 5px; }
.ff-video__note { font-size: 11.5px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: rgba(255, 255, 255, .82); }

.ff-venue { background: #fff; padding: 88px var(--gutter); }
.ff-venue__inner { max-width: 1080px; margin: 0 auto; }
.ff-venue__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: center; }
.ff-venue__shots { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 12px; }
.ff-venue img { width: 100%; display: block; object-fit: cover; }
.ff-venue__main { aspect-ratio: 4 / 3; }
.ff-venue__shots img { aspect-ratio: 1 / 1; }
.ff-venue p { color: var(--text-body); }
.ff-venue__addr { display: inline-block; font-size: 11.5px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--salmon-700); text-decoration: underline; text-underline-offset: 4px; margin-top: 10px; }

.ff-details { max-width: 900px; margin: 0 auto; }
.ff-detail { display: grid; grid-template-columns: 170px 1fr; gap: 32px; align-items: baseline; padding: 24px 0; border-top: 1px solid var(--border-soft); }
.ff-detail:first-of-type { border-top-color: var(--charcoal); }
.ff-detail:last-of-type { border-bottom: 1px solid var(--border-soft); }
.ff-detail__k { font-size: 12.5px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--salmon-700); }
.ff-detail p { margin: 0; }

.ff-bring { background: #fff; padding: 88px var(--gutter); }
.ff-bring__inner { max-width: 900px; margin: 0 auto; display: grid; grid-template-columns: 1fr 1fr; gap: 0; }
.ff-bring__col { min-width: 0; padding: 28px 44px 26px 0; border-top: 1px solid var(--charcoal); border-right: 1px solid var(--border-soft); }
.ff-bring__col:last-child { padding: 28px 0 26px 44px; border-right: none; }
.ff-bring__k { font-size: 12.5px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--salmon-700); margin-bottom: 12px; }
.ff-bring p { color: var(--text-body); margin: 0; }

.ff-enroll { background: var(--cream); padding: 88px var(--gutter) 96px; }
.ff-enroll__head { max-width: 820px; margin: 0 auto 44px; text-align: center; }
.ff-enroll__head .label { display: block; font-size: 14px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--salmon-700); margin-bottom: 14px; }
.ff-enroll h2 { font-size: 46px; line-height: 1.08; text-transform: uppercase; letter-spacing: .02em; margin-bottom: 18px; }
.ff-enroll__head p { color: var(--text-body); margin: 0; }
.ff-tiers { max-width: 1000px; margin: 0 auto 20px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; align-items: stretch; }
.ff-tier { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 12px; padding: 40px 30px 36px; background: #fff; border: 1px solid var(--border-soft); }
.ff-tier--feat { background: var(--charcoal); border-color: var(--charcoal); }
.ff-tier__lab { font-size: 12px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--text-muted); }
.ff-tier--feat .ff-tier__lab { color: var(--salmon-300); }
.ff-tier__price { font-family: var(--font-accent); font-weight: 600; font-size: 52px; letter-spacing: .02em; line-height: 1; color: var(--charcoal); }
.ff-tier--feat .ff-tier__price { color: #fff; }
.ff-tier__note { font-size: 11px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--salmon-300); min-height: 14px; margin-bottom: 4px; }
.ff-tier--feat .btn { color: #fff; border-color: #fff; }
.ff-tier--feat .btn:hover { background: #fff; color: var(--charcoal); }
.ff-enroll__note { font-size: 12.5px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; text-align: center; color: var(--text-muted); }

@media (min-width: 1025px) and (max-width: 1240px) {
  .ff-hero h1 { font-size: 54px; }
  .ff-prose h2, .ff-head h2, .ff-enroll h2, .ff-vsl h2 { font-size: 34px; }
  .ff-bigpull { font-size: 32px; }
  .ff-venue__grid { gap: 36px; }
  .ff-detail { grid-template-columns: 140px 1fr; gap: 22px; }
}

@media (max-width: 1024px) {
  .ff-hero { padding: 60px 24px 66px; }
  .ff-hero__label { font-size: 13px; margin-bottom: 18px; }
  .ff-hero h1 { font-size: 50px; }
  .ff-hero__when { font-size: 15px; }
  .ff-hero__where { font-size: 11.5px; margin-bottom: 26px; }
  .ff-hero p { text-align: left; }
  .ff-hero .btn { margin-top: 30px; }
  .ff-hero__note { font-size: 11.5px; }

  .ff-prose { padding: 56px 24px 60px; }
  .ff-prose h2 { font-size: 32px; line-height: 1.14; }
  .ff-pull { font-size: 26px; }
  .ff-bigpull { font-size: 30px; line-height: 1.24; }

  .ff-head { margin-bottom: 24px; }
  .ff-head .label { font-size: 13px; }
  .ff-head h2 { font-size: 34px; line-height: 1.12; }

  .ff-lots { grid-template-columns: 1fr; }
  .ff-lot, .ff-lot:nth-child(even) { padding: 22px 0; text-align: center; border-right: none; border-top: 1px solid var(--border-soft); }
  .ff-lot:first-child { border-top-color: var(--charcoal); }
  .ff-lot:last-child { border-bottom: 1px solid var(--border-soft); }
  .ff-lot h3 { font-size: 26px; }

  .ff-row { grid-template-columns: 20px 1fr; gap: 12px; }

  .ff-vsl { padding: 56px 24px 60px; }
  .ff-vsl .label { font-size: 13px; }
  .ff-vsl h2 { font-size: 32px; line-height: 1.12; }
  .ff-vsl p { margin-bottom: 26px; }
  .ff-video { gap: 14px; }
  .ff-video__play { width: 58px; height: 58px; font-size: 16px; }
  .ff-video__note { font-size: 11px; }

  .ff-venue { padding: 56px 24px 60px; }
  .ff-venue__grid { grid-template-columns: 1fr; gap: 28px; }
  .ff-venue__media { order: -1; }
  .ff-venue__addr { display: block; text-align: center; margin-top: 22px; }

  .ff-detail { grid-template-columns: 1fr; gap: 10px; padding: 22px 0; text-align: center; }
  .ff-detail__k { font-size: 12px; }

  .ff-bring { padding: 56px 24px 60px; }
  .ff-bring__inner { grid-template-columns: 1fr; }
  .ff-bring__col, .ff-bring__col:last-child { padding: 24px 0; text-align: center; border-right: none; border-top: 1px solid var(--border-soft); }
  .ff-bring__col:first-child { border-top-color: var(--charcoal); }
  .ff-bring__col:last-child { border-bottom: 1px solid var(--border-soft); }

  .ff-enroll { padding: 56px 24px 64px; }
  .ff-enroll__head { margin-bottom: 30px; }
  .ff-enroll__head .label { font-size: 13px; }
  .ff-enroll h2 { font-size: 36px; line-height: 1.08; }
  .ff-tiers { grid-template-columns: 1fr; gap: 16px; }
  .ff-tier { padding: 32px 24px 30px; gap: 11px; }
  .ff-tier__price { font-size: 46px; }
  .ff-enroll__note { font-size: 11.5px; }
}


/* ==========================================================================
   Teas collection page
   ========================================================================== */
.tea-hero { background: var(--cream); padding: 88px var(--gutter) 96px; }
.tea-hero__inner { max-width: 820px; margin: 0 auto; text-align: center; }
.tea-hero .label { display: block; font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--salmon-700); margin-bottom: 16px; }
.tea-hero h1 { font-size: 62px; line-height: 1.04; letter-spacing: .03em; text-transform: uppercase; margin-bottom: 24px; }
.tea-hero p { color: var(--text-body); }

.tea-product { background: #fff; padding: 88px var(--gutter); }
.tea-product__inner { max-width: 1080px; margin: 0 auto; display: grid; grid-template-columns: 440px 1fr; gap: 72px; align-items: center; }
.tea-product__media img { width: 100%; height: auto; display: block; }
.tea-product .label { display: block; font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--salmon-700); margin-bottom: 16px; }
.tea-product h2 { font-size: 48px; line-height: 1.08; margin-bottom: 18px; }
.tea-product__kicker { font-size: 15px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; line-height: 1.8; color: var(--charcoal); margin-bottom: 22px; }
.tea-product p { color: var(--text-body); max-width: 540px; }
.tea-price { display: flex; align-items: baseline; gap: 18px; margin: 26px 0; }
.tea-price__amt { font-family: var(--font-accent); font-weight: 600; font-size: 40px; letter-spacing: .02em; line-height: 1; }
.tea-price__terms { font-size: 12.5px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--text-muted); }

.tea-benefits { background: var(--lilac-100); padding: 88px var(--gutter); }
.tea-benefits__head { max-width: var(--container); margin: 0 auto 44px; text-align: center; }
.tea-benefits .label { display: block; font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--salmon-700); margin-bottom: 14px; }
.tea-benefits h2 { font-size: 44px; line-height: 1.1; text-transform: uppercase; letter-spacing: .02em; margin: 0; }
.tea-benefits__grid { max-width: 1000px; margin: 0 auto; display: grid; grid-template-columns: 1fr 1fr; }
.tea-benefit { min-width: 0; padding: 28px 40px 26px 0; border-top: 1px solid var(--border-soft); border-right: 1px solid var(--border-soft); }
.tea-benefit:nth-child(even) { padding: 28px 0 26px 40px; border-right: none; }
.tea-benefit:nth-child(1), .tea-benefit:nth-child(2) { border-top-color: var(--charcoal); }
.tea-benefit h3 { font-family: var(--font-display); font-weight: 400; font-size: 28px; line-height: 1.14; margin-bottom: 8px; }
.tea-benefit p { color: var(--text-body); margin: 0; }

.tea-quote { background: var(--blush); padding: 72px var(--gutter); }
.tea-quote__inner { max-width: 760px; margin: 0 auto; text-align: center; }
.tea-quote img { width: 32px; height: auto; display: block; margin: 0 auto 22px; opacity: .8; }
.tea-quote p { font-size: 24px; font-style: italic; line-height: 1.6; color: var(--charcoal); margin: 0 0 16px; }
.tea-quote__by { font-size: 11.5px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--text-muted); }

.tea-brew { padding: 88px var(--gutter); background-image: url("../assets/img/gradient-2b.png"); background-size: cover; background-position: center; }
.tea-brew h2 { font-size: 44px; line-height: 1.1; text-transform: uppercase; letter-spacing: .02em; text-align: center; max-width: var(--container); margin: 0 auto 40px; }
.tea-brew__grid { max-width: 1000px; margin: 0 auto; display: grid; grid-template-columns: repeat(3, 1fr); }
.tea-step { display: flex; flex-direction: column; gap: 12px; min-width: 0; padding: 32px 32px 28px; border-top: 1px solid var(--charcoal); border-right: 1px solid var(--border-soft); }
.tea-step:first-child { padding-left: 0; }
.tea-step:last-child { padding-right: 0; border-right: none; }
.tea-step__n { font-family: var(--font-accent); font-weight: 600; font-size: 18px; letter-spacing: .2em; text-transform: uppercase; color: var(--salmon-700); }
.tea-step h3 { font-family: var(--font-display); font-weight: 400; font-size: 28px; line-height: 1.12; }
.tea-step p { color: var(--text-body); margin: 0; }

.tea-more { background: var(--sand); padding: 80px var(--gutter); }
.tea-more__inner { max-width: 760px; margin: 0 auto; text-align: center; }
.tea-more .label { display: block; font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--salmon-700); margin-bottom: 16px; }
.tea-more h2 { font-size: 40px; line-height: 1.14; margin-bottom: 20px; }
.tea-more p { color: var(--text-body); }
.tea-form { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; max-width: 600px; margin: 30px auto 0; }
.tea-form input { flex-grow: 1; min-width: 150px; font-family: var(--font-sans); font-size: 14px; color: var(--charcoal); background: #fff; border: 1px solid rgba(41, 39, 40, .28); padding: 14px 16px; outline: none; }
.tea-form button {
  white-space: nowrap;
  font-family: var(--font-sans);
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: #fff;
  background: var(--charcoal);
  border: 1px solid var(--charcoal);
  padding: 15px 26px;
  cursor: pointer;
}
.tea-form button:hover { background: transparent; color: var(--charcoal); }

@media (min-width: 1025px) and (max-width: 1240px) {
  .tea-hero h1 { font-size: 48px; }
  .tea-product__inner { grid-template-columns: 340px 1fr; gap: 48px; }
  .tea-product h2 { font-size: 38px; }
  .tea-benefits h2, .tea-brew h2 { font-size: 34px; }
}

@media (max-width: 1024px) {
  .tea-hero { padding: 56px 24px 60px; }
  .tea-hero .label { font-size: 13px; }
  .tea-hero h1 { font-size: 46px; margin-bottom: 20px; }

  .tea-product { padding: 56px 24px 60px; }
  .tea-product__inner { grid-template-columns: 1fr; gap: 28px; }
  .tea-product .label { font-size: 13px; text-align: center; }
  .tea-product h2 { font-size: 38px; text-align: center; margin-bottom: 14px; }
  .tea-product__kicker { font-size: 13px; text-align: center; margin-bottom: 20px; }
  .tea-product p { max-width: none; }
  .tea-price { flex-direction: column; gap: 6px; align-items: center; text-align: center; margin: 24px 0; }
  .tea-price__amt { font-size: 38px; }
  .tea-price__terms { font-size: 11.5px; }
  .tea-product .btn { margin: 0 auto; }

  .tea-benefits { padding: 56px 24px 60px; }
  .tea-benefits__head { margin-bottom: 24px; }
  .tea-benefits .label { font-size: 13px; }
  .tea-benefits h2 { font-size: 34px; }
  .tea-benefits__grid { grid-template-columns: 1fr; }
  .tea-benefit, .tea-benefit:nth-child(even) { padding: 22px 0; text-align: center; border-right: none; border-top: 1px solid var(--border-soft); }
  .tea-benefit:first-child { border-top-color: var(--charcoal); }
  .tea-benefit:last-child { border-bottom: 1px solid var(--border-soft); }
  .tea-benefit h3 { font-size: 25px; }

  .tea-quote { padding: 52px 24px 56px; }
  .tea-quote img { width: 28px; margin-bottom: 20px; }
  .tea-quote p { font-size: 19px; }

  .tea-brew { padding: 56px 24px 60px; }
  .tea-brew h2 { font-size: 34px; margin-bottom: 24px; }
  .tea-brew__grid { grid-template-columns: 1fr; }
  .tea-step, .tea-step:first-child, .tea-step:last-child { padding: 24px 0; gap: 8px; text-align: center; border-right: none; border-top: 1px solid var(--border-soft); }
  .tea-step:first-child { border-top-color: var(--charcoal); }
  .tea-step:last-child { border-bottom: 1px solid var(--border-soft); }
  .tea-step__n { font-size: 16px; }
  .tea-step h3 { font-size: 25px; }

  .tea-more { padding: 56px 24px 60px; }
  .tea-more .label { font-size: 13px; }
  .tea-more h2 { font-size: 32px; margin-bottom: 18px; }
  .tea-form { flex-direction: column; margin-top: 26px; }
  .tea-form input { min-width: 0; font-size: 15px; }
  .tea-form button { padding: 16px 26px; }
}


/* ==========================================================================
   Soaps page
   ========================================================================== */
.soap-hero { background: var(--blush); padding: 88px var(--gutter) 96px; }
.soap-hero__inner { max-width: 820px; margin: 0 auto; text-align: center; }
.soap-hero .label { display: block; font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--salmon-700); margin-bottom: 16px; }
.soap-hero h1 { font-size: 58px; line-height: 1.06; letter-spacing: .02em; text-transform: uppercase; margin-bottom: 22px; }
.soap-hero p { color: var(--text-body); margin: 0; }

.soap { padding: 88px var(--gutter); }
.soap--white { background: #fff; }
.soap--cream { background: var(--cream); }
.soap__inner { max-width: 1080px; margin: 0 auto; display: grid; grid-template-columns: 420px 1fr; gap: 72px; align-items: center; }
.soap__inner--flip { grid-template-columns: 1fr 420px; }
.soap__media { padding: 40px; display: flex; align-items: center; justify-content: center; }
.soap__media--lilac { background: #eff0fa; }
.soap__media--white { background: #f4f4f2; }
.soap__media img { width: 100%; max-width: 340px; height: auto; display: block; }
.soap h2 { font-size: 44px; line-height: 1.1; text-transform: uppercase; letter-spacing: .02em; margin-bottom: 14px; }
.soap__purpose { font-size: 14px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; line-height: 1.8; color: var(--salmon-700); margin-bottom: 22px; }
.soap p { color: var(--text-body); max-width: 540px; }
.soap__oils { border-top: 1px solid var(--border-soft); padding-top: 20px; margin: 26px 0; max-width: 540px; }
.soap__oils-label { font-size: 11.5px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--text-muted); margin-bottom: 8px; }
.soap__oils p { margin: 0; }
.soap__review { display: flex; gap: 16px; align-items: flex-start; max-width: 540px; margin-bottom: 26px; }
.soap__review img { width: 24px; height: auto; margin-top: 5px; opacity: .75; flex-shrink: 0; }
.soap__review p { font-size: 18px; font-style: italic; line-height: 1.6; color: var(--charcoal); margin: 0 0 8px; }
.soap__by { font-size: 11.5px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--text-muted); }
.soap__buy { display: flex; align-items: center; gap: 24px; flex-wrap: wrap; }
.soap__price { font-family: var(--font-accent); font-weight: 600; font-size: 40px; letter-spacing: .04em; line-height: 1; }

.soap-base { background: var(--sand); padding: 88px var(--gutter); }
.soap-base__inner { max-width: 1000px; margin: 0 auto; }
.soap-base__head { text-align: center; margin-bottom: 40px; }
.soap-base .label { display: block; font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--salmon-700); margin-bottom: 14px; }
.soap-base h2 { font-size: 44px; line-height: 1.1; text-transform: uppercase; letter-spacing: .02em; margin-bottom: 18px; }
.soap-base__head p { color: var(--text-body); max-width: 660px; margin: 0 auto; }
.soap-chips { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-bottom: 34px; }
.soap-chip { font-size: 12.5px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--charcoal); border: 1px solid rgba(41, 39, 40, .3); padding: 11px 18px; }
.soap-base__note { color: var(--text-body); max-width: 660px; margin: 0 auto; text-align: center; font-style: italic; }

.soap-close { background: linear-gradient(160deg, var(--lilac-100) 0%, #eff0fa 52%, var(--cream) 100%); padding: 88px var(--gutter); }
.soap-close__inner { max-width: 760px; margin: 0 auto; text-align: center; }
.soap-close h2 { font-size: 44px; line-height: 1.1; text-transform: uppercase; letter-spacing: .02em; margin-bottom: 32px; }
.soap-close .btn { margin: 0 auto; }

@media (min-width: 1025px) and (max-width: 1240px) {
  .soap-hero h1 { font-size: 46px; }
  .soap__inner { grid-template-columns: 340px 1fr; gap: 48px; }
  .soap__inner--flip { grid-template-columns: 1fr 340px; }
  .soap h2, .soap-base h2, .soap-close h2 { font-size: 36px; }
}

@media (max-width: 1024px) {
  .soap-hero { padding: 56px 24px 60px; }
  .soap-hero .label { font-size: 13px; letter-spacing: .2em; margin-bottom: 14px; }
  .soap-hero h1 { font-size: 42px; margin-bottom: 20px; }

  .soap { padding: 56px 24px 60px; }
  .soap__inner, .soap__inner--flip { grid-template-columns: 1fr; gap: 0; }
  .soap__inner > div:last-child { display: flex; flex-direction: column; }
  .soap__media { order: -1; padding: 28px; margin-bottom: 28px; }
  .soap__media img { max-width: 260px; }
  .soap h2 { font-size: 34px; text-align: center; }
  .soap__purpose { font-size: 13px; letter-spacing: .16em; text-align: center; }
  .soap p { max-width: none; }
  .soap__oils { max-width: none; margin: 24px 0; text-align: center; }
  .soap__review { flex-direction: column; align-items: center; text-align: center; max-width: none; gap: 0; }
  .soap__review img { width: 24px; margin: 0 auto 14px; }
  .soap__buy { flex-direction: column; align-items: center; gap: 18px; }
  .soap__price { font-size: 38px; }

  .soap-base { padding: 56px 24px 60px; }
  .soap-base__head { margin-bottom: 28px; }
  .soap-base .label { font-size: 13px; letter-spacing: .2em; margin-bottom: 12px; }
  .soap-base h2 { font-size: 34px; margin-bottom: 16px; }
  .soap-chips { gap: 9px; margin-bottom: 26px; }
  .soap-chip { font-size: 11.5px; padding: 10px 15px; }

  .soap-close { padding: 56px 24px 60px; }
  .soap-close h2 { font-size: 34px; margin-bottom: 30px; }
}


/* ==========================================================================
   Bookmarks page
   ========================================================================== */
.bm-hero { background: var(--blush); padding: 88px var(--gutter) 96px; }
.bm-hero__inner { max-width: 820px; margin: 0 auto; text-align: center; }
.bm-hero .label { display: block; font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--salmon-700); margin-bottom: 14px; }
.bm-hero h1 { font-size: 56px; line-height: 1.04; letter-spacing: .02em; text-transform: uppercase; margin-bottom: 22px; }
.bm-hero p { color: var(--text-body); }

.bm-set { padding: 88px var(--gutter); }
.bm-set--white { background: #fff; }
.bm-set--cream { background: var(--cream); }
.bm-set--sand { background: var(--sand); }
.bm-set__inner { max-width: 1080px; margin: 0 auto; display: grid; grid-template-columns: 1fr 1fr; gap: 72px; align-items: center; }
.bm-set__label { font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--salmon-700); margin-bottom: 16px; }
.bm-set h2 { font-size: 44px; line-height: 1.1; text-transform: uppercase; letter-spacing: .02em; margin-bottom: 20px; }
.bm-set p { color: var(--text-body); max-width: 520px; }
.bm-trio { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.bm-trio img { width: 100%; aspect-ratio: 340 / 1080; object-fit: cover; display: block; }
.bm-rows { border-top: 1px solid var(--charcoal); margin-bottom: 22px; }
.bm-row { display: flex; justify-content: space-between; align-items: baseline; gap: 20px; padding: 14px 0; border-bottom: 1px solid var(--border-soft); }
.bm-row:last-child { border-bottom: none; }
.bm-row__name { font-family: var(--font-display); font-size: 22px; line-height: 1.2; }
.bm-row__energy { font-size: 11.5px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--text-muted); text-align: right; }
.bm-row--stack { display: block; }
.bm-row--stack .bm-row__name { margin-bottom: 4px; }
.bm-row--stack p { margin: 0; max-width: none; }
.bm-limit { font-size: 12.5px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--salmon-700); margin-bottom: 24px; }
.bm-buy { display: flex; align-items: center; gap: 26px; }
.bm-buy__price { font-family: var(--font-accent); font-weight: 600; font-size: 40px; letter-spacing: .04em; line-height: 1; }

.bm-sides { background: var(--blush-100); padding: 88px var(--gutter); }
.bm-sides__head { max-width: 1000px; margin: 0 auto 40px; text-align: center; }
.bm-sides h2 { font-size: 42px; line-height: 1.1; text-transform: uppercase; letter-spacing: .02em; margin-bottom: 12px; }
.bm-sides__head p { color: var(--text-body); max-width: 560px; margin: 0 auto; }
.bm-sides__grid { max-width: 820px; margin: 0 auto; display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.bm-sides__grid img { height: 340px; width: auto; max-width: 100%; object-fit: contain; display: block; margin: 0 auto; }

.bm-quote { background: var(--lilac-100); padding: 76px var(--gutter); }
.bm-quote__inner { max-width: 820px; margin: 0 auto; text-align: center; }
.bm-quote img { width: 30px; height: auto; display: block; margin: 0 auto 20px; opacity: .75; }
.bm-quote p { font-size: 24px; font-style: italic; line-height: 1.6; color: var(--charcoal); margin: 0 0 14px; }
.bm-quote__by { font-size: 11.5px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--text-muted); }

.bm-singles { background: #fff; padding: 88px var(--gutter); }
.bm-singles__head { max-width: var(--container); margin: 0 auto 48px; text-align: center; }
.bm-singles h2 { font-size: 46px; line-height: 1.08; text-transform: uppercase; letter-spacing: .02em; margin-bottom: 12px; }
.bm-singles__head p { color: var(--text-body); max-width: 560px; margin: 0 auto; }
.bm-singles__grid { max-width: 1120px; margin: 0 auto; display: grid; grid-template-columns: repeat(3, 1fr); gap: 36px 32px; }
.bm-card { display: flex; flex-direction: column; gap: 16px; min-width: 0; text-decoration: none; }
.bm-card:hover { opacity: .86; }
.bm-card img { height: 340px; width: auto; max-width: 100%; object-fit: contain; display: block; margin: 0 auto; }
.bm-card__coll { font-size: 11px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--text-muted); margin-bottom: 8px; }
.bm-card__name { font-family: var(--font-display); font-size: 24px; line-height: 1.14; margin-bottom: 6px; }
.bm-card p { color: var(--text-body); margin: 0; max-width: none; }
.bm-card__buy { display: flex; align-items: center; gap: 18px; margin-top: 4px; }
.bm-card__price { font-family: var(--font-accent); font-weight: 600; font-size: 24px; letter-spacing: .04em; }
.bm-card__cta { font-size: 11px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--charcoal); border-bottom: 1px solid var(--charcoal); padding-bottom: 3px; }

.bm-bundle__media img { width: 100%; height: auto; display: block; }

.bm-paper { background: #fff; padding: 76px var(--gutter); }
.bm-paper__inner { max-width: 760px; margin: 0 auto; text-align: center; }
.bm-paper h2 { font-size: 38px; line-height: 1.12; text-transform: uppercase; letter-spacing: .02em; margin-bottom: 20px; }
.bm-paper p { color: var(--text-body); }
.bm-paper p:last-child { font-style: italic; margin: 0; }

.bm-close { background: linear-gradient(160deg, var(--lilac-100) 0%, #eff0fa 52%, var(--cream) 100%); padding: 88px var(--gutter); }
.bm-close__inner { max-width: 720px; margin: 0 auto; text-align: center; }
.bm-close h2 { font-size: 44px; line-height: 1.1; text-transform: uppercase; letter-spacing: .02em; margin-bottom: 32px; }
.bm-close .btn { margin: 0 auto; }

@media (min-width: 1025px) and (max-width: 1240px) {
  .bm-hero h1 { font-size: 44px; }
  .bm-set__inner { gap: 44px; }
  .bm-set h2, .bm-singles h2, .bm-close h2 { font-size: 34px; }
  .bm-singles__grid { gap: 32px 24px; }
}

@media (max-width: 1024px) {
  .bm-hero { padding: 52px 24px 56px; }
  .bm-hero .label { font-size: 13px; }
  .bm-hero h1 { font-size: 40px; margin-bottom: 20px; }

  .bm-set { padding: 56px 24px 60px; }
  .bm-set__inner { grid-template-columns: 1fr; gap: 26px; }
  .bm-set__label { font-size: 13px; text-align: center; }
  .bm-set h2 { font-size: 34px; text-align: center; }
  .bm-set p { max-width: none; text-align: center; }
  .bm-trio { gap: 12px; }
  .bm-row, .bm-row--stack { text-align: center; display: block; }
  .bm-row__energy { text-align: center; }
  .bm-limit { text-align: center; margin-bottom: 22px; }
  .bm-buy { flex-direction: column; gap: 18px; }
  .bm-buy__price { font-size: 38px; }
  .bm-bundle__media { order: -1; }

  .bm-sides { padding: 56px 24px 60px; }
  .bm-sides__head { margin-bottom: 26px; }
  .bm-sides h2 { font-size: 32px; line-height: 1.12; }
  .bm-sides__grid { grid-template-columns: repeat(3, 1fr); gap: 12px; }
  .bm-sides__grid img { height: auto; width: 100%; aspect-ratio: 340 / 1080; object-fit: cover; }

  .bm-quote { padding: 52px 24px 56px; }
  .bm-quote img { width: 26px; margin-bottom: 18px; }
  .bm-quote p { font-size: 19px; }

  .bm-singles { padding: 56px 24px 60px; }
  .bm-singles__head { margin-bottom: 30px; }
  .bm-singles h2 { font-size: 34px; }
  .bm-singles__grid { grid-template-columns: 1fr 1fr; gap: 34px 20px; }
  .bm-card { text-align: center; }
  .bm-card img { height: 300px; }
  .bm-card__buy { flex-direction: column; align-items: center; gap: 10px; }

  .bm-paper { padding: 52px 24px 56px; }
  .bm-paper h2 { font-size: 30px; margin-bottom: 18px; }

  .bm-close { padding: 56px 24px 60px; }
  .bm-close h2 { font-size: 34px; margin-bottom: 28px; }
}


/* ==========================================================================
   Calendars page
   ========================================================================== */
.cal-hero { background: var(--lilac-100); padding: 72px var(--gutter) 80px; }
.cal-hero__inner { max-width: 1080px; margin: 0 auto; display: grid; grid-template-columns: 1fr 460px; gap: 72px; align-items: center; }
.cal-hero .label { display: block; font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--salmon-700); margin-bottom: 16px; }
.cal-hero h1 { font-size: 54px; line-height: 1.06; letter-spacing: .02em; text-transform: uppercase; margin-bottom: 20px; }
.cal-hero p { color: var(--text-body); max-width: 520px; }
.cal-price { display: flex; align-items: baseline; gap: 18px; margin: 28px 0 26px; }
.cal-price__n { font-family: var(--font-accent); font-weight: 600; font-size: 44px; letter-spacing: .02em; line-height: 1; }
.cal-price__note { font-size: 12.5px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--text-muted); }
.cal-hero img { width: 100%; height: auto; display: block; }

.cal-sides { background: #fff; padding: 88px var(--gutter); }
.cal-sides__inner { max-width: 1080px; margin: 0 auto; }
.cal-side { display: grid; grid-template-columns: 1fr 420px; gap: 64px; align-items: center; }
.cal-side + .cal-side { grid-template-columns: 420px 1fr; margin-top: 64px; }
.cal-side img { width: 100%; height: auto; display: block; }
.cal-side .label { display: block; font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--salmon-700); margin-bottom: 14px; }
.cal-side h3 { font-family: var(--font-display); font-weight: 400; font-size: 36px; line-height: 1.14; margin-bottom: 18px; }
.cal-side p { color: var(--text-body); max-width: 480px; margin: 0; }

.cal-details { background: var(--cream); padding: 72px var(--gutter); }
.cal-details__inner { max-width: 900px; margin: 0 auto; text-align: center; }
.cal-details h2 { font-size: 38px; line-height: 1.12; text-transform: uppercase; letter-spacing: .02em; margin-bottom: 30px; }
.cal-chips { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-bottom: 28px; }
.cal-chip { font-size: 12.5px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--charcoal); border: 1px solid rgba(41, 39, 40, .3); padding: 11px 18px; }
.cal-details p { color: var(--text-body); margin: 0; }

.cal-bundle { background: var(--blush); padding: 88px var(--gutter); }
.cal-bundle__inner { max-width: 1080px; margin: 0 auto; display: grid; grid-template-columns: 460px 1fr; gap: 72px; align-items: center; }
.cal-bundle img { width: 100%; height: auto; display: block; }
.cal-bundle .label { display: block; font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--salmon-700); margin-bottom: 16px; }
.cal-bundle h2 { font-size: 44px; line-height: 1.1; margin-bottom: 20px; }
.cal-bundle p { color: var(--text-body); max-width: 520px; }

.cal-note { background: #fff; padding: 64px var(--gutter) 72px; }
.cal-note p { max-width: 760px; margin: 0 auto; text-align: center; font-size: 14.5px; line-height: 1.7; font-style: italic; color: var(--text-muted); }

@media (min-width: 1025px) and (max-width: 1240px) {
  .cal-hero__inner { grid-template-columns: 1fr 360px; gap: 48px; }
  .cal-hero h1 { font-size: 42px; }
  .cal-side { grid-template-columns: 1fr 340px; gap: 44px; }
  .cal-side + .cal-side { grid-template-columns: 340px 1fr; }
  .cal-bundle__inner { grid-template-columns: 360px 1fr; gap: 48px; }
  .cal-bundle h2 { font-size: 36px; }
}

@media (max-width: 1024px) {
  .cal-hero { padding: 44px 24px 52px; }
  .cal-hero__inner { grid-template-columns: 1fr; gap: 0; }
  .cal-hero__inner > div { display: flex; flex-direction: column; }
  .cal-hero .label { text-align: center; font-size: 13px; }
  .cal-hero h1 { font-size: 38px; text-align: center; margin-bottom: 24px; }
  .cal-hero img { order: -1; margin-bottom: 26px; }
  .cal-hero p { max-width: none; }
  .cal-price { flex-direction: column; align-items: center; gap: 8px; margin: 0 0 24px; text-align: center; }
  .cal-price__n { font-size: 40px; }
  .cal-price__note { font-size: 11.5px; line-height: 1.7; }
  .cal-hero .btn { margin: 0 auto; }

  .cal-sides { padding: 52px 24px 56px; }
  .cal-side, .cal-side + .cal-side { grid-template-columns: 1fr; gap: 0; }
  .cal-side + .cal-side { margin-top: 44px; }
  .cal-side img { margin-bottom: 22px; }
  .cal-side > div { display: flex; flex-direction: column; }
  .cal-side .label { text-align: center; font-size: 13px; }
  .cal-side h3 { font-size: 30px; text-align: center; margin-bottom: 16px; }
  .cal-side p { max-width: none; }
  .cal-side + .cal-side img { order: -1; }

  .cal-details { padding: 52px 24px 56px; }
  .cal-details h2 { font-size: 30px; margin-bottom: 24px; }
  .cal-chips { gap: 9px; margin-bottom: 22px; }
  .cal-chip { font-size: 11.5px; padding: 10px 15px; }

  .cal-bundle { padding: 52px 24px 56px; }
  .cal-bundle__inner { grid-template-columns: 1fr; gap: 0; }
  .cal-bundle__inner > div { display: flex; flex-direction: column; }
  .cal-bundle img { margin-bottom: 26px; }
  .cal-bundle .label { text-align: center; font-size: 13px; }
  .cal-bundle h2 { font-size: 32px; text-align: center; margin-bottom: 18px; }
  .cal-bundle p { max-width: none; }
  .cal-bundle .btn { margin: 0 auto; }

  .cal-note { padding: 44px 24px 52px; }
  .cal-note p { font-size: 14px; }
}


/* ==========================================================================
   Books page
   ========================================================================== */
.bks-hero { background: var(--blush); padding: 72px var(--gutter) 80px; }
.bks-hero__inner { max-width: 820px; margin: 0 auto; text-align: center; }
.bks-hero .label { display: block; font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--salmon-700); margin-bottom: 16px; }
.bks-hero h1 { font-size: 56px; line-height: 1.04; letter-spacing: .02em; text-transform: uppercase; margin: 0; }

.bks { background: #fff; padding: 88px var(--gutter); }
.bks__inner { max-width: 1080px; margin: 0 auto; }
.bks-item { display: grid; grid-template-columns: 340px 1fr; gap: 72px; align-items: center; }
.bks-item + .bks-item { margin-top: 104px; }
.bks-item--flip { grid-template-columns: 1fr 340px; }
.bks-item__cover { display: block; }
.bks-item__cover:hover { opacity: .92; }
.bks-item__cover img { width: 100%; height: auto; display: block; }
.bks-item h2 { font-size: 42px; line-height: 1.1; text-transform: uppercase; letter-spacing: .02em; margin-bottom: 18px; }
.bks-item__eyebrow { font-size: 14px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--salmon-700); margin: -8px 0 18px; }
.bks-item p { color: var(--text-body); max-width: 520px; }
.bks-item__links { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 26px; }
.bks-item__links .btn { flex: 0 0 auto; white-space: nowrap; }
.bks-item__quote { margin-top: 28px; padding-top: 24px; border-top: 1px solid var(--border-soft); max-width: 520px; }
.bks-item__quote p { font-size: 17px; font-style: italic; line-height: 1.6; color: var(--charcoal); margin: 0 0 12px; }
.bks-item__by { font-size: 11.5px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--text-muted); }

.bks-next { background: var(--cream); padding: 88px var(--gutter); }
.bks-next__head { max-width: 1120px; margin: 0 auto 48px; text-align: center; }
.bks-next__head .label { display: block; font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--salmon-700); margin-bottom: 14px; }
.bks-next__head h2 { font-size: 46px; line-height: 1.08; text-transform: uppercase; letter-spacing: .02em; margin-bottom: 12px; }
.bks-next__head p { color: var(--text-body); max-width: 620px; margin: 0 auto; }
.bks-next__grid { max-width: 1000px; margin: 0 auto; display: grid; grid-template-columns: 1fr 1fr; gap: 24px; align-items: stretch; }
.wait-card { background: #fff; padding: 44px 40px; display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.wait-card__label { font-size: 12.5px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--salmon-700); }
.wait-card h3 { font-family: var(--font-display); font-weight: 400; font-size: 34px; line-height: 1.12; margin: 0; }
.wait-form { display: flex; flex-direction: column; gap: 10px; margin-top: 4px; }
.wait-form input { font-family: var(--font-sans); font-size: 15px; color: var(--charcoal); background: var(--cream); border: 1px solid rgba(41, 39, 40, .18); padding: 14px 16px; width: 100%; box-sizing: border-box; }
.wait-form button { font-family: var(--font-sans); font-size: 11.5px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: #fff; background: var(--charcoal); border: 1px solid var(--charcoal); padding: 15px 20px; cursor: pointer; width: 100%; }
.wait-form button:hover { background: transparent; color: var(--charcoal); }
.wait-note { font-size: 14px; line-height: 1.6; text-align: center; color: var(--salmon-700); }
.wait-note[hidden] { display: none; }

@media (min-width: 1025px) and (max-width: 1240px) {
  .bks-hero h1 { font-size: 44px; }
  .bks-item, .bks-item--flip { gap: 44px; }
  .bks-item h2 { font-size: 34px; }
  .bks-next__head h2 { font-size: 36px; }
}

@media (max-width: 1024px) {
  .bks-hero { padding: 52px 24px 56px; }
  .bks-hero .label { font-size: 13px; letter-spacing: .2em; margin-bottom: 14px; }
  .bks-hero h1 { font-size: 38px; }

  .bks { padding: 56px 24px 60px; }
  .bks-item, .bks-item--flip { grid-template-columns: 1fr; gap: 0; }
  .bks-item + .bks-item { margin-top: 56px; padding-top: 56px; border-top: 1px solid var(--border-soft); }
  .bks-item__cover { max-width: 230px; margin: 0 auto 26px; order: -1; }
  .bks-item h2 { font-size: 32px; text-align: center; margin-bottom: 18px; }
  .bks-item__eyebrow { font-size: 12.5px; text-align: center; margin: -6px 0 20px; }
  .bks-item p { max-width: none; }
  .bks-item__links { flex-direction: column; gap: 10px; margin-top: 24px; }
  .bks-item__links .btn { width: 100%; box-sizing: border-box; justify-content: center; padding: 15px 20px; }
  .bks-item__quote { margin-top: 26px; padding-top: 22px; max-width: none; text-align: center; }
  .bks-item__quote p { font-size: 16px; }

  .bks-next { padding: 56px 24px 60px; }
  .bks-next__head { margin-bottom: 28px; }
  .bks-next__head .label { font-size: 13px; }
  .bks-next__head h2 { font-size: 34px; line-height: 1.1; }
  .bks-next__grid { grid-template-columns: 1fr; gap: 16px; }
  .wait-card { padding: 34px 24px 30px; gap: 14px; text-align: center; }
  .wait-card h3 { font-size: 30px; }
}


/* ==========================================================================
   Products page
   ========================================================================== */
.prod-hero { background: var(--cream); padding: 72px var(--gutter) 80px; }
.prod-hero__inner { max-width: 820px; margin: 0 auto; text-align: center; }
.prod-hero .label { display: block; font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--salmon-700); margin-bottom: 16px; }
.prod-hero h1 { font-size: 56px; line-height: 1.04; letter-spacing: .02em; text-transform: uppercase; margin-bottom: 22px; }
.prod-hero p { color: var(--text-body); margin: 0; }

.prod-cats { background: #fff; padding: 88px var(--gutter); }
.prod-cats__grid { max-width: 1180px; margin: 0 auto; display: grid; grid-template-columns: repeat(3, 1fr); }
.prod-cat {
  display: flex;
  flex-direction: column;
  min-width: 0;
  text-decoration: none;
  border-top: 1px solid var(--border-soft);
  border-right: 1px solid var(--border-soft);
  padding: 34px 34px 36px 0;
}
.prod-cat:nth-child(1), .prod-cat:nth-child(2), .prod-cat:nth-child(3) { border-top-color: var(--charcoal); }
.prod-cat:nth-child(3n) { border-right: none; padding: 34px 0 36px 34px; }
.prod-cat:nth-child(3n+2) { padding: 34px 34px 36px; }
.prod-cat:hover { background: var(--cream); }
.prod-cat h2 { font-size: 34px; line-height: 1.1; text-transform: uppercase; letter-spacing: .02em; margin-bottom: 12px; }
.prod-cat__spacer { flex-grow: 1; min-height: 14px; }
.prod-cat__go { font-size: 11.5px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--charcoal); }

.prod-else { background: var(--blush-100); padding: 80px var(--gutter); }
.prod-else__inner { max-width: 760px; margin: 0 auto; text-align: center; }
.prod-else h2 { font-size: 42px; line-height: 1.1; text-transform: uppercase; letter-spacing: .02em; margin-bottom: 30px; }
.prod-else__links { display: flex; justify-content: center; gap: 14px; flex-wrap: wrap; }
.prod-else__links .btn { flex: 0 0 auto; white-space: nowrap; }

@media (min-width: 1025px) and (max-width: 1240px) {
  .prod-hero h1 { font-size: 44px; }
  .prod-cat h2 { font-size: 28px; }
  .prod-else h2 { font-size: 34px; }
}

@media (max-width: 1024px) {
  .prod-hero { padding: 52px 24px 56px; }
  .prod-hero .label { font-size: 13px; letter-spacing: .2em; margin-bottom: 14px; }
  .prod-hero h1 { font-size: 38px; margin-bottom: 18px; }

  .prod-cats { padding: 52px 24px 56px; }
  .prod-cats__grid { grid-template-columns: 1fr; }
  .prod-cat,
  .prod-cat:nth-child(3n),
  .prod-cat:nth-child(3n+2) {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 26px 0;
    border-right: none;
    border-top: 1px solid var(--border-soft);
  }
  .prod-cat:first-child { border-top-color: var(--charcoal); }
  .prod-cat:last-child { border-bottom: 1px solid var(--border-soft); }
  .prod-cat h2 { font-size: 30px; margin-bottom: 0; }
  .prod-cat__spacer { display: none; }
  .prod-cat__go { color: var(--salmon-700); flex-shrink: 0; }

  .prod-else { padding: 52px 24px 56px; }
  .prod-else h2 { font-size: 32px; margin-bottom: 26px; }
  .prod-else__links { flex-direction: column; align-items: center; gap: 12px; }
}


/* ==========================================================================
   Calendar (schedule) page
   ========================================================================== */
.sched-hero { background: var(--cream); padding: 80px var(--gutter) 88px; }
.sched-hero__inner { max-width: 820px; margin: 0 auto; text-align: center; }
.sched-hero .label { display: block; font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--salmon-700); margin-bottom: 16px; }
.sched-hero h1 { font-size: 56px; line-height: 1.06; letter-spacing: .02em; text-transform: uppercase; margin-bottom: 20px; }
.sched-hero p { color: var(--text-body); margin: 0; }

.sched-list { background: #fff; padding: 80px var(--gutter); }
.sched-list__inner { max-width: 1120px; margin: 0 auto; }
.sched-ev {
  display: grid;
  grid-template-columns: 150px 1fr 200px auto;
  gap: 36px;
  align-items: center;
  padding: 30px 0;
  border-top: 1px solid var(--border-soft);
  text-decoration: none;
}
.sched-ev:first-of-type { border-top-color: var(--charcoal); }
.sched-ev:last-of-type { border-bottom: 1px solid var(--border-soft); }
.sched-ev__date { font-family: var(--font-accent); font-weight: 600; font-size: 26px; letter-spacing: .02em; line-height: 1.1; color: var(--charcoal); }
.sched-ev__dur { font-size: 11.5px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--text-muted); margin-top: 6px; }
.sched-ev__body { min-width: 0; }
.sched-ev__title { font-family: var(--font-display); font-size: 28px; line-height: 1.14; color: var(--charcoal); margin-bottom: 8px; }
.sched-ev__body p { color: var(--text-body); margin: 0; }
.sched-ev__meta { font-size: 11.5px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; line-height: 1.9; color: var(--text-muted); }
.sched-ev__fmt { color: var(--salmon-700); }
.sched-ev .btn { flex-shrink: 0; }

.sched-dinner { background: var(--blush-100); padding: 80px var(--gutter); }
.sched-dinner__inner { max-width: 1000px; margin: 0 auto; display: grid; grid-template-columns: 1fr 380px; gap: 64px; align-items: center; }
.sched-dinner .label { display: block; font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--salmon-700); margin-bottom: 16px; }
.sched-dinner h2 { font-size: 42px; line-height: 1.12; margin-bottom: 20px; }
.sched-dinner p { color: var(--text-body); max-width: 540px; margin-bottom: 26px; }
.sched-dinner img { width: 100%; height: auto; display: block; }

.sched-news {
  padding: 80px var(--gutter);
  background-image: url("../assets/img/gradient-2b.png");
  background-size: cover;
  background-position: center;
}
.sched-news__inner { max-width: 720px; margin: 0 auto; text-align: center; }
.sched-news h2 { font-size: 42px; line-height: 1.1; text-transform: uppercase; letter-spacing: .02em; margin-bottom: 18px; }
.sched-news p { color: var(--text-body); max-width: 560px; margin: 0 auto 30px; }
.sched-news form { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }
.sched-news input { font-family: var(--font-sans); font-size: 15px; color: var(--charcoal); background: #fff; border: 1px solid rgba(41, 39, 40, .2); padding: 15px 18px; }
.sched-news input[type="text"] { width: 190px; }
.sched-news input[type="email"] { width: 240px; }
.sched-news button { font-family: var(--font-sans); font-size: 11.5px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: #fff; background: var(--charcoal); border: 1px solid var(--charcoal); padding: 15px 26px; cursor: pointer; }

@media (min-width: 1025px) and (max-width: 1240px) {
  .sched-hero h1 { font-size: 44px; }
  .sched-ev { grid-template-columns: 120px 1fr 160px auto; gap: 24px; }
  .sched-ev__title { font-size: 24px; }
  .sched-dinner__inner { grid-template-columns: 1fr 300px; gap: 44px; }
}

@media (max-width: 1024px) {
  .sched-hero { padding: 52px 24px 56px; }
  .sched-hero .label { font-size: 13px; letter-spacing: .2em; margin-bottom: 14px; }
  .sched-hero h1 { font-size: 42px; margin-bottom: 18px; }

  .sched-list { padding: 52px 24px 56px; }
  .sched-ev { display: block; padding: 26px 0; text-align: center; }
  .sched-ev__date { font-size: 24px; }
  .sched-ev__dur { font-size: 11px; margin: 6px 0 12px; }
  .sched-ev__title { font-size: 26px; }
  .sched-ev__body p { margin-bottom: 12px; }
  .sched-ev__meta { font-size: 11px; margin-bottom: 18px; }
  .sched-ev .btn { width: 100%; justify-content: center; }

  .sched-dinner { padding: 52px 24px 56px; }
  .sched-dinner__inner { grid-template-columns: 1fr; gap: 24px; }
  .sched-dinner__inner > div { display: flex; flex-direction: column; }
  .sched-dinner .label { text-align: center; font-size: 13px; }
  .sched-dinner h2 { font-size: 34px; text-align: center; }
  .sched-dinner p { max-width: none; }
  .sched-dinner img { order: -1; }
  .sched-dinner .btn { width: 100%; justify-content: center; }

  .sched-news { padding: 52px 24px 56px; }
  .sched-news h2 { font-size: 34px; margin-bottom: 16px; }
  .sched-news p { margin-bottom: 26px; }
  .sched-news form { flex-direction: column; }
  .sched-news input, .sched-news input[type="text"], .sched-news input[type="email"] { width: 100%; box-sizing: border-box; }
  .sched-news button { width: 100%; padding: 16px 26px; }
}


/* ==========================================================================
   Virtual Workshops page
   ========================================================================== */
.wks-hero { background: var(--cream); padding: 80px var(--gutter) 88px; }
.wks-hero__inner { max-width: 820px; margin: 0 auto; text-align: center; }
.wks-hero .label { display: block; font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--salmon-700); margin-bottom: 16px; }
.wks-hero h1 { font-size: 56px; line-height: 1.06; letter-spacing: .02em; text-transform: uppercase; margin: 0; }

.wks-alacarte { background: #fff; padding: 80px var(--gutter); }
.wks-head { max-width: var(--container); margin: 0 auto 44px; text-align: center; }
.wks-head h2 { font-size: 42px; line-height: 1.12; text-transform: uppercase; letter-spacing: .02em; margin-bottom: 12px; }
.wks-head p { color: var(--text-body); max-width: 620px; margin: 0 auto; }
.wks-head .label { display: block; font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--salmon-700); margin-bottom: 14px; }
.wks-grid { max-width: 1120px; margin: 0 auto; display: grid; grid-template-columns: 1fr 1fr; gap: 64px 56px; align-items: stretch; }
.wks-card { display: flex; flex-direction: column; min-width: 0; }
.wks-card img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; display: block; margin-bottom: 24px; }
.wks-card h3 { font-family: var(--font-display); font-weight: 400; font-size: 30px; line-height: 1.14; margin-bottom: 10px; }
.wks-card__price { display: flex; align-items: baseline; gap: 16px; margin-bottom: 16px; }
.wks-card__amount { font-family: var(--font-accent); font-weight: 600; font-size: 28px; letter-spacing: .02em; line-height: 1; }
.wks-card__access { font-size: 11.5px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--text-muted); }
.wks-card p { color: var(--text-body); margin: 0 0 24px; flex-grow: 1; }
.wks-card .btn { align-self: flex-start; }

.wks-members { background: var(--blush-100); padding: 80px var(--gutter); }
.wks-members__grid { max-width: 1120px; margin: 0 auto; display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; align-items: stretch; }
.wks-mcard { display: flex; flex-direction: column; background: #fff; min-width: 0; }
.wks-mcard img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; display: block; }
.wks-mcard__body { padding: 24px 22px 28px; }
.wks-mcard h3 { font-family: var(--font-display); font-weight: 400; font-size: 27px; line-height: 1.14; margin-bottom: 10px; }
.wks-mcard p { color: var(--text-body); margin: 0; }
.wks-members__cta { max-width: 620px; margin: 44px auto 0; text-align: center; }
.wks-members__cta p { color: var(--text-body); margin: 0 0 26px; }
.wks-members__cta .btn { margin: 0 auto; }

.wks-news { padding: 80px var(--gutter); background-image: url("../assets/img/gradient-2b.png"); background-size: cover; background-position: center; }
.wks-news__inner { max-width: 720px; margin: 0 auto; text-align: center; }
.wks-news h2 { font-size: 42px; line-height: 1.1; text-transform: uppercase; letter-spacing: .02em; margin-bottom: 18px; }
.wks-news p { color: var(--text-body); max-width: 560px; margin: 0 auto 30px; }
.wks-news form { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }
.wks-news input { font-family: var(--font-sans); font-size: 15px; color: var(--charcoal); background: #fff; border: 1px solid rgba(41, 39, 40, .2); padding: 15px 18px; }
.wks-news input[name="first_name"] { width: 190px; }
.wks-news input[name="email"] { width: 240px; }
.wks-news button { font-family: var(--font-sans); font-size: 11.5px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: #fff; background: var(--charcoal); border: 1px solid var(--charcoal); padding: 15px 26px; cursor: pointer; }

@media (min-width: 1025px) and (max-width: 1240px) {
  .wks-hero h1 { font-size: 44px; }
  .wks-head h2, .wks-news h2 { font-size: 34px; }
  .wks-grid { gap: 48px 36px; }
  .wks-members__grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 1024px) {
  .wks-hero { padding: 52px 24px 56px; }
  .wks-hero .label { font-size: 13px; letter-spacing: .2em; margin-bottom: 14px; }
  .wks-hero h1 { font-size: 42px; }

  .wks-alacarte, .wks-members { padding: 56px 24px 60px; }
  .wks-head { margin-bottom: 32px; }
  .wks-head h2 { font-size: 34px; line-height: 1.12; }
  .wks-head .label { font-size: 13px; letter-spacing: .2em; margin-bottom: 12px; }

  .wks-grid { grid-template-columns: 1fr; gap: 34px; }
  .wks-card { padding-top: 34px; border-top: 1px solid var(--border-soft); text-align: center; }
  .wks-card:first-child { padding-top: 0; border-top: none; }
  .wks-card img { margin-bottom: 22px; }
  .wks-card h3 { font-size: 28px; }
  .wks-card__price { flex-direction: column; align-items: center; gap: 6px; }
  .wks-card__amount { font-size: 26px; }
  .wks-card__access { font-size: 11px; }
  .wks-card p { margin-bottom: 22px; }
  .wks-card .btn { align-self: center; margin: 0 auto; }

  .wks-members__grid { grid-template-columns: 1fr; gap: 20px; }
  .wks-mcard__body { padding: 24px 22px 28px; }
  .wks-members__cta { margin-top: 34px; }
  .wks-members__cta p { margin-bottom: 24px; }

  .wks-news { padding: 52px 24px 56px; }
  .wks-news h2 { font-size: 32px; line-height: 1.1; margin-bottom: 16px; }
  .wks-news p { margin-bottom: 26px; }
  .wks-news form { flex-direction: column; gap: 12px; }
  .wks-news input, .wks-news input[name="first_name"], .wks-news input[name="email"] { width: 100%; }
  .wks-news button { padding: 16px 26px; }
}


/* ==========================================================================
   Intensives page
   ========================================================================== */
.int-hero {
  padding: 80px var(--gutter) 88px;
  background-image: linear-gradient(rgba(255, 255, 255, .66), rgba(255, 255, 255, .72)), url("../assets/img/rt-sunset-sky.jpg");
  background-size: cover;
  background-position: center;
}
.int-hero__inner { max-width: 820px; margin: 0 auto; text-align: center; }
.int-hero .label { display: block; font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--salmon-700); margin-bottom: 16px; }
.int-hero h1 { font-size: 56px; line-height: 1.06; letter-spacing: .02em; text-transform: uppercase; margin-bottom: 20px; }
.int-hero p { color: var(--text-body); margin: 0; }

.int-open { background: var(--lilac-100); padding: 88px var(--gutter); }
.int-open__inner { max-width: 1080px; margin: 0 auto; }
.int-open__head { text-align: center; margin-bottom: 40px; }
.int-open .label { display: block; font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--salmon-700); margin-bottom: 14px; }
.int-open h2 { font-size: 46px; line-height: 1.08; text-transform: uppercase; letter-spacing: .02em; margin-bottom: 16px; }
.int-open__dates { font-size: 13px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; line-height: 1.9; color: var(--text-muted); }
.int-open__art { width: 100%; height: auto; display: block; margin-bottom: 40px; }
.int-open__body { max-width: 760px; margin: 0 auto; text-align: center; }
.int-open__body p { color: var(--text-body); }
.int-open__pull { font-family: var(--font-display); font-size: 28px; line-height: 1.3; color: var(--salmon-700); }
.int-open__body .btn { margin: 4px auto 0; }

.int-how { background: #fff; padding: 88px var(--gutter); }
.int-how__head { max-width: var(--container); margin: 0 auto 44px; text-align: center; }
.int-how h2 { font-size: 42px; line-height: 1.12; text-transform: uppercase; letter-spacing: .02em; margin-bottom: 12px; }
.int-how__head p { color: var(--text-body); max-width: 620px; margin: 0 auto; }
.int-how__rows { max-width: 960px; margin: 0 auto; }
.int-row { display: grid; grid-template-columns: 300px 1fr; gap: 40px; align-items: baseline; padding: 26px 0; border-top: 1px solid var(--border-soft); }
.int-row:first-of-type { border-top-color: var(--charcoal); }
.int-row:last-of-type { border-bottom: 1px solid var(--border-soft); }
.int-row h3 { font-family: var(--font-display); font-weight: 400; font-size: 26px; line-height: 1.14; }
.int-row p { color: var(--text-body); margin: 0; }

.int-past { background: var(--blush-100); padding: 80px var(--gutter); }
.int-past__head { max-width: var(--container); margin: 0 auto 44px; text-align: center; }
.int-past .label { display: block; font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--salmon-700); margin-bottom: 14px; }
.int-past h2 { font-size: 42px; line-height: 1.12; text-transform: uppercase; letter-spacing: .02em; margin-bottom: 12px; }
.int-past__head p { color: var(--text-body); max-width: 620px; margin: 0 auto; }
.int-past__grid { max-width: 1120px; margin: 0 auto; display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; align-items: stretch; }
.int-card { display: flex; flex-direction: column; background: #fff; min-width: 0; }
.int-card img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; display: block; }
.int-card img.int-card__contain { object-fit: contain; background: var(--cream); }
.int-card__body { padding: 24px 22px 28px; }
.int-card h3 { font-family: var(--font-display); font-weight: 400; font-size: 27px; line-height: 1.14; margin-bottom: 10px; }
.int-card p { color: var(--text-body); margin: 0; }

@media (min-width: 1025px) and (max-width: 1240px) {
  .int-hero h1 { font-size: 44px; }
  .int-open h2, .int-how h2, .int-past h2 { font-size: 34px; }
  .int-row { grid-template-columns: 240px 1fr; gap: 28px; }
  .int-past__grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 1024px) {
  .int-hero { padding: 52px 24px 58px; }
  .int-hero .label { font-size: 13px; letter-spacing: .2em; margin-bottom: 14px; }
  .int-hero h1 { font-size: 42px; margin-bottom: 18px; }
  .int-hero p { text-align: left; }

  .int-open { padding: 56px 24px 60px; }
  .int-open__head { margin-bottom: 26px; }
  .int-open .label { font-size: 13px; letter-spacing: .2em; margin-bottom: 12px; }
  .int-open h2 { font-size: 34px; line-height: 1.12; margin-bottom: 14px; }
  .int-open__dates { font-size: 11.5px; letter-spacing: .16em; line-height: 1.8; }
  .int-open__art { margin-bottom: 26px; }
  .int-open__body { text-align: left; }
  .int-open__pull { font-size: 26px; text-align: center; }
  .int-open__body .btn { margin: 0 auto; }

  .int-how { padding: 56px 24px 60px; }
  .int-how__head { margin-bottom: 26px; }
  .int-how h2 { font-size: 34px; line-height: 1.12; }
  .int-row { grid-template-columns: 1fr; gap: 8px; padding: 24px 0; text-align: center; }
  .int-row h3 { font-size: 24px; }

  .int-past { padding: 56px 24px 60px; }
  .int-past__head { margin-bottom: 32px; }
  .int-past .label { font-size: 13px; letter-spacing: .2em; margin-bottom: 12px; }
  .int-past h2 { font-size: 34px; line-height: 1.12; }
  .int-past__grid { grid-template-columns: 1fr; gap: 20px; }
  .int-card h3 { font-size: 26px; }
}


/* ==========================================================================
   Elements of Money intensive sales page
   ========================================================================== */
.eom-hero {
  padding: 96px var(--gutter) 104px;
  background-image: linear-gradient(rgba(19, 26, 58, .46), rgba(19, 26, 58, .58)), url("../assets/img/lots-nebula.png");
  background-size: cover;
  background-position: center;
}
.eom-hero__inner { max-width: 760px; margin: 0 auto; text-align: center; }
.eom-hero h1 { font-size: 52px; line-height: 1.06; letter-spacing: .02em; text-transform: uppercase; color: #fff; margin-bottom: 18px; text-shadow: 0 2px 22px rgba(19, 26, 58, .5); }
.eom-hero__sub { font-size: 15px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; line-height: 1.8; color: #fff; margin-bottom: 20px; text-shadow: 0 2px 16px rgba(19, 26, 58, .5); }
.eom-hero__dates { font-size: 12.5px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; line-height: 1.9; color: rgba(255, 255, 255, .85); margin-bottom: 30px; text-shadow: 0 2px 14px rgba(19, 26, 58, .45); }
.eom-btn--solid { color: var(--charcoal); background: #fff; border: 1px solid #fff; padding: 16px 26px; }
.eom-btn--solid:hover { background: transparent; color: #fff; }

.eom-prose { padding: 88px var(--gutter); }
.eom-prose--white { background: #fff; }
.eom-prose--lilac { background: var(--lilac-100); }
.eom-prose__inner { max-width: 820px; margin: 0 auto; }
.eom-prose h2 { font-size: 44px; line-height: 1.12; text-align: center; margin-bottom: 26px; }
.eom-prose p { color: var(--text-body); }
.eom-prose__q { font-family: var(--font-display); font-size: 32px; line-height: 1.24; text-align: center; color: var(--salmon-700); margin: 26px 0; }
.eom-item { display: grid; grid-template-columns: 22px 1fr; gap: 14px; align-items: start; padding: 20px 0; border-top: 1px solid var(--border-soft); }
.eom-item:first-of-type { border-top-color: var(--charcoal); }
.eom-item:last-of-type { border-bottom: 1px solid var(--border-soft); }
.eom-item img { width: 12px; height: 12px; margin-top: 8px; opacity: .7; }
.eom-item p { margin: 0; }

.eom-needs { padding: 88px var(--gutter); background-image: url("../assets/img/gradient-2b.png"); background-size: cover; background-position: center; }
.eom-needs__inner { max-width: 1000px; margin: 0 auto; }
.eom-needs h2 { font-size: 46px; line-height: 1.1; text-align: center; margin: 0 auto 40px; max-width: 760px; }
.eom-needs__grid { display: grid; grid-template-columns: 1fr 1fr; margin-bottom: 36px; }
.eom-need { min-width: 0; padding: 30px 44px 30px 0; border-top: 1px solid rgba(41, 39, 40, .16); border-right: 1px solid rgba(41, 39, 40, .16); }
.eom-need:nth-child(even) { padding: 30px 0 30px 44px; border-right: none; }
.eom-need:nth-child(1), .eom-need:nth-child(2) { border-top-color: var(--charcoal); }
.eom-need div { font-size: 19px; font-weight: 700; line-height: 1.5; color: var(--charcoal); }
.eom-needs > .eom-needs__inner > p { color: var(--text-body); margin: 0 auto; max-width: 680px; text-align: center; }

.eom-bp { background: var(--cream); padding: 88px var(--gutter); }
.eom-bp__head { max-width: var(--container); margin: 0 auto 44px; text-align: center; }
.eom-bp .label { display: block; font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--salmon-700); margin-bottom: 14px; }
.eom-bp h2 { font-size: 46px; line-height: 1.08; text-transform: uppercase; letter-spacing: .02em; margin-bottom: 16px; }
.eom-bp__head p { color: var(--text-body); max-width: 660px; margin: 0 auto; }
.eom-bp__rows { max-width: 1000px; margin: 0 auto; }
.eom-row { display: grid; grid-template-columns: 340px 1fr; gap: 40px; align-items: baseline; padding: 24px 0; border-top: 1px solid var(--border-soft); }
.eom-row:first-of-type { border-top-color: var(--charcoal); }
.eom-row:last-of-type { border-bottom: 1px solid var(--border-soft); }
.eom-row h3 { font-family: var(--font-display); font-weight: 400; font-size: 25px; line-height: 1.16; }
.eom-row p { color: var(--text-body); margin: 0; }
.eom-bp__close { max-width: 700px; margin: 40px auto 0; text-align: center; }
.eom-bp__close p { color: var(--text-body); margin: 0 0 8px; }
.eom-bp__pull { font-family: var(--font-display); font-size: 28px; line-height: 1.3; color: var(--salmon-700); margin: 0 !important; }

.eom-two { background: #fff; padding: 88px var(--gutter); }
.eom-two__inner { max-width: 1000px; margin: 0 auto; display: grid; grid-template-columns: 1fr 1fr; gap: 72px; align-items: start; }
.eom-two .label { display: block; font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--salmon-700); margin-bottom: 16px; }
.eom-two h2 { font-size: 40px; line-height: 1.14; margin-bottom: 22px; }
.eom-two p { color: var(--text-body); }

.eom-know { background: var(--blush); padding: 80px var(--gutter); }
.eom-know__inner { max-width: 760px; margin: 0 auto; text-align: center; }
.eom-know p { color: var(--text-body); }
.eom-know h2 { font-size: 52px; line-height: 1.08; text-transform: uppercase; letter-spacing: .02em; margin: 18px 0 22px; }

.eom-vsl { background: #fff; padding: 88px var(--gutter); }
.eom-vsl__inner { max-width: 900px; margin: 0 auto; text-align: center; }
.eom-vsl .label { display: block; font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--salmon-700); margin-bottom: 14px; }
.eom-vsl h2 { font-size: 42px; line-height: 1.1; text-transform: uppercase; letter-spacing: .02em; margin-bottom: 18px; }
.eom-vsl p { color: var(--text-body); max-width: 600px; margin: 0 auto 34px; }
.eom-video {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  background-image: linear-gradient(rgba(19, 26, 58, .4), rgba(19, 26, 58, .52)), url("../assets/img/int-elements-of-money.jpg");
  background-size: cover;
  background-position: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 20px;
}
.eom-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: none; }
.eom-video__play { width: 74px; height: 74px; border-radius: 50%; border: 1px solid rgba(255, 255, 255, .75); display: flex; align-items: center; justify-content: center; color: #fff; font-size: 20px; padding-left: 5px; }
.eom-video__note { font-size: 11.5px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: rgba(255, 255, 255, .82); }

.eom-sched { background: var(--lilac-100); padding: 88px var(--gutter); }
.eom-sched__inner { max-width: 960px; margin: 0 auto; }
.eom-sched__head { text-align: center; margin-bottom: 40px; }
.eom-sched .label { display: block; font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--salmon-700); margin-bottom: 14px; }
.eom-sched h2 { font-size: 44px; line-height: 1.1; text-transform: uppercase; letter-spacing: .02em; margin-bottom: 18px; }
.eom-sched__head p { color: var(--text-body); max-width: 680px; margin: 0 auto; }
.eom-call { display: grid; grid-template-columns: 110px 1fr auto; gap: 32px; align-items: baseline; padding: 22px 0; border-top: 1px solid var(--border-soft); }
.eom-call:first-of-type { border-top-color: var(--charcoal); }
.eom-call:last-of-type { border-bottom: 1px solid var(--border-soft); }
.eom-call__n { font-family: var(--font-accent); font-weight: 600; font-size: 17px; letter-spacing: .14em; text-transform: uppercase; color: var(--salmon-700); }
.eom-call__d { font-family: var(--font-display); font-size: 24px; line-height: 1.16; color: var(--charcoal); }
.eom-call__t { font-size: 12.5px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; white-space: nowrap; color: var(--text-muted); }
.eom-sched__notes { max-width: 680px; margin: 34px auto 0; }
.eom-sched__notes p { color: var(--text-body); margin: 0 0 14px; }
.eom-sched__notes p:last-child { margin-bottom: 0; }

.eom-enroll { background: var(--sand); padding: 88px var(--gutter); }
.eom-enroll__head { max-width: 820px; margin: 0 auto 44px; text-align: center; }
.eom-enroll h2 { font-size: 44px; line-height: 1.1; text-transform: uppercase; letter-spacing: .02em; margin-bottom: 18px; }
.eom-enroll__head p { color: var(--text-body); margin: 0 auto; }
.eom-tiers { max-width: 1000px; margin: 0 auto; display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; align-items: stretch; }
.eom-tier { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 12px; padding: 40px 30px 36px; background: #fff; border: 1px solid rgba(41, 39, 40, .14); }
.eom-tier--feat { background: var(--charcoal); border-color: var(--charcoal); }
.eom-tier__lab { font-size: 12px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--text-muted); }
.eom-tier--feat .eom-tier__lab { color: var(--salmon-300); }
.eom-tier__price { font-family: var(--font-accent); font-weight: 600; font-size: 52px; letter-spacing: .02em; line-height: 1; color: var(--charcoal); }
.eom-tier--feat .eom-tier__price { color: #fff; }
.eom-tier__note { font-size: 11px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: transparent; min-height: 14px; margin-bottom: 4px; }
.eom-tier--feat .eom-tier__note { color: var(--salmon-300); }
.eom-tier--feat .btn { color: #fff; border-color: #fff; }
.eom-tier--feat .btn:hover { background: #fff; color: var(--charcoal); }

.eom-before { background: var(--cream); padding: 88px var(--gutter); }
.eom-before__inner { max-width: 820px; margin: 0 auto; }
.eom-before h2 { font-size: 40px; line-height: 1.14; text-align: center; margin-bottom: 30px; }
.eom-panel { background: #fff; padding: 40px 36px; }
.eom-panel + .eom-panel { margin-top: 26px; }
.eom-panel h3 { font-family: var(--font-display); font-weight: 400; font-size: 26px; line-height: 1.2; margin-bottom: 12px; }
.eom-panel p { color: var(--text-body); margin: 0; }
.eom-panel p.eom-panel__note { font-style: italic; }
.eom-oils { display: flex; flex-wrap: wrap; gap: 9px; margin: 16px 0 18px; }
.eom-oil { font-size: 12.5px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--charcoal); border: 1px solid rgba(41, 39, 40, .28); padding: 10px 15px; }

.eom-close { padding: 96px var(--gutter) 104px; background-image: url("../assets/img/ff-gradient.png"); background-size: cover; background-position: center; }
.eom-close__inner { max-width: 760px; margin: 0 auto; text-align: center; }
.eom-close h2 { font-size: 48px; line-height: 1.08; text-transform: uppercase; letter-spacing: .02em; margin-bottom: 24px; }
.eom-close p { color: var(--text-body); margin: 0 0 34px; }

@media (min-width: 1025px) and (max-width: 1240px) {
  .eom-hero h1 { font-size: 42px; }
  .eom-prose h2, .eom-needs h2, .eom-bp h2, .eom-sched h2, .eom-enroll h2, .eom-close h2 { font-size: 34px; }
  .eom-know h2 { font-size: 40px; }
  .eom-row { grid-template-columns: 260px 1fr; gap: 28px; }
  .eom-two__inner { gap: 44px; }
}

@media (max-width: 1024px) {
  .eom-hero { padding: 60px 24px 66px; }
  .eom-hero h1 { font-size: 40px; }
  .eom-hero__sub { font-size: 13.5px; }
  .eom-hero__dates { font-size: 11.5px; letter-spacing: .16em; }

  .eom-prose { padding: 56px 24px 60px; }
  .eom-prose h2 { font-size: 32px; line-height: 1.14; margin-bottom: 22px; }
  .eom-prose__q { font-size: 26px; }

  .eom-needs { padding: 56px 24px 60px; }
  .eom-needs h2 { font-size: 32px; line-height: 1.14; margin-bottom: 26px; }
  .eom-needs__grid { grid-template-columns: 1fr; margin-bottom: 26px; }
  .eom-need, .eom-need:nth-child(even) { padding: 22px 0; border-right: none; border-top: 1px solid rgba(41, 39, 40, .16); text-align: center; }
  .eom-need:first-child { border-top-color: var(--charcoal); }
  .eom-need:last-child { border-bottom: 1px solid rgba(41, 39, 40, .16); }
  .eom-need div { font-size: 17.5px; }

  .eom-bp { padding: 56px 24px 60px; }
  .eom-bp__head { margin-bottom: 26px; }
  .eom-bp .label { font-size: 13px; letter-spacing: .2em; }
  .eom-bp h2 { font-size: 32px; line-height: 1.12; }
  .eom-row { grid-template-columns: 1fr; gap: 8px; padding: 22px 0; text-align: center; }
  .eom-row h3 { font-size: 23px; }
  .eom-bp__close { margin-top: 28px; }
  .eom-bp__pull { font-size: 24px; }

  .eom-two { padding: 56px 24px 60px; }
  .eom-two__inner { grid-template-columns: 1fr; gap: 40px; }
  .eom-two .label { font-size: 13px; letter-spacing: .2em; }
  .eom-two h2 { font-size: 30px; line-height: 1.16; }

  .eom-know { padding: 52px 24px 56px; }
  .eom-know h2 { font-size: 36px; }
  .eom-know p { text-align: left; }

  .eom-vsl { padding: 56px 24px 60px; }
  .eom-vsl .label { font-size: 13px; }
  .eom-vsl h2 { font-size: 32px; line-height: 1.12; }
  .eom-vsl p { margin-bottom: 26px; }
  .eom-video { gap: 16px; }
  .eom-video__play { width: 60px; height: 60px; font-size: 17px; }
  .eom-video__note { font-size: 11px; }

  .eom-sched { padding: 56px 24px 60px; }
  .eom-sched__head { margin-bottom: 26px; }
  .eom-sched .label { font-size: 13px; letter-spacing: .2em; }
  .eom-sched h2 { font-size: 32px; line-height: 1.12; }
  .eom-call { grid-template-columns: 1fr; gap: 6px; padding: 22px 0; text-align: center; }
  .eom-call__n { font-size: 15px; }
  .eom-call__d { font-size: 22px; }
  .eom-call__t { font-size: 11.5px; }
  .eom-sched__notes { margin-top: 28px; }

  .eom-enroll { padding: 56px 24px 60px; }
  .eom-enroll__head { margin-bottom: 30px; }
  .eom-enroll h2 { font-size: 32px; line-height: 1.12; }
  .eom-tiers { grid-template-columns: 1fr; gap: 16px; }
  .eom-tier { padding: 32px 24px 30px; gap: 11px; }
  .eom-tier__price { font-size: 46px; }
  .eom-tier__note { display: none; }
  .eom-tier--feat .eom-tier__note { display: block; }

  .eom-before { padding: 56px 24px 60px; }
  .eom-before h2 { font-size: 30px; margin-bottom: 26px; }
  .eom-panel { padding: 30px 24px; }
  .eom-panel h3 { font-size: 24px; }
  .eom-oil { font-size: 11.5px; padding: 9px 13px; }

  .eom-close { padding: 60px 24px 66px; }
  .eom-close h2 { font-size: 34px; line-height: 1.1; margin-bottom: 22px; }
  .eom-close p { margin-bottom: 30px; }
}


/* ==========================================================================
   Book Clubs page
   ========================================================================== */
.bc-hero { background: var(--lilac-100); padding: 80px var(--gutter) 88px; }
.bc-hero__inner { max-width: 820px; margin: 0 auto; text-align: center; }
.bc-hero .label { display: block; font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--salmon-700); margin-bottom: 16px; }
.bc-hero h1 { font-size: 56px; line-height: 1.06; letter-spacing: .02em; text-transform: uppercase; margin-bottom: 20px; }
.bc-hero p { color: var(--text-body); margin-bottom: 30px; }
.bc-hero .btn { margin: 0 auto; }

.bc-how { background: #fff; padding: 88px var(--gutter); }
.bc-how__head { max-width: var(--container); margin: 0 auto 44px; text-align: center; }
.bc-how h2 { font-size: 42px; line-height: 1.12; text-transform: uppercase; letter-spacing: .02em; margin-bottom: 12px; }
.bc-how__head p { color: var(--text-body); max-width: 620px; margin: 0 auto; }
.bc-how__rows { max-width: 960px; margin: 0 auto; }
.bc-row { display: grid; grid-template-columns: 300px 1fr; gap: 40px; align-items: baseline; padding: 26px 0; border-top: 1px solid var(--border-soft); }
.bc-row:first-of-type { border-top-color: var(--charcoal); }
.bc-row:last-of-type { border-bottom: 1px solid var(--border-soft); }
.bc-row h3 { font-family: var(--font-display); font-weight: 400; font-size: 26px; line-height: 1.14; }
.bc-row p { color: var(--text-body); margin: 0; }

.bc-past { background: var(--cream); padding: 88px var(--gutter); }
.bc-past__inner { max-width: 1000px; margin: 0 auto; }
.bc-past__head { text-align: center; margin-bottom: 40px; }
.bc-past .label { display: block; font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--salmon-700); margin-bottom: 14px; }
.bc-past h2 { font-size: 46px; line-height: 1.08; text-transform: uppercase; letter-spacing: .02em; margin: 0; }
.bc-past__art { width: 100%; height: auto; display: block; margin-bottom: 40px; }
.bc-past__body { max-width: 760px; margin: 0 auto; text-align: center; }
.bc-past__body p { color: var(--text-body); }
.bc-past__actions { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; margin-top: 30px; }

.bc-wait { padding: 88px var(--gutter); background-image: url("../assets/img/gradient-2b.png"); background-size: cover; background-position: center; }
.bc-wait__inner { max-width: 720px; margin: 0 auto; text-align: center; }
.bc-wait h2 { font-size: 44px; line-height: 1.1; text-transform: uppercase; letter-spacing: .02em; margin-bottom: 18px; }
.bc-wait p { color: var(--text-body); max-width: 560px; margin: 0 auto 30px; }
.bc-wait form { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }
.bc-wait input { font-family: var(--font-sans); font-size: 15px; color: var(--charcoal); background: #fff; border: 1px solid rgba(41, 39, 40, .2); padding: 15px 18px; }
.bc-wait input[type="text"] { width: 190px; }
.bc-wait input[type="email"] { width: 240px; }
.bc-wait button {
  font-family: var(--font-sans);
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: #fff;
  background: var(--charcoal);
  border: 1px solid var(--charcoal);
  padding: 15px 26px;
  cursor: pointer;
}

@media (min-width: 1025px) and (max-width: 1240px) {
  .bc-hero h1 { font-size: 44px; }
  .bc-how h2, .bc-past h2, .bc-wait h2 { font-size: 34px; }
  .bc-row { grid-template-columns: 240px 1fr; gap: 28px; }
}

@media (max-width: 1024px) {
  .bc-hero { padding: 52px 24px 58px; }
  .bc-hero .label { font-size: 13px; letter-spacing: .2em; margin-bottom: 14px; }
  .bc-hero h1 { font-size: 42px; margin-bottom: 18px; }
  .bc-hero p { text-align: left; margin-bottom: 28px; }

  .bc-how { padding: 56px 24px 60px; }
  .bc-how__head { margin-bottom: 26px; }
  .bc-how h2 { font-size: 34px; line-height: 1.12; }
  .bc-row { grid-template-columns: 1fr; gap: 8px; padding: 24px 0; text-align: center; }
  .bc-row h3 { font-size: 24px; }

  .bc-past { padding: 56px 24px 60px; }
  .bc-past__head { margin-bottom: 26px; }
  .bc-past .label { font-size: 13px; letter-spacing: .2em; margin-bottom: 12px; }
  .bc-past h2 { font-size: 34px; line-height: 1.12; }
  .bc-past__art { margin-bottom: 26px; }
  .bc-past__body { text-align: left; }
  .bc-past__actions { flex-direction: column; align-items: center; margin-top: 26px; }

  .bc-wait { padding: 56px 24px 60px; }
  .bc-wait h2 { font-size: 32px; line-height: 1.12; margin-bottom: 16px; }
  .bc-wait p { text-align: left; margin-bottom: 26px; }
  .bc-wait form { flex-direction: column; gap: 12px; }
  .bc-wait input[type="text"], .bc-wait input[type="email"] { width: 100%; }
  .bc-wait button { padding: 16px 26px; }
}


/* ==========================================================================
   Learn hub page
   ========================================================================== */
.lrn-hero { background: var(--cream); padding: 80px var(--gutter) 88px; }
.lrn-hero__inner { max-width: 820px; margin: 0 auto; text-align: center; }
.lrn-hero .label { display: block; font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--salmon-700); margin-bottom: 16px; }
.lrn-hero h1 { font-size: 56px; line-height: 1.06; letter-spacing: .02em; text-transform: uppercase; margin-bottom: 20px; }
.lrn-hero p { color: var(--text-body); margin: 0; }

.lrn-feat { background: var(--blush); padding: 80px var(--gutter); }
.lrn-feat__inner { max-width: 1000px; margin: 0 auto; display: grid; grid-template-columns: 1fr 380px; gap: 64px; align-items: center; }
.lrn-feat .label { display: block; font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--salmon-700); margin-bottom: 16px; }
.lrn-feat h2 { font-size: 42px; line-height: 1.12; margin-bottom: 20px; }
.lrn-feat p { color: var(--text-body); max-width: 540px; }
.lrn-feat .btn { margin-top: 6px; }
.lrn-arch { position: relative; padding: 24px 24px 0 0; }
.lrn-arch__outline { position: absolute; top: 0; right: 0; width: calc(100% - 24px); height: calc(100% - 24px); border: 1px solid var(--salmon); border-radius: 50% 50% 0 0 / 34% 34% 0 0; }
.lrn-arch img { position: relative; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; display: block; border-radius: 50% 50% 0 0 / 34% 34% 0 0; }

.lrn-group { padding: 80px var(--gutter); }
.lrn-group--white { background: #fff; }
.lrn-group--sand { background: var(--sand); }
.lrn-group__head { max-width: 1120px; margin: 0 auto 40px; }
.lrn-group__head .label { display: block; font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--salmon-700); margin-bottom: 14px; }
.lrn-group__head h2 { font-size: 42px; line-height: 1.12; text-transform: uppercase; letter-spacing: .02em; margin: 0; }
.lrn-grid { max-width: 1120px; margin: 0 auto; display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; align-items: stretch; }
.lrn-card { display: flex; flex-direction: column; gap: 14px; padding: 38px 34px 34px; background: #fff; border: 1px solid var(--border-soft); min-width: 0; text-decoration: none; }
.lrn-card:hover { border-color: var(--charcoal); }
.lrn-card h3 { font-family: var(--font-display); font-weight: 400; font-size: 30px; line-height: 1.14; color: var(--charcoal); }
.lrn-card p { color: var(--text-body); margin: 0; flex-grow: 1; }
.lrn-card__go { font-size: 11.5px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--salmon-700); }

.lrn-else {
  padding: 80px var(--gutter);
  background-image: linear-gradient(rgba(255, 255, 255, .55), rgba(255, 255, 255, .55)), url("../assets/img/rt-lavender-gradient.jpg");
  background-size: cover;
  background-position: center;
}
.lrn-else__inner { max-width: 820px; margin: 0 auto; text-align: center; }
.lrn-else h2 { font-size: 42px; line-height: 1.1; text-transform: uppercase; letter-spacing: .02em; margin-bottom: 20px; }
.lrn-else p { color: var(--text-body); max-width: 600px; margin: 0 auto 30px; }
.lrn-else__links { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; }

@media (min-width: 1025px) and (max-width: 1240px) {
  .lrn-hero h1 { font-size: 44px; }
  .lrn-feat__inner { grid-template-columns: 1fr 300px; gap: 44px; }
  .lrn-feat h2, .lrn-group__head h2, .lrn-else h2 { font-size: 34px; }
  .lrn-card { padding: 30px 26px 28px; }
  .lrn-card h3 { font-size: 26px; }
}

@media (max-width: 1024px) {
  .lrn-hero { padding: 52px 24px 58px; }
  .lrn-hero .label { font-size: 13px; letter-spacing: .2em; margin-bottom: 14px; }
  .lrn-hero h1 { font-size: 34px; line-height: 1.1; margin-bottom: 18px; }
  .lrn-hero p { text-align: left; }

  .lrn-feat { padding: 52px 24px 58px; }
  .lrn-feat__inner { grid-template-columns: 1fr; gap: 0; }
  .lrn-feat__inner > div:first-child { display: flex; flex-direction: column; }
  .lrn-feat .label { text-align: center; font-size: 13px; letter-spacing: .2em; margin-bottom: 12px; }
  .lrn-feat h2 { font-size: 34px; text-align: center; margin-bottom: 26px; }
  .lrn-feat p { max-width: none; }
  .lrn-feat .btn { margin: 0 auto; }
  .lrn-arch { order: -1; max-width: 300px; margin: 0 auto 28px; padding: 18px 18px 0 0; }
  .lrn-arch__outline { width: calc(100% - 18px); height: calc(100% - 18px); }

  .lrn-group { padding: 52px 24px 58px; }
  .lrn-group__head { margin-bottom: 26px; text-align: center; }
  .lrn-group__head .label { font-size: 13px; letter-spacing: .2em; margin-bottom: 12px; }
  .lrn-group__head h2 { font-size: 34px; line-height: 1.12; }
  .lrn-grid { grid-template-columns: 1fr; gap: 16px; }
  .lrn-card { padding: 30px 24px 28px; gap: 12px; }
  .lrn-card h3 { font-size: 27px; }

  .lrn-else { padding: 52px 24px 58px; }
  .lrn-else h2 { font-size: 32px; line-height: 1.12; margin-bottom: 18px; }
  .lrn-else p { text-align: left; margin-bottom: 26px; }
  .lrn-else__links { flex-direction: column; align-items: center; gap: 12px; }
}


/* ==========================================================================
   Favorite Things page
   ========================================================================== */
.fav-hero { background: var(--cream); padding: 80px var(--gutter) 88px; }
.fav-hero__inner { max-width: 820px; margin: 0 auto; text-align: center; }
.fav-hero .label { display: block; font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--salmon-700); margin-bottom: 16px; }
.fav-hero h1 { font-size: 56px; line-height: 1.06; letter-spacing: .02em; text-transform: uppercase; margin-bottom: 20px; }
.fav-hero p { color: var(--text-body); margin: 0; }

.fav-list { background: #fff; padding: 80px var(--gutter); }
.fav-list__inner { max-width: 1000px; margin: 0 auto; }
.fav-group + .fav-group { margin-top: 72px; }
.fav-group__label { font-size: 13px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--text-muted); padding-bottom: 18px; }
.fav-item {
  display: grid;
  grid-template-columns: 300px 1fr;
  gap: 48px;
  align-items: baseline;
  padding: 30px 24px 30px 0;
  border-top: 1px solid var(--border-soft);
  text-decoration: none;
}
.fav-group__label + .fav-item { border-top-color: var(--charcoal); }
.fav-group .fav-item:last-child { border-bottom: 1px solid var(--border-soft); }
.fav-item:hover { background: var(--cream); }
.fav-item__name { font-family: var(--font-display); font-weight: 400; font-size: 30px; line-height: 1.14; color: var(--charcoal); margin-bottom: 8px; }
.fav-item__go { font-size: 11.5px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--salmon-700); }
.fav-item p { color: var(--text-body); margin: 0; }
.fav-item__code { display: inline-flex; align-items: center; gap: 10px; margin-top: 16px; }
.fav-item__code-lab { font-size: 11px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--text-muted); }
.fav-item__code-val { font-family: var(--font-accent); font-weight: 600; font-size: 17px; letter-spacing: .1em; color: var(--charcoal); border: 1px solid rgba(41, 39, 40, .28); padding: 6px 12px; }

.fav-disclosure { background: var(--sand); padding: 44px var(--gutter); }
.fav-disclosure__inner { max-width: 820px; margin: 0 auto; text-align: center; }
.fav-disclosure p { font-size: 15px; line-height: 1.72; color: var(--text-body); margin: 0; }

@media (min-width: 1025px) and (max-width: 1240px) {
  .fav-hero h1 { font-size: 44px; }
  .fav-item { grid-template-columns: 240px 1fr; gap: 32px; }
  .fav-item__name { font-size: 26px; }
}

@media (max-width: 1024px) {
  .fav-hero { padding: 52px 24px 58px; }
  .fav-hero .label { font-size: 13px; letter-spacing: .2em; margin-bottom: 14px; }
  .fav-hero h1 { font-size: 40px; margin-bottom: 18px; }
  .fav-hero p { text-align: left; }

  .fav-list { padding: 52px 24px 56px; }
  .fav-group + .fav-group { margin-top: 52px; }
  .fav-group__label { font-size: 12px; padding-bottom: 14px; }
  .fav-item { grid-template-columns: 1fr; gap: 10px; padding: 26px 0; }
  .fav-item__name { font-size: 26px; margin-bottom: 6px; }
  .fav-item__head { display: flex; flex-direction: column; }
  .fav-item__go { text-align: right; }
  .fav-item__code { margin-top: 14px; }

  .fav-disclosure { padding: 36px 24px 40px; }
  .fav-disclosure p { text-align: center; }
}


/* ==========================================================================
   Podcast page
   ========================================================================== */
.pod-hero { background: var(--blush-100); padding: 80px var(--gutter) 88px; }
.pod-hero__inner { max-width: 1040px; margin: 0 auto; display: grid; grid-template-columns: 380px 1fr; gap: 64px; align-items: center; }
.pod-hero__cover { width: 100%; height: auto; display: block; }
.pod-hero .label { display: block; font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--salmon-700); margin-bottom: 16px; }
.pod-hero h1 { font-size: 52px; line-height: 1.06; letter-spacing: .02em; text-transform: uppercase; margin-bottom: 20px; }
.pod-hero p { color: var(--text-body); max-width: 520px; }
.pod-hero__status { font-size: 12.5px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--charcoal); margin: 26px 0; }
.pod-hero__links { display: flex; gap: 14px; flex-wrap: wrap; }
.btn--solid { color: #fff; background: var(--charcoal); border-color: var(--charcoal); }
.btn--solid:hover { background: transparent; color: var(--charcoal); }

.pod-topics { background: #fff; padding: 88px var(--gutter); }
.pod-topics__head { max-width: var(--container); margin: 0 auto 44px; text-align: center; }
.pod-topics h2 { font-size: 42px; line-height: 1.12; text-transform: uppercase; letter-spacing: .02em; margin-bottom: 12px; }
.pod-topics__head p { color: var(--text-body); max-width: 620px; margin: 0 auto; }
.pod-topics__rows { max-width: 960px; margin: 0 auto; }
.pod-row { display: grid; grid-template-columns: 300px 1fr; gap: 40px; align-items: baseline; padding: 26px 0; border-top: 1px solid var(--border-soft); }
.pod-row:first-of-type { border-top-color: var(--charcoal); }
.pod-row:last-of-type { border-bottom: 1px solid var(--border-soft); }
.pod-row h3 { font-family: var(--font-display); font-weight: 400; font-size: 26px; line-height: 1.14; }
.pod-row p { color: var(--text-body); margin: 0; }

.pod-listen { background: var(--cream); padding: 88px var(--gutter); }
.pod-listen__inner { max-width: 900px; margin: 0 auto; }
.pod-listen__head { text-align: center; margin-bottom: 40px; }
.pod-listen .label { display: block; font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--salmon-700); margin-bottom: 14px; }
.pod-listen h2 { font-size: 42px; line-height: 1.12; text-transform: uppercase; letter-spacing: .02em; margin-bottom: 12px; }
.pod-listen__head p { color: var(--text-body); max-width: 620px; margin: 0 auto; }
.pod-listen iframe { border: none; display: block; width: 100%; height: 232px; }

.pod-group {
  padding: 80px var(--gutter);
  background-image: url("../assets/img/gradient-2b.png");
  background-size: cover;
  background-position: center;
}
.pod-group__inner { max-width: 720px; margin: 0 auto; text-align: center; }
.pod-group .label { display: block; font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--salmon-700); margin-bottom: 16px; }
.pod-group h2 { font-size: 42px; line-height: 1.1; text-transform: uppercase; letter-spacing: .02em; margin-bottom: 18px; }
.pod-group p { color: var(--text-body); max-width: 560px; margin: 0 auto 30px; }
.pod-group .btn { margin: 0 auto; }

@media (min-width: 1025px) and (max-width: 1240px) {
  .pod-hero__inner { grid-template-columns: 300px 1fr; gap: 44px; }
  .pod-hero h1 { font-size: 42px; }
  .pod-topics h2, .pod-listen h2, .pod-group h2 { font-size: 34px; }
  .pod-row { grid-template-columns: 240px 1fr; gap: 28px; }
}

@media (max-width: 1024px) {
  .pod-hero { padding: 52px 24px 58px; }
  .pod-hero__inner { grid-template-columns: 1fr; gap: 0; }
  .pod-hero__inner > div { display: flex; flex-direction: column; }
  .pod-hero__cover { margin-bottom: 30px; }
  .pod-hero .label { font-size: 13px; letter-spacing: .2em; text-align: center; margin-bottom: 14px; }
  .pod-hero h1 { font-size: 40px; text-align: center; margin-bottom: 24px; }
  .pod-hero p { max-width: none; }
  .pod-hero__status { font-size: 11.5px; line-height: 1.8; text-align: center; margin: 24px 0 26px; }
  .pod-hero__links { flex-direction: column; align-items: center; gap: 12px; }

  .pod-topics { padding: 56px 24px 60px; }
  .pod-topics__head { margin-bottom: 26px; }
  .pod-topics h2 { font-size: 34px; line-height: 1.12; }
  .pod-row { grid-template-columns: 1fr; gap: 8px; padding: 24px 0; text-align: center; }
  .pod-row h3 { font-size: 24px; }

  .pod-listen { padding: 56px 24px 60px; }
  .pod-listen__head { margin-bottom: 30px; }
  .pod-listen .label { font-size: 13px; letter-spacing: .2em; margin-bottom: 12px; }
  .pod-listen h2 { font-size: 34px; line-height: 1.12; }
  .pod-listen iframe { height: 232px; }

  .pod-group { padding: 52px 24px 56px; }
  .pod-group .label { font-size: 13px; letter-spacing: .2em; margin-bottom: 14px; }
  .pod-group h2 { font-size: 32px; line-height: 1.12; }
  .pod-group p { text-align: left; margin-bottom: 26px; }
}


/* ==========================================================================
   Rise & Thrive — library
   ========================================================================== */
.rt-lib { background: var(--sand); padding: 88px var(--gutter); }
.rt-lib__intro { max-width: 1120px; margin: 0 auto 44px; text-align: center; }
.rt-lib .label { display: block; font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--salmon-700); margin-bottom: 14px; }
.rt-lib h2 { font-size: 46px; line-height: 1.08; text-transform: uppercase; letter-spacing: .02em; margin-bottom: 12px; }
.rt-lib__intro p { color: var(--text-body); max-width: 640px; margin: 0 auto; }
.rt-lib__inner { max-width: 1120px; margin: 0 auto; }
.rt-lib__group { margin-bottom: 56px; }
.rt-lib__group:last-of-type { margin-bottom: 0; }
.rt-lib__head { padding-bottom: 16px; margin-bottom: 20px; border-bottom: 1px solid var(--charcoal); }
.rt-lib__head h3 { font-family: var(--font-display); font-weight: 400; font-size: 28px; line-height: 1.14; }
.rt-lib__grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 12px; }
.rt-lib__grid img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; display: block; }
.rt-lib__more { font-family: var(--font-display); font-size: 32px; line-height: 1.2; text-align: center; color: var(--salmon-700); margin: 48px auto 0; }

@media (min-width: 1025px) and (max-width: 1240px) {
  .rt-lib h2 { font-size: 34px; }
  .rt-lib__grid { grid-template-columns: repeat(4, 1fr); }
}

@media (max-width: 1024px) {
  .rt-lib { padding: 56px 24px 60px; }
  .rt-lib__intro { margin-bottom: 30px; }
  .rt-lib .label { font-size: 13px; letter-spacing: .2em; margin-bottom: 12px; }
  .rt-lib h2 { font-size: 34px; line-height: 1.12; }
  .rt-lib__group { margin-bottom: 34px; }
  .rt-lib__head { padding-bottom: 12px; margin-bottom: 14px; }
  .rt-lib__head h3 { font-size: 24px; }
  .rt-lib__grid { grid-template-columns: repeat(3, 1fr); gap: 8px; }
  .rt-lib__more { font-size: 28px; margin-top: 34px; }
}


/* ==========================================================================
   Are You An Empath — article
   ========================================================================== */
.emp-hero { background: linear-gradient(180deg, var(--blush-100) 0%, var(--blush) 100%); padding: 72px var(--gutter) 80px; }
.emp-hero__inner { max-width: 820px; margin: 0 auto; text-align: center; }
.emp-hero h1 { font-size: 56px; line-height: 1.06; letter-spacing: .02em; text-transform: uppercase; margin-bottom: 20px; }
.emp-hero p { font-size: 17px; line-height: 1.78; color: var(--text-body); margin: 0; }

.emp-video { background: #fff; padding: 72px var(--gutter) 0; }
.emp-video__inner { max-width: 900px; margin: 0 auto; }
.emp-video__frame { position: relative; width: 100%; aspect-ratio: 16 / 9; background: var(--sand); }
.emp-video__frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: none; }
.emp-video__note { font-size: 12.5px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; text-align: center; color: var(--text-muted); margin: 18px 0 0; }

.emp-body { background: #fff; padding: 24px var(--gutter) 80px; }
.emp-body__inner { max-width: 760px; margin: 0 auto; }
.emp-body h2 { font-size: 38px; line-height: 1.14; margin: 52px 0 22px; }
.emp-body p { font-size: 17px; line-height: 1.78; color: var(--text-body); }
.emp-pull { font-family: var(--font-display); font-size: 28px; line-height: 1.34; color: var(--salmon-700); margin: 34px 0; }

.emp-stats { display: grid; grid-template-columns: repeat(3, 1fr); margin: 34px 0 0; background: var(--cream); }
.emp-stat { padding: 34px 26px; text-align: center; border-right: 1px solid rgba(41, 39, 40, .1); }
.emp-stat:last-child { border-right: none; }
.emp-stat__n { font-family: var(--font-accent); font-weight: 600; font-size: 46px; letter-spacing: .02em; line-height: 1; color: var(--salmon-700); margin-bottom: 8px; }
.emp-stat__l { font-size: 11.5px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; line-height: 1.6; color: var(--text-muted); }

.emp-signs { background: var(--blush-100); padding: 80px var(--gutter); }
.emp-signs__inner { max-width: 760px; margin: 0 auto; }
.emp-signs__head { text-align: center; margin-bottom: 34px; }
.emp-signs h2 { font-size: 42px; line-height: 1.1; text-transform: uppercase; letter-spacing: .02em; margin-bottom: 12px; }
.emp-signs__head p { font-size: 17px; line-height: 1.78; color: var(--text-body); margin: 0; }
.emp-item { padding: 26px 0; border-top: 1px solid var(--border-soft); }
.emp-item:first-of-type { border-top-color: var(--charcoal); }
.emp-item:last-of-type { border-bottom: 1px solid var(--border-soft); }
.emp-item h3 { font-family: var(--font-display); font-weight: 400; font-size: 26px; line-height: 1.16; margin-bottom: 10px; }
.emp-item p { font-size: 17px; line-height: 1.78; color: var(--text-body); margin: 0; }

.emp-thrive {
  padding: 80px var(--gutter);
  background-image: linear-gradient(rgba(255, 255, 255, .58), rgba(255, 255, 255, .58)), url("../assets/img/rt-lavender-gradient.jpg");
  background-size: cover;
  background-position: center;
}
.emp-thrive__inner { max-width: 760px; margin: 0 auto; }
.emp-thrive__head { text-align: center; margin-bottom: 34px; }
.emp-thrive .label { display: block; font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--salmon-700); margin-bottom: 14px; }
.emp-thrive h2 { font-size: 42px; line-height: 1.1; text-transform: uppercase; letter-spacing: .02em; margin-bottom: 12px; }
.emp-thrive__head p, .emp-thrive__close { font-size: 17px; line-height: 1.78; color: var(--text-body); margin: 0; }
.emp-thrive__close { margin-top: 34px; }

.emp-gift { background: #fff; padding: 80px var(--gutter); }
.emp-gift__inner { max-width: 760px; margin: 0 auto; }
.emp-gift h2 { font-size: 40px; line-height: 1.14; text-align: center; margin-bottom: 24px; }
.emp-gift p { font-size: 17px; line-height: 1.78; color: var(--text-body); }

.emp-cta { padding: 80px var(--gutter); background-image: url("../assets/img/gradient-2b.png"); background-size: cover; background-position: center; }
.emp-cta__inner { max-width: 1000px; margin: 0 auto; display: grid; grid-template-columns: 1fr 360px; gap: 72px; align-items: center; }
.emp-cta .label { display: block; font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--salmon-700); margin-bottom: 14px; }
.emp-cta h2 { font-size: 42px; line-height: 1.1; text-transform: uppercase; letter-spacing: .02em; margin-bottom: 18px; }
.emp-cta p { font-size: 17px; line-height: 1.78; color: var(--text-body); max-width: 520px; margin-bottom: 30px; }
.emp-arch { position: relative; padding: 24px 24px 0 0; }
.emp-arch__frame { position: absolute; top: 0; right: 0; width: calc(100% - 24px); height: calc(100% - 24px); border: 1px solid var(--salmon); border-radius: 50% 50% 0 0 / 34% 34% 0 0; }
.emp-arch img { position: relative; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; display: block; border-radius: 50% 50% 0 0 / 34% 34% 0 0; }

@media (min-width: 1025px) and (max-width: 1240px) {
  .emp-hero h1 { font-size: 44px; }
  .emp-body h2 { font-size: 32px; }
  .emp-signs h2, .emp-thrive h2, .emp-cta h2 { font-size: 34px; }
  .emp-gift h2 { font-size: 34px; }
  .emp-cta__inner { grid-template-columns: 1fr 300px; gap: 48px; }
}

@media (max-width: 1024px) {
  .emp-hero { padding: 52px 24px 56px; }
  .emp-hero h1 { font-size: 42px; }
  .emp-hero p { text-align: left; }

  .emp-video { padding: 44px 24px 0; }
  .emp-video__note { font-size: 11.5px; margin-top: 16px; }

  .emp-body { padding: 16px 24px 56px; }
  .emp-body h2 { font-size: 30px; line-height: 1.16; margin: 44px 0 20px; }
  .emp-pull { font-size: 26px; text-align: center; margin: 30px 0; }
  .emp-stats { grid-template-columns: 1fr; margin-top: 30px; }
  .emp-stat { padding: 28px 24px; border-right: none; border-bottom: 1px solid rgba(41, 39, 40, .1); }
  .emp-stat:last-child { border-bottom: none; }
  .emp-stat__n { font-size: 40px; }

  .emp-signs, .emp-thrive { padding: 56px 24px 60px; }
  .emp-signs__head, .emp-thrive__head { margin-bottom: 26px; }
  .emp-signs h2, .emp-thrive h2 { font-size: 34px; line-height: 1.12; }
  .emp-thrive .label { font-size: 13px; letter-spacing: .2em; margin-bottom: 12px; }
  .emp-item { padding: 24px 0; }
  .emp-item h3 { font-family: var(--font-sans); font-size: 18px; font-weight: 700; line-height: 1.5; }
  .emp-thrive__close { margin-top: 30px; }

  .emp-gift { padding: 56px 24px 60px; }
  .emp-gift h2 { font-size: 32px; line-height: 1.16; margin-bottom: 22px; }

  .emp-cta { padding: 52px 24px 58px; }
  .emp-cta__inner { grid-template-columns: 1fr; gap: 0; }
  .emp-cta__inner > div:last-child { order: -1; max-width: 280px; margin: 0 auto 30px; }
  .emp-cta .label { text-align: center; font-size: 13px; letter-spacing: .2em; margin-bottom: 12px; }
  .emp-cta h2 { font-size: 34px; text-align: center; }
  .emp-cta p { max-width: none; margin-bottom: 26px; }
  .emp-cta .btn { margin: 0 auto; }
  .emp-arch { padding: 18px 18px 0 0; }
  .emp-arch__frame { width: calc(100% - 18px); height: calc(100% - 18px); }
}


/* ==========================================================================
   Birth chart guide
   ========================================================================== */
.bcg-hero {
  padding: 88px var(--gutter) 96px;
  background-image: linear-gradient(rgba(19, 26, 58, .44), rgba(19, 26, 58, .56)), url("../assets/img/lots-milkyway.png");
  background-size: cover;
  background-position: center;
}
.bcg-hero__inner { max-width: 820px; margin: 0 auto; text-align: center; }
.bcg-hero h1 { font-size: 52px; line-height: 1.06; letter-spacing: .02em; text-transform: uppercase; color: #fff; text-shadow: 0 2px 22px rgba(19, 26, 58, .5); }

.bcg-intro { background: #fff; padding: 72px var(--gutter) 0; }
.bcg-intro__inner { max-width: 720px; margin: 0 auto; }
.bcg-intro p { color: var(--text-body); }

.bcg-video { background: #fff; padding: 44px var(--gutter) 0; }
.bcg-video__inner { max-width: 900px; margin: 0 auto; }
.bcg-video__frame { position: relative; width: 100%; aspect-ratio: 16 / 9; background: var(--sand); }
.bcg-video__frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: none; }

.bcg-body { background: #fff; padding: 72px var(--gutter); }
.bcg-body__inner { max-width: 720px; margin: 0 auto; }
.bcg-body h2 { font-size: 38px; line-height: 1.14; margin-bottom: 20px; }
.bcg-body h2 + p { color: var(--text-body); margin-bottom: 20px; }
.bcg-body h2.bcg-body__h--gap { margin-top: 56px; }
.bcg-body > .bcg-body__inner > p:last-child { color: var(--text-body); margin: 24px 0 0; }

.bcg-need { display: grid; grid-template-columns: 22px 1fr; gap: 14px; align-items: start; padding: 18px 0; border-top: 1px solid var(--border-soft); }
.bcg-need:first-of-type, .bcg-need--first { border-top-color: var(--charcoal); }
.bcg-need--last { border-bottom: 1px solid var(--border-soft); }
.bcg-need img { width: 12px; height: 12px; margin-top: 9px; opacity: .7; }
.bcg-need p { color: var(--text-body); margin: 0; }

.bcg-step { display: grid; grid-template-columns: 80px 1fr; gap: 32px; align-items: start; padding: 30px 0; border-top: 1px solid var(--border-soft); }
.bcg-step--first { border-top-color: var(--charcoal); }
.bcg-step--last { border-bottom: 1px solid var(--border-soft); }
.bcg-step__n { font-family: var(--font-accent); font-weight: 600; font-size: 22px; letter-spacing: .14em; color: var(--salmon-700); padding-top: 4px; }
.bcg-step__t { font-size: 20px; font-weight: 700; line-height: 1.4; color: var(--charcoal); margin-bottom: 12px; }
.bcg-step__items { display: flex; flex-direction: column; gap: 8px; }
.bcg-sub { display: grid; grid-template-columns: 18px 1fr; gap: 12px; align-items: start; }
.bcg-sub img { width: 10px; height: 10px; margin-top: 11px; opacity: .6; }
.bcg-sub p { color: var(--text-body); margin: 0; }

.bcg-cta { background: var(--lilac-100); padding: 88px var(--gutter); }
.bcg-cta__inner { max-width: 1000px; margin: 0 auto; display: grid; grid-template-columns: 1fr 340px; gap: 64px; align-items: center; }
.bcg-cta .label { display: block; font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--salmon-700); margin-bottom: 14px; }
.bcg-cta h2 { font-size: 42px; line-height: 1.12; margin-bottom: 20px; }
.bcg-cta p { color: var(--text-body); max-width: 520px; }
.bcg-cta img { width: 100%; height: auto; display: block; }
.bcg-cta .btn { margin-top: 8px; }

.bcg-close {
  padding: 88px var(--gutter) 96px;
  background-image: linear-gradient(rgba(19, 26, 58, .44), rgba(19, 26, 58, .56)), url("../assets/img/lots-milkyway.png");
  background-size: cover;
  background-position: center;
}
.bcg-close__inner { max-width: 720px; margin: 0 auto; text-align: center; }
.bcg-close p { font-family: var(--font-display); font-size: 30px; line-height: 1.3; color: #fff; margin: 0 0 30px; text-shadow: 0 2px 18px rgba(19, 26, 58, .45); }

@media (min-width: 1025px) and (max-width: 1240px) {
  .bcg-hero h1 { font-size: 40px; }
  .bcg-body h2, .bcg-cta h2 { font-size: 32px; }
  .bcg-cta__inner { grid-template-columns: 1fr 280px; gap: 44px; }
}

@media (max-width: 1024px) {
  .bcg-hero { padding: 60px 24px 66px; }
  .bcg-hero h1 { font-size: 38px; }

  .bcg-intro { padding: 44px 24px 32px; }
  .bcg-video { padding: 0 24px; }
  .bcg-body { padding: 32px 24px 56px; }
  .bcg-body h2 { font-size: 34px; line-height: 1.16; }
  .bcg-step { grid-template-columns: 44px 1fr; gap: 16px; }

  .bcg-cta { padding: 56px 24px 60px; }
  .bcg-cta__inner { grid-template-columns: 1fr; gap: 0; }
  .bcg-cta__inner > div { display: flex; flex-direction: column; }
  .bcg-cta .label { font-size: 13px; text-align: center; }
  .bcg-cta h2 { font-size: 32px; line-height: 1.14; text-align: center; }
  .bcg-cta p { max-width: none; }
  .bcg-cta .btn { margin: 0 auto; }
  .bcg-cta figure { order: -1; max-width: 280px; margin: 0 auto 26px; }

  .bcg-close { padding: 60px 24px 66px; }
  .bcg-close p { font-size: 26px; }
}


/* ==========================================================================
   Free blend pages
   ========================================================================== */
.blend-hero {
  padding: 80px var(--gutter) 88px;
  background-image: linear-gradient(rgba(255, 255, 255, .34), rgba(255, 255, 255, .26)), url("../assets/img/rt-lavender-gradient.jpg");
  background-size: cover;
  background-position: center;
}
.blend-hero__inner { max-width: 760px; margin: 0 auto; text-align: center; }
.blend-hero .label { display: block; font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--salmon-700); margin-bottom: 16px; }
.blend-hero h1 { font-size: 52px; line-height: 1.06; letter-spacing: .02em; text-transform: uppercase; margin-bottom: 22px; }
.blend-hero p { color: var(--text-body); margin: 0; }

.blend-recipe { background: #fff; padding: 80px var(--gutter); }
.blend-recipe__inner { max-width: 760px; margin: 0 auto; }
.blend-recipe h2 { font-size: 40px; line-height: 1.12; text-transform: uppercase; letter-spacing: .02em; margin-bottom: 26px; }
.blend-oil { display: grid; grid-template-columns: 72px 1fr; gap: 28px; align-items: start; padding: 26px 0; border-top: 1px solid var(--border-soft); }
.blend-oil--first { border-top-color: var(--charcoal); }
.blend-oil--last { border-bottom: 1px solid var(--border-soft); }
.blend-oil__n { font-family: var(--font-accent); font-weight: 600; font-size: 34px; letter-spacing: .02em; line-height: 1; color: var(--salmon-700); }
.blend-oil__unit { font-size: 11px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--text-muted); margin-top: 6px; }
.blend-oil h3 { font-family: var(--font-display); font-weight: 400; font-size: 26px; line-height: 1.14; margin-bottom: 8px; }
.blend-oil p { color: var(--text-body); margin: 0; }

.blend-how { background: var(--cream); padding: 80px var(--gutter); }
.blend-how__inner { max-width: 760px; margin: 0 auto; }
.blend-how h2 { font-size: 40px; line-height: 1.12; text-transform: uppercase; letter-spacing: .02em; margin-bottom: 26px; }
.blend-step { display: grid; grid-template-columns: 22px 1fr; gap: 14px; align-items: start; padding: 18px 0; border-top: 1px solid var(--border-soft); }
.blend-step--first { border-top-color: var(--charcoal); }
.blend-step--last { border-bottom: 1px solid var(--border-soft); }
.blend-step img { width: 11px; height: 11px; margin-top: 10px; opacity: .65; }
.blend-step p { color: var(--text-body); margin: 0; }

.blend-rise { background: var(--blush); padding: 88px var(--gutter); }
.blend-rise__inner { max-width: 1000px; margin: 0 auto; display: grid; grid-template-columns: 1fr 340px; gap: 64px; align-items: center; }
.blend-rise h2 { font-size: 42px; line-height: 1.12; margin-bottom: 20px; }
.blend-rise p { color: var(--text-body); max-width: 520px; margin-bottom: 26px; }
.blend-rise__media { position: relative; padding: 20px 20px 0 0; }
.blend-rise__media::before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  width: calc(100% - 20px);
  height: calc(100% - 20px);
  border: 1px solid var(--salmon);
  border-radius: 50% 50% 0 0 / 34% 34% 0 0;
}
.blend-rise__media img { position: relative; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; display: block; border-radius: 50% 50% 0 0 / 34% 34% 0 0; }

@media (min-width: 1025px) and (max-width: 1240px) {
  .blend-hero h1 { font-size: 40px; }
  .blend-recipe h2, .blend-how h2, .blend-rise h2 { font-size: 32px; }
  .blend-rise__inner { grid-template-columns: 1fr 280px; gap: 44px; }
}

@media (max-width: 1024px) {
  .blend-hero { padding: 56px 24px 60px; }
  .blend-hero .label { font-size: 13px; letter-spacing: .2em; margin-bottom: 14px; }
  .blend-hero h1 { font-size: 42px; margin-bottom: 20px; }

  .blend-recipe, .blend-how { padding: 56px 24px 60px; }
  .blend-recipe h2, .blend-how h2 { font-size: 34px; margin-bottom: 24px; }
  .blend-oil { grid-template-columns: 62px 1fr; gap: 20px; padding: 24px 0; }
  .blend-oil__n { font-size: 30px; }
  .blend-oil h3 { font-size: 25px; }
  .blend-step { grid-template-columns: 20px 1fr; gap: 12px; }

  .blend-rise { padding: 56px 24px 60px; }
  .blend-rise__inner { grid-template-columns: 1fr; gap: 0; }
  .blend-rise__inner > div { display: flex; flex-direction: column; }
  .blend-rise h2 { font-size: 34px; text-align: center; }
  .blend-rise p { max-width: none; }
  .blend-rise .btn { margin: 0 auto; }
  .blend-rise__media { order: -1; max-width: 280px; margin: 0 auto 28px; padding: 20px 20px 0 0; }
}


/* ==========================================================================
   Spirit of Jasmine
   ========================================================================== */
.jas-hero { background: var(--lilac-100); padding: 88px var(--gutter) 96px; }
.jas-hero__inner { max-width: 900px; margin: 0 auto; }
.jas-hero h1 { font-size: 50px; line-height: 1.08; letter-spacing: .02em; text-transform: uppercase; text-align: center; margin-bottom: 26px; }
.jas-hero p { color: var(--text-body); max-width: 760px; margin: 0 auto; font-size: 17px; line-height: 1.78; }

.jas-prose { padding: 72px var(--gutter); }
.jas-prose--white { background: #fff; }
.jas-prose--dark { background: var(--charcoal); }
.jas-prose__inner { max-width: 760px; margin: 0 auto; }
.jas-prose h2 { font-size: 38px; line-height: 1.14; margin-bottom: 16px; }
.jas-prose h2.jas-prose__h--gap { margin-top: 56px; margin-bottom: 20px; }
.jas-prose p { color: var(--text-body); font-size: 17px; line-height: 1.78; }
.jas-prose--dark h2 { color: #fff; }
.jas-prose--dark p { color: rgba(255, 255, 255, .88); }
.jas-prose__lead { margin-bottom: 22px; }

.jas-item { display: grid; grid-template-columns: 22px 1fr; gap: 14px; align-items: start; padding: 18px 0; border-top: 1px solid var(--border-soft); }
.jas-item--first { padding: 0 0 18px; border-top: none; }
.jas-item--last { border-bottom: 1px solid var(--border-soft); }
.jas-item img { width: 12px; height: 12px; margin-top: 10px; opacity: .7; }
.jas-item p { margin: 0; }
.jas-prose--dark .jas-item { border-top-color: rgba(255, 255, 255, .16); }
.jas-prose--dark .jas-item--last { border-bottom-color: rgba(255, 255, 255, .16); }
.jas-prose--dark .jas-item img { opacity: .85; }

.jas-video { background: var(--lilac-100); padding: 80px var(--gutter); }
.jas-video__inner { max-width: 900px; margin: 0 auto; }
.jas-video .label { display: block; font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; text-align: center; color: var(--salmon-700); margin-bottom: 14px; }
.jas-video h2 { font-size: 38px; line-height: 1.14; text-align: center; margin-bottom: 30px; }
.jas-video__frame { position: relative; width: 100%; aspect-ratio: 16 / 9; background: var(--sand); }
.jas-video__frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: none; }

.jas-book { background: var(--cream); padding: 80px var(--gutter); }
.jas-book__inner { max-width: 1000px; margin: 0 auto; display: grid; grid-template-columns: 300px 1fr; gap: 64px; align-items: center; }
.jas-book__cover:hover { opacity: .92; }
.jas-book__cover img { width: 100%; height: auto; display: block; }
.jas-book .label { display: block; font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--salmon-700); margin-bottom: 14px; }
.jas-book h2 { font-size: 40px; line-height: 1.12; margin-bottom: 18px; }
.jas-book p { color: var(--text-body); font-size: 17px; line-height: 1.78; max-width: 520px; }
.jas-book__list { margin-bottom: 26px; }
.jas-book__links { display: flex; gap: 14px; flex-wrap: wrap; }

.jas-rise { background: var(--blush); padding: 88px var(--gutter); }
.jas-rise__inner { max-width: 1000px; margin: 0 auto; display: grid; grid-template-columns: 1fr 380px; gap: 64px; align-items: center; }
.jas-rise .label { display: block; font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--salmon-700); margin-bottom: 14px; }
.jas-rise h2 { font-size: 42px; line-height: 1.12; margin-bottom: 20px; }
.jas-rise p { color: var(--text-body); font-size: 17px; line-height: 1.78; max-width: 520px; margin-bottom: 26px; }
.jas-arch { position: relative; padding: 24px 24px 0 0; }
.jas-arch__frame { position: absolute; top: 0; right: 0; width: calc(100% - 24px); height: calc(100% - 24px); border: 1px solid var(--salmon); border-radius: 50% 50% 0 0 / 34% 34% 0 0; }
.jas-arch img { position: relative; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; display: block; border-radius: 50% 50% 0 0 / 34% 34% 0 0; }

@media (min-width: 1025px) and (max-width: 1240px) {
  .jas-hero h1 { font-size: 40px; }
  .jas-prose h2, .jas-video h2, .jas-book h2, .jas-rise h2 { font-size: 32px; }
  .jas-book__inner { grid-template-columns: 240px 1fr; gap: 44px; }
  .jas-rise__inner { grid-template-columns: 1fr 300px; gap: 44px; }
}

@media (max-width: 1024px) {
  .jas-hero { padding: 52px 24px 58px; }
  .jas-hero h1 { font-size: 38px; line-height: 1.1; margin-bottom: 22px; }
  .jas-hero p, .jas-prose p, .jas-book p, .jas-rise p { font-size: 16.5px; line-height: 1.75; }

  .jas-prose { padding: 52px 24px 56px; }
  .jas-prose h2 { font-size: 32px; line-height: 1.16; margin-bottom: 14px; }
  .jas-prose h2.jas-prose__h--gap { margin-top: 48px; margin-bottom: 18px; }
  .jas-item { grid-template-columns: 20px 1fr; gap: 12px; padding: 16px 0; }
  .jas-item--first { padding: 0 0 16px; }
  .jas-item img { width: 11px; height: 11px; margin-top: 9px; }

  .jas-video { padding: 52px 24px 56px; }
  .jas-video .label { font-size: 13px; letter-spacing: .2em; margin-bottom: 12px; }
  .jas-video h2 { font-size: 32px; line-height: 1.16; margin-bottom: 24px; }

  .jas-book { padding: 52px 24px 56px; }
  .jas-book__inner { grid-template-columns: 1fr; gap: 0; }
  .jas-book__inner > div { display: flex; flex-direction: column; }
  .jas-book .label { font-size: 13px; text-align: center; letter-spacing: .2em; margin-bottom: 12px; }
  .jas-book h2 { font-size: 32px; line-height: 1.16; text-align: center; margin-bottom: 26px; }
  .jas-book p { max-width: none; }
  .jas-book__cover { order: -1; margin-bottom: 26px; }
  .jas-book__cover img { height: 260px; width: auto; max-width: 100%; object-fit: contain; margin: 0 auto; }
  .jas-book__links { flex-direction: column; align-items: center; }

  .jas-rise { padding: 52px 24px 58px; }
  .jas-rise__inner { grid-template-columns: 1fr; gap: 0; }
  .jas-rise__inner > div:first-child { display: flex; flex-direction: column; }
  .jas-rise .label { font-size: 13px; text-align: center; letter-spacing: .2em; margin-bottom: 12px; }
  .jas-rise h2 { font-size: 34px; line-height: 1.14; text-align: center; margin-bottom: 24px; }
  .jas-rise p { max-width: none; }
  .jas-rise .btn { margin: 0 auto; }
  .jas-arch { order: -1; max-width: 300px; margin: 0 auto 26px; padding: 20px 20px 0 0; }
  .jas-arch__frame { width: calc(100% - 20px); height: calc(100% - 20px); }
}


/* ==========================================================================
   Essay pages (Constructive Complaining)
   ========================================================================== */
.essay-hero { background: var(--sand); padding: 88px var(--gutter) 96px; }
.essay-hero__inner { max-width: 760px; margin: 0 auto; text-align: center; }
.essay-hero h1 { font-size: 56px; line-height: 1.06; letter-spacing: .02em; text-transform: uppercase; margin-bottom: 34px; }
.essay-hero__epigraph { font-family: var(--font-display); font-size: 28px; font-style: italic; line-height: 1.4; color: var(--charcoal); margin: 0 0 14px; }
.essay-hero__src { font-size: 12.5px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--text-muted); }

.essay-body { background: #fff; padding: 80px var(--gutter); }
.essay-body--top { padding-bottom: 0; }
.essay-body--tail { padding-top: 0; }
.essay-body__inner { max-width: 680px; margin: 0 auto; }
.essay-body p { color: var(--text-body); font-size: 17px; line-height: 1.8; margin-bottom: 22px; }
.essay-body p:last-child { margin-bottom: 0; }

.essay-defs { background: #fff; padding: 64px var(--gutter); }
.essay-defs__inner { max-width: 760px; margin: 0 auto; }
.essay-defs h2 { font-size: 38px; line-height: 1.14; text-align: center; margin-bottom: 34px; }
.essay-defs__grid { display: grid; grid-template-columns: repeat(3, 1fr); }
.essay-def { min-width: 0; padding: 28px 32px; border-top: 1px solid var(--charcoal); border-right: 1px solid var(--border-soft); }
.essay-def:first-child { padding: 28px 32px 28px 0; }
.essay-def:last-child { padding: 28px 0 28px 32px; border-right: none; }
.essay-def p { color: var(--text-body); font-size: 16.5px; line-height: 1.8; margin: 0; }

.essay-pull { padding: 80px var(--gutter); }
.essay-pull--peach { background: var(--peach); }
.essay-pull--dark { background: var(--charcoal); padding: 88px var(--gutter); }
.essay-pull__inner { max-width: 820px; margin: 0 auto; text-align: center; }
.essay-pull__q { font-family: var(--font-display); font-size: 36px; line-height: 1.26; color: var(--charcoal); margin: 0 0 20px; }
.essay-pull__sub { font-size: 17px; line-height: 1.8; color: var(--charcoal); margin: 0; }
.essay-pull--dark .essay-pull__inner { max-width: 760px; }
.essay-pull--dark .essay-pull__q { font-size: 38px; color: #fff; margin: 0; }

@media (min-width: 1025px) and (max-width: 1240px) {
  .essay-hero h1 { font-size: 42px; }
  .essay-defs h2 { font-size: 32px; }
  .essay-pull__q, .essay-pull--dark .essay-pull__q { font-size: 30px; }
}

@media (max-width: 1024px) {
  .essay-hero { padding: 52px 24px 58px; }
  .essay-hero h1 { font-size: 36px; line-height: 1.1; letter-spacing: .01em; margin-bottom: 28px; }
  .essay-hero__epigraph { font-size: 24px; }
  .essay-hero__src { font-size: 11.5px; }

  .essay-body { padding: 52px 24px 56px; }
  .essay-body--top { padding: 52px 24px 0; }
  .essay-body--tail { padding: 0 24px 52px; }
  .essay-body p { font-size: 16.5px; line-height: 1.78; margin-bottom: 20px; }

  .essay-defs { padding: 48px 24px; }
  .essay-defs h2 { font-size: 32px; line-height: 1.16; margin-bottom: 26px; }
  .essay-defs__grid { grid-template-columns: 1fr; }
  .essay-def, .essay-def:first-child, .essay-def:last-child { padding: 20px 0; text-align: center; border-right: none; border-top: 1px solid var(--border-soft); }
  .essay-def:first-child { padding: 0 0 20px; border-top: none; }

  .essay-pull { padding: 52px 24px 56px; }
  .essay-pull--dark { padding: 56px 24px 60px; }
  .essay-pull__q, .essay-pull--dark .essay-pull__q { font-size: 30px; }
  .essay-pull__sub { font-size: 16.5px; line-height: 1.78; }
}


/* ==========================================================================
   Resources index
   ========================================================================== */
.res-hero { background: var(--cream); padding: 80px var(--gutter) 88px; }
.res-hero__inner { max-width: 820px; margin: 0 auto; text-align: center; }
.res-hero .label { display: block; font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--salmon-700); margin-bottom: 16px; }
.res-hero h1 { font-size: 56px; line-height: 1.06; letter-spacing: .02em; text-transform: uppercase; margin: 0; }

.res-feat { padding: 88px var(--gutter); }
.res-feat--white { background: #fff; }
.res-feat--blush { background: var(--blush-100); }
.res-feat--cream { background: var(--cream); }
.res-feat--sand { background: var(--sand); }
.res-feat__inner { max-width: 1000px; margin: 0 auto; display: grid; grid-template-columns: 380px 1fr; gap: 72px; align-items: center; }
.res-feat__inner--flip { grid-template-columns: 1fr 380px; }
.res-feat .label { display: block; font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--salmon-700); margin-bottom: 14px; }
.res-feat h2 { font-size: 42px; line-height: 1.12; margin-bottom: 20px; }
.res-feat p { color: var(--text-body); max-width: 540px; }
.res-feat .btn { margin-top: 8px; }
.res-feat img { width: 100%; height: auto; display: block; }
.res-feat img.res-feat__portrait { aspect-ratio: 4 / 5; object-fit: cover; object-position: center 22%; }

.res-group { padding: 80px var(--gutter); }
.res-group--lilac { background: var(--lilac-100); }
.res-group--white { background: #fff; }
.res-group--sand { background: var(--sand); }
.res-group__head { max-width: var(--container); margin: 0 auto 36px; text-align: center; }
.res-group h2 { font-size: 42px; line-height: 1.12; text-transform: uppercase; letter-spacing: .02em; margin: 0; }
.res-group__grid { max-width: 1120px; margin: 0 auto; display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.res-tile { display: block; text-decoration: none; min-width: 0; }
.res-tile:hover { opacity: .9; }
.res-tile img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; margin-bottom: 14px; }
.res-tile__t { font-family: var(--font-display); font-size: 22px; line-height: 1.18; color: var(--charcoal); }
.res-ph { min-width: 0; }
.res-ph__box { width: 100%; aspect-ratio: 4 / 3; background: rgba(41, 39, 40, .06); margin-bottom: 14px; }
.res-ph__t { font-size: 11.5px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--text-muted); }

@media (min-width: 1025px) and (max-width: 1240px) {
  .res-hero h1 { font-size: 44px; }
  .res-feat__inner { grid-template-columns: 300px 1fr; gap: 44px; }
  .res-feat__inner--flip { grid-template-columns: 1fr 300px; }
  .res-feat h2, .res-group h2 { font-size: 34px; }
  .res-group__grid { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 1024px) {
  .res-hero { padding: 52px 24px 56px; }
  .res-hero .label { font-size: 13px; letter-spacing: .2em; margin-bottom: 14px; }
  .res-hero h1 { font-size: 42px; }

  .res-feat { padding: 52px 24px 56px; }
  .res-feat__inner, .res-feat__inner--flip { grid-template-columns: 1fr; gap: 0; }
  .res-feat__inner > div { display: flex; flex-direction: column; }
  .res-feat__inner img, .res-feat__inner > figure { order: -1; margin-bottom: 26px; }
  .res-feat .label { font-size: 13px; text-align: center; }
  .res-feat h2 { font-size: 32px; line-height: 1.14; text-align: center; }
  .res-feat p { max-width: none; }
  .res-feat .btn { margin: 0 auto; }

  .res-group { padding: 44px 24px 52px; }
  .res-group__head { margin-bottom: 24px; }
  .res-group h2 { font-size: 32px; line-height: 1.14; }
  .res-group__grid { grid-template-columns: 1fr 1fr; gap: 18px; }
  .res-tile img, .res-ph__box { margin-bottom: 10px; }
  .res-tile__t { font-size: 19px; }
  .res-ph__t { font-size: 10.5px; }
}


/* ==========================================================================
   Fate + Fortune thank you
   ========================================================================== */
.fft-hero, .fft-close {
  background-image: url("../assets/img/ff-gradient.png");
  background-size: cover;
  background-position: center;
}
.fft-hero { padding: 96px var(--gutter) 104px; }
.fft-hero__inner { max-width: 820px; margin: 0 auto; text-align: center; }
.fft-hero .label { display: block; font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--salmon-700); margin-bottom: 20px; }
.fft-hero h1 { font-size: 76px; line-height: 1.02; letter-spacing: .02em; text-transform: uppercase; margin-bottom: 24px; }
.fft-hero__when { font-size: 19px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; line-height: 1.7; color: var(--charcoal); margin-bottom: 26px; }
.fft-hero__when br { display: none; }
.fft-hero p { color: var(--text-body); max-width: 620px; margin: 0 auto; }

.fft-steps { background: #fff; padding: 88px var(--gutter); }
.fft-steps__inner { max-width: 820px; margin: 0 auto; }
.fft-steps__head { text-align: center; margin-bottom: 40px; }
.fft-steps .label { display: block; font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--salmon-700); margin-bottom: 14px; }
.fft-steps h2, .fft-facts h2 { font-size: 42px; line-height: 1.12; text-transform: uppercase; letter-spacing: .02em; margin: 0; }
.fft-step { display: grid; grid-template-columns: 80px 1fr; gap: 32px; align-items: start; padding: 30px 0; border-top: 1px solid var(--border-soft); }
.fft-step:first-of-type { border-top-color: var(--charcoal); }
.fft-step:last-of-type { border-bottom: 1px solid var(--border-soft); }
.fft-step__n { font-family: var(--font-accent); font-weight: 600; font-size: 22px; letter-spacing: .14em; color: var(--salmon-700); padding-top: 4px; }
.fft-step__t { font-size: 20px; font-weight: 700; line-height: 1.4; color: var(--charcoal); margin-bottom: 10px; }
.fft-step p { color: var(--text-body); margin: 0; }

.fft-facts { background: var(--cream); padding: 88px var(--gutter); }
.fft-facts__inner { max-width: 820px; margin: 0 auto; }
.fft-facts h2 { text-align: center; margin-bottom: 36px; }
.fft-fact { display: grid; grid-template-columns: 150px 1fr; gap: 32px; align-items: baseline; padding: 24px 0; border-top: 1px solid var(--border-soft); }
.fft-fact:first-of-type { border-top-color: var(--charcoal); }
.fft-fact:last-of-type { border-bottom: 1px solid var(--border-soft); }
.fft-fact__k { font-size: 12.5px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--text-muted); }
.fft-fact p { color: var(--text-body); margin: 0; }
.fft-facts__note { color: var(--text-body); text-align: center; margin: 34px 0 0; }

.fft-close { padding: 88px var(--gutter) 96px; }
.fft-close__inner { max-width: 720px; margin: 0 auto; text-align: center; }
.fft-close__pull { font-family: var(--font-display); font-size: 34px; line-height: 1.26; color: var(--charcoal); margin: 0 0 18px; }
.fft-close p:last-child { color: var(--text-body); margin: 0; }

@media (min-width: 1025px) and (max-width: 1240px) {
  .fft-hero h1 { font-size: 56px; }
  .fft-steps h2, .fft-facts h2 { font-size: 34px; }
  .fft-close__pull { font-size: 28px; }
}

@media (max-width: 1024px) {
  .fft-hero { padding: 60px 24px 66px; }
  .fft-hero .label { font-size: 13px; letter-spacing: .2em; margin-bottom: 16px; }
  .fft-hero h1 { font-size: 54px; margin-bottom: 20px; }
  .fft-hero__when { font-size: 14px; letter-spacing: .16em; margin-bottom: 22px; }
  .fft-hero__when br { display: inline; }
  .fft-hero p { text-align: left; max-width: none; }

  .fft-steps { padding: 56px 24px 60px; }
  .fft-steps__head { margin-bottom: 26px; }
  .fft-steps .label { font-size: 13px; letter-spacing: .2em; margin-bottom: 12px; }
  .fft-steps h2, .fft-facts h2 { font-size: 32px; line-height: 1.14; }
  .fft-step { grid-template-columns: 1fr; gap: 0; padding: 26px 0; text-align: center; }
  .fft-step__n { font-size: 19px; padding-top: 0; margin-bottom: 8px; }
  .fft-step__t { font-size: 18px; }

  .fft-facts { padding: 56px 24px 60px; }
  .fft-facts h2 { margin-bottom: 26px; }
  .fft-fact { grid-template-columns: 1fr; gap: 0; padding: 22px 0; text-align: center; }
  .fft-fact__k { font-size: 11.5px; margin-bottom: 8px; }
  .fft-facts__note { margin-top: 28px; }

  .fft-close { padding: 56px 24px 62px; }
  .fft-close__pull { font-size: 28px; margin-bottom: 16px; }
}

.eom-bonus { background: #fff; padding: 88px var(--gutter); }
.eom-bonus .eom-sched__head p + p { margin-top: 14px; }
.eom-call--bonus:last-of-type { border-bottom: 1px solid var(--border-soft); }
.eom-bonus .eom-call { grid-template-columns: 130px 1fr auto; }
@media (max-width: 1024px) {
  .eom-bonus { padding: 56px 24px 60px; }
  .eom-bonus .eom-call { grid-template-columns: 1fr; }
}


/* ==========================================================================
   Fate + Fortune — sold out
   ========================================================================== */
.ffso-hero {
  padding: 96px var(--gutter) 104px;
  background-image: url("../assets/img/ff-gradient.png");
  background-size: cover;
  background-position: center;
}
.ffso-hero__inner { max-width: 820px; margin: 0 auto; text-align: center; }
.ffso-hero .label { display: block; font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--salmon-700); margin-bottom: 20px; }
.ffso-hero h1 { font-size: 76px; line-height: 1.02; letter-spacing: .02em; text-transform: uppercase; margin-bottom: 24px; }
.ffso-hero p.ffso-hero__status { font-size: 19px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; line-height: 1.7; color: var(--charcoal); margin-bottom: 30px; }
.ffso-hero p { color: var(--text-body); margin: 0; }

.ffso-next { background: #fff; padding: 88px var(--gutter); }
.ffso-next__head { max-width: var(--container); margin: 0 auto 44px; text-align: center; }
.ffso-next .label { display: block; font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--salmon-700); margin-bottom: 14px; }
.ffso-next h2 { font-size: 42px; line-height: 1.12; text-transform: uppercase; letter-spacing: .02em; margin: 0; }
.ffso-next__grid { max-width: 1120px; margin: 0 auto; display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; align-items: stretch; }

.ffso-card {
  display: flex;
  flex-direction: column;
  gap: 12px;
  background: #fff;
  border: 1px solid var(--border-soft);
  padding: 34px 30px 30px;
  text-decoration: none;
  min-width: 0;
  transition: border-color var(--dur-fast) var(--ease-out);
}
.ffso-card:hover { border-color: var(--charcoal); }
.ffso-card h3 { font-family: var(--font-display); font-weight: 400; font-size: 27px; line-height: 1.14; color: var(--charcoal); }
.ffso-card p { color: var(--text-body); margin: 0; flex-grow: 1; }
.ffso-card__cta { font-size: 11.5px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--salmon-700); }

@media (min-width: 1025px) and (max-width: 1240px) {
  .ffso-hero h1 { font-size: 58px; }
  .ffso-next h2 { font-size: 34px; }
}

@media (max-width: 1024px) {
  .ffso-hero { padding: 56px 24px 62px; }
  .ffso-hero .label { font-size: 13px; letter-spacing: .2em; margin-bottom: 16px; }
  .ffso-hero h1 { font-size: 50px; margin-bottom: 20px; }
  .ffso-hero p.ffso-hero__status { font-size: 15px; letter-spacing: .18em; margin-bottom: 24px; }
  .ffso-hero p { text-align: left; }

  .ffso-next { padding: 56px 24px 60px; }
  .ffso-next__head { margin-bottom: 28px; }
  .ffso-next .label { font-size: 13px; letter-spacing: .2em; margin-bottom: 12px; }
  .ffso-next h2 { font-size: 32px; line-height: 1.12; }
  .ffso-next__grid { grid-template-columns: 1fr; gap: 16px; }
  .ffso-card { padding: 28px 24px 26px; }
  .ffso-card h3 { font-size: 25px; }
}


/* ==========================================================================
   Cypress article — additions on top of the .jas-* article system
   ========================================================================== */
.cy-hero__sub { font-size: 15px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; line-height: 1.8; text-align: center; color: var(--salmon-700); margin: 0; }
.cy-pair { background: var(--lilac-100); padding: 80px var(--gutter); }
.cy-pair__inner { max-width: 820px; margin: 0 auto; }
.cy-pair__head { text-align: center; margin-bottom: 34px; }
.cy-pair .label { display: block; font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--salmon-700); margin-bottom: 14px; }
.cy-pair h2 { font-size: 40px; line-height: 1.12; margin: 0; }
.cy-pair__recipe { background: rgba(255, 255, 255, .72); padding: 40px 44px; margin-bottom: 34px; text-align: center; }
.cy-pair__recipe-label { font-size: 12.5px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--text-muted); margin-bottom: 20px; }
.cy-pair__drops { font-family: var(--font-display); font-size: 30px; line-height: 1.5; color: var(--charcoal); }
.cy-pair__lead { color: var(--text-body); font-size: 17px; line-height: 1.78; text-align: center; margin: 0 0 20px; }

@media (min-width: 1025px) and (max-width: 1240px) {
  .cy-pair h2 { size: 32px; font-size: 32px; }
}

@media (max-width: 1024px) {
  .cy-hero__sub { font-size: 13px; }
  .cy-pair { padding: 52px 24px 56px; }
  .cy-pair__head { margin-bottom: 24px; }
  .cy-pair .label { font-size: 13px; letter-spacing: .2em; margin-bottom: 12px; }
  .cy-pair h2 { font-size: 32px; line-height: 1.14; }
  .cy-pair__recipe { padding: 30px 24px; margin-bottom: 26px; }
  .cy-pair__recipe-label { font-size: 11.5px; margin-bottom: 16px; }
  .cy-pair__drops { font-size: 26px; }
  .cy-pair__lead { font-size: 16.5px; line-height: 1.75; margin-bottom: 16px; }
}


/* ==========================================================================
   Essential oil substitutions
   ========================================================================== */
.sub-hero__mark { width: 52px; height: auto; display: block; margin: 0 auto 26px; }

.sub-video { background: #fff; padding: 44px var(--gutter) 0; }
.sub-video__inner { max-width: 900px; margin: 0 auto; }
.sub-video__frame { position: relative; width: 100%; aspect-ratio: 16 / 9; background: var(--sand); }
.sub-video__frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: none; }

.jas-prose p.sub-pull { font-family: var(--font-display); font-size: 28px; line-height: 1.3; text-align: center; color: var(--salmon-700); margin: 40px 0 0; }

.sub-book { background: var(--cream); padding: 88px var(--gutter); }
.sub-book__inner { max-width: 1000px; margin: 0 auto; display: grid; grid-template-columns: 300px 1fr; gap: 60px; align-items: center; }
.sub-book__inner > img { width: 100%; height: auto; display: block; }
.sub-book .label { display: block; font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--salmon-700); margin-bottom: 26px; }
.sub-book h2 { font-size: 40px; line-height: 1.12; margin: 20px 0; }
.sub-book p { color: var(--text-body); max-width: 480px; }
.sub-book .btn { margin-top: 8px; }

.sub-guide {
  padding: 80px var(--gutter);
  background-image: url("../assets/img/gradient-2b.png");
  background-size: cover;
  background-position: center;
}
.sub-guide__inner { max-width: 1000px; margin: 0 auto; display: grid; grid-template-columns: 1fr 340px; gap: 60px; align-items: center; }
.sub-guide__inner > img { width: 100%; height: auto; display: block; }
.sub-guide .label { display: block; font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--salmon-700); margin-bottom: 26px; }
.sub-guide h2 { font-size: 40px; line-height: 1.12; text-transform: uppercase; letter-spacing: .02em; margin: 20px 0 18px; }
.sub-guide p { color: var(--text-body); max-width: 480px; margin-bottom: 28px; }

@media (min-width: 1025px) and (max-width: 1240px) {
  .sub-book h2, .sub-guide h2 { font-size: 32px; }
  .sub-book__inner { grid-template-columns: 240px 1fr; gap: 40px; }
  .sub-guide__inner { grid-template-columns: 1fr 280px; gap: 40px; }
}

@media (max-width: 1024px) {
  .sub-video { padding: 28px 24px 0; }
  .jas-prose p.sub-pull { font-size: 24px; line-height: 1.32; }

  .sub-book { padding: 56px 24px 60px; }
  .sub-book__inner { grid-template-columns: 1fr; gap: 26px; }
  .sub-book__inner > img { width: 230px; margin: 0 auto; }
  .sub-book .label { text-align: center; font-size: 13px; letter-spacing: .2em; margin-bottom: 22px; }
  .sub-book h2 { font-size: 30px; line-height: 1.14; text-align: center; margin: 16px 0 18px; }
  .sub-book p { max-width: none; }
  .sub-book .btn { margin: 0 auto; }

  .sub-guide { padding: 52px 24px 56px; }
  .sub-guide__inner { grid-template-columns: 1fr; gap: 26px; }
  .sub-guide__inner > div { order: 2; }
  .sub-guide__inner > img { order: 1; }
  .sub-guide .label { text-align: center; font-size: 13px; letter-spacing: .2em; margin-bottom: 22px; }
  .sub-guide h2 { font-size: 30px; line-height: 1.14; text-align: center; margin: 16px 0 18px; }
  .sub-guide p { max-width: none; margin-bottom: 26px; }
  .sub-guide .btn { margin: 0 auto; display: flex; width: fit-content; }
}


.res-sub { max-width: 1120px; margin: 0 auto; }
.res-sub + .res-sub { margin-top: 56px; }
.res-sub__label { font-size: 12.5px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--text-muted); padding-bottom: 14px; margin-bottom: 22px; border-bottom: 1px solid var(--charcoal); }
@media (max-width: 1024px) {
  .res-sub + .res-sub { margin-top: 40px; }
  .res-sub__label { font-size: 11.5px; letter-spacing: .18em; }
}


/* ==========================================================================
   Wood Element article
   ========================================================================== */
.wood-hero { background: var(--sand); }
.wood-intro { padding-bottom: 44px; }
.wood-video { padding-top: 0; }
.wood-video__head { text-align: center; margin-bottom: 30px; }
.wood-video__head .label { display: block; font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--salmon-700); margin-bottom: 14px; }
.wood-video__head h2 { font-size: 36px; line-height: 1.16; margin-bottom: 14px; }
.wood-video__head p { font-style: italic; color: var(--text-body); margin: 0; }

.jas-prose.wood-prose--cream { background: var(--cream); }

.wood-organs { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; margin: 24px 0; }
.wood-organ { background: #fff; border: 1px solid var(--border-soft); padding: 28px 26px; }
.wood-organ__n { font-family: var(--font-display); font-size: 28px; line-height: 1.16; color: var(--charcoal); margin-bottom: 8px; }
.wood-organ__r { font-size: 12.5px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--salmon-700); }

.wood-imbalance__head { text-align: center; margin-bottom: 40px; }
.wood-imbalance__head .label { display: block; font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--salmon-300); margin-bottom: 14px; }
.wood-imbalance__head h2 { font-size: 42px; line-height: 1.12; color: #fff; margin-bottom: 20px; }

.wood-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; }
.wood-cols--light { gap: 44px; }
.wood-cols__t { font-family: var(--font-display); font-size: 30px; line-height: 1.16; color: #fff; margin-bottom: 10px; }
.wood-sub { font-size: 20px; font-weight: 700; line-height: 1.4; color: var(--charcoal); margin-bottom: 12px; }

.jas-book.wood-pillars { background: var(--cream); }
.wood-pillars .jas-book__inner { grid-template-columns: 1fr 360px; }
.wood-pillars__art img { width: 100%; height: auto; display: block; }

@media (min-width: 1025px) and (max-width: 1240px) {
  .wood-video__head h2, .wood-imbalance__head h2 { font-size: 32px; }
  .wood-cols { gap: 36px; }
  .wood-pillars .jas-book__inner { grid-template-columns: 1fr 280px; gap: 40px; }
}

@media (max-width: 1024px) {
  .wood-intro { padding-bottom: 28px; }
  .wood-video__head .label { font-size: 13px; letter-spacing: .2em; }
  .wood-video__head h2 { font-size: 29px; line-height: 1.18; }
  .wood-organs { grid-template-columns: 1fr; gap: 16px; }
  .wood-organ__n { font-size: 25px; }
  .wood-imbalance__head { margin-bottom: 30px; }
  .wood-imbalance__head .label { font-size: 13px; letter-spacing: .2em; }
  .wood-imbalance__head h2 { font-size: 32px; line-height: 1.14; }
  .wood-cols { grid-template-columns: 1fr; gap: 34px; }
  .wood-cols--light { gap: 32px; }
  .wood-cols__t { font-size: 26px; }
  .wood-pillars .jas-book__inner { grid-template-columns: 1fr; gap: 28px; }
  .wood-pillars__art { order: -1; margin: 0; }
}


/* ==========================================================================
   Energetic hygiene article
   ========================================================================== */
.eh-hero { background: var(--lilac-100); }
.eh-intro { padding-bottom: 44px; }
.eh-video { padding-top: 0; }
.jas-prose.eh-prose--cream { background: var(--cream); }
.jas-prose.eh-prose--blush { background: var(--blush-100); }

.eh-examples__head, .eh-vs__head, .eh-steps__head { text-align: center; margin-bottom: 34px; }
.eh-examples__head .label, .eh-vs__head .label { display: block; font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--salmon-700); margin-bottom: 14px; }
.eh-vs__head .label { color: var(--salmon-300); }
.eh-examples__head h2, .eh-steps__head h2 { font-size: 38px; line-height: 1.14; margin-bottom: 0; }
.eh-vs__head h2 { font-size: 38px; line-height: 1.14; color: #fff; margin-bottom: 0; }
.eh-steps__head p { color: var(--text-body); margin: 14px 0 0; }

.eh-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-bottom: 30px; }
.eh-card { background: var(--cream); border: 1px solid var(--border-soft); padding: 26px 24px; }
.eh-card__t { display: block; font-family: var(--font-display); font-size: 25px; line-height: 1.16; color: var(--charcoal); margin-bottom: 10px; }
.eh-card__t--link { color: var(--salmon-700); text-decoration: none; }
.eh-card__t--link:hover { color: var(--charcoal); }
.eh-card p { color: var(--text-body); margin: 0; }
.eh-note { color: var(--text-body); font-style: italic; }

.eh-step { display: grid; grid-template-columns: 80px 1fr; gap: 32px; align-items: start; padding: 26px 0; border-top: 1px solid var(--border-soft); }
.eh-step--first { border-top-color: var(--charcoal); }
.eh-step--last { border-bottom: 1px solid var(--border-soft); }
.eh-step__n { font-family: var(--font-accent); font-weight: 600; font-size: 22px; letter-spacing: .14em; color: var(--salmon-700); padding-top: 4px; }
.eh-step__t { font-size: 20px; font-weight: 700; line-height: 1.4; color: var(--charcoal); margin-bottom: 10px; }
.eh-step p { color: var(--text-body); margin: 0; }

@media (min-width: 1025px) and (max-width: 1240px) {
  .eh-examples__head h2, .eh-vs__head h2, .eh-steps__head h2 { font-size: 32px; }
  .eh-grid { gap: 18px; }
}

@media (max-width: 1024px) {
  .eh-intro { padding-bottom: 28px; }
  .eh-examples__head, .eh-vs__head, .eh-steps__head { margin-bottom: 26px; }
  .eh-examples__head .label, .eh-vs__head .label { font-size: 13px; letter-spacing: .2em; }
  .eh-examples__head h2, .eh-vs__head h2, .eh-steps__head h2 { font-size: 29px; line-height: 1.18; }
  .eh-grid { grid-template-columns: 1fr; gap: 16px; }
  .eh-card__t { font-size: 23px; }
  .eh-step { grid-template-columns: 44px 1fr; gap: 16px; }
}


/* ==========================================================================
   My Truth Is Enough
   ========================================================================== */
.mt-hero { background: var(--sand); padding: 88px var(--gutter) 96px; }
.mt-hero__inner { max-width: 820px; margin: 0 auto; text-align: center; }
.mt-hero h1 { font-size: 52px; line-height: 1.06; letter-spacing: .02em; text-transform: uppercase; }

.mt-open { background: #fff; padding: 80px var(--gutter) 56px; }
.mt-open__inner { max-width: 720px; margin: 0 auto; text-align: center; }
.mt-open p { font-family: var(--font-display); font-size: 38px; line-height: 1.24; color: var(--charcoal); margin: 0; }

.mt-list { background: #fff; padding: 0 var(--gutter) 80px; }
.mt-list__inner { max-width: 720px; margin: 0 auto; }
.mt-row { display: grid; grid-template-columns: 1fr auto; gap: 28px; align-items: baseline; padding: 20px 0; border-top: 1px solid var(--border-soft); }
.mt-row:first-child { border-top-color: var(--charcoal); }
.mt-row:last-child { border-bottom: 1px solid var(--border-soft); }
.mt-row__t { font-size: 19px; line-height: 1.5; color: var(--charcoal); }
.mt-row__n { font-size: 11.5px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--salmon-700); white-space: nowrap; }

.mt-answer { background: var(--peach); padding: 88px var(--gutter); }
.mt-answer__inner { max-width: 720px; margin: 0 auto; text-align: center; }
.mt-answer p { color: var(--text-body); margin: 0 0 14px; }
.mt-answer p:last-child { margin-bottom: 0; }
.mt-answer p.mt-answer__pull { font-family: var(--font-display); font-size: 34px; line-height: 1.3; color: var(--charcoal); margin-bottom: 26px; }

.mt-close { background: var(--charcoal); padding: 96px var(--gutter); }
.mt-close__inner { max-width: 820px; margin: 0 auto; text-align: center; }
.mt-close p { font-family: var(--font-display); font-size: 44px; line-height: 1.22; color: #fff; margin: 0; }

@media (min-width: 1025px) and (max-width: 1240px) {
  .mt-hero h1 { font-size: 40px; }
  .mt-open p { font-size: 31px; }
  .mt-close p { font-size: 34px; }
}

@media (max-width: 1024px) {
  .mt-hero { padding: 56px 24px 62px; }
  .mt-hero h1 { font-size: 40px; }
  .mt-open { padding: 52px 24px 36px; }
  .mt-open p { font-size: 30px; }
  .mt-list { padding: 0 24px 52px; }
  .mt-row { grid-template-columns: 1fr; gap: 6px; padding: 18px 0; text-align: center; }
  .mt-row__t { font-size: 18px; }
  .mt-row__n { font-size: 11px; }
  .mt-answer { padding: 56px 24px 60px; }
  .mt-answer p.mt-answer__pull { font-size: 28px; margin-bottom: 22px; }
  .mt-close { padding: 62px 24px 68px; }
  .mt-close p { font-size: 34px; }
}


/* ==========================================================================
   Clutter Clearing Queen
   ========================================================================== */
.ccq-open { background: #fff; padding: 80px var(--gutter) 56px; }
.ccq-open__inner { max-width: 720px; margin: 0 auto; }
.ccq-lead { font-family: var(--font-display); font-size: 34px; line-height: 1.28; text-align: center; color: var(--charcoal); margin-bottom: 40px; }
.ccq-open p, .ccq-prose p { color: var(--text-body); }

.ccq-rules { background: var(--cream); padding: 72px var(--gutter); }
.ccq-rules__inner { max-width: 720px; margin: 0 auto; }
.ccq-rules h2 { font-size: 38px; line-height: 1.14; margin-bottom: 20px; }
.ccq-rule { display: grid; grid-template-columns: 90px 1fr; gap: 24px; align-items: baseline; padding: 18px 0; border-top: 1px solid var(--border-soft); }
.ccq-rule--first { border-top-color: var(--charcoal); }
.ccq-rule--last { border-bottom: 1px solid var(--border-soft); }
.ccq-rule__k { font-size: 11.5px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--salmon-700); }
.ccq-rule__v { font-family: var(--font-display); font-size: 26px; line-height: 1.16; color: var(--charcoal); }
.ccq-rules__note { color: var(--text-body); margin: 24px 0 0; }

.ccq-prose { background: #fff; padding: 72px var(--gutter); }
.ccq-prose--last { padding-bottom: 80px; }
.ccq-prose__inner { max-width: 720px; margin: 0 auto; }
.ccq-pull { font-family: var(--font-display); font-size: 32px; line-height: 1.3; text-align: center; color: var(--salmon-700); margin: 36px 0 20px; }

.ccq-q { background: var(--charcoal); padding: 88px var(--gutter); }
.ccq-q__inner { max-width: 820px; margin: 0 auto; text-align: center; }
.ccq-q .label { display: block; font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--salmon-300); margin-bottom: 22px; }
.ccq-q p { font-family: var(--font-display); font-size: 40px; line-height: 1.22; color: #fff; margin: 0; }

@media (min-width: 1025px) and (max-width: 1240px) {
  .ccq-lead { font-size: 28px; }
  .ccq-rules h2 { font-size: 32px; }
  .ccq-q p { font-size: 32px; }
}

@media (max-width: 1024px) {
  .ccq-open { padding: 48px 24px 36px; }
  .ccq-lead { font-size: 28px; margin-bottom: 28px; }
  .ccq-rules { padding: 48px 24px 52px; }
  .ccq-rules h2 { font-size: 30px; text-align: center; }
  .ccq-rule { grid-template-columns: 1fr; gap: 6px; padding: 16px 0; text-align: center; }
  .ccq-rule__k { font-size: 11px; }
  .ccq-rule__v { font-size: 24px; }
  .ccq-rules__note { margin-top: 20px; }
  .ccq-prose { padding: 48px 24px 44px; }
  .ccq-prose--last { padding-bottom: 52px; }
  .ccq-pull { font-size: 26px; margin: 30px 0 18px; }
  .ccq-q { padding: 56px 24px; }
  .ccq-q .label { font-size: 13px; letter-spacing: .2em; margin-bottom: 18px; }
  .ccq-q p { font-size: 30px; line-height: 1.24; }
}


/* ==========================================================================
   Earth Element article
   ========================================================================== */
.earth-hero { background: var(--sand); }
.jas-prose.earth-imbalance { background: #46553C; }
.earth-quote { font-family: var(--font-display); font-size: 28px; line-height: 1.3; color: var(--salmon-300); margin: 0; }
.earth-tips { display: grid; grid-template-columns: repeat(3, 1fr); gap: 36px; }
.earth-tips p { color: var(--text-body); margin: 0; }

@media (min-width: 1025px) and (max-width: 1240px) {
  .earth-quote { font-size: 24px; }
  .earth-tips { gap: 24px; }
}

@media (max-width: 1024px) {
  .earth-quote { font-size: 24px; }
  .earth-tips { grid-template-columns: 1fr; gap: 26px; text-align: center; }
}


/* ==========================================================================
   Green Mandarin
   ========================================================================== */
.gm-hero { background: #c9d9a3; }
.gm-intro { padding-bottom: 44px; }
.gm-lead { font-family: var(--font-display); font-size: 34px; line-height: 1.28; text-align: center; color: var(--charcoal); margin-bottom: 36px; }
.gm-video { padding-top: 0; }

.gm-split { background: var(--cream); padding: 80px var(--gutter); }
.gm-split__inner { max-width: 1000px; margin: 0 auto; display: grid; grid-template-columns: 1fr 320px; gap: 64px; align-items: center; }
.gm-split h2 { font-size: 38px; line-height: 1.14; margin-bottom: 20px; }
.gm-split p { color: var(--text-body); }
.gm-split__art { margin: 0; }
.gm-split__art img { width: 100%; height: auto; display: block; }

.gm-quote { background: #5f7a3c; padding: 88px var(--gutter); }
.gm-quote__inner { max-width: 820px; margin: 0 auto; text-align: center; }
.gm-quote p { font-family: var(--font-display); font-size: 36px; line-height: 1.26; color: #fff; margin: 0; }

.gm-blend { background: var(--peach); padding: 80px var(--gutter); }
.gm-blend__inner { max-width: 720px; margin: 0 auto; }
.gm-blend .label { display: block; font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--salmon-700); margin-bottom: 16px; }
.gm-blend h2 { font-size: 38px; line-height: 1.14; margin-bottom: 22px; }
.gm-blend p { color: var(--text-body); margin: 0; }

@media (min-width: 1025px) and (max-width: 1240px) {
  .gm-lead { font-size: 28px; }
  .gm-split__inner { grid-template-columns: 1fr 240px; gap: 40px; }
  .gm-split h2, .gm-blend h2 { font-size: 32px; }
  .gm-quote p { font-size: 30px; }
}

@media (max-width: 1024px) {
  .gm-intro { padding: 44px 24px 28px; }
  .gm-lead { font-size: 28px; margin-bottom: 26px; }
  .gm-video { padding: 0 24px 44px; }
  .gm-split { padding: 48px 24px 52px; }
  .gm-split__inner { grid-template-columns: 1fr; gap: 0; }
  .gm-split h2 { font-size: 30px; text-align: center; }
  .gm-split__art { order: -1; width: 200px; margin: 0 auto 26px; }
  .gm-quote { padding: 56px 24px; }
  .gm-quote p { font-size: 28px; line-height: 1.28; }
  .gm-blend { padding: 48px 24px 52px; }
  .gm-blend .label { font-size: 13px; letter-spacing: .2em; text-align: center; }
  .gm-blend h2 { font-size: 30px; text-align: center; }
}


/* ==========================================================================
   Don't Give Me Fluff
   ========================================================================== */
.flf-hero { background: #ccd4f2; padding: 88px var(--gutter) 96px; }
.flf-hero__inner { max-width: 820px; margin: 0 auto; text-align: center; }
.flf-hero h1 { font-size: 52px; line-height: 1.06; letter-spacing: .02em; text-transform: uppercase; }

.flf-open { background: #fff; padding: 80px var(--gutter) 40px; }
.flf-open__inner { max-width: 720px; margin: 0 auto; text-align: center; }
.flf-lead { font-family: var(--font-display); font-size: 36px; line-height: 1.26; color: var(--charcoal); margin-bottom: 30px; }
.flf-warn { font-size: 13px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--salmon-700); margin: 0; }

.flf-prose { background: #fff; padding: 40px var(--gutter) 80px; }
.flf-prose--last { padding-top: 80px; }
.flf-prose__inner { max-width: 720px; margin: 0 auto; }
.flf-prose p { color: var(--text-body); }
.flf-pull { font-family: var(--font-display); font-size: 32px; line-height: 1.3; text-align: center; color: var(--salmon-700); margin: 36px 0 0; }

.flf-dark { background: var(--charcoal); padding: 88px var(--gutter); }
.flf-dark__inner { max-width: 820px; margin: 0 auto; text-align: center; }
.flf-dark p { font-family: var(--font-display); font-size: 38px; line-height: 1.26; color: #fff; margin: 0; }

@media (min-width: 1025px) and (max-width: 1240px) {
  .flf-hero h1 { font-size: 40px; }
  .flf-lead, .flf-dark p { font-size: 30px; }
}

@media (max-width: 1024px) {
  .flf-hero { padding: 52px 24px 58px; }
  .flf-hero h1 { font-size: 38px; line-height: 1.08; }
  .flf-open { padding: 48px 24px 28px; }
  .flf-lead { font-size: 28px; margin-bottom: 24px; }
  .flf-warn { font-size: 12px; letter-spacing: .16em; line-height: 1.7; }
  .flf-prose { padding: 28px 24px 48px; }
  .flf-prose--last { padding: 48px 24px 52px; }
  .flf-pull { font-size: 26px; margin-top: 30px; }
  .flf-dark { padding: 56px 24px; }
  .flf-dark p { font-size: 29px; }
}


/* ==========================================================================
   Surrender Meets Discipline
   ========================================================================== */
.sd-prose { background: #fff; padding: 80px var(--gutter) 56px; }
.sd-prose__inner { max-width: 720px; margin: 0 auto; }
.sd-prose p { color: var(--text-body); }
.blend-recipe .label { display: block; font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--salmon-700); margin-bottom: 16px; }
.blend-oil--plain { align-items: baseline; padding: 22px 0; }
.blend-oil--plain h3 { font-family: var(--font-display); font-weight: 400; font-size: 28px; line-height: 1.14; color: var(--charcoal); margin: 0; }
.blend-recipe p.sd-note { color: var(--text-body); margin: 26px 0 0; }

@media (max-width: 1024px) {
  .sd-prose { padding: 48px 24px 40px; }
  .blend-recipe .label { font-size: 13px; letter-spacing: .2em; text-align: center; margin-bottom: 14px; }
  .blend-oil--plain { padding: 18px 0; }
  .blend-oil--plain h3 { font-size: 24px; }
  .blend-recipe p.sd-note { margin-top: 22px; }
}


/* ==========================================================================
   Blue Lotus
   ========================================================================== */
.bl-hero { background: var(--lilac-100); }
.bl-hero .label { display: block; font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--charcoal); margin-bottom: 16px; }
.bl-intro { padding-bottom: 44px; }

.bl-queen { background: var(--cream); padding: 80px var(--gutter); }
.bl-queen__inner { max-width: 720px; margin: 0 auto; }
.bl-queen h2 { font-size: 38px; line-height: 1.14; margin-bottom: 22px; }
.bl-queen p { color: var(--text-body); }

.bl-quote { background: #4c4f7a; padding: 88px var(--gutter); }
.bl-quote__inner { max-width: 820px; margin: 0 auto; text-align: center; }
.bl-quote p { font-family: var(--font-display); font-size: 38px; line-height: 1.26; color: #fff; margin: 0; }

.bl-use {
  padding: 80px var(--gutter);
  background-image: linear-gradient(rgba(255, 255, 255, .34), rgba(255, 255, 255, .26)), url("../assets/img/rt-lavender-gradient.jpg");
  background-size: cover;
  background-position: center;
}
.bl-use__inner { max-width: 720px; margin: 0 auto; }
.bl-use .label { display: block; font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--salmon-700); margin-bottom: 16px; }
.bl-use h2 { font-size: 38px; line-height: 1.14; margin-bottom: 22px; }
.bl-use p { color: var(--text-body); margin: 0; }

@media (min-width: 1025px) and (max-width: 1240px) {
  .bl-queen h2, .bl-use h2 { font-size: 32px; }
  .bl-quote p { font-size: 30px; }
}

@media (max-width: 1024px) {
  .bl-hero .label { font-size: 13px; letter-spacing: .2em; margin-bottom: 14px; }
  .bl-intro { padding-bottom: 32px; }
  .bl-queen { padding: 48px 24px 52px; }
  .bl-queen h2 { font-size: 30px; text-align: center; margin-bottom: 20px; }
  .bl-quote { padding: 56px 24px; }
  .bl-quote p { font-size: 28px; line-height: 1.28; }
  .bl-use { padding: 48px 24px 52px; }
  .bl-use .label { font-size: 13px; letter-spacing: .2em; text-align: center; margin-bottom: 14px; }
  .bl-use h2 { font-size: 30px; text-align: center; margin-bottom: 20px; }
}


/* ==========================================================================
   Process Over Perfection
   ========================================================================== */
.pop-mantra { font-family: var(--font-display); font-size: 38px; line-height: 1.26; text-align: center; color: var(--charcoal); margin: 34px 0 0; }
.pop-allows { background: #fff; padding: 72px var(--gutter) 40px; }
.pop-allows__inner { max-width: 720px; margin: 0 auto; }
.pop-allow { display: grid; grid-template-columns: auto 1fr; gap: 20px; align-items: baseline; padding: 18px 0; border-top: 1px solid var(--border-soft); }
.pop-allow--first { border-top-color: var(--charcoal); }
.pop-allow--last { border-bottom: 1px solid var(--border-soft); }
.pop-allow__k { font-size: 11.5px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--salmon-700); white-space: nowrap; }
.pop-allow__v { font-family: var(--font-display); font-size: 26px; line-height: 1.16; color: var(--charcoal); }
.ccq-prose.pop-prose--tight { padding-top: 0; }

@media (max-width: 1024px) {
  .pop-mantra { font-size: 30px; margin-top: 28px; }
  .pop-allows { padding: 48px 24px 32px; }
  .pop-allow { grid-template-columns: 1fr; gap: 6px; padding: 16px 0; text-align: center; }
  .pop-allow__k { font-size: 11px; }
  .pop-allow__v { font-size: 24px; }
}


/* Shame Into Action */
.sha-hero { background: var(--lilac-100); }


/* Obstacles Are Clues */
.obs-hero { background: var(--sand); }
.ccq-rules .label.obs-label { display: block; font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--salmon-700); margin-bottom: 22px; }
@media (max-width: 1024px) {
  .ccq-rules .label.obs-label { font-size: 13px; letter-spacing: .2em; text-align: center; margin-bottom: 18px; }
}


/* Favorites — discount tag */
.fav-tag { display: inline-block; margin-top: 14px; font-size: 11.5px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--charcoal); background: var(--blush); padding: 7px 12px; }
@media (max-width: 1024px) { .fav-tag { font-size: 11px; margin-top: 12px; } }


/* ==========================================================================
   Drip embedded form (3 blends opt-in)
   ========================================================================== */
.drip-form { display: flex; flex-direction: column; gap: 14px; max-width: 420px; margin-top: 4px; }
.drip-form label,
.drip-form legend { display: block; font-family: var(--font-body); font-size: 11.5px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--text-muted); margin-bottom: 7px; padding: 0; }
.drip-form input[type="text"],
.drip-form input[type="email"] { font-family: var(--font-body); font-size: 15px; color: var(--charcoal); background: #fff; border: 1px solid rgba(41, 39, 40, .2); border-radius: 2px; padding: 14px 16px; width: 100%; box-sizing: border-box; }
.drip-form input[type="text"]:focus,
.drip-form input[type="email"]:focus { outline: none; border-color: var(--charcoal); }
.drip-form__radios { border: none; margin: 0; padding: 0; }
.drip-form__opts { display: flex; gap: 24px; margin-top: 4px; }
.drip-form__opts label { display: flex; align-items: center; gap: 8px; font-size: 16px; font-weight: 400; letter-spacing: 0; text-transform: none; color: var(--text-body); margin: 0; cursor: pointer; }
.drip-form__opts input[type="radio"] { margin: 0; accent-color: var(--salmon-700); }
.drip-form__hp { display: none; }
.drip-form button[type="submit"] { font-family: var(--font-body); font-size: 11.5px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: #fff; background: var(--charcoal); border: 1px solid var(--charcoal); border-radius: 2px; padding: 16px 26px; cursor: pointer; transition: background .16s ease, border-color .16s ease; }
.drip-form button[type="submit"]:hover { background: var(--salmon-700); border-color: var(--salmon-700); }

@media (max-width: 1024px) {
  .drip-form { max-width: none; }
  .drip-form button[type="submit"] { width: 100%; }
}


/* ==========================================================================
   3 Blends landing page
   ========================================================================== */
.lp-hero {
  padding: 34px var(--gutter) 72px;
  background-image: linear-gradient(rgba(255, 255, 255, .30), rgba(255, 255, 255, .38)), url("../assets/img/gradient-2b.png");
  background-size: cover;
  background-position: center;
}
.lp-hero__logo { max-width: 1080px; margin: 0 auto 10px; text-align: center; }
.lp-hero__logo img { height: 132px; width: auto; display: block; margin: -26px auto -22px; }
.lp-hero__inner { max-width: 1080px; margin: 0 auto; display: grid; grid-template-columns: 1fr 440px; gap: 64px; align-items: center; }
.lp-hero .label { display: block; font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--salmon-700); margin-bottom: 18px; }
.lp-hero h1 { font-size: 50px; line-height: 1.08; letter-spacing: .02em; text-transform: uppercase; margin-bottom: 22px; }
.lp-lead { color: var(--text-body); max-width: 520px; margin-bottom: 28px; }
.lp-what { display: flex; gap: 24px; align-items: center; margin-bottom: 28px; }
.lp-what__art { width: 168px; height: auto; display: block; flex-shrink: 0; }
.lp-what__list { display: flex; flex-direction: column; gap: 10px; max-width: 400px; }
.lp-bullet { display: grid; grid-template-columns: 14px 1fr; gap: 12px; align-items: start; font-size: 16px; line-height: 1.55; color: var(--text-body); }
.lp-bullet img { width: 9px; height: 9px; margin-top: 8px; opacity: .6; }
.lp-cred { font-size: 12.5px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; line-height: 1.9; color: var(--text-body); border-top: 1px solid rgba(41, 39, 40, .14); padding-top: 18px; }

.lp-card { background: #fff; padding: 36px 34px 38px; box-shadow: 0 18px 48px rgba(41, 39, 40, .10); }
.lp-card__t { font-family: var(--font-display); font-size: 26px; line-height: 1.2; color: var(--charcoal); margin-bottom: 8px; }
.lp-card > p { font-size: 15px; line-height: 1.6; color: var(--text-body); margin-bottom: 22px; }
.lp-card .drip-form { max-width: 100%; }
.lp-nospam { font-size: 13px; line-height: 1.6; color: var(--text-body); margin: 16px 0 0; }

.lp-about { background: #fff; padding: 88px var(--gutter); }
.lp-about__inner { max-width: 1000px; margin: 0 auto; display: grid; grid-template-columns: 380px 1fr; gap: 72px; align-items: center; }
.lp-about h2 { font-family: var(--font-display); font-weight: 400; font-size: 40px; line-height: 1.12; margin-bottom: 20px; }
.lp-about p { color: var(--text-body); }

.lp-approach { background: var(--cream); padding: 88px var(--gutter); }
.lp-approach__inner { max-width: 1000px; margin: 0 auto; display: grid; grid-template-columns: 1fr 380px; gap: 72px; align-items: center; }
.lp-approach h2 { font-size: 40px; line-height: 1.12; text-transform: uppercase; letter-spacing: .02em; margin-bottom: 20px; }
.lp-approach p { color: var(--text-body); }
.lp-approach img { width: 100%; height: auto; display: block; }
.lp-approach .btn { margin-top: 10px; }

.lp-quotes { background: var(--blush); padding: 88px var(--gutter); }
.lp-quote { max-width: 760px; margin: 0 auto; text-align: center; }
.lp-quote--second { margin-top: 52px; padding-top: 44px; border-top: 1px solid rgba(41, 39, 40, .14); }
.lp-quote__mark { font-family: var(--font-display); font-size: 60px; line-height: 1; color: var(--salmon-700); margin-bottom: 10px; }
.lp-quote__h { font-family: var(--font-display); font-size: 34px; line-height: 1.26; color: var(--charcoal); margin-bottom: 24px; }
.lp-quote--second .lp-quote__h { font-size: 30px; margin-bottom: 20px; }
.lp-quote__b { font-size: 18px; font-style: italic; line-height: 1.7; color: var(--text-body); margin-bottom: 22px; }
.lp-quote__n { font-size: 11.5px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--text-muted); }

.lp-close {
  padding: 88px var(--gutter) 96px;
  background-image: linear-gradient(rgba(255, 255, 255, .30), rgba(255, 255, 255, .38)), url("../assets/img/gradient-2b.png");
  background-size: cover;
  background-position: center;
}
.lp-close__inner { max-width: 640px; margin: 0 auto; text-align: center; }
.lp-close h2 { font-size: 40px; line-height: 1.12; text-transform: uppercase; letter-spacing: .02em; margin-bottom: 16px; }
.lp-close__sub { color: var(--text-body); margin-bottom: 32px; }
.lp-card--wide { text-align: left; }

.lp-footer { background: var(--charcoal); padding: 40px var(--gutter); text-align: center; }
.lp-footer div { font-size: 13px; line-height: 2; color: rgba(255, 255, 255, .6); }
.lp-footer a { color: rgba(255, 255, 255, .82); text-decoration: none; }
.lp-footer a:hover { color: #fff; }

@media (min-width: 1025px) and (max-width: 1240px) {
  .lp-hero__inner { grid-template-columns: 1fr 380px; gap: 40px; }
  .lp-hero h1 { font-size: 38px; }
  .lp-about__inner { grid-template-columns: 300px 1fr; gap: 44px; }
  .lp-approach__inner { grid-template-columns: 1fr 300px; gap: 44px; }
  .lp-about h2, .lp-approach h2, .lp-close h2 { font-size: 32px; }
}

@media (max-width: 1024px) {
  .lp-hero { padding: 22px 24px 48px; }
  .lp-hero__logo img { height: 104px; margin: -20px auto -14px; }
  .lp-hero__inner { grid-template-columns: 1fr; gap: 0; }
  .lp-hero .label { font-size: 13px; letter-spacing: .2em; text-align: center; margin-bottom: 14px; }
  .lp-hero h1 { font-size: 27px; line-height: 1.12; letter-spacing: .01em; text-align: center; margin-bottom: 16px; }
  .lp-hero__copy { display: contents; }
  .lp-hero__copy .label { order: 1; }
  .lp-hero__copy h1 { order: 2; }
  .lp-hero__copy .lp-lead { order: 5; max-width: none; margin: 26px 0 22px; }
  .lp-hero__copy .lp-what { order: 6; flex-direction: column; margin-bottom: 22px; }
  .lp-hero__copy .lp-cred { order: 7; text-align: center; margin-top: 0; }
  .lp-hero .lp-card { order: 4; }
  .lp-what__art { width: 64%; margin: 0 auto; }
  .lp-what__list { max-width: none; }
  .lp-card { padding: 28px 22px 30px; box-shadow: 0 14px 36px rgba(41, 39, 40, .10); }
  .lp-card__t { font-size: 24px; }

  .lp-about { padding: 52px 24px 56px; }
  .lp-about__inner { grid-template-columns: 1fr; gap: 0; }
  .lp-about .jas-arch { max-width: 280px; margin: 0 auto 28px; }
  .lp-about h2 { font-size: 32px; text-align: center; }

  .lp-approach { padding: 52px 24px 56px; }
  .lp-approach__inner { grid-template-columns: 1fr; gap: 0; }
  .lp-approach h2 { font-size: 32px; text-align: center; }
  .lp-approach img { order: -1; margin-bottom: 24px; }
  .lp-approach__inner > div { display: flex; flex-direction: column; }
  .lp-approach .btn { margin: 10px auto 0; }

  .lp-quotes { padding: 52px 24px 56px; }
  .lp-quote__mark { font-size: 52px; }
  .lp-quote__h { font-size: 28px; }
  .lp-quote--second .lp-quote__h { font-size: 26px; }
  .lp-quote__b { font-size: 17px; }

  .lp-close { padding: 52px 24px 60px; }
  .lp-close h2 { font-size: 30px; }
  .lp-footer { padding: 34px 24px; }
}


/* ==========================================================================
   3 Blends thank-you
   ========================================================================== */
.ty3-hero {
  padding: 96px var(--gutter) 104px;
  background-image: linear-gradient(rgba(255, 255, 255, .30), rgba(255, 255, 255, .38)), url("../assets/img/gradient-2b.png");
  background-size: cover;
  background-position: center;
}
.ty3-hero__inner { max-width: 820px; margin: 0 auto; text-align: center; }
.ty3-hero .label { display: block; font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--salmon-700); margin-bottom: 22px; }
.ty3-hero h1 { font-size: 50px; line-height: 1.1; letter-spacing: .02em; text-transform: uppercase; margin-bottom: 26px; }
.ty3-hero p { color: var(--text-body); }
.ty3-mail { color: var(--charcoal); font-weight: 700; text-decoration: underline; }

.ty3-intro { background: #fff; padding: 88px var(--gutter) 72px; }
.ty3-intro__inner { max-width: 760px; margin: 0 auto; text-align: center; }
.ty3-intro .label { display: block; font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--salmon-700); margin-bottom: 22px; }
.ty3-intro h2 { font-size: 42px; line-height: 1.12; text-transform: uppercase; letter-spacing: .02em; margin: 20px 0 22px; }
.ty3-intro p { color: var(--text-body); }

.ty3-books { background: var(--cream); padding: 72px var(--gutter) 88px; }
.ty3-books__inner { max-width: 1000px; margin: 0 auto; }
.ty3-books__grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 24px; align-items: end; margin-bottom: 44px; }
.ty3-book { display: flex; flex-direction: column; align-items: center; gap: 14px; min-width: 0; }
.ty3-book img { width: 100%; height: 260px; object-fit: contain; display: block; }
.ty3-book__t { font-family: var(--font-display); font-size: 22px; line-height: 1.2; text-align: center; color: var(--charcoal); }
.ty3-offer { max-width: 640px; margin: 0 auto; text-align: center; }
.ty3-code { border: 1px solid var(--charcoal); padding: 26px 28px; margin-bottom: 28px; }
.ty3-code__k { font-size: 11.5px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--text-muted); margin-bottom: 10px; }
.ty3-code__v { font-family: var(--font-accent); font-weight: 600; font-size: 36px; letter-spacing: .1em; line-height: 1; color: var(--salmon-700); margin-bottom: 10px; }
.ty3-code p { font-size: 15px; line-height: 1.6; color: var(--text-body); margin: 0; }

@media (min-width: 1025px) and (max-width: 1240px) {
  .ty3-hero h1 { font-size: 38px; }
  .ty3-intro h2 { font-size: 32px; }
  .ty3-book img { height: 200px; }
  .ty3-book__t { font-size: 18px; }
}

@media (max-width: 1024px) {
  .ty3-hero { padding: 56px 24px 60px; }
  .ty3-hero .label { font-size: 13px; letter-spacing: .2em; margin-bottom: 16px; }
  .ty3-hero h1 { font-size: 34px; line-height: 1.12; }
  .ty3-intro { padding: 48px 24px 40px; }
  .ty3-intro .label { font-size: 13px; letter-spacing: .2em; margin-bottom: 16px; }
  .ty3-intro h2 { font-size: 30px; line-height: 1.14; margin: 16px 0 20px; }
  .ty3-books { padding: 48px 24px 56px; }
  .ty3-books__grid { grid-template-columns: repeat(2, 1fr); gap: 24px; margin-bottom: 34px; }
  .ty3-book img { height: 190px; }
  .ty3-book__t { font-size: 19px; }
  .ty3-code { padding: 22px 20px; margin-bottom: 24px; }
  .ty3-code__v { font-size: 26px; letter-spacing: .08em; }
  .ty3-offer .btn { width: 100%; justify-content: center; box-sizing: border-box; }
}


/* ==========================================================================
   Nodes landing page
   ========================================================================== */
.nodes-hero {
  padding: 34px var(--gutter) 80px;
  background-image: linear-gradient(rgba(19, 26, 58, .52), rgba(19, 26, 58, .62)), url("../assets/img/lots-milkyway.png");
  background-size: cover;
  background-position: center;
}
.nodes-hero__mark { text-align: center; }
.nodes-hero__mark img { filter: brightness(0) invert(1); height: 132px; width: auto; display: block; margin: -26px auto -22px; }
.nodes-hero__inner { max-width: 1080px; margin: 0 auto; display: grid; grid-template-columns: 1fr 440px; gap: 64px; align-items: center; }
.nodes-hero .label { display: block; font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--salmon-300); margin-bottom: 16px; }
.nodes-hero h1 { font-size: 50px; line-height: 1.08; letter-spacing: .02em; text-transform: uppercase; color: #fff; margin-bottom: 20px; text-shadow: 0 2px 20px rgba(19, 26, 58, .45); }
.nodes-hero > .nodes-hero__inner p { font-size: 17px; line-height: 1.78; color: rgba(255, 255, 255, .9); margin-bottom: 28px; }
.nodes-hero__row { display: flex; gap: 28px; align-items: center; margin-bottom: 28px; }
.nodes-cover { width: 240px; height: auto; display: block; flex-shrink: 0; }
.nodes-bullets { display: flex; flex-direction: column; gap: 10px; max-width: 380px; }
.nodes-bullet { display: grid; grid-template-columns: 14px 1fr; gap: 12px; align-items: start; }
.nodes-bullet img { width: 9px; height: 9px; margin-top: 8px; opacity: .75; }
.nodes-bullet div { font-size: 16px; line-height: 1.55; color: rgba(255, 255, 255, .9); margin: 0; }
.nodes-bullets--dark { max-width: none; margin-bottom: 0; }
.nodes-bullets--dark .nodes-bullet img { opacity: .6; }
.nodes-bullets--dark .nodes-bullet div { color: var(--text-body); }

.nodes-card { background: #fff; padding: 36px 34px 38px; }
.nodes-card h2 { font-size: 30px; line-height: 1.14; text-transform: uppercase; letter-spacing: .02em; margin-bottom: 10px; }
.nodes-card > p { color: var(--text-body); margin-bottom: 22px; }
.nodes-form { max-width: none; }

.nodes-bio { background: var(--cream); padding: 88px var(--gutter); }
.nodes-bio__inner { max-width: 1000px; margin: 0 auto; display: grid; grid-template-columns: 380px 1fr; gap: 72px; align-items: center; }
.nodes-bio__art { margin: 0; }
.nodes-bio__art img { width: 100%; height: auto; display: block; }
.nodes-bio .label { display: block; font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--salmon-700); margin-bottom: 16px; }
.nodes-bio h2 { font-size: 40px; line-height: 1.12; text-transform: uppercase; letter-spacing: .02em; margin-bottom: 20px; }
.nodes-bio p { color: var(--text-body); }

.nodes-band {
  padding: 88px var(--gutter);
  background-image: linear-gradient(rgba(19, 26, 58, .5), rgba(19, 26, 58, .6)), url("../assets/img/lots-nebula.png");
  background-size: cover;
  background-position: center;
}
.nodes-band__inner { max-width: 760px; margin: 0 auto; text-align: center; }
.nodes-band h2 { font-size: 44px; line-height: 1.1; letter-spacing: .02em; text-transform: uppercase; color: #fff; margin-bottom: 22px; }
.nodes-band p { font-size: 17px; line-height: 1.78; color: rgba(255, 255, 255, .88); }

.nodes-why { background: #fff; padding: 88px var(--gutter); }
.nodes-why__inner { max-width: 1000px; margin: 0 auto; display: grid; grid-template-columns: 1fr 460px; gap: 64px; align-items: center; }
.nodes-why h2 { font-size: 40px; line-height: 1.12; text-transform: uppercase; letter-spacing: .02em; margin-bottom: 20px; }
.nodes-why > .nodes-why__inner p { color: var(--text-body); margin-bottom: 26px; }
.nodes-why__art { margin: 0; }
.nodes-why__art img { width: 100%; height: auto; display: block; }

.nodes-close {
  padding: 88px var(--gutter);
  background-image: linear-gradient(rgba(19, 26, 58, .52), rgba(19, 26, 58, .62)), url("../assets/img/lots-milkyway.png");
  background-size: cover;
  background-position: center;
}
.nodes-close__inner { max-width: 640px; margin: 0 auto; text-align: center; }
.nodes-close h2 { font-size: 40px; line-height: 1.12; letter-spacing: .02em; text-transform: uppercase; color: #fff; margin-bottom: 30px; }
.nodes-close .nodes-card { text-align: left; }

@media (min-width: 1025px) and (max-width: 1240px) {
  .nodes-hero h1 { font-size: 38px; }
  .nodes-hero__inner { grid-template-columns: 1fr 360px; gap: 40px; }
  .nodes-cover { width: 180px; }
  .nodes-bio__inner { grid-template-columns: 300px 1fr; gap: 44px; }
  .nodes-bio h2, .nodes-why h2, .nodes-close h2 { font-size: 32px; }
  .nodes-band h2 { font-size: 34px; }
  .nodes-why__inner { grid-template-columns: 1fr 340px; gap: 40px; }
}

@media (max-width: 1024px) {
  .nodes-hero { padding: 20px 24px 52px; }
  .nodes-hero__mark img { height: 96px; margin: -14px auto -12px; }
  .nodes-hero__inner { display: flex; flex-direction: column; gap: 32px; }
  .nodes-hero .label { font-size: 13px; letter-spacing: .2em; }
  .nodes-hero h1 { font-size: 36px; line-height: 1.1; }
  .nodes-hero > .nodes-hero__inner p { font-size: 16.5px; line-height: 1.72; }
  .nodes-hero__row { flex-direction: column; gap: 22px; align-items: center; margin-bottom: 26px; }
  .nodes-cover { width: 200px; }
  .nodes-bullets { max-width: none; width: 100%; }

  .nodes-card { padding: 28px 22px 30px; }
  .nodes-card h2 { font-size: 26px; }
  .nodes-card button[type="submit"] { width: 100%; }

  .nodes-bio { padding: 52px 24px 56px; }
  .nodes-bio__inner { display: flex; flex-direction: column; gap: 28px; }
  .nodes-bio .label { font-size: 13px; letter-spacing: .2em; }
  .nodes-bio h2 { font-size: 31px; line-height: 1.14; }

  .nodes-band { padding: 52px 24px 56px; }
  .nodes-band h2 { font-size: 32px; line-height: 1.14; }
  .nodes-band p { font-size: 16.5px; line-height: 1.72; }

  .nodes-why { padding: 52px 24px 56px; }
  .nodes-why__inner { display: flex; flex-direction: column-reverse; gap: 28px; }
  .nodes-why h2 { font-size: 31px; line-height: 1.14; }

  .nodes-close { padding: 52px 24px 56px; }
  .nodes-close h2 { font-size: 31px; line-height: 1.14; }
}


/* ==========================================================================
   Nodes thank-you page
   ========================================================================== */
.nt-hero {
  padding: 96px var(--gutter) 104px;
  background-image: linear-gradient(rgba(19, 26, 58, .52), rgba(19, 26, 58, .62)), url("../assets/img/lots-milkyway.png");
  background-size: cover;
  background-position: center;
}
.nt-hero__inner { max-width: 760px; margin: 0 auto; text-align: center; }
.nt-hero .label { display: block; font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--salmon-300); margin-bottom: 18px; }
.nt-hero h1 { font-size: 48px; line-height: 1.08; letter-spacing: .02em; text-transform: uppercase; color: #fff; margin-bottom: 24px; text-shadow: 0 2px 20px rgba(19, 26, 58, .45); }
.nt-hero p { font-size: 17px; line-height: 1.78; color: rgba(255, 255, 255, .9); }
.nt-hero a { color: var(--salmon-300); }

.nt-wait { background: #fff; padding: 80px var(--gutter) 56px; }
.nt-wait__inner { max-width: 720px; margin: 0 auto; text-align: center; }
.nt-wait .label { display: block; font-size: 14px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--salmon-700); margin-bottom: 16px; }
.nt-wait h2 { font-size: 40px; line-height: 1.12; text-transform: uppercase; letter-spacing: .02em; margin-bottom: 20px; }
.nt-wait p { color: var(--text-body); }

.nt-course { background: var(--lilac-100); padding: 72px var(--gutter) 88px; }
.nt-course__inner { max-width: 1000px; margin: 0 auto; display: grid; grid-template-columns: 1fr 420px; gap: 64px; align-items: center; }
.nt-course__inner > img { width: 100%; height: auto; display: block; }
.nt-course h3 { font-family: var(--font-display); font-weight: 400; font-size: 34px; line-height: 1.12; text-transform: uppercase; letter-spacing: .02em; margin-bottom: 14px; }
.nt-course__meta { font-size: 12.5px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; line-height: 1.9; color: var(--text-muted); margin-bottom: 18px; }
.nt-course__price { font-family: var(--font-accent); font-weight: 600; font-size: 30px; letter-spacing: .02em; line-height: 1.1; color: var(--charcoal); margin-bottom: 20px; }
.nt-course p { color: var(--text-body); margin-bottom: 26px; }

@media (min-width: 1025px) and (max-width: 1240px) {
  .nt-hero h1 { font-size: 36px; }
  .nt-wait h2 { font-size: 32px; }
  .nt-course__inner { grid-template-columns: 1fr 340px; gap: 40px; }
}

@media (max-width: 1024px) {
  .nt-hero { padding: 56px 24px 60px; }
  .nt-hero .label { font-size: 13px; letter-spacing: .2em; }
  .nt-hero h1 { font-size: 34px; line-height: 1.12; }
  .nt-hero p { font-size: 16.5px; line-height: 1.72; }
  .nt-wait { padding: 48px 24px 36px; }
  .nt-wait .label { font-size: 13px; letter-spacing: .2em; }
  .nt-wait h2 { font-size: 30px; line-height: 1.14; }
  .nt-course { padding: 40px 24px 52px; }
  .nt-course__inner { display: flex; flex-direction: column; gap: 26px; }
  .nt-course h3 { font-size: 28px; line-height: 1.14; }
  .nt-course .btn { width: 100%; box-sizing: border-box; justify-content: center; }
}


/* ==========================================================================
   Winter Tea landing page
   ========================================================================== */
.wt-hero,
.wt-close {
  background-image: linear-gradient(rgba(41,39,40,.64), rgba(41,39,40,.74)), url("../assets/img/rt-salmon-gradient.jpg");
  background-size: cover;
  background-position: center;
}
.wt-hero {
  background-image: linear-gradient(rgba(41, 39, 40, .64), rgba(41, 39, 40, .74)), url("../assets/img/rt-salmon-gradient.jpg");
}
.wt-hero .label { color: #fff; }
.wt-hero .nodes-hero__inner { grid-template-columns: 1fr 440px; }
.wt-bullets { margin-bottom: 26px; max-width: 460px; }
.wt-cred {
  font-size: 12.5px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase;
  line-height: 1.9; color: rgba(255,255,255,.88);
  border-top: 1px solid rgba(255,255,255,.22); padding-top: 18px; margin: 0;
}
.wt-why { background: var(--cream); }
.wt-why__art img { aspect-ratio: 4 / 5; object-fit: cover; }
.wt-quote { background: var(--blush); padding: 80px 56px; }
.wt-quote__inner { max-width: 760px; margin: 0 auto; text-align: center; }
.wt-quote__mark { font-family: var(--font-display); font-size: 58px; line-height: 1; color: var(--charcoal); margin-bottom: 8px; }
.wt-quote blockquote {
  font-family: var(--font-sans); font-style: italic; font-size: 24px; line-height: 1.55;
  color: var(--charcoal); margin: 0 0 22px; text-wrap: pretty;
}
.wt-quote cite {
  font-family: var(--font-sans); font-size: 12.5px; font-weight: 700; letter-spacing: .2em;
  text-transform: uppercase; color: var(--text-muted); font-style: normal;
}
.wt-close__sub { color: rgba(255,255,255,.9); }

@media (max-width: 900px) {
  .wt-hero .nodes-hero__inner { grid-template-columns: 1fr; }
  .wt-bullets { max-width: none; }
  .wt-quote { padding: 52px 24px 56px; }
  .wt-quote__mark { font-size: 46px; }
  .wt-quote blockquote { font-size: 20px; }
}

/* ==========================================================================
   Winter Tea thank-you overrides
   ========================================================================== */
.wtt-hero {
  background-image: linear-gradient(rgba(41, 39, 40, .64), rgba(41, 39, 40, .74)), url("../assets/img/rt-salmon-gradient.jpg");
}
.wtt-hero .label, .wtt-hero a { color: #fff; }
.wtt-course { background: var(--sand); }

/* ==========================================================================
   Summer Tea landing
   ========================================================================== */
.st-hero {
  background-image: linear-gradient(rgba(41, 39, 40, .64), rgba(41, 39, 40, .74)), url("../assets/img/summer-gradient.jpg");
}
.st-hero .label { color: #fff; }
.st-hero .nodes-hero__inner { grid-template-columns: 1fr 440px; }
@media (max-width: 900px) {
  .st-hero .nodes-hero__inner { grid-template-columns: 1fr; }
}

.stt-hero {
  background-image: linear-gradient(rgba(41, 39, 40, .64), rgba(41, 39, 40, .74)), url("../assets/img/summer-gradient.jpg");
}
.stt-hero .label, .stt-hero a { color: #fff; }

.st-close {
  background-image: linear-gradient(rgba(41, 39, 40, .64), rgba(41, 39, 40, .74)), url("../assets/img/summer-gradient.jpg");
  background-size: cover;
  background-position: center;
}
.st-close__sub { color: rgba(255, 255, 255, .9); }

.tcmt-hero {
  background-image: linear-gradient(rgba(41, 39, 40, .64), rgba(41, 39, 40, .74)), url("../assets/img/tcm-hero.png");
}
.tcmt-hero .label, .tcmt-hero a { color: #fff; }

/* ==========================================================================
   Intro to TCM landing page
   ========================================================================== */
.tcm-lp-hero {
  background-image: linear-gradient(rgba(41, 39, 40, .64), rgba(41, 39, 40, .74)), url("../assets/img/tcm-hero.png");
}
.tcm-lp-hero .label { color: #fff; }
.tcm-lp-hero .nodes-hero__inner { grid-template-columns: 1fr 440px; }
.tcm-lp-cred { font-size: 13px; letter-spacing: .04em; color: rgba(255, 255, 255, .78); margin-top: 26px; }
.tcm-lp-bullets { margin-top: 26px; }
.tcm-lp-why { background: var(--cream); }
.tcm-lp-why__art img { width: 100%; height: auto; display: block; aspect-ratio: auto; object-fit: contain; }
.tcm-lp-quote { background: var(--blush); padding: 72px var(--gutter) 80px; }
.tcm-lp-quote__inner { max-width: 760px; margin: 0 auto; text-align: center; }
.tcm-lp-quote__mark { font-family: var(--font-display); font-size: 64px; line-height: 1; color: var(--salmon); margin-bottom: 8px; }
.tcm-lp-close {
  background-image: linear-gradient(rgba(41, 39, 40, .5), rgba(41, 39, 40, .62)), url("../assets/img/rt-lavender-gradient.jpg");
  background-size: cover;
  background-position: center;
}
.tcm-lp-close__sub { color: rgba(255, 255, 255, .9); }
@media (max-width: 900px) {
  .tcm-lp-hero .nodes-hero__inner { grid-template-columns: 1fr; }
}

.ht-hero {
  background-image: linear-gradient(rgba(41, 39, 40, .64), rgba(41, 39, 40, .74)), url("../assets/img/ay-dark-clouds.jpg");
}
.ht-close {
  background-image: linear-gradient(rgba(41, 39, 40, .64), rgba(41, 39, 40, .74)), url("../assets/img/ay-dark-clouds.jpg");
  background-size: cover;
  background-position: center;
}
.ht-close__sub { color: rgba(255, 255, 255, .9); }
.ht-hero .label, .ht-hero a { color: #fff; }

.nodes-card h2 { color: var(--charcoal); }

.htt-hero {
  background-image: linear-gradient(rgba(41, 39, 40, .64), rgba(41, 39, 40, .74)), url("../assets/img/ay-dark-clouds.jpg");
}
.htt-hero .label, .htt-hero a { color: #fff; }

.nodes-hero .nodes-card > p { color: var(--text-body); }
.nodes-hero .nodes-card label { color: var(--charcoal); }

/* ==========================================================================
   Ani referral landing page
   ========================================================================== */
#main {
  --dl-white: #fff;
  --dl-charcoal: var(--charcoal);
  --dl-charcoal-80: rgba(41, 39, 40, .8);
  --dl-charcoal-55: rgba(41, 39, 40, .55);
  --dl-charcoal-12: rgba(41, 39, 40, .12);
  --dl-salmon: var(--salmon);
  --dl-salmon-700: var(--salmon-700);
  --dl-peach: var(--peach);
  --dl-peach-100: var(--peach-100);
  --dl-blush: var(--blush);
  --dl-blush-100: var(--blush-100);
  --dl-blush-200: var(--blush-200);
  --dl-lilac: var(--lilac);
  --dl-lilac-100: var(--lilac-100);
  --dl-sand: var(--sand);
  --dl-cream: var(--cream);
  --font-subhead: var(--font-sans);
}
.ani-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 52px;
  padding: 14px 30px;
  background: var(--salmon);
  color: var(--charcoal);
  font-family: var(--font-sans);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
  text-decoration: none;
  border: 1px solid var(--salmon);
  transition: background .25s var(--ease), border-color .25s var(--ease);
}
.ani-btn:hover { background: var(--salmon-700); border-color: var(--salmon-700); color: #fff; }
.ani-arch { position: relative; width: 100%; }
.ani-arch img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ani-arch--arch img { border-radius: 50% 50% 2px 2px / 32% 32% 2px 2px; }
.ani-arch--half img { border-radius: 999px 999px 2px 2px / 50% 50% 2px 2px; }
.ani-arch::before {
  content: "";
  position: absolute;
  inset: 18px -18px -18px 18px;
  border: 1px solid var(--salmon);
  z-index: -1;
}
.ani-arch--arch::before { border-radius: 50% 50% 2px 2px / 32% 32% 2px 2px; }
.ani-arch--half::before { border-radius: 999px 999px 2px 2px / 50% 50% 2px 2px; }
.ani-arch--charcoal::before { border-color: var(--charcoal); }

.ff-alert {
  background: var(--salmon);
  color: var(--charcoal);
  text-align: center;
  padding: 13px 24px;
  font-family: var(--font-sans);
  font-size: 12.5px;
  font-weight: 700;
  letter-spacing: .2em;
  text-transform: uppercase;
}

.ff-hero p.ff-seats,
.ff-enroll p.ff-seats,
p.ff-seats {
  font-family: var(--font-sans);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--salmon-700);
  text-align: center;
  margin-top: 10px;
}

/* ==========================================================================
   Affiliates
   ========================================================================== */
.aff-hero { background: var(--cream); padding: 72px var(--gutter) 76px; }
.aff-hero__inner { max-width: 760px; margin: 0 auto; text-align: center; }
.aff-hero .label { display: block; color: var(--salmon-700); margin-bottom: 16px; }
.aff-hero h1 { font-size: 56px; line-height: 1.06; letter-spacing: .02em; text-transform: uppercase; color: var(--charcoal); margin-bottom: 20px; }
.aff-hero p { font-size: 17px; line-height: 1.72; color: var(--text-body); text-wrap: pretty; }
.aff-hero__cta, .aff-close__cta { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; margin-top: 32px; }

.aff-how { background: #fff; padding: 80px var(--gutter); }
.aff-how__inner { max-width: 1080px; margin: 0 auto; }
.aff-how__head { text-align: center; margin-bottom: 46px; }
.aff-how__head .label { display: block; color: var(--salmon-700); margin-bottom: 16px; }
.aff-how__head h2 { font-size: 42px; line-height: 1.12; letter-spacing: .02em; text-transform: uppercase; color: var(--charcoal); }
.aff-how__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 48px; }
.aff-step { border-top: 1px solid var(--border-soft); padding-top: 26px; }
.aff-step__n { font-family: var(--font-accent); font-weight: 600; font-size: 34px; line-height: 1; letter-spacing: .02em; color: var(--salmon-700); margin-bottom: 14px; }
.aff-step__t { font-size: 19px; font-weight: 700; line-height: 1.3; color: var(--charcoal); margin-bottom: 12px; }
.aff-step p { font-size: 16.5px; line-height: 1.72; color: var(--text-body); text-wrap: pretty; }

.aff-facts { background: var(--blush-100); padding: 80px var(--gutter); }
.aff-facts__inner { max-width: 1080px; margin: 0 auto; }
.aff-facts__head { text-align: center; margin-bottom: 42px; }
.aff-facts__head .label { display: block; color: var(--salmon-700); margin-bottom: 16px; }
.aff-facts__head h2 { font-size: 42px; line-height: 1.12; letter-spacing: .02em; text-transform: uppercase; color: var(--charcoal); }
.aff-facts__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 34px 56px; }
.aff-fact { border-top: 1px solid var(--border-soft); padding-top: 22px; }
.aff-fact__k { font-family: var(--font-sans); font-size: 11.5px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--salmon-700); margin-bottom: 12px; }
.aff-fact p { font-size: 16.5px; line-height: 1.72; color: var(--text-body); text-wrap: pretty; }
.aff-rule { font-size: 15px; line-height: 1.72; color: var(--text-body); margin: 38px auto 0; padding-top: 26px; border-top: 1px solid var(--charcoal); max-width: 760px; text-align: center; text-wrap: pretty; }
.aff-rule strong { color: var(--charcoal); }

.aff-close {
  background-image: linear-gradient(rgba(255,255,255,.34), rgba(255,255,255,.26)), url("../assets/img/rt-lavender-gradient.jpg");
  background-size: cover;
  background-position: center;
  padding: 80px var(--gutter);
}
.aff-close__inner { max-width: 720px; margin: 0 auto; text-align: center; }
.aff-close h2 { font-size: 42px; line-height: 1.12; letter-spacing: .02em; text-transform: uppercase; color: var(--charcoal); margin-bottom: 18px; }
.aff-close p { font-size: 16.5px; line-height: 1.72; color: var(--text-body); margin-bottom: 14px; text-wrap: pretty; }

@media (max-width: 1024px) {
  .aff-how__grid { grid-template-columns: 1fr; gap: 28px; }
  .aff-facts__grid { grid-template-columns: 1fr; gap: 26px; }
}
@media (max-width: 640px) {
  .aff-hero { padding: 48px var(--gutter) 52px; }
  .aff-hero h1 { font-size: 38px; }
  .aff-hero p { font-size: 16.5px; }
  .aff-hero__cta, .aff-close__cta { flex-direction: column; align-items: stretch; }
  .aff-how, .aff-facts, .aff-close { padding: 48px var(--gutter) 52px; }
  .aff-how__head h2, .aff-facts__head h2, .aff-close h2 { font-size: 30px; }
  .aff-step, .aff-fact { text-align: center; }
  .aff-rule { text-align: center; }
}

a.img-link { display: block; }
a.img-link img { display: block; transition: opacity 200ms var(--ease); }
a.img-link:hover img { opacity: .9; }

.res-aff { background: var(--lilac); padding: 72px var(--gutter); }
.res-aff__inner { max-width: 720px; margin: 0 auto; text-align: center; }
.res-aff .label { display: block; color: var(--salmon-700); margin-bottom: 16px; }
.res-aff h2 { font-size: 40px; line-height: 1.12; letter-spacing: .02em; text-transform: uppercase; color: var(--charcoal); margin-bottom: 20px; }
.res-aff p { font-size: 16.5px; line-height: 1.72; color: var(--text-body); margin-bottom: 30px; text-wrap: pretty; }
.res-aff .btn { border-color: var(--charcoal); color: var(--charcoal); }
.res-aff .btn:hover { background: var(--charcoal); color: #fff; }
@media (max-width: 640px) {
  .res-aff { padding: 52px var(--gutter); }
  .res-aff h2 { font-size: 30px; }
}

/* Keyboard focus — visible ring everywhere, replacing the outline:none on inputs */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:focus-visible {
  outline: 2px solid var(--salmon-700);
  outline-offset: 2px;
}
.signup input:focus-visible,
.drip-form input:focus-visible {
  outline: 2px solid var(--salmon);
  outline-offset: 2px;
}

.event--soon { cursor: default; }
.event__soon {
  font-family: var(--font-sans);
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--charcoal);
  justify-self: start;
}
