/*
Design proposal B: navy editorial clinic style.
Applied sitewide through the design-navy body class.
*/

.design-navy {
  --fixed-header-height: 6.4rem;
  --navy-950: #06182d;
  --navy-900: #0a2340;
  --navy-800: #123657;
  --navy-700: #1a486e;
  --navy-100: #e8eef4;
  --navy-050: #f3f6f9;
  --gold-500: #c79243;
  --gold-300: #e7c78c;
  --ink-navy: #101d2b;
  --color-deep: var(--navy-900);
  --color-deep-2: var(--navy-950);
  --color-sage: #8ea1b4;
  --color-sage-pale: var(--navy-100);
  --color-brass: var(--gold-500);
  --color-brass-light: var(--gold-300);
  --color-paper: var(--navy-050);
  --color-ink: var(--ink-navy);
  --color-ink-soft: #526273;
  --color-line: #cbd5df;
  --shadow-soft: 0 18px 50px rgba(6, 24, 45, 0.14);
  background: #eef2f6;
  font-family: "Yu Gothic", "YuGothic", "Hiragino Kaku Gothic ProN", sans-serif;
  padding-top: var(--fixed-header-height);
}

.design-navy h1,
.design-navy h2,
.design-navy h3 {
  font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
}

.design-navy .prototype-bar {
  border-bottom: 1px solid rgba(255, 255, 255, 0.16);
  background: #020d1b;
}

.design-navy .site-header {
  position: fixed;
  z-index: 1000;
  top: 0;
  right: 0;
  left: 0;
  width: 100%;
  border-bottom: 0;
  color: #fff;
  background: var(--navy-950);
  box-shadow: 0 8px 25px rgba(6, 24, 45, 0.18);
}

.design-navy .site-header__inner {
  min-height: 6.4rem;
}

.design-navy .site-header .site-brand {
  color: #fff;
}

.design-navy .site-header .site-brand__mark {
  border: 2px solid var(--gold-500);
  color: var(--gold-300);
  background: rgba(255, 255, 255, 0.04);
}

.design-navy .site-header .site-brand__name {
  font-size: 1.2rem;
  letter-spacing: 0.12em;
}

.design-navy .site-header .site-brand__note {
  color: #bfcbd7;
}

.design-navy .mobile-header-phone {
  display: none;
}

.design-navy .site-nav {
  gap: 0.45rem;
}

.design-navy .site-nav__menu {
  gap: 0;
}

.design-navy .site-nav__link {
  padding: 0.55rem 0.72rem;
  border-left: 1px solid rgba(255, 255, 255, 0.16);
  color: #f7f9fb;
  font-size: 0.75rem;
}

.design-navy .site-nav__menu li:last-child .site-nav__link {
  border-right: 1px solid rgba(255, 255, 255, 0.16);
}

.design-navy .site-nav__link:hover {
  color: var(--gold-300);
  background: rgba(255, 255, 255, 0.06);
}

.design-navy .site-header .c-button {
  min-height: 3rem;
  border-color: var(--gold-500);
  border-radius: 0.25rem;
  background: var(--gold-500);
}

.design-navy .site-header .c-button:hover {
  color: var(--gold-500);
  background: transparent;
}

.design-navy .home-hero--kato {
  color: #fff;
  background:
    linear-gradient(90deg, rgba(6, 24, 45, 0.98) 0 58%, rgba(6, 24, 45, 0.86) 58% 100%),
    var(--navy-950);
}

.design-navy .home-hero--kato::before {
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(135deg, transparent 0 42px, rgba(255, 255, 255, 0.025) 42px 43px);
  content: "";
  pointer-events: none;
}

.design-navy .home-hero--kato .home-hero__inner {
  position: relative;
  min-height: clamp(43rem, 80vh, 54rem);
  grid-template-columns: minmax(0, 1.05fr) minmax(22rem, 0.75fr);
}

.design-navy .home-hero__location {
  border: 0;
  border-radius: 0;
  color: #fff;
  background: var(--gold-500);
}

.design-navy .home-hero__location span {
  color: #fff;
}

.design-navy .home-hero__eyebrow {
  color: var(--gold-300);
}

.design-navy .home-hero--kato .home-hero__title {
  max-width: 12.5em;
  color: #fff;
  font-size: clamp(2.2rem, 4.9vw, 4.25rem);
}

.design-navy .home-hero__title span {
  color: var(--gold-300);
}

.design-navy .home-hero__lead,
.design-navy .home-hero__contact-note {
  color: #d4dee8;
}

.design-navy .home-hero .c-button {
  border-radius: 0.25rem;
}

.design-navy .home-hero .c-button--outline {
  border-color: rgba(255, 255, 255, 0.72);
  color: #fff;
}

.design-navy .home-hero .c-button--outline:hover {
  color: var(--navy-950);
  background: #fff;
}

.design-navy .hero-proof {
  border-color: rgba(255, 255, 255, 0.24);
}

.design-navy .hero-proof__item + .hero-proof__item {
  border-color: rgba(255, 255, 255, 0.24);
}

.design-navy .hero-proof__item strong {
  color: #fff;
}

.design-navy .hero-proof__item > span {
  color: #c2cfdb;
}

.design-navy .home-hero__portrait {
  margin-block: 3rem;
}

.design-navy .home-hero__portrait::before {
  position: absolute;
  right: -1.2rem;
  bottom: -1.2rem;
  width: 68%;
  height: 68%;
  border: 2px solid var(--gold-500);
  content: "";
}

.design-navy .home-hero__portrait img {
  position: relative;
  z-index: 1;
  border: 0.55rem solid #fff;
  border-radius: 0;
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.3);
}

.design-navy .home-hero__portrait-card {
  z-index: 2;
  right: -1.7rem;
  bottom: 1.6rem;
  border-left-color: var(--gold-500);
  border-radius: 0;
  color: var(--navy-950);
  background: #fff;
}

.design-navy .home-hero__portrait-card span,
.design-navy .home-hero__portrait-card small {
  color: #5b6875;
}

.design-navy .l-container {
  width: min(calc(100% - 2.5rem), 68rem);
}

.design-navy .section {
  position: relative;
  padding-block: clamp(4.5rem, 8vw, 7rem);
  background: #fff;
}

.design-navy .section--paper,
.design-navy .voices-section,
.design-navy .reservation-section,
.design-navy .clinic-overview {
  background: var(--navy-050);
}

.design-navy .section--deep,
.design-navy .specialty-section,
.design-navy .treatment-section {
  color: #fff;
  background: var(--navy-900);
}

.design-navy .section__head {
  max-width: 50rem;
}

.design-navy .section__head--center {
  position: relative;
  padding-bottom: 1.25rem;
}

.design-navy .section__head--center::after {
  position: absolute;
  bottom: 0;
  left: 50%;
  width: 5rem;
  height: 3px;
  background: var(--gold-500);
  content: "";
  transform: translateX(-50%);
}

.design-navy .section__label,
.design-navy .page-hero__eyebrow,
.design-navy .home-hero__eyebrow {
  color: var(--gold-500);
  letter-spacing: 0.24em;
}

.design-navy .section__label::before,
.design-navy .page-hero__eyebrow::before,
.design-navy .home-hero__eyebrow::before {
  background: var(--gold-500);
}

.design-navy .c-button {
  border-radius: 0.2rem;
  box-shadow: 0 7px 18px rgba(6, 24, 45, 0.12);
}

.design-navy .c-button:hover {
  transform: translateY(-1px);
}

.design-navy .c-review-pill,
.design-navy .c-card__tag,
.design-navy .c-tag {
  border-color: #d4b57a;
  border-radius: 0.15rem;
  color: #694a16;
  background: #fff5df;
}

.design-navy .c-image-frame {
  border: 0.45rem solid #fff;
  border-radius: 0;
  outline: 1px solid #c7d2dd;
  box-shadow: 0 16px 38px rgba(6, 24, 45, 0.16);
}

.design-navy .source-review {
  border-bottom: 4px solid var(--gold-500);
  background: var(--navy-800);
}

.design-navy .source-review li {
  border-radius: 0.15rem;
  background: rgba(255, 255, 255, 0.06);
}

.design-navy .problem-section {
  background: #fff;
}

.design-navy .problem-section__lead {
  padding: clamp(1.5rem, 4vw, 2.5rem);
  border-top: 5px solid var(--navy-900);
  background: var(--navy-050);
}

.design-navy .problem-section__lead h2 {
  padding-bottom: 0.8rem;
  border-bottom: 1px solid var(--gold-500);
  color: var(--navy-900);
}

.design-navy .problem-list {
  border-top: 1px solid var(--color-line);
  border-left: 1px solid var(--color-line);
}

.design-navy .problem-list li {
  border-right: 1px solid var(--color-line);
  border-bottom: 1px solid var(--color-line);
  background: #fff;
}

.design-navy .problem-list li::before {
  display: grid;
  width: 1.35rem;
  height: 1.35rem;
  border-radius: 50%;
  color: #fff;
  background: var(--gold-500);
  content: "✓";
  font-size: 0.8rem;
  place-items: center;
}

.design-navy .specialty-section {
  border-top: 8px solid var(--navy-950);
}

.design-navy .specialty-section::before {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(115deg, rgba(255, 255, 255, 0.035) 0 25%, transparent 25% 100%);
  content: "";
  pointer-events: none;
}

.design-navy .specialty-section::after {
  border-color: rgba(231, 199, 140, 0.28);
}

.design-navy .specialty-section .c-image-frame {
  outline-color: rgba(255, 255, 255, 0.25);
}

.design-navy .claim-review {
  border-radius: 0;
  border-color: rgba(231, 199, 140, 0.55);
  background: rgba(2, 13, 27, 0.38);
}

.design-navy .section:not(.section--deep) .claim-review {
  border-left: 4px solid var(--gold-500);
  background: #fff8ea;
}

.design-navy .specialty-facts {
  border: 1px solid rgba(255, 255, 255, 0.25);
  border-top: 4px solid var(--gold-500);
  background: rgba(2, 13, 27, 0.34);
}

.design-navy .voices-section {
  border-top: 1px solid #d5dee7;
}

.design-navy .c-notice--strong {
  border: 1px solid #d9bd84;
  border-left: 6px solid var(--gold-500);
  border-radius: 0;
  background: #fff8e9;
}

.design-navy .voice-grid {
  gap: 1.15rem;
}

.design-navy .voice-card {
  border: 0;
  border-top: 4px solid var(--navy-900);
  border-radius: 0;
  box-shadow: 0 10px 28px rgba(6, 24, 45, 0.1);
}

.design-navy .voice-card__placeholder {
  background: var(--navy-800);
}

.design-navy .voice-card__placeholder span {
  color: var(--gold-300);
}

.design-navy .voice-card__body h3 {
  color: var(--navy-900);
}

.design-navy .director-section {
  background: #fff;
}

.design-navy .director-section__intro {
  padding: clamp(1.6rem, 4vw, 3rem);
  border: 1px solid var(--color-line);
  border-top: 6px solid var(--navy-900);
  background: var(--navy-050);
}

.design-navy .director-section__intro h2 {
  color: var(--navy-900);
}

.design-navy .director-promises > h3 {
  display: table;
  padding: 0.65rem 1.6rem;
  margin-inline: auto;
  color: #fff;
  background: var(--navy-900);
}

.design-navy .director-promises .c-card {
  border: 1px solid #c6d1dc;
  border-radius: 0;
  box-shadow: none;
}

.design-navy .director-promises .c-card:hover {
  border-color: var(--gold-500);
  box-shadow: 0 12px 25px rgba(6, 24, 45, 0.09);
}

.design-navy .director-quote {
  border-left: 0;
  border-top: 5px solid var(--gold-500);
  background: var(--navy-900);
}

.design-navy .book-placeholder {
  border: 1px dashed #9eafbf;
  background: var(--navy-050);
}

.design-navy .reasons-section {
  border-top: 8px solid var(--navy-950);
  background: var(--navy-050);
}

.design-navy .reason-feature {
  padding: clamp(1.6rem, 4vw, 2.8rem);
  border: 1px solid #c7d2dd;
  border-top: 5px solid var(--navy-900);
  margin-bottom: 1.5rem;
  background: #fff;
}

.design-navy .reason-feature__number,
.design-navy .reason-card__number {
  color: var(--gold-500);
}

.design-navy .reason-feature__content h3 {
  color: var(--navy-900);
}

.design-navy .reason-feature__media,
.design-navy .media-pending {
  border: 1px dashed #93a6b8;
  border-radius: 0;
  color: var(--navy-900);
  background:
    repeating-linear-gradient(135deg, rgba(10, 35, 64, 0.035) 0 10px, transparent 10px 20px),
    var(--navy-050);
}

.design-navy .reason-grid {
  border-top: 0;
  border-left: 0;
  gap: 1rem;
}

.design-navy .reason-card {
  border: 1px solid #c6d1dc;
  border-left: 5px solid var(--navy-800);
  background: #fff;
}

.design-navy .future-section {
  border-top: 8px solid var(--gold-500);
  background: #fff;
}

.design-navy .future-section .split-feature {
  padding: clamp(1.5rem, 4vw, 2.8rem);
  color: #fff;
  background: var(--navy-900);
}

.design-navy .future-section .split-feature h2 {
  color: #fff;
}

.design-navy .future-section .split-feature p:not(.section__label) {
  color: #d2dee9;
}

.design-navy .future-grid {
  gap: 0;
  border-top: 1px solid var(--color-line);
  border-left: 1px solid var(--color-line);
}

.design-navy .future-card {
  border-top: 0;
  border-right: 1px solid var(--color-line);
  border-bottom: 1px solid var(--color-line);
}

.design-navy .inline-cta {
  border-left: 6px solid var(--gold-500);
  background: var(--navy-800);
}

.design-navy .reservation-section {
  border-top: 8px solid var(--navy-950);
}

.design-navy .reservation-flow {
  gap: 0;
  border-top: 1px solid var(--color-line);
  border-left: 1px solid var(--color-line);
}

.design-navy .reservation-flow.c-steps li {
  border: 0;
  border-right: 1px solid var(--color-line);
  border-bottom: 1px solid var(--color-line);
  background: #fff;
}

.design-navy .reservation-flow.c-steps li::before {
  border: 0;
  border-radius: 0;
  color: #fff;
  background: var(--navy-900);
}

.design-navy .reservation-panel {
  border: 0;
  border-top: 6px solid var(--gold-500);
  border-radius: 0;
  color: #fff;
  background: var(--navy-900);
  box-shadow: 0 18px 42px rgba(6, 24, 45, 0.16);
}

.design-navy .reservation-panel h3 {
  color: #fff;
}

.design-navy .reservation-panel__intro > p {
  color: #d2dee9;
}

.design-navy .reservation-panel__channel {
  border: 1px solid rgba(255, 255, 255, 0.2);
  background: var(--navy-800);
}

.design-navy .reservation-panel__channel span,
.design-navy .reservation-panel__channel small {
  color: #c9d6e1;
}

.design-navy .reservation-panel__channel strong {
  color: #fff;
}

.design-navy .reservation-panel__warning {
  border-color: rgba(255, 255, 255, 0.22);
  color: #d5e0ea;
}

.design-navy .visit-notes article {
  background: #fff;
}

.design-navy .visit-notes h3 {
  padding-bottom: 0.45rem;
  border-bottom: 2px solid var(--gold-500);
  color: var(--navy-900);
}

.design-navy .price-summary {
  border-left: 6px solid var(--gold-500);
  background: var(--navy-800);
}

.design-navy .treatment-section {
  border-top: 8px solid var(--navy-950);
  background:
    repeating-linear-gradient(135deg, transparent 0 50px, rgba(255, 255, 255, 0.024) 50px 51px),
    var(--navy-900);
}

.design-navy .treatment-flow {
  gap: 1rem;
  background: transparent;
}

.design-navy .treatment-step {
  border-top: 4px solid var(--gold-500);
  background: var(--navy-950);
}

.design-navy .final-message {
  border-top: 8px solid var(--gold-500);
  background: #fff;
}

.design-navy .final-message__copy h2 {
  color: var(--navy-900);
}

.design-navy .final-message__copy blockquote {
  border-left: 5px solid var(--gold-500);
  border-radius: 0;
  background: var(--navy-050);
}

.design-navy .clinic-overview__layout > .flow {
  padding: 1.6rem;
  border-top: 5px solid var(--gold-500);
  color: #fff;
  background: var(--navy-900);
}

.design-navy .clinic-overview__layout > .flow h2 {
  color: #fff;
}

.design-navy .clinic-overview__layout > .flow p {
  color: #d2dee9;
}

.design-navy .clinic-overview__layout > .flow a {
  color: var(--gold-300);
}

.design-navy .c-definition-list {
  border-top: 5px solid var(--navy-900);
}

.design-navy .c-definition-list > div {
  border-right: 1px solid var(--color-line);
  border-left: 1px solid var(--color-line);
}

.design-navy .c-definition-list dt {
  color: var(--navy-900);
  background: #e2eaf1;
}

.design-navy .reservation-cta {
  border-top: 8px solid var(--gold-500);
  background: var(--navy-950);
}

.design-navy .reservation-cta::before {
  border-color: rgba(231, 199, 140, 0.25);
  border-radius: 0;
  transform: rotate(24deg);
}

.design-navy .site-footer {
  border-top: 1px solid rgba(255, 255, 255, 0.16);
  background: #020d1b;
}

.design-navy .site-footer__nav strong {
  color: var(--gold-300);
}

.design-navy .mobile-reservation {
  z-index: 900;
  border-top: 3px solid var(--gold-500);
  background: var(--navy-950);
}

.design-navy .mobile-reservation .mobile-reservation__phone {
  color: var(--navy-950);
  background: var(--gold-500);
}

.design-navy .mobile-reservation .mobile-reservation__phone span {
  color: #34250f;
}

.design-navy .mobile-reservation .mobile-reservation__form {
  background: var(--navy-950);
}

/* Price page */
.price-page {
  overflow-x: hidden;
}

.price-page .breadcrumb {
  color: #c6d2de;
  background: var(--navy-950);
}

.price-page .breadcrumb a {
  color: #fff;
}

.price-hero {
  position: relative;
  overflow: hidden;
  color: #fff;
  background: linear-gradient(120deg, rgba(6, 24, 45, 0.97), rgba(18, 54, 87, 0.92)), var(--navy-900);
}

.price-hero::before,
.price-hero::after {
  position: absolute;
  border: 1px solid rgba(231, 199, 140, 0.22);
  content: "";
  transform: rotate(34deg);
}

.price-hero::before {
  top: -15rem;
  right: -5rem;
  width: 31rem;
  height: 31rem;
}

.price-hero::after {
  right: 8rem;
  bottom: -12rem;
  width: 22rem;
  height: 22rem;
}

.price-hero__inner {
  position: relative;
  z-index: 1;
  display: grid;
  min-height: 27rem;
  padding-block: clamp(4rem, 8vw, 7rem);
  align-items: end;
  gap: 3rem;
  grid-template-columns: minmax(0, 48rem);
}

.price-hero__copy h1 {
  margin-bottom: 1.4rem;
  color: #fff;
  font-size: clamp(2.6rem, 6vw, 4.8rem);
}

.price-hero__copy > p:last-child {
  max-width: 40rem;
  margin-bottom: 0;
  color: #d7e1ea;
  font-size: 1.05rem;
}

.price-hero__facts {
  display: grid;
  border-top: 4px solid var(--gold-500);
  margin: 0;
  background: rgba(2, 13, 27, 0.56);
  box-shadow: 0 18px 45px rgba(0, 0, 0, 0.2);
}

.price-hero__facts > div {
  display: grid;
  padding: 1rem 1.25rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.15);
  gap: 1rem;
  grid-template-columns: 6rem 1fr;
}

.price-hero__facts dt {
  color: var(--gold-300);
  font-size: 0.82rem;
  font-weight: 700;
}

.price-hero__facts dd {
  margin: 0;
  color: #fff;
  font-weight: 700;
}

.price-plans,
.price-guide,
.price-faq {
  padding-block: clamp(4.5rem, 8vw, 7rem);
}

.price-section-heading {
  max-width: 48rem;
  margin-bottom: clamp(2.4rem, 5vw, 4rem);
}

.price-section-heading h2,
.price-faq__heading h2 {
  margin-bottom: 0.9rem;
  color: var(--navy-900);
}

.price-section-heading > p:last-child,
.price-faq__heading p:last-child {
  margin-bottom: 0;
  color: #526273;
}

.price-section-heading--center {
  margin-inline: auto;
  text-align: center;
}

.price-section-heading--center .section__label::before {
  display: none;
}

.price-plans {
  background: #fff;
}

