/*
   縁先クリニック 下層ページ
   共通するのはトークンと基盤だけ。本文の幅・順序・面はページ固有にする。
*/

body.subpage-page {
  background: var(--paper);
  color: var(--text-main);
}

body.subpage-page .site-header {
  color: var(--text-main);
}

.subpage-main {
  overflow: clip;
  padding-top: var(--header-height);
}

.subpage-hero {
  position: relative;
  min-height: min(680px, calc(100svh - var(--header-height)));
  overflow: hidden;
}

.subpage-hero__kicker,
.subpage-section__kicker {
  margin: 0 0 16px;
  color: var(--green);
  font: 500 var(--fs-deco)/1.2 "Roboto Condensed", "Arial Narrow", sans-serif;
  letter-spacing: 0.18em;
}

.subpage-hero h1 {
  margin: 0;
  font-size: clamp(34px, 5vw, 68px);
  font-weight: 500;
  line-height: 1.42;
  letter-spacing: 0.08em;
}

.subpage-hero__lead {
  max-width: 32em;
  margin: 28px 0 0;
  font-size: 17px;
  line-height: 2.1;
}

.subpage-hero--photo {
  min-height: 620px;
  background: var(--green-deep);
}

.subpage-hero--photo .subpage-hero__image {
  position: absolute;
  inset: 0;
}

.subpage-hero--photo .subpage-hero__image::after {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(17, 49, 39, 0.84), rgba(17, 49, 39, 0.26) 58%, rgba(17, 49, 39, 0.08));
  content: "";
}

.subpage-hero--photo img,
.subpage-hero--split img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(0.86) contrast(0.98) brightness(1.03);
}

.subpage-hero--photo .subpage-hero__copy {
  position: relative;
  z-index: 1;
  display: flex;
  min-height: 620px;
  flex-direction: column;
  justify-content: flex-end;
  width: var(--content);
  margin: 0 auto;
  padding: 0 0 clamp(58px, 9vw, 118px);
  color: var(--paper-strong);
}

.subpage-hero--photo .subpage-hero__kicker { color: var(--lime); }
.subpage-hero--photo .subpage-hero__lead { color: rgba(253, 253, 252, 0.84); }

.subpage-hero--quiet {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(320px, 0.76fr);
  align-items: end;
  gap: clamp(40px, 9vw, 150px);
  width: var(--content);
  min-height: 600px;
  margin: 0 auto;
  padding: clamp(72px, 9vw, 132px) 0 clamp(54px, 8vw, 108px);
}

.subpage-hero--quiet .subpage-hero__copy {
  align-self: center;
  padding-top: 24px;
}

.subpage-hero--quiet .subpage-hero__media {
  position: relative;
  height: clamp(300px, 42vw, 510px);
  overflow: hidden;
  border-radius: var(--r-30) var(--r-30) 0 var(--r-30);
  background: var(--sage);
}

.subpage-hero--quiet .subpage-hero__media::after {
  position: absolute;
  inset: 0;
  border: 1px solid rgba(79, 148, 123, 0.22);
  border-radius: inherit;
  content: "";
  pointer-events: none;
}

.subpage-hero--quiet .subpage-hero__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(0.86) contrast(0.98) brightness(1.03);
}

.subpage-hero--split {
  display: grid;
  grid-template-columns: minmax(320px, 0.96fr) minmax(0, 1.04fr);
  min-height: 620px;
}

.subpage-hero--split .subpage-hero__media {
  min-height: 620px;
  overflow: hidden;
  background: var(--sage);
}

.subpage-hero--split .subpage-hero__copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(54px, 8vw, 120px) clamp(32px, 8vw, 128px);
  background: var(--paper-strong);
}

.subpage-hero--field {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 0.62fr);
  align-items: center;
  gap: clamp(40px, 8vw, 140px);
  min-height: 590px;
  padding: clamp(70px, 9vw, 128px) max(30px, calc((100% - var(--content)) / 2));
  background: var(--green-deep);
  color: var(--paper-strong);
}

