.inner-page { background: var(--paper); }
.inner-main { padding-top: 80px; }
.inner-site-header nav a[aria-current="page"] { color: var(--accent-ink); }
.breadcrumbs { width: min(var(--content-width), calc(100% - 48px)); margin: 0 auto; padding: 24px 0 18px; font-size: var(--type-label); line-height: 1.6; }
.breadcrumbs ol { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.breadcrumbs li:not(:last-child)::after { content: "/"; margin-left: 8px; color: #aaa; }
.breadcrumbs a { text-decoration: underline; text-underline-offset: 3px; }
.page-hero { width: min(var(--content-width), calc(100% - 48px)); min-height: 430px; margin: 0 auto; display: grid; grid-template-columns: 1fr 46%; overflow: hidden; background: var(--surface); border-radius: var(--radius-media); box-shadow: 0 18px 48px rgba(35, 35, 35, .05); }
.page-hero-copy { padding: 68px 56px; align-self: center; }
.eyebrow { margin: 0 0 18px; display: flex; align-items: center; gap: 9px; color: var(--accent-ink); font: var(--weight-heading) var(--type-label)/1 var(--font-medium); letter-spacing: var(--tracking-label); }
.eyebrow::before { content: ""; width: 7px; height: 7px; flex: 0 0 7px; background: var(--orange); border-radius: 50%; }
.page-hero h1 { margin: 0; color: #222; font: var(--weight-heading) var(--type-page-title)/1.35 var(--font-medium); letter-spacing: .04em; }
.symptom-hero .symptom-title { font-size: clamp(30px, 3.2vw, 44px); line-height: 1.42; letter-spacing: .025em; }
.symptom-title-location { display: block; margin-bottom: 10px; color: #555; font-size: .48em; line-height: 1.3; letter-spacing: .12em; }
.symptom-title-main { display: block; }
.page-hero-copy > p:last-child { margin: 26px 0 0; color: #404040; font-size: 16px; line-height: 1.95; }
.page-hero > img { width: 100%; height: 100%; min-height: 430px; object-fit: cover; }
.symptom-hero { height: 480px; min-height: 0; grid-template-columns: minmax(0, 54%) minmax(0, 46%); }
.symptom-hero .page-hero-copy { min-width: 0; padding: 38px 44px; }
.symptom-hero .symptom-title { font-size: clamp(28px, 2.7vw, 38px); }
.symptom-hero-media { position: relative; min-width: 0; min-height: 0; overflow: hidden; }
.symptom-hero-media > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.symptom-hero-media--wide { background: #e9e6df; }
.symptom-hero-media--wide > .symptom-photo-backdrop { opacity: .45; filter: blur(12px); transform: scale(1.08); object-position: center 65%; }
.symptom-hero-media--wide > img:not(.symptom-photo-backdrop) { inset: 0 auto 0 13%; width: 74%; }
.content-section, .medical-notice, .inner-cta { width: min(960px, calc(100% - 48px)); margin: 100px auto 0; }
.content-section > h2, .medical-notice > h2, .inner-cta > h2 { margin: 0 0 32px; color: #222; font: var(--weight-heading) var(--type-section-title)/var(--leading-heading) var(--font-medium); }
.prose-section p:not(.eyebrow) { margin: 0 0 22px; color: #3d3d3d; font-size: 16px; line-height: 1.95; }
.check-list { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 20px; margin: 0; padding: 32px; list-style: none; background: var(--surface); border-radius: var(--radius-card); }
.check-list li { position: relative; padding: 8px 8px 8px 35px; font-size: var(--type-body); line-height: 1.7; }
.check-list li::before { content: "✓"; position: absolute; left: 0; top: 5px; display: grid; place-items: center; width: 24px; height: 24px; color: #fff; background: var(--orange); border-radius: 50%; font-weight: 700; }
.info-card-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.info-card { min-height: 250px; padding: 34px 30px; background: var(--surface); border-radius: var(--radius-card); }
.card-icon-row { display: flex; align-items: center; justify-content: space-between; }
.card-icon { width: 82px; height: 82px; display: grid; place-items: center; flex: 0 0 auto; overflow: hidden; background: var(--accent-soft); border-radius: 50%; }
.card-icon img { width: 72px; height: 72px; object-fit: contain; }
.info-card-number { color: #c9c2b9; font: 700 22px/1 var(--font-light); letter-spacing: .08em; }
.info-card h3 { margin: 22px 0 15px; font: var(--weight-heading) var(--type-card-title)/var(--leading-heading) var(--font-medium); }
.info-card p { margin: 0; font-size: var(--type-small); line-height: var(--leading-body); }
.approach-section { width: min(var(--content-width), calc(100% - 48px)); display: grid; grid-template-columns: 45% 1fr; gap: 64px; align-items: center; }
.approach-image img { width: 100%; aspect-ratio: 1/1.05; object-fit: cover; border-radius: var(--radius-media); }
.approach-section h2 { margin-bottom: 24px; }
.approach-section > div:last-child > p:not(.eyebrow) { font-size: var(--type-body); line-height: var(--leading-body); }
.step-list { margin: 32px 0 0; padding: 0; list-style: none; counter-reset: steps; }
.step-list li { display: grid; grid-template-columns: 150px 1fr; gap: 16px; padding: 18px 0; border-top: 1px solid #d8d8d5; }
.step-list li:last-child { border-bottom: 1px solid #d8d8d5; }
.step-list strong { font-family: var(--font-medium); }
.step-list span { font-size: var(--type-small); line-height: 1.7; }
.medical-notice { padding: 42px 48px; border: 1px solid #d8d8d8; border-radius: var(--radius-card); background: #fff; }
.medical-notice > h2 { margin-bottom: 18px; font-size: var(--type-subsection-title); }
.medical-notice > p:not(.eyebrow) { margin: 0; line-height: 1.9; }
.medical-notice .small { margin-top: 12px !important; color: #666; font-size: var(--type-label); }
.faq-list { display: grid; gap: 12px; }
.faq-list details { overflow: hidden; background: var(--surface); border: 1px solid #dedede; border-radius: var(--radius-card); box-shadow: 0 10px 28px rgba(35,35,35,.035); }
.faq-list summary { position: relative; min-height: 86px; padding: 20px 64px 20px 24px; display: grid; grid-template-columns: 42px minmax(0, 1fr); gap: 16px; align-items: center; cursor: pointer; font: var(--weight-heading) var(--type-card-title)/1.6 var(--font-medium); list-style: none; }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary > span:last-child { min-width: 0; text-wrap: balance; }
.faq-list summary::after { content: "+"; position: absolute; right: 25px; top: 50%; color: var(--orange); font-size: 28px; transform: translateY(-50%); }
.faq-list details[open] summary::after { content: "−"; }
.faq-mark { width: 42px; height: 42px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 50%; font: 700 20px/1 var(--font-medium); }
.faq-mark-q { color: #fff; background: var(--orange); }
.faq-mark-a { color: var(--accent-ink); background: #fff1df; }
.faq-answer { padding: 22px 64px 26px 24px; display: grid; grid-template-columns: 42px minmax(0, 1fr); gap: 16px; align-items: start; border-top: 1px solid #ece8e2; background: #fffcf8; }
.faq-answer p { margin: 3px 0 0; color: #444; font-size: 16px; line-height: 1.9; }
.related-links { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.related-links a { display: flex; justify-content: space-between; align-items: center; padding: 25px 24px; background: var(--surface); border-bottom: 3px solid var(--orange); border-radius: var(--radius-control); font: var(--weight-heading) var(--type-body)/1.5 var(--font-medium); }
.related-links b { color: var(--orange); }
.related-section .related-links a { min-height: 248px; padding: 28px 30px 26px; display: flex; flex-direction: column; align-items: stretch; background: var(--surface); border: 1px solid #e1e1e1; border-radius: var(--radius-card); transition: transform .2s, border-color .2s, box-shadow .2s; }
.related-section .related-links a:hover { transform: translateY(-4px); border-color: #ddd8cf; box-shadow: 0 18px 36px rgba(35,35,35,.07); }
.related-section .related-links strong { font: var(--weight-heading) var(--type-card-title)/var(--leading-heading) var(--font-medium); }
.related-section .related-links b { color: var(--orange); font-size: 17px; font-weight: 400; transition: transform .2s; }
.related-section .related-links a:hover .symptom-card-link b { transform: translateX(4px); }
.inner-cta { padding: 58px 58px 0; display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(300px, .92fr); gap: 40px 54px; overflow: hidden; color: var(--ink); text-align: left; background: #fff; border: 1px solid #ddd; border-radius: var(--radius-media); box-shadow: 0 20px 55px rgba(35, 35, 35, .06); }
.inner-cta .eyebrow { color: var(--accent-ink); }
.inner-cta h2 { margin: 0 0 16px; color: #222; font-size: clamp(28px, 3vw, 38px); line-height: var(--leading-heading); text-wrap: balance; }
.cta-copy > p:last-child { max-width: 34em; margin: 0; color: #666; font-size: var(--type-body); line-height: var(--leading-body); }
.cta-buttons { display: grid; gap: 10px; align-self: center; margin: 0; }
.cta-buttons a { min-width: 0; padding: 14px 17px 14px 20px; display: flex; justify-content: space-between; align-items: center; color: #222; background: var(--surface); border: 1px solid #d7d7d7; border-radius: var(--radius-control); font: var(--weight-heading) var(--type-body)/1.4 var(--font-medium); transition: color .2s, border-color .2s, background .2s; }
.cta-buttons a:hover { color: var(--orange); border-color: var(--orange); }
.cta-buttons a:first-child { color: #fff; background: #292929; border-color: #292929; }
.cta-buttons a:first-child:hover { color: #fff; background: var(--orange); border-color: var(--orange); }
.cta-buttons span { display: flex; align-items: center; gap: 16px; }
.cta-buttons small { min-width: 88px; color: #888; font: var(--weight-heading) 9px/1 var(--font-medium); letter-spacing: .14em; }
.cta-buttons a:first-child small { color: rgba(255,255,255,.65); }
.cta-buttons b { font-size: 18px; font-weight: 400; }
.cta-note { grid-column: 1 / -1; margin: 0 -58px; padding: 30px 58px; display: flex; align-items: center; justify-content: space-between; gap: 24px; color: #222; background: var(--orange); font-family: var(--font-medium); }
.cta-offer-label { display: inline-block; padding: 6px 12px; color: #fff; background: #222; border-radius: var(--radius-control); font-size: 13px; font-weight: 700; letter-spacing: .08em; }
.cta-offer-copy p { margin: 12px 0 0; font-size: 21px; font-weight: 700; line-height: 1.5; }
.cta-offer-copy small { display: block; margin-top: 2px; font-size: 14px; font-weight: 500; }
.cta-offer-price { flex-shrink: 0; display: flex; align-items: baseline; gap: 5px; margin: 0; line-height: 1; white-space: nowrap; }
.cta-offer-price strong { font-size: clamp(56px, 6vw, 76px); font-weight: 700; letter-spacing: -.04em; }
.cta-offer-price > span { font-size: 26px; font-weight: 700; }
.inner-footer { height: auto; min-height: 230px; padding: 50px 24px; gap: 38px; }
.footer-links { display: flex; flex-wrap: wrap; justify-content: center; gap: 16px 28px; color: #fff; font-size: var(--type-small); }

.index-hero { min-height: 360px; grid-template-columns: 1fr 42%; }
.index-hero > img { min-height: 360px; object-position: right center; }
.symptom-index-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.symptom-index-grid a { min-height: 248px; padding: 28px 30px 26px; display: flex; flex-direction: column; background: var(--surface); border: 1px solid #e1e1e1; border-radius: var(--radius-card); transition: transform .2s, border-color .2s, box-shadow .2s; }
.symptom-index-grid a:hover { transform: translateY(-4px); border-color: #ddd8cf; box-shadow: 0 18px 36px rgba(35,35,35,.07); }
.check-list li { text-wrap: balance; word-break: auto-phrase; }
.symptom-icon { width: 82px; height: 82px; margin-bottom: 18px; display: grid; place-items: center; background: var(--accent-soft); border-radius: 50%; overflow: hidden; }
.symptom-icon img { width: 72px; height: 72px; object-fit: contain; }
.symptom-index-grid strong { font: var(--weight-heading) var(--type-card-title)/var(--leading-heading) var(--font-medium); }
.symptom-card-link { margin-top: auto; padding-top: 18px; display: flex; align-items: center; justify-content: space-between; color: #777; font-size: var(--type-small); }
.symptom-card-link b { color: var(--orange); font-size: 17px; font-weight: 400; transition: transform .2s; }
.symptom-index-grid a:hover .symptom-card-link b { transform: translateX(4px); }
.basic-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.basic-card { padding: 32px; background: var(--surface); border-radius: var(--radius-card); }
.basic-card .card-icon { margin-bottom: 24px; }
.basic-card h3 { margin: 0 0 14px; font: var(--weight-heading) var(--type-card-title)/var(--leading-heading) var(--font-medium); }
.basic-card p { margin: 0; font-size: var(--type-small); line-height: var(--leading-body); }
@media (min-width: 841px) {
  .basic-grid { gap: 0; padding: 28px 0 24px; border-top: 1px solid #d7d2ca; border-bottom: 1px solid #d7d2ca; }
  .basic-card { padding: 12px 32px 18px; background: transparent; border-left: 1px solid #d7d2ca; border-radius: 0; }
  .basic-card:first-child { padding-left: 0; border-left: 0; }
  .basic-card:last-child { padding-right: 0; }
}
.price-panel { display: grid; grid-template-columns: 1fr auto; gap: 32px; align-items: center; padding: 42px 48px; background: var(--surface); border: 1px solid #ddd; border-radius: var(--radius-card); }
.price-panel h3 { margin: 0 0 12px; font-size: var(--type-subsection-title); line-height: var(--leading-heading); }
.price-panel p { margin: 0; line-height: 1.8; }
.price-panel strong { color: var(--orange); font-size: 44px; white-space: nowrap; }
.voice-empty { padding: 70px 40px; text-align: center; background: #fff; border-radius: var(--radius-card); }
.voice-empty img { width: 150px; height: 190px; margin: 0 auto 26px; object-fit: cover; border-radius: var(--radius-card); }
.review-lead { max-width: 720px; margin: -12px 0 36px; font-size: var(--type-body); line-height: var(--leading-body); }
.review-platform-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
.review-platform-card { --review-color: var(--orange); --review-tint: #fff7ed; position: relative; min-height: 330px; padding: 38px; display: flex; flex-direction: column; align-items: flex-start; overflow: hidden; background: var(--surface); border-radius: var(--radius-card); box-shadow: 0 16px 42px rgba(48, 43, 35, .07); }
.review-platform-card::after { content: ""; position: absolute; right: -70px; top: -80px; width: 210px; height: 210px; border-radius: 50%; background: var(--review-tint); }
.review-platform-mark { position: relative; z-index: 1; width: 54px; height: 54px; margin-bottom: 32px; display: grid; place-items: center; color: var(--review-color); background: var(--review-tint); border-radius: 50%; font: 700 24px/1 Arial, sans-serif; }
.review-platform-label { margin: 0 0 8px; color: #777; font: var(--weight-heading) var(--type-label)/1.4 var(--font-medium); letter-spacing: var(--tracking-label); text-transform: uppercase; }
.review-platform-card h3 { margin: 0 0 14px; color: #222; font: var(--weight-heading) var(--type-subsection-title)/var(--leading-heading) var(--font-medium); }
.review-platform-card p:not(.review-platform-label) { margin: 0; font-size: var(--type-small); line-height: 1.8; }
.review-platform-card > a { width: 100%; margin-top: auto; padding: 17px 18px; display: flex; justify-content: space-between; align-items: center; color: #fff; background: var(--review-color); border-radius: var(--radius-control); font: var(--weight-heading) var(--type-small)/1.4 var(--font-medium); }
.review-platform-google { --review-color: #4285f4; --review-tint: #edf4ff; }
.review-platform-hotpepper { --review-color: #e95486; --review-tint: #fff0f5; }
.review-proof-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.review-proof-card { overflow: hidden; background: var(--surface); border-radius: var(--radius-card); }
.review-proof-card > img { width: 100%; aspect-ratio: 1.35; object-fit: cover; }
.review-proof-card > span { min-height: 155px; padding: 25px 24px; display: flex; flex-direction: column; align-items: flex-start; }
.review-proof-card small { color: var(--accent-ink); font: var(--weight-heading) var(--type-label)/1 var(--font-medium); letter-spacing: var(--tracking-label); }
.review-proof-card strong { margin-top: 13px; font: var(--weight-heading) var(--type-card-title)/var(--leading-heading) var(--font-medium); }
.review-proof-card b { margin-top: auto; color: var(--orange); font-size: var(--type-label); }
.director-profile { width: min(960px, calc(100% - 48px)); margin: 100px auto 0; display: grid; grid-template-columns: 300px 1fr; gap: 60px; align-items: start; }
.director-profile--first { margin-top: 42px; }
.director-title { width: min(960px, calc(100% - 48px)); margin: 42px auto 0; }
.director-title h1 { margin: 0; color: #222; font: var(--weight-heading) var(--type-page-title)/1.35 var(--font-medium); letter-spacing: .04em; }
.director-profile > img { width: 300px; height: 380px; object-fit: cover; border-radius: var(--radius-media); }
.director-profile h2 { margin: 10px 0 8px; font: var(--weight-heading) var(--type-section-title)/var(--leading-heading) var(--font-medium); }
.director-profile h2 small { display: block; margin-bottom: 10px; font-size: var(--type-small); }
.director-profile p { font-size: var(--type-body); line-height: var(--leading-body); }
.director-profile .director-credentials { background: #fff; }

.about-intro { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 72px; align-items: start; }
.about-intro h2 { margin-bottom: 0; }
.about-intro-copy { padding-top: 30px; border-top: 2px solid #222; }
.about-intro-copy p { margin: 0; font-size: var(--type-body); line-height: var(--leading-body); }
.about-intro-copy p + p { margin-top: 16px; }
.about-value-grid .info-card { border: 1px solid #ddd; }
.about-space-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.about-space-grid article { overflow: hidden; background: var(--surface); border: 1px solid #ddd; border-radius: var(--radius-card); }
.about-space-grid img { width: 100%; aspect-ratio: 1.38; object-fit: cover; }
.about-space-grid article > div { padding: 24px; }
.about-space-grid h3 { margin: 0 0 10px; font: var(--weight-heading) var(--type-card-title)/var(--leading-heading) var(--font-medium); }
.about-space-grid p { margin: 0; color: #555; font-size: var(--type-small); line-height: var(--leading-body); }
.about-space-grid .facility-illustration { padding: 22px; object-fit: contain; background: #f4f2ed; }
.voice-intro { width: min(960px, calc(100% - 48px)); margin: 42px auto 0; }
.voice-intro h1 { margin: 0; color: #222; font: var(--weight-heading) var(--type-page-title)/1.35 var(--font-medium); letter-spacing: .04em; }
.voice-intro > p:last-child { max-width: 46em; margin: 22px 0 0; font-size: var(--type-body); line-height: var(--leading-body); }
.voice-gallery-section { margin-top: 56px; }
.voice-testimonial-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; align-items: start; }
.voice-testimonial-card { margin: 0; overflow: hidden; background: var(--surface); border: 1px solid #ddd; border-radius: var(--radius-card); box-shadow: 0 14px 34px rgba(35,35,35,.045); }
.voice-testimonial-card > img { width: 100%; height: 330px; object-fit: cover; object-position: center; }
.voice-testimonial-card figcaption { min-height: 150px; padding: 24px 26px 28px; display: grid; grid-template-columns: 28px 1fr; gap: 10px; align-items: start; }
.voice-testimonial-card figcaption > span { color: var(--orange); font: 700 40px/1 var(--font-medium); }
.voice-testimonial-card blockquote { margin: 4px 0 0; color: #333; font: var(--weight-heading) 17px/1.85 var(--font-medium); }
.voice-review-links { grid-template-columns: 1fr 1fr; }

@media (max-width: 840px) {
  .inner-main { padding-top: 60px; }
  .page-hero { grid-template-columns: 1fr; border-radius: var(--radius-media); }
  .page-hero-copy { padding: 48px 36px; }
  .page-hero > img { min-height: 300px; max-height: 380px; }
  .symptom-hero { height: auto; grid-template-columns: 1fr; }
  .symptom-hero .page-hero-copy { min-height: 300px; padding: 34px 36px; }
  .symptom-hero-media { height: 340px; }
  .info-card-grid, .symptom-index-grid, .basic-grid { grid-template-columns: 1fr 1fr; }
  .review-proof-grid { grid-template-columns: 1fr 1fr; }
  .approach-section { grid-template-columns: 1fr; }
  .approach-image img { max-height: 480px; }
  .director-profile { grid-template-columns: 220px 1fr; gap: 36px; }
  .director-profile > img { width: 220px; height: 280px; }
  .about-intro { grid-template-columns: 1fr; gap: 30px; }
  .about-space-grid { grid-template-columns: 1fr 1fr; }
  .voice-testimonial-grid { gap: 18px; }
}

@media (max-width: 625px) {
  .inner-main { padding-top: 50px; }
  .breadcrumbs { width: calc(100% - 40px); padding: 18px 0 14px; font-size: var(--type-label); }
  .page-hero { width: calc(100% - 40px); min-height: 0; border-radius: var(--radius-media); }
  .page-hero-copy { padding: 34px 24px; }
  .page-hero h1 { font-size: var(--type-page-title); }
  .symptom-hero .symptom-title { font-size: clamp(26px, 8vw, 34px); line-height: 1.45; }
  .symptom-title-location { margin-bottom: 7px; font-size: .5em; }
  .page-hero-copy > p:last-child { margin-top: 18px; font-size: var(--type-body); line-height: var(--leading-body); }
  .page-hero > img { min-height: 220px; height: 220px; }
  .symptom-hero .page-hero-copy { min-height: 0; padding: 30px 24px; }
  .symptom-hero .symptom-title { font-size: clamp(25px, 7.2vw, 29px); }
  .symptom-hero-media { height: 280px; }
  .content-section, .medical-notice, .inner-cta, .approach-section, .director-profile { width: calc(100% - 40px); margin-top: 70px; }
  .content-section > h2, .medical-notice > h2, .inner-cta > h2 { margin-bottom: 24px; font-size: var(--type-section-title); }
  .check-list { grid-template-columns: 1fr; padding: 22px 18px; gap: 5px; }
  .check-list li { font-size: var(--type-body); }
  .prose-section p { font-size: var(--type-body); line-height: var(--leading-body); }
  .info-card-grid, .symptom-index-grid, .basic-grid { grid-template-columns: 1fr; }
  .symptom-index-grid { gap: 12px; }
  .symptom-index-grid a { min-height: 132px; padding: 20px; display: grid; grid-template-columns: 68px 1fr auto; grid-template-rows: 1fr 1fr; column-gap: 16px; align-items: center; border-radius: var(--radius-card); }
  .symptom-icon { grid-column: 1; grid-row: 1 / 3; width: 68px; height: 68px; margin: 0; }
  .symptom-icon img { width: 60px; height: 60px; }
  .symptom-index-grid strong { grid-column: 2 / 4; grid-row: 1; align-self: end; }
  .symptom-card-link { grid-column: 2 / 4; grid-row: 2; align-self: start; width: 100%; padding-top: 7px; }
  .review-platform-grid, .review-proof-grid { grid-template-columns: 1fr; }
  .review-platform-card { min-height: 315px; padding: 30px 24px 24px; }
  .review-platform-mark { margin-bottom: 24px; }
  .info-card { min-height: 0; padding: 28px 24px; }
  .card-icon { width: 68px; height: 68px; }
  .card-icon img { width: 60px; height: 60px; }
  .approach-section { gap: 32px; }
  .approach-image img { aspect-ratio: 1.35; border-radius: var(--radius-media); }
  .step-list li { grid-template-columns: 1fr; gap: 7px; }
  .medical-notice { padding: 30px 24px; }
  .medical-notice > h2 { font-size: var(--type-subsection-title); }
  .related-links { grid-template-columns: 1fr; gap: 12px; }
  .related-section .related-links a { min-height: 132px; padding: 20px; display: grid; grid-template-columns: 68px 1fr auto; grid-template-rows: 1fr 1fr; column-gap: 16px; align-items: center; }
  .related-section .related-links .symptom-icon { grid-column: 1; grid-row: 1 / 3; width: 68px; height: 68px; margin: 0; }
  .related-section .related-links .symptom-icon img { width: 60px; height: 60px; }
  .related-section .related-links strong { grid-column: 2 / 4; grid-row: 1; align-self: end; }
  .related-section .related-links .symptom-card-link { grid-column: 2 / 4; grid-row: 2; align-self: start; width: 100%; padding-top: 7px; }
  .faq-list summary { min-height: 78px; padding: 17px 52px 17px 18px; grid-template-columns: 36px minmax(0, 1fr); gap: 12px; font-size: 17px; }
  .faq-list summary::after { right: 18px; }
  .faq-mark { width: 36px; height: 36px; font-size: 17px; }
  .faq-answer { padding: 18px; grid-template-columns: 36px minmax(0, 1fr); gap: 12px; }
  .faq-answer p { margin-top: 1px; font-size: 15px; }
  .inner-cta { padding: 38px 24px 0; grid-template-columns: 1fr; gap: 28px; border-radius: var(--radius-media); }
  .inner-cta h2 { margin-bottom: 14px; font-size: var(--type-section-title); }
  .cta-buttons a { padding: 14px 15px; }
  .cta-buttons span { gap: 10px; }
  .cta-buttons small { min-width: 76px; }
  .cta-note { margin: 0 -24px; padding: 26px 24px; flex-direction: column; align-items: flex-start; gap: 20px; }
  .cta-offer-copy p { font-size: 18px; }
  .cta-offer-price { align-self: flex-end; }
  .cta-offer-price strong { font-size: 64px; }
  .footer-links { flex-direction: column; align-items: center; }
  .price-panel { grid-template-columns: 1fr; padding: 30px 24px; }
  .price-panel h3 { font-size: 20px; }
  .price-panel strong { font-size: 38px; }
  .director-profile { grid-template-columns: 1fr; }
  .director-profile > img { width: 180px; height: 228px; margin: 0 auto; border-radius: var(--radius-media); }
  .director-profile h2 { font-size: var(--type-section-title); text-align: center; }
  .about-intro { gap: 22px; }
  .about-intro-copy { padding-top: 22px; }
  .about-space-grid { grid-template-columns: 1fr; gap: 14px; }
  .about-space-grid article > div { padding: 22px 20px; }
  .voice-intro { width: calc(100% - 40px); margin-top: 28px; }
  .director-title { width: calc(100% - 40px); margin-top: 28px; }
  .voice-testimonial-grid { grid-template-columns: 1fr; gap: 18px; }
  .voice-testimonial-card > img { height: auto; }
  .voice-testimonial-card figcaption { min-height: 0; padding: 22px 20px 24px; }
  .voice-testimonial-card blockquote { font-size: 16px; }
  .voice-review-links { grid-template-columns: 1fr; }
}

/* A single continuous path keeps the visit order clear on every screen. */
#flow { scroll-margin-top: 100px; }
.visit-flow { margin: 0; padding: 0; list-style: none; }
.visit-step { position: relative; display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 24px; align-items: center; }
.visit-step + .visit-step { margin-top: 26px; }
.visit-step::before { content: ""; position: absolute; left: 31px; top: 0; bottom: -26px; width: 2px; background: var(--orange); }
.visit-step:first-child::before { top: 50%; }
.visit-step:last-child::before { bottom: 50%; }
.visit-step:not(:last-child)::after { content: ""; position: absolute; left: 27px; bottom: -16px; width: 8px; height: 8px; border-right: 2px solid var(--orange); border-bottom: 2px solid var(--orange); transform: rotate(45deg); }
.visit-step-number { position: relative; z-index: 1; width: 64px; height: 64px; display: flex; flex-direction: column; justify-content: center; align-items: center; background: var(--paper); border: 2px solid var(--orange); border-radius: 50%; color: #333; font: 700 23px/1.1 var(--font-medium); }
.visit-step-label { margin-bottom: 3px; font-size: 9px; letter-spacing: .12em; }
.visit-step-card { min-height: 112px; padding: 24px 28px; display: grid; grid-template-columns: 250px minmax(0, 1fr); align-items: center; gap: 24px; background: var(--surface); border-radius: var(--radius-card); }
.visit-step-heading { display: flex; align-items: center; gap: 18px; }
.visit-step-icon { width: 40px; height: 40px; flex-shrink: 0; color: #555; }
.visit-step-heading h3 { margin: 0; font-size: 19px; line-height: 1.5; }
.visit-step-card p { margin: 0; font-size: var(--type-body); line-height: 1.85; }
@media (max-width: 840px) {
  .visit-step-card { grid-template-columns: 1fr; gap: 12px; padding: 22px 24px; }
}
@media (max-width: 625px) {
  .visit-step { grid-template-columns: 44px minmax(0, 1fr); gap: 12px; }
  .visit-step-number { width: 44px; height: 44px; font-size: 18px; }
  .visit-step-label { font-size: 7px; margin-bottom: 2px; }
  .visit-step::before { left: 21px; }
  .visit-step:not(:last-child)::after { left: 17px; }
  .visit-step-card { padding: 18px 16px; }
  .visit-step-heading { gap: 10px; }
  .visit-step-icon { width: 32px; height: 32px; }
  .visit-step-heading h3 { font-size: 16px; }
}

@media (min-width: 626px) and (max-width: 840px) {
  .inner-cta { padding: 36px 32px 0; grid-template-columns: 1fr; gap: 28px; }
  .cta-note { margin: 0 -32px; padding: 28px 32px; }
}
@media (max-width: 360px) {
  .price-panel { padding-right: 20px; padding-left: 20px; }
  .price-panel h3 { font-size: 18px; }
  .cta-buttons span { display: block; }
  .cta-buttons small { display: block; margin-bottom: 6px; }
}
@media (max-width: 360px) {
  .page-hero h1 { font-size: 24px; }
}
