/* ==========================================================================
   Varix Clinic theme
   ========================================================================== */
:root {
  --c-orange: #ff8800;
  --c-orange-dark: #ff6e00;
  --c-orange-btn: #f39c10;
  --c-navy: #002e67;
  --c-navy-nav: #002e69;
  --c-footer: #00275e;
  --c-footer-bottom: #021e44;
  --c-beige: #ffe9c6;
  --c-pink: #ea5a6b;
  --c-text: #000;
  --c-gray: #6d6d6d;
  --c-border: #ccc;
  --font: "Noto Sans JP", sans-serif;
  --font-serif: "Noto Serif JP", "Yu Mincho", YuMincho, "Hiragino Mincho ProN", serif;
  --container: 1120px; /* 内容幅 1080 ＋ 左右の余白 20×2（2026-10-21 松本さん: 1140→1120 に） */
  /* 上限のあるリキッドレイアウト
     --u: 寸法の単位。基準幅（PC 1080px = 1120 − 20×2）で 1px。1120px 未満では #page の幅に比例して縮む（上限 1px）
     --t: 文字の単位。--u と同じだが PC 0.8 倍 / SP 0.9 倍で下げ止まる
     寸法は calc(var(--u) * 基準px)、文字は calc(var(--t) * 基準px) で書く。枠線（1〜2px）は固定 */
  --u: min(1px, calc((100cqw - 40px) / 1080));
  --t: max(var(--u), 0.8px);
  /* 余白の体系: セクション / 見出しブロック / 要素間 */
  --sp-section: calc(var(--u) * 80);
  --sp-page-end: calc(var(--u) * 120); /* ページ最後のセクションとフッターの間（セクション間の 1.5 倍） */
  --sp-block: calc(var(--u) * 56);
  --sp-el: calc(var(--u) * 24);
}
#page { container-type: inline-size; }
/* cqw は #page の子孫でだけ #page 基準になる（#page 自身に書くとビューポート基準になる）ので、文字サイズは直下の要素に当てる */
#page > * { font-size: calc(var(--t) * 18); }

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  font-family: var(--font);
  font-size: 18px;
  font-weight: 400;
  line-height: 1.8;
  color: var(--c-text);
  background: #fff;
  overflow-x: hidden;
  /* 行頭の全角括弧（「（」「【」）の左の空きを詰める。Chrome 123+ / Safari 18.4+。
     未対応ブラウザでは theme.js が段落などの先頭の括弧を .trim-start で包み、halt（約物の半角幅）で詰める（先頭行だけ） */
  text-spacing-trim: trim-start;
  -webkit-tap-highlight-color: transparent;
}
.trim-start { font-feature-settings: "halt"; }
img { max-width: 100%; height: auto; vertical-align: middle; }
a { color: var(--c-orange); text-decoration: none; transition: opacity .2s; }
a:hover { opacity: .7; }
a, button, summary { touch-action: manipulation; }
:focus-visible { outline: 3px solid var(--c-navy); outline-offset: 2px; }
.skip-link:focus { position: fixed; top: 8px; left: 8px; z-index: 1000; width: auto; height: auto; padding: 10px 16px; clip: auto; background: #fff; color: var(--c-navy); font-weight: bold; }
p { margin: 0 0 1em; }
p:last-child { margin-bottom: 0; }
ul, ol { margin: 0; padding: 0; list-style: none; }
figure { margin: 0; }
strong, b, .is-bold { font-weight: bold; }
small { font-size: .89em; }
.icon { width: 1em; height: 1em; fill: currentColor; vertical-align: -.15em; flex: 0 0 auto; }
.icon--stroke { fill: none; stroke: currentColor; stroke-width: 1.8; }
.screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.anchor { display: block; }
/* アンカー移動時、固定ヘッダーの下に 16px 空けて止める。--header-h は theme.js がヘッダーの実寸を入れる（値は JS が動くまでの仮） */
html { scroll-padding-top: calc(var(--header-h, 187px) + 16px); }

/* 見出し階層: h2 34 / h3 26 / h4 22 / h5 18。h3 以下は太字で段差を付ける */
h1, h2, h3, h4, h5, h6 { margin: 0; line-height: 1.45; text-wrap: balance; }
h2 { font-size: calc(var(--t) * 34); letter-spacing: .02em; color: var(--c-orange); font-weight: bold; }
h3 { font-size: calc(var(--t) * 26); color: var(--c-orange); font-weight: bold; text-wrap: pretty; }
h3::before { content: "■"; display: inline-block; font-size: 55%; vertical-align: .25em; margin-right: calc(var(--u) * 10); }
h4 { font-size: calc(var(--t) * 22); color: var(--c-text); font-weight: bold; }
h5 { font-size: calc(var(--t) * 18); color: var(--c-orange); font-weight: bold; line-height: 1.5; }
.is-black { color: var(--c-text); }
.sec-title { text-align: center; margin-bottom: calc(var(--u) * 40); }
.sec-title--black { color: var(--c-text); }
.text-center { text-align: center; }
.mt-0 { margin-top: 0 !important; }
.mt-25 { margin-top: calc(var(--u) * 25); }
.mt-60 { margin-top: var(--sp-block); }
.is-sp { display: none; }

.container { max-width: var(--container); margin: 0 auto; padding: 0 20px; }
.container--narrow { max-width: 840px; }
.bg-beige { background: var(--c-beige); }

/* ボタン
   -------------------------------------------------------------------------- */
.btn-wrap { text-align: center; margin: 0; }
.btn-wrap--left { text-align: left; }
.btn-wrap--cta { margin-top: var(--sp-block); }
.btn {
  display: inline-flex;
  align-items: center;
  gap: calc(var(--u) * 10);
  min-height: calc(var(--u) * 56);
  padding: calc(var(--u) * 16) calc(var(--u) * 36);
  border-radius: 4px;
  font-size: calc(var(--t) * 17);
  font-weight: bold;
  line-height: 1.3;
  color: #fff;
  transition: opacity .2s, transform .1s, box-shadow .1s;
}
.btn__icon { width: calc(var(--u) * 18); height: calc(var(--u) * 18); }
.btn--cta {
  background: linear-gradient(#0ac742, #079c34);
  box-shadow: 0 5px 0 #067e2a;
}
.btn--cta:hover, .btn--cta:active { box-shadow: none; transform: translateY(5px); }
.btn--orange { background: var(--c-orange-btn); color: #000; }
.btn:hover { opacity: .8; }

/* ヘッダー
   -------------------------------------------------------------------------- */
.site-header {
  position: sticky;
  top: 0;
  z-index: 999;
  background: #fff;
  border-top: 5px solid var(--c-navy);
  box-shadow: 0 0 6px rgba(0, 0, 0, .1);
}
.site-header__main {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: calc(var(--u) * 118);
}
.site-logo { margin: 0; line-height: 1; }
.site-logo__title { margin: 0; font-size: inherit; line-height: 1; }
.site-logo__link { display: block; }
.site-logo__img { height: calc(var(--u) * 54); width: auto; }
.site-logo__note {
  margin: calc(var(--u) * 4) 0 0;
  padding-left: calc(var(--u) * 40);
  font-size: calc(var(--t) * 14);
  font-weight: bold;
  line-height: 1.2;
  color: #333;
}
.head-cta { display: flex; align-items: center; gap: calc(var(--u) * 15); }
.head-cta a {
  display: flex;
  align-items: center;
  height: calc(var(--u) * 64);
  padding: 0 calc(var(--u) * 20);
  border-radius: 4px;
  background: var(--c-pink);
  color: #fff;
  font-weight: bold;
}
.head-cta__web { background: var(--c-navy-nav) !important; }
.head-cta__icon { width: calc(var(--u) * 18); height: calc(var(--u) * 18); margin-right: calc(var(--u) * 10); }
.head-cta__txt { font-size: calc(var(--t) * 11); line-height: 1.4; text-align: center; }
.head-cta__txt strong { display: block; font-size: calc(var(--t) * 18); }
.head-cta__web .head-cta__txt strong { font-size: calc(var(--t) * 16); }

.global-nav { border-top: 1px solid #eee; }
.nav-toggle, .sub-toggle { display: none; }
.global-nav__list { display: flex; justify-content: space-between; }
.global-nav__list li { position: relative; }
.global-nav__list a { display: block; color: #111; }
.global-nav__list > li > a { position: relative; padding: calc(var(--u) * 16) calc(var(--u) * 12); font-size: calc(var(--t) * 17); transition: color .25s; }
/* マウスオーバーで上辺に 2px のオレンジ線が左から右へ伸びる */
.global-nav__list > li > a::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  height: 2px;
  background: var(--c-orange);
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform .3s ease-out;
}
.global-nav__list > li:hover > a::before { transform: scaleX(1); }
.global-nav__list > li:first-child > a { padding-left: 0; }
.global-nav__list > li:hover > a { color: var(--c-orange); opacity: 1; } /* 現在ページの強調はしない（TOP のアンカーリンクが全部 current になるため） */
.global-nav__list > .menu-item-has-children > a { padding-right: calc(var(--u) * 28); }
.global-nav__list > .menu-item-has-children > a::after {
  content: "";
  position: absolute;
  right: calc(var(--u) * 12);
  top: 50%;
  width: calc(var(--u) * 8);
  height: calc(var(--u) * 5);
  margin-top: calc(var(--u) * -2);
  background: rgba(0, 0, 0, .3);
  clip-path: polygon(0 0, 100% 0, 50% 100%);
}
.global-nav__list .sub-menu {
  position: absolute;
  left: 0;
  top: 100%;
  z-index: 30;
  display: none;
  min-width: calc(var(--u) * 220);
  background: #fff;
  box-shadow: 0 1px 7px -3px rgba(0, 0, 0, .7);
}
.global-nav__list li:hover > .sub-menu,
.global-nav__list li:focus-within > .sub-menu { display: block; }
.global-nav__list .sub-menu a {
  padding: calc(var(--u) * 14) calc(var(--u) * 18);
  font-size: calc(var(--t) * 14);
  line-height: 1.4;
  color: #333;
  border-bottom: 1px solid rgba(0, 0, 0, .06);
  white-space: nowrap;
}
.global-nav__list .sub-menu a:hover { background: #f9f9f9; opacity: 1; }
.global-nav__list .sub-menu .sub-menu { left: 100%; top: 0; }
.global-nav__list .sub-menu .menu-item-has-children > a::after {
  content: "";
  position: absolute;
  right: calc(var(--u) * 10);
  top: 50%;
  width: calc(var(--u) * 5);
  height: calc(var(--u) * 8);
  margin-top: calc(var(--u) * -4);
  background: rgba(0, 0, 0, .3);
  clip-path: polygon(0 0, 100% 50%, 0 100%);
}

/* メインビジュアル
   -------------------------------------------------------------------------- */
.hero { position: relative; aspect-ratio: 3 / 1; overflow: hidden; background: #eee; }
.hero__slide { position: absolute; inset: 0; opacity: 0; transition: opacity 1.8s; }
.hero__slide.is-active { opacity: 1; }
.hero__slide img { width: 100%; height: 100%; object-fit: cover; }
.hero__dots { position: absolute; left: 0; right: 0; bottom: calc(var(--u) * 12); display: flex; justify-content: center; gap: calc(var(--u) * 10); }
.hero__dot { width: calc(var(--u) * 12); height: calc(var(--u) * 12); padding: 0; border: 2px solid #fff; border-radius: 50%; background: transparent; cursor: pointer; }
.hero__dot.is-active { background: #fff; }
.hero__arrow {
  position: absolute;
  top: 50%;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  width: calc(var(--u) * 48);
  height: calc(var(--u) * 48);
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: rgba(255, 255, 255, .85);
  color: var(--c-navy);
  font-size: calc(var(--u) * 26);
  cursor: pointer;
  transform: translateY(-50%);
  transition: background-color .2s, opacity .2s;
}
.hero__arrow:hover { background: #fff; }
.hero__arrow--prev { left: calc(var(--u) * 16); }
.hero__arrow--next { right: calc(var(--u) * 16); }

/* 導入文・予約バナー
   -------------------------------------------------------------------------- */
.intro { border-bottom: 1px solid #eaeaea; }
.intro__text { margin: 0; padding: calc(var(--u) * 32) 0; text-align: center; font-size: calc(var(--t) * 18); line-height: 1.6; }
.reserve { padding: calc(var(--u) * 48) 0 0; }
.reserve__banner { margin: 0; text-align: center; }
.reserve__banner img { box-shadow: 0 0 10px rgba(0, 0, 0, .15); }
.reserve__note { max-width: calc(var(--u) * 770); margin: calc(var(--u) * 16) auto 0; padding-left: calc(var(--u) * 10); font-size: calc(var(--t) * 16); color: #333; }

/* 無料静脈瘤検査バナー
   ページ全体と同じ --u で比例拡大縮小する（基準幅 PC 1080px / SP 358px）。
   バナーは画像扱いなので文字も --t ではなく --u（下限なし）で書く
   -------------------------------------------------------------------------- */
.kensa-section { padding: calc(var(--u) * 48) 0 0; }
.kensa {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) calc(var(--u) * 440);
  grid-template-areas:
    "bar bar"
    "head head"
    "cal items"
    "alert notes";
  column-gap: calc(var(--u) * 18);
  margin: 0 auto;
  padding: 0 calc(var(--u) * 30) calc(var(--u) * 18);
  border: 2px solid #e8566d;
  background: #fff;
  color: #333;
  font-family: var(--font-serif);
  font-weight: 500;
  line-height: 1.4;
}
.kensa__bar {
  grid-area: bar;
  position: relative;
  z-index: 0;
  margin: 0 calc(var(--u) * -30) calc(var(--u) * 18);
  padding: calc(var(--u) * 8) calc(var(--u) * 30); /* 左はコンテンツの左余白（30）と揃える */
  color: #fff;
  font-size: calc(var(--u) * 22);
  letter-spacing: .08em;
  white-space: nowrap;
}
/* 帯の濃いピンクは 62% ＋ 50 の幅（内容幅 1080 で文字の右に 50 ほど余裕が出る位置。2026-10-21 松本さん「もう少し右に」）。
   右端は白側が凸（ピンクが丸くえぐれる）になるよう、白い層を重ねて左上を丸める（白の左端 = ピンクの右端 − 丸み 90） */
.kensa__bar::before {
  content: "";
  position: absolute;
  z-index: -1;
  left: 0;
  top: 0;
  bottom: 0;
  width: calc(62% + var(--u) * 50);
  background: #e8566d;
}
.kensa__bar::after {
  content: "";
  position: absolute;
  z-index: -1;
  left: calc(62% + var(--u) * 50 - var(--u) * 90);
  right: 0;
  top: 0;
  bottom: 0;
  background: #fff;
  border-top-left-radius: calc(var(--u) * 90) 100%;
}
.kensa__head { grid-area: head; display: flex; align-items: center; gap: calc(var(--u) * 20); margin-bottom: calc(var(--u) * 10); min-height: calc(var(--u) * 104); }
.kensa__free {
  display: flex;
  align-items: center;
  justify-content: center;
  width: calc(var(--u) * 72);
  height: calc(var(--u) * 72);
  border: 2px solid #e8566d;
  border-radius: 50%;
  color: #e8566d;
  font-size: calc(var(--u) * 24);
  font-weight: 600;
}
.kensa__title { font-size: calc(var(--u) * 92); font-weight: 600; line-height: 1; letter-spacing: .02em; color: #e8566d; white-space: nowrap; }
.kensa__illust { position: absolute; z-index: 1; right: calc(var(--u) * 50); top: calc(var(--u) * 5); width: calc(var(--u) * 340); }
.kensa__illust img { display: block; width: 100%; height: auto; }
.kensa__cal {
  grid-area: cal;
  align-self: end;
  display: grid;
  grid-template-columns: calc(var(--u) * 84) repeat(6, 1fr);
  grid-template-rows: repeat(2, calc(var(--u) * 80));
  /* 罫線はマスの間の 1px の隙間に下地の色を見せて引く。マスごとに枠線を付けると、隣り合う 2 本の線が
     小数点の幅で別々のピクセルに寄り、ブラウザ幅によって二重に見えるため */
  gap: 1px;
  border: 1px solid #e8566d;
  background: #e8566d;
}
.kensa__month {
  grid-row: 1 / 3;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background: #e6446d;
  color: #fff;
  font-size: calc(var(--u) * 40);
  line-height: 1.1;
}
.kensa__month span { display: block; }
.kensa__cell { position: relative; display: flex; align-items: center; justify-content: center; background: #fff; }
.kensa__cell--empty::after {
  content: "";
  position: absolute;
  inset: 0;
  /* 斜線は SVG（グラデーションだとギザつくため）。non-scaling-stroke で太さ 1.2px 固定 */
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cline x1='0' y1='100' x2='100' y2='0' stroke='%23e8566d' stroke-width='1.2' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E") no-repeat center / 100% 100%;
}
.kensa__day { display: block; font-size: calc(var(--u) * 44); line-height: 1; font-variant-numeric: tabular-nums; }
.kensa__wd { position: absolute; right: 0; bottom: 0; display: flex; align-items: center; justify-content: center; width: calc(var(--u) * 22); height: calc(var(--u) * 22); border-top-left-radius: calc(var(--u) * 6); background: #e8566d; color: #fff; font-size: calc(var(--u) * 12); line-height: 1; }
.kensa__items { grid-area: items; position: relative; z-index: 1; align-self: end; border: 2px solid #e8566d; background: #fff0f3; }
.kensa__items-head {
  margin: 0;
  padding: calc(var(--u) * 3);
  background: #e8566d;
  color: #fff;
  font-size: calc(var(--u) * 22);
  letter-spacing: .3em;
  text-indent: .3em;
  text-align: center;
}
.kensa__items ol { padding: calc(var(--u) * 6) calc(var(--u) * 18); }
.kensa__items li { display: flex; align-items: center; gap: calc(var(--u) * 14); padding: calc(var(--u) * 8) 0; border-bottom: 1px solid #d4a0ad; font-size: calc(var(--u) * 20); font-weight: 600; line-height: 1.45; }
.kensa__items li:last-child { border-bottom: 0; }
.kensa__items li span:last-child { text-wrap: balance; }
.kensa__num { font-size: calc(var(--u) * 28); font-style: italic; color: #e8566d; }
.kensa__items--single li { justify-content: center; padding: calc(var(--u) * 24) 0; font-size: calc(var(--u) * 26); text-align: center; }
/* 3 項目（神戸・横浜）は行を詰めて日程表の高さに収める（2 項目と同じバナーの高さにする） */
.kensa__items--3 ol { padding: calc(var(--u) * 3) calc(var(--u) * 18); }
.kensa__items--3 li { padding: calc(var(--u) * 6) 0; font-size: calc(var(--u) * 19); line-height: 1.35; }
.kensa__items--3 .kensa__num { font-size: calc(var(--u) * 24); }
.kensa__alert {
  grid-area: alert;
  margin: calc(var(--u) * 18) 0 0;
  padding: calc(var(--u) * 12) calc(var(--u) * 20);
  background: #e60012;
  color: #fff;
  font-family: var(--font);
  font-weight: bold;
  line-height: 1.5;
}
.kensa__alert span { display: block; white-space: nowrap; }
.kensa__alert-1 { font-size: calc(var(--u) * 24); color: #fff6c7; }
.kensa__alert-2 { font-size: calc(var(--u) * 20); color: #fff6c7; }
.kensa__alert-3 { font-size: calc(var(--u) * 17); }
.kensa__notes {
  grid-area: notes;
  display: flex;
  flex-direction: column;
  justify-content: center;
  margin: calc(var(--u) * 18) 0 0;
  padding: calc(var(--u) * 10) calc(var(--u) * 16);
  border: 2px solid #e60012;
  color: #e60012;
  font-family: var(--font);
  font-size: calc(var(--u) * 16);
  font-weight: bold;
  line-height: 1.7;
}
.kensa__notes li { white-space: nowrap; }

/* 診療内容・お知らせ
   -------------------------------------------------------------------------- */
.services { padding: var(--sp-section) 0 0; }
.services__list { display: flex; justify-content: center; gap: calc(var(--u) * 20); }
.notice-box {
  margin-top: var(--sp-block);
  padding: calc(var(--u) * 20) calc(var(--u) * 24);
  border: 2px solid #1da7e2;
  background: #edf9f9;
  font-size: calc(var(--t) * 16);
}
.notice-box__title { font-weight: bold; text-align: center; font-size: calc(var(--t) * 18); }
.notice-box a { word-break: break-all; }

.news { padding: var(--sp-section) 0; }
.news__list { border-top: 1px solid #d4d4d4; }
.news__list li { border-bottom: 1px solid #d4d4d4; }
.news__link {
  display: flex;
  align-items: baseline;
  gap: calc(var(--u) * 32);
  padding: calc(var(--u) * 16) calc(var(--u) * 12);
  color: var(--c-orange);
  transition: background-color .2s;
}
.news__link:hover { background: #fff6ea; opacity: 1; }
.news__date { flex: 0 0 auto; font-size: calc(var(--t) * 16); color: var(--c-gray); font-variant-numeric: tabular-nums; }
.news__title { color: var(--c-orange); }

/* 広告用 LP（page-lp.php）: お知らせの枠と、その下の予約ボタン。他は TOP と同じ部品 */
.lp-news { padding: calc(var(--u) * 48) 0 0; }
.lp-news__box { max-width: calc(var(--u) * 770); margin: 0 auto; padding: calc(var(--u) * 20) calc(var(--u) * 24); border: 1px solid var(--c-orange-btn); }
.lp-news__title { margin-bottom: calc(var(--u) * 8); text-align: center; font-size: calc(var(--t) * 22); }
.lp-news__list a { display: block; padding: calc(var(--u) * 6) 0; }
.lp-news__list a::after { content: " »"; }
.btn-wrap--cta.lp-cta { margin-top: calc(var(--u) * 40); padding-bottom: var(--sp-section); } /* 次のベージュのブロックとの間を空ける */
.hours-table__note { margin: calc(var(--u) * 16) 0 0; font-size: calc(var(--t) * 16); }
/* LP の検査バナーは、お知らせの枠と同じ幅（最大 770）。バナーの中は自分の幅を基準に縮む（画像と同じ振る舞い。1080 幅の設計を 770 で約 0.71 倍）
   .kensa-narrow を独立したコンテナにして、その中の --u を定義し直す（cqw は一番近いコンテナの幅） */
.kensa-narrow { container-type: inline-size; max-width: calc(var(--u) * 770); margin: 0 auto; }
.kensa-narrow .kensa { --u: calc(100cqw / 1080); }
/* 検査バナーの日程なし版（LP）: カレンダーの位置に、黄色の蛍光ペン風の赤い太字 */
.kensa__nodate {
  grid-area: cal;
  align-self: center; /* 右の「検査項目」の枠に対して上下中央 */
  margin: 0;
  font-family: var(--font);
  font-size: calc(var(--u) * 44);
  font-weight: bold;
  line-height: 1.5;
  color: #e60012;
}
/* マーカー風: 文字の下半分だけに黄色を引く */
.kensa__nodate span { background: linear-gradient(transparent 58%, #fff100 58%, #fff100 94%, transparent 94%); padding: 0 .1em; }

/* TOP のコラム（最新 4 件、2×2。左にアイキャッチ、右にタイトル・日付・カテゴリ・抜粋 2 行）。日付・カテゴリの見た目は一覧のカード（.column-card__meta）と共通 */
.column-top { padding: 0 0 var(--sp-section); } /* 上はお知らせの下余白 */
.column-rows { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: calc(var(--u) * 24) calc(var(--u) * 40); }
.column-row__link { display: flex; gap: calc(var(--u) * 20); align-items: flex-start; color: var(--c-text); }
.column-row__thumb { flex: 0 0 calc(var(--u) * 200); display: grid; place-items: center; aspect-ratio: 16 / 10; overflow: hidden; border-radius: 4px; background: var(--c-beige); }
.column-row__thumb img { width: 100%; height: 100%; object-fit: cover; }
.column-row__body { flex: 1 1 auto; min-width: 0; }
.column-row__title { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; margin: 0 0 calc(var(--u) * 4); font-size: calc(var(--t) * 17); font-weight: bold; line-height: 1.5; }
.column-row .column-card__meta { margin-bottom: calc(var(--u) * 6); }
.column-row__excerpt { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; margin: 0; font-size: calc(var(--t) * 14); line-height: 1.6; color: #333; }

/* 下肢静脈瘤とは
   -------------------------------------------------------------------------- */
.about { padding: var(--sp-section) 0; }
.about h3 { margin-top: var(--sp-block); margin-bottom: var(--sp-el); }
.about__figures { display: flex; gap: calc(var(--u) * 60); justify-content: center; margin-top: calc(var(--u) * 30); }
.about__figures figure { flex: 0 1 calc(var(--u) * 480); text-align: center; }
.about__figures img { display: block; width: 100%; aspect-ratio: 6 / 5; object-fit: contain; background: #fff; }
.about__figures figcaption { margin-top: calc(var(--u) * 8); font-size: calc(var(--t) * 14); color: var(--c-gray); }
.cols-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 0 calc(var(--u) * 20); }

.icon-list li { display: flex; align-items: flex-start; gap: calc(var(--u) * 10); padding: calc(var(--u) * 3) 0; line-height: 1.6; }
.icon-list__icon { width: calc(var(--u) * 20); height: calc(var(--u) * 20); margin-top: .5em; color: var(--c-orange-dark); }
.icon-list--check .icon-list__icon { color: var(--c-orange); }
.icon-list--sm .icon-list__icon { width: calc(var(--u) * 14); height: calc(var(--u) * 14); margin-top: .65em; }
.media-row__body .icon-list { margin: calc(var(--u) * 16) 0 calc(var(--u) * 20); }

.toggle-list { border-top: 1px solid #d4d4d4; }
.toggle { border-bottom: 1px solid #d4d4d4; background: #fff; }
.toggle summary {
  position: relative;
  padding: calc(var(--u) * 16) calc(var(--u) * 48) calc(var(--u) * 16) calc(var(--u) * 20);
  font-weight: bold;
  cursor: pointer;
  list-style: none;
  transition: background-color .2s;
}
.toggle summary:hover { background: #fff8ef; }
.toggle summary::-webkit-details-marker { display: none; }
.toggle summary::after {
  content: "";
  position: absolute;
  right: calc(var(--u) * 20);
  top: 50%;
  width: calc(var(--u) * 12);
  height: calc(var(--u) * 7);
  margin-top: calc(var(--u) * -4);
  background: var(--c-orange);
  clip-path: polygon(0 0, 100% 0, 50% 100%);
  transform-origin: center;
  transition: transform .25s ease-out;
}
.toggle[open]:not(.is-closing) summary::after { transform: rotate(180deg); }
.toggle__body { padding: calc(var(--u) * 4) calc(var(--u) * 20) calc(var(--u) * 24); }
.toggle__body p + p { margin-top: calc(var(--u) * 12); }

.media-row { display: flex; gap: calc(var(--u) * 40); align-items: flex-start; }
.media-row__img { flex: 0 0 33%; }
.media-row__img img { display: block; width: 100%; }
.media-row__body { flex: 1 1 auto; }
.media-row--36 .media-row__img { flex-basis: 36%; }
/* width: auto だと遅延読み込み前に高さが確保されず、読み込み後にページが約 200px 伸びてアンカー移動の止まる位置がずれていた（列幅 389 < 画像 500 なので 100% でも同じ大きさ） */

.stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: calc(var(--u) * 19.5); } /* 列幅 (1080 − 19.5×2) / 3 = 347 で画像 347px が等倍（ぼけ防止） */
.stats li { text-align: center; }
.stats img { display: block; width: 100%; }
.stats__num { margin-top: calc(var(--u) * 10); font-size: 3em; font-weight: bold; line-height: 1.2; color: var(--c-text); }

.risk-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: calc(var(--u) * 19.5); }
.risk-grid img { display: block; width: 100%; border: 1px solid #fff; }

.lead-strong { margin: var(--sp-block) 0 0; text-align: center; font-size: calc(var(--t) * 30); font-weight: bold; line-height: 1.5; letter-spacing: .02em; color: #0c0c0c; }

/* 進行度チェック
   -------------------------------------------------------------------------- */
.progress { padding: var(--sp-section) 0; }
.progress__lead { margin: 0 0 var(--sp-el); text-align: center; }
.progress__row { margin-top: calc(var(--u) * 40); }
.progress__row .media-row__body h5 { margin-bottom: calc(var(--u) * 12); }
.progress h3 { margin-bottom: var(--sp-el); }

/* 治療法
   -------------------------------------------------------------------------- */
.treatment { padding: var(--sp-section) 0; }
.treatment h3 { margin-top: var(--sp-block); margin-bottom: var(--sp-el); padding-bottom: calc(var(--u) * 10); border-bottom: 2px solid var(--c-orange); }
.treatment__lead strong { font-size: 1.1em; }
.treatment__lead small { color: #333; }
.treatment__row { margin-top: calc(var(--u) * 40); }
.treatment__row .media-row__img img { border: 1px solid #fff; }
.treatment__row h4 { margin-bottom: calc(var(--u) * 12); padding-left: calc(var(--u) * 12); border-left: 4px solid var(--c-orange); line-height: 1.3; }
.treatment__row h5 { margin: 0 0 calc(var(--u) * 10); }
.treatment__row h5 + .icon-list { margin-top: 0; }
.treatment__row .icon-list + p { margin-top: calc(var(--u) * 16); }

/* 流れ
   -------------------------------------------------------------------------- */
.flow { padding: var(--sp-section) 0; }
.flow__step { padding: calc(var(--u) * 28) calc(var(--u) * 32); background: #fff; border-radius: 4px; }
.flow__step h3 { margin-bottom: calc(var(--u) * 12); }
.flow__arrow { margin: calc(var(--u) * 12) 0; text-align: center; font-size: calc(var(--t) * 14); color: var(--c-gray); }
.flow__arrow img { display: block; width: calc(var(--u) * 40); margin: 0 auto calc(var(--u) * 4); }

/* クリニック紹介
   -------------------------------------------------------------------------- */
.clinic { padding: var(--sp-section) 0 var(--sp-page-end); } /* 最後のセクションだけフッターとの間を広く */
.video-wrap { position: relative; max-width: calc(var(--u) * 930); margin: 0 auto; aspect-ratio: 16 / 9; background: #000; }
.video-wrap iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.video-wrap--bottom { margin-top: var(--sp-block); }
.doctor { display: flex; gap: calc(var(--u) * 48); margin-top: var(--sp-block); }
.doctor__body { flex: 1 1 50%; }
.doctor__body h3 { margin-bottom: var(--sp-el); }
.doctor__body p + p { margin-top: 1em; }
.doctor__photo { flex: 0 0 calc(var(--u) * 360); text-align: center; }
.doctor__photo img { display: block; width: 100%; }
.doctor__photo figcaption { margin-top: calc(var(--u) * 8); font-size: calc(var(--t) * 14); color: var(--c-gray); }
.clinic .btn-wrap { margin-top: calc(var(--u) * 32); }
.banner { margin: 0; text-align: center; }
.banner--interview { margin-top: var(--sp-section); }
.banner--interview img { box-shadow: 0 0 10px rgba(0, 0, 0, .3); }
.banner--interview figcaption { margin-top: calc(var(--u) * 16); font-size: calc(var(--t) * 16); color: var(--c-gray); }
.banner--caloo { margin-top: calc(var(--u) * 32); }
.banner--caloo img { border: 1px solid #6ec1e4; }
.banner--df { display: grid; grid-template-columns: repeat(3, 1fr); gap: calc(var(--u) * 20); margin-top: calc(var(--u) * 32); }
.banner--df img { display: block; width: 100%; }
.banner__caption { margin: calc(var(--u) * 16) 0 0; text-align: center; font-size: calc(var(--t) * 16); color: var(--c-gray); }

.hours { display: flex; gap: calc(var(--u) * 48); align-items: flex-start; margin-top: var(--sp-section); }
.hours__body { flex: 1 1 50%; }
.hours__body h3 { margin: 0 0 var(--sp-el); }
.hours__body .icon-list { margin-bottom: calc(var(--u) * 40); }
.hours__photo { flex: 0 0 50%; }
.hours__photo img { display: block; width: 100%; }

.hours-table { width: 100%; margin-top: calc(var(--u) * 32); border: 1px solid var(--c-border); border-collapse: collapse; text-align: center; font-variant-numeric: tabular-nums; }
.hours-table th, .hours-table td { padding: calc(var(--u) * 15) calc(var(--u) * 10); border-right: 1px solid var(--c-border); border-bottom: 1px solid var(--c-border); vertical-align: middle; }
.hours-table th { background: #ff9900; color: #fff; font-weight: bold; }
.hours-table td { background: #fff; }
.hours-table td:first-child { text-align: left; }

.access { display: flex; gap: calc(var(--u) * 48); align-items: center; margin-top: var(--sp-block); }
.access__body { flex: 1 1 50%; }
.access__body h3 { margin-bottom: var(--sp-el); }
.access__body .btn-wrap { margin-top: calc(var(--u) * 24); }
.access__body a:not(.btn) { color: #1a73e8; }
.access__map { flex: 0 0 50%; }
.access__map img { display: block; width: 100%; }
.access__caption { margin: calc(var(--u) * 8) 0 0; text-align: center; font-size: calc(var(--t) * 14); color: var(--c-gray); }

/* 院ごとにある要素（config に値がある院だけ出る） */
.kensa-after { max-width: calc(var(--u) * 770); margin: calc(var(--u) * 24) auto 0; text-align: center; }
.progress__photo { margin: 0 0 var(--sp-el); text-align: center; }
.progress__photo img { display: inline-block; max-width: calc(var(--u) * 770); width: 100%; }
.doctor--staff { margin-top: var(--sp-section); }
.hours-table__notes { margin: calc(var(--u) * 16) 0 0; font-size: calc(var(--t) * 16); }
.exam-steps { padding-top: 0; }
.exam-steps__img { margin-top: calc(var(--u) * 16); text-align: center; }
.exam-steps__img img { display: inline-block; max-width: calc(var(--u) * 600); width: 100%; }
.banner--recruit { margin-top: var(--sp-block); }

/* 下層ページ
   -------------------------------------------------------------------------- */
.page-content { padding: calc(var(--u) * 40) calc(var(--u) * 20) calc(var(--u) * 80); }
.entry-title { margin-bottom: calc(var(--u) * 30); }
.entry-date { color: var(--c-gray); }

/* ページ見出し（オレンジの帯） */
.page-head { background: linear-gradient(90deg, var(--c-orange), #ffa94d); color: #fff; }
.page-head .container { display: flex; align-items: center; min-height: calc(var(--u) * 140); padding-top: calc(var(--u) * 24); padding-bottom: calc(var(--u) * 24); }
.page-head__title { font-size: calc(var(--t) * 34); letter-spacing: .04em; color: #fff; }
.page-body { padding-top: calc(var(--u) * 48); padding-bottom: var(--sp-page-end); }
.page-body .btn-wrap--cta { margin-top: var(--sp-section); }

/* お知らせ（一覧 index.php・詳細 single.php）: 本文＋右サイドバー（sidebar.php） */
.news-layout { display: grid; grid-template-columns: minmax(0, 1fr) calc(var(--u) * 280); gap: calc(var(--u) * 60); align-items: start; }
.page-head__sub { margin-left: calc(var(--u) * 16); font-size: calc(var(--t) * 20); font-weight: normal; }
/* パンくず（詳細ページの記事の上）: 一覧名 › 記事名 */
.breadcrumb { margin-bottom: calc(var(--u) * 20); font-size: calc(var(--t) * 14); line-height: 1.5; color: var(--c-gray); }
.breadcrumb__list { display: flex; align-items: baseline; }
.breadcrumb__list li { flex: 0 0 auto; }
.breadcrumb__list li + li::before { content: "›"; margin: 0 calc(var(--u) * 10); color: #999; }
.breadcrumb__list a { color: var(--c-orange); }
/* 記事名は 1 行に収め、長ければ … で切る（すぐ下に見出しがある） */
.breadcrumb__list [aria-current] { flex: 0 1 auto; min-width: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; color: var(--c-text); }
.post-single .entry-date { margin: 0 0 calc(var(--u) * 8); font-size: calc(var(--t) * 15); }
.post-single .entry-terms { margin-left: calc(var(--u) * 12); }
.post-single .entry-terms a { color: var(--c-orange); }
.post-single .entry-thumb { margin-bottom: calc(var(--u) * 24); text-align: center; }
.post-single .entry-title { margin-bottom: calc(var(--u) * 28); padding-bottom: calc(var(--u) * 12); border-bottom: 2px solid var(--c-orange); font-size: calc(var(--t) * 26); line-height: 1.4; color: var(--c-text); }
.news-layout__main > .btn-wrap--back { margin-top: var(--sp-block); }
.pagination { margin-top: calc(var(--u) * 40); }
.pagination .nav-links { display: flex; flex-wrap: wrap; justify-content: center; gap: calc(var(--u) * 8); }
.pagination .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: calc(var(--u) * 40); height: calc(var(--u) * 40); padding: 0 calc(var(--u) * 12); border: 1px solid var(--c-border); border-radius: 4px; color: var(--c-text); }
.pagination .page-numbers.current { background: var(--c-orange); border-color: var(--c-orange); color: #fff; }
.pagination .page-numbers.dots { border: 0; }
/* コラム一覧: アイキャッチ付きのカード（PC 2 列・SP 1 列） */
.column-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: calc(var(--u) * 32) calc(var(--u) * 24); }
.column-card__link { display: block; color: var(--c-text); }
.column-card__thumb { display: grid; place-items: center; aspect-ratio: 16 / 10; overflow: hidden; border-radius: 4px; background: var(--c-beige); }
.column-card__thumb img { width: 100%; height: 100%; object-fit: cover; }
.column-card__noimage { width: calc(var(--u) * 48); height: calc(var(--u) * 48); color: var(--c-orange); opacity: .6; }
.column-card__body { padding: calc(var(--u) * 12) calc(var(--u) * 4) 0; }
.column-card__meta { display: flex; flex-wrap: wrap; gap: calc(var(--u) * 4) calc(var(--u) * 12); margin: 0 0 calc(var(--u) * 6); font-size: calc(var(--t) * 14); color: var(--c-gray); font-variant-numeric: tabular-nums; }
.column-card__cat { color: var(--c-orange); }
.column-card__title { margin: 0 0 calc(var(--u) * 6); font-size: calc(var(--t) * 17); font-weight: bold; line-height: 1.5; }
.column-card__excerpt { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; margin: 0; font-size: calc(var(--t) * 14); line-height: 1.7; color: #333; }
.side-widget + .side-widget { margin-top: calc(var(--u) * 36); }
.side-widget__title { margin-bottom: calc(var(--u) * 12); padding-left: calc(var(--u) * 12); border-left: 4px solid var(--c-orange); font-size: calc(var(--t) * 18); line-height: 1.3; color: var(--c-text); }
.side-widget__list li { border-bottom: 1px solid #e5e5e5; } /* 本文の一覧の線（#d4d4d4）より薄く */
.side-widget__list a { display: block; padding: calc(var(--u) * 10) calc(var(--u) * 4); font-size: calc(var(--t) * 15); line-height: 1.5; color: var(--c-text); }

/* 本文（ブロックエディタで書いた固定ページ・投稿）
   見出し: h2 = TOP の h3 相当のオレンジ（■は付けない。2026-10-21 松本さん）、h3 = 左線 */
.entry-content > * + * { margin-top: var(--sp-el); }
.entry-content p { margin: 0; }
.entry-content > * + p { margin-top: calc(var(--u) * 24); }
/* 画像の前後は少し広く（バナーと本文、本文と図） */
.entry-content > * + .wp-block-image, .entry-content > .wp-block-image + * { margin-top: calc(var(--u) * 32); }
.entry-content a:not(.btn) { text-decoration: underline; text-underline-offset: .2em; overflow-wrap: anywhere; } /* URL をそのまま書いたリンクが SP ではみ出さないように（神戸の肺炎球菌ワクチン） */
.entry-content h2 { margin-top: var(--sp-block); margin-bottom: calc(var(--u) * 24); font-size: calc(var(--t) * 26); letter-spacing: 0; }
.entry-content h3 { margin-top: calc(var(--u) * 40); margin-bottom: calc(var(--u) * 16); padding-left: calc(var(--u) * 12); border-left: 4px solid var(--c-orange); font-size: calc(var(--t) * 22); line-height: 1.3; color: var(--c-text); }
.entry-content h3::before { content: none; }
.entry-content h2 + *, .entry-content h3 + * { margin-top: 0; }
/* h4 = 【略歴】のような小見出し（本文と同じ大きさの太字。上は段落より広く 32、下は 10） */
.entry-content h4, .entry-content .wp-block-column > h4 { margin-top: calc(var(--u) * 32); margin-bottom: calc(var(--u) * 10); font-size: inherit; line-height: inherit; }
.entry-content h4 + *, .entry-content .wp-block-column > h4 + *, .entry-content .wp-block-column > h4:first-child { margin-top: 0; }
.entry-content > :first-child { margin-top: 0; }

/* リスト（目次以外）: ○ の行頭 */
.entry-content ul.wp-block-list:not(.page-toc) > li { position: relative; padding-left: 1.2em; line-height: 1.7; }
.entry-content ul.wp-block-list:not(.page-toc) > li + li { margin-top: calc(var(--u) * 8); }
.entry-content ul.wp-block-list:not(.page-toc) > li::before { content: ""; position: absolute; left: .15em; top: .62em; width: .5em; height: .5em; border: 2px solid var(--c-orange); border-radius: 50%; }
.entry-content ol.wp-block-list { padding-left: 1.5em; list-style: decimal; }
.entry-content ol.wp-block-list > li + li { margin-top: calc(var(--u) * 8); }

/* ページ内目次 */
.page-toc { display: flex; flex-wrap: wrap; gap: calc(var(--u) * 10) calc(var(--u) * 28); margin-bottom: calc(var(--u) * 16); }
.page-toc li { position: relative; padding-left: 1.4em; line-height: 1.5; }
.page-toc li::before { content: ""; position: absolute; left: 0; top: .2em; width: 1.1em; height: 1.1em; background: var(--c-orange); -webkit-mask: url(../icons/iconoir-arrow-down-circle-solid.svg) center / contain no-repeat; mask: url(../icons/iconoir-arrow-down-circle-solid.svg) center / contain no-repeat; }
.entry-content .page-toc a { color: var(--c-orange); text-decoration: none; font-weight: bold; }

/* 表 */
.entry-content .wp-block-table { overflow-x: auto; }
.entry-content .wp-block-table table { width: 100%; border-collapse: collapse; font-size: calc(var(--t) * 16); line-height: 1.6; font-variant-numeric: tabular-nums; }
.entry-content .wp-block-table th,
.entry-content .wp-block-table td { padding: calc(var(--u) * 12) calc(var(--u) * 16); border: 1px solid var(--c-border); text-align: left; vertical-align: middle; }
.entry-content .wp-block-table thead { border-bottom: 0; }
.entry-content .wp-block-table th { background: var(--c-beige); font-weight: bold; }
.entry-content .wp-block-table tbody th { width: 25%; }
/* 略歴（class: career）: 罫線なしの 2 列（日付｜内容）。日付の列は折り返さない */
.entry-content .wp-block-table.career table { table-layout: auto; font-size: inherit; line-height: inherit; }
.entry-content .wp-block-table.career td { padding: calc(var(--u) * 2) calc(var(--u) * 16) calc(var(--u) * 2) 0; border: 0; vertical-align: top; }
.entry-content .wp-block-table.career td:first-child { width: 1%; white-space: nowrap; }

/* 段組み（カラムブロック） */
.entry-content .wp-block-columns { gap: calc(var(--u) * 40); margin-bottom: 0; }
/* カラムが続くとき（医師紹介の「写真＋概要文」→「略歴」）は間を広く */
.entry-content > .wp-block-columns + .wp-block-columns { margin-top: var(--sp-block); }
.entry-content .wp-block-column > * + * { margin-top: calc(var(--u) * 16); }
/* 本体 CSS は 781px 以下で縦積みにするが、このテーマの切替は 767/768。768〜781px は横並びのまま（変換で出る幅だけ） */
@media (min-width: 768px) and (max-width: 781px) {
  .entry-content .wp-block-columns:not(.is-not-stacked-on-mobile) { flex-wrap: nowrap !important; }
  .entry-content .wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column[style*="flex-basis:25%"] { flex-basis: 25% !important; }
  .entry-content .wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column[style*="flex-basis:33.33%"] { flex-basis: 33.33% !important; }
  .entry-content .wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column[style*="flex-basis:50%"] { flex-basis: 50% !important; }
  .entry-content .wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column[style*="flex-basis:66.67%"] { flex-basis: 66.67% !important; }
  .entry-content .wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column[style*="flex-basis:75%"] { flex-basis: 75% !important; }
}

/* お問い合わせページ: 本文の幅をバナー（770px）に合わせる。電話番号・受付時間・休診日は 1 つの枠に */
.entry-content.page-contact-us { max-width: 770px; margin-left: auto; margin-right: auto; }
.entry-content .contact-tel { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: calc(var(--u) * 8) calc(var(--u) * 40); padding: calc(var(--u) * 16) calc(var(--u) * 24); border: 2px solid var(--c-border); border-radius: 6px; }
.entry-content .contact-tel .tel-link { font-size: calc(var(--t) * 28); }
.entry-content .contact-tel p:not(.tel-link) { font-size: calc(var(--t) * 16); line-height: 1.6; text-align: center; }

/* 電話番号（アイコン付きの大きな番号） */
.entry-content .tel-link { font-size: calc(var(--t) * 30); font-weight: bold; line-height: 1.3; }
.entry-content .tel-link a { display: inline-flex; align-items: center; gap: calc(var(--u) * 10); color: var(--c-text); text-decoration: none; letter-spacing: .03em; font-variant-numeric: tabular-nums; }
.entry-content .tel-link a::before { content: ""; width: .85em; height: .85em; background: var(--c-orange); -webkit-mask: url(../icons/iconoir-phone-solid.svg) center / contain no-repeat; mask: url(../icons/iconoir-phone-solid.svg) center / contain no-repeat; }

/* 画像・区切り */
.entry-content .wp-block-image img { height: auto; }
.entry-content > .wp-block-image { text-align: center; }
.entry-content .wp-element-caption { margin: calc(var(--u) * 8) 0 0; font-size: calc(var(--t) * 15); line-height: 1.6; text-align: left; }
.entry-content .wp-block-separator { border: 0; border-top: 1px solid var(--c-border); margin: var(--sp-block) 0; }

/* Q&A（詳細ブロック）
   Q の丸 = details::before（オレンジに白）、A の丸 = 回答の最初の要素の ::before（薄いオレンジに黒）
   右端の開閉ボタン = summary::before（▼）＋ summary::after（丸。ホバーで背景色） */
.entry-content .wp-block-details { position: relative; border-bottom: 1px solid #d4d4d4; }
.entry-content h2 + .wp-block-details { border-top: 1px solid #d4d4d4; }
.entry-content .wp-block-details + .wp-block-details { margin-top: 0; }
.entry-content .wp-block-details::before,
.entry-content .wp-block-details > summary + *::before {
  position: absolute;
  display: grid;
  place-items: center;
  width: calc(var(--u) * 26);
  height: calc(var(--u) * 26);
  border-radius: 50%;
  color: #fff;
  font-size: calc(var(--t) * 15);
  font-weight: bold;
  line-height: 1;
  pointer-events: none;
}
/* 質問の1行目の中央に合わせる（summary の上余白 18 ＋（行の高さ 18×1.5 − 丸 26）÷ 2） */
.entry-content .wp-block-details::before { content: "Q"; left: calc(var(--u) * 8); top: calc(var(--u) * 18 + (var(--t) * 27 - var(--u) * 26) / 2); background: var(--c-orange); }
.entry-content .wp-block-details > summary + * { position: relative; }
/* 回答の1行目の中央に合わせる（行の高さ 約 16×1.75） */
.entry-content .wp-block-details > summary + *::before { content: "A"; left: calc(var(--u) * -36); top: calc((var(--t) * 28 - var(--u) * 26) / 2); background: var(--c-beige); color: var(--c-text); }
.entry-content .wp-block-details summary {
  position: relative;
  padding: calc(var(--u) * 18) calc(var(--u) * 56) calc(var(--u) * 18) calc(var(--u) * 44);
  font-size: calc(var(--t) * 18); /* 質問 18 / 回答 16（SP は 16 / 14）。2026-10-21 松本さん */
  font-weight: normal;
  line-height: 1.5;
  cursor: pointer;
  list-style: none;
}
.entry-content .wp-block-details summary::-webkit-details-marker { display: none; }
.entry-content .wp-block-details summary::before,
.entry-content .wp-block-details summary::after { content: ""; position: absolute; top: 50%; }
.entry-content .wp-block-details summary::before {
  z-index: 1;
  right: calc(var(--u) * 20);
  width: calc(var(--u) * 12);
  height: calc(var(--u) * 7);
  margin-top: calc(var(--u) * -3);
  background: var(--c-orange);
  clip-path: polygon(0 0, 100% 0, 50% 100%);
  transition: transform .25s ease-out;
}
.entry-content .wp-block-details summary::after {
  right: calc(var(--u) * 8);
  width: calc(var(--u) * 36);
  height: calc(var(--u) * 36);
  margin-top: calc(var(--u) * -18);
  border-radius: 50%;
  transition: background-color .2s;
}
@media (hover: hover) {
  .entry-content .wp-block-details summary:hover::after { background: var(--c-beige); } /* タッチ端末ではタップ後に残るので出さない */
}
.entry-content .wp-block-details[open]:not(.is-closing) summary::before { transform: rotate(180deg); }
.entry-content .wp-block-details > :not(summary) { margin: 0 calc(var(--u) * 20) 0 calc(var(--u) * 44); font-size: calc(var(--t) * 16); }
.entry-content .wp-block-details > summary + * { margin-top: calc(var(--u) * 4); }
.entry-content .wp-block-details > :not(summary) + * { margin-top: calc(var(--u) * 14); }
.entry-content .wp-block-details > :last-child:not(summary) { margin-bottom: calc(var(--u) * 24); }
.entry-content .wp-block-details .wp-block-image img { max-width: calc(var(--u) * 360); }

/* お問い合わせフォーム（Contact Form 7。フォームの中身は院ごとの DB にあり、表で組まれている） */
.wpcf7 table { width: 100%; border-collapse: collapse; border-top: 1px solid var(--c-border); }
.wpcf7 th, .wpcf7 td { padding: calc(var(--u) * 12) calc(var(--u) * 16); border-bottom: 1px solid var(--c-border); text-align: left; vertical-align: middle; }
.wpcf7 th { width: 30%; background: var(--c-beige); font-weight: bold; line-height: 1.5; }
.wpcf7 td p + p { margin-top: calc(var(--u) * 8); font-size: calc(var(--t) * 15); color: var(--c-gray); }
.wpcf7 input[type="text"],
.wpcf7 input[type="tel"],
.wpcf7 input[type="email"],
.wpcf7 textarea {
  width: 100%;
  padding: calc(var(--u) * 8) calc(var(--u) * 12);
  border: 1px solid #b5b5b5;
  border-radius: 4px;
  background: #fff;
  font: inherit;
  font-size: max(16px, calc(var(--t) * 17)); /* 16px 未満だと iPhone が入力時に拡大する */
  line-height: 1.5;
}
.wpcf7 textarea { height: calc(var(--u) * 150); resize: vertical; }
.wpcf7 .cta-btn { position: relative; margin-top: calc(var(--u) * 28); }
/* 送信中のスピナー: プラグインの CSS は非表示でも幅 72px（24 + 余白 24×2）を取り、ボタンが左に寄るので、流れから外してボタンの右脇に置く */
.wpcf7 .wpcf7-spinner { position: absolute; top: 50%; margin: -12px 0 0 12px; }
.wpcf7 .wpcf7-submit {
  min-width: calc(var(--u) * 260);
  min-height: calc(var(--u) * 56);
  padding: calc(var(--u) * 16) calc(var(--u) * 36);
  border: 0;
  border-radius: 4px;
  background: linear-gradient(#0ac742, #079c34);
  box-shadow: 0 5px 0 #067e2a;
  color: #fff;
  font: inherit;
  font-size: calc(var(--t) * 17);
  font-weight: bold;
  cursor: pointer;
  transition: opacity .2s, transform .1s, box-shadow .1s;
}
.wpcf7 .wpcf7-submit:hover, .wpcf7 .wpcf7-submit:active { box-shadow: none; transform: translateY(5px); opacity: .8; }
.wpcf7 .wpcf7-not-valid-tip { margin-top: calc(var(--u) * 6); font-size: calc(var(--t) * 15); }

/* フッター
   -------------------------------------------------------------------------- */
.site-footer { background: var(--c-footer); color: #fff; }
.site-footer a { color: #fff; }
.site-footer__main { display: grid; grid-template-columns: 40% 30% 30%; padding-top: calc(var(--u) * 60); padding-bottom: calc(var(--u) * 40); font-size: calc(var(--t) * 16); }
.site-footer__title { margin: 0 0 calc(var(--u) * 10); font-size: calc(var(--t) * 20); color: #fff; font-weight: bold; }
.site-footer__text, .site-footer__plain { margin-bottom: calc(var(--u) * 40); }
.site-footer__sub { margin: calc(var(--u) * 20) 0 calc(var(--u) * 6); }
.site-footer__list { margin-bottom: calc(var(--u) * 30); }
.site-footer__list li { position: relative; padding-left: calc(var(--u) * 18); margin-bottom: calc(var(--u) * 6); line-height: 1.5; }
.site-footer__list li::before { content: ""; position: absolute; left: 0; top: .55em; width: calc(var(--u) * 6); height: calc(var(--u) * 6); background: var(--c-orange); }
.site-footer__bottom { background: var(--c-footer-bottom); padding: calc(var(--u) * 20) 0; font-size: calc(var(--t) * 16); }
.site-footer__copy { margin: 0; }

.to-top {
  position: fixed;
  right: 10px;
  bottom: 90px;
  z-index: 90;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 60px;
  height: 60px;
  border-radius: 50%;
  background: var(--c-orange);
  color: #fff;
  font-size: 24px;
  opacity: 0;
  visibility: hidden;
  transition: opacity .3s, visibility .3s;
}
.to-top.is-visible { opacity: 1; visibility: visible; }
.sp-bar { display: none; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

/* ==========================================================================
   767px 以下（ヘッダーをSP型に）
   ========================================================================== */
@media (max-width: 767px) {
  /* ロゴとメニューボタンを1行に（メニューボタンはナビの上端から上に出して、ヘッダーの行に重ねる） */
  .site-header__main { height: calc(var(--u) * 64); padding-right: calc(var(--u) * 56); }
  .site-logo__img { height: auto; width: calc(var(--u) * 236); }
  .site-logo__note { padding-left: calc(var(--u) * 25); font-size: calc(var(--t) * 10); margin-top: calc(var(--u) * 3); }
  .head-cta { display: none; }
  .global-nav { border-top: 0; }
  .global-nav .container { position: relative; padding: 0; }
  .nav-toggle {
    position: absolute;
    right: 16px;
    bottom: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: calc(var(--u) * 2);
    height: calc(var(--u) * 64);
    padding: 0;
    border: 0;
    background: none;
    color: var(--c-navy);
    cursor: pointer;
  }
  .nav-toggle__label { font-size: calc(var(--t) * 10); font-weight: bold; line-height: 1; letter-spacing: .08em; }
  /* 三本線 → × に変形する */
  .nav-toggle__bars { position: relative; display: block; width: calc(var(--u) * 26); height: calc(var(--u) * 22); }
  .nav-toggle__bars span,
  .nav-toggle__bars::before,
  .nav-toggle__bars::after {
    content: "";
    position: absolute;
    left: 0;
    top: calc(50% - 1px);
    width: 100%;
    height: 2px;
    border-radius: 1px;
    background: currentColor;
    transition: transform .3s ease-out, opacity .2s;
  }
  .nav-toggle__bars::before { transform: translateY(calc(var(--u) * -8)); }
  .nav-toggle__bars::after { transform: translateY(calc(var(--u) * 8)); }
  .is-open .nav-toggle__bars span { opacity: 0; }
  .is-open .nav-toggle__bars::before { transform: rotate(45deg); }
  .is-open .nav-toggle__bars::after { transform: rotate(-45deg); }
  /* ドロワー: ヘッダーの下に重ね、画面に収まらない分は中でスクロール。上から下へ開く */
  .global-nav__list {
    position: absolute;
    left: 0;
    right: 0;
    top: 100%;
    display: block;
    max-height: calc(100dvh - 5px - var(--u) * 64);
    overflow-y: auto;
    overscroll-behavior: contain;
    background: var(--c-navy-nav);
    box-shadow: 0 6px 10px rgba(0, 0, 0, .15);
    visibility: hidden;
    opacity: 0;
    clip-path: inset(0 0 100% 0);
    transition: clip-path .35s ease-out, opacity .35s, visibility 0s .35s;
  }
  .global-nav.is-open .global-nav__list { visibility: visible; opacity: 1; clip-path: inset(0); transition: clip-path .35s ease-out, opacity .35s; }
  .global-nav__list li { display: grid; grid-template-columns: minmax(0, 1fr) auto; }
  .global-nav__list a,
  .global-nav__list > li > a,
  .global-nav__list > li:first-child > a { padding: calc(var(--u) * 12) calc(var(--u) * 20); font-size: calc(var(--t) * 16); color: #fff; border-bottom: 1px solid rgba(255, 255, 255, .1); }
  .global-nav__list > li > a::after,
  .global-nav__list > li > a::before { display: none; }
  /* 子メニューはアコーディオン（開閉ボタンは theme.js で追加） */
  .sub-toggle {
    position: relative;
    display: block;
    width: calc(var(--u) * 52);
    padding: 0;
    border: 0;
    border-bottom: 1px solid rgba(255, 255, 255, .1);
    border-left: 1px solid rgba(255, 255, 255, .1);
    background: none;
    cursor: pointer;
  }
  .sub-toggle::before {
    content: "";
    position: absolute;
    left: 50%;
    top: 50%;
    width: calc(var(--u) * 12);
    height: calc(var(--u) * 7);
    margin: calc(var(--u) * -3.5) 0 0 calc(var(--u) * -6);
    background: #fff;
    clip-path: polygon(0 0, 100% 0, 50% 100%);
    transition: transform .25s ease-out;
  }
  .is-sub-open > .sub-toggle::before { transform: rotate(180deg); }
  .global-nav__list .sub-menu { grid-column: 1 / -1; position: static; display: block; min-width: 0; overflow: hidden; background: rgba(0, 0, 0, .15); box-shadow: none; }
  .global-nav__list li:not(.is-sub-open) > .sub-menu { display: none; }
  .global-nav__list .sub-menu a { padding-left: calc(var(--u) * 36); color: #fff; white-space: normal; border-bottom-color: rgba(255, 255, 255, .1); }
  .global-nav__list .sub-menu .sub-menu a { padding-left: calc(var(--u) * 52); }
  .global-nav__list .sub-menu a:hover { background: rgba(0, 0, 0, .2); }
  .global-nav__list .sub-menu .menu-item-has-children > a::after { display: none; }
  .global-nav__list > li:hover > a { color: #fff; }
  html { scroll-padding-top: calc(var(--header-h, 66px) + 16px); }
}

/* ==========================================================================
   スマホ
   ========================================================================== */
@media (max-width: 767px) {
  /* SP: コンテナは最大 480px で中央寄せ。基準幅 358px（390 − 16×2）で 1px */
  :root { --u: calc((min(100cqw, 480px) - 32px) / 358); --t: max(var(--u), 0.9px); --sp-section: calc(var(--u) * 48); --sp-page-end: calc(var(--u) * 72); --sp-block: calc(var(--u) * 36); --sp-el: calc(var(--u) * 16); }
  body { padding-bottom: calc(70px + env(safe-area-inset-bottom)); }
  #page > * { font-size: calc(var(--t) * 16); }
  .is-pc { display: none !important; }
  .is-sp { display: block; }
  br.is-sp { display: inline; }
  h2 { font-size: calc(var(--t) * 26); }
  h3 { font-size: calc(var(--t) * 21); }
  h4 { font-size: calc(var(--t) * 19); }
  h5 { font-size: calc(var(--t) * 17); }
  .sec-title { margin-bottom: calc(var(--u) * 16); }
  .container { max-width: 480px; padding: 0 16px; }
  .btn { font-size: calc(var(--t) * 16); padding: calc(var(--u) * 14) calc(var(--u) * 24); min-height: calc(var(--u) * 52); }

  .hero { aspect-ratio: 5 / 3; }
  .hero__arrow { display: none; } /* 画像の文字と重なるので SP は出さない（ドットで切替） */
  .intro__text { font-size: calc(var(--t) * 18); padding: calc(var(--u) * 20) 0; }
  .reserve { padding-top: calc(var(--u) * 28); }
  .reserve__banner img { box-shadow: none; }
  .reserve__note { margin-top: calc(var(--u) * 10); padding-left: 0; font-size: calc(var(--t) * 14); text-align: center; }

  /* 検査バナー（縦積み） */
  .kensa-section { padding-top: calc(var(--u) * 20); }
  .kensa {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas:
      "bar"
      "head"
      "items"
      "alert"
      "notes"
      "cal";
    padding: 0 calc(var(--u) * 10) 0;
    border-width: 1px; /* SP の線は旧バナーに合わせてすべて 1px（中の要素も下で 1px に） */
    line-height: 1.3;
  }
  .kensa__bar { margin: 0 calc(var(--u) * -10) calc(var(--u) * 16); padding: calc(var(--u) * 6) calc(var(--u) * 10); font-size: calc(var(--u) * 14); letter-spacing: .02em; }
  .kensa__bar::before { width: 100%; }
  .kensa__bar::after { display: none; }
  /* 「無料」＋「静脈瘤検査」で横幅いっぱい（334 = 52 + 10 + 54 × 5 文字） */
  .kensa__head { gap: calc(var(--u) * 10); margin-bottom: calc(var(--u) * 12); min-height: 0; }
  .kensa__free { flex: 0 0 auto; width: calc(var(--u) * 52); height: calc(var(--u) * 52); border-width: 1px; font-size: calc(var(--u) * 17); }
  .kensa__title { font-size: calc(var(--u) * 54); letter-spacing: 0; }
  .kensa__illust { position: static; grid-area: items; z-index: 0; justify-self: end; align-self: center; width: 44%; }
  .kensa__items { margin-right: 46%; border-width: 1px; }
  .kensa__items-head { font-size: calc(var(--u) * 16); padding: calc(var(--u) * 2); }
  .kensa__items ol { padding: 0 calc(var(--u) * 10); }
  .kensa__items li { gap: calc(var(--u) * 8); padding: calc(var(--u) * 8) 0; font-size: calc(var(--u) * 15); line-height: 1.4; }
  .kensa__num { font-size: calc(var(--u) * 22); }
  /* 3項目のときは、キャラの問診票が隠れるところまで広げて項目を1行に。2 と 3 は横並び */
  .kensa__items--3 { margin-right: 27.5%; }
  .kensa__items--3 .kensa__items-head { font-size: calc(var(--u) * 15); }
  .kensa__items--3 ol { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); padding: calc(var(--u) * 2) calc(var(--u) * 8); }
  .kensa__items--3 li { padding: calc(var(--u) * 6) 0; font-size: calc(var(--u) * 12); white-space: nowrap; }
  .kensa__items--3 .kensa__num { font-size: calc(var(--u) * 19); }
  .kensa__items--3 li:first-child { grid-column: 1 / -1; }
  .kensa__items--3 li:nth-child(2) { border-bottom: 0; }
  .kensa__items--3 li:nth-child(3) { padding-left: calc(var(--u) * 8); border-left: 1px solid #d4a0ad; }
  .kensa__items--single li { padding: calc(var(--u) * 14) 0; font-size: calc(var(--u) * 18); }
  .kensa__alert { margin: calc(var(--u) * 12) 0 0; padding: calc(var(--u) * 10); line-height: 1.4; }
  .kensa__alert-1 { font-size: calc(var(--u) * 17); }
  .kensa__alert-2 { font-size: calc(var(--u) * 15); }
  .kensa__alert-3 { font-size: calc(var(--u) * 14); }
  /* 注釈は画像バナーと同じく、赤い帯の下に枠で続ける。1行に収まる文字サイズ */
  .kensa__notes { justify-content: flex-start; margin: 0 0 calc(var(--u) * 10); padding: calc(var(--u) * 6) calc(var(--u) * 8); border-width: 0 1px 1px; font-size: calc(var(--u) * 13); line-height: 1.4; }
  /* 日付は正方形。セルの線は左と下だけにして、外枠（.kensa）と重ならないようにする */
  .kensa__cal { grid-template-columns: calc(var(--u) * 68) repeat(6, minmax(0, 1fr)); grid-template-rows: repeat(2, auto); margin: 0 calc(var(--u) * -10) 0; border-width: 1px 0 0; }
  .kensa__month { font-size: calc(var(--u) * 30); }
  .kensa__cell { aspect-ratio: 1; padding: 0 calc(var(--u) * 6) calc(var(--u) * 6) 0; }
  .kensa__day { font-size: calc(var(--u) * 24); }
  .kensa__wd { width: calc(var(--u) * 16); height: calc(var(--u) * 16); border-top-left-radius: calc(var(--u) * 4); font-size: calc(var(--u) * 10); }

  .services__list { flex-direction: column; align-items: stretch; gap: calc(var(--u) * 10); }
  .services__list img { width: 100%; }
  .notice-box { padding: calc(var(--u) * 16); font-size: calc(var(--t) * 15); }
  .notice-box__title { font-size: calc(var(--t) * 16); }
  .news__link { flex-direction: column; gap: calc(var(--u) * 2); padding: calc(var(--u) * 10) calc(var(--u) * 6); }
  .news__date { font-size: calc(var(--t) * 14); }
  /* TOP のコラム: 1 列。アイキャッチを小さくして抜粋は出さない */
  .column-rows { grid-template-columns: minmax(0, 1fr); gap: calc(var(--u) * 16); }
  .column-row__link { gap: calc(var(--u) * 12); }
  .column-row__thumb { flex-basis: calc(var(--u) * 128); }
  .column-row__title { font-size: calc(var(--t) * 15); }
  .column-row__excerpt { display: none; }

  .about__figures { flex-direction: column; gap: calc(var(--u) * 20); align-items: center; }
  .about__figures figure { flex: none; width: 100%; } /* PC の flex-basis（幅 480）が縦積みでは高さに効いて、下に空きが出ていた */
  .cols-2 { grid-template-columns: 1fr; }
  .media-row { flex-direction: column; gap: calc(var(--u) * 20); }
  .media-row__img { flex-basis: auto; width: 100%; text-align: center; }
  .media-row--36 .media-row__img img { max-width: calc(var(--u) * 220); margin: 0 auto; }
  /* 2 カラム、3 つ目は中央 */
  .stats { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: calc(var(--u) * 20) calc(var(--u) * 10); }
  .stats li:nth-child(3) { grid-column: 1 / -1; justify-self: center; width: calc(50% - var(--u) * 5); }
  .stats__num { margin-top: calc(var(--u) * 4); font-size: calc(var(--t) * 26); }
  .risk-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: calc(var(--u) * 10); }
  .lead-strong { font-size: calc(var(--t) * 20); }

  .progress__lead { text-align: left; }
  .progress__row, .treatment__row { margin-top: calc(var(--u) * 32); }
  .flow { padding-top: calc(var(--u) * 16); } /* 上の治療法と同じベージュが続くので、上を詰める */
  .flow__step { padding: calc(var(--u) * 20) calc(var(--u) * 16); }
  .flow__arrow img { width: calc(var(--u) * 51); }

  .doctor { flex-direction: column; gap: calc(var(--u) * 20); }
  .doctor__photo { flex-basis: auto; max-width: calc(var(--u) * 260); margin: 0 auto; }
  /* 医師紹介ページの写真も TOP と同じ幅に（縦長の写真が幅いっぱいに出ないように） */
  .page-doctor .wp-block-column > .wp-block-image { max-width: calc(var(--u) * 260); margin-left: auto; margin-right: auto; }
  /* 略歴の表: SP は日付と内容を 2 行に */
  .entry-content .wp-block-table.career tr { display: block; padding: calc(var(--u) * 4) 0; }
  .entry-content .wp-block-table.career td { display: block; padding: 0; white-space: normal; }
  .banner--interview { margin-top: var(--sp-block); }
  .banner--interview figcaption { font-size: calc(var(--t) * 14); }
  .banner--caloo { margin-top: calc(var(--u) * 16); }
  .banner--df { grid-template-columns: 1fr; gap: calc(var(--u) * 10); margin-top: calc(var(--u) * 16); }
  .hours { flex-direction: column; gap: calc(var(--u) * 20); margin-top: var(--sp-block); }
  .hours__photo { flex-basis: auto; }
  table.hours-table.is-sp { display: table; } /* .is-sp の display: block で表が幅いっぱいに広がらなかった */
  .hours-table th, .hours-table td { padding: calc(var(--u) * 8); line-height: 1.4; }
  .hours-table tbody th { background: #ff9900; }
  .hours-table td { text-align: center; }
  .access { flex-direction: column; gap: calc(var(--u) * 20); align-items: stretch; }
  .access__map { flex-basis: auto; }
  .access__body .btn-wrap--left { text-align: center; }
  .kensa-after { margin-top: calc(var(--u) * 16); text-align: left; }
  .doctor--staff { margin-top: var(--sp-block); }
  .hours-table__notes { font-size: calc(var(--t) * 14); }

  /* 下層ページ */
  .page-head .container { min-height: calc(var(--u) * 80); padding-top: calc(var(--u) * 16); padding-bottom: calc(var(--u) * 16); }
  .page-head__title { font-size: calc(var(--t) * 24); }
  .page-body { padding-top: calc(var(--u) * 28); padding-bottom: var(--sp-page-end); } /* .container の padding 指定で 0 に戻るので、ここで付け直す */
  .news-layout { grid-template-columns: minmax(0, 1fr); gap: calc(var(--u) * 48); }
  .column-cards { grid-template-columns: minmax(0, 1fr); gap: calc(var(--u) * 24); }
  .column-card__title { font-size: calc(var(--t) * 16); }
  .kensa__nodate { margin: calc(var(--u) * 4) 0 calc(var(--u) * 12); font-size: calc(var(--u) * 24); text-align: center; }
  .kensa-narrow { max-width: none; }
  .kensa-narrow .kensa { --u: calc(100cqw / 358); } /* SP は基準幅 358（390 − 16×2）でページと同じ大きさ */
  .page-head__sub { display: block; margin-left: 0; font-size: calc(var(--t) * 16); }
  .post-single .entry-title { font-size: calc(var(--t) * 20); }
  .entry-content h2 { font-size: calc(var(--t) * 20); margin-bottom: calc(var(--u) * 16); }
  .entry-content h3 { font-size: calc(var(--t) * 18); margin-top: calc(var(--u) * 28); }
  .page-toc { gap: calc(var(--u) * 8) calc(var(--u) * 16); font-size: calc(var(--t) * 15); }
  /* 列幅は中身なり（均等割りだと「22,000円程度」が途中で折り返す） */
  .entry-content .wp-block-table table { table-layout: auto; font-size: calc(var(--t) * 13); }
  .entry-content .wp-block-table th,
  .entry-content .wp-block-table td { padding: calc(var(--u) * 8) calc(var(--u) * 4); word-break: auto-phrase; } /* 本体 CSS の break-word をセルで上書き。折り返すなら文節で */
  .entry-content .wp-block-table tbody th { width: 30%; }
  .entry-content .wp-block-details summary { padding: calc(var(--u) * 14) calc(var(--u) * 40) calc(var(--u) * 14) calc(var(--u) * 32); font-size: calc(var(--t) * 16); }
  .entry-content .wp-block-details::before,
  .entry-content .wp-block-details > summary + *::before { width: calc(var(--u) * 24); height: calc(var(--u) * 24); font-size: calc(var(--t) * 13); }
  /* 質問: 上余白 14 ＋（行の高さ 16×1.5 − 丸 24）÷ 2。回答: 行の高さ 約 16×1.75 */
  .entry-content .wp-block-details::before { left: 0; top: calc(var(--u) * 14 + (var(--t) * 24 - var(--u) * 24) / 2); }
  .entry-content .wp-block-details > summary + *::before { left: calc(var(--u) * -32); top: calc((var(--t) * 24.5 - var(--u) * 24) / 2); } /* 回答 14×1.75 */
  .entry-content .wp-block-details summary::before { right: calc(var(--u) * 10); }
  .entry-content .wp-block-details summary::after { right: 0; width: calc(var(--u) * 32); height: calc(var(--u) * 32); margin-top: calc(var(--u) * -16); }
  .entry-content .wp-block-details > :not(summary) { margin-left: calc(var(--u) * 32); margin-right: 0; font-size: calc(var(--t) * 14); }
  .entry-content .wp-block-details .wp-block-image img { max-width: 100%; }
  .entry-content .wp-block-columns { gap: calc(var(--u) * 20); }
  .entry-content .tel-link { font-size: calc(var(--t) * 26); }
  /* フォームは項目名と入力欄を縦に積む */
  .wpcf7 table, .wpcf7 tbody, .wpcf7 tr, .wpcf7 th, .wpcf7 td { display: block; width: auto; }
  .wpcf7 table { border-top: 0; }
  .wpcf7 th { padding: calc(var(--u) * 8) calc(var(--u) * 12); border-bottom: 0; }
  .wpcf7 td { padding: calc(var(--u) * 12) 0 calc(var(--u) * 20); border-bottom: 0; }
  .wpcf7 .wpcf7-submit { width: 100%; font-size: calc(var(--t) * 16); }
  .wpcf7 .wpcf7-spinner { right: 12px; margin-left: 0; } /* ボタンが横幅いっぱいなので、右脇だと画面からはみ出す → ボタンの内側の右端に */

  .site-footer__main { grid-template-columns: 1fr; padding: calc(var(--u) * 30) 0 calc(var(--u) * 10); font-size: calc(var(--t) * 14); }
  .site-footer__title { font-size: calc(var(--t) * 20); }
  .site-footer__text, .site-footer__plain { margin-bottom: calc(var(--u) * 20); }
  .site-footer__bottom { padding: calc(var(--u) * 14) 0; font-size: calc(var(--t) * 14); }
  /* SP では「上へ戻る」を出さない（現行サイトと同じ）。空いた場所に reCAPTCHA のバッジ（お問い合わせページ）を置く。
     バッジはプラグインがインライン指定（bottom: 14px）で固定バーの裏に隠れるので !important で上げる。固定バーは safe-area 分だけ高くなる */
  .to-top { display: none; }
  .grecaptcha-badge { bottom: calc(90px + env(safe-area-inset-bottom)) !important; }

  .sp-bar {
    position: fixed;
    left: 0;
    bottom: 0;
    z-index: 100;
    display: flex;
    justify-content: center;
    gap: 8px;
    width: 100%;
    padding: 8px 10px calc(8px + env(safe-area-inset-bottom));
    background: #fff;
    box-shadow: 0 -2px 6px rgba(0, 0, 0, .08);
  }
  /* PC ヘッダーのボタンと同じ作り（アイコン＋2行の文字） */
  .sp-bar__link {
    display: flex;
    flex: 1 1 0;
    align-items: center;
    justify-content: center;
    gap: 6px;
    max-width: 220px;
    height: 54px;
    padding: 0 6px;
    border-radius: 4px;
    color: #fff;
    font-weight: bold;
  }
  .sp-bar__web { background: var(--c-navy-nav); }
  .sp-bar__tel { background: var(--c-pink); }
  .sp-bar__icon { width: 22px; height: 22px; }
  .sp-bar__txt { line-height: 1.3; text-align: center; }
  .sp-bar__lead { display: block; font-size: 11px; }
  .sp-bar__txt strong { display: block; font-size: min(14px, 3.6vw); white-space: nowrap; }
  .sp-bar__tel .sp-bar__txt strong { font-size: min(18px, 4.6vw); letter-spacing: .02em; }
}