.subpage-hero--field .subpage-hero__kicker { color: var(--lime); }
.subpage-hero--field .subpage-hero__lead { color: rgba(253, 253, 252, 0.8); }
.subpage-hero--field .subpage-hero__media {
  height: clamp(300px, 37vw, 470px);
  overflow: hidden;
  border-radius: 0 var(--r-30) var(--r-30) var(--r-30);
}
.subpage-hero--field .subpage-hero__media img { display:block; width:100%; height:100%; object-fit:cover; filter:saturate(.82) contrast(.98) brightness(1.04); }

.subpage-section {
  padding: var(--sp-120) 0;
}

.subpage-section--paper { background: var(--paper); }
.subpage-section--white { background: var(--paper-strong); }
.subpage-section--sage { background: var(--sage); }
.subpage-section--green { background: var(--green-deep); color: var(--paper-strong); }

.subpage-section > .subpage-width {
  width: var(--content);
  margin: 0 auto;
}

.subpage-section h2 {
  margin: 0;
  font-size: clamp(28px, 3.4vw, 46px);
  font-weight: 500;
  line-height: 1.55;
  letter-spacing: 0.07em;
}

.subpage-section__intro {
  max-width: 38em;
  margin: 24px 0 0;
  font-size: 17px;
  line-height: 2.15;
}

.subpage-section__heading--center { text-align: center; }
.subpage-section__heading--center .subpage-section__intro { margin-right: auto; margin-left: auto; }

.subpage-story {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(260px, 0.75fr);
  gap: clamp(42px, 9vw, 150px);
  align-items: start;
  margin-top: 76px;
}
.subpage-story__image { width: 100%; aspect-ratio: 1.24; overflow: hidden; border-radius: var(--r-30) 0 var(--r-30) var(--r-30); }
.subpage-story__image img { display:block; width:100%; height:100%; object-fit:cover; filter:saturate(.86) contrast(.98) brightness(1.03); }
.subpage-story__aside { padding-top: 18px; }
.subpage-story__aside h3 { margin:0; font-size:22px; font-weight:500; line-height:1.6; }
.subpage-story__aside p { margin:20px 0 0; line-height:2; }
.subpage-rule-list { display:grid; gap:0; margin:46px 0 0; padding:0; list-style:none; }
.subpage-rule-list li { padding:18px 0; border-top:1px solid var(--line); font-size:17px; }
.subpage-rule-list li:last-child { border-bottom:1px solid var(--line); }

.subpage-steps {
  display: grid;
  grid-template-columns: minmax(150px, 0.42fr) minmax(0, 1fr);
  gap: clamp(42px, 10vw, 160px);
  margin-top: 74px;
}
.subpage-steps__note { padding-top: 8px; }
.subpage-steps__note p { margin:0; line-height:2.1; }
.subpage-steps__list { display:grid; }
.subpage-step { display:grid; grid-template-columns:74px 1fr; gap:28px; padding:25px 0; border-top:1px solid var(--line); }
.subpage-step:last-child { border-bottom:1px solid var(--line); }
.subpage-step__no { color:var(--green); font:500 28px/1 "Roboto Condensed", sans-serif; }
.subpage-step h3 { margin:0; font-size:21px; font-weight:500; }
.subpage-step p { margin:10px 0 0; line-height:2; }

.subpage-index { margin-top: 70px; }
.subpage-index__grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 42px; margin-top:36px; }
.subpage-index__item { display:grid; grid-template-columns:46px 1fr 18px; gap:18px; align-items:start; padding:23px 0; border-top:1px solid var(--line); }
.subpage-index__item:nth-last-child(-n+2) { border-bottom:1px solid var(--line); }
.subpage-index__icon { color:var(--green); font:500 13px/1 "Roboto Condensed",sans-serif; letter-spacing:.1em; }
.subpage-index__item h3 { margin:0; font-size:19px; font-weight:500; }
.subpage-index__item p { margin:6px 0 0; color:var(--text-note); line-height:1.8; }
.subpage-index__arrow { color:var(--green); font-size:22px; }

.subpage-pathway { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0; margin-top:74px; }
.subpage-pathway__item { min-height:260px; padding:30px; border-top:1px solid rgba(22,55,45,.24); border-bottom:1px solid rgba(22,55,45,.24); }
.subpage-pathway__item + .subpage-pathway__item { border-left:1px solid rgba(22,55,45,.24); }
.subpage-pathway__no { color:var(--green); font:500 34px/1 "Roboto Condensed",sans-serif; }
.subpage-pathway h3 { margin:34px 0 0; font-size:22px; font-weight:500; }
.subpage-pathway p { margin:12px 0 0; line-height:1.9; }

