:root {
  --navy: #0a215a;
  --deep: #07183c;
  --ink: #172238;
  --blue: #315eae;
  --pale: #f1f5fa;
  --mist: #dfe7f1;
  --yellow: #e6b32f;
  --white: #ffffff;
  --max: 1160px;
  --sans: "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Noto Sans JP", "Yu Gothic", "YuGothic", Meiryo, system-ui, sans-serif;
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  color: var(--ink);
  background: #fff;
  font-family: var(--sans);
  font-size: 16px;
  line-height: 1.85;
  overflow-wrap: break-word;
  -webkit-font-smoothing: antialiased;
}

a {
  color: inherit;
  text-decoration: none;
}

img {
  display: block;
  max-width: 100%;
}

.section-shell,
.site-header,
.site-footer {
  width: min(calc(100% - 64px), var(--max));
  margin-inline: auto;
}

.skip-link { position: fixed; top: -80px; left: 16px; z-index: 20; padding: 12px 20px; background: var(--navy); color: #fff; }
.skip-link:focus { top: 16px; }

.site-header {
  min-height: 104px;
  display: grid;
  grid-template-columns: 1fr auto auto;
  align-items: center;
  gap: 42px;
  border-bottom: 1px solid #e3e8ef;
}

.brand {
  width: 168px;
  height: 80px;
  overflow: hidden;
  position: relative;
}

.logo-frame {
  display: block;
  width: 160px;
  height: 80px;
  overflow: hidden;
  position: relative;
}

.logo-frame img {
  position: absolute;
  width: 257px;
  max-width: none;
  left: -43px;
  top: -95px;
}

.desktop-nav {
  display: flex;
  align-items: center;
  gap: 22px;
  font-size: 14px;
  letter-spacing: 0.06em;
}

.desktop-nav a {
  position: relative;
}

.desktop-nav a::after {
  content: "";
  position: absolute;
  left: 0;
  right: 100%;
  bottom: -5px;
  height: 1px;
  background: var(--navy);
  transition: right 180ms ease;
}

.desktop-nav a:hover::after,
.desktop-nav a:focus-visible::after {
  right: 0;
}

.header-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 0 20px;
  color: #fff;
  background: var(--navy);
  font-weight: 700;
  font-size: 14px;
  letter-spacing: 0.05em;
}

.hero {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1.06fr) minmax(0, .94fr);
  align-items: center;
  gap: 44px;
  padding-top: 56px;
  padding-bottom: 70px;
}
.hero-copy, .hero-side { min-width: 0; }
.hero-category { margin: 0 0 25px; color: var(--navy); font-size: .875rem; font-weight: 600; letter-spacing: .025em; }
.hero-category::before { content: ""; display: inline-block; width: 22px; height: 2px; margin-right: 10px; vertical-align: middle; background: var(--yellow); }

.eyebrow {
  margin: 0 0 24px;
  color: var(--blue);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.24em;
}

.eyebrow::before {
  content: "";
  display: inline-block;
  width: 28px;
  height: 2px;
  margin-right: 12px;
  background: var(--yellow);
  vertical-align: middle;
}

.eyebrow.light {
  color: #a9bee7;
}

.hero h1,
.section-intro h2,
.dialogue h2,
.coach h2,
.journal h2,
.closing h2 {
  font-family: var(--sans);
  font-weight: 600;
  letter-spacing: 0.02em;
}

.hero h1 {
  margin: 0;
  color: var(--deep);
  font-size: clamp(2.35rem, 4.1vw, 3.5rem);
  line-height: 1.55;
  letter-spacing: -.025em;
  font-weight: 650;
}

.hero h1 span {
  display: block;
  white-space: normal;
}
.hero h1 .hero-question { margin-bottom: 12px; color: var(--blue); font-size: .61em; font-weight: 500; letter-spacing: .01em; }
.hero h1 .hero-answer { text-decoration: underline; text-decoration-color: rgba(230,179,47,.5); text-decoration-thickness: .15em; text-underline-offset: .08em; text-decoration-skip-ink: none; }

.hero-lead {
  margin: 25px 0 0;
  max-width: 560px;
  font-size: 1rem;
  line-height: 1.95;
}
.hero-lead strong { color: var(--navy); font-weight: 600; }