.price-plans__grid {
  display: grid;
  border: 1px solid #c6d2dd;
  box-shadow: 0 22px 55px rgba(6, 24, 45, 0.12);
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.price-plan {
  display: grid;
  background: #fff;
  grid-template-rows: auto auto 1fr;
}

.price-plan + .price-plan {
  border-left: 1px solid #c6d2dd;
}

.price-plan__label {
  display: flex;
  min-height: 5.4rem;
  padding: 1.1rem 1.5rem;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  color: #fff;
  background: var(--navy-900);
}

.price-plan--first .price-plan__label {
  background: var(--navy-950);
}

.price-plan__label span {
  color: var(--gold-300);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.12em;
}

.price-plan__label strong {
  font-family: var(--font-serif);
  font-size: 1.35rem;
  letter-spacing: 0.08em;
}

.price-plan__main {
  padding: clamp(2rem, 5vw, 3.4rem) 1.5rem 2rem;
  text-align: center;
}

.price-plan__amount {
  display: flex;
  margin-bottom: 0.65rem;
  align-items: baseline;
  justify-content: center;
  gap: 0.35rem;
  color: var(--navy-900);
  line-height: 1;
}

.price-plan__amount strong {
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(3.15rem, 7vw, 5.25rem);
  font-weight: 500;
  letter-spacing: -0.035em;
}

.price-plan__amount > span:last-child {
  padding: 0.35rem 0.45rem;
  color: #fff;
  background: var(--gold-500);
  font-size: 0.72rem;
  font-weight: 700;
}

.price-plan__yen {
  color: var(--gold-500);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.3rem;
}

.price-plan__time {
  margin-bottom: 0;
  color: #5b6b7b;
  font-weight: 700;
}

.price-plan__detail {
  padding: 1.7rem clamp(1.4rem, 4vw, 2.5rem) 2.3rem;
  border-top: 1px solid #d4dde5;
  background: var(--navy-050);
}

.price-plan__detail h3 {
  padding-bottom: 0.7rem;
  border-bottom: 2px solid var(--gold-500);
  margin-bottom: 1rem;
  color: var(--navy-900);
  font-size: 1.08rem;
}

.price-plan__detail ul {
  display: grid;
  padding: 0;
  margin: 0;
  gap: 0.55rem;
  list-style: none;
}

.price-plan__detail li {
  position: relative;
  padding-left: 1.45rem;
}

.price-plan__detail li::before {
  position: absolute;
  top: 0;
  left: 0;
  color: var(--gold-500);
  content: "◆";
  font-size: 0.68rem;
}

.price-plans__note {
  margin: 1rem 0 0;
  color: #617181;
  font-size: 0.82rem;
}

.price-reason {
  padding-block: clamp(4.5rem, 8vw, 7rem);
  color: #e2eaf1;
  background: var(--navy-900);
}

.price-reason__grid {
  display: grid;
  align-items: center;
  gap: clamp(2rem, 5vw, 4.5rem);
  grid-template-columns: minmax(18rem, 0.92fr) minmax(0, 1.08fr);
}

.price-reason__image {
  position: relative;
  margin: 0;
}

.price-reason__image::after {
  position: absolute;
  top: 1.1rem;
  right: -1.1rem;
  bottom: -1.1rem;
  left: 1.1rem;
  border: 2px solid var(--gold-500);
  content: "";
}

.price-reason__image img {
  position: relative;
  z-index: 1;
  width: 100%;
  aspect-ratio: 3 / 2;
  border: 0.45rem solid #fff;
  object-fit: cover;
  box-shadow: 0 20px 48px rgba(0, 0, 0, 0.28);
}

.price-reason__copy h2 {
  color: #fff;
}

.price-reason__copy p {
  color: #d2dde7;
}

.price-reason__promise {
  display: grid;
  padding: 1.2rem 1.4rem;
  border-left: 5px solid var(--gold-500);
  margin-top: 1.7rem;
  gap: 0.25rem;
  background: var(--navy-950);
}

.price-reason__promise strong {
  color: var(--gold-300);
}

.price-reason__promise span {
  color: #fff;
  font-size: 0.9rem;
}

.price-guide {
  background: var(--navy-050);
}

.price-guide__grid {
  display: grid;
  border-top: 1px solid #c6d2dd;
  border-left: 1px solid #c6d2dd;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.price-guide-card {
  min-height: 15rem;
  padding: 2rem;
  border-right: 1px solid #c6d2dd;
  border-bottom: 1px solid #c6d2dd;
  background: #fff;
}

.price-guide-card__number {
  color: var(--gold-500);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 2.5rem;
  line-height: 1;
}

.price-guide-card h3 {
  margin: 1.2rem 0 0.8rem;
  color: var(--navy-900);
}

.price-guide-card p {
  margin-bottom: 0;
  color: #566676;
}

.price-faq {
  background: #fff;
}

.price-faq__layout {
  display: grid;
  align-items: start;
  gap: clamp(2rem, 6vw, 5rem);
  grid-template-columns: minmax(15rem, 0.65fr) minmax(0, 1.35fr);
}

.price-faq__heading {
  position: sticky;
  top: calc(var(--fixed-header-height) + 2rem);
}

.price-faq__list {
  border-top: 5px solid var(--navy-900);
}

.price-faq__list details {
  border-right: 1px solid #c8d3dd;
  border-bottom: 1px solid #c8d3dd;
  border-left: 1px solid #c8d3dd;
}

.price-faq__list summary {
  display: flex;
  padding: 1.25rem 1.3rem;
  align-items: center;
  gap: 0.9rem;
  color: var(--navy-900);
  background: var(--navy-050);
  cursor: pointer;
  font-weight: 700;
  list-style: none;
}

.price-faq__list summary::-webkit-details-marker {
  display: none;
}

.price-faq__list summary span {
  color: var(--gold-500);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.3rem;
}

.price-faq__list details > div {
  padding: 1.2rem 1.4rem 1.35rem 3.65rem;
}

.price-faq__list details p {
  margin-bottom: 0;
}

.price-reservation__phone {
  display: grid;
  min-width: min(100%, 20rem);
  padding: 1rem 1.3rem;
  border: 1px solid var(--gold-500);
  color: #fff;
  line-height: 1.35;
  text-align: center;
  text-decoration: none;
}

.price-reservation__phone span,
.price-reservation__phone small {
  color: #cbd7e2;
  font-size: 0.72rem;
}

.price-reservation__phone strong {
  color: var(--gold-300);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.65rem;
  letter-spacing: 0.04em;
}

@media (max-width: 56rem) {
  .price-hero__inner,
  .price-reason__grid,
  .price-faq__layout {
    grid-template-columns: 1fr;
  }

  .price-hero__inner {
    min-height: 0;
  }

  .price-hero__facts {
    max-width: 32rem;
  }

  .price-reason__image {
    width: min(100%, 38rem);
  }

  .price-faq__heading {
    position: static;
  }
}

@media (max-width: 44rem) {
  .price-plans__grid,
  .price-guide__grid {
    grid-template-columns: 1fr;
  }

  .price-plan + .price-plan {
    border-top: 1px solid #c6d2dd;
    border-left: 0;
  }

  .price-plan__amount strong {
    font-size: clamp(3.2rem, 18vw, 4.4rem);
  }

  .price-guide-card {
    min-height: 0;
  }
}

/* Exact-copy top page generated from content/top-page-final.md */
.copy-exact .copy-page {
  overflow: hidden;
  background: #fff;
}

.copy-exact .copy-section {
  position: relative;
  padding-block: clamp(4.5rem, 8vw, 7rem);
}

.copy-exact .copy-section:nth-child(even) {
  background: var(--navy-050);
}

.copy-exact .copy-section:nth-child(odd):not(.copy-hero) {
  background: #fff;
}

.copy-exact .copy-section__inner {
  position: relative;
}

.copy-exact .copy-section__inner > p {
  max-width: 52rem;
  margin-right: auto;
  margin-left: auto;
}

.copy-exact .copy-section__inner > p + p {
  margin-top: 1.25rem;
}

.copy-exact .copy-section__title {
  position: relative;
  max-width: 50rem;
  padding: 1rem 1.35rem 1rem 1.65rem;
  border-left: 6px solid var(--gold-500);
  margin: 0 auto clamp(2.4rem, 5vw, 4rem);
  color: #fff;
  background: var(--navy-900);
  box-shadow: 0 10px 25px rgba(6, 24, 45, 0.12);
  font-size: clamp(1.7rem, 3.7vw, 2.75rem);
}

.copy-exact .copy-section__title::after {
  position: absolute;
  right: 1rem;
  bottom: 0.7rem;
  width: 4rem;
  height: 1px;
  background: rgba(255, 255, 255, 0.5);
  content: "";
}

.copy-exact .copy-subtitle {
  max-width: 52rem;
  padding: 0.9rem 1rem;
  border-top: 1px solid var(--navy-900);
  border-bottom: 1px solid var(--navy-900);
  margin: clamp(3.2rem, 6vw, 5rem) auto 1.5rem;
  color: var(--navy-900);
  background: #f5f8fb;
  font-size: clamp(1.3rem, 2.5vw, 1.75rem);
}

.copy-exact .copy-minor-title {
  max-width: 52rem;
  padding-left: 1rem;
  border-left: 4px solid var(--gold-500);
  margin: 2.5rem auto 1rem;
  color: var(--navy-900);
  font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
  font-size: clamp(1.1rem, 2vw, 1.35rem);
}

.copy-exact .copy-list {
  display: grid;
  max-width: 52rem;
  padding: 0;
  margin: 1.5rem auto 2rem;
  gap: 0;
  list-style: none;
}

.copy-exact .copy-list li {
  position: relative;
  padding: 1rem 1rem 1rem 3.2rem;
  border-right: 1px solid #ccd7e1;
  border-bottom: 1px solid #ccd7e1;
  border-left: 1px solid #ccd7e1;
  background: #fff;
}

.copy-exact .copy-list li:first-child {
  border-top: 1px solid #ccd7e1;
}

.copy-exact .copy-list li::before {
  position: absolute;
  top: 1rem;
  left: 1rem;
  display: grid;
  width: 1.35rem;
  height: 1.35rem;
  color: #fff;
  background: var(--gold-500);
  content: "✓";
  font-size: 0.75rem;
  place-items: center;
}

.copy-exact .copy-callout {
  max-width: 52rem;
  padding: 1.5rem 1.8rem;
  border: 1px solid #c9d4df;
  border-left: 6px solid var(--gold-500);
  margin: 2rem auto;
  background: var(--navy-050);
  box-shadow: 0 8px 24px rgba(6, 24, 45, 0.08);
}

.copy-exact .copy-callout p {
  margin-bottom: 0;
}

.copy-exact .copy-callout p + p {
  padding-top: 0.8rem;
  border-top: 1px solid #d6dee6;
  margin-top: 0.8rem;
}

.copy-exact .copy-photo {
  max-width: 52rem;
  margin: clamp(2rem, 5vw, 3.5rem) auto;
}

.copy-exact .copy-photo img,
.copy-exact .copy-hero__media img {
  width: 100%;
  height: 100%;
  border: 0.45rem solid #fff;
  object-fit: cover;
  box-shadow: 0 18px 42px rgba(6, 24, 45, 0.2);
}

.copy-exact .copy-photo img {
  max-height: 35rem;
  aspect-ratio: 3 / 2;
}

.copy-exact .copy-photo--6 img,
.copy-exact .copy-photo--23 img {
  aspect-ratio: 4 / 5;
  object-position: 50% 22%;
}

.copy-exact .copy-photo__placeholder {
  position: relative;
  display: grid;
  min-height: 19rem;
  border: 1px solid #9caec0;
  background:
    linear-gradient(135deg, transparent 49.6%, rgba(199, 146, 67, 0.36) 49.7% 50.3%, transparent 50.4%),
    repeating-linear-gradient(90deg, rgba(10, 35, 64, 0.05) 0 1px, transparent 1px 48px),
    repeating-linear-gradient(rgba(10, 35, 64, 0.05) 0 1px, transparent 1px 48px),
    #edf2f6;
  place-items: center;
}

.copy-exact .copy-photo__placeholder::after {
  width: 4.5rem;
  height: 4.5rem;
  border: 1px solid var(--gold-500);
  background: var(--navy-900);
  box-shadow: 0 0 0 0.55rem #fff;
  content: "";
  transform: rotate(45deg);
}

.copy-exact .copy-action-wrap {
  max-width: none;
  margin: 2.2rem auto 0;
  text-align: center;
}

.copy-exact .copy-action {
  display: inline-flex;
  min-height: 3.8rem;
  padding: 0.9rem 2rem;
  border: 1px solid var(--gold-500);
  align-items: center;
  justify-content: center;
  gap: 0.8rem;
  color: #fff;
  background: var(--gold-500);
  box-shadow: 0 9px 20px rgba(6, 24, 45, 0.16);
  font-weight: 700;
  text-decoration: none;
}

.copy-exact .copy-action::after {
  content: "→";
}

.copy-exact .copy-action:hover {
  color: var(--gold-500);
  background: #fff;
}

.copy-exact .copy-action--largest {
  width: min(100%, 32rem);
  min-height: 5rem;
  font-size: 1.2rem;
}

.copy-exact .copy-hero {
  overflow: hidden;
  padding-block: clamp(4rem, 7vw, 6.5rem);
  color: #fff;
  background:
    repeating-linear-gradient(135deg, transparent 0 48px, rgba(255, 255, 255, 0.027) 48px 49px),
    var(--navy-950);
}

.copy-exact .copy-hero::after {
  position: absolute;
  top: -13rem;
  left: -12rem;
  width: 30rem;
  height: 30rem;
  border: 1px solid rgba(231, 199, 140, 0.22);
  content: "";
  transform: rotate(35deg);
}

.copy-exact .copy-hero__grid {
  position: relative;
  z-index: 1;
  display: grid;
  align-items: center;
  gap: clamp(2rem, 4.5vw, 4rem);
  grid-template-columns: minmax(0, 1.08fr) minmax(24rem, 0.92fr);
}

.copy-exact .copy-hero__eyebrow {
  display: inline-block;
  padding: 0.4rem 0.7rem;
  border-left: 4px solid var(--gold-500);
  margin-bottom: 1.2rem;
  color: var(--gold-300);
  background: rgba(255, 255, 255, 0.06);
  font-size: 0.85rem;
  font-weight: 700;
}

.copy-exact .copy-hero__kicker {
  margin: 0 0 0.85rem;
  color: var(--gold-300);
  font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
  font-size: clamp(1.45rem, 2.6vw, 2rem);
  font-weight: 700;
  letter-spacing: 0.04em;
}

.copy-exact .copy-hero__title {
  max-width: 10.5em;
  margin: 0 0 1.5rem;
  color: #fff;
  font-size: clamp(2.85rem, 5.4vw, 4.85rem);
  font-weight: 800;
  line-height: 1.25;
  letter-spacing: 0.035em;
  text-shadow: 0 3px 22px rgba(0, 0, 0, 0.22);
}

.copy-exact .copy-hero__statement {
  max-width: 36rem;
  margin: 0 0 1.2rem;
  color: #dce5ee;
  font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
  font-size: clamp(1.05rem, 1.8vw, 1.35rem);
  font-weight: 700;
  line-height: 1.9;
}

.copy-exact .copy-hero__subhead {
  padding-top: 1.1rem;
  border-top: 1px solid rgba(255, 255, 255, 0.28);
  color: var(--gold-300);
  font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
  font-size: 1.15rem;
  font-weight: 700;
}

.copy-exact .copy-hero__facts {
  display: block;
  max-width: 38rem;
  padding: 1rem 1.15rem;
  border: 1px solid rgba(231, 199, 140, 0.78);
  margin-block: 1.5rem 0;
  color: #fff;
  background: linear-gradient(90deg, rgba(199, 146, 67, 0.25), rgba(255, 255, 255, 0.07));
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.2);
  font-size: clamp(0.94rem, 1.4vw, 1.08rem);
  line-height: 1.75;
  letter-spacing: 0.045em;
}

.copy-exact .copy-hero .copy-action-wrap {
  text-align: left;
}

.copy-exact .copy-hero__media {
  position: relative;
  width: 100%;
}

.copy-exact .copy-hero__portrait {
  margin: 0;
}

.copy-exact .copy-hero__portrait img {
  aspect-ratio: 4 / 5;
  object-position: 50% 20%;
}

.copy-exact .copy-section--2 .copy-section__inner {
  display: grid;
  align-items: center;
  gap: 2.5rem 3.5rem;
  grid-template-columns: minmax(0, 1.05fr) minmax(18rem, 0.95fr);
}

.copy-exact .copy-section--2 .copy-section__title {
  width: min(100%, 50rem);
  grid-column: 1 / -1;
}

.copy-exact .copy-section--2 .copy-list,
.copy-exact .copy-section--2 .copy-photo {
  width: 100%;
  margin: 0;
}

.copy-exact .copy-section--3 {
  border-top: 8px solid var(--gold-500);
  color: #e1e9f0;
  background: var(--navy-900) !important;
}

.copy-exact .copy-section--3 .copy-section__title {
  border: 1px solid rgba(255, 255, 255, 0.28);
  border-left: 6px solid var(--gold-500);
  background: var(--navy-950);
}

.copy-exact .copy-section--3 .copy-photo__placeholder {
  border-color: rgba(255, 255, 255, 0.3);
  background:
    linear-gradient(135deg, transparent 49.6%, rgba(231, 199, 140, 0.32) 49.7% 50.3%, transparent 50.4%),
    repeating-linear-gradient(90deg, rgba(255, 255, 255, 0.055) 0 1px, transparent 1px 48px),
    repeating-linear-gradient(rgba(255, 255, 255, 0.055) 0 1px, transparent 1px 48px),
    var(--navy-950);
}