.subpage-flow { margin-top:72px; }
.subpage-flow__track { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); border-top:1px solid var(--line); }
.subpage-flow__item { min-height:250px; padding:28px 26px 26px 0; }
.subpage-flow__item + .subpage-flow__item { padding-left:26px; border-left:1px solid var(--line); }
.subpage-flow__no { color:var(--green); font:500 30px/1 "Roboto Condensed",sans-serif; }
.subpage-flow h3 { margin:38px 0 0; font-size:20px; font-weight:500; }
.subpage-flow p { margin:10px 0 0; line-height:1.9; }

.subpage-checklist { display:grid; grid-template-columns:minmax(0,1fr) minmax(260px,.58fr); gap:clamp(50px,9vw,140px); margin-top:72px; }
.subpage-checklist__list { display:grid; }
.subpage-check { display:grid; grid-template-columns:28px 1fr; gap:18px; padding:21px 0; border-top:1px solid var(--line); }
.subpage-check:last-child { border-bottom:1px solid var(--line); }
.subpage-check__mark { color:var(--green); font-size:22px; line-height:1; }
.subpage-check h3 { margin:0; font-size:20px; font-weight:500; }
.subpage-check p { margin:8px 0 0; line-height:1.9; }
.subpage-checklist__aside { align-self:start; padding:28px; background:var(--paper-strong); }
.subpage-checklist__aside h3 { margin:0; font-size:22px; font-weight:500; }
.subpage-checklist__aside p { margin:18px 0 0; line-height:2; }

.subpage-compare { margin-top:72px; overflow:auto; }
.subpage-compare table { width:100%; min-width:680px; border-collapse:collapse; }
.subpage-compare th,.subpage-compare td { padding:21px 18px; border-top:1px solid var(--line); text-align:left; vertical-align:top; }
.subpage-compare th { width:24%; color:var(--green); font-weight:500; }
.subpage-compare tr:last-child th,.subpage-compare tr:last-child td { border-bottom:1px solid var(--line); }

.subpage-schedule { display:grid; grid-template-columns:minmax(220px,.5fr) minmax(0,1fr); gap:clamp(46px,10vw,160px); margin-top:72px; }
.subpage-schedule__side p { margin:0; line-height:2.1; }
.subpage-schedule__list { display:grid; }
.subpage-schedule__item { display:grid; grid-template-columns:110px 1fr; gap:24px; padding:24px 0; border-top:1px solid var(--line); }
.subpage-schedule__item:last-child { border-bottom:1px solid var(--line); }
.subpage-schedule__term { color:var(--green); font:500 16px/1.4 "Roboto Condensed",sans-serif; }
.subpage-schedule h3 { margin:0; font-size:20px; font-weight:500; }
.subpage-schedule p { margin:7px 0 0; line-height:1.9; }

.subpage-profile { display:grid; grid-template-columns:minmax(280px,.78fr) minmax(0,1fr); gap:clamp(46px,9vw,140px); align-items:start; margin-top:72px; }
.subpage-profile__photo { aspect-ratio:.82; overflow:hidden; border-radius:var(--r-30) var(--r-30) 0 var(--r-30); }
.subpage-profile__photo img { display:block; width:100%; height:100%; object-fit:cover; filter:saturate(.86) contrast(.98) brightness(1.03); }
.subpage-profile__quote { margin:0; font-size:clamp(24px,3vw,38px); line-height:1.8; letter-spacing:.06em; }
.subpage-profile__name { margin:36px 0 0; color:var(--green); font-size:18px; }
.subpage-profile__meta { display:grid; grid-template-columns:repeat(2,1fr); gap:0 34px; margin-top:36px; }
.subpage-profile__meta div { padding:16px 0; border-top:1px solid var(--line); }
.subpage-profile__meta dt { color:var(--text-note); font-size:14px; }
.subpage-profile__meta dd { margin:5px 0 0; line-height:1.8; }