.hero-actions {
  margin-top: 28px;
}
.hero-actions .primary-button { min-width: 318px; }
.hero-trial-facts { margin: 10px 0 0; color: #4d596a; font-size: .875rem; }
.hero-trial-facts > span { margin-left: 14px; color: var(--navy); font-weight: 600; }
.hero-more { display: flex; flex-wrap: wrap; gap: 4px 24px; margin-top: 10px; color: var(--navy); font-size: .875rem; }
.hero-more > a { display: inline-flex; align-items: center; min-height: 44px; text-decoration: underline; text-underline-offset: 5px; text-decoration-color: #8c9ab5; }
.hero-more > a:hover { text-decoration-color: var(--navy); }

.primary-button,
.light-button {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
  min-height: 58px;
  padding: 0 24px;
  border: 1px solid var(--navy);
  color: #fff;
  background: var(--navy);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.04em;
  transition: color 160ms ease, background 160ms ease;
}

.primary-button:hover,
.primary-button:focus-visible {
  color: var(--navy);
  background: transparent;
}

.text-link {
  padding-bottom: 3px;
  border-bottom: 1px solid currentColor;
  color: var(--navy);
  font-size: 13px;
  font-weight: 700;
}

.text-link.strong {
  display: inline-block;
  margin-top: 13px;
}

.session-facts {
  display: flex;
  gap: 30px;
  margin: 38px 0 0;
  padding-top: 22px;
  border-top: 1px solid #dfe5ed;
}

.session-facts div {
  min-width: 84px;
}

.session-facts dt {
  margin-bottom: 2px;
  color: #7b8799;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.18em;
}

.session-facts dd {
  margin: 0;
  font-size: 13px;
  font-weight: 700;
}

.hero-visual {
  position: relative;
  min-height: 0;
  aspect-ratio: 1.32;
  overflow: hidden;
  border-radius: 120px 120px 8px 8px;
  background: var(--mist);
  box-shadow: 17px 20px 0 var(--pale);
}

.hero-visual > img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
}

.hero-visual::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 75%, rgba(5, 22, 57, 0.1));
}

.hero-quote {
  position: absolute;
  z-index: 2;
  left: 0;
  bottom: 0;
  width: min(300px, 72%);
  padding: 25px 28px 23px;
  color: #fff;
  background: rgba(7, 24, 60, 0.95);
}

.hero-quote span {
  color: #a9bee7;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.2em;
}