.copy-exact .copy-section--4 .copy-section__inner {
  display: grid;
  gap: 1.15rem;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.copy-exact .copy-section--4 .copy-section__title,
.copy-exact .copy-section--4 .copy-action-wrap,
.copy-exact .copy-section--4 .copy-section__inner > p {
  width: min(100%, 50rem);
  grid-column: 1 / -1;
}

.copy-exact .copy-voice {
  position: relative;
  min-height: 0;
  padding: 0 1.25rem 1.25rem;
  border: 1px solid #c9d4de;
  border-top: 5px solid var(--navy-900);
  overflow: hidden;
  background: #fff;
  box-shadow: 0 9px 24px rgba(6, 24, 45, 0.08);
}

.copy-exact .copy-voice__figure {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  height: 14rem;
  margin: 0;
}

.copy-exact .copy-voice__photo {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 25%;
}

.copy-exact .copy-voice__figure figcaption {
  position: absolute;
  right: 0.65rem;
  bottom: 0.55rem;
  padding: 0.25rem 0.5rem;
  color: #fff;
  background: rgba(6, 24, 45, 0.74);
  font-size: 0.68rem;
  letter-spacing: 0.08em;
}

.copy-exact .copy-voice__number {
  position: relative;
  z-index: 1;
  display: grid;
  width: 3.2rem;
  height: 3.2rem;
  border: 2px solid var(--gold-300);
  margin: 12.6rem 0 1rem;
  color: #fff;
  background: var(--navy-900);
  font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
  font-size: 1.25rem;
  place-items: center;
}

.copy-exact .copy-voice p {
  margin-bottom: 0;
}

.copy-exact .copy-voice p:first-of-type {
  color: var(--navy-900);
  font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
  line-height: 1.75;
}

.copy-exact .copy-voice p + p {
  padding-top: 0.9rem;
  border-top: 1px solid #d9e1e8;
  margin-top: 0.9rem;
  color: #617080;
  font-size: 0.78rem;
}

.copy-exact .copy-voice__meta {
  padding-bottom: 0.8rem;
  border-bottom: 1px solid #d9e1e8;
  margin: 0;
  color: var(--navy-900);
  font-size: 0.82rem;
  font-weight: 700;
  line-height: 1.7;
}

.copy-exact .copy-voice__summary,
.copy-exact .copy-voice__summary:first-of-type {
  padding: 0;
  border: 0;
  margin: 0.9rem 0 0;
  color: #344557;
  font-family: inherit;
  font-size: 0.95rem;
  line-height: 1.9;
}

.copy-exact .copy-voice__note {
  width: min(100%, 50rem);
  grid-column: 1 / -1;
  color: #617080;
  font-size: 0.82rem;
}

html:not(.js) .design-navy {
  padding-top: 0;
}

html:not(.js) .design-navy .site-header {
  position: relative;
}

.copy-exact .copy-section--5 .copy-photo--6 {
  width: min(38%, 22rem);
  margin: 0 0 2rem 2.5rem;
  float: right;
}

.copy-exact .copy-section--5 .copy-section__inner::after {
  display: block;
  clear: both;
  content: "";
}

.copy-exact .copy-director-books {
  display: grid;
  width: min(100%, 40rem);
  margin: 3rem auto 0;
  clear: both;
  align-items: end;
  gap: clamp(1rem, 3vw, 2rem);
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.copy-exact .copy-director-books figure {
  margin: 0;
  text-align: center;
}

.copy-exact .copy-director-books img {
  width: 100%;
  height: auto;
  border: 0.5rem solid #fff;
  box-shadow: 0 18px 38px rgba(6, 24, 45, 0.2);
}

.copy-exact .copy-reason {
  display: grid;
  max-width: 64rem;
  padding: clamp(1rem, 2.5vw, 1.7rem);
  border: 1px solid #c8d3de;
  margin: 0 auto 2rem;
  align-items: start;
  gap: 1.4rem clamp(1.4rem, 3.5vw, 2.8rem);
  background: #fff;
  box-shadow: 0 10px 28px rgba(6, 24, 45, 0.08);
  grid-template-columns: minmax(18rem, 0.9fr) minmax(0, 1.1fr);
}

.copy-exact .copy-reason .copy-subtitle {
  position: relative;
  max-width: none;
  padding: 1.2rem 1.4rem 1.2rem 4.2rem;
  border: 1px solid #c8d3de;
  border-left: 6px solid var(--gold-500);
  margin: 0;
  background: #fff;
  box-shadow: 0 7px 20px rgba(6, 24, 45, 0.07);
  grid-column: 1 / -1;
}

.copy-exact .copy-reason .copy-subtitle::before {
  position: absolute;
  top: 50%;
  left: 1.3rem;
  color: var(--gold-500);
  content: "◆";
  font-size: 1.2rem;
  transform: translateY(-50%);
}

.copy-exact .copy-reason__image {
  width: 100%;
  height: auto;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  box-shadow: 0 12px 26px rgba(6, 24, 45, 0.16);
}

.copy-exact .copy-reason__body p {
  margin: 0;
}

.copy-exact .copy-reason__body p + p {
  margin-top: 1rem;
}

.copy-exact .copy-reason:nth-of-type(even) .copy-reason__image {
  grid-column: 2;
}

.copy-exact .copy-reason:nth-of-type(even) .copy-reason__body {
  grid-column: 1;
  grid-row: 2;
}

.copy-exact .copy-section--7 {
  border-top: 8px solid var(--gold-500);
  color: #e3eaf1;
  background: var(--navy-900) !important;
}

.copy-exact .copy-section--7 .copy-section__title {
  border: 1px solid rgba(255, 255, 255, 0.25);
  border-left: 6px solid var(--gold-500);
  background: var(--navy-950);
}

.copy-exact .copy-section--7 .copy-minor-title {
  color: var(--gold-300);
}

.copy-exact .copy-section--7 .copy-list li {
  border-color: rgba(255, 255, 255, 0.16);
  color: #e1e9f0;
  background: var(--navy-800);
}

.copy-exact .copy-section--8 .copy-minor-title {
  padding: 0.9rem 1rem 0.9rem 3.8rem;
  border: 1px solid #c8d3de;
  border-left: 5px solid var(--gold-500);
  background: #fff;
  counter-increment: none;
}

.copy-exact .copy-section--8 .copy-subtitle,
.copy-exact .copy-section--9 .copy-subtitle {
  border: 0;
  border-left: 6px solid var(--gold-500);
  color: #fff;
  background: var(--navy-900);
}

.copy-exact .copy-section--9 .copy-subtitle {
  margin-top: 3.8rem;
}

.copy-exact .copy-treatment-step {
  display: grid;
  max-width: 64rem;
  padding: clamp(1rem, 2.5vw, 1.6rem);
  border: 1px solid #c7d2dd;
  margin: 0 auto 2rem;
  align-items: start;
  gap: 1.35rem clamp(1.4rem, 3vw, 2.5rem);
  background: #fff;
  box-shadow: 0 9px 26px rgba(6, 24, 45, 0.08);
  grid-template-columns: minmax(18rem, 0.9fr) minmax(0, 1.1fr);
}

.copy-exact .copy-treatment-step .copy-subtitle {
  max-width: none;
  margin: 0;
  grid-column: 1 / -1;
}

.copy-exact .copy-treatment-step__image {
  width: 100%;
  height: auto;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  box-shadow: 0 12px 26px rgba(6, 24, 45, 0.16);
}

.copy-exact .copy-treatment-step__body p,
.copy-exact .copy-treatment-step__body .copy-list {
  margin-top: 0;
}

.copy-exact .copy-treatment-step__body p + p {
  margin-top: 1rem;
}

.copy-exact .copy-treatment-step:nth-of-type(even) .copy-treatment-step__image {
  grid-column: 2;
}

.copy-exact .copy-treatment-step:nth-of-type(even) .copy-treatment-step__body {
  grid-column: 1;
  grid-row: 2;
}

.copy-exact .copy-section--10 {
  border-top: 8px solid var(--navy-950);
}

.copy-exact .copy-section--10 .copy-photo--23 {
  width: min(38%, 22rem);
  margin: 0 0 2rem 2.5rem;
  float: right;
}

.copy-exact .copy-section--10 .copy-callout {
  color: var(--navy-900);
  font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
  font-size: 1.15rem;
}

.copy-exact .copy-section--10::after {
  display: block;
  clear: both;
  content: "";
}

.copy-exact .copy-table-wrap {
  max-width: 52rem;
  margin-inline: auto;
  overflow-x: auto;
  border-top: 5px solid var(--navy-900);
  box-shadow: 0 12px 30px rgba(6, 24, 45, 0.1);
}

.copy-exact .copy-table th,
.copy-exact .copy-table td {
  border-right: 1px solid #cbd5df;
  border-bottom: 1px solid #cbd5df;
}

.copy-exact .copy-table th {
  width: 12rem;
  color: var(--navy-900);
  background: #e3eaf1;
}

.copy-exact .copy-table td {
  background: #fff;
}

.copy-exact .site-footer {
  position: relative;
  padding-block: 0 1.5rem;
  overflow: hidden;
  border-top: 5px solid var(--gold-500);
}

.copy-exact .site-footer::before {
  position: absolute;
  top: -9rem;
  right: -5rem;
  width: 24rem;
  height: 24rem;
  border: 1px solid rgba(231, 199, 140, 0.12);
  border-radius: 50%;
  content: "";
}

.copy-exact .site-footer__sitemap {
  position: relative;
  z-index: 1;
  padding-block: clamp(3.5rem, 7vw, 6rem) clamp(3rem, 5vw, 4.5rem);
}

.copy-exact .site-footer__sitemap-head {
  display: flex;
  padding-bottom: 1.5rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.18);
  align-items: end;
  justify-content: space-between;
  gap: 1.5rem;
}

.copy-exact .site-footer__sitemap-kicker {
  margin: 0;
  color: var(--gold-300);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 0.72rem;
  letter-spacing: 0.24em;
}

.copy-exact .site-footer__sitemap-heading {
  margin: 0;
  color: #fff;
  font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
  font-size: clamp(1.55rem, 3vw, 2.35rem);
  font-weight: 600;
  letter-spacing: 0.08em;
}

.copy-exact .site-footer__sitemap-grid {
  display: grid;
  margin-top: clamp(2rem, 4vw, 3.5rem);
  gap: 2.5rem clamp(1.5rem, 4vw, 4rem);
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.copy-exact .site-footer__sitemap-group {
  min-width: 0;
}

.copy-exact .site-footer__sitemap-title {
  position: relative;
  padding-left: 1rem;
  margin: 0 0 1.25rem;
  color: var(--gold-300);
  font-size: 0.9rem;
  font-weight: 700;
  letter-spacing: 0.06em;
}

.copy-exact .site-footer__sitemap-title::before {
  position: absolute;
  top: 0.16em;
  bottom: 0.16em;
  left: 0;
  width: 2px;
  background: var(--gold-500);
  content: "";
}

.copy-exact .site-footer__sitemap-list {
  display: grid;
  padding: 0;
  margin: 0;
  gap: 0;
  list-style: none;
}

.copy-exact .site-footer__sitemap-list li {
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.copy-exact .site-footer__sitemap-list a {
  position: relative;
  display: block;
  padding: 0.78rem 1.25rem 0.78rem 0;
  color: #dce5ee;
  font-size: 0.83rem;
  line-height: 1.65;
  text-decoration: none;
  transition: color 180ms ease, padding-left 180ms ease;
}

.copy-exact .site-footer__sitemap-list a::after {
  position: absolute;
  top: 50%;
  right: 0.2rem;
  color: var(--gold-400);
  content: "›";
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.15rem;
  transform: translateY(-54%);
}

.copy-exact .site-footer__sitemap-list a:hover,
.copy-exact .site-footer__sitemap-list a:focus-visible {
  padding-left: 0.35rem;
  color: #fff;
}

.copy-exact .site-footer__bottom {
  position: relative;
  z-index: 1;
  padding-top: 1.5rem;
  border-top: 1px solid rgba(255, 255, 255, 0.16);
  color: #9eafc1;
}

@media (max-width: 68rem) {
  .design-navy .site-nav__link {
    padding-inline: 0.5rem;
  }

  .copy-exact .copy-hero__grid {
    grid-template-columns: minmax(0, 1fr) minmax(19rem, 0.8fr);
  }

  .copy-exact .copy-section--4 .copy-section__inner {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 62rem) {
  .copy-exact .site-footer__sitemap-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 56rem) {
  .copy-exact {
    padding-bottom: 5rem;
  }

  .design-navy .site-header__inner {
    min-height: auto;
    gap: 0.55rem;
  }

  .design-navy .mobile-header-phone {
    display: inline-flex;
    min-width: 0;
    min-height: 3.15rem;
    padding: 0.35rem 0.65rem;
    margin-left: auto;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--gold-300);
    gap: 0.42rem;
    color: var(--navy-950);
    background: var(--gold-500);
    line-height: 1.15;
    text-decoration: none;
  }

  .design-navy .mobile-header-phone__icon {
    font-size: 1.1rem;
  }

  .design-navy .mobile-header-phone__text {
    display: grid;
    white-space: nowrap;
  }

  .design-navy .mobile-header-phone__text small {
    font-size: 0.6rem;
    font-weight: 700;
  }

  .design-navy .mobile-header-phone__text strong {
    font-size: 0.82rem;
    letter-spacing: 0.025em;
  }

  .design-navy .site-nav {
    margin-left: 0;
  }

  .design-navy .site-nav__toggle {
    border-color: rgba(255, 255, 255, 0.35);
    background: transparent;
  }

  .design-navy .site-nav__toggle-lines,
  .design-navy .site-nav__toggle-lines::before,
  .design-navy .site-nav__toggle-lines::after {
    background: #fff;
  }

  .js .design-navy .site-nav__menu {
    background: var(--navy-950);
  }

  .design-navy .site-nav__link {
    border-color: rgba(255, 255, 255, 0.16);
  }

  .design-navy .home-hero--kato {
    background: var(--navy-950);
  }

  .design-navy .reason-feature,
  .design-navy .director-section__intro,
  .design-navy .future-section .split-feature {
    padding: 1.5rem;
  }

  .design-navy .reservation-panel {
    padding: 1.5rem;
  }

  .copy-exact .copy-hero__grid,
  .copy-exact .copy-section--2 .copy-section__inner {
    grid-template-columns: 1fr;
  }

  .copy-exact .copy-hero__content {
    max-width: 43rem;
  }

  .copy-exact .copy-hero__media {
    width: min(100%, 38rem);
    margin-inline: auto;
  }

  .copy-exact .copy-section--2 .copy-list,
  .copy-exact .copy-section--2 .copy-photo {
    max-width: 43rem;
    margin-inline: auto;
  }

  .copy-exact .copy-reason,
  .copy-exact .copy-treatment-step {
    grid-template-columns: 1fr;
  }

  .copy-exact .copy-reason:nth-of-type(even) .copy-reason__image,
  .copy-exact .copy-reason:nth-of-type(even) .copy-reason__body,
  .copy-exact .copy-treatment-step:nth-of-type(even) .copy-treatment-step__image,
  .copy-exact .copy-treatment-step:nth-of-type(even) .copy-treatment-step__body {
    grid-column: auto;
    grid-row: auto;
  }

  .copy-exact .copy-section--10 .copy-photo--23 {
    width: min(48%, 20rem);
  }
}

@media (max-width: 40rem) {
  .design-navy .site-header__inner {
    gap: 0.4rem;
  }

  .design-navy .site-header .site-brand {
    gap: 0.45rem;
  }

  .design-navy .site-header .site-brand__mark {
    width: 2.25rem;
    height: 2.25rem;
  }

  .design-navy .site-header .site-brand__name {
    font-size: 0.94rem;
    letter-spacing: 0.05em;
  }

  .design-navy .mobile-header-phone {
    min-height: 2.8rem;
    padding-inline: 0.45rem;
  }

  .design-navy .site-nav__toggle {
    min-width: 2.8rem;
    min-height: 2.8rem;
  }

  .design-navy .mobile-reservation a {
    min-height: 4.85rem;
  }

  .design-navy .mobile-reservation strong {
    font-size: 0.88rem;
  }

  .copy-exact .site-footer__sitemap-head {
    align-items: flex-start;
    flex-direction: column-reverse;
    gap: 0.5rem;
  }

  .copy-exact .site-footer__sitemap-grid {
    gap: 2rem;
    grid-template-columns: 1fr;
  }
}

@media (max-width: 22rem) {
  .design-navy .site-header .site-brand__text {
    display: none;
  }

  .design-navy .mobile-header-phone__text small {
    display: none;
  }
}

@media (max-width: 40rem) {
  .design-navy .home-hero--kato .home-hero__title {
    font-size: clamp(2rem, 10vw, 3rem);
  }

  .design-navy .home-hero__portrait::before {
    right: -0.65rem;
    bottom: -0.65rem;
  }

  .design-navy .problem-section__lead,
  .design-navy .director-section__intro,
  .design-navy .reason-feature,
  .design-navy .future-section .split-feature {
    padding: 1.2rem;
  }

  .design-navy .home-hero__portrait-card {
    right: -0.25rem;
  }

  .copy-exact .copy-section {
    padding-block: 4.2rem;
  }

  .copy-exact .copy-hero {
    padding-block: 3.5rem;
  }

  .copy-exact .copy-hero__title {
    font-size: clamp(2rem, 10vw, 3.05rem);
  }

  .copy-exact .copy-hero__media {
    grid-template-columns: 1fr;
  }

  .copy-exact .copy-hero__portrait {
    grid-row: auto;
  }

  .copy-exact .copy-hero__portrait img {
    max-height: 32rem;
  }

  .copy-exact .copy-section__title {
    padding: 0.85rem 1rem;
    border-left-width: 4px;
    font-size: clamp(1.55rem, 7.5vw, 2.05rem);
  }

  .copy-exact .copy-section--4 .copy-section__inner {
    grid-template-columns: 1fr;
  }

  .copy-exact .copy-voice {
    min-height: auto;
  }

  .copy-exact .copy-section--5 .copy-photo--6 {
    display: block;
    width: min(100%, 22rem);
    margin-right: auto;
    margin-left: auto;
    float: none;
  }

  .copy-exact .copy-director-books {
    gap: 0.8rem;
  }

  .copy-exact .copy-reason .copy-subtitle {
    padding-left: 3.2rem;
  }

  .copy-exact .copy-reason .copy-subtitle::before {
    left: 0.9rem;
  }

  .copy-exact .copy-section--10 .copy-photo--23 {
    width: min(100%, 22rem);
    margin: 0 auto 2rem;
    float: none;
  }

  .copy-exact .copy-photo__placeholder {
    min-height: 13rem;
  }

  .copy-exact .copy-table th {
    width: 8.2rem;
  }

  .copy-exact .copy-table th,
  .copy-exact .copy-table td {
    padding: 0.75rem;
    font-size: 0.82rem;
  }
}

/*
 * RESPONSIVE IMAGE HERO
 * Reusable on the front page and future symptom pages. Keep the semantic copy in
 * .image-hero__semantic and provide separate desktop/mobile files in <picture>.
 */
.copy-exact .copy-hero {
  padding-block: 0;
  background: var(--navy-950);
}

.copy-exact .copy-hero::after {
  display: none;
}

.copy-exact .image-hero {
  position: relative;
  width: 100%;
  max-width: 120rem;
  margin-inline: auto;
}

.copy-exact .image-hero__picture,
.copy-exact .image-hero__picture img {
  display: block;
  width: 100%;
}

.copy-exact .image-hero__picture img {
  height: auto;
}

/* First visit page */
.first-visit-page {
  overflow-x: hidden;
}

.first-visit-page .breadcrumb {
  color: #c6d2de;
  background: var(--navy-950);
}

.first-visit-page .breadcrumb a {
  color: #fff;
}

.fv-hero {
  position: relative;
  overflow: hidden;
  color: #fff;
  background: linear-gradient(115deg, rgba(6, 24, 45, 0.99) 0 52%, rgba(18, 54, 87, 0.94) 100%), var(--navy-950);
}

.fv-hero::before {
  position: absolute;
  top: -20rem;
  right: -13rem;
  width: 42rem;
  height: 42rem;
  border: 1px solid rgba(231, 199, 140, 0.22);
  content: "";
  transform: rotate(38deg);
}

.fv-hero__inner {
  position: relative;
  z-index: 1;
  display: grid;
  min-height: 40rem;
  padding-block: clamp(4rem, 8vw, 7rem);
  align-items: center;
  gap: clamp(3rem, 7vw, 7rem);
  grid-template-columns: minmax(0, 1fr) minmax(21rem, 0.78fr);
}

.fv-hero__copy h1 {
  max-width: 9em;
  margin-bottom: 1.5rem;
  color: #fff;
  font-size: clamp(2.7rem, 6vw, 5rem);
  letter-spacing: 0.045em;
  line-height: 1.28;
}

.fv-hero__lead {
  max-width: 40rem;
  margin-bottom: 2.2rem;
  color: #d6e0e9;
  font-size: 1.05rem;
  line-height: 2;
}

.fv-hero__facts {
  display: grid;
  max-width: 42rem;
  border-top: 1px solid rgba(255, 255, 255, 0.25);
  border-bottom: 1px solid rgba(255, 255, 255, 0.25);
  margin: 0;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.fv-hero__facts > div {
  padding: 1rem 1.1rem;
}

.fv-hero__facts > div + div {
  border-left: 1px solid rgba(255, 255, 255, 0.2);
}

.fv-hero__facts dt {
  margin-bottom: 0.3rem;
  color: var(--gold-300);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.08em;
}

.fv-hero__facts dd {
  margin: 0;
  color: #fff;
  font-family: var(--font-serif);
  font-size: clamp(1rem, 2vw, 1.25rem);
  font-weight: 700;
}

.fv-hero__facts small {
  font-family: var(--font-sans);
  font-size: 0.68em;
}

.fv-hero__image {
  position: relative;
  margin: 0;
}

.fv-hero__image::after {
  position: absolute;
  top: 1.2rem;
  right: -1.2rem;
  bottom: 3.4rem;
  left: 1.2rem;
  border: 2px solid var(--gold-500);
  content: "";
}

.fv-hero__image img {
  position: relative;
  z-index: 1;
  width: 100%;
  aspect-ratio: 4 / 3;
  border: 0.45rem solid #fff;
  object-fit: cover;
  box-shadow: 0 28px 60px rgba(0, 0, 0, 0.32);
}

.fv-hero__image figcaption {
  position: relative;
  z-index: 2;
  padding-top: 1rem;
  color: #d6e0e9;
  font-size: 0.78rem;
  letter-spacing: 0.08em;
  text-align: right;
}

.fv-page-nav {
  position: relative;
  z-index: 2;
  background: #fff;
  box-shadow: 0 14px 36px rgba(6, 24, 45, 0.12);
}

.fv-page-nav__inner {
  display: grid;
  min-height: 7.2rem;
  align-items: center;
  gap: 2rem;
  grid-template-columns: 11rem 1fr;
}

.fv-page-nav__inner > span {
  color: var(--navy-900);
  font-weight: 700;
}

.fv-page-nav ol {
  display: grid;
  padding: 0;
  margin: 0;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  list-style: none;
}

.fv-page-nav li + li {
  border-left: 1px solid #d3dce4;
}

.fv-page-nav a {
  display: flex;
  min-height: 4rem;
  padding: 0.7rem 1rem;
  align-items: center;
  gap: 0.65rem;
  color: var(--navy-900);
  font-size: 0.84rem;
  font-weight: 700;
  text-decoration: none;
}

.fv-page-nav a:hover {
  color: var(--gold-500);
}

.fv-page-nav em {
  color: var(--gold-500);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.25rem;
  font-style: normal;
}

.fv-policy,
.fv-principles,
.fv-profile,
.fv-fit,
.fv-flow,
.fv-preparation,
.fv-next {
  padding-block: clamp(4.8rem, 9vw, 8rem);
}

.fv-section-heading {
  max-width: 51rem;
  margin-bottom: clamp(2.4rem, 5vw, 4rem);
}

.fv-section-heading h2 {
  margin-bottom: 1rem;
  color: var(--navy-900);
  font-size: clamp(2rem, 4vw, 3.3rem);
  line-height: 1.45;
}

.fv-section-heading > p:last-child {
  color: #566676;
}

.fv-section-heading--center {
  margin-inline: auto;
  text-align: center;
}

.fv-section-heading--center .section__label::before {
  display: none;
}

.fv-policy {
  background: #fff;
}

.fv-policy__grid {
  display: grid;
  align-items: start;
  gap: clamp(2.5rem, 7vw, 7rem);
  grid-template-columns: minmax(18rem, 0.9fr) minmax(0, 1.1fr);
}

.fv-policy__intro {
  position: sticky;
  top: calc(var(--fixed-header-height) + 2rem);
}

.fv-policy__intro .fv-section-heading {
  margin-bottom: 2rem;
}

.fv-policy__visual {
  position: relative;
  margin: 0;
}

.fv-policy__visual::after {
  position: absolute;
  top: 0.9rem;
  right: -0.9rem;
  bottom: 2.9rem;
  left: 0.9rem;
  border: 2px solid var(--gold-500);
  content: "";
}

.fv-policy__visual img {
  position: relative;
  z-index: 1;
  display: block;
  width: 100%;
  aspect-ratio: 3 / 2;
  border: 0.35rem solid #fff;
  object-fit: cover;
  box-shadow: 0 18px 40px rgba(6, 24, 45, 0.18);
}

.fv-policy__visual figcaption {
  position: relative;
  z-index: 2;
  padding-top: 0.8rem;
  color: #617181;
  font-size: 0.78rem;
  text-align: right;
}

.fv-policy__body {
  padding: clamp(1.8rem, 4vw, 3rem);
  border-top: 5px solid var(--gold-500);
  background: var(--navy-050);
}

.fv-policy__body p:last-child {
  margin-bottom: 0;
}

.fv-policy__lead {
  color: var(--navy-900);
  font-family: var(--font-serif);
  font-size: clamp(1.2rem, 2.4vw, 1.55rem);
  font-weight: 700;
  line-height: 1.8;
}

.fv-policy__reasons {
  margin-top: 2.5rem;
}

.fv-policy__reasons > h3,
.fv-policy__stages > h3 {
  padding-bottom: 0.8rem;
  border-bottom: 3px solid var(--navy-900);
  margin-bottom: 0;
  color: var(--navy-900);
  font-size: 1.35rem;
}

.fv-policy__reasons ol {
  padding: 0;
  margin: 0;
  list-style: none;
}

.fv-policy__reasons li {
  display: grid;
  padding-block: 1.6rem;
  border-bottom: 1px solid #c7d2dc;
  align-items: start;
  gap: 1.2rem;
  grid-template-columns: 3.2rem minmax(0, 1fr);
}

.fv-policy__reasons li > span {
  color: var(--gold-500);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 2rem;
  line-height: 1;
}

.fv-policy__reasons h4 {
  margin: 0 0 0.65rem;
  color: var(--navy-900);
  font-family: var(--font-serif);
  font-size: 1.08rem;
  line-height: 1.65;
}

.fv-policy__reasons p {
  margin: 0;
  color: #4e5f6f;
}

.fv-policy__stages {
  margin-top: 2.8rem;
}

.fv-policy__stages ol {
  display: grid;
  padding: 0;
  margin: 1.2rem 0 0;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  list-style: none;
}

.fv-policy__stages li {
  display: grid;
  min-width: 0;
  padding: 1.25rem 1rem;
  gap: 0.4rem;
  color: #fff;
  background: var(--navy-900);
}

.fv-policy__stages li + li {
  border-left: 1px solid rgba(255, 255, 255, 0.22);
}

.fv-policy__stages li > span {
  color: var(--gold-300);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.08em;
}

.fv-policy__stages strong {
  font-family: var(--font-serif);
  font-size: 1.05rem;
}

.fv-policy__stages small {
  color: #cbd7e2;
  font-size: 0.76rem;
  line-height: 1.65;
}

.fv-policy__promise {
  padding: 1.4rem 1.5rem;
  border-left: 6px solid var(--gold-500);
  margin-top: 2rem;
  background: #fff;
}

.fv-policy__promise strong {
  display: block;
  margin-bottom: 0.5rem;
  color: var(--navy-900);
  font-family: var(--font-serif);
  font-size: 1.15rem;
}

.fv-policy__promise p {
  margin: 0;
}

.fv-policy__caution {
  margin: 1rem 0 0;
  color: #617181;
  font-size: 0.76rem;
  line-height: 1.7;
}

.fv-principles {
  background: var(--navy-050);
}

.fv-principles__grid {
  display: grid;
  border-top: 1px solid #c7d2dc;
  border-left: 1px solid #c7d2dc;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.fv-principle-card {
  min-height: 20rem;
  padding: clamp(1.7rem, 4vw, 2.5rem);
  border-right: 1px solid #c7d2dc;
  border-bottom: 1px solid #c7d2dc;
  background: #fff;
}

.fv-principle-card__number {
  display: block;
  color: var(--gold-500);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 2.8rem;
  line-height: 1;
}

.fv-principle-card h3 {
  padding-bottom: 1rem;
  border-bottom: 2px solid var(--navy-900);
  margin: 1.6rem 0 1rem;
  color: var(--navy-900);
}

.fv-principle-card p {
  margin-bottom: 0;
  color: #566676;
}

.fv-profile {
  background: #fff;
}

.fv-profile__head {
  display: grid;
  margin-bottom: clamp(2.5rem, 5vw, 4rem);
  align-items: end;
  gap: 2rem;
  grid-template-columns: minmax(0, 1fr) minmax(18rem, 0.72fr);
}

.fv-profile__head .fv-section-heading {
  margin-bottom: 0;
}

.fv-profile__demo-note {
  display: grid;
  padding: 1rem 1.2rem;
  border-left: 5px solid var(--gold-500);
  margin: 0;
  gap: 0.25rem;
  background: #eef2f6;
}

.fv-profile__demo-note strong {
  color: var(--navy-900);
  font-size: 0.88rem;
  letter-spacing: 0.06em;
}

.fv-profile__demo-note span {
  color: #526273;
  font-size: 0.78rem;
  line-height: 1.7;
}

.fv-profile__grid {
  display: grid;
  gap: 1.25rem;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.fv-chart-card {
  display: grid;
  min-width: 0;
  border: 1px solid #c7d2dc;
  background: var(--navy-050);
  grid-template-rows: auto 1fr auto;
}

.fv-chart-card > header {
  padding: 1.35rem 1.5rem 1.2rem;
  border-top: 5px solid var(--navy-900);
  border-bottom: 1px solid #c7d2dc;
  background: #fff;
}

.fv-chart-card > header span {
  color: var(--gold-500);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 0.76rem;
  letter-spacing: 0.12em;
}

.fv-chart-card > header h3 {
  margin: 0.35rem 0 0;
  color: var(--navy-900);
  font-size: 1.25rem;
}

.fv-chart-card__body {
  display: grid;
  padding: 1.75rem 1.4rem;
  align-items: center;
  gap: 1.5rem;
  grid-template-columns: 9.5rem minmax(0, 1fr);
}

.fv-donut {
  position: relative;
  display: grid;
  width: 9.5rem;
  aspect-ratio: 1;
  margin-inline: auto;
  place-items: center;
  border-radius: 50%;
}

.fv-donut::before {
  position: absolute;
  width: 61%;
  aspect-ratio: 1;
  border-radius: 50%;
  background: var(--navy-050);
  content: "";
}

.fv-donut--age {
  background: conic-gradient(#c79243 0 26%, #234f73 26% 57%, #7794aa 57% 82%, #d0d9e1 82% 100%);
}

.fv-donut--symptom {
  background: conic-gradient(#c79243 0 34%, #234f73 34% 59%, #7794aa 59% 82%, #d0d9e1 82% 100%);
}

.fv-donut--duration {
  background: conic-gradient(#c79243 0 67%, #234f73 67% 85%, #7794aa 85% 95%, #d0d9e1 95% 100%);
}

.fv-donut > div {
  position: relative;
  z-index: 1;
  display: grid;
  text-align: center;
}

.fv-donut strong {
  color: var(--navy-900);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 2rem;
  font-weight: 500;
  line-height: 1;
}

.fv-donut strong small {
  font-size: 0.48em;
}

.fv-donut span {
  margin-top: 0.35rem;
  color: #526273;
  font-size: 0.7rem;
  font-weight: 700;
}

.fv-chart-legend {
  display: grid;
  min-width: 0;
  padding: 0;
  margin: 0;
  gap: 0.65rem;
  list-style: none;
}

.fv-chart-legend li {
  display: grid;
  align-items: center;
  gap: 0.45rem;
  grid-template-columns: 0.7rem minmax(0, 1fr) auto;
}

.fv-chart-legend li > span:nth-child(2) {
  color: #435464;
  font-size: 0.76rem;
}

.fv-chart-legend strong {
  color: var(--navy-900);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 0.85rem;
}

.fv-chart-swatch {
  width: 0.65rem;
  aspect-ratio: 1;
  border-radius: 50%;
}

.fv-chart-swatch--1 { background: #c79243; }
.fv-chart-swatch--2 { background: #234f73; }
.fv-chart-swatch--3 { background: #7794aa; }
.fv-chart-swatch--4 { background: #d0d9e1; }

.fv-chart-card__insight {
  padding: 1rem 1.4rem;
  border-top: 1px solid #c7d2dc;
  margin: 0;
  color: #526273;
  background: #fff;
  font-size: 0.78rem;
  line-height: 1.7;
}

.fv-fit {
  background: #fff;
}

.fv-fit__grid {
  display: grid;
  gap: 1.5rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.fv-fit-card {
  padding: clamp(2rem, 5vw, 3.5rem);
  border: 1px solid #c7d2dc;
}

.fv-fit-card--good {
  border-top: 7px solid var(--gold-500);
  color: #fff;
  background: var(--navy-900);
}

.fv-fit-card--other {
  border-top: 7px solid #8b9cac;
  background: var(--navy-050);
}

.fv-fit-card__label {
  margin-bottom: 0.9rem;
  color: var(--gold-300);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.1em;
}

.fv-fit-card--other .fv-fit-card__label {
  color: #5e7080;
}

.fv-fit-card h3 {
  margin-bottom: 1.7rem;
  color: inherit;
  font-size: clamp(1.4rem, 3vw, 2rem);
  line-height: 1.55;
}

.fv-fit-card ul {
  display: grid;
  padding: 0;
  margin: 0;
  gap: 0.8rem;
  list-style: none;
}

.fv-fit-card li {
  position: relative;
  padding-left: 1.6rem;
}

.fv-fit-card li::before {
  position: absolute;
  top: 0;
  left: 0;
  color: var(--gold-500);
  content: "◆";
  font-size: 0.7rem;
}

.fv-fit-card--good li {
  color: #e0e8ef;
}

.fv-fit-card__note {
  padding-top: 1.2rem;
  border-top: 1px solid #c7d2dc;
  margin: 1.5rem 0 0;
  color: #566676;
  font-size: 0.85rem;
}

.fv-flow {
  color: #dce5ed;
  background: var(--navy-950);
}

.fv-section-heading--light h2 {
  color: #fff;
}

.fv-section-heading--light > p:last-child {
  color: #bdcad6;
}

.fv-flow__list {
  display: grid;
  padding: 0;
  margin: 0;
  gap: 1.5rem;
  list-style: none;
}

.fv-flow-step {
  display: grid;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.16);
  background: var(--navy-900);
  grid-template-columns: minmax(18rem, 0.82fr) minmax(0, 1.18fr);
}

.fv-flow-step:nth-child(even) figure {
  grid-column: 2;
  grid-row: 1;
}

.fv-flow-step:nth-child(even) .fv-flow-step__copy {
  grid-column: 1;
  grid-row: 1;
}

.fv-flow-step figure {
  min-height: 20rem;
  margin: 0;
}

.fv-flow-step img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.fv-flow-step__copy {
  display: flex;
  padding: clamp(2rem, 5vw, 4rem);
  flex-direction: column;
  justify-content: center;
}

.fv-flow-step__copy > span {
  color: var(--gold-300);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.25rem;
  letter-spacing: 0.08em;
}

.fv-flow-step__copy small {
  padding-left: 0.7rem;
  color: #b9c7d3;
  font-family: var(--font-sans);
  font-size: 0.65em;
}

.fv-flow-step h3 {
  padding-bottom: 1rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.2);
  margin: 0.8rem 0 1.2rem;
  color: #fff;
  font-size: clamp(1.35rem, 3vw, 2rem);
}

.fv-flow-step p {
  margin-bottom: 0;
  color: #d0dbe4;
}

.fv-preparation {
  background: var(--navy-050);
}

.fv-preparation__grid {
  display: grid;
  border-top: 1px solid #c7d2dc;
  border-left: 1px solid #c7d2dc;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.fv-preparation-card {
  min-height: 17rem;
  padding: 2rem;
  border-right: 1px solid #c7d2dc;
  border-bottom: 1px solid #c7d2dc;
  background: #fff;
}

.fv-preparation-card > span {
  color: var(--gold-500);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 2.5rem;
  line-height: 1;
}

.fv-preparation-card h3 {
  margin: 1.3rem 0 0.8rem;
  color: var(--navy-900);
}

.fv-preparation-card p {
  margin-bottom: 0;
  color: #566676;
}

.fv-health-note {
  display: grid;
  padding: 1.5rem clamp(1.4rem, 4vw, 2.5rem);
  border-left: 6px solid var(--gold-500);
  margin-top: 2rem;
  align-items: start;
  gap: 1rem 2rem;
  background: #e2eaf1;
  grid-template-columns: 10rem 1fr;
}

.fv-health-note strong {
  color: var(--navy-900);
}

.fv-health-note p {
  margin: 0;
  color: #465767;
}

.fv-next {
  background: #fff;
}

.fv-next__grid {
  display: grid;
  align-items: center;
  gap: clamp(2.5rem, 7vw, 7rem);
  grid-template-columns: minmax(18rem, 0.82fr) minmax(0, 1.18fr);
}

.fv-next h2 {
  color: var(--navy-900);
  font-size: clamp(2rem, 4vw, 3.2rem);
  line-height: 1.45;
}

.fv-next__links {
  display: grid;
  border-top: 4px solid var(--navy-900);
}

.fv-next__links a {
  position: relative;
  display: grid;
  padding: 1.5rem 4rem 1.5rem 1.5rem;
  border-right: 1px solid #c7d2dc;
  border-bottom: 1px solid #c7d2dc;
  border-left: 1px solid #c7d2dc;
  gap: 0.2rem;
  color: var(--navy-900);
  text-decoration: none;
}

.fv-next__links a::after {
  position: absolute;
  top: 50%;
  right: 1.5rem;
  color: var(--gold-500);
  content: "→";
  font-size: 1.4rem;
  transform: translateY(-50%);
}

.fv-next__links a:hover {
  background: var(--navy-050);
}

.fv-next__links span {
  color: #687887;
  font-size: 0.78rem;
}

.fv-next__links strong {
  font-size: 1.05rem;
}

@media (max-width: 64rem) {
  .fv-hero__inner {
    gap: 3rem;
    grid-template-columns: minmax(0, 1fr) minmax(18rem, 0.68fr);
  }

  .fv-page-nav__inner {
    grid-template-columns: 1fr;
  }

  .fv-page-nav__inner > span {
    padding-top: 1.2rem;
  }

  .fv-preparation__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .fv-profile__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .fv-chart-card:last-child {
    grid-column: 1 / -1;
  }
}

@media (max-width: 52rem) {
  .fv-hero__inner,
  .fv-policy__grid,
  .fv-profile__head,
  .fv-next__grid {
    grid-template-columns: 1fr;
  }

  .fv-hero__inner {
    min-height: 0;
  }

  .fv-policy__intro {
    position: static;
  }

  .fv-policy__visual {
    width: min(100%, 38rem);
  }

  .fv-hero__image {
    width: min(100%, 34rem);
    margin-inline: auto;
  }

  .fv-hero__image img {
    aspect-ratio: 3 / 2;
  }

  .fv-principles__grid,
  .fv-fit__grid {
    grid-template-columns: 1fr;
  }

  .fv-principle-card {
    min-height: 0;
  }

  .fv-flow-step,
  .fv-flow-step:nth-child(even) {
    grid-template-columns: 1fr;
  }

  .fv-flow-step:nth-child(even) figure,
  .fv-flow-step:nth-child(even) .fv-flow-step__copy {
    grid-column: 1;
    grid-row: auto;
  }

  .fv-flow-step figure {
    min-height: 0;
  }

  .fv-flow-step img {
    aspect-ratio: 3 / 2;
  }
}

@media (max-width: 40rem) {
  .fv-hero__copy h1 {
    font-size: clamp(2.35rem, 12vw, 3.35rem);
  }

  .fv-hero__facts {
    grid-template-columns: 1fr;
  }

  .fv-hero__facts > div {
    display: grid;
    align-items: baseline;
    gap: 1rem;
    grid-template-columns: 6rem 1fr;
  }

  .fv-hero__facts > div + div {
    border-top: 1px solid rgba(255, 255, 255, 0.2);
    border-left: 0;
  }

  .fv-page-nav__inner {
    gap: 0.5rem;
  }

  .fv-page-nav ol {
    padding-bottom: 1rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .fv-page-nav li:nth-child(odd) {
    border-left: 0;
  }

  .fv-page-nav a {
    padding-inline: 0.65rem;
  }

  .fv-preparation__grid {
    grid-template-columns: 1fr;
  }

  .fv-profile__grid {
    grid-template-columns: 1fr;
  }

  .fv-chart-card:last-child {
    grid-column: auto;
  }

  .fv-preparation-card {
    min-height: 0;
  }

  .fv-health-note {
    grid-template-columns: 1fr;
  }

  .fv-policy__body {
    padding-inline: 1.25rem;
  }

  .fv-policy__reasons li {
    gap: 0.8rem;
    grid-template-columns: 2.5rem minmax(0, 1fr);
  }

  .fv-policy__reasons li > span {
    font-size: 1.6rem;
  }

  .fv-policy__stages ol {
    grid-template-columns: 1fr;
  }

  .fv-policy__stages li + li {
    border-top: 1px solid rgba(255, 255, 255, 0.22);
    border-left: 0;
  }
}

@media (max-width: 30rem) {
  .fv-chart-card__body {
    grid-template-columns: 1fr;
  }

  .fv-chart-legend {
    width: 100%;
  }
}


/* ==========================================================
   FAQ page
   ========================================================== */
.faq-page {
  --faq-navy: #0b2948;
  --faq-navy-deep: #071a2e;
  --faq-blue: #1f537d;
  --faq-gold: #c89443;
  --faq-gold-light: #ead09b;
  --faq-paper: #f3f6f8;
  --faq-line: rgba(11, 41, 72, 0.18);
  background: var(--faq-paper);
}

.faq-page .breadcrumb {
  border-color: rgba(255, 255, 255, 0.12);
  color: rgba(255, 255, 255, 0.68);
  background: var(--faq-navy-deep);
}

.faq-page .breadcrumb a {
  color: var(--faq-gold-light);
}

.faq-kicker {
  margin: 0 0 1rem;
  color: var(--faq-gold);
  font-size: 0.76rem;
  font-weight: 800;
  letter-spacing: 0.24em;
}

.faq-kicker::before {
  display: inline-block;
  width: 2.6rem;
  height: 1px;
  margin-right: 0.8rem;
  background: currentColor;
  content: "";
  vertical-align: middle;
}

.faq-hero {
  position: relative;
  overflow: hidden;
  color: #fff;
  background:
    linear-gradient(110deg, rgba(7, 26, 46, 0.98) 0 52%, rgba(11, 41, 72, 0.96) 52% 100%),
    var(--faq-navy-deep);
}

.faq-hero::before {
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(135deg, transparent 0 52px, rgba(255, 255, 255, 0.025) 52px 53px);
  content: "";
  pointer-events: none;
}

.faq-hero::after {
  position: absolute;
  top: -10rem;
  right: -10rem;
  width: 30rem;
  height: 30rem;
  border: 1px solid rgba(234, 208, 155, 0.2);
  border-radius: 50%;
  box-shadow: 0 0 0 5rem rgba(234, 208, 155, 0.03);
  content: "";
  pointer-events: none;
}

.faq-hero__inner {
  position: relative;
  z-index: 1;
  display: grid;
  min-height: clamp(39rem, 72vh, 48rem);
  padding-block: clamp(4.5rem, 8vw, 7rem);
  align-items: center;
  gap: clamp(3rem, 7vw, 7rem);
  grid-template-columns: minmax(0, 0.92fr) minmax(25rem, 1.08fr);
}

.faq-hero__copy h1 {
  margin: 0;
  color: #fff;
  font-size: clamp(2.7rem, 5.8vw, 5rem);
  font-weight: 600;
  letter-spacing: 0.07em;
  line-height: 1.16;
}

.faq-hero__statement {
  margin: 1.6rem 0 1.2rem;
  color: var(--faq-gold-light);
  font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
  font-size: clamp(1.35rem, 2.6vw, 2rem);
  line-height: 1.65;
}

.faq-hero__lead {
  max-width: 38rem;
  margin: 0;
  color: #d2dde7;
  font-size: 1rem;
  line-height: 2;
}

.faq-hero__facts {
  display: grid;
  padding: 0;
  margin: 2.4rem 0 0;
  border-top: 1px solid rgba(255, 255, 255, 0.22);
  border-bottom: 1px solid rgba(255, 255, 255, 0.22);
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.faq-hero__facts div {
  padding: 1rem 0.6rem;
}

.faq-hero__facts div + div {
  border-left: 1px solid rgba(255, 255, 255, 0.22);
}

.faq-hero__facts dt {
  margin-bottom: 0.3rem;
  color: #9fb0c0;
  font-size: 0.72rem;
}

.faq-hero__facts dd {
  margin: 0;
  color: #fff;
  font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
  font-size: 1rem;
  font-weight: 700;
}

.faq-index {
  padding: clamp(1.3rem, 3vw, 2.1rem);
  border: 1px solid rgba(255, 255, 255, 0.22);
  border-top: 4px solid var(--faq-gold);
  background: rgba(2, 13, 27, 0.5);
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.22);
  backdrop-filter: blur(4px);
}

.faq-index__label {
  margin: 0 0 1rem;
  color: #fff;
  font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
  font-size: 1.1rem;
  font-weight: 700;
  letter-spacing: 0.06em;
}

.faq-index ol {
  display: grid;
  padding: 0;
  margin: 0;
  border-top: 1px solid rgba(255, 255, 255, 0.16);
  list-style: none;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.faq-index li {
  border-bottom: 1px solid rgba(255, 255, 255, 0.16);
}

.faq-index li:nth-child(odd) {
  border-right: 1px solid rgba(255, 255, 255, 0.16);
}

.faq-index a {
  display: grid;
  min-height: 7rem;
  padding: 1rem;
  align-content: center;
  gap: 0.25rem 0.65rem;
  color: #fff;
  text-decoration: none;
  grid-template-columns: auto 1fr;
}

.faq-index a:hover {
  background: rgba(255, 255, 255, 0.07);
}

.faq-index a > span {
  color: var(--faq-gold-light);
  font-family: Georgia, serif;
  font-size: 0.78rem;
  grid-row: 1 / 3;
}

.faq-index strong {
  font-size: 0.92rem;
  line-height: 1.45;
}

.faq-index small {
  color: #9fb0c0;
  font-size: 0.72rem;
}

.faq-quick {
  padding-block: clamp(4.5rem, 8vw, 7rem);
  background: #fff;
}

.faq-section-heading {
  margin-bottom: clamp(2.5rem, 5vw, 4rem);
}

.faq-section-heading--center {
  text-align: center;
}

.faq-section-heading--center .faq-kicker::before {
  display: none;
}

.faq-section-heading h2 {
  margin: 0;
  color: var(--faq-navy);
  font-size: clamp(2rem, 4vw, 3.15rem);
  font-weight: 600;
  letter-spacing: 0.05em;
}

.faq-quick__grid {
  display: grid;
  border-top: 1px solid var(--faq-line);
  border-left: 1px solid var(--faq-line);
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.faq-quick__grid article {
  position: relative;
  min-height: 17rem;
  padding: clamp(1.5rem, 3vw, 2.5rem);
  border-right: 1px solid var(--faq-line);
  border-bottom: 1px solid var(--faq-line);
  background: #fff;
}

.faq-quick__number {
  display: block;
  margin-bottom: 2.7rem;
  color: var(--faq-gold);
  font-family: Georgia, serif;
  font-size: 0.8rem;
}

.faq-quick__question {
  margin: 0 0 1.1rem;
  color: #526273;
  font-size: 0.86rem;
}

.faq-quick__answer {
  margin: 0;
}

.faq-quick__answer strong,
.faq-quick__answer small {
  display: block;
}

.faq-quick__answer strong {
  color: var(--faq-navy);
  font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
  font-size: clamp(1.35rem, 2.6vw, 1.85rem);
  line-height: 1.5;
}

.faq-quick__answer small {
  margin-top: 0.45rem;
  color: #657484;
  font-size: 0.78rem;
  line-height: 1.65;
}

.faq-review-note {
  max-width: 58rem;
  padding: 1.2rem 1.4rem;
  margin: 2.2rem auto 0;
  border-left: 4px solid var(--faq-gold);
  background: #fff8e9;
}

.faq-review-note p {
  margin: 0;
  color: #526273;
  font-size: 0.86rem;
  line-height: 1.85;
}

.faq-review-note strong {
  margin-right: 0.6em;
  color: var(--faq-navy);
}

.faq-category {
  padding-block: clamp(5rem, 9vw, 8rem);
  scroll-margin-top: 8rem;
  background: #fff;
}

.faq-category--paper {
  background: var(--faq-paper);
}

.faq-category__layout {
  display: grid;
  align-items: start;
  gap: clamp(3rem, 8vw, 8rem);
  grid-template-columns: minmax(16rem, 0.7fr) minmax(0, 1.3fr);
}

.faq-category__heading {
  position: sticky;
  top: 9rem;
}

.faq-category__number {
  display: block;
  margin-bottom: 1.6rem;
  color: rgba(11, 41, 72, 0.13);
  font-family: Georgia, serif;
  font-size: clamp(4.5rem, 8vw, 7rem);
  line-height: 0.8;
}

.faq-category__heading h2 {
  margin: 0;
  color: var(--faq-navy);
  font-size: clamp(2.2rem, 4.7vw, 3.6rem);
  font-weight: 600;
  letter-spacing: 0.05em;
  line-height: 1.35;
}

.faq-category__heading > p:not(.faq-kicker) {
  margin: 1.4rem 0 0;
  color: #5a6876;
  line-height: 1.9;
}

.faq-category__link {
  display: inline-flex;
  margin-top: 1.5rem;
  align-items: center;
  gap: 0.6rem;
  color: var(--faq-blue);
  font-size: 0.86rem;
  font-weight: 700;
  text-decoration: none;
}

.faq-category__link::after {
  content: "→";
}

.faq-category__link:hover {
  color: var(--faq-gold);
}

.faq-list {
  border-top: 1px solid var(--faq-line);
}

.faq-list details {
  border-bottom: 1px solid var(--faq-line);
}

.faq-list summary {
  position: relative;
  display: flex;
  min-height: 6rem;
  padding: 1.45rem 3.2rem 1.45rem 0;
  align-items: center;
  gap: 1rem;
  color: var(--faq-navy);
  cursor: pointer;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.75;
  list-style: none;
}

.faq-list summary::-webkit-details-marker {
  display: none;
}

.faq-list summary::after {
  position: absolute;
  top: calc(50% - 0.9rem);
  right: 0.2rem;
  display: grid;
  width: 1.8rem;
  height: 1.8rem;
  border: 1px solid rgba(31, 83, 125, 0.35);
  color: var(--faq-blue);
  content: "+";
  font-size: 1.25rem;
  font-weight: 400;
  line-height: 1;
  place-items: center;
}

.faq-list details[open] summary::after {
  content: "−";
}

.faq-list summary > span {
  color: var(--faq-gold);
  font-family: Georgia, serif;
  font-size: 1.2rem;
}

.faq-answer {
  display: grid;
  padding: 0 3.2rem 1.8rem 2.2rem;
  gap: 0.9rem;
  grid-template-columns: auto 1fr;
}

.faq-answer > span {
  color: var(--faq-blue);
  font-family: Georgia, serif;
  font-size: 1rem;
  font-weight: 700;
}

.faq-answer p {
  margin: 0;
  color: #536474;
  line-height: 1.95;
}

.faq-category--deep {
  color: #fff;
  background:
    linear-gradient(120deg, rgba(7, 26, 46, 0.98), rgba(11, 41, 72, 0.96)),
    var(--faq-navy-deep);
}

.faq-category--deep .faq-category__number {
  color: rgba(234, 208, 155, 0.16);
}

.faq-category--deep .faq-category__heading h2,
.faq-category--deep .faq-list summary {
  color: #fff;
}

.faq-category--deep .faq-category__heading > p:not(.faq-kicker),
.faq-category--deep .faq-answer p {
  color: #cbd7e1;
}

.faq-category--deep .faq-category__link {
  color: var(--faq-gold-light);
}

.faq-category--deep .faq-list,
.faq-category--deep .faq-list details {
  border-color: rgba(255, 255, 255, 0.2);
}

.faq-category--deep .faq-list summary::after {
  border-color: rgba(234, 208, 155, 0.45);
  color: var(--faq-gold-light);
}

.faq-category--deep .faq-answer > span {
  color: var(--faq-gold-light);
}

.faq-unresolved {
  padding-block: clamp(4rem, 8vw, 6.5rem);
  border-top: 1px solid #d9e1e8;
  background: #e8eef3;
}

.faq-unresolved__inner {
  display: grid;
  align-items: start;
  gap: clamp(2rem, 7vw, 7rem);
  grid-template-columns: minmax(17rem, 0.8fr) minmax(0, 1.2fr);
}

.faq-unresolved h2 {
  margin: 0;
  color: var(--faq-navy);
  font-size: clamp(2rem, 4vw, 3.15rem);
  font-weight: 600;
  line-height: 1.45;
}

.faq-unresolved__inner > div:last-child {
  padding-left: clamp(1.5rem, 4vw, 3.5rem);
  border-left: 3px solid var(--faq-gold);
}

.faq-unresolved__inner > div:last-child p {
  margin: 0;
  color: #526273;
  line-height: 2;
}

.faq-unresolved__inner > div:last-child p + p {
  margin-top: 1rem;
}

.faq-reservation {
  background: linear-gradient(120deg, rgba(7, 26, 46, 0.99), rgba(11, 41, 72, 0.96));
}

.faq-reservation__phone {
  display: grid;
  min-width: min(100%, 21rem);
  padding: 1rem 1.35rem;
  border: 1px solid rgba(255, 255, 255, 0.42);
  color: #fff;
  text-decoration: none;
}

.faq-reservation__phone span,
.faq-reservation__phone small {
  font-size: 0.75rem;
}

.faq-reservation__phone strong {
  font-family: Georgia, serif;
  font-size: 1.65rem;
  letter-spacing: 0.04em;
}

@media (max-width: 62rem) {
  .faq-hero__inner {
    min-height: auto;
    grid-template-columns: 1fr;
  }

  .faq-index {
    width: min(100%, 46rem);
  }

  .faq-category__layout,
  .faq-unresolved__inner {
    grid-template-columns: 1fr;
  }

  .faq-category__heading {
    position: static;
    max-width: 42rem;
  }

  .faq-category__heading h2 br {
    display: none;
  }
}

@media (max-width: 46rem) {
  .faq-quick__grid {
    grid-template-columns: 1fr;
  }

  .faq-quick__grid article {
    min-height: auto;
  }

  .faq-quick__number {
    margin-bottom: 1.5rem;
  }
}

@media (max-width: 40rem) {
  .faq-hero__inner {
    padding-block: 3.7rem 4.5rem;
  }

  .faq-hero__copy h1 {
    font-size: clamp(2.35rem, 12vw, 3.2rem);
  }

  .faq-hero__statement {
    font-size: 1.25rem;
  }

  .faq-hero__statement br {
    display: none;
  }

  .faq-hero__facts {
    grid-template-columns: 1fr;
  }

  .faq-hero__facts div {
    display: grid;
    align-items: center;
    gap: 1rem;
    grid-template-columns: 5rem 1fr;
  }

  .faq-hero__facts div + div {
    border-top: 1px solid rgba(255, 255, 255, 0.22);
    border-left: 0;
  }

  .faq-hero__facts dt {
    margin: 0;
  }

  .faq-index ol {
    grid-template-columns: 1fr;
  }

  .faq-index li:nth-child(odd) {
    border-right: 0;
  }

  .faq-index a {
    min-height: 5.4rem;
  }

  .faq-review-note strong {
    display: block;
    margin: 0 0 0.35rem;
  }

  .faq-category__number {
    font-size: 4rem;
  }

  .faq-category__heading h2,
  .faq-section-heading h2,
  .faq-unresolved h2 {
    font-size: clamp(1.8rem, 8.5vw, 2.4rem);
  }

  .faq-list summary {
    min-height: 5.2rem;
    padding-right: 2.5rem;
    gap: 0.7rem;
  }

  .faq-list summary > span {
    align-self: flex-start;
    padding-top: 0.15rem;
  }

  .faq-answer {
    padding-right: 0.5rem;
    padding-left: 0;
  }

  .faq-unresolved__inner > div:last-child {
    padding-left: 1.2rem;
  }

  .faq-reservation__phone {
    min-width: 100%;
  }
}

/*
 * FEATURES PAGE
 * A calm, evidence-minded editorial layout for explaining the treatment approach.
 */
.features-page {
  --features-ink: #071a2e;
  --features-navy: #0b2948;
  --features-blue: #174a73;
  --features-gold: #c9a45f;
  --features-gold-light: #ead8ab;
  --features-paper: #f5f3ed;
  --features-white: #fff;
  color: var(--features-ink);
  background: var(--features-paper);
}

.features-page .breadcrumb {
  border-color: rgba(11, 41, 72, 0.12);
  background: #fff;
}

.features-hero {
  position: relative;
  overflow: hidden;
  color: #fff;
  background:
    linear-gradient(90deg, rgba(7, 26, 46, 0.98) 0%, rgba(7, 26, 46, 0.94) 46%, rgba(11, 41, 72, 0.9) 100%);
}

.features-hero::before {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(255, 255, 255, 0.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.035) 1px, transparent 1px);
  background-size: 4rem 4rem;
  content: "";
  pointer-events: none;
}

.features-hero__inner {
  position: relative;
  display: grid;
  min-height: 42rem;
  align-items: center;
  gap: clamp(2rem, 5vw, 5.5rem);
  grid-template-columns: minmax(0, 0.9fr) minmax(24rem, 1.1fr);
  padding-block: clamp(4rem, 8vw, 7.5rem);
}

.features-hero__copy {
  position: relative;
  z-index: 1;
}

.features-kicker {
  display: flex;
  margin: 0 0 1.4rem;
  align-items: center;
  gap: 0.8rem;
  color: var(--features-gold-light);
  font-family: var(--font-sans);
  font-size: 0.8rem;
  font-weight: 800;
  letter-spacing: 0.22em;
}

.features-kicker::before {
  width: 2.8rem;
  height: 1px;
  background: var(--features-gold);
  content: "";
}

.features-hero h1 {
  margin: 0;
  color: rgba(255, 255, 255, 0.7);
  font-family: var(--font-sans);
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: 0.2em;
}

.features-hero__statement {
  margin: 0.75rem 0 1.5rem;
  color: #fff;
  font-family: var(--font-serif);
  font-size: clamp(2.55rem, 5vw, 4.8rem);
  font-weight: 700;
  line-height: 1.28;
  letter-spacing: 0.04em;
}

.features-hero__statement::after {
  display: block;
  width: 5.5rem;
  height: 2px;
  margin-top: 1.45rem;
  background: var(--features-gold);
  content: "";
}

.features-hero__lead {
  max-width: 35rem;
  margin: 0;
  color: rgba(255, 255, 255, 0.82);
  font-size: clamp(1rem, 1.5vw, 1.15rem);
  line-height: 2;
}

.features-hero__steps {
  display: grid;
  max-width: 35rem;
  margin: 2.25rem 0 0;
  padding: 0;
  border-top: 1px solid rgba(255, 255, 255, 0.18);
  grid-template-columns: repeat(3, 1fr);
  list-style: none;
}

.features-hero__steps li {
  display: flex;
  padding: 1rem 0.75rem 0 0;
  align-items: baseline;
  gap: 0.55rem;
}

.features-hero__steps span {
  color: var(--features-gold);
  font-family: Georgia, serif;
  font-size: 0.78rem;
}

.features-hero__steps strong {
  color: #fff;
  font-size: 0.92rem;
  letter-spacing: 0.08em;
}

.features-hero__visual {
  position: relative;
  margin: 0;
}

.features-hero__visual::before {
  position: absolute;
  z-index: 1;
  top: -1.1rem;
  right: -1.1rem;
  width: 42%;
  height: 42%;
  border-top: 1px solid var(--features-gold);
  border-right: 1px solid var(--features-gold);
  content: "";
}

.features-hero__visual img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  box-shadow: 0 2rem 4rem rgba(0, 0, 0, 0.3);
}

.features-hero__visual figcaption {
  position: absolute;
  right: -1.5rem;
  bottom: -1.5rem;
  width: min(22rem, 78%);
  padding: 1.15rem 1.35rem;
  border-left: 3px solid var(--features-gold);
  color: var(--features-ink);
  background: #fff;
  box-shadow: 0 1rem 2.5rem rgba(0, 0, 0, 0.2);
  font-size: 0.88rem;
  font-weight: 700;
  line-height: 1.7;
}

@media (max-width: 62rem) {
  .features-hero__inner {
    min-height: auto;
    grid-template-columns: 1fr;
  }

  .features-hero__copy {
    max-width: 43rem;
  }

  .features-hero__visual {
    width: min(100%, 46rem);
  }
}

@media (max-width: 40rem) {
  .features-hero__inner {
    gap: 2.75rem;
    padding-block: 3.5rem 4.5rem;
  }

  .features-hero__statement {
    font-size: clamp(2.3rem, 11vw, 3.2rem);
  }

  .features-hero__steps li {
    display: grid;
    gap: 0.15rem;
  }

  .features-hero__visual figcaption {
    right: -0.35rem;
    bottom: -1.5rem;
  }
}

.features-page main .features-kicker {
  color: var(--features-blue);
}

.features-page main .features-kicker::before {
  background: var(--features-gold);
}

.features-page main .features-hero .features-kicker,
.features-page main .features-gentle .features-kicker,
.features-page main .features-safety .features-kicker {
  color: var(--features-gold-light);
}

.features-section-heading {
  max-width: 48rem;
  margin-bottom: clamp(2.5rem, 5vw, 4.5rem);
}

.features-section-heading--center {
  margin-inline: auto;
  text-align: center;
}

.features-section-heading--center .features-kicker {
  justify-content: center;
}

.features-section-heading h2,
.features-assessment h2,
.features-gentle h2,
.features-personal h2,
.features-aftercare h2,
.features-faq h2 {
  margin: 0;
  color: var(--features-ink);
  font-size: clamp(2rem, 4vw, 3.45rem);
  line-height: 1.42;
  letter-spacing: 0.04em;
}

.features-section-heading > p:last-child {
  margin: 1.3rem 0 0;
  color: #506071;
  font-size: 1.05rem;
  line-height: 2;
}

.features-lead {
  color: var(--features-ink);
  font-size: clamp(1.05rem, 1.6vw, 1.2rem);
  font-weight: 700;
  line-height: 2;
}

.features-principles {
  position: relative;
  padding-block: clamp(5rem, 9vw, 8.5rem);
  background: #fff;
}

.features-principles::before {
  position: absolute;
  top: 0;
  left: 50%;
  width: 1px;
  height: 3.5rem;
  background: var(--features-gold);
  content: "";
}

.features-principles__grid {
  display: grid;
  border-top: 1px solid rgba(11, 41, 72, 0.14);
  border-left: 1px solid rgba(11, 41, 72, 0.14);
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.features-principle-card {
  position: relative;
  min-height: 24rem;
  padding: clamp(2rem, 3.5vw, 3rem) clamp(1.45rem, 2.7vw, 2.4rem);
  border-right: 1px solid rgba(11, 41, 72, 0.14);
  border-bottom: 1px solid rgba(11, 41, 72, 0.14);
  background: #fff;
}

.features-principle-card::after {
  position: absolute;
  right: 0;
  bottom: 0;
  width: 0;
  height: 3px;
  background: var(--features-gold);
  content: "";
  transition: width 180ms ease;
}

.features-principle-card:hover::after {
  width: 100%;
}

.features-principle-card__number {
  display: block;
  margin-bottom: clamp(3.5rem, 7vw, 6.5rem);
  color: var(--features-gold);
  font-family: Georgia, serif;
  font-size: 1rem;
  letter-spacing: 0.12em;
}

.features-principle-card h3 {
  margin: 0 0 1.15rem;
  color: var(--features-navy);
  font-size: 1.35rem;
  line-height: 1.55;
}

.features-principle-card p {
  margin: 0;
  color: #596675;
  font-size: 0.97rem;
  line-height: 1.95;
}

.features-assessment {
  padding-block: clamp(5rem, 9vw, 9rem);
  background:
    linear-gradient(90deg, rgba(201, 164, 95, 0.08) 0, rgba(201, 164, 95, 0.08) 30%, transparent 30%);
}

.features-assessment__layout {
  display: grid;
  align-items: center;
  gap: clamp(3rem, 7vw, 7rem);
  grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr);
}

.features-photo {
  position: relative;
  margin: 0;
}

.features-photo::before {
  position: absolute;
  z-index: 0;
  top: -1.25rem;
  left: -1.25rem;
  width: 42%;
  height: 42%;
  border-top: 1px solid var(--features-gold);
  border-left: 1px solid var(--features-gold);
  content: "";
}

.features-photo img {
  position: relative;
  z-index: 1;
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  box-shadow: 0 1.6rem 3.5rem rgba(7, 26, 46, 0.16);
}

.features-photo figcaption {
  position: relative;
  z-index: 2;
  width: calc(100% - 2.5rem);
  margin: -2.4rem 0 0 2.5rem;
  padding: 1.15rem 1.35rem;
  border-left: 3px solid var(--features-gold);
  color: var(--features-ink);
  background: #fff;
  box-shadow: 0 0.8rem 2rem rgba(7, 26, 46, 0.13);
  font-size: 0.88rem;
  font-weight: 700;
  line-height: 1.65;
}

.features-photo figcaption small {
  display: block;
  margin-top: 0.15rem;
  color: #87919c;
  font-size: 0.72rem;
  font-weight: 500;
}

.features-assessment__copy > p:not(.features-kicker),
.features-gentle__copy > p:not(.features-kicker),
.features-personal__copy > p:not(.features-kicker),
.features-aftercare__copy > p:not(.features-kicker) {
  margin: 1.35rem 0 0;
  line-height: 2;
}

.features-checkpoints {
  margin: 2.5rem 0 0;
  border-top: 1px solid rgba(11, 41, 72, 0.18);
}

.features-checkpoints div {
  display: grid;
  padding: 1.25rem 0;
  border-bottom: 1px solid rgba(11, 41, 72, 0.18);
  align-items: start;
  gap: 1.25rem;
  grid-template-columns: 6.8rem 1fr;
}

.features-checkpoints dt {
  padding-top: 0.2rem;
  color: var(--features-gold);
  font-family: Georgia, serif;
  font-size: 0.74rem;
  font-weight: 700;
  letter-spacing: 0.1em;
}

.features-checkpoints dd {
  margin: 0;
}

.features-checkpoints strong,
.features-checkpoints span {
  display: block;
}

.features-checkpoints strong {
  color: var(--features-navy);
  font-size: 1rem;
}

.features-checkpoints span {
  margin-top: 0.35rem;
  color: #5f6c78;
  font-size: 0.88rem;
  line-height: 1.7;
}

.features-journey {
  padding-block: clamp(5rem, 9vw, 8.5rem);
  background: #fff;
}

.features-journey__diagram {
  position: relative;
  display: grid;
  margin: 0;
  padding: 0;
  gap: 1rem;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  list-style: none;
}

.features-journey__diagram::before {
  position: absolute;
  top: 2.45rem;
  right: 9%;
  left: 9%;
  height: 1px;
  background: rgba(201, 164, 95, 0.65);
  content: "";
}

.features-journey__diagram li {
  position: relative;
  z-index: 1;
  display: grid;
  min-height: 15rem;
  padding: 1.2rem;
  border: 1px solid rgba(11, 41, 72, 0.12);
  align-content: start;
  justify-items: center;
  background: var(--features-paper);
  text-align: center;
}

.features-journey__number {
  display: grid;
  width: 3.9rem;
  height: 3.9rem;
  margin: -0.1rem auto 1.6rem;
  border: 1px solid var(--features-gold);
  border-radius: 50%;
  place-items: center;
  color: var(--features-gold-light);
  background: var(--features-navy);
  font-family: Georgia, serif;
  font-size: 0.8rem;
}

.features-journey__diagram strong,
.features-journey__diagram small {
  display: block;
}

.features-journey__diagram strong {
  color: var(--features-navy);
  font-size: 1.05rem;
  line-height: 1.55;
}

.features-journey__diagram small {
  margin-top: 0.8rem;
  color: #697582;
  font-size: 0.82rem;
  line-height: 1.7;
}

.features-journey__diagram li:not(:last-child)::after {
  position: absolute;
  z-index: 2;
  top: 1.8rem;
  right: -1.25rem;
  width: 1.5rem;
  color: var(--features-gold);
  content: "→";
  font-size: 1.2rem;
}

.features-journey__note {
  margin: 2rem 0 0;
  padding: 1.2rem 1.5rem;
  border-left: 3px solid var(--features-gold);
  color: #455667;
  background: rgba(201, 164, 95, 0.1);
  font-size: 0.94rem;
  line-height: 1.8;
}

.features-gentle {
  position: relative;
  overflow: hidden;
  padding-block: clamp(5rem, 9vw, 9rem);
  color: #fff;
  background: var(--features-ink);
}

.features-gentle::before {
  position: absolute;
  top: -15rem;
  left: -10rem;
  width: 38rem;
  height: 38rem;
  border: 1px solid rgba(201, 164, 95, 0.16);
  border-radius: 50%;
  content: "";
}

.features-gentle__layout {
  position: relative;
  display: grid;
  align-items: center;
  gap: clamp(3rem, 7vw, 7rem);
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
}

.features-gentle h2,
.features-gentle .features-lead {
  color: #fff;
}

.features-gentle__copy > p:not(.features-kicker) {
  color: rgba(255, 255, 255, 0.76);
}

.features-gentle__facts {
  display: grid;
  margin: 2.5rem 0 0;
  border-top: 1px solid rgba(255, 255, 255, 0.18);
  grid-template-columns: repeat(3, 1fr);
}

.features-gentle__facts div {
  padding: 1.25rem 0.9rem 0 0;
}

.features-gentle__facts dt {
  color: var(--features-gold-light);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.14em;
}

.features-gentle__facts dd {
  margin: 0.45rem 0 0;
  color: #fff;
  font-size: 0.92rem;
  font-weight: 700;
  line-height: 1.6;
}

.features-gentle .features-photo::before {
  top: auto;
  right: -1.25rem;
  bottom: -1.25rem;
  left: auto;
  border: 0;
  border-right: 1px solid var(--features-gold);
  border-bottom: 1px solid var(--features-gold);
}

.features-gentle .features-photo figcaption {
  color: #fff;
  background: var(--features-blue);
}

.features-gentle .features-photo figcaption small {
  color: rgba(255, 255, 255, 0.62);
}

.features-personal {
  padding-block: clamp(5rem, 9vw, 9rem);
  background: var(--features-paper);
}

.features-personal__layout {
  display: grid;
  align-items: center;
  gap: clamp(3rem, 7vw, 7rem);
  grid-template-columns: minmax(0, 0.9fr) minmax(32rem, 1.1fr);
}

.features-plan-diagram {
  position: relative;
  padding: clamp(1.5rem, 4vw, 3rem);
  border: 1px solid rgba(201, 164, 95, 0.5);
  color: #fff;
  background: linear-gradient(145deg, var(--features-navy), var(--features-ink));
  box-shadow: 0 1.8rem 4rem rgba(7, 26, 46, 0.2);
}

.features-plan-diagram::before {
  position: absolute;
  inset: 0.65rem;
  border: 1px solid rgba(255, 255, 255, 0.1);
  content: "";
  pointer-events: none;
}

.features-plan-diagram__center,
.features-plan-diagram__result {
  position: relative;
  z-index: 1;
  margin: 0;
  text-align: center;
}

.features-plan-diagram__center span,
.features-plan-diagram__result span {
  display: block;
  color: var(--features-gold-light);
  font-family: Georgia, serif;
  font-size: 0.72rem;
  letter-spacing: 0.16em;
}

.features-plan-diagram__center strong {
  display: block;
  margin-top: 0.25rem;
  font-size: 1.4rem;
}

.features-plan-diagram ul {
  position: relative;
  z-index: 1;
  display: grid;
  margin: 2.2rem 0;
  padding: 0;
  gap: 0.75rem;
  grid-template-columns: repeat(3, 1fr);
  list-style: none;
}

.features-plan-diagram li {
  position: relative;
  min-height: 8rem;
  padding: 1.2rem 0.9rem;
  border: 1px solid rgba(255, 255, 255, 0.2);
  background: rgba(255, 255, 255, 0.06);
  text-align: center;
}

.features-plan-diagram li::after {
  position: absolute;
  bottom: -1.75rem;
  left: calc(50% - 0.5rem);
  color: var(--features-gold);
  content: "↓";
}

.features-plan-diagram li span,
.features-plan-diagram li strong {
  display: block;
}

.features-plan-diagram li span {
  margin-bottom: 1.1rem;
  color: var(--features-gold);
  font-family: Georgia, serif;
  font-size: 0.72rem;
}

.features-plan-diagram li strong {
  font-size: 0.9rem;
  line-height: 1.6;
}

.features-plan-diagram__result {
  padding: 1rem;
  color: var(--features-ink);
  background: var(--features-gold-light);
}

.features-plan-diagram__result strong {
  display: block;
  margin-top: 0.25rem;
  font-size: 1rem;
}

.features-aftercare {
  padding-block: clamp(5rem, 9vw, 9rem);
  background: #fff;
}

.features-aftercare__layout {
  display: grid;
  align-items: center;
  gap: clamp(3rem, 7vw, 7rem);
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
}

.features-aftercare__list {
  display: grid;
  margin: 2rem 0 0;
  padding: 0;
  gap: 0.7rem;
  list-style: none;
}

.features-aftercare__list li {
  position: relative;
  padding: 0.95rem 1rem 0.95rem 3.2rem;
  color: var(--features-navy);
  background: var(--features-paper);
  font-weight: 700;
  line-height: 1.7;
}

.features-aftercare__list li::before {
  position: absolute;
  top: 0.9rem;
  left: 1rem;
  display: grid;
  width: 1.45rem;
  height: 1.45rem;
  border-radius: 50%;
  place-items: center;
  color: #fff;
  background: var(--features-blue);
  content: "✓";
  font-size: 0.76rem;
}

.features-safety {
  position: relative;
  padding-block: clamp(5rem, 9vw, 8rem);
  color: #fff;
  background: var(--features-navy);
}

.features-safety::after {
  position: absolute;
  right: 0;
  bottom: 0;
  width: 35%;
  height: 35%;
  border-top: 1px solid rgba(201, 164, 95, 0.18);
  border-left: 1px solid rgba(201, 164, 95, 0.18);
  content: "";
  pointer-events: none;
}

.features-section-heading--light h2,
.features-section-heading--light > p:last-child {
  color: #fff;
}

.features-section-heading--light > p:last-child {
  color: rgba(255, 255, 255, 0.72);
}

.features-safety__grid {
  position: relative;
  z-index: 1;
  display: grid;
  gap: 1px;
  grid-template-columns: repeat(2, 1fr);
  background: rgba(255, 255, 255, 0.16);
}

.features-safety__grid article {
  min-height: 24rem;
  padding: clamp(2rem, 5vw, 4rem);
  background: var(--features-ink);
}

.features-safety__grid article:last-child {
  background: #102f4f;
}

.features-safety__mark {
  display: grid;
  width: 3.6rem;
  height: 3.6rem;
  margin-bottom: 2rem;
  border: 1px solid var(--features-gold);
  border-radius: 50%;
  place-items: center;
  color: var(--features-gold-light);
  font-size: 1.5rem;
}

.features-safety__grid h3 {
  margin: 0 0 1.6rem;
  color: #fff;
  font-size: clamp(1.35rem, 2.2vw, 1.75rem);
}

.features-safety__grid ul {
  display: grid;
  margin: 0;
  padding: 0;
  gap: 1rem;
  list-style: none;
}

.features-safety__grid li {
  position: relative;
  padding-left: 1.3rem;
  color: rgba(255, 255, 255, 0.78);
  line-height: 1.85;
}

.features-safety__grid li::before {
  position: absolute;
  top: 0.75rem;
  left: 0;
  width: 0.35rem;
  height: 0.35rem;
  border-radius: 50%;
  background: var(--features-gold);
  content: "";
}

.features-safety__note {
  position: relative;
  z-index: 1;
  margin: 1.5rem 0 0;
  color: rgba(255, 255, 255, 0.6);
  font-size: 0.8rem;
  line-height: 1.7;
  text-align: center;
}

.features-faq {
  padding-block: clamp(5rem, 9vw, 8rem);
  background: var(--features-paper);
}

.features-faq__layout {
  display: grid;
  align-items: start;
  gap: clamp(3rem, 7vw, 7rem);
  grid-template-columns: minmax(17rem, 0.72fr) minmax(0, 1.28fr);
}

.features-faq__heading {
  position: sticky;
  top: 9rem;
}

.features-faq__heading > p:last-child {
  margin: 1.4rem 0 0;
  color: #5d6975;
  line-height: 1.9;
}

.features-faq__list {
  border-top: 1px solid rgba(11, 41, 72, 0.18);
}

.features-faq__list details {
  border-bottom: 1px solid rgba(11, 41, 72, 0.18);
}

.features-faq__list summary {
  position: relative;
  display: flex;
  min-height: 5.5rem;
  padding: 1.45rem 3rem 1.45rem 0;
  align-items: center;
  gap: 1rem;
  color: var(--features-navy);
  cursor: pointer;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.7;
  list-style: none;
}

.features-faq__list summary::-webkit-details-marker {
  display: none;
}

.features-faq__list summary::after {
  position: absolute;
  top: calc(50% - 0.8rem);
  right: 0.25rem;
  width: 1.6rem;
  height: 1.6rem;
  color: var(--features-blue);
  content: "+";
  font-size: 1.45rem;
  font-weight: 400;
  line-height: 1;
  text-align: center;
}

.features-faq__list details[open] summary::after {
  content: "−";
}

.features-faq__list summary span {
  color: var(--features-gold);
  font-family: Georgia, serif;
  font-size: 1.2rem;
}

.features-faq__list details > div {
  padding: 0 3rem 1.65rem 2.2rem;
}

.features-faq__list details p {
  margin: 0;
  color: #5a6876;
  line-height: 1.95;
}

.features-reservation {
  background:
    linear-gradient(120deg, rgba(7, 26, 46, 0.98), rgba(11, 41, 72, 0.95));
}

.features-reservation__phone {
  display: grid;
  min-width: min(100%, 21rem);
  padding: 1rem 1.35rem;
  border: 1px solid rgba(255, 255, 255, 0.42);
  color: #fff;
  text-decoration: none;
}

.features-reservation__phone span,
.features-reservation__phone small {
  font-size: 0.75rem;
}

.features-reservation__phone strong {
  font-family: Georgia, serif;
  font-size: 1.65rem;
  letter-spacing: 0.04em;
}

@media (max-width: 68rem) {
  .features-principles__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .features-principle-card {
    min-height: 20rem;
  }

  .features-principle-card__number {
    margin-bottom: 4rem;
  }

  .features-journey__diagram {
    grid-template-columns: repeat(5, minmax(10rem, 1fr));
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    padding-bottom: 1rem;
  }

  .features-personal__layout {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 56rem) {
  .features-assessment__layout,
  .features-gentle__layout,
  .features-aftercare__layout,
  .features-faq__layout {
    grid-template-columns: 1fr;
  }

  .features-assessment__layout,
  .features-aftercare__layout {
    width: min(100%, 46rem);
  }

  .features-gentle__copy {
    order: 1;
  }

  .features-gentle .features-photo {
    order: 2;
  }

  .features-safety__grid {
    grid-template-columns: 1fr;
  }

  .features-safety__grid article {
    min-height: auto;
  }

  .features-faq__heading {
    position: static;
  }
}

@media (max-width: 40rem) {
  .features-section-heading h2,
  .features-assessment h2,
  .features-gentle h2,
  .features-personal h2,
  .features-aftercare h2,
  .features-faq h2 {
    font-size: clamp(1.8rem, 8.5vw, 2.4rem);
  }

  .features-principles__grid {
    grid-template-columns: 1fr;
  }

  .features-principle-card {
    min-height: auto;
  }

  .features-principle-card__number {
    margin-bottom: 2.5rem;
  }

  .features-photo::before {
    top: -0.65rem;
    left: -0.65rem;
  }

  .features-photo figcaption {
    width: calc(100% - 1rem);
    margin: -1.2rem 0 0 1rem;
  }

  .features-checkpoints div {
    gap: 0.5rem;
    grid-template-columns: 1fr;
  }

  .features-gentle__facts {
    grid-template-columns: 1fr;
  }

  .features-gentle__facts div {
    padding-block: 0.9rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.14);
  }

  .features-plan-diagram ul {
    grid-template-columns: 1fr;
  }

  .features-plan-diagram li {
    min-height: auto;
  }

  .features-plan-diagram li::after {
    display: none;
  }

  .features-faq__list summary {
    padding-left: 0;
  }

  .features-faq__list details > div {
    padding-right: 1rem;
    padding-left: 0;
  }

  .features-reservation__phone {
    min-width: 100%;
  }
}

/* ==========================================================
   ACCESS PAGE
   A practical, replaceable demo layout for location details.
   ========================================================== */
.access-page {
  --access-navy: #0b2948;
  --access-navy-deep: #071a2e;
  --access-blue: #1c5079;
  --access-gold: #c89443;
  --access-gold-light: #ead09b;
  --access-paper: #f3f6f8;
  --access-line: rgba(11, 41, 72, 0.18);
  overflow-x: hidden;
  background: var(--access-paper);
}

.access-page .breadcrumb { border-color: rgba(255,255,255,.12); color: rgba(255,255,255,.68); background: var(--access-navy-deep); }
.access-page .breadcrumb a { color: var(--access-gold-light); }

.access-kicker {
  margin: 0 0 1rem;
  color: var(--access-gold);
  font-size: .76rem;
  font-weight: 800;
  letter-spacing: .24em;
}

.access-kicker::before {
  display: inline-block;
  width: 2.6rem;
  height: 1px;
  margin-right: .8rem;
  background: currentColor;
  content: "";
  vertical-align: middle;
}

.access-hero {
  position: relative;
  overflow: hidden;
  color: #fff;
  background: linear-gradient(112deg, rgba(7,26,46,.985) 0 56%, rgba(11,41,72,.96) 56% 100%), var(--access-navy-deep);
}

.access-hero::before {
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(135deg, transparent 0 52px, rgba(255,255,255,.024) 52px 53px);
  content: "";
  pointer-events: none;
}

.access-hero::after {
  position: absolute;
  top: -14rem;
  right: -9rem;
  width: 34rem;
  height: 34rem;
  border: 1px solid rgba(234,208,155,.2);
  border-radius: 50%;
  box-shadow: 0 0 0 5rem rgba(234,208,155,.025);
  content: "";
  pointer-events: none;
}

.access-hero__inner {
  position: relative;
  z-index: 1;
  display: grid;
  min-height: clamp(41rem, 76vh, 50rem);
  padding-block: clamp(4.5rem, 8vw, 7rem);
  align-items: center;
  gap: clamp(3rem, 7vw, 7rem);
  grid-template-columns: minmax(0, .95fr) minmax(24rem, 1.05fr);
}

.access-hero__copy h1 {
  margin: 0;
  color: #fff;
  font-size: clamp(2.7rem, 5.8vw, 5rem);
  font-weight: 600;
  letter-spacing: .07em;
  line-height: 1.16;
}

.access-hero__statement {
  margin: 1.6rem 0 1.2rem;
  color: var(--access-gold-light);
  font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
  font-size: clamp(1.35rem, 2.7vw, 2.05rem);
  line-height: 1.65;
}

.access-hero__lead {
  max-width: 39rem;
  margin: 0;
  color: #d2dde7;
  font-size: 1rem;
  line-height: 2;
}

.access-hero__facts {
  display: grid;
  padding: 0;
  margin: 2.4rem 0 0;
  border-block: 1px solid rgba(255,255,255,.22);
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.access-hero__facts div { padding: 1rem .8rem; }
.access-hero__facts div + div { border-left: 1px solid rgba(255,255,255,.22); }
.access-hero__facts dt { margin-bottom: .32rem; color: #9fb0c0; font-size: .72rem; }

.access-hero__facts dd {
  margin: 0;
  color: #fff;
  font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
  font-size: 1.05rem;
  font-weight: 700;
}

.access-hero__facts dd span {
  display: block;
  margin-top: .2rem;
  color: #b9c7d4;
  font-family: "Yu Gothic", "YuGothic", "Hiragino Kaku Gothic ProN", sans-serif;
  font-size: .7rem;
  font-weight: 500;
  line-height: 1.5;
}

.access-arrival-card {
  position: relative;
  padding: clamp(1.6rem, 4vw, 2.6rem);
  border: 1px solid rgba(255,255,255,.22);
  border-top: 5px solid var(--access-gold);
  background: rgba(2,13,27,.58);
  box-shadow: 0 26px 65px rgba(0,0,0,.23);
  backdrop-filter: blur(4px);
}

.access-arrival-card__label {
  margin: 0;
  color: var(--access-gold-light);
  font-family: Georgia, serif;
  font-size: .72rem;
  letter-spacing: .18em;
}

.access-arrival-card__status,
.access-tag {
  display: inline-flex;
  min-height: 1.75rem;
  padding: .25rem .65rem;
  align-items: center;
  border: 1px solid rgba(200,148,67,.65);
  color: #6c4b15;
  background: #fff3dc;
  font-size: .72rem;
  font-weight: 700;
}

.access-arrival-card__status { position: absolute; top: 1.5rem; right: 1.5rem; margin: 0; }
.access-arrival-card__address { padding: 2.2rem 0 1.6rem; }
.access-arrival-card__address span,
.access-arrival-card__address strong { display: block; }
.access-arrival-card__address span { margin-bottom: .5rem; color: #9fb0c0; font-size: .8rem; }

.access-arrival-card__address strong {
  color: #fff;
  font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
  font-size: clamp(1.35rem, 2.7vw, 1.85rem);
  line-height: 1.65;
}

.access-arrival-card__nav {
  display: grid;
  border-top: 1px solid rgba(255,255,255,.18);
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.access-arrival-card__nav a {
  display: flex;
  min-height: 4.5rem;
  padding: .8rem;
  align-items: center;
  gap: .65rem;
  border-bottom: 1px solid rgba(255,255,255,.18);
  color: #fff;
  font-size: .8rem;
  font-weight: 700;
  line-height: 1.55;
  text-decoration: none;
}

.access-arrival-card__nav a:nth-child(odd) { border-right: 1px solid rgba(255,255,255,.18); }
.access-arrival-card__nav a:hover { background: rgba(255,255,255,.07); }
.access-arrival-card__nav span { color: var(--access-gold-light); font-family: Georgia, serif; font-size: .72rem; }
.access-arrival-card__note { margin: 1.2rem 0 0; color: #9fb0c0; font-size: .74rem; line-height: 1.7; }

.access-location,
.access-walk,
.access-landmark,
.access-hours,
.access-facilities { padding-block: clamp(5rem, 9vw, 8rem); }
.access-location { scroll-margin-top: 8rem; background: #fff; }
.access-section-heading { max-width: 49rem; margin-bottom: clamp(2.7rem, 5vw, 4.2rem); }

.access-section-heading h2,
.access-walk__heading h2,
.access-hours__schedule h2 {
  margin: 0;
  color: var(--access-navy);
  font-size: clamp(2.1rem, 4.6vw, 3.5rem);
  font-weight: 600;
  letter-spacing: .05em;
  line-height: 1.38;
}

.access-section-heading > p:last-child,
.access-walk__heading > p:not(.access-kicker),
.access-hours__intro { margin: 1.2rem 0 0; color: #566676; line-height: 1.95; }
.access-section-heading--center { margin-inline: auto; text-align: center; }
.access-section-heading--center .access-kicker::before { display: none; }

.access-location__layout {
  display: grid;
  align-items: stretch;
  gap: clamp(1.4rem, 3vw, 2.2rem);
  grid-template-columns: minmax(0, 1.32fr) minmax(19rem, .68fr);
}

.access-map {
  display: grid;
  padding: clamp(1.2rem, 3vw, 2rem);
  border: 1px solid #c8d3dd;
  background: var(--access-paper);
  box-shadow: 0 20px 55px rgba(6,24,45,.1);
}

.access-map__head { display: flex; padding-bottom: 1.2rem; align-items: start; justify-content: space-between; gap: 1rem; }
.access-map__head span:first-child { display: block; margin-bottom: .25rem; color: var(--access-gold); font-family: Georgia, serif; font-size: .7rem; letter-spacing: .17em; }
.access-map__head h3 { margin: 0; color: var(--access-navy); font-size: clamp(1.15rem, 2.4vw, 1.5rem); }

.access-map__canvas {
  position: relative;
  overflow: hidden;
  min-height: clamp(24rem, 45vw, 34rem);
  border: 1px solid #bdcad5;
  background: linear-gradient(rgba(11,41,72,.045) 1px, transparent 1px), linear-gradient(90deg, rgba(11,41,72,.045) 1px, transparent 1px), #edf2f5;
  background-size: 2rem 2rem;
}

.access-map__road {
  position: absolute;
  z-index: 1;
  display: block;
  background: #d0d9e1;
  box-shadow: inset 0 0 0 1px rgba(11,41,72,.1);
}
.access-map__road::after { position: absolute; content: ""; }
.access-map__road--horizontal { top: 43%; right: -2rem; left: -2rem; height: 5.3rem; transform: rotate(-5deg); }
.access-map__road--horizontal::after { top: 50%; right: 0; left: 0; border-top: 1px dashed rgba(11,41,72,.34); }
.access-map__road--vertical { top: -2rem; bottom: -2rem; left: 29%; width: 4.2rem; transform: rotate(3deg); }
.access-map__road--vertical::after { top: 0; bottom: 0; left: 50%; border-left: 1px dashed rgba(11,41,72,.34); }

.access-map__road-name { position: absolute; z-index: 2; color: #697887; font-size: .66rem; letter-spacing: .08em; }
.access-map__road-name--horizontal { top: 44%; right: 1rem; transform: rotate(-5deg); }
.access-map__road-name--vertical { top: 1rem; left: calc(29% + .6rem); writing-mode: vertical-rl; }

.access-map__block { position: absolute; z-index: 0; display: block; border: 1px solid rgba(11,41,72,.1); background: rgba(255,255,255,.75); }
.access-map__block--one { top: 9%; right: 8%; width: 28%; height: 23%; }
.access-map__block--two { right: 12%; bottom: 8%; width: 35%; height: 24%; }
.access-map__block--three { bottom: 7%; left: 5%; width: 18%; height: 28%; }

.access-map__station,
.access-map__clinic,
.access-map__landmark { position: absolute; z-index: 4; display: grid; place-items: center; text-align: center; }

.access-map__station {
  bottom: 8%;
  left: 19%;
  width: 8.5rem;
  min-height: 6.4rem;
  padding: .75rem;
  border: 3px solid var(--access-navy);
  color: #fff;
  background: var(--access-blue);
  box-shadow: 0 12px 28px rgba(7,26,46,.22);
}
.access-map__station small,
.access-map__station em { font-size: .61rem; font-style: normal; line-height: 1.4; }
.access-map__station strong { font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif; font-size: 1.12rem; }
.access-map__station em { display: inline-block; padding: .12rem .4rem; color: var(--access-navy); background: var(--access-gold-light); }

.access-map__clinic {
  top: 15%;
  right: 12%;
  width: 10.5rem;
  min-height: 7.4rem;
  padding: 1rem;
  border: 2px solid var(--access-gold);
  color: #fff;
  background: var(--access-navy-deep);
  box-shadow: 0 16px 35px rgba(7,26,46,.24);
}
.access-map__clinic::before { position: absolute; top: -1.1rem; left: calc(50% - .5rem); color: var(--access-gold); content: "◆"; font-size: 1rem; }
.access-map__clinic small { color: var(--access-gold-light); font-size: .66rem; }
.access-map__clinic strong { font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif; font-size: 1.08rem; }

.access-map__landmark {
  top: 54%;
  right: 8%;
  width: 7rem;
  min-height: 4rem;
  padding: .55rem;
  border: 1px solid #9fadb9;
  color: #506171;
  background: #fff;
  font-size: .75rem;
  font-weight: 700;
}
.access-map__landmark small { color: #83909c; font-size: .61rem; font-weight: 500; }
.access-map__route { position: absolute; z-index: 3; right: 27%; bottom: 26%; width: 41%; height: 30%; border-top: 4px dotted var(--access-gold); border-right: 4px dotted var(--access-gold); transform: rotate(-5deg); }
.access-map__caption { margin: 1rem 0 0; color: #6e7b87; font-size: .72rem; line-height: 1.7; }

.access-details { padding: clamp(1.7rem, 4vw, 2.7rem); border-top: 5px solid var(--access-gold); color: #fff; background: var(--access-navy); }
.access-details__label { margin: 0; color: var(--access-gold-light); font-family: Georgia, serif; font-size: .72rem; letter-spacing: .18em; }
.access-details h3 { margin: .7rem 0 1.8rem; color: #fff; font-size: clamp(1.7rem, 3.3vw, 2.25rem); }
.access-details dl { margin: 0; border-top: 1px solid rgba(255,255,255,.2); }
.access-details dl > div { padding: 1.1rem 0; border-bottom: 1px solid rgba(255,255,255,.2); }
.access-details dt { margin-bottom: .35rem; color: #9eb0c0; font-size: .72rem; font-weight: 700; }
.access-details dd { margin: 0; color: #fff; font-size: .92rem; font-weight: 700; line-height: 1.8; }
.access-details dd a { color: #fff; }
.access-details dd small { display: block; color: #aebdca; font-size: .68rem; font-weight: 500; }
.access-details__notice { padding: 1rem; margin: 1.5rem 0 0; border-left: 3px solid var(--access-gold); color: #c9d5df; background: rgba(2,13,27,.35); font-size: .75rem; line-height: 1.75; }
.access-details__notice strong { display: block; margin-bottom: .3rem; color: var(--access-gold-light); }

.access-transport {
  padding-block: clamp(5rem, 9vw, 8rem);
  scroll-margin-top: 8rem;
  color: #fff;
  background: repeating-linear-gradient(135deg, transparent 0 54px, rgba(255,255,255,.022) 54px 55px), var(--access-navy-deep);
}

.access-section-heading--light h2 { margin: 0; color: #fff; font-size: clamp(2.1rem, 4.6vw, 3.5rem); font-weight: 600; line-height: 1.4; }
.access-section-heading--light > p:last-child { color: #c8d4df; }
.access-transport__grid { display: grid; gap: 1px; grid-template-columns: repeat(3, minmax(0, 1fr)); background: rgba(255,255,255,.18); }

.access-transport-card { position: relative; min-height: 31rem; padding: clamp(1.7rem, 3.5vw, 2.7rem); background: var(--access-navy); }
.access-transport-card:nth-child(2) { background: #103454; }
.access-transport-card__number { display: block; color: rgba(234,208,155,.42); font-family: Georgia, serif; font-size: .78rem; }
.access-transport-card__icon { display: grid; width: 4.5rem; height: 4.5rem; margin: 3rem 0 1.7rem; border: 1px solid var(--access-gold); place-items: center; color: var(--access-gold-light); font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif; font-size: 1.25rem; }
.access-transport-card h3 { margin: 0; color: #fff; font-size: 1.35rem; }
.access-transport-card__summary { padding-bottom: 1.25rem; margin: 1rem 0 1.4rem; border-bottom: 1px solid rgba(255,255,255,.18); color: #b7c7d5; font-size: .82rem; line-height: 1.7; }
.access-transport-card__summary strong { color: var(--access-gold-light); font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif; font-size: 1.2rem; }
.access-transport-card ul { display: grid; padding: 0; margin: 0; gap: .8rem; list-style: none; }
.access-transport-card li { position: relative; padding-left: 1rem; color: #c8d5e0; font-size: .8rem; line-height: 1.7; }
.access-transport-card li::before { position: absolute; top: .7rem; left: 0; width: .3rem; height: .3rem; border-radius: 50%; background: var(--access-gold); content: ""; }

.access-walk { background: var(--access-paper); }
.access-walk__layout { display: grid; align-items: start; gap: clamp(3rem, 8vw, 8rem); grid-template-columns: minmax(16rem, .72fr) minmax(0, 1.28fr); }
.access-walk__heading { position: sticky; top: 9rem; }
.access-walk__heading .access-tag { margin-top: 1.5rem; }
.access-walk__steps { display: grid; padding: 0; margin: 0; gap: 1rem; list-style: none; }
.access-walk__steps li { display: grid; min-height: 15rem; padding: clamp(1.5rem, 3.5vw, 2.4rem); border: 1px solid #c7d2dc; border-left: 5px solid var(--access-navy); gap: clamp(1.2rem, 3vw, 2rem); grid-template-columns: auto 1fr; background: #fff; }
.access-walk__steps li:nth-child(2) { border-left-color: var(--access-blue); }
.access-walk__steps li:nth-child(3) { border-left-color: var(--access-gold); }
.access-walk__number { color: var(--access-gold); font-family: Georgia, serif; font-size: .82rem; }
.access-walk__steps h3 { margin: 0; color: var(--access-navy); font-size: 1.3rem; }
.access-walk__steps p { margin: .8rem 0 1.2rem; color: #586978; font-size: .9rem; line-height: 1.9; }
.access-walk__photo { display: flex; min-height: 3.2rem; padding: .7rem 1rem; align-items: center; border: 1px dashed #9babb9; color: #637687; background: repeating-linear-gradient(135deg, rgba(11,41,72,.035) 0 9px, transparent 9px 18px), var(--access-paper); font-size: .74rem; font-weight: 700; }

.access-landmark { scroll-margin-top: 8rem; background: #fff; }
.access-landmark__grid { display: grid; gap: 1.2rem; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.access-landmark__grid figure { margin: 0; }
.access-photo-placeholder { display: grid; min-height: 22rem; padding: 2rem; align-content: center; border: 1px solid #c4d0da; color: var(--access-navy); background: linear-gradient(150deg, rgba(255,255,255,.85), rgba(232,238,243,.85)), repeating-linear-gradient(135deg, transparent 0 20px, rgba(11,41,72,.055) 20px 21px); text-align: center; }
.access-photo-placeholder span,
.access-photo-placeholder strong,
.access-photo-placeholder small { display: block; }
.access-photo-placeholder span { margin-bottom: 3.6rem; color: var(--access-gold); font-family: Georgia, serif; font-size: .72rem; letter-spacing: .16em; }
.access-photo-placeholder strong { font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif; font-size: 1.25rem; }
.access-photo-placeholder small { margin-top: .5rem; color: #748392; font-size: .72rem; line-height: 1.6; }
.access-landmark__grid figcaption { display: grid; min-height: 6.5rem; padding: 1.2rem; border: 1px solid #c4d0da; border-top: 0; align-items: center; gap: .9rem; grid-template-columns: auto 1fr; }
.access-landmark__grid figcaption > span { color: var(--access-gold); font-family: Georgia, serif; font-size: .8rem; }
.access-landmark__grid figcaption strong,
.access-landmark__grid figcaption small { display: block; }
.access-landmark__grid figcaption strong { color: var(--access-navy); }
.access-landmark__grid figcaption small { margin-top: .2rem; color: #71808e; font-size: .7rem; line-height: 1.55; }
.access-landmark__note { display: grid; max-width: 56rem; padding: 1.15rem 1.4rem; margin: 2.2rem auto 0; border-left: 4px solid var(--access-gold); gap: .6rem 1rem; grid-template-columns: auto 1fr; background: #fff8e9; }
.access-landmark__note strong { color: var(--access-navy); font-size: .82rem; }
.access-landmark__note p { margin: 0; color: #5b6875; font-size: .8rem; line-height: 1.75; }

.access-hours { scroll-margin-top: 8rem; background: var(--access-paper); }
.access-hours__layout { display: grid; align-items: stretch; gap: clamp(2rem, 5vw, 4rem); grid-template-columns: minmax(0, 1.12fr) minmax(20rem, .88fr); }
.access-hours__table-wrap { margin-top: 2.3rem; overflow-x: auto; border-top: 5px solid var(--access-navy); box-shadow: 0 16px 38px rgba(6,24,45,.08); }
.access-hours table { width: 100%; border-collapse: collapse; background: #fff; }
.access-hours caption { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.access-hours th,
.access-hours td { min-width: 7rem; padding: 1.25rem 1rem; border-right: 1px solid var(--access-line); border-bottom: 1px solid var(--access-line); text-align: center; }
.access-hours thead th { color: #fff; background: var(--access-navy); font-size: .78rem; }
.access-hours tbody th { color: var(--access-navy); background: #e5ecf2; font-size: .85rem; }
.access-hours td { color: #364b5e; font-size: .86rem; font-weight: 700; }
.access-hours__caption { margin: .9rem 0 0; color: #6b7986; font-size: .72rem; line-height: 1.7; }

.access-before-visit { padding: clamp(1.7rem, 4vw, 2.7rem); border-top: 5px solid var(--access-gold); color: #fff; background: var(--access-navy); }
.access-before-visit__label { margin: 0; color: var(--access-gold-light); font-family: Georgia, serif; font-size: .72rem; letter-spacing: .17em; }
.access-before-visit h3 { margin: .7rem 0 1.7rem; color: #fff; font-size: clamp(1.5rem, 3vw, 2rem); line-height: 1.5; }
.access-before-visit ul { padding: 0; margin: 0; border-top: 1px solid rgba(255,255,255,.2); list-style: none; }
.access-before-visit li { display: grid; padding: 1rem 0; border-bottom: 1px solid rgba(255,255,255,.2); gap: .85rem; grid-template-columns: auto 1fr; }
.access-before-visit li > span { color: var(--access-gold-light); font-family: Georgia, serif; font-size: .72rem; }
.access-before-visit li strong,
.access-before-visit li small { display: block; }
.access-before-visit li strong { color: #fff; font-size: .86rem; line-height: 1.6; }
.access-before-visit li small { margin-top: .25rem; color: #aebdca; font-size: .7rem; line-height: 1.55; }
.access-before-visit__phone { display: grid; padding: 1rem 1.2rem; margin-top: 1.7rem; border: 1px solid rgba(255,255,255,.36); color: #fff; text-decoration: none; }
.access-before-visit__phone span,
.access-before-visit__phone small { color: #b8c7d4; font-size: .7rem; }
.access-before-visit__phone strong { margin-block: .15rem; color: #fff; font-family: Georgia, serif; font-size: 1.55rem; letter-spacing: .04em; }

.access-facilities { background: #fff; }
.access-facilities__list { display: grid; margin: 0; border-top: 1px solid var(--access-line); border-left: 1px solid var(--access-line); grid-template-columns: repeat(2, minmax(0, 1fr)); }
.access-facilities__list > div { display: grid; min-height: 10rem; padding: clamp(1.3rem, 3vw, 2rem); border-right: 1px solid var(--access-line); border-bottom: 1px solid var(--access-line); align-items: start; gap: 1.2rem; grid-template-columns: 6rem 1fr; }
.access-facilities__list dt { color: var(--access-gold); font-size: .78rem; font-weight: 700; }
.access-facilities__list dd { margin: 0; }
.access-facilities__list dd strong,
.access-facilities__list dd span { display: block; }
.access-facilities__list dd strong { color: var(--access-navy); font-size: 1rem; }
.access-facilities__list dd span { margin-top: .45rem; color: #6a7885; font-size: .76rem; line-height: 1.65; }

.access-reservation { background: linear-gradient(120deg, rgba(7,26,46,.99), rgba(11,41,72,.96)); }
.access-reservation__phone { display: grid; min-width: min(100%, 21rem); padding: 1rem 1.35rem; border: 1px solid rgba(255,255,255,.42); color: #fff; text-decoration: none; }
.access-reservation__phone span,
.access-reservation__phone small { font-size: .75rem; }
.access-reservation__phone strong { font-family: Georgia, serif; font-size: 1.65rem; letter-spacing: .04em; }

@media (max-width: 64rem) {
  .access-hero__inner,
  .access-location__layout,
  .access-walk__layout,
  .access-hours__layout { grid-template-columns: 1fr; }
  .access-hero__inner { min-height: auto; }
  .access-arrival-card,
  .access-map,
  .access-details,
  .access-before-visit { width: min(100%, 48rem); }
  .access-walk__heading { position: static; max-width: 43rem; }
}

@media (max-width: 52rem) {
  .access-transport__grid,
  .access-landmark__grid { grid-template-columns: 1fr; }
  .access-transport-card { min-height: auto; }
  .access-transport-card__icon { margin-top: 2rem; }
  .access-photo-placeholder { min-height: 17rem; }
}

@media (max-width: 40rem) {
  .access-hero__inner { padding-block: 3.7rem 4.5rem; }
  .access-hero__copy h1 { font-size: clamp(2.35rem, 12vw, 3.2rem); }
  .access-hero__statement { font-size: 1.25rem; }
  .access-hero__statement br { display: none; }
  .access-hero__facts { grid-template-columns: 1fr; }
  .access-hero__facts div { display: grid; align-items: center; gap: 1rem; grid-template-columns: 5rem 1fr; }
  .access-hero__facts div + div { border-top: 1px solid rgba(255,255,255,.22); border-left: 0; }
  .access-hero__facts dt { margin: 0; }
  .access-arrival-card__status { position: static; margin-top: .8rem; }
  .access-arrival-card__address { padding-top: 1.5rem; }
  .access-arrival-card__nav { grid-template-columns: 1fr; }
  .access-arrival-card__nav a:nth-child(odd) { border-right: 0; }
  .access-section-heading h2,
  .access-section-heading--light h2,
  .access-walk__heading h2,
  .access-hours__schedule h2 { font-size: clamp(1.8rem, 8.5vw, 2.4rem); }
  .access-map { padding: .8rem; }
  .access-map__head { display: grid; }
  .access-map__head .access-tag { width: max-content; }
  .access-map__canvas { min-height: 28rem; }
  .access-map__station { bottom: 7%; left: 7%; }
  .access-map__clinic { top: 12%; right: 5%; }
  .access-map__landmark { right: 4%; }
  .access-map__route { right: 29%; bottom: 25%; width: 45%; }
  .access-walk__steps li { grid-template-columns: 1fr; }
  .access-landmark__note { grid-template-columns: 1fr; }
  .access-hours th,
  .access-hours td { min-width: 6.2rem; padding: 1rem .6rem; }
  .access-facilities__list { grid-template-columns: 1fr; }
  .access-facilities__list > div { min-height: auto; gap: .5rem; grid-template-columns: 1fr; }
  .access-reservation__phone { min-width: 100%; }
}

/* Chronic lower-back-pain page */
.lower-back-page {
  overflow-x: hidden;
  color: var(--ink-navy);
  background: #f4f7f9;
}

.lower-back-page main {
  overflow: hidden;
}

.lower-back-page section[id] {
  scroll-margin-top: calc(var(--fixed-header-height) + 1rem);
}

.lower-back-page .lbp-hero {
  background: var(--navy-950);
}

.lower-back-page .lbp-breadcrumb {
  border-top: 1px solid rgba(255, 255, 255, 0.12);
  color: #bfccd8;
  background: var(--navy-950);
}

.lower-back-page .lbp-breadcrumb a {
  color: #fff;
}

.lbp-index {
  border-bottom: 1px solid #d5dee6;
  background: #fff;
}

.lbp-index .l-container {
  display: flex;
  align-items: center;
  gap: 2.5rem;
  padding-block: 1.25rem;
}

.lbp-index p {
  flex: 0 0 auto;
  margin: 0;
  color: var(--navy-900);
  font-family: "Yu Mincho", "YuMincho", serif;
  font-weight: 700;
}

.lbp-index ul {
  display: flex;
  flex: 1;
  justify-content: flex-end;
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
}

.lbp-index li {
  border-left: 1px solid #d5dee6;
}

.lbp-index li:last-child {
  border-right: 1px solid #d5dee6;
}

.lbp-index a {
  display: block;
  padding: 0.35rem 1.15rem;
  color: var(--navy-800);
  font-size: 0.9rem;
  font-weight: 700;
  text-decoration: none;
}

.lbp-index a:hover {
  color: var(--gold-500);
}

.lbp-kicker {
  margin: 0 0 1rem;
  color: var(--gold-500);
  font-family: "Yu Gothic", "YuGothic", sans-serif;
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.2em;
}

.lbp-heading {
  max-width: 54rem;
  margin-bottom: clamp(2.8rem, 6vw, 5rem);
}

.lbp-heading--center {
  margin-inline: auto;
  text-align: center;
}

.lbp-heading h2,
.lbp-concerns h2,
.lbp-gentle h2,
.lbp-goal h2,
.lbp-care h2,
.lbp-medical h2,
.lbp-fee h2,
.lbp-faq h2,
.lbp-message h2 {
  margin: 0;
  color: var(--navy-950);
  font-size: clamp(2.15rem, 4.3vw, 3.8rem);
  line-height: 1.35;
  letter-spacing: 0.03em;
}

.lbp-heading > p:last-child,
.lbp-concerns__copy > p,
.lbp-gentle__copy > p,
.lbp-goal__copy > p,
.lbp-care__intro > p,
.lbp-medical p,
.lbp-fee p,
.lbp-faq__heading p,
.lbp-message__copy > p {
  font-size: 1.05rem;
  line-height: 2;
}

.lbp-heading h2 + p,
.lbp-goal h2 + p,
.lbp-care h2 + p,
.lbp-fee h2 + p,
.lbp-faq h2 + p,
.lbp-message h2 + p {
  margin-top: 1.8rem;
}

.lbp-heading--light h2,
.lbp-heading--light > p:last-child {
  color: #fff;
}

.lbp-photo,
.lbp-wide-photo {
  position: relative;
  overflow: hidden;
  margin: 0;
  box-shadow: 0 24px 55px rgba(6, 24, 45, 0.2);
}

.lbp-photo > img,
.lbp-wide-photo > img {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.lbp-photo figcaption,
.lbp-wide-photo figcaption {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  padding: 0.9rem 1.1rem;
  color: #fff;
  background: rgba(6, 24, 45, 0.88);
  font-size: 0.82rem;
}

.lbp-photo figcaption small,
.lbp-wide-photo figcaption small {
  display: block;
  margin-top: 0.15rem;
  color: #c2cfda;
}

.lbp-concerns {
  padding-block: clamp(5rem, 10vw, 8.5rem);
  background: linear-gradient(135deg, #fff 0 72%, #eef3f7 72% 100%);
}

.lbp-concerns__layout {
  display: grid;
  align-items: stretch;
  column-gap: clamp(3rem, 7vw, 7rem);
  row-gap: clamp(2rem, 4vw, 3.5rem);
  grid-template-columns: minmax(0, 1.05fr) minmax(22rem, 0.8fr);
}

.lbp-check-list {
  display: grid;
  gap: 0;
  margin: 2.3rem 0 0;
  padding: 0;
  list-style: none;
}

.lbp-check-list li {
  position: relative;
  padding: 1.15rem 0 1.15rem 2.3rem;
  border-bottom: 1px solid #d7e0e7;
  font-size: 1rem;
  line-height: 1.75;
}

.lbp-check-list li::before {
  position: absolute;
  top: 1.25rem;
  left: 0;
  width: 1.25rem;
  height: 1.25rem;
  border: 1px solid var(--gold-500);
  color: var(--gold-500);
  content: "✓";
  font-size: 0.82rem;
  font-weight: 900;
  line-height: 1.1rem;
  text-align: center;
}

.lbp-concerns__answer {
  order: 3;
  margin-top: 0;
  padding: clamp(2rem, 5vw, 3.5rem);
  border-left: 5px solid var(--gold-500);
  color: #dce6ef;
  background: var(--navy-950);
  box-shadow: 0 18px 42px rgba(6, 24, 45, 0.16);
  grid-column: 1 / -1;
}

.lbp-concerns__answer .lbp-concerns__answer-label {
  margin: 0 0 0.7rem;
  color: var(--gold-300);
  font-size: 0.82rem;
  font-weight: 800;
  letter-spacing: 0.06em;
}

.lbp-concerns__answer h3 {
  margin: 0;
  color: #fff;
  font-family: "Yu Mincho", "YuMincho", serif;
  font-size: clamp(1.85rem, 3.5vw, 3rem);
  line-height: 1.5;
}

.lbp-concerns__answer h3 em {
  color: var(--gold-300);
  font-style: normal;
}

.lbp-concerns__answer > p:not(.lbp-concerns__answer-label) {
  max-width: 55rem;
  margin: 1.15rem 0 0;
  color: #d4e0e9;
  line-height: 1.9;
}

.lbp-concerns__answer ul {
  display: grid;
  gap: 0;
  margin: 1.45rem 0 0;
  padding: 0;
  border-top: 1px solid rgba(255, 255, 255, 0.15);
  list-style: none;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.lbp-concerns__answer li {
  display: grid;
  gap: 0.15rem;
  padding: 1rem clamp(1rem, 3vw, 2rem);
  border-bottom: 1px solid rgba(255, 255, 255, 0.15);
  border-left: 1px solid rgba(255, 255, 255, 0.15);
}

.lbp-concerns__answer li:first-child {
  padding-left: 0;
  border-left: 0;
}

.lbp-concerns__answer li strong {
  color: #fff;
  font-size: 0.92rem;
}

.lbp-concerns__answer li span {
  color: #afbfcc;
  font-size: 0.82rem;
  line-height: 1.55;
}

.lbp-concerns__answer small {
  display: block;
  margin-top: 1.2rem;
  color: #93a7b7;
  font-size: 0.72rem;
  line-height: 1.7;
}

.lbp-photo--concern {
  min-height: 35rem;
}

.lbp-understanding {
  position: relative;
  padding-block: clamp(5.5rem, 11vw, 9rem);
  color: #dce6ef;
  background: var(--navy-950);
}

.lbp-understanding::before {
  position: absolute;
  top: -18rem;
  right: -16rem;
  width: 40rem;
  height: 40rem;
  border: 1px solid rgba(231, 199, 140, 0.18);
  content: "";
  transform: rotate(32deg);
}

.lbp-understanding .l-container {
  position: relative;
}

.lbp-factor-map {
  display: grid;
  align-items: stretch;
  max-width: 66rem;
  margin-inline: auto;
  grid-template-columns: minmax(13rem, 0.72fr) minmax(0, 1.6fr);
}

.lbp-factor-map__center {
  display: grid;
  place-content: center;
  min-height: 21rem;
  padding: 2.5rem;
  border: 1px solid var(--gold-500);
  text-align: center;
  background: rgba(255, 255, 255, 0.035);
}

.lbp-factor-map__center span {
  color: var(--gold-300);
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.2em;
}

.lbp-factor-map__center strong {
  margin-top: 0.8rem;
  color: #fff;
  font-family: "Yu Mincho", "YuMincho", serif;
  font-size: 1.75rem;
  line-height: 1.55;
}

.lbp-factor-map ul {
  display: grid;
  margin: 0;
  padding: 0;
  list-style: none;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.lbp-factor-map li {
  display: grid;
  align-content: center;
  min-height: 10.5rem;
  padding: 1.8rem 2rem;
  border-top: 1px solid rgba(255, 255, 255, 0.18);
  border-right: 1px solid rgba(255, 255, 255, 0.18);
  background: rgba(255, 255, 255, 0.055);
}

.lbp-factor-map li span {
  color: var(--gold-300);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.16em;
}

.lbp-factor-map li strong {
  margin-top: 0.55rem;
  color: #fff;
  font-family: "Yu Mincho", "YuMincho", serif;
  font-size: 1.25rem;
}

.lbp-factor-map li small {
  margin-top: 0.3rem;
  color: #b9c8d5;
  font-size: 0.86rem;
}

.lbp-understanding__note {
  max-width: 52rem;
  margin: 2.6rem auto 0;
  color: #c4d1dc;
  line-height: 1.9;
  text-align: center;
}

.lbp-approach {
  padding-block: clamp(5.5rem, 11vw, 9rem);
  background: #fff;
}

.lbp-approach__steps {
  display: grid;
  gap: 1.25rem;
  margin: 0 0 4rem;
  padding: 0;
  list-style: none;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.lbp-approach__steps li {
  position: relative;
  min-height: 18rem;
  padding: 2.2rem 2rem 2rem;
  border-top: 5px solid var(--navy-900);
  background: #edf2f6;
}

.lbp-step-number {
  display: block;
  margin-bottom: 2.4rem;
  color: var(--gold-500);
  font-size: 0.78rem;
  font-weight: 900;
  letter-spacing: 0.2em;
}

.lbp-approach__steps h3 {
  margin: 0;
  color: var(--navy-950);
  font-size: 1.35rem;
}

.lbp-approach__steps p {
  margin: 1rem 0 0;
  color: #4d5f6f;
  line-height: 1.85;
}

.lbp-wide-photo {
  min-height: clamp(25rem, 48vw, 39rem);
}

.lbp-wide-photo img {
  object-position: center 42%;
}

.lbp-gentle {
  padding-block: clamp(5rem, 10vw, 8rem);
  color: #dce6ef;
  background: linear-gradient(120deg, var(--navy-950) 0 67%, #0d2d4b 67% 100%);
}

.lbp-gentle__layout {
  display: grid;
  align-items: center;
  gap: clamp(3rem, 7vw, 7rem);
  grid-template-columns: minmax(22rem, 0.88fr) minmax(0, 1fr);
}

.lbp-photo--treatment {
  min-height: 37rem;
}

.lbp-gentle h2,
.lbp-gentle__copy > p {
  color: #fff;
}

.lbp-gentle .lbp-lead {
  margin: 1.8rem 0 1rem;
  color: var(--gold-300);
  font-family: "Yu Mincho", "YuMincho", serif;
  font-size: 1.35rem;
  font-weight: 700;
  line-height: 1.8;
}

.lbp-gentle__facts {
  display: grid;
  margin: 2.4rem 0 0;
  border-top: 1px solid rgba(255, 255, 255, 0.18);
}

.lbp-gentle__facts > div {
  display: grid;
  padding: 1rem 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.18);
  grid-template-columns: 6rem 1fr;
}

.lbp-gentle__facts dt {
  color: var(--gold-300);
  font-size: 0.84rem;
  font-weight: 800;
}

.lbp-gentle__facts dd {
  margin: 0;
  color: #fff;
  font-weight: 700;
}

.lbp-gentle .lbp-gentle__caution {
  margin-top: 1.4rem;
  color: #aebdca;
  font-size: 0.82rem;
  line-height: 1.75;
}

.lbp-goal {
  padding-block: clamp(5rem, 10vw, 8rem);
  background: #edf2f6;
}

.lbp-goal__layout {
  display: grid;
  align-items: center;
  gap: clamp(3rem, 7vw, 7rem);
  grid-template-columns: minmax(0, 1fr) minmax(22rem, 0.9fr);
}

.lbp-goal__copy ul {
  display: grid;
  gap: 0.75rem;
  margin: 2rem 0 0;
  padding: 0;
  list-style: none;
}

.lbp-goal__copy li {
  position: relative;
  padding-left: 1.65rem;
  color: var(--navy-800);
  font-weight: 700;
}

.lbp-goal__copy li::before {
  position: absolute;
  top: 0.55rem;
  left: 0;
  width: 0.55rem;
  height: 0.55rem;
  background: var(--gold-500);
  content: "";
  transform: rotate(45deg);
}

.lbp-goal .lbp-photo {
  min-height: 33rem;
}

.lbp-plan {
  padding-block: clamp(5.5rem, 11vw, 9rem);
  background: #fff;
}

.lbp-plan__grid {
  display: grid;
  gap: 1.2rem;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.lbp-plan__grid article {
  display: flex;
  flex-direction: column;
  min-height: 40rem;
  padding: clamp(1.5rem, 2.5vw, 2.1rem);
  border: 1px solid #d5dee6;
  border-top: 4px solid var(--gold-500);
  background: #fff;
  box-shadow: 0 12px 34px rgba(6, 24, 45, 0.07);
}

.lbp-plan__grid .lbp-plan__level {
  color: var(--gold-500);
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.18em;
}

.lbp-plan__grid h3 {
  margin: 1.3rem 0 0;
  color: var(--navy-950);
  font-size: 1.25rem;
}

.lbp-plan__grid p {
  margin: 1rem 0 0;
  color: #536474;
  line-height: 1.85;
}

.lbp-plan__grid .lbp-plan__count {
  display: flex;
  align-items: baseline;
  gap: 0.35rem;
  margin-top: 1.3rem;
  padding-bottom: 0.65rem;
  border-bottom: 1px solid #d8e0e7;
  color: var(--navy-950);
  line-height: 1;
}

.lbp-plan__count strong {
  font-family: "Yu Mincho", "YuMincho", serif;
  font-size: clamp(2.8rem, 4.5vw, 4rem);
  font-weight: 700;
  letter-spacing: -0.04em;
}

.lbp-plan__count span {
  color: var(--navy-800);
  font-size: 1rem;
  font-weight: 800;
}

.lbp-plan__grid .lbp-plan__period {
  margin-top: 0.8rem;
  color: var(--navy-700);
  font-size: 0.82rem;
  font-weight: 800;
  line-height: 1.6;
}

.lbp-plan__case {
  margin-top: auto;
  padding: 1.35rem;
  border: 1px solid #dbe3ea;
  background: #edf2f6;
}

.lbp-plan__case > span {
  color: var(--gold-600);
  font-size: 0.68rem;
  font-weight: 900;
  letter-spacing: 0.14em;
}

.lbp-plan__case h4 {
  margin: 0.55rem 0 0;
  color: var(--navy-950);
  font-size: 0.98rem;
  line-height: 1.65;
}

.lbp-plan__case p {
  margin-top: 0.65rem;
  font-size: 0.84rem;
  line-height: 1.75;
}

.lbp-plan__draft-note {
  max-width: 66rem;
  margin: 1.4rem auto 0;
  color: #758593;
  font-size: 0.76rem;
  line-height: 1.75;
  text-align: center;
}

.lbp-plan__promise {
  display: flex;
  justify-content: center;
  gap: 1.5rem;
  margin-top: 2rem;
  padding: 1.35rem 1.5rem;
  color: #fff;
  background: var(--navy-900);
  text-align: center;
}

.lbp-plan__promise span {
  color: #c6d2dd;
}

.lbp-evidence {
  position: relative;
  overflow: hidden;
  padding-block: clamp(5.5rem, 11vw, 9rem);
  background: #edf2f6;
}

.lbp-evidence::before {
  position: absolute;
  top: -13rem;
  right: -12rem;
  width: 32rem;
  height: 32rem;
  border: 1px solid rgba(10, 42, 73, 0.12);
  content: "";
  transform: rotate(32deg);
}

.lbp-evidence .l-container {
  position: relative;
}

.lbp-evidence__grid {
  display: grid;
  gap: 1.5rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.lbp-evidence__grid article {
  display: flex;
  flex-direction: column;
  padding: clamp(2rem, 4vw, 3rem);
  border-top: 5px solid var(--gold-500);
  background: #fff;
  box-shadow: 0 16px 42px rgba(6, 24, 45, 0.08);
}

.lbp-evidence__meta {
  display: flex;
  align-items: center;
  gap: 0.8rem;
}

.lbp-evidence__meta span {
  color: var(--gold-600);
  font-size: 0.7rem;
  font-weight: 900;
  letter-spacing: 0.16em;
}

.lbp-evidence__meta strong {
  padding-left: 0.8rem;
  border-left: 1px solid #ccd7df;
  color: #70808e;
  font-size: 0.75rem;
}

.lbp-evidence__grid h3 {
  margin: 1.4rem 0 0;
  color: var(--navy-950);
  font-family: "Yu Mincho", "YuMincho", serif;
  font-size: clamp(1.35rem, 2.4vw, 1.8rem);
  line-height: 1.65;
}

.lbp-evidence__citation {
  margin: 1rem 0 0;
  color: #71808d;
  font-size: 0.8rem;
  line-height: 1.7;
}

.lbp-evidence__grid dl {
  display: grid;
  margin: 1.6rem 0 2rem;
  border-top: 1px solid #d9e1e7;
}

.lbp-evidence__grid dl > div {
  display: grid;
  gap: 1rem;
  padding: 1rem 0;
  border-bottom: 1px solid #d9e1e7;
  grid-template-columns: 4rem 1fr;
}

.lbp-evidence__grid dt {
  color: var(--navy-800);
  font-size: 0.82rem;
  font-weight: 900;
}

.lbp-evidence__grid dd {
  margin: 0;
  color: #4e6070;
  font-size: 0.92rem;
  line-height: 1.8;
}

.lbp-evidence__grid article > a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: auto;
  padding-top: 1rem;
  border-top: 1px solid var(--navy-950);
  color: var(--navy-950);
  font-size: 0.88rem;
  font-weight: 800;
  text-decoration: none;
}

.lbp-evidence__grid article > a:hover {
  color: var(--gold-600);
}

.lbp-evidence__scope {
  max-width: 66rem;
  margin: 2rem auto 0;
  padding: clamp(1.7rem, 4vw, 2.5rem);
  color: #dce6ef;
  background: var(--navy-950);
}

.lbp-evidence__scope h3 {
  margin: 0;
  color: var(--gold-300);
  font-family: "Yu Mincho", "YuMincho", serif;
  font-size: 1.35rem;
}

.lbp-evidence__scope p {
  margin: 1rem 0 0;
  color: #c4d1dc;
  line-height: 1.85;
}

.lbp-evidence__scope strong {
  color: #fff;
}

.lbp-stories {
  padding-block: clamp(5.5rem, 11vw, 9rem);
  color: #dce6ef;
  background: var(--navy-950);
}

.lbp-stories__grid {
  display: grid;
  gap: 1.5rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.lbp-stories__grid article {
  padding: clamp(2rem, 4vw, 3.5rem);
  border: 1px solid rgba(231, 199, 140, 0.45);
  background: rgba(255, 255, 255, 0.045);
}

.lbp-stories__meta {
  margin: 0;
  color: var(--gold-300);
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.08em;
}

.lbp-stories__grid h3 {
  margin: 1rem 0 0;
  color: #fff;
  font-size: 1.45rem;
  line-height: 1.65;
}

.lbp-stories__grid h3 + p {
  margin: 1.4rem 0 0;
  color: #c8d4df;
  line-height: 2;
}

.lbp-stories__disclaimer {
  margin: 1.5rem 0 0;
  color: #9fb0bf;
  font-size: 0.8rem;
  line-height: 1.7;
}

.lbp-care {
  padding-block: clamp(5.5rem, 11vw, 9rem);
  background: #eef3f7;
}

.lbp-care__layout {
  display: grid;
  align-items: start;
  gap: clamp(3rem, 7vw, 7rem);
  grid-template-columns: minmax(18rem, 0.75fr) minmax(0, 1.25fr);
}

.lbp-care__items {
  display: grid;
}

.lbp-care__items article {
  display: grid;
  gap: 1.4rem;
  padding: 1.7rem 0;
  border-bottom: 1px solid #cbd6df;
  grid-template-columns: 3.2rem 1fr;
}

.lbp-care__items article:first-child {
  border-top: 1px solid #cbd6df;
}

.lbp-care__items article > span {
  color: var(--gold-500);
  font-size: 0.78rem;
  font-weight: 900;
  letter-spacing: 0.15em;
}

.lbp-care__items h3 {
  margin: 0;
  color: var(--navy-950);
  font-size: 1.2rem;
}

.lbp-care__items p {
  margin: 0.7rem 0 0;
  color: #526273;
  line-height: 1.85;
}

.lbp-medical {
  padding-block: clamp(4.5rem, 8vw, 6.5rem);
  color: #fff;
  background: #491e21;
}

.lbp-medical__layout {
  display: grid;
  align-items: start;
  gap: 2.5rem;
  grid-template-columns: 5.5rem 1fr;
}

.lbp-medical__mark {
  display: grid;
  place-content: center;
  width: 5.5rem;
  height: 5.5rem;
  border: 2px solid #f0c278;
  border-radius: 50%;
  color: #f0c278;
  font-family: Georgia, serif;
  font-size: 3rem;
}

.lbp-medical h2 {
  color: #fff;
  font-size: clamp(1.9rem, 3.6vw, 3rem);
}

.lbp-medical ul {
  display: grid;
  gap: 0.7rem;
  margin: 2rem 0 1.5rem;
  padding-left: 1.4rem;
}

.lbp-medical li {
  line-height: 1.75;
}

.lbp-medical p:last-child {
  margin: 0;
  color: #eadcdd;
  font-size: 0.92rem;
  line-height: 1.8;
}

.lbp-fee {
  padding-block: clamp(4rem, 8vw, 6rem);
  background: #fff;
}

.lbp-fee__layout {
  display: grid;
  align-items: center;
  gap: 4rem;
  grid-template-columns: 1fr auto;
}

.lbp-fee h2 {
  font-size: clamp(2rem, 3.8vw, 3.25rem);
}

.lbp-fee p:last-child {
  max-width: 47rem;
  margin-bottom: 0;
}

.lbp-text-link {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  min-width: 21rem;
  padding: 1.3rem 1.5rem;
  border: 1px solid var(--gold-500);
  color: var(--navy-950);
  font-weight: 800;
  text-decoration: none;
}

.lbp-text-link span {
  color: var(--gold-500);
  font-size: 1.3rem;
}

.lbp-text-link:hover {
  color: #fff;
  background: var(--navy-900);
}

.lbp-faq {
  padding-block: clamp(5.5rem, 11vw, 9rem);
  background: #edf2f6;
}

.lbp-faq__layout {
  display: grid;
  align-items: start;
  gap: clamp(3rem, 7vw, 7rem);
  grid-template-columns: minmax(18rem, 0.7fr) minmax(0, 1.3fr);
}

.lbp-faq__heading {
  position: sticky;
  top: calc(var(--fixed-header-height) + 2rem);
}

.lbp-faq__list {
  border-top: 1px solid #cbd6df;
}

.lbp-faq__list details {
  border-bottom: 1px solid #cbd6df;
}

.lbp-faq__list summary {
  display: grid;
  align-items: center;
  gap: 1rem;
  padding: 1.45rem 2.8rem 1.45rem 0;
  color: var(--navy-950);
  cursor: pointer;
  font-weight: 800;
  line-height: 1.6;
  list-style: none;
  grid-template-columns: 2rem 1fr;
}

.lbp-faq__list summary::-webkit-details-marker {
  display: none;
}

.lbp-faq__list summary span {
  color: var(--gold-500);
  font-family: Georgia, serif;
  font-size: 1.45rem;
}

.lbp-faq__list summary::after {
  position: absolute;
  right: 0;
  color: var(--gold-500);
  content: "+";
  font-size: 1.5rem;
  font-weight: 400;
}

.lbp-faq__list details[open] summary::after {
  content: "−";
}

.lbp-faq__list details > div {
  padding: 0 2.5rem 1.5rem 3rem;
}

.lbp-faq__list details p {
  margin: 0;
  color: #536474;
  line-height: 1.9;
}

.lbp-message {
  padding-block: clamp(5.5rem, 11vw, 9rem);
  color: #dce6ef;
  background: var(--navy-950);
}

.lbp-message__layout {
  display: grid;
  align-items: center;
  gap: clamp(3rem, 7vw, 7rem);
  grid-template-columns: minmax(19rem, 0.7fr) minmax(0, 1.15fr);
}

.lbp-photo--director {
  min-height: 42rem;
}

.lbp-photo--director img {
  object-position: center 15%;
}

.lbp-message h2,
.lbp-message__copy > p {
  color: #fff;
}

.lbp-message__copy > p {
  margin-block: 1.2rem;
}

.lbp-message__signature {
  display: grid;
  justify-content: end;
  margin-top: 2rem !important;
  text-align: right;
}

.lbp-message__signature span {
  color: #b8c7d4;
  font-size: 0.85rem;
}

.lbp-message__signature strong {
  color: var(--gold-300);
  font-family: "Yu Mincho", "YuMincho", serif;
  font-size: 1.35rem;
}

.lbp-message__signature small {
  margin-top: 0.35rem;
  color: #8fa2b2;
  font-size: 0.75rem;
}

@media (max-width: 64rem) {
  .lbp-index .l-container {
    display: block;
  }

  .lbp-index p {
    margin-bottom: 0.8rem;
  }

  .lbp-index ul {
    justify-content: flex-start;
    overflow-x: auto;
  }

  .lbp-concerns__layout,
  .lbp-gentle__layout,
  .lbp-goal__layout,
  .lbp-care__layout,
  .lbp-faq__layout,
  .lbp-message__layout {
    gap: 3.5rem;
    grid-template-columns: 1fr 1fr;
  }

  .lbp-approach__steps {
    gap: 0.8rem;
  }

  .lbp-approach__steps li {
    padding: 1.8rem 1.5rem;
  }

  .lbp-fee__layout {
    align-items: end;
    gap: 2rem;
  }

  .lbp-text-link {
    min-width: 18rem;
  }
}

@media (max-width: 48rem) {
  .lbp-index .l-container {
    padding-inline: 0;
  }

  .lbp-index p {
    padding-inline: 1rem;
  }

  .lbp-index li:first-child {
    border-left: 0;
  }

  .lbp-index a {
    white-space: nowrap;
  }

  .lbp-heading h2,
  .lbp-concerns h2,
  .lbp-gentle h2,
  .lbp-goal h2,
  .lbp-care h2,
  .lbp-message h2 {
    font-size: clamp(1.9rem, 8.5vw, 2.75rem);
  }

  .lbp-heading h2 br,
  .lbp-goal h2 br,
  .lbp-message h2 br {
    display: none;
  }

  .lbp-concerns__layout,
  .lbp-gentle__layout,
  .lbp-goal__layout,
  .lbp-care__layout,
  .lbp-faq__layout,
  .lbp-message__layout {
    grid-template-columns: 1fr;
  }

  .lbp-concerns__answer {
    margin-top: 0;
    grid-column: 1;
  }

  .lbp-concerns__answer ul {
    grid-template-columns: 1fr;
  }

  .lbp-concerns__answer li,
  .lbp-concerns__answer li:first-child {
    padding: 0.9rem 0;
    border-left: 0;
  }

  .lbp-concerns__copy,
  .lbp-gentle__copy,
  .lbp-goal__copy,
  .lbp-message__copy {
    order: 1;
  }

  .lbp-concerns .lbp-photo,
  .lbp-gentle .lbp-photo,
  .lbp-goal .lbp-photo,
  .lbp-message .lbp-photo {
    order: 2;
  }

  .lbp-photo--concern,
  .lbp-photo--treatment,
  .lbp-photo--director,
  .lbp-goal .lbp-photo {
    min-height: 30rem;
  }

  .lbp-factor-map {
    grid-template-columns: 1fr;
  }

  .lbp-factor-map__center {
    min-height: 14rem;
  }

  .lbp-approach__steps,
  .lbp-plan__grid {
    grid-template-columns: 1fr;
  }

  .lbp-approach__steps li,
  .lbp-plan__grid article {
    min-height: auto;
  }

  .lbp-step-number {
    margin-bottom: 1.2rem;
  }

  .lbp-stories__grid {
    grid-template-columns: 1fr;
  }

  .lbp-evidence__grid {
    grid-template-columns: 1fr;
  }

  .lbp-evidence__meta {
    align-items: flex-start;
    flex-direction: column;
    gap: 0.45rem;
  }

  .lbp-evidence__meta strong {
    padding-left: 0;
    border-left: 0;
  }

  .lbp-plan__promise {
    display: grid;
    gap: 0.35rem;
  }

  .lbp-medical__layout {
    gap: 1.5rem;
    grid-template-columns: 1fr;
  }

  .lbp-medical__mark {
    width: 4.2rem;
    height: 4.2rem;
    font-size: 2.2rem;
  }

  .lbp-medical h2 br {
    display: none;
  }

  .lbp-fee__layout {
    grid-template-columns: 1fr;
  }

  .lbp-text-link {
    width: 100%;
    min-width: 0;
  }

  .lbp-faq__heading {
    position: static;
  }
}

@media (max-width: 36rem) {
  .lbp-kicker {
    font-size: 0.7rem;
    letter-spacing: 0.14em;
  }

  .lbp-factor-map ul {
    grid-template-columns: 1fr;
  }

  .lbp-factor-map li {
    min-height: 8.5rem;
    border-left: 1px solid rgba(255, 255, 255, 0.18);
  }

  .lbp-wide-photo {
    min-height: 23rem;
  }

  .lbp-care__items article {
    gap: 0.75rem;
    grid-template-columns: 1fr;
  }

  .lbp-faq__list summary {
    padding-right: 2rem;
    grid-template-columns: 1.5rem 1fr;
  }

  .lbp-faq__list details > div {
    padding-left: 2.5rem;
    padding-right: 0.5rem;
  }
}

/* Lower-back case study */
.case-page {
  background: #f5f7f8;
}

.case-page .prototype-bar {
  color: #fff4d6;
  background: #6a4214;
}

.case-page .case-hero {
  padding-block: clamp(4.8rem, 10vw, 8rem);
  color: #fff;
  background:
    linear-gradient(105deg, rgba(5, 24, 43, 0.98), rgba(10, 42, 73, 0.9)),
    var(--navy-950);
}

.case-page .case-hero::after {
  top: -13rem;
  right: -9rem;
  width: 31rem;
  height: 31rem;
  border: 1px solid rgba(231, 199, 140, 0.25);
  border-radius: 0;
  background: transparent;
  transform: rotate(33deg);
}

.case-page .case-hero h1 {
  max-width: 68rem;
  color: #fff;
  font-family: "Yu Mincho", "YuMincho", serif;
  font-size: clamp(2.1rem, 4.4vw, 3.8rem);
  line-height: 1.42;
}

.case-page .case-hero .page-hero__lead {
  max-width: 46rem;
  color: #d2dee8;
}

.case-intro,
.case-section {
  padding-block: clamp(4.5rem, 9vw, 7.5rem);
  background: #fff;
}

.case-intro {
  padding-bottom: clamp(3.5rem, 7vw, 5.5rem);
}

.case-summary {
  display: grid;
  gap: clamp(2rem, 5vw, 5rem);
  margin-top: 3rem;
  padding: clamp(2rem, 5vw, 4rem);
  color: #dce6ef;
  background: var(--navy-950);
  grid-template-columns: minmax(0, 1.15fr) minmax(18rem, 0.85fr);
}

.case-summary__label,
.case-kicker {
  margin: 0 0 0.8rem;
  color: var(--gold-500);
  font-size: 0.72rem;
  font-weight: 900;
  letter-spacing: 0.18em;
}

.case-summary h2 {
  margin: 0;
  padding: 0;
  border: 0;
  color: #fff;
  font-family: "Yu Mincho", "YuMincho", serif;
  font-size: clamp(1.8rem, 3vw, 2.6rem);
}

.case-summary p:last-child {
  margin: 1.2rem 0 0;
  color: #c7d4df;
  line-height: 1.95;
}

.case-summary dl {
  margin: 0;
  border-top: 1px solid rgba(255, 255, 255, 0.18);
}

.case-summary dl > div {
  display: grid;
  gap: 0.6rem;
  padding: 1rem 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.18);
  grid-template-columns: 7rem 1fr;
}

.case-summary dt {
  color: var(--gold-300);
  font-size: 0.78rem;
  font-weight: 800;
}

.case-summary dd {
  margin: 0;
  color: #fff;
  font-size: 0.9rem;
  font-weight: 700;
  line-height: 1.65;
}

.case-index {
  position: sticky;
  z-index: 20;
  top: var(--fixed-header-height);
  border-top: 1px solid #ccd6de;
  border-bottom: 1px solid #ccd6de;
  background: rgba(245, 247, 248, 0.97);
  backdrop-filter: blur(10px);
}

.case-index .l-content {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  min-height: 4rem;
}

.case-index p {
  margin: 0;
  color: var(--navy-950);
  font-size: 0.78rem;
  font-weight: 900;
  white-space: nowrap;
}

.case-index ol {
  display: flex;
  overflow-x: auto;
  margin: 0;
  padding: 0;
  list-style: none;
  scrollbar-width: thin;
}

.case-index li {
  flex: 0 0 auto;
}

.case-index a {
  display: block;
  padding: 1.25rem 0.9rem;
  color: #526476;
  font-size: 0.78rem;
  font-weight: 800;
  text-decoration: none;
}

.case-index a:hover {
  color: var(--gold-600);
}

.case-section--tint {
  background: #edf2f6;
}

.case-section .article-body > h2,
.case-related h2 {
  margin: 0 0 1.8rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid #ccd7df;
  color: var(--navy-950);
  font-family: "Yu Mincho", "YuMincho", serif;
  font-size: clamp(1.85rem, 3.5vw, 2.8rem);
  line-height: 1.55;
}

.case-section .article-body > h3 {
  color: var(--navy-900);
}

.case-section .article-body > p {
  color: #465b6d;
  line-height: 2;
}

.case-check-list {
  margin-block: 2rem 2.8rem;
}

.case-check-list li {
  color: var(--navy-800);
  font-weight: 700;
  line-height: 1.8;
}

.case-baseline {
  display: grid;
  gap: 1rem;
  margin-top: 2rem;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.case-baseline > div {
  padding: 1.6rem;
  border-top: 4px solid var(--gold-500);
  background: #fff;
  box-shadow: 0 12px 28px rgba(6, 24, 45, 0.07);
}

.case-baseline span {
  display: block;
  color: #5a6c7b;
  font-size: 0.78rem;
  font-weight: 800;
}

.case-baseline strong {
  display: block;
  margin-top: 0.8rem;
  color: var(--navy-950);
  font-family: "Yu Mincho", "YuMincho", serif;
  font-size: clamp(2.2rem, 4vw, 3.3rem);
  line-height: 1;
}

.case-baseline strong small {
  margin-left: 0.25rem;
  font-family: sans-serif;
  font-size: 0.9rem;
}

.case-baseline p {
  margin: 0.8rem 0 0;
  color: #6b7b88;
  font-size: 0.8rem;
  line-height: 1.65;
}

.case-findings {
  display: grid;
  gap: 1px;
  margin-block: 2.5rem;
  background: #ccd7df;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.case-findings section {
  padding: clamp(1.6rem, 4vw, 2.5rem);
  background: #f4f7f9;
}

.case-findings span {
  color: var(--gold-600);
  font-size: 0.72rem;
  font-weight: 900;
  letter-spacing: 0.18em;
}

.case-findings h3 {
  margin: 1rem 0 0;
  color: var(--navy-950);
  font-size: 1.12rem;
  line-height: 1.65;
}

.case-findings p {
  margin: 0.75rem 0 0;
  color: #536677;
  font-size: 0.9rem;
  line-height: 1.85;
}

.case-section--navy {
  color: #dce6ef;
  background: var(--navy-950);
}

.case-section--navy .case-kicker {
  color: var(--gold-300);
}

.case-section--navy .article-body > h2 {
  border-color: rgba(255, 255, 255, 0.18);
  color: #fff;
}

.case-section--navy .article-body > p {
  color: #c4d1dc;
}

.case-plan-steps {
  display: grid;
  margin: 2.5rem 0 0;
  padding: 0;
  border-top: 1px solid rgba(255, 255, 255, 0.2);
  list-style: none;
}

.case-plan-steps li {
  display: grid;
  gap: 2rem;
  padding: 1.7rem 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.2);
  grid-template-columns: 6rem 1fr;
}

.case-plan-steps li > span {
  color: var(--gold-300);
  font-size: 0.75rem;
  font-weight: 900;
  letter-spacing: 0.12em;
}

.case-plan-steps h3 {
  margin: 0;
  color: #fff;
  font-size: 1.2rem;
}

.case-plan-steps p {
  margin: 0.6rem 0 0;
  color: #b9c8d5;
  line-height: 1.85;
}

.case-plan-note {
  padding: 1rem 1.2rem;
  border-left: 3px solid var(--gold-500);
  background: rgba(255, 255, 255, 0.06);
  font-size: 0.85rem;
}

.case-inline-guide {
  margin-top: 2rem;
  padding: 1.15rem 1.3rem;
  border-left: 3px solid var(--gold-500);
  color: #465b6d;
  background: #f4f7f9;
  font-size: 0.92rem;
  line-height: 1.9;
}

.case-inline-guide a {
  color: var(--navy-900);
  font-weight: 800;
  text-decoration-color: var(--gold-500);
  text-decoration-thickness: 2px;
  text-underline-offset: 0.2em;
}

.case-inline-guide a:hover {
  color: var(--gold-600);
}

.case-section--navy .case-inline-guide--dark {
  color: #c9d6e0;
  background: rgba(255, 255, 255, 0.07);
}

.case-section--navy .case-inline-guide--dark a {
  color: #fff;
}

.case-course {
  position: relative;
  margin-top: 3rem;
}

.case-course::before {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 5.4rem;
  width: 1px;
  background: #c8d3dc;
  content: "";
}

.case-course > section {
  position: relative;
  display: grid;
  gap: clamp(2rem, 5vw, 4.5rem);
  padding: 0 0 4rem;
  grid-template-columns: 7rem 1fr;
}

.case-course > section:last-child {
  padding-bottom: 0;
}

.case-course__count {
  position: relative;
  z-index: 1;
  display: grid;
  align-content: start;
  justify-items: center;
  padding: 0.8rem 0;
  color: var(--gold-600);
  background: #fff;
}

.case-course__count span {
  font-size: 0.72rem;
  font-weight: 900;
}

.case-course__count strong {
  margin-top: 0.35rem;
  font-family: Georgia, serif;
  font-size: 1.5rem;
}

.case-course__content {
  padding: clamp(1.5rem, 4vw, 2.5rem);
  border: 1px solid #d5dee5;
  border-top: 4px solid var(--gold-500);
  background: #f7f9fa;
}

.case-course__content h3 {
  margin: 0 0 1.2rem;
  color: var(--navy-950);
  font-size: 1.3rem;
  line-height: 1.6;
}

.case-course__content p {
  color: #4d6172;
  line-height: 1.95;
}

.case-course__content dl {
  margin: 1.6rem 0 0;
  border-top: 1px solid #d4dde4;
}

.case-course__content dl > div {
  display: grid;
  gap: 1rem;
  padding: 0.9rem 0;
  border-bottom: 1px solid #d4dde4;
  grid-template-columns: 7rem 1fr;
}

.case-course__content dt {
  color: var(--navy-800);
  font-size: 0.78rem;
  font-weight: 900;
}

.case-course__content dd {
  margin: 0;
  color: #536677;
  font-size: 0.88rem;
  line-height: 1.7;
}

.case-outcome {
  display: grid;
  gap: 1rem;
  margin-top: 2.5rem;
}

.case-outcome > div {
  display: grid;
  align-items: center;
  gap: 1.2rem;
  padding: 1.4rem 1.5rem;
  background: #fff;
  grid-template-columns: 4.5rem minmax(0, 1fr) auto minmax(0, 1fr);
}

.case-outcome span:first-child {
  color: var(--gold-600);
  font-size: 0.68rem;
  font-weight: 900;
  letter-spacing: 0.12em;
}

.case-outcome span[aria-hidden] {
  color: var(--gold-500);
  font-size: 1.4rem;
}

.case-outcome strong {
  color: var(--navy-900);
  font-size: 0.92rem;
  line-height: 1.75;
}

.case-voice {
  padding: clamp(2rem, 5vw, 3.5rem);
  border: 1px solid #d4dde4;
  border-top: 5px solid var(--gold-500);
  background: #f4f7f9;
  box-shadow: 0 14px 34px rgba(6, 24, 45, 0.07);
}

.case-voice__meta {
  margin: 0 0 1.2rem;
  color: var(--gold-600);
  font-size: 0.78rem;
  font-weight: 900;
  letter-spacing: 0.08em;
}

.case-voice blockquote {
  margin: 0 0 1.8rem;
  color: var(--navy-950);
  font-family: "Yu Mincho", "YuMincho", serif;
  font-size: clamp(1.25rem, 2.8vw, 1.75rem);
  font-weight: 700;
  line-height: 1.8;
}

.case-voice p:not(.case-voice__meta) {
  color: #4d6172;
  line-height: 1.95;
}

.case-voice p:last-child {
  margin-bottom: 0;
}

.case-section--comment {
  color: #dce6ef;
  background: #0c3152;
}

.case-section--comment .case-kicker {
  color: var(--gold-300);
}

.case-section--comment .article-body > h2 {
  border-color: rgba(255, 255, 255, 0.2);
  color: #fff;
}

.case-section--comment .article-body > p {
  color: #cfdae3;
}

.case-section--comment blockquote {
  margin: 2.5rem 0;
  padding: 1.5rem 0 1.5rem 2rem;
  border-left: 4px solid var(--gold-500);
  color: #fff;
  font-family: "Yu Mincho", "YuMincho", serif;
  font-size: clamp(1.2rem, 2.5vw, 1.65rem);
  font-weight: 700;
  line-height: 1.8;
}

.case-medical {
  color: #fff;
  background: #491e21;
}

.case-medical .case-kicker {
  color: #f0c278;
}

.case-medical .article-body > h2 {
  border-color: rgba(255, 255, 255, 0.22);
  color: #fff;
}

.case-medical .article-body > p {
  color: #eadcdd;
}

.case-medical a {
  color: #fff;
}

.case-related {
  background: #edf2f6;
}

.case-related__grid {
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.case-related__grid a {
  display: flex;
  flex-direction: column;
  min-height: 15rem;
  padding: 1.7rem;
  border-top: 4px solid var(--gold-500);
  color: inherit;
  background: #fff;
  box-shadow: 0 12px 28px rgba(6, 24, 45, 0.06);
  text-decoration: none;
  transition: transform 180ms ease, box-shadow 180ms ease;
}

.case-related__grid a:hover {
  box-shadow: 0 18px 38px rgba(6, 24, 45, 0.11);
  transform: translateY(-3px);
}

.case-related__grid span {
  color: var(--gold-600);
  font-size: 0.68rem;
  font-weight: 900;
  letter-spacing: 0.14em;
}

.case-related__grid strong {
  margin-top: 1.2rem;
  color: var(--navy-950);
  font-size: 1.12rem;
}

.case-related__grid p {
  margin: 0.8rem 0 0;
  color: #5a6c7b;
  font-size: 0.88rem;
  line-height: 1.8;
}

.case-back-link {
  margin-top: 2.5rem;
  text-align: center;
}

.lbp-plan__case .c-text-link {
  margin-top: 0.9rem;
  color: var(--navy-950);
  font-size: 0.82rem;
}

@media (max-width: 48rem) {
  .case-page .case-hero h1 br {
    display: none;
  }

  .case-summary,
  .case-baseline,
  .case-findings,
  .case-related__grid {
    grid-template-columns: 1fr;
  }

  .case-index {
    position: static;
  }

  .case-index .l-content {
    display: block;
    padding-block: 0.75rem;
  }

  .case-index p {
    padding-inline: 0.9rem;
  }

  .case-index a {
    padding-block: 0.85rem;
  }

  .case-course::before {
    left: 1.5rem;
  }

  .case-course > section {
    gap: 1rem;
    grid-template-columns: 3rem 1fr;
  }

  .case-course__count {
    overflow: hidden;
  }

  .case-course__count span {
    writing-mode: vertical-rl;
  }

  .case-course__count strong {
    font-size: 0;
  }

  .case-course__content dl > div,
  .case-outcome > div {
    grid-template-columns: 1fr;
  }

  .case-outcome span[aria-hidden] {
    transform: rotate(90deg);
  }

  .case-plan-steps li {
    gap: 0.8rem;
    grid-template-columns: 1fr;
  }
}

@media (max-width: 36rem) {
  .case-summary dl > div {
    grid-template-columns: 1fr;
  }

  .case-course > section {
    display: block;
    padding-bottom: 2rem;
  }

  .case-course::before {
    display: none;
  }

  .case-course__count {
    display: flex;
    justify-content: flex-start;
    gap: 0.6rem;
    padding: 0 0 0.7rem;
  }

  .case-course__count span {
    writing-mode: initial;
  }

  .case-course__count strong {
    font-size: 0.9rem;
  }
}