.subpage-updates { width:min(980px,100%); margin:72px auto 0; }
.subpage-update { display:grid; grid-template-columns:120px 120px minmax(0,1fr) 24px; gap:20px; align-items:center; padding:25px 0; border-top:1px solid var(--line); }
.subpage-update:last-child { border-bottom:1px solid var(--line); }
.subpage-update time,.subpage-update__tag { color:var(--text-note); font-size:14px; }
.subpage-update__tag { color:var(--green); }
.subpage-update h3 { margin:0; font-size:19px; font-weight:500; }
.subpage-update__arrow { color:var(--green); font-size:22px; }

.subpage-reading { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(18px,3vw,42px); margin-top:72px; }
.subpage-reading__card { min-height:340px; padding:24px 0; border-top:1px solid var(--line); }
.subpage-reading__image { aspect-ratio:1.45; overflow:hidden; border-radius:var(--r-10) var(--r-10) 0 var(--r-10); }
.subpage-reading__image img { display:block; width:100%; height:100%; object-fit:cover; filter:saturate(.86) contrast(.98) brightness(1.03); }
.subpage-reading__card h3 { margin:22px 0 0; font-size:20px; font-weight:500; line-height:1.6; }
.subpage-reading__card p { margin:10px 0 0; line-height:1.9; }
.subpage-reading__card { position:relative; color:var(--ink); text-decoration:none; transition:transform .3s var(--ease-smooth); }
.subpage-reading__card > span { display:block; margin-top:20px; color:var(--green); font-size:22px; }
.subpage-reading__card:hover { transform:translateY(-5px); }

.subpage-medical-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1px; margin-top:72px; background:var(--line); }
.subpage-medical-card { position:relative; min-height:260px; padding:28px 30px 30px; background:var(--paper-strong); color:var(--ink); text-decoration:none; transition:background-color .3s ease,color .3s ease,transform .3s var(--ease-smooth); }
.subpage-medical-card > span,.subpage-guide-row__no { color:var(--green); font:500 26px/1 "Roboto Condensed",sans-serif; }
.subpage-medical-card h3 { margin:56px 0 0; font-size:28px; font-weight:500; }
.subpage-medical-card p { margin:10px 0 0; line-height:1.9; }
.subpage-medical-card b { position:absolute; right:30px; bottom:26px; color:var(--green); font-size:24px; font-weight:400; }
.subpage-medical-card:hover { background:var(--green); color:var(--paper-strong); transform:translateY(-4px); }
.subpage-medical-card:hover > span,.subpage-medical-card:hover b { color:var(--lime); }

.subpage-guide-list { width:min(920px,100%); margin:72px auto 0; }
.subpage-guide-row { display:grid; grid-template-columns:70px minmax(0,1fr) 24px; gap:26px; align-items:center; padding:28px 0; border-top:1px solid var(--line); color:var(--ink); text-decoration:none; transition:padding .3s var(--ease-smooth),color .3s ease; }
.subpage-guide-row:last-child { border-bottom:1px solid var(--line); }
.subpage-guide-row h3 { margin:0; font-size:24px; font-weight:500; }
.subpage-guide-row p { margin:8px 0 0; line-height:1.8; }
.subpage-guide-row > span:last-child { color:var(--green); font-size:24px; }
.subpage-guide-row:hover { padding-left:18px; color:var(--green); }