.hero-quote p {
  margin: 0;
  font-family: var(--sans);
  font-size: 1.125rem;
  line-height: 1.8;
}
.hero-coach { display: flex; align-items: center; gap: 13px; padding-top: 20px; margin-top: 24px; color: var(--navy); }
.hero-coach > img { width: 46px; height: 46px; flex: 0 0 46px; border-radius: 50%; object-fit: cover; object-position: center 24%; }
.hero-coach strong { display: block; font-size: .9375rem; font-weight: 600; }
.hero-coach strong > span { margin-left: 10px; color: #5e6a7d; font-size: .75rem; font-weight: 400; }
.hero-coach small { display: block; color: #5e6a7d; font-size: .75rem; margin-top: 3px; }
.hero-coach .coach-link-arrow { margin-left: auto; padding-left: 7px; }
.hero-coach:hover strong { text-decoration: underline; text-underline-offset: 4px; }

.changes { padding-block: 68px 90px; border-top: 1px solid #d4deea; scroll-margin-top: 24px; }
.changes-heading { display: grid; grid-template-columns: minmax(0,1.1fr) minmax(0,.9fr); gap: 0 80px; align-items: end; }
.changes-heading .eyebrow { grid-column: 1 / -1; font-size: .875rem; letter-spacing: .06em; }
.changes h2 { margin: 0; color: var(--deep); font-size: clamp(1.75rem,3.2vw,2.5rem); font-weight: 600; line-height: 1.6; letter-spacing: -.02em; }
.changes h2 em { color: var(--navy); font-style: normal; }
.changes-heading > p:last-child { margin: 0 0 4px; font-size: 1rem; color: #4d596a; line-height: 1.95; }
.change-examples { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 52px; margin-top: 40px; }
.change-example { padding-top: 23px; border-top: 1px solid #8e9db6; }
.change-context { margin: 0 0 14px; color: #5e6a7d; font-size: .875rem; }
.change-example h3 { margin: 0; color: var(--navy); font-size: 1.375rem; font-weight: 600; line-height: 1.8; }
.change-result { margin-top: 28px; padding-left: 21px; border-left: 2px solid var(--yellow); }
.change-result .result-label { margin: 0 0 8px; color: #5e6a7d; font-size: .875rem; }
.change-result h4 { margin: 0 0 12px; color: var(--navy); font-size: 1.25rem; font-weight: 650; line-height: 1.8; }
.change-result > p:last-child { margin: 0; font-size: 1rem; line-height: 1.95; color: #4d596a; }
.changes-next { display: inline-flex; align-items: center; gap: 18px; min-height: 44px; margin-top: 32px; font-size: .875rem; }

.session-example { display: grid; grid-template-columns: minmax(0,1.05fr) minmax(0,.95fr); gap: 60px; align-items: center; margin-top: 48px; }
.session-script { padding: 30px; border: 1px solid #445478; background: #102346; }
.session-script .script-label { margin: 0 0 23px; color: #fff; font-size: .875rem; }
.script-turn { display: grid; grid-template-columns: 44px minmax(0,1fr); gap: 18px; padding-block: 16px; border-top: 1px solid #344866; }
.script-turn > span { padding-top: 3px; color: #c9d4e7; font-size: .875rem; }
.script-turn > p { margin: 0; color: #fff; font-size: 1rem; line-height: 1.9; }
.script-caption { margin: 18px 0 0; color: #b4c5dc; font-size: .75rem; }
.session-insight { padding-left: 24px; border-left: 2px solid var(--yellow); }
.session-insight .insight-label { margin: 0 0 20px; color: #dbc483; font-size: .875rem; }
.session-insight .insight-from { margin: 0 0 10px; color: #bdc9df; font-size: 1rem; }
.session-insight h3 { margin: 0; color: #fff; font-size: clamp(1.65rem,2.6vw,2.25rem); font-weight: 600; line-height: 1.8; }
.session-insight .insight-description { margin: 0 0 23px; max-width: 390px; color: #c6d1e4; font-size: 1rem; line-height: 1.95; }

.route-mark {
  position: absolute;
  z-index: 3;
  right: 18px;
  bottom: 30px;
  width: 122px;
  fill: none;
  stroke: #fff;
  stroke-linecap: round;
  stroke-width: 2;
}

.route-mark circle {
  fill: var(--yellow);
  stroke: none;
}

.tension {
  position: relative;
  display: grid;
  grid-template-columns: 0.8fr 1.2fr;
  gap: 80px;
  padding-top: 122px;
  padding-bottom: 132px;
}

.section-number {
  position: absolute;
  z-index: -1;
  top: 52px;
  left: -10px;
  color: #f0f4f8;
  font-size: 168px;
  font-weight: 800;
  line-height: 1;
  letter-spacing: -0.08em;
}

.section-intro h2,
.dialogue h2,
.coach h2,
.journal h2,
.closing h2 {
  margin: 0;
  font-size: clamp(30px, 3.4vw, 46px);
  line-height: 1.48;
}

.tension-list {
  border-top: 1px solid #bdc8d6;
}

.tension-list article {
  display: grid;
  grid-template-columns: 54px 1fr;
  align-items: center;
  min-height: 118px;
  border-bottom: 1px solid #bdc8d6;
}

.tension-list article > span {
  color: var(--blue);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.12em;
}

.tension-list p {
  margin: 0;
  font-family: var(--sans);
  font-size: 20px;
  line-height: 1.7;
}

.dialogue {
  overflow: hidden;
  padding: 126px 0 136px;
  color: #fff;
  background: var(--deep);
}

.dialogue .section-shell {
  position: relative;
}

.dialogue .section-shell::before {
  content: "";
  position: absolute;
  width: 440px;
  height: 440px;
  right: -230px;
  top: -260px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 50%;
}

.dialogue-heading {
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  column-gap: 88px;
  align-items: end;
}

.dialogue-heading .eyebrow {
  grid-column: 1 / -1;
}

.dialogue-heading > p:last-child {
  margin: 0 0 9px;
  color: #c6d1e4;
  line-height: 2;
}

.process {
  position: relative;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  margin-top: 82px;
  background: rgba(255, 255, 255, 0.16);
  border-top: 1px solid rgba(255, 255, 255, 0.16);
  border-bottom: 1px solid rgba(255, 255, 255, 0.16);
}

.process article {
  position: relative;
  min-height: 330px;
  padding: 38px 34px;
  background: var(--deep);
}

.process-index {
  color: #9bb2dd;
  font-size: 12px;
  font-weight: 800;
}

.process-en {
  margin: 74px 0 6px;
  color: var(--yellow);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.22em;
}

.process h3 {
  margin: 0 0 12px;
  font-family: var(--sans);
  font-size: 28px;
  font-weight: 600;
}

.process article > p:last-child {
  margin: 0;
  color: #b7c4da;
  font-size: 14px;
  line-height: 1.9;
}

.voice {
  position: relative;
  width: min(850px, 90%);
  margin: 106px auto 0;
  padding: 0 0 0 54px;
  border-left: 2px solid var(--yellow);
}

.voice span {
  color: #9bb2dd;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.22em;
}

.voice p {
  margin: 16px 0 18px;
  font-family: var(--sans);
  font-size: clamp(28px, 3.5vw, 44px);
  line-height: 1.65;
}

.voice footer {
  color: #99a9c2;
  font-size: 12px;
}

.coach {
  display: grid;
  grid-template-columns: 0.86fr 1.14fr;
  align-items: center;
  gap: clamp(60px, 9vw, 126px);
  padding-top: 150px;
  padding-bottom: 150px;
}

.coach-image {
  position: relative;
  width: min(100%, 410px);
  min-height: 570px;
}

.coach-image img {
  position: absolute;
  inset: 0;
  z-index: 2;
  width: 100%;
  height: 530px;
  object-fit: cover;
  object-position: 52% 29%;
  filter: saturate(0.82) contrast(1.03);
}

.image-backdrop {
  position: absolute;
  z-index: 1;
  width: 82%;
  height: 86%;
  right: -32px;
  bottom: 2px;
  background: var(--mist);
}

.image-caption {
  position: absolute;
  z-index: 3;
  right: -42px;
  bottom: 0;
  color: var(--navy);
  font-size: 9px;
  font-weight: 800;
  line-height: 1.7;
  letter-spacing: 0.18em;
  writing-mode: vertical-rl;
}

.coach-copy h2 {
  color: var(--deep);
}

.coach-name {
  margin: 34px 0 18px;
  padding-bottom: 18px;
  border-bottom: 1px solid #dbe2eb;
  color: var(--navy);
  font-size: 20px;
  font-weight: 800;
}

.coach-name span {
  margin-left: 13px;
  color: #6f7b8d;
  font-size: 12px;
  font-weight: 500;
}

.coach-copy > p:not(.eyebrow):not(.coach-name) {
  color: #4d596a;
  line-height: 2.05;
}

.journal {
  padding: 126px 0 132px;
  background: var(--pale);
}

.journal-head {
  display: grid;
  grid-template-columns: 1.12fr 0.88fr;
  align-items: end;
  gap: 80px;
}

.journal-head > p {
  margin: 0 0 10px;
  color: #5e6a7d;
}

.article-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  margin-top: 62px;
}

.article-card {
  overflow: hidden;
  background: #fff;
  transition: transform 180ms ease, box-shadow 180ms ease;
}

.article-card:hover,
.article-card:focus-visible {
  transform: translateY(-5px);
  box-shadow: 0 20px 48px rgba(10, 33, 90, 0.13);
}

.article-card img {
  width: 100%;
  aspect-ratio: 1.91 / 1;
  object-fit: cover;
}

.article-copy {
  padding: 25px 24px 23px;
}

.article-copy > span {
  color: var(--blue);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.16em;
}

.article-copy h3 {
  min-height: 72px;
  margin: 11px 0 23px;
  font-family: var(--sans);
  font-size: 18px;
  font-weight: 600;
  line-height: 1.65;
}

.article-copy p {
  margin: 0;
  padding-top: 13px;
  border-top: 1px solid #e0e6ee;
  color: var(--navy);
  font-size: 12px;
  font-weight: 700;
}

.podcast-strip {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 28px;
  margin-top: 22px;
  padding: 28px 32px;
  color: #fff;
  background: var(--navy);
}

.podcast-mark {
  display: flex;
  align-items: center;
  gap: 4px;
  height: 48px;
}

.podcast-mark span {
  display: block;
  width: 4px;
  border-radius: 4px;
  background: var(--yellow);
}

.podcast-mark span:nth-child(1) { height: 18px; }
.podcast-mark span:nth-child(2) { height: 40px; }
.podcast-mark span:nth-child(3) { height: 28px; }
.podcast-mark span:nth-child(4) { height: 48px; }

.podcast-strip > div:nth-child(2) > span {
  color: #a9bee7;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.19em;
}

.podcast-strip h3 {
  margin: 3px 0 0;
  font-size: 18px;
}

.podcast-strip p {
  margin: 2px 0 0;
  color: #bdc9df;
  font-size: 13px;
}

.podcast-strip > a {
  padding-bottom: 3px;
  border-bottom: 1px solid rgba(255,255,255,.7);
  font-size: 13px;
  font-weight: 700;
}

.closing {
  position: relative;
  overflow: hidden;
  padding: 112px 0 118px;
  color: #fff;
  background: var(--blue);
}

.closing-route {
  position: absolute;
  right: -70px;
  bottom: -12px;
  width: min(58vw, 760px);
  fill: none;
  stroke: rgba(255, 255, 255, 0.18);
  stroke-width: 2;
}

.closing-grid {
  position: relative;
  display: grid;
  grid-template-columns: 1fr 0.8fr;
  align-items: center;
  gap: 100px;
}

.closing h2 {
  font-size: clamp(32px, 3.8vw, 52px);
}

.closing-grid > div:first-child > p:last-child {
  margin: 23px 0 0;
  color: #dbe5f7;
}

.trial-card {
  padding: 34px 36px;
  border: 1px solid rgba(255, 255, 255, 0.4);
  background: rgba(9, 32, 83, 0.22);
  backdrop-filter: blur(6px);
}

.trial-card > p {
  margin: 0 0 5px;
  color: #dbe5f7;
  font-size: 13px;
}

.trial-card strong {
  display: flex;
  align-items: baseline;
  gap: 5px;
  font-family: var(--sans);
  font-size: 44px;
  font-weight: 600;
}

.trial-card strong span {
  font-size: 15px;
}

.trial-card strong b {
  margin-left: auto;
  font-family: var(--sans);
  font-size: 15px;
}

.trial-card small {
  display: block;
  margin: 4px 0 23px;
  color: #d1ddf1;
  font-size: 12px;
}

.light-button {
  width: 100%;
  color: var(--navy);
  background: #fff;
  border-color: #fff;
}

.light-button:hover,
.light-button:focus-visible {
  color: #fff;
  background: transparent;
}

.site-footer {
  display: grid;
  grid-template-columns: 1fr auto auto;
  align-items: center;
  gap: 42px;
  min-height: 126px;
  color: #607087;
  font-size: 11px;
}

.footer-brand {
  height: 80px;
  overflow: hidden;
}

.footer-logo {
  transform: scale(0.83);
  transform-origin: left center;
}

.footer-links {
  display: flex;
  gap: 24px;
}

.site-footer > p {
  margin: 0;
}

:focus-visible {
  outline: 3px solid var(--yellow);
  outline-offset: 4px;
}

@media (max-width: 920px) {
  .site-header {
    grid-template-columns: 1fr auto;
  }

  .desktop-nav {
    display: none;
  }

  .hero {
    grid-template-columns: 1fr;
    padding-top: 60px;
  }

  .hero-copy {
    max-width: 670px;
  }

  .hero-visual {
    min-height: 570px;
  }

  .tension,
  .dialogue-heading,
  .coach,
  .journal-head,
  .closing-grid {
    grid-template-columns: 1fr;
  }

  .tension {
    gap: 54px;
  }

  .dialogue-heading,
  .journal-head,
  .closing-grid {
    gap: 32px;
  }

  .coach-image {
    width: min(78vw, 440px);
  }

  .article-grid {
    grid-template-columns: 1fr 1fr;
  }

  .article-card.featured {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: 1.1fr 0.9fr;
  }

  .article-card.featured img {
    height: 100%;
  }
}

@media (max-width: 640px) {
  .section-shell,
  .site-header,
  .site-footer {
    width: min(calc(100% - 36px), var(--max));
  }

  .concept-stamp {
    right: 10px;
    bottom: 10px;
  }

  .site-header {
    min-height: 82px;
    gap: 8px;
  }

  .brand {
    width: 126px;
    height: 64px;
  }

  .logo-frame {
    transform: scale(0.79);
    transform-origin: left top;
  }

  .header-cta {
    min-height: 40px;
    padding: 0 15px;
    font-size: 12px;
  }

  .hero {
    min-height: auto;
    gap: 50px;
    padding-top: 50px;
    padding-bottom: 76px;
  }

  .hero h1 {
    font-size: clamp(28px, 7.9vw, 43px);
  }

  .hero h1 span {
    white-space: normal;
  }

  .hero-lead {
    font-size: 16px;
    line-height: 1.95;
  }

  .hero-lead br {
    display: none;
  }

  .hero-actions {
    align-items: flex-start;
    flex-direction: column;
  }

  .primary-button {
    width: 100%;
  }

  .session-facts {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
  }

  .session-facts dd {
    font-size: 12px;
  }

  .hero-visual {
    min-height: 465px;
    border-radius: 200px 200px 10px 10px;
    box-shadow: 15px 18px 0 var(--pale);
  }

  .hero-quote {
    padding: 20px;
  }

  .hero-quote p {
    font-size: 20px;
  }

  .route-mark {
    display: none;
  }

  .tension {
    padding-top: 98px;
    padding-bottom: 100px;
  }

  .section-number {
    top: 40px;
    font-size: 112px;
  }

  .section-intro h2,
  .dialogue h2,
  .coach h2,
  .journal h2,
  .closing h2 {
    font-size: clamp(27px, 7.7vw, 34px);
  }

  .tension-list p {
    font-size: 17px;
  }

  .tension-list article {
    grid-template-columns: 40px 1fr;
    min-height: 112px;
  }

  .dialogue {
    padding: 98px 0 104px;
  }

  .process {
    grid-template-columns: 1fr;
    margin-top: 56px;
  }

  .process article {
    min-height: 250px;
    padding: 28px 25px;
  }

  .process-en {
    margin-top: 45px;
  }

  .voice {
    width: 100%;
    margin-top: 76px;
    padding-left: 24px;
  }

  .voice p {
    font-size: 25px;
  }

  .voice p br {
    display: none;
  }

  .coach {
    gap: 62px;
    padding-top: 105px;
    padding-bottom: 110px;
  }

  .coach-image {
    width: calc(100% - 32px);
    min-height: 500px;
  }

  .coach-image img {
    height: 470px;
  }

  .coach-name span {
    display: block;
    margin: 5px 0 0;
  }

  .journal {
    padding: 98px 0 104px;
  }

  .article-grid,
  .article-card.featured {
    grid-template-columns: 1fr;
  }

  .article-card.featured {
    display: block;
  }

  .article-card.featured img {
    height: auto;
  }

  .article-copy h3 {
    min-height: auto;
  }

  .podcast-strip {
    grid-template-columns: auto 1fr;
    padding: 25px 23px;
  }

  .podcast-strip > a {
    grid-column: 2;
    justify-self: start;
  }

  .closing {
    padding: 94px 0 98px;
  }

  .trial-card {
    padding: 28px 24px;
  }

  .trial-card strong {
    font-size: 38px;
  }

  .site-footer {
    grid-template-columns: 1fr;
    gap: 15px;
    padding: 26px 0 38px;
  }

  .footer-brand {
    height: 64px;
  }

  .footer-links {
    flex-wrap: wrap;
    gap: 8px 18px;
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    transition: none !important;
  }
}

/* Pricing uses the original quiet type, fine rules and navy/gold palette. */
.visually-hidden { position: absolute; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.nowrap { white-space: nowrap; }
.photo-credit { position: absolute; left: 0; top: 539px; color: #6f7b8d; font-size: 11px; }
.pricing { display: grid; grid-template-columns: minmax(0,.8fr) minmax(0,1.2fr); gap: 50px 88px; align-items: start; padding-block: 110px 130px; border-top: 1px solid #dbe2eb; scroll-margin-top: 32px; }
.pricing h2 { margin: 0; color: var(--deep); font-size: clamp(30px,3.4vw,46px); font-weight: 600; line-height: 1.5; letter-spacing: .02em; }
.pricing-intro > p:not(.eyebrow) { margin: 27px 0 0; color: #4d596a; line-height: 2; }
.pricing-intro .primary-button { margin-top: 32px; }
.pricing-intro > p.pricing-after { margin-top: 14px; font-size: 13px; }
.price-trial { display: flex; align-items: center; justify-content: space-between; gap: 25px; padding: 27px 30px 29px; background: var(--pale); border-top: 3px solid var(--yellow); }
.price-kicker { display: block; color: #63748e; font-size: 12px; }
.price-trial h3 { margin: 5px 0 3px; color: var(--navy); font-size: 20px; font-weight: 600; }
.price-duration { color: #596b87; font-size: 13px; }
.price-trial > p { margin: 0; color: var(--navy); white-space: nowrap; }
.price-trial strong { font-size: 38px; font-weight: 600; letter-spacing: -.03em; }
.price-trial > p > span { display: block; text-align: right; font-size: 12px; }
.continuing-title { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 8px 16px; margin-top: 35px; margin-bottom: 18px; }
.continuing-title h3 { margin: 0; color: var(--navy); font-size: 19px; font-weight: 600; }
.continuing-title > span { color: #63748e; font-size: 12px; }
.price-table { width: 100%; border-collapse: collapse; color: var(--navy); font-size: 15px; font-variant-numeric: tabular-nums; }
.price-table th, .price-table td { padding: 21px 12px; border-bottom: 1px solid #d4deea; text-align: right; vertical-align: middle; }
.price-table thead th { padding-top: 12px; padding-bottom: 12px; border-top: 1px solid var(--navy); color: #63748e; font-size: 12px; font-weight: 500; }
.price-table th:first-child { padding-left: 0; text-align: left; }
.price-table th:last-child, .price-table td:last-child { padding-right: 0; }
.price-table tbody th { font-weight: 600; }
.price-table td { white-space: nowrap; }
.price-table td span { margin-left: 2px; font-size: 12px; }
.price-table td strong { font-size: 21px; font-weight: 650; letter-spacing: -.025em; }
.plan-recommend { display: block; width: fit-content; padding: 0 6px; margin-top: 5px; background: #f9f0d8; color: #6d5017; font-size: 10px; font-weight: 500; line-height: 1.9; }
.plan-count { display: block; color: #63748e; font-size: 12px; font-weight: 400; }
.payment-detail { margin-top: 22px; }
.payment-detail p { margin: 0 0 11px; color: #63748e; font-size: 12px; line-height: 1.9; }
.payment-detail .text-link { font-size: 12px; }
.trial-pricing-link { display: inline-block; margin-bottom: 22px; padding-bottom: 3px; border-bottom: 1px solid #c5d5ee; font-size: 13px; color: #fff; }
.pretrial-contact { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 32px; padding-top: 30px; border-top: 1px solid #dbe2eb; scroll-margin-top: 32px; }
.pretrial-contact .contact-kicker { margin: 0 0 9px; color: #63748e; font-size: 12px; }
.pretrial-contact h3 { margin: 0 0 14px; color: var(--navy); font-size: 18px; font-weight: 600; line-height: 1.7; }
.contact-copy > p:not(.contact-kicker) { margin: 0; color: #4d596a; font-size: 14px; line-height: 1.95; }
.contact-copy > p + p { margin-top: 12px; }
.contact-question-break { display: none; }
@media (max-width: 640px) {
  .contact-question-break { display: initial; }
}
.inquiry-button { display: inline-flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 52px; padding: 13px 20px; border: 1px solid var(--navy); background: transparent; color: var(--navy); font-size: 14px; font-weight: 600; line-height: 1.65; }
.inquiry-button > span { flex-shrink: 0; }
.inquiry-button:hover { background: var(--pale); }
.hero-inquiry > .inquiry-button,
.pretrial-contact .inquiry-button { min-height: 56px; border: 1.5px solid #7184a4; background: var(--pale); color: var(--navy); font-weight: 600; }
.hero-inquiry > .inquiry-button:hover,
.pretrial-contact .inquiry-button:hover { background: #e4ebf5; border-color: var(--navy); }
.contact-action > small { display: block; margin-top: 9px; color: #63748e; font-size: 11px; }
.inquiry-light { display: flex; width: 100%; margin-top: 13px; border-color: #c8d7ee; color: #fff; }
.inquiry-light:hover { color: var(--navy); background: #fff; }
.trial-card > p.closing-inquiry-note { margin: 11px 0 0; color: #dbe5f7; font-size: 12px; line-height: 1.8; }

/* Keep each service distinct and the participation notes easy to scan. */
.pricing-reviewed { gap: 36px 64px; }
.pricing-reviewed > * { min-width: 0; }
.pricing-reviewed .pricing-intro .primary-button { width: 100%; max-width: 380px; min-height: 60px; padding: 14px 20px; gap: 14px; font-size: 15px; font-weight: 600; letter-spacing: .015em; line-height: 1.65; }
.pricing-reviewed .pricing-intro .primary-button > span:first-child { min-width: 0; }
.pricing-reviewed .pricing-intro .primary-button > span:last-child { flex-shrink: 0; }
.pricing-reviewed .pricing-after { max-width: 380px; }
.continuing-note { margin: 16px 0 0; color: #4d596a; font-size: 13px; line-height: 1.9; }
.single-session { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0,1fr) auto auto; align-items: center; gap: 28px; padding: 28px 30px; border: 1px solid #cfd8e5; border-top: 2px solid var(--navy); background: #fafbfc; }
.single-session-copy { min-width: 0; }
.single-session-kicker { margin: 0 0 7px; color: #596b87; font-size: 13px; }
.single-session h3 { display: flex; flex-wrap: wrap; align-items: baseline; gap: 12px; margin: 0; color: var(--navy); font-size: 23px; font-weight: 600; line-height: 1.5; }
.single-session h3 > span { font-size: 17px; font-weight: 500; }
.single-session-description { max-width: 30em; margin: 12px 0 0; color: #4d596a; font-size: 13px; line-height: 1.85; }
.single-session-included { display: inline-block; margin: 14px 0 0; padding: 2px 9px; color: #614b1c; background: #f7efd9; font-size: 12px; line-height: 1.8; }
.single-session-price { margin: 0; color: var(--navy); white-space: nowrap; font-variant-numeric: tabular-nums; }
.single-session-price strong { font-size: 36px; font-weight: 600; line-height: 1.3; letter-spacing: -.03em; }
.single-session-price > span { display: block; text-align: right; font-size: 12px; }
.single-session-action { min-width: 0; }
.single-session-action .inquiry-button { min-width: 190px; min-height: 58px; gap: 24px; padding: 15px 24px; background: var(--navy); color: var(--white); font-size: 15px; font-weight: 600; }
.single-session-action .inquiry-button:hover { background: var(--deep); }
.single-session-action button.inquiry-button { font-family: inherit; }
.single-session-action .inquiry-button:disabled { opacity: 1; cursor: default; }
.single-session-action .inquiry-button:disabled:hover { background: var(--navy); }
.single-session-action small { display: block; margin-top: 8px; color: #63748e; font-size: 11px; }
.pricing-reviewed > .payment-detail { grid-column: 1 / -1; display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 12px 28px; margin-top: 0; }
.pricing-reviewed > .payment-detail p { margin: 0; }
.session-guidance { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 42px; padding-top: 28px; border-top: 1px solid #dbe2eb; }
.session-guidance h3 { margin: 0 0 12px; color: var(--navy); font-size: 15px; font-weight: 600; line-height: 1.7; }
.session-guidance p { margin: 0; color: #4d596a; font-size: 14px; line-height: 1.95; }
.session-guidance p + p { margin-top: 10px; }
@media (max-width: 1050px) {
  .single-session { grid-template-columns: minmax(0,1fr) auto; gap: 20px 28px; }
  .single-session-action { grid-column: 1 / -1; }
}
@media (max-width: 920px) {
  .pricing-reviewed { gap: 32px; }
  .pricing-reviewed .pricing-detail { max-width: none; }
  .session-guidance { gap: 28px; }
}
@media (max-width: 640px) {
  .pricing-reviewed .pricing-intro .primary-button { max-width: none; font-size: 14px; }
  .single-session { grid-template-columns: minmax(0,1fr); gap: 20px; padding: 23px 20px; }
  .single-session h3 { font-size: 21px; }
  .single-session-price { display: flex; align-items: baseline; gap: 6px; }
  .single-session-price strong { font-size: 33px; }
  .single-session-price > span { text-align: left; }
  .single-session-action .inquiry-button { width: 100%; }
  .session-guidance { grid-template-columns: minmax(0,1fr); gap: 25px; }
  .pricing-reviewed .price-table { table-layout: fixed; }
  .pricing-reviewed .price-table th:first-child { width: 31%; }
}
@media (max-width: 920px) {
  .pricing { grid-template-columns: 1fr; gap: 42px; }
  .pricing-detail { width: 100%; max-width: 670px; }
}
@media (max-width: 640px) {
  .photo-credit { top: 477px; }
  .pricing { padding-block: 76px 90px; }
  .pricing h2 { font-size: clamp(27px,7.7vw,34px); }
  .pricing-intro > p:not(.eyebrow) { margin-top: 21px; }
  .pricing-intro > p > br { display: none; }
  .pricing-intro .primary-button { width: 100%; margin-top: 25px; }
  .price-trial { gap: 14px; padding: 23px 20px; }
  .price-trial h3 { font-size: 17px; }
  .price-trial strong { font-size: 31px; }
  .price-table { font-size: 13px; }
  .price-table th, .price-table td { padding: 19px 6px; }
  .price-table td strong { font-size: 18px; }
  .price-table td span { margin-left: 1px; font-size: 11px; }
  .continuing-title > span { font-size: 11px; }
  .pretrial-contact { grid-template-columns: 1fr; gap: 20px; }
  .pretrial-contact .inquiry-button { width: 100%; }
}

/* Let the opening image and message read together on a phone. */
@media (min-width: 641px) and (max-width: 920px) {
  .hero { grid-template-columns: minmax(0,1fr) minmax(0,.82fr); gap: 30px; padding-block: 44px 64px; }
  .hero h1 { font-size: clamp(1.85rem,4.2vw,2.7rem); }
  .hero-category { font-size: .875rem; line-height: 1.7; }
  .hero-category::before { display: none; }
  .hero-lead { font-size: 1rem; }
  .hero-lead br { display: none; }
  .hero-actions .primary-button { min-width: 0; width: 100%; padding-inline: 16px; gap: 12px; }
  .hero-visual { min-height: 0; aspect-ratio: 1.1; border-radius: 90px 90px 8px 8px; }
  .hero-quote { width: 100%; padding: 18px; }
  .hero-quote p { font-size: 1rem; }
  .hero-coach { gap: 10px; }
  .hero-coach strong > span { display: block; margin-left: 0; }
  .hero-coach small { line-height: 1.7; }
  .hero-coach .coach-link-arrow { display: none; }
  .hero-trial-facts > span { margin-left: 0; display: block; }
  .changes-heading { gap: 0 36px; }
  .change-examples { gap: 30px; }
  .change-example h3 { font-size: 1.2rem; }
  .change-result h4 { font-size: 1.125rem; }
  .session-example { gap: 32px; }
  .session-script { padding: 24px; }
  .script-turn { grid-template-columns: 1fr; gap: 6px; }
}
@media (max-width: 640px) {
  .hero { display: flex; flex-direction: column; align-items: stretch; gap: 0; padding-block: 26px 42px; }
  .hero-copy, .hero-side { display: contents; }
  .hero-category { order: 1; margin: 0 0 16px; font-size: .875rem; line-height: 1.65; letter-spacing: 0; }
  .hero-category::before { display: none; }
  .hero h1 { order: 2; font-size: clamp(1.95rem,8.65vw,2.75rem); line-height: 1.55; letter-spacing: -.025em; }
  .hero h1 .hero-question { margin-bottom: 9px; font-size: .62em; }
  .hero-visual { order: 3; min-height: 0; height: clamp(155px,44vw,230px); aspect-ratio: auto; margin-top: 22px; border-radius: 64px 64px 5px 5px; box-shadow: 7px 8px 0 var(--pale); }
  .hero-visual > img { object-position: center 55%; }
  .hero-quote, .hero-visual::after { display: none; }
  .hero-lead { order: 4; margin-top: 23px; font-size: 1rem; line-height: 1.9; }
  .hero-lead br { display: initial; }
  .hero-actions { order: 5; margin-top: 22px; }
  .hero-actions .primary-button { min-width: 0; width: 100%; min-height: 56px; padding-inline: 20px; font-size: .9375rem; }
  .hero-trial-facts { margin-top: 9px; text-align: center; font-size: .875rem; }
  .hero-trial-facts > span { margin-left: 8px; }
  .hero-more { order: 6; justify-content: center; gap: 4px 22px; margin-top: 7px; font-size: .875rem; }
  .hero-coach { order: 7; margin-top: 17px; padding-top: 20px; border-top: 1px solid #d4deea; }
  .hero-coach strong { font-size: .875rem; }
  .hero-coach strong > span { margin-left: 8px; }
  .hero-coach small { font-size: .75rem; }
  .header-cta { min-height: 44px; font-size: .875rem; }
  .changes { padding-block: 44px 56px; }
  .changes-heading { display: block; }
  .changes-heading .eyebrow { margin-bottom: 17px; }
  .changes h2 { font-size: clamp(1.5rem,6.7vw,1.95rem); line-height: 1.7; }
  .changes-heading > p:last-child { margin-top: 19px; }
  .changes-heading > p:last-child br { display: none; }
  .change-examples { grid-template-columns: 1fr; gap: 31px; margin-top: 28px; }
  .change-example { padding-top: 21px; }
  .change-context { font-size: .875rem; margin-bottom: 10px; }
  .change-example h3 { font-size: 1.1875rem; line-height: 1.8; }
  .change-result { margin-top: 20px; padding-left: 17px; }
  .change-result h4 { margin-bottom: 10px; font-size: 1.125rem; }
  .change-result > p:last-child { line-height: 1.9; }
  .changes-next { margin-top: 22px; }
  .dialogue { padding-block: 58px 65px; }
  .dialogue-heading { gap: 22px; }
  .dialogue-heading .eyebrow { margin-bottom: 0; font-size: .875rem; letter-spacing: .04em; }
  .dialogue-heading h2 { font-size: clamp(1.45rem,6.5vw,1.95rem); line-height: 1.75; }
  .dialogue-heading > p:last-child { font-size: 1rem; line-height: 1.9; }
  .session-example { grid-template-columns: 1fr; gap: 30px; margin-top: 27px; }
  .session-script { padding: 22px 18px; }
  .session-script .script-label { margin-bottom: 18px; }
  .script-turn { grid-template-columns: 42px minmax(0,1fr); gap: 13px; padding-block: 14px; }
  .script-turn > p { font-size: 1rem; line-height: 1.85; }
  .script-caption { font-size: .75rem; }
  .session-insight { padding-left: 20px; }
  .session-insight .insight-label { margin-bottom: 16px; }
  .session-insight h3 { font-size: 1.7rem; line-height: 1.7; }
  .session-insight .insight-description { margin-bottom: 17px; }
  .voice { margin-top: 47px; padding-left: 20px; }
  .voice > span { font-size: .75rem; letter-spacing: .12em; }
  .voice p { font-size: 1.25rem; line-height: 1.9; }
  .coach { padding-block: 64px 72px; }
  .journal { padding-block: 62px 68px; }
  .closing { padding-block: 64px 70px; }
  .contact-copy > p:not(.contact-kicker) { font-size: 1rem; }
}
@media (max-width: 350px) {
  .hero-category { font-size: .8125rem; }
  .hero h1 { font-size: 1.8rem; }
  .hero-lead br { display: none; }
  .hero-trial-facts { font-size: .8125rem; }
  .hero-trial-facts > span { margin-left: 4px; }
  .hero-more { gap: 4px 17px; font-size: .8125rem; }
  .hero-coach strong > span { display: block; margin-left: 0; }
}