.subpage-card-kicker { margin:0; color:var(--green); font:500 var(--fs-deco)/1.2 "Roboto Condensed",sans-serif; letter-spacing:.16em; }
.subpage-access-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(300px,.75fr); gap:clamp(34px,8vw,120px); margin-top:72px; }
.subpage-hours-card { padding:30px; background:var(--paper); }
.subpage-hours-row { display:grid; grid-template-columns:70px 1fr; gap:10px 18px; align-items:baseline; padding:24px 0; border-top:1px solid var(--line); }
.subpage-hours-row:first-of-type { margin-top:30px; }
.subpage-hours-row b { color:var(--green); font-weight:500; }
.subpage-hours-row span { font:500 24px/1.2 "Roboto Condensed",sans-serif; letter-spacing:.04em; }
.subpage-hours-row em { grid-column:2; color:var(--text-note); font-size:14px; font-style:normal; }
.subpage-note { margin:4px 0 0; color:var(--text-note); line-height:1.8; }
.subpage-map-card { padding:30px; background:var(--green-deep); color:var(--paper-strong); }
.subpage-map-card .subpage-card-kicker { color:var(--lime); }
.subpage-map-card__map { display:grid; place-items:center; min-height:260px; margin:28px 0; background:linear-gradient(135deg,rgba(159,196,152,.2) 0 24%,transparent 24% 45%,rgba(159,196,152,.16) 45% 49%,transparent 49%),#2a5242; }
.subpage-map-card__pin { display:grid; place-items:center; width:112px; height:112px; border:1px solid var(--lime); border-radius:50%; color:var(--lime); font:500 12px/1.5 "Roboto Condensed",sans-serif; letter-spacing:.12em; text-align:center; }
.subpage-map-card address { color:rgba(253,253,252,.82); font-style:normal; line-height:2; }
.subpage-map-card address a { color:var(--paper-strong); text-decoration:none; }

.subpage-reservation-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; margin-top:72px; }
.subpage-contact-card { position:relative; min-height:250px; padding:30px; color:var(--paper-strong); text-decoration:none; transition:transform .3s var(--ease-smooth),background-color .3s ease; }
.subpage-contact-card--web { background:var(--green); }
.subpage-contact-card--phone { background:var(--green-deep); }
.subpage-contact-card .subpage-card-kicker { color:var(--lime); }
.subpage-contact-card h3 { margin:58px 0 0; font-size:28px; font-weight:500; }
.subpage-contact-card > span { display:block; margin-top:12px; font:500 22px/1.3 "Roboto Condensed",sans-serif; }
.subpage-contact-card b { position:absolute; right:30px; bottom:26px; font-size:24px; font-weight:400; }
.subpage-contact-card:hover { background:var(--ink); transform:translateY(-4px); }
.subpage-reservation-note { width:min(740px,100%); margin:28px auto 0; color:var(--text-note); line-height:2; text-align:center; }

.subpage-category-list { width:min(980px,100%); margin:72px auto 0; }
.subpage-category-row { display:grid; grid-template-columns:120px 130px minmax(0,1fr) 24px; gap:18px; align-items:center; padding:26px 0; border-top:1px solid var(--line); color:var(--ink); text-decoration:none; transition:padding .3s var(--ease-smooth),color .3s ease; }
.subpage-category-row:last-child { border-bottom:1px solid var(--line); }
.subpage-category-row time,.subpage-category-row > span { color:var(--green); font:500 14px/1.2 "Roboto Condensed",sans-serif; letter-spacing:.08em; }
.subpage-category-row h3 { margin:0; font-size:20px; font-weight:500; }
.subpage-category-row p { margin:8px 0 0; line-height:1.8; }
.subpage-category-row > b { color:var(--green); font-size:22px; font-weight:400; }
.subpage-category-row:hover { padding-left:18px; color:var(--green); }

.subpage-role-layout { display:grid; grid-template-columns:minmax(240px,.65fr) minmax(0,1.35fr); gap:clamp(44px,9vw,140px); margin-top:72px; }
.subpage-role-intro { align-self:start; padding:30px; background:var(--paper-strong); }
.subpage-role-intro h3 { margin:42px 0 0; font-size:28px; font-weight:500; }
.subpage-role-intro p:last-child { margin:14px 0 0; line-height:2; }
.subpage-role-points { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.subpage-role-point { padding:22px 0; border-top:1px solid var(--line); }
.subpage-role-point > span { color:var(--green); font:500 28px/1 "Roboto Condensed",sans-serif; }
.subpage-role-point h3 { margin:42px 0 0; font-size:19px; font-weight:500; line-height:1.7; }
.subpage-role-point p { margin:10px 0 0; line-height:1.8; }

.subpage-article { width:min(820px,100%); margin:0 auto; }
.subpage-article__meta { display:flex; gap:18px; align-items:center; margin-bottom:26px; color:var(--green); font:500 var(--fs-deco)/1.2 "Roboto Condensed",sans-serif; letter-spacing:.08em; }
.subpage-article__meta span { padding-left:18px; border-left:1px solid var(--line); }
.subpage-article .subpage-section__heading { margin-top:0; }
.subpage-article__body { margin-top:62px; }
.subpage-article__body section { padding:28px 0; border-top:1px solid var(--line); }
.subpage-article__body section:last-child { border-bottom:1px solid var(--line); }
.subpage-article__body h3 { margin:0; font-size:22px; font-weight:500; }
.subpage-article__body p { margin:14px 0 0; line-height:2.1; }

.subpage-cta { display:flex; align-items:center; justify-content:space-between; gap:32px; padding:clamp(36px,5vw,64px) 0; }
.subpage-cta h2 { font-size:clamp(22px,2.6vw,34px); }
.subpage-cta p { margin:10px 0 0; line-height:1.9; }
.subpage-cta a { display:inline-flex; align-items:center; justify-content:center; gap:24px; min-width:240px; padding:18px 24px; border:1px solid var(--green); background:var(--green); color:var(--paper-strong); font-weight:700; transition:background-color .3s ease,color .3s ease,transform .3s var(--ease-smooth); }
.subpage-cta a:hover { border-color:var(--paper-strong); background:var(--paper-strong); color:var(--green-deep); transform:translateY(-3px); }

.subpage-footer { padding:68px 0 22px; background:var(--green-deep); color:var(--paper-strong); }
.subpage-footer__inner { display:grid; grid-template-columns:1.05fr 1.25fr .9fr .7fr; gap:clamp(22px,3vw,48px); width:var(--content); margin:0 auto; }
.subpage-footer__brand img { width:54px; height:54px; }
.subpage-footer__brand p { margin:18px 0 0; color:rgba(253,253,252,.78); line-height:1.9; }
.subpage-footer__brand a { color:inherit; }
.subpage-footer__title { margin:0 0 16px; color:var(--lime); font-size:14px; font-weight:500; letter-spacing:.12em; }
.subpage-footer__links { display:grid; gap:9px; color:rgba(253,253,252,.88); }
.subpage-footer__bottom { width:var(--content); margin:52px auto 0; padding-top:16px; border-top:1px solid rgba(253,253,252,.2); color:rgba(253,253,252,.62); font-size:12px; }
.subpage-fiction-note { display:inline-block; max-width:70em; line-height:1.6; text-align:center; }

@media (max-width: 980px) {
  .subpage-hero--quiet { gap:42px; }
  .subpage-hero--field { grid-template-columns:1fr .7fr; }
  .subpage-story,.subpage-profile { gap:48px; }
  .subpage-footer__inner { grid-template-columns:1fr 1fr; }
  .subpage-footer__brand { grid-column:1/-1; }
  .subpage-role-layout { gap:48px; }
}

@media (max-width: 760px) {
  .subpage-main { padding-top: var(--header-height); }
  .subpage-hero,.subpage-hero--photo,.subpage-hero--split { min-height:0; }
  .subpage-hero h1 { font-size:clamp(31px,9vw,44px); }
  .subpage-hero__lead,.subpage-section__intro { font-size:16px; line-height:2; }
  .subpage-hero--photo .subpage-hero__copy { min-height:520px; width:calc(100% - 40px); padding-bottom:56px; }
  .subpage-hero--quiet { display:flex; width:calc(100% - 40px); flex-direction:column; align-items:stretch; gap:38px; min-height:0; padding:74px 0 68px; }
  .subpage-hero--quiet .subpage-hero__copy { padding-top:0; }
  .subpage-hero--quiet .subpage-hero__media { height:300px; }
  .subpage-hero--split { display:flex; flex-direction:column; }
  .subpage-hero--split .subpage-hero__media { min-height:300px; height:300px; }
  .subpage-hero--split .subpage-hero__copy { padding:62px 20px 70px; }
  .subpage-hero--field { display:flex; flex-direction:column; align-items:stretch; gap:36px; min-height:0; padding:70px 20px 72px; }
  .subpage-hero--field .subpage-hero__media { height:300px; }
  .subpage-section { padding:82px 0; }
  .subpage-section > .subpage-width { width:calc(100% - 40px); }
  .subpage-story,.subpage-steps,.subpage-checklist,.subpage-schedule,.subpage-profile { display:flex; flex-direction:column; gap:38px; margin-top:52px; }
  .subpage-story__image { aspect-ratio:1.18; }
  .subpage-steps__list { width:100%; }
  .subpage-index { margin-top:52px; }
  .subpage-index__grid { grid-template-columns:1fr; gap:0; margin-top:24px; }
  .subpage-index__item:nth-last-child(-n+2) { border-bottom:0; }
  .subpage-index__item:last-child { border-bottom:1px solid var(--line); }
  .subpage-pathway { grid-template-columns:1fr; margin-top:52px; }
  .subpage-pathway__item { min-height:0; padding:26px 0; }
  .subpage-pathway__item + .subpage-pathway__item { border-left:0; }
  .subpage-flow { margin-top:52px; }
  .subpage-flow__track { grid-template-columns:1fr; }
  .subpage-flow__item,.subpage-flow__item + .subpage-flow__item { min-height:0; padding:24px 0; border-left:0; }
  .subpage-compare { margin-top:52px; }
  .subpage-profile__photo { max-width:360px; }
  .subpage-profile__meta { grid-template-columns:1fr; }
  .subpage-updates { margin-top:52px; }
  .subpage-update { grid-template-columns:88px minmax(0,1fr) 22px; gap:10px 14px; }
  .subpage-update time { grid-column:1; grid-row:1; }
  .subpage-update__tag { grid-column:2; grid-row:1; }
  .subpage-update h3 { grid-column:2; grid-row:2; font-size:17px; line-height:1.7; }
  .subpage-update__arrow { grid-column:3; grid-row:1/3; font-size:20px; }
  .subpage-reading { grid-template-columns:1fr; gap:28px; margin-top:52px; }
  .subpage-reading__card { min-height:0; }
  .subpage-medical-grid,.subpage-reservation-grid,.subpage-access-layout { grid-template-columns:1fr; }
  .subpage-medical-grid,.subpage-guide-list,.subpage-category-list { margin-top:52px; }
  .subpage-medical-card { min-height:210px; }
  .subpage-medical-card h3 { margin-top:44px; font-size:24px; }
  .subpage-guide-row { grid-template-columns:48px minmax(0,1fr) 20px; gap:16px; padding:24px 0; }
  .subpage-guide-row h3 { font-size:20px; }
  .subpage-guide-row > span:last-child { font-size:20px; }
  .subpage-hours-row { grid-template-columns:58px 1fr; }
  .subpage-hours-row span { font-size:20px; }
  .subpage-category-row { grid-template-columns:84px minmax(0,1fr) 20px; gap:10px 14px; }
  .subpage-category-row time { font-size:13px; letter-spacing:0; }
  .subpage-category-row > span { grid-column:2; grid-row:1; }
  .subpage-category-row > div { grid-column:1/3; grid-row:2; }
  .subpage-category-row > b { grid-column:3; grid-row:1/3; font-size:20px; }
  .subpage-role-layout { display:flex; flex-direction:column; gap:34px; margin-top:52px; }
  .subpage-role-points { grid-template-columns:1fr; gap:0; }
  .subpage-role-point h3 { margin-top:26px; }
  .subpage-article__body { margin-top:48px; }
  .subpage-cta { display:block; padding:36px 0; }
  .subpage-cta a { width:100%; margin-top:26px; }
  .subpage-footer { padding-top:56px; }
  .subpage-footer__inner,.subpage-footer__bottom { width:calc(100% - 40px); }
  .subpage-footer__inner { grid-template-columns:1fr; gap:30px; }
  .subpage-footer__brand { grid-column:auto; }
}

@media (prefers-reduced-motion: reduce) {
  .subpage-cta a { transition:none; }
}

/* --------------------------------------------------------------------------
   Final corner-radius rules
   下層も通常カード／画像／操作要素の形をトップと揃える。
   角を1か所開ける表現はヒーローと主役画像だけに限定する。
   -------------------------------------------------------------------------- */
.subpage-medical-card,
.subpage-checklist__aside,
.subpage-hours-card,
.subpage-map-card,
.subpage-map-card__map,
.subpage-role-intro,
.subpage-contact-card {
  border-radius: var(--r-10);
}

.subpage-reading__image {
  border-radius: var(--r-10);
}

.subpage-hero--quiet .subpage-hero__media,
.subpage-hero--field .subpage-hero__media,
.subpage-story__image,
.subpage-profile__photo {
  border-radius: var(--r-10) var(--r-10) var(--r-10) 0;
}

.subpage-cta a {
  border-radius: var(--r-8);
}
