@charset "UTF-8";
/* =========================================================
   Biologic Occlusion Seminars / 荒谷デンタルクリニック
   PC: 1440px カンプ基準（1rem = 10px）
   ========================================================= */

:root {
  --gold: #c8a164;
  --gold-dark: #b6832f;
  --gold-mid: #cfa35c;
  --gold-btn: #c08f3f;
  --brown: #603107;
  --brown-tag: #5d4b3a;
  --kanji-shu: #b28d5a;
  --kanji-ha: #5c554b;
  --kanji-ri: #91734a;
  --serif: "Noto Serif JP", "Hiragino Mincho ProN", serif;
  --sans: "Noto Sans JP", "Hiragino Sans", sans-serif;
  --inter: "Inter", "Noto Sans JP", sans-serif;
}

/* ---------- reset ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { font-size: 10px; -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  background: #fff;
  color: #000;
  font-family: var(--serif);
  font-weight: 400;
  line-height: 1;
  overflow-x: hidden; /* 縦スクロールバー幅ぶんの端数で横スクロールが出るのを防ぐ保険 */
}
img { display: block; border: 0; }
a { color: inherit; text-decoration: none; }
h1, h2, h3, p { margin: 0; font-weight: inherit; font-size: inherit; }
body * { max-height: 1000000px; } /* Androidのフォントブースティング無効化 */

/* ---------- layout ---------- */
.page { position: relative; width: 144rem; margin: 0 auto; overflow: hidden; }
.sec { position: relative; width: 144rem; }
/* SYSTEMセクション末尾の金色装飾（system__deco）はカンプ上でも
   セクション境界をまたいでBOS帯に重なる。DOM順では後続のBOSが上に来るため
   装飾の下半分が隠れてしまう。カンプ通り装飾を前面に出す。 */
.sec--system { z-index: 2; }
.sec--fv { height: 89.9rem; }
.sec--news { height: 88.9rem; }
.sec--system { height: 102.1rem; }
.sec--bos { height: 34rem; }
.sec--doctor { height: 176.8rem; }
.sec--shuhari { height: 116.5rem; }
.sec--master { height: 88rem; }
.sec--course { height: 131.3rem; }
.sec--consider { height: 95.9rem; }
.sec--contact { height: 59.2rem; }
.sec--footer { height: 38.3rem; }

/* =========================================================
   FV
   ========================================================= */
.fv__bg { position: absolute; left: 0; top: 0; width: 144rem; height: 89.9rem; object-fit: cover; }
.fv__veil {
  position: absolute; left: -0.5rem; top: 0; width: 86rem; height: 87.2rem;
  background: linear-gradient(90deg, rgba(247,241,231,.9) 0%, rgba(247,241,231,.65) 50%, rgba(247,241,231,0) 100%);
}
.fv__logo { position: absolute; left: 2.4rem; top: 2.4rem; width: 9.9rem; height: 7.3rem; object-fit: contain; }
.fv__brand {
  position: absolute; left: 12.3rem; top: 5.6rem; width: 34.9rem;
  font-weight: 700; font-size: 2.4rem; line-height: 3.449rem; color: var(--gold);
}
.fv__catch { position: absolute; left: 0; top: 0; width: 144rem; height: 89.9rem; color: var(--brown); font-weight: 500; }
.fv__catch > span { position: absolute; display: block; line-height: 12.1rem; }
.fv__catch-a { left: 8.1rem; top: 15.2rem; width: 64.5rem; font-size: 4.5rem; letter-spacing: 0.72rem; }
.fv__catch-b { left: 8.1rem; top: 24.6rem; width: 27rem; font-size: 8.8rem; letter-spacing: 0.264rem; }
.fv__catch-c { left: 27.5rem; top: 25.6rem; width: 15.2rem; font-size: 7.3rem; letter-spacing: 0.219rem; }
.fv__catch-d { left: 8.1rem; top: 35.3rem; width: 19rem; font-size: 8.8rem; letter-spacing: 0.264rem; }
.fv__catch-e { left: 27.4rem; top: 36rem; width: 9.9rem; font-size: 7.3rem; letter-spacing: 0.219rem; }
.fv__catch-f { left: 8.1rem; top: 45.8rem; width: 52.3rem; font-size: 7.8rem; letter-spacing: 0.234rem; }
.fv__lead {
  position: absolute; left: 8.7rem; top: 59.6rem; width: 71.5rem;
  font-weight: 700; font-size: 2.8rem; line-height: 4.5rem; color: var(--brown);
}
.fv__btn {
  position: absolute; left: 8.5rem; top: 73rem; width: 38.7rem; height: 7.2rem;
  background: linear-gradient(90deg, #bb9353 0%, #f2ca8a 100%);
}
.fv__btn-txt {
  position: absolute; left: 4rem; top: 1.4rem; width: 67.2rem;
  font-family: var(--sans); font-weight: 700; font-size: 2.4rem; line-height: 4.1rem;
  letter-spacing: 0.384rem; color: #fff;
}

/* =========================================================
   NEWS
   ========================================================= */
.news__en {
  position: absolute; left: 64.8rem; top: 3.1rem; width: 14.45rem;
  font-weight: 700; font-size: 4.2rem; line-height: 6.035rem; letter-spacing: 0.42rem;
}
.news__deco { position: absolute; left: 37.1rem; top: 8.3rem; width: 69.7rem; height: 4.5rem; object-fit: contain; }
.news__ttl {
  position: absolute; left: 57.9rem; top: 12.7rem;
  font-weight: 600; font-size: 3.9rem; line-height: 5.604rem; letter-spacing: 0.351rem; white-space: nowrap;
}
.news__lead {
  position: absolute; left: 38.3rem; top: 20.2rem;
  font-weight: 600; font-size: 2.6rem; line-height: 3.736rem; letter-spacing: 0.234rem; white-space: nowrap;
}
.card { position: absolute; top: 28.2rem; }
.card--1 { left: 14.8rem; width: 58.6rem; height: 50.8rem; }
.card--2 { left: 79.2rem; width: 57.7rem; height: 50.8rem; }
/* Figma: DROP_SHADOW offset(0,4) blur15 #000 alpha .25。
   ただし Rectangle 4483/4496（4484/4497）の2枚が同座標で重なっており、
   影も2重に合成される → 実効 alpha = 1-(1-0.25)^2 = 0.4375 */
.card__panel {
  position: absolute; left: 0; top: 0; width: 100%; height: 50.8rem; background: #fff;
  box-shadow: 0 0.4rem 1.5rem rgba(0, 0, 0, .4375);
}
.card__img { position: absolute; top: 0; height: 26.9rem; object-fit: cover; }
.card--1 .card__img { left: 0; width: 58.6rem; }
.card--2 .card__img { left: 0.1rem; width: 57.6rem; }
.card__badge { position: absolute; top: 28.2rem; width: 10.1rem; height: 2.7rem; background: var(--gold-mid); }
.card--1 .card__badge { left: 2.5rem; }
.card--2 .card__badge { left: 2.6rem; }
.card__badge-txt {
  position: absolute; top: 28.5rem; width: 12.3rem;
  font-family: var(--sans); font-weight: 400; font-size: 1.7rem; line-height: 2.04rem;
  letter-spacing: 0.221rem; color: #fff; text-align: left; /* Figma: LEFT（centerにするとバッジ矩形から溢れる） */
}
.card--1 .card__badge-txt { left: 3.9rem; }
.card--2 .card__badge-txt { left: 4rem; }
.card__ttl {
  position: absolute; top: 30.9rem;
  font-weight: 600; font-size: 2.6rem; line-height: 3.736rem; letter-spacing: 0.234rem; white-space: nowrap;
}
.card--1 .card__ttl { left: 2.6rem; }
.card--2 .card__ttl { left: 2.7rem; }
.card__desc {
  position: absolute; top: 35.9rem; width: 53.2rem;
  font-weight: 600; font-size: 1.8rem; line-height: 2.587rem; letter-spacing: 0.162rem;
}
.card--1 .card__desc { left: 2.7rem; }
.card--2 .card__desc { left: 2.8rem; }
.card__btn { position: absolute; top: 42.4rem; width: 30.9rem; height: 5.7rem; background: var(--gold-btn); }
.card--1 .card__btn { left: 2.6rem; }
.card--2 .card__btn { left: 2.7rem; }
.card__btn-txt {
  position: absolute; left: 0.6rem; top: 1.7rem; width: 29.6rem;
  font-family: var(--sans); font-weight: 400; font-size: 1.9rem; line-height: 2.28rem;
  letter-spacing: 0.38rem; color: #fff; text-align: center;
}

/* =========================================================
   SYSTEM
   ========================================================= */
.system__bg { position: absolute; left: -0.1rem; top: 0; width: 144rem; height: 102.1rem; object-fit: cover; }
.system__diagram { position: absolute; left: 51.2rem; top: 10.2rem; width: 90.9rem; height: 60.6rem; object-fit: contain; }
.system__ttl {
  position: absolute; left: 8.7rem; top: 7.2rem; width: 40.9rem;
  font-weight: 600; font-size: 5.6rem; line-height: 7.5rem; letter-spacing: 0.952rem;
}
/* h2(.system__ttl / width:40.9rem)の中に入れたため、shrink-to-fit の上限が
   親幅になり「として」が縦に折り返す。nowrap で1行に固定する。 */
.system__ttl-sub {
  position: absolute; left: 38.4rem; top: 16.4rem; white-space: nowrap;
  font-weight: 600; font-size: 4.2rem; line-height: 6.035rem; letter-spacing: 0.378rem;
}
.system__lbl {
  position: absolute; width: 16.2rem; text-align: center;
  font-weight: 400; font-size: 2.3rem; line-height: 2.7rem; letter-spacing: -0.023rem;
}
.system__lbl--tmj { left: 88.5rem; top: 6.6rem; }
.system__lbl--occ { left: 88.5rem; top: 37.2rem; line-height: 3.1rem; }
.system__lbl--mus { left: 67.8rem; top: 65.2rem; }
.system__lbl--pos { left: 109.1rem; top: 65.2rem; }
.system__lbl-c {
  position: absolute; left: 88.5rem; top: 47.3rem; width: 16.2rem; text-align: center;
  font-family: var(--sans); font-weight: 400; font-size: 1.8rem; line-height: 3.1rem; letter-spacing: 0.054rem;
}
.system__txt1, .system__txt2 {
  position: absolute; left: 8.7rem; width: 49.1rem;
  font-weight: 300; font-size: 2.1rem; line-height: 3.4rem; letter-spacing: -0.021rem;
}
.system__txt1 { top: 40.4rem; }
.system__txt2 { top: 60.5rem; }
/* Figma Rectangle 4482: 塗りは透明（#d9d9d9 alpha 0）で
   stroke(GRADIENT_RADIAL 1px INSIDE) と DROP_SHADOW だけが見える要素。
   金色の細線は box-shadow ではなく stroke が実体。 */
.system__glow {
  position: absolute; left: 18.7rem; top: 73.1rem; width: 106.6rem; height: 13rem;
  border: 0.1rem solid #d8b47a;
  box-shadow: 0.2rem 0.2rem 0.6rem rgba(242, 202, 138, .85);
}
.system__txt3 {
  position: absolute; left: 14.7rem; top: 75.5rem; width: 113rem; text-align: center;
  font-family: var(--serif); font-weight: 400; font-size: 2.3rem; line-height: 3.6rem; letter-spacing: -0.023rem;
}
.system__txt4 {
  position: absolute; left: 18.7rem; top: 88.4rem; width: 106.6rem; text-align: center;
  font-weight: 300; font-size: 2.1rem; line-height: 3.5rem; letter-spacing: -0.021rem;
}
.system__deco { position: absolute; left: 37.2rem; top: 99.8rem; width: 69.7rem; height: 4.5rem; object-fit: contain; }

/* =========================================================
   BOS
   ========================================================= */
.sec--bos { background: linear-gradient(90deg, #f9e8d3 0%, #f6f1ec 47.1%, #eedfcd 100%); }
/* 実文字は全て Noto Serif JP（characterStyleOverrides）。
   親strutをsansのままにすると子serifとベースラインが合わず行ボックスが膨張する */
/* 実文字は全て characterStyleOverrides（serif 2.6rem）で描画される。
   親strutが子より小さいと baseline 揃えで行ボックスが伸びる（41px→44px）ため、
   font-family / font-size / line-height を子と一致させる */
.bos__txt1 {
  position: absolute; left: 14.7rem; top: 1.9rem; width: 124.1rem; text-align: center;
  font-family: var(--serif); font-weight: 500; font-size: 2.6rem; line-height: 4.1rem; letter-spacing: 0.147rem;
}
.bos__txt2 {
  position: absolute; left: 20.6rem; top: 16.4rem; width: 112.3rem; text-align: center;
  font-family: var(--serif); font-weight: 500; font-size: 2.6rem; line-height: 3.6rem; letter-spacing: -0.021rem;
}
/* 26px の Noto Serif JP は ascent+descent が 37.4px あり、line-height:3.6rem では
   行ボックスが 38px に膨らむ（Figmaは行高36pxを厳守）。行を独立ブロック化して高さを固定する */
.bos__txt2 .bos__line { display: block; height: 3.6rem; line-height: 3.6rem; }

/* =========================================================
   DOCTOR
   ========================================================= */
.doctor__bg { position: absolute; left: 0; top: 0; width: 144rem; height: 176.8rem; object-fit: cover; }
.doctor__photo { position: absolute; left: 5.5rem; top: 7.4rem; width: 53.1rem; height: 72.2rem; object-fit: cover; }
.doctor__name {
  position: absolute; left: 63.5rem; top: 5.3rem;
  font-weight: 700; font-size: 5rem; line-height: 7.185rem; letter-spacing: 0.45rem; white-space: nowrap;
}
.doctor__body {
  position: absolute; left: 63.5rem; top: 14.1rem; width: 72.8rem;
  font-family: var(--inter); font-weight: 400; font-size: 1.9rem; line-height: 2.299rem;
}
.doctor__body p { margin: 0; }
.doctor__body p + p { margin-top: 2.299rem; }

.doctor__badge { position: absolute; left: 4.5rem; top: 78rem; width: 55.8rem; height: 37.2rem; object-fit: contain; }
.doctor__tag {
  position: absolute; width: 12.3rem; text-align: center; color: var(--brown-tag);
  font-weight: 600; font-size: 1.5rem; line-height: 2.156rem;
}
.doctor__tag--1 { left: 10.8rem; top: 86.7rem; }
.doctor__tag--2 { left: 26.4rem; top: 86.2rem; }
.doctor__tag--3 { left: 41.7rem; top: 86.2rem; }
.doctor__sep { position: absolute; top: 86.4rem; width: 0.1rem; height: 4rem; background: #eea817; }
.doctor__sep--1 { left: 24.5rem; }
.doctor__sep--2 { left: 40.3rem; }

/* Figmaは同座標に Rectangle 4478 / 4492 の2枚が重なっており、
   α0.68 を2枚合成した実効値 1-(1-0.68)^2 = 0.898 になる。
   1枚に間引くと白が薄く、背景が透けすぎる（実測で -5〜-15 暗くなる）。 */
.doctor__panel {
  position: absolute; left: 4.5rem; top: 99.5rem; width: 134.4rem; height: 69.3rem;
  background: rgba(252, 252, 252, .898);
}
.doctor__icon { position: absolute; object-fit: contain; }
.doctor__icon--career { left: 12.5rem; top: 108.3rem; width: 5.5rem; height: 5.7rem; }
.doctor__icon--society { left: 12.7rem; top: 124.7rem; width: 5.3rem; height: 5.5rem; }
.doctor__icon--lecture { left: 12.5rem; top: 137.8rem; width: 5.8rem; height: 5.6rem; }
.doctor__icon--paper { left: 13rem; top: 155.6rem; width: 5.3rem; height: 5.5rem; }
.doctor__label {
  position: absolute; color: var(--gold-dark);
  font-weight: 600; font-size: 2.5rem; line-height: 3.592rem; white-space: nowrap;
}
.doctor__label--career { left: 19.3rem; top: 109rem; }
.doctor__label--society { left: 19.3rem; top: 125.7rem; }
.doctor__label--lecture { left: 19.1rem; top: 138.5rem; }
.doctor__label--paper { left: 19.3rem; top: 156.6rem; }
.doctor__divider { position: absolute; left: 16.3rem; width: 69.71rem; height: 5.5rem; object-fit: contain; }
.doctor__divider--1 { top: 119.1rem; }
.doctor__divider--2 { top: 128.9rem; }
.doctor__divider--3 { top: 145.4rem; }
.doctor__cert { position: absolute; left: 114rem; height: 15.4rem; object-fit: contain; }
.doctor__cert--1 { top: 128.9rem; width: 21.63rem; }
.doctor__cert--2 { top: 146.1rem; width: 21.7rem; }
.doctor__career {
  position: absolute; left: 40.3rem; top: 100.8rem; width: 71.5rem;
  /* 実文字は全て Noto Sans JP（characterStyleOverrides）。親strutを揃えないと行ボックスが 33px→35px に膨らむ */
  font-family: var(--sans); font-weight: 400; font-size: 1.9rem; line-height: 3.3rem; letter-spacing: 0.019rem;
}
.doctor__career p { margin: 0; }
.doctor__career p + p { margin-top: 3.3rem; }

/* =========================================================
   守破離
   ========================================================= */
.shuhari__bg { position: absolute; left: -0.05rem; top: 0.4rem; width: 144rem; height: 76.45rem; object-fit: cover; }
.shuhari__kanji {
  position: absolute; text-align: center;
  font-weight: 600; font-size: 6.9rem; line-height: 9.915rem;
}
.shuhari__kanji--shu { left: 59.7rem; top: 0.9rem; width: 12rem; color: var(--kanji-shu); }
.shuhari__kanji--ha  { left: 0; top: 42.3rem; width: 10.9rem; color: var(--kanji-ha); }
.shuhari__kanji--ri  { left: 50.9rem; top: 79.5rem; width: 12rem; color: var(--kanji-ri); }
.shuhari__ttl {
  position: absolute; text-align: center;
  font-weight: 600; font-size: 2.5rem; line-height: 3.592rem;
}
.shuhari__ttl--shu { left: 63.1rem; top: 4.1rem; width: 48.2rem; letter-spacing: 0.275rem; }
.shuhari__ttl--ha  { left: 4.1rem; top: 45.2rem; width: 43.7rem; font-weight: 600; line-height: 3.026rem; }
/* Figmaのbbox幅(286px)に対し実文字幅は290px（10字×25px＋ls4px×10）で溢れて折り返すため nowrap */
.shuhari__ttl--ri  { left: 63.1rem; top: 81.9rem; width: 28.6rem; letter-spacing: 0.4rem; white-space: nowrap; }
.shuhari__body {
  position: absolute; font-weight: 400; font-size: 1.1rem; line-height: 1.4rem;
}
.shuhari__body p { margin: 0; }
.shuhari__body p + p { margin-top: 1.4rem; }
.shuhari__body--shu { left: 72.2rem; top: 8.5rem; width: 68.3rem; }
.shuhari__body--ha  { left: 11rem; top: 50rem; width: 45rem; }
.shuhari__body--ri  { left: 63.1rem; top: 88.4rem; width: 77.3rem; }
.shuhari__more {
  position: absolute; left: 72.2rem; top: 33.5rem;
  font-weight: 500; font-size: 1.1rem; line-height: 1.6rem; color: var(--kanji-shu);
}
.shuhari__photo { position: absolute; object-fit: cover; }
.shuhari__photo--1 { left: 0; top: 77.3rem; width: 49.3rem; height: 38.9rem; }
.shuhari__photo--2 { left: 41.1rem; top: 77.5rem; width: 102.9rem; height: 38.4rem; }

/* =========================================================
   MASTER
   ========================================================= */
.master__bg { position: absolute; left: -0.3rem; top: 0; width: 144rem; height: 86.8rem; object-fit: cover; }
.master__ttl {
  position: absolute; left: 40.5rem; top: 9.9rem; width: 63rem; text-align: center;
  font-weight: 700; font-size: 6.4rem; line-height: 8.5rem;
}
/* Figmaの空行（

）1行分。<br><br>だとSPで無効化できないため専用要素にする */
.master__txt .para { display: block; height: 4.8rem; }
.consider__txt .para { display: block; height: 3.7rem; }
.master__txt {
  position: absolute; left: 6.3rem; top: 33.8rem; width: 131.5rem; text-align: center;
  font-weight: 400; font-size: 2.3rem; line-height: 4.8rem;
}

/* =========================================================
   COURSE
   ========================================================= */
.course__bg { position: absolute; object-fit: cover; }
.course__bg--1 { left: 0; top: 0; width: 143.9rem; height: 64.3rem; }
.course__bg--2 { left: -0.3rem; top: 70.25rem; width: 144rem; height: 57.95rem; }
.course__ttl {
  position: absolute; left: 56.2rem; top: 7.2rem; width: 31.7rem; text-align: center;
  font-weight: 700; font-size: 6.4rem; line-height: 9.197rem; white-space: nowrap;
}
.course__no {
  position: absolute; text-align: center; color: var(--gold);
  font-weight: 500; font-size: 5.8rem; line-height: 8.335rem;
}
.course__no--1 { left: 17.4rem; top: 29.1rem; width: 6.2rem; }
.course__no--2 { left: 15rem; top: 48.1rem; width: 11rem; }
.course__no--3 { left: 16.2rem; top: 78.8rem; width: 8.6rem; }
.course__no--4 { left: 15rem; top: 94.7rem; width: 11rem; }
.course__no--5 { left: 15rem; top: 110rem; width: 11rem; }
.course__line { position: absolute; left: 26rem; width: 0.1rem; height: 7.9rem; background: var(--gold); }
.course__line--1 { top: 31.7rem; }
.course__line--2 { top: 50.3rem; }
.course__line--3 { top: 81.5rem; }
.course__line--4 { top: 96.8rem; }
.course__line--5 { top: 112.7rem; }
.course__name { position: absolute; font-weight: 700; }
.course__name--1 {
  left: min(30rem,300px); top: 30rem; width: 64.6rem; 
  font-weight: 400; font-size: min(3.5rem,23px); line-height: 5.03rem;
}
.course__name--2 { left: 29.6rem; top: 48rem; width: 122.2rem; font-size: 2.4rem; line-height: 3.449rem; }
.course__name--3 { left: 29.6rem; top: 79.6rem; width: 83.6rem; font-size:min(3.5rem,23px); line-height: 4.311rem; }
.course__name--4 { left: 29.6rem; top: 95.5rem; width: 83.6rem; font-weight: 400; font-size:min(3.5rem,23px); line-height: 3.449rem; }
.course__name--5 { left: 29.6rem; top: 111.4rem; width: 83.6rem; font-weight: 500; font-size: 2.4rem; line-height: 3.449rem; }
.course__sub--1 {
  position: absolute; left: min(30rem,300px); top: 35rem; width: 102.4rem;
  font-weight: 400; font-size: min(3.5rem,23px); line-height: 4.311rem;
}
.course__item { position: absolute; font-weight: 400; font-size:min(3.5rem,23px); line-height: 3rem; }
.course__item--1 { left: 29.6rem; top: 59.5rem; width: 110.8rem; }
.course__item--2 { left: 29.4rem; top: 64.3rem; width: 110.8rem; }
.course__item--3 { left: 29.4rem; top: 69.1rem; width: 85rem; }

/* =========================================================
   CONSIDER
   ========================================================= */
.consider__bg { position: absolute; left: 0; top: 0; width: 144rem; height: 95.85rem; object-fit: cover; }
.consider__ttl {
  position: absolute; left: 11.1rem; top: 8.1rem; width: 66.55rem; text-align: center;
  font-weight: 700; font-size: 4.2rem; line-height: 6.035rem; letter-spacing: 0.252rem;
  white-space: nowrap;
}
.consider__txt {
  position: absolute; left: 5rem; top: 20.7rem; width: 63.3rem;
  font-family: var(--sans); font-weight: 400; font-size: 2.3rem; line-height: 3.7rem;
}
.consider__photo { position: absolute; left: 71.4rem; top: 32.2rem; width: 67.5rem; height: 54rem; object-fit: cover; }

/* =========================================================
   CONTACT
   ========================================================= */
.contact__ttl {
  position: absolute; left: 43.2rem; top: 10.7rem; width: 59.1rem; text-align: center;
  font-weight: 700; font-size: 4.4rem; line-height: 6.323rem; letter-spacing: 0.572rem;
  white-space: nowrap;
}
.contact__lead {
  position: absolute; left: 31.9rem; top: 24.1rem; width: 84.1rem; text-align: center;
  font-weight: 500; font-size: 3.1rem; line-height: 4.6rem; letter-spacing: 0.248rem;
}
.contact__btn { position: absolute; top: 39.4rem; width: 47.2rem; height: 10.5rem; }
.contact__btn--primary { left: 22.8rem; background: linear-gradient(0deg, var(--gold-dark) 0%, #cda65e 100%); }
/* Figma Rectangle 4481: fill #fff / radius 10 / stroke SOLID #c8a164 2px INSIDE */
.contact__btn--secondary {
  left: 76.3rem; background: #fff; border-radius: 1rem;
  border: 0.2rem solid var(--gold);
}
.contact__btn-txt {
  position: absolute; top: 2.9rem; width: 84.1rem; text-align: center;
  font-weight: 600; font-size: 2.8rem; line-height: 4.6rem; letter-spacing: 0.532rem;
}
.contact__btn--primary .contact__btn-txt { left: -17.4rem; color: #fff; }
.contact__btn--secondary .contact__btn-txt { left: -18.4rem; color: var(--gold); font-weight: 900; }

/* =========================================================
   FOOTER
   ========================================================= */
.footer__bg { position: absolute; left: 0; top: 0; width: 144rem; height: 38.25rem; object-fit: cover; }

/* =========================================================
   1024px 以上 : カンプ比率でスケール（PCレイアウト維持）
   1440px 以上は 10px 固定＝Figma等倍。それ未満は幅に比例。
   基準幅は JS が clientWidth（縦スクロールバーを除いた実表示幅）から
   --pcfs に入れる。100vw はスクロールバーを含むため CSS だけでは
   ウィンドウ幅 1440px 前後で数px溢れて横スクロールが出る。
   JS が無効な場合は 10px にフォールバックし、overflow-x:hidden が受け止める。
   ========================================================= */
@media screen and (min-width: 1024px) {
  html { font-size: var(--pcfs, 10px); }
}

/* =========================================================
   Figma characterStyleOverrides（部分スタイル）
   ========================================================= */
.ov-1{font-family:var(--serif);font-weight:500;font-size:7.8rem;line-height:10.5rem;color:#603107;}
.ov-2{font-size:7.8rem;line-height:12.098rem;}
.ov-3{line-height:2.7rem;}
.ov-4{font-size:2rem;line-height:2.7rem;color:#b6832f;}
.ov-5{font-family:var(--serif);font-weight:500;font-size:5.6rem;letter-spacing:0.952rem;line-height:7.5rem;}
.ov-6{font-family:var(--serif);font-weight:500;font-size:5.6rem;letter-spacing:0.952rem;line-height:7.5rem;color:#b6832f;}
.ov-7{font-size:3.2rem;line-height:3.1rem;}
.ov-8{font-size:2.3rem;letter-spacing:0.092rem;line-height:3.1rem;color:#b6832f;}
.ov-9{font-size:2rem;line-height:2.348rem;color:#b6832f;}
.ov-10{font-family:var(--serif);font-weight:400;}
.ov-11{font-family:var(--serif);font-weight:400;color:#b6832f;}
.ov-12{font-family:var(--serif);font-weight:500;font-size:2.6rem;letter-spacing:0.182rem;line-height:4.1rem;color:#b6832f;}
.ov-13{font-family:var(--serif);font-weight:500;font-size:2.6rem;letter-spacing:0.182rem;line-height:4.1rem;}
.ov-14{font-family:var(--serif);font-weight:500;font-size:2.3rem;line-height:3.6rem;}
.ov-15{font-family:var(--serif);font-weight:500;font-size:2.6rem;line-height:3.6rem;color:#a97c2a;}
.ov-16{font-family:var(--sans);font-weight:400;letter-spacing:0.019rem;line-height:3.3rem;color:#b6832f;}
.ov-17{font-family:var(--sans);font-weight:400;letter-spacing:0.019rem;line-height:3.3rem;}
.ov-18{font-family:var(--sans);font-weight:700;letter-spacing:0.019rem;line-height:3.3rem;color:#1410d5;}
.ov-19{font-family:var(--serif);font-weight:600;font-size:2.5rem;line-height:3.026rem;}
.ov-20{font-family:var(--serif);font-weight:600;font-size:2.5rem;letter-spacing:0.275rem;line-height:3.026rem;}
.ov-21{line-height:8.5rem;}
.ov-22{font-size:6.4rem;line-height:8.5rem;color:#c8a164;}
.ov-23{font-family:var(--serif);font-weight:400;font-size:min(3.5rem,23px);line-height:5.03rem;}
.ov-24{font-family:var(--serif);font-weight:400;}
.ov-25{font-family:var(--serif);font-weight:400;font-size:min(3.5rem,23px);line-height:4.311rem;}
.ov-26{ font-size:min(3.5rem,23px);line-height:5.03rem;}
.ov-27{ font-size:min(3.5rem,23px);line-height:4.311rem;}
.ov-28{font-family:var(--sans);font-weight:700;}
.ov-29{font-family:var(--sans);font-weight:900;}

/* =========================================================
   SP専用要素（PCカンプには存在しない）— PCでは隠す
   ========================================================= */
.sp-deco, .sp-only, .fv__veil-sp, .br-sp { display: none; }
/* SP用の <br> を差し込むと、display:none でもテキストノードがそこで分割され、
   PC側では「元は折り返せなかった位置」が折り返し可能点になって行が余分に増える。
   PCでの行構成を元のまま保つため、当該行だけ nowrap で固定する（SPでは解除）。 */
.nb-pc { white-space: nowrap; }

/* =========================================================
   SP / タブレット（~1023px）
   FigmaのSPカンプ「SPサイズ調整後」（1500px幅 / 全高15678px）を
   そのまま等比縮小して再現する。
   1rem = 表示幅 / 150 とすることで、カンプ座標(px) / 10 = rem で置ける。
   基準幅は JS が clientWidth（縦スクロールバーを除いた実表示幅）から
   --spfs に入れる。100vw はスクロールバーを含むため CSS だけでは溢れる。
   ========================================================= */
@media screen and (max-width: 1023px) {
  html { font-size: var(--spfs, calc(100vw / 150)); }
  .page { width: 100%; }
  .sec { width: 100%; overflow: hidden; }

  /* --- PC専用 / SP専用の出し分け --- */
  .fv__veil { display: none; }              /* SPはグラデーションではなく画像 */
  .doctor__body-pconly { display: none; }   /* SPカンプでは前半7段落が省略されている */
  .br-pc { display: none; }
  /* SP専用に追加した要素はPC側に定義がなく position が static のままになる。
     absolute を明示しないと left/top が丸ごと無視されてフロー配置されるので必須。 */
  .sp-deco, .sp-only, .fv__veil-sp { display: block; position: absolute; }
  .br-sp { display: inline; }
  .nb-pc { white-space: normal; }

  /* --- 位置の基準をセクションに統一（PCではラッパーが基準） --- */
  .fv__catch, .card { position: static; }

  /* --- セクション高さ --- */
  .sec--fv { height:211.25rem; }
  .sec--news { height:261.15rem; }   /* カードを縦積み・全幅にしたぶん伸びる */
  /* 本文を図の左カラムへ戻したぶん、図の下の空白が詰まる。背景画像は元の高さのままなので、
     画像下端と同色（実測 rgb(251,243,237)）をセクションに敷いて継ぎ目を消す。 */
  .sec--system { height:141.35rem; background: #fbf3ed; }
  .sec--bos { height:50.2rem; }
  .sec--doctor { height:248rem; }   /* 経歴パネルを可読サイズにしたぶん伸びる */
  .sec--shuhari { height:549rem; }   /* 本文を全幅・可読サイズへ送り出したぶん伸びる */
  .sec--master { height:120.1rem; }
  .sec--course { height:176rem; }
  .sec--consider { height:225.4rem; }
  .sec--contact { height:79.9rem; }
  .sec--footer { height:40.3rem; }

  /* --- 各要素（カンプ座標 / 10 = rem） --- */
  .fv__veil-sp { left:-0.471rem; top:-180.199rem; opacity:0.250; width:150.041rem; height:324.268rem; object-fit:fill; clip-path:inset(178.849rem 0.021rem 25.819rem 0.021rem); }
  .fv__bg { left:-0.01rem; top:-66.685rem; width:150.02rem; height:316.132rem; object-fit:fill; clip-path:inset(65.335rem 0.01rem 38.197rem 0.01rem); }
  .fv__logo { left:2.85rem; top:3.6rem; width:15.3rem; height:11.25rem; object-fit:cover; object-position:50% 50%; }
  .fv__brand { left:19.2rem; top:8.25rem; width:52.3rem; font-size:3.6rem; line-height:5.173rem; letter-spacing:0; font-family:var(--serif); font-weight:700; text-align:left; color:#c8a164; }
  .fv__catch-a { left:9.9rem; top:25.5rem; width:96.75rem; font-size:6.75rem; line-height:18.15rem; letter-spacing:1.08rem; font-family:var(--serif); font-weight:500; text-align:left; color:#5d4b3a; }
  .fv__catch-b { left:9.9rem; top:39.6rem; width:40.5rem; font-size:13.2rem; line-height:18.15rem; letter-spacing:0.396rem; font-family:var(--serif); font-weight:500; text-align:left; color:#5d4b3a; }
  .fv__catch-c { left:39rem; top:41.1rem; width:22.8rem; font-size:10.95rem; line-height:18.15rem; letter-spacing:0.329rem; font-family:var(--serif); font-weight:500; text-align:left; color:#5d4b3a; }
  .fv__catch-d { left:53.7rem; top:40.05rem; width:28.5rem; font-size:13.2rem; line-height:18.15rem; letter-spacing:0.396rem; font-family:var(--serif); font-weight:500; text-align:left; color:#5d4b3a; }
  .fv__catch-e { left:82.65rem; top:41.1rem; width:14.85rem; font-size:10.95rem; line-height:18.15rem; letter-spacing:0.329rem; font-family:var(--serif); font-weight:500; text-align:left; color:#5d4b3a; }
  .fv__catch-f { left:10.35rem; top:56.55rem; width:78.45rem; font-size:7.95rem; line-height:18.15rem; letter-spacing:0.238rem; font-family:var(--serif); font-weight:500; text-align:left; color:#5d4b3a; }
  .fv__lead { left:10.95rem; top:76.65rem; width:107.25rem; font-size:4.2rem; line-height:6.6rem; letter-spacing:0; font-family:var(--sans); font-weight:400; text-align:left; color:#5d4b3a; }
  .fv__btn { left:10.8rem; top:98.55rem; width:67.65rem; height:10.5rem; }
  .fv__btn-txt { left:5.1rem; top:2.1rem; width:100.8rem; font-size:4.2rem; line-height:6.15rem; letter-spacing:0.672rem; font-family:var(--sans); font-weight:700; text-align:left; color:#ffffff; }
  .news__en { left:64.8rem; top:10.3rem; width:21.7rem; font-size:6.3rem; line-height:9.053rem; letter-spacing:0.63rem; font-family:var(--serif); font-weight:700; text-align:left; color:#000000; }
  .news__deco { left:44.208rem; top:0.175rem; width:62.784rem; height:41.906rem; object-fit:fill; clip-path:inset(19.125rem 0.042rem 18.731rem 0.042rem); }
  .news__ttl { left:55.95rem; top:23.8rem; width:180.75rem; font-size:5.4rem; line-height:7.76rem; letter-spacing:0.486rem; font-family:var(--serif); font-weight:600; text-align:left; color:#000000; }
  .news__lead { left:27.9rem; top:34.3rem; width:180.75rem; font-size:3.6rem; line-height:5.173rem; letter-spacing:0.324rem; font-family:var(--serif); font-weight:600; text-align:left; color:#000000; }
  /* --- NEWSカード：可読性のため横2列→縦積み・全幅へ ------------------------
     カンプはカード幅58.5rem（375px幅で146px）に説明文18px＝4.5px相当を詰める設計。
     守破離と同じ理由で読めないため、カードを1枚ずつ全幅に開いて本文を 3.15rem
     （＝doctor__body / shuhari__body と同値）に揃えた。説明文の<br>位置はそのまま
     2行に収まる（全幅325.5pxに対し最長28文字×7.875px＝220px）。 */
  /* PC側に `.card--1 .card__img` 等の詳細度(0,2,0)ルールがあるので、
     ここも `.card .card__*` で詳細度を合わせないと上書きできない。 */
  .card .card__panel { left:7.2rem; width:135.6rem; height:100.65rem; }
  .card .card__img   { left:7.2rem; width:135.6rem; height:62.5rem; object-fit:cover; object-position:50% 50%; }
  .card .card__badge { left:9.9rem; width:14.4rem; height:3.9rem; }
  .card .card__badge-txt { left:11.4rem; width:14.4rem; font-size:2.4rem; line-height:2.88rem; letter-spacing:0.214rem; font-family:var(--sans); font-weight:400; text-align:left; color:#ffffff; }
  .card .card__ttl   { left:9.9rem; width:130.2rem; font-size:3.6rem; line-height:5.2rem; letter-spacing:0.243rem; font-family:var(--serif); font-weight:600; text-align:left; color:#000000; }
  .card .card__desc  { left:9.9rem; width:130.2rem; font-size:3.15rem; line-height:4.8rem; letter-spacing:0.162rem; font-family:var(--serif); font-weight:600; text-align:left; color:#000000; }
  .card .card__btn   { left:9.9rem; width:36rem; height:6rem; }
  .card .card__btn-txt { left:-0.225rem; top:1.05rem; width:36rem; font-size:3rem; line-height:3.9rem; letter-spacing:0.45rem; font-family:var(--sans); font-weight:400; text-align:center; color:#ffffff; }

  .card--1 .card__panel { top:45.85rem; }
  .card--1 .card__img { top:45.85rem; }
  .card--1 .card__badge { top:110.35rem; }
  .card--1 .card__badge-txt { top:111rem; }
  .card--1 .card__ttl { top:116.5rem; }
  .card--1 .card__desc { top:123.5rem; }
  .card--1 .card__btn { top:136.5rem; }

  /* card--2 は card--1 を +108.65rem 送っただけ */
  .card--2 .card__panel { top:154.5rem; }
  .card--2 .card__img { top:154.5rem; }
  .card--2 .card__badge { top:219rem; }
  .card--2 .card__badge-txt { top:219.65rem; }
  .card--2 .card__ttl { top:225.15rem; }
  .card--2 .card__desc { top:232.15rem; }
  .card--2 .card__btn { top:245.15rem; }
  .system__bg { left:-50.494rem; top:-0.049rem; width:200.494rem; height:133.599rem; object-fit:fill; clip-path:inset(0.049rem 0rem 0.049rem 50.494rem); }
  .system__ttl { left:10.5rem; top:4.95rem; width:67.95rem; font-size:7.05rem; line-height:9.9rem; letter-spacing:1.198rem; font-family:var(--serif); font-weight:500; text-align:left; color:#000000; }
  .system__ttl-sub { left:48.15rem; top:20.7rem; width:25.65rem; font-size:5.7rem; line-height:8.191rem; letter-spacing:0.513rem; font-family:var(--serif); font-weight:600; text-align:left; color:#000000; }
  .system__diagram { left:59.55rem; top:31.8rem; width:91.5rem; height:61.05rem; object-fit:fill; clip-path:inset(0rem 0rem 0rem 0rem); }
  .system__lbl--tmj { left:96.15rem; top:25.5rem; width:17.85rem; font-size:3.45rem; line-height:4.05rem; letter-spacing:-0.034rem; font-family:var(--serif); font-weight:400; text-align:center; color:#000000; }
  .system__lbl--occ { left:96.15rem; top:56.85rem; width:20.55rem; font-size:3.45rem; line-height:4.65rem; letter-spacing:-0.034rem; font-family:var(--serif); font-weight:400; text-align:center; color:#000000; }
  .system__lbl-c { left:97.05rem; top:68.25rem; width:17.85rem; font-size:2.1rem; line-height:3.15rem; letter-spacing:0.063rem; font-family:var(--sans); font-weight:400; text-align:center; color:#000000; }
  .system__lbl--mus { left:75.6rem; top:86.7rem; width:17.85rem; font-size:3.45rem; line-height:4.05rem; letter-spacing:-0.034rem; font-family:var(--serif); font-weight:400; text-align:center; color:#000000; }
  .system__lbl--pos { left:115.95rem; top:86.7rem; width:18rem; font-size:3.45rem; line-height:4.05rem; letter-spacing:-0.034rem; font-family:var(--serif); font-weight:400; text-align:center; color:#000000; }
  /* --- SYSTEM本文：文字サイズ 3.15rem（本文標準）は据え置いたまま、見出し直下から
     本文を始める。図の左側のカラム（幅66.4rem＝166px）に収めるため、PC用に入れている
     手動の <br> は無効化して自然折り返しにする。 --- */
  .system__txt1 { left:7.2rem; top:49.6rem; width:66.4rem; font-size:3.15rem; line-height:5.1rem; letter-spacing:-0.027rem; font-family:var(--serif); font-weight:400; text-align:left; color:#000000; }
  .system__txt2 { left:7.2rem; top:80.8rem; width:66.4rem; font-size:3.15rem; line-height:5.1rem; letter-spacing:-0.027rem; font-family:var(--serif); font-weight:400; text-align:left; color:#000000; }
  .system__txt1 br, .system__txt2 br { display: none; }
  .system__glow { left:12.15rem; top:101.6rem; width:124.05rem; height:16.5rem; }
  .system__txt3 { left:12.75rem; top:104.15rem; width:125.4rem; font-size:3rem; line-height:5.4rem; letter-spacing:-0.03rem; font-family:var(--serif); font-weight:400; text-align:center; color:#000000; }
  .system__txt4 { left:15.9rem; top:121.7rem; width:118.35rem; font-size:2.85rem; line-height:4.65rem; letter-spacing:-0.028rem; font-family:var(--serif); font-weight:400; text-align:center; color:#000000; }
  .system__deco { left:42.708rem; top:119.84rem; width:62.784rem; height:41.906rem; object-fit:fill; clip-path:inset(19.125rem 0.042rem 18.731rem 0.042rem); }
  .bos__txt1 { left:-2.85rem; top:3.6rem; width:164.85rem; font-size:3.45rem; line-height:5.25rem; letter-spacing:0.241rem; font-family:var(--serif); font-weight:500; text-align:center; color:#000000; }
  .bos__txt2 { left:4.95rem; top:23.25rem; width:149.25rem; font-size:3.15rem; line-height:5.4rem; letter-spacing:-0.032rem; font-family:var(--serif); font-weight:500; text-align:center; color:#000000; }
  .doctor__bg { left:-97.733rem; top:-7.391rem; opacity:0.400; width:328.291rem; height:218.695rem; object-fit:fill; clip-path:inset(7.391rem 80.558rem 15.004rem 97.733rem); }
  .doctor__name { left:72.75rem; top:7.7rem; width:180.75rem; font-size:5.85rem; line-height:8.406rem; letter-spacing:0.526rem; font-family:var(--serif); font-weight:700; text-align:left; color:#000000; }
  .doctor__photo { left:0.52rem; top:-0.4rem; width:68.297rem; height:82.405rem; object-fit:fill; clip-path:inset(9.15rem 0.417rem 9.205rem 6.68rem); }
  .doctor__body { left:73.2rem; top:18.05rem; width:69rem; font-size:3.15rem; line-height:4.65rem; letter-spacing:0; font-family:var(--sans); font-weight:400; text-align:left; color:#000000; }
  .doctor__badge { left:3rem; top:68.575rem; width:70.05rem; height:46.7rem; object-fit:fill; clip-path:inset(0.025rem 0rem 25.225rem 0rem); }
  .doctor__tag--1 { left:10.95rem; top:79.55rem; width:15.45rem; font-size:2.4rem; line-height:3.45rem; letter-spacing:0; font-family:var(--serif); font-weight:600; text-align:center; color:#5d4b3a; }
  .doctor__tag--2 { left:30.45rem; top:78.95rem; width:15.45rem; font-size:2.4rem; line-height:3.45rem; letter-spacing:0; font-family:var(--serif); font-weight:600; text-align:center; color:#5d4b3a; }
  .doctor__tag--3 { left:49.65rem; top:78.95rem; width:15.45rem; font-size:2.4rem; line-height:3.45rem; letter-spacing:0; font-family:var(--serif); font-weight:600; text-align:center; color:#5d4b3a; }
  .doctor__sep--1 { left:28.2rem; top:79.4rem; width:0rem; height:6.9rem; }
  .doctor__sep--2 { left:48rem; top:79.4rem; width:0rem; height:6.9rem; }
  .doctor__panel { left:7.2rem; top:93.35rem; width:136.2rem; height:140.65rem; }
  /* 経歴パネル：カンプの 2.4rem は375px幅で6pxにしかならず読めない。
     本文標準の 3.15rem へ上げ、行高もspan側（ov-16/17/18）ごと引き上げる。 */
  .doctor__career { left:37.05rem; top:95.675rem; width:109.65rem; font-size:3.15rem; line-height:5.25rem; letter-spacing:0.024rem; font-family:var(--sans); font-weight:400; text-align:left; color:#000000; }
  /* span側に SP用の font-size:2.4rem 指定（後述の .ov-16,.ov-17,.ov-18）があり
     親からの継承を打ち消すため、詳細度を上げてここで揃える。 */
  .doctor__career .ov-16, .doctor__career .ov-17, .doctor__career .ov-18 { font-size: 3.15rem; line-height: 5.25rem; }
  .doctor__icon--career { left:8.607rem; top:106.86rem; width:13.767rem; height:9.081rem; object-fit:fill; clip-path:inset(1.596rem 4.374rem 2.235rem 4.293rem); }
  .doctor__label--career { left:18.9rem; top:109.46rem; width:15.6rem; font-size:2.7rem; line-height:3.88rem; letter-spacing:0; font-family:var(--serif); font-weight:500; text-align:left; color:#b6832f; }
  .doctor__divider--1 { left:10.527rem; top:101.36rem; opacity:0.540; width:88.95rem; height:59.569rem; object-fit:fill; clip-path:inset(24.891rem 1.227rem 27.628rem 0rem); }
  .doctor__icon--society { left:8.594rem; top:135.67rem; width:13.865rem; height:9.205rem; object-fit:fill; clip-path:inset(1.429rem 4.459rem 2.526rem 4.306rem); }
  .doctor__label--society { left:18.9rem; top:138.33rem; width:15.6rem; font-size:2.7rem; line-height:3.88rem; letter-spacing:0; font-family:var(--serif); font-weight:500; text-align:left; color:#b6832f; }
  .doctor__divider--2 { left:10.527rem; top:122.35rem; opacity:0.540; width:88.95rem; height:59.569rem; object-fit:fill; clip-path:inset(24.891rem 1.227rem 27.628rem 0rem); }
  .doctor__icon--lecture { left:9.654rem; top:162.66rem; width:11.588rem; height:7.727rem; object-fit:fill; clip-path:inset(1.023rem 3.242rem 1.754rem 3.246rem); }
  .doctor__label--lecture { left:18.9rem; top:164.58rem; width:15.6rem; font-size:2.7rem; line-height:3.88rem; letter-spacing:0; font-family:var(--serif); font-weight:500; text-align:left; color:#b6832f; }
  .doctor__divider--3 { left:10.527rem; top:153.85rem; opacity:0.540; width:88.95rem; height:59.569rem; object-fit:fill; clip-path:inset(24.891rem 1.227rem 27.628rem 0rem); }
  .doctor__icon--paper { left:8.989rem; top:193.73rem; width:12.948rem; height:8.574rem; object-fit:fill; clip-path:inset(1.055rem 3.937rem 2.269rem 3.911rem); }
  .doctor__label--paper { left:18.9rem; top:196.08rem; width:15.6rem; font-size:2.7rem; line-height:3.88rem; letter-spacing:0; font-family:var(--serif); font-weight:500; text-align:left; color:#b6832f; }
  .doctor__cert--1 { left:93.45rem; top:214rem; width:22.05rem; height:15.75rem; object-fit:cover; object-position:50% 50%; }
  .doctor__cert--2 { left:118.95rem; top:214rem; width:22.2rem; height:15.75rem; object-fit:cover; object-position:50% 50%; }
  /* --- 守破離：先方指摘（2026-08-04）で可読性優先へ再構成 -------------------
     カンプは本文を写真帯の余白（幅45〜70rem＝375px幅で112〜177px）に流し込む
     設計で、文字が18px＝375px幅で4.5px相当にしかならず読めない。
     写真帯（背景画像に3枚が縦連結）はカンプ位置のまま漢字・見出しを載せ、
     本文だけを帯の下へ全幅（左右7.2rem）で送り出して、他セクションの本文と
     同じ 3.15rem（=doctor__body / bos__txt2 と同値）に揃える。
     帯どうしが離れるぶん、破の帯は shuhari__bg2 で切り出して単独配置する。 */
  .shuhari__bg  { left:-0.626rem; top:-0.05rem;  width:152.157rem; height:228.594rem; object-fit:fill; clip-path:inset(0.05rem 1.53rem 151.794rem 0.626rem); }
  .shuhari__bg2 { left:-0.626rem; top:129rem; width:152.157rem; height:228.594rem; object-fit:fill; clip-path:inset(76.8rem 1.53rem 74.794rem 0.626rem); }
  .shuhari__body { left:7.2rem; width:135.6rem; font-size:3.15rem; line-height:4.9rem; letter-spacing:0; font-family:var(--serif); font-weight:400; text-align:left; color:#000000; }

  .shuhari__kanji--shu { left:57.3rem; top:4.3rem; width:18rem; font-size:10.35rem; line-height:14.873rem; letter-spacing:0; font-family:var(--serif); font-weight:600; text-align:center; color:#b28d5a; }
  .shuhari__ttl--shu { left:62.25rem; top:7.15rem; width:72.3rem; font-size:3.75rem; line-height:5.389rem; letter-spacing:0.412rem; font-family:var(--serif); font-weight:600; text-align:center; color:#000000; }
  .shuhari__body--shu { top:82rem; }
  .shuhari__more { left:7.2rem; top:182.9rem; font-size:3.15rem; line-height:4.9rem; font-family:var(--serif); font-weight:500; }

  /* 破：帯を +129rem 送ったので漢字・見出しも同じ量だけ動かす */
  .shuhari__kanji--ha { left:-0.45rem; top:205.6rem; width:16.35rem; font-size:10.35rem; line-height:14.873rem; letter-spacing:0; font-family:var(--serif); font-weight:600; text-align:center; color:#5c554b; }
  .shuhari__ttl--ha { left:-3.3rem; top:220.3rem; width:65.55rem; font-size:3.75rem; line-height:4.538rem; letter-spacing:0; font-family:var(--serif); font-weight:600; text-align:center; color:#000000; }
  .shuhari__body--ha { top:287.6rem; }

  /* 離：帯（photo--1/2）を +218.3rem 送ったので漢字・見出しも同量 */
  .shuhari__kanji--ri { left:75.45rem; top:373.05rem; width:18rem; font-size:10.35rem; line-height:14.873rem; letter-spacing:0; font-family:var(--serif); font-weight:600; text-align:center; color:#91734a; }
  .shuhari__ttl--ri { left:93rem; top:375.3rem; width:42.9rem; font-size:3.75rem; line-height:5.389rem; letter-spacing:0.6rem; font-family:var(--serif); font-weight:600; text-align:center; color:#000000; }
  .shuhari__body--ri { top:451.2rem; }
  .shuhari__photo--1 { left:-23.425rem; top:372.1rem; width:98.6rem; height:73.95rem; object-fit:fill; clip-path:inset(0rem 0.025rem 0rem 23.725rem); }
  .shuhari__photo--2 { left:52.04rem; top:372rem; width:143.271rem; height:74.1rem; object-fit:fill; clip-path:inset(0rem 45.31rem 0rem 21.66rem); }
  .master__bg { left:-58.75rem; top:0rem; opacity:0.510; width:225.866rem; height:150.599rem; object-fit:fill; clip-path:inset(0rem 17.116rem 30.399rem 58.75rem); }
  .master__ttl { left:29.1rem; top:13.2rem; width:94.5rem; font-size:7.5rem; line-height:10.65rem; letter-spacing:0; font-family:var(--serif); font-weight:700; text-align:center; color:#000000; }
  .master__deco { left:30.989rem; top:7.625rem; width:90.722rem; height:60.531rem; object-fit:fill; clip-path:inset(27.625rem 0.061rem 27.056rem 0.061rem); }
  .master__txt { left:-22.2rem; top:43.2rem; width:197.25rem; font-size:3.15rem; line-height:7.2rem; letter-spacing:-0.126rem; font-family:var(--serif); font-weight:400; text-align:center; color:#000000; }
  .course__bg--1 { left:-1.244rem; top:0rem; width:151.289rem; height:226.75rem; object-fit:fill; clip-path:inset(0rem 0.044rem 159.25rem 1.244rem); }
  .course__ttl { left:56.7rem; top:5.75rem; width:37.2rem; font-size:7.5rem; line-height:10.778rem; letter-spacing:0; font-family:var(--serif); font-weight:700; text-align:center; color:#000000; }
  .course__deco { left:31.139rem; top:-11.075rem; width:90.722rem; height:60.531rem; object-fit:fill; clip-path:inset(27.625rem 0.061rem 27.056rem 0.061rem); }
  .course__no--1 { left:7.05rem; top:33.65rem; width:9.3rem; font-size:6.3rem; line-height:9.053rem; letter-spacing:0.315rem; font-family:var(--serif); font-weight:500; text-align:center; color:#c8a164; }
  .course__name--1 { left:5.4rem; top:34.55rem; width:96.9rem; font-size:4.5rem; line-height:6.467rem; letter-spacing:0; font-family:var(--serif); font-weight:400; text-align:center; color:#000000; }
  .course__line--1 { left:19.5rem; top:36.65rem; width:0rem; height:11.85rem; }
  .course__sub--1 { left:-4.5rem; top:40.85rem; width:153.6rem; font-size:3.75rem; line-height:5.389rem; letter-spacing:0; font-family:var(--serif); font-weight:400; text-align:center; color:#000000; }
  .course__no--2 { left:3.45rem; top:61.1rem; width:16.5rem; font-size:6.15rem; line-height:8.838rem; letter-spacing:0; font-family:var(--serif); font-weight:500; text-align:center; color:#c8a164; }
  .course__name--2 { left:23.7rem; top:61.1rem; width:183.3rem; font-size:3.6rem; line-height:5.173rem; letter-spacing:0; font-family:var(--serif); font-weight:500; text-align:left; color:#000000; }
  .course__line--2 { left:19.5rem; top:64.55rem; width:0rem; height:11.85rem; }
  .course__item--1 { left:23.7rem; top:77.6rem; width:166.2rem; font-size:3.6rem; line-height:4.5rem; letter-spacing:0; font-family:var(--serif); font-weight:500; text-align:left; color:#000000; }
  .course__item--2 { left:23.4rem; top:84.8rem; width:166.2rem; font-size:3.6rem; line-height:4.5rem; letter-spacing:0; font-family:var(--serif); font-weight:400; text-align:left; color:#000000; }
  .course__item--3 { left:23.4rem; top:92rem; width:127.5rem; font-size:3.6rem; line-height:4.5rem; letter-spacing:0; font-family:var(--serif); font-weight:500; text-align:left; color:#000000; }
  .course__no--3 { left:5.25rem; top:108.05rem; width:12.9rem; font-size:6.15rem; line-height:8.838rem; letter-spacing:0; font-family:var(--serif); font-weight:500; text-align:center; color:#c8a164; }
  .course__name--3 { left:23.7rem; top:108.5rem; width:125.4rem; font-size:4.5rem; line-height:6.467rem; letter-spacing:0; font-family:var(--serif); font-weight:500; text-align:left; color:#000000; }
  .course__bg--2 { left:-2.149rem; top:-55.45rem; width:152.1rem; height:228.046rem; object-fit:fill; clip-path:inset(166.75rem 0rem 0.096rem 2.149rem); }
  .course__line--3 { left:19.5rem; top:111.35rem; width:0rem; height:11.85rem; }
  .course__no--4 { left:3.45rem; top:131.9rem; width:16.5rem; font-size:6.15rem; line-height:8.838rem; letter-spacing:0; font-family:var(--serif); font-weight:500; text-align:center; color:#c8a164; }
  .course__name--4 { left:23.7rem; top:132.35rem; width:125.4rem; font-size:4.5rem; line-height:6.467rem; letter-spacing:0; font-family:var(--serif); font-weight:400; text-align:left; color:#000000; }
  .course__line--4 { left:19.5rem; top:134.3rem; width:0rem; height:11.85rem; }
  .course__no--5 { left:3.45rem; top:155rem; width:16.5rem; font-size:6.15rem; line-height:8.838rem; letter-spacing:0; font-family:var(--serif); font-weight:500; text-align:center; color:#c8a164; }
  .course__name--5 { left:23.7rem; top:156.2rem; width:125.4rem; font-size:3.6rem; line-height:5.173rem; letter-spacing:0; font-family:var(--serif); font-weight:400; text-align:left; color:#000000; }
  .course__line--5 { left:19.5rem; top:158.15rem; width:0rem; height:11.85rem; }
  .consider__bg { left:-0.05rem; top:0rem; width:150rem; height:225.4rem; object-fit:cover; object-position:50% 50%; }
  .consider__ttl { left:26.7rem; top:15.15rem; width:99.8rem; font-size:6.3rem; line-height:9.053rem; letter-spacing:0.378rem; font-family:var(--serif); font-weight:700; text-align:center; color:#000000; }
  .consider__deco { left:31.289rem; top:-1.975rem; width:90.722rem; height:60.531rem; object-fit:fill; clip-path:inset(27.625rem 0.061rem 27.056rem 0.061rem); }
  .consider__txt { left:17.1rem; top:35.4rem; width:125.25rem; font-size:3.6rem; line-height:5.1rem; letter-spacing:0; font-family:var(--sans); font-weight:400; text-align:left; color:#000000; }
  .consider__photo { left:12.45rem; top:118.1rem; width:125.1rem; height:93.9rem; object-fit:cover; object-position:50% 50%; }
  .contact__ttl { left:36.3rem; top:16.1rem; width:80.6rem; font-size:6rem; line-height:8.622rem; letter-spacing:0.78rem; font-family:var(--serif); font-weight:700; text-align:center; color:#000000; }
  .contact__deco { left:31.289rem; top:-1.625rem; width:90.722rem; height:60.531rem; object-fit:fill; clip-path:inset(27.625rem 0.061rem 27.056rem 0.061rem); }
  .contact__lead { left:16.05rem; top:35rem; width:126.15rem; font-size:3.75rem; line-height:6.9rem; letter-spacing:0.3rem; font-family:var(--serif); font-weight:500; text-align:center; color:#000000; }
  .contact__btn--primary { left:12.6rem; top:54.2rem; width:61.35rem; height:9.6rem; }
  .contact__btn--secondary { left:78rem; top:54.5rem; width:61.35rem; height:9.3rem; }
  .contact__btn--primary .contact__btn-txt { left:-30.3rem; top:1.05rem; width:126.15rem; font-size:3.45rem; line-height:6.9rem; letter-spacing:0.655rem; font-family:var(--serif); font-weight:600; text-align:center; color:#ffffff; }
  .contact__btn--secondary .contact__btn-txt { left:-30.3rem; top:1.05rem; width:126.15rem; font-size:3.45rem; line-height:6.9rem; letter-spacing:0.655rem; font-family:var(--serif); font-weight:900; text-align:center; color:#c8a164; }
  .footer__bg { left:-0.137rem; top:-0.05rem; width:151.576rem; height:40.3rem; object-fit:fill; clip-path:inset(0.05rem 1.439rem 0rem 0.137rem); }

  /* --- 面・線・影（Figmaのfill/stroke/effect） --- */
  .sec--bos { background: linear-gradient(90deg, #f9e8d3 0%, #f6f1ec 47.1%, #eedfcd 100%); }
  .fv__btn { background: linear-gradient(90deg, #bb9353 0%, #f2ca8a 100%); border-radius: 1.5rem; }
  .card__panel { background: #fff; box-shadow: 0 0.6rem 2.25rem rgba(0, 0, 0, .25); }
  .card__badge { background: var(--gold-mid); }
  .card__btn { background: var(--gold-btn); }
  /* Rectangle 4482: 塗りは透明で、stroke(3px)とドロップシャドウだけが見える金色の枠 */
  .system__glow { border: 0.3rem solid #c2994d; box-shadow: 0.3rem 0.3rem 0.9rem rgba(242, 202, 138, .9); }
  /* PC同様、Figmaは同座標に同じパネルが2枚重なっており α0.68 の合成で実効 0.898 になる */
  .doctor__panel { background: rgba(252, 252, 252, .898); }
  /* secondaryボタンは border 0.6rem がボックス内側に入るぶん、子テキストの基準がずれる */
  .contact__btn--secondary .contact__btn-txt { margin-left: -0.6rem; margin-top: -0.6rem; }
  .doctor__sep { width: 0.4rem; background: #eea817; }
  .course__line { width: 0.4rem; background: var(--gold); }
  .contact__btn--primary { background: linear-gradient(0deg, #b6832f 0%, #cda65e 100%); border-radius: 1.5rem; }
  .contact__btn--secondary { background: #fff; border: 0.6rem solid var(--gold); border-radius: 1.5rem; }
  /* 学術論文リンクの下線（Line 100） */
  .doctor__career .ov-18 { border-bottom: 0.15rem solid currentColor; }

  /* --- 段落・空行（カンプの改行そのまま） --- */
  .doctor__body p + p { margin-top: 4.65rem; }
  .doctor__career p + p { margin-top: 4.2rem; }
  .shuhari__body p + p { margin-top: 3.15rem; }
  .master__txt .para { display: block; height: 7.2rem; }
  .consider__txt .para { display: block; height: 5.1rem; }
  .bos__txt2 .bos__line { display: block; height: 5.1rem; line-height: 5.1rem; }

  /* --- characterStyleOverrides（SPカンプの値） --- */
  .ov-1 { font-size: 12.45rem; line-height: 15.75rem; color: inherit; }
  .ov-2 { font-size: 10.2rem; line-height: 18.15rem; }
  .ov-3 { line-height: 4.05rem; }
  .ov-4 { font-size: 3rem; line-height: 4.05rem; }
  .ov-5, .ov-6 { font-size: 7.05rem; letter-spacing: 1.1985rem; line-height: 9.9rem; }
  .ov-7 { font-size: 3.75rem; line-height: 4.65rem; }
  .ov-8 { font-size: 3rem; letter-spacing: 0.12rem; line-height: 4.65rem; }
  .ov-9 { font-size: 3rem; line-height: 4.05rem; }
  .ov-10, .ov-11 { font-size: 3rem; }
  .ov-12, .ov-13 { font-size: 3.45rem; letter-spacing: 0.2415rem; line-height: 5.25rem; }
  .ov-14 { font-size: 3.45rem; line-height: 5.4rem; }
  .ov-15 { font-size: 3.9rem; line-height: 5.4rem; }
  /* 経歴パネルはSPカンプでは Noto Sans JP Light(300)。親strutも300に揃える */
  .doctor__career { font-weight: 300; }
  .ov-16, .ov-17, .ov-18 { font-size: 2.4rem; letter-spacing: 0.024rem; line-height: 4.2rem; }
  .ov-16, .ov-17 { font-weight: 300; }
  .ov-18 { font-weight: 500; color: #351bc5; }
  .ov-19 { font-size: 3.75rem; line-height: 4.538rem; }
  .ov-20 { font-size: 3.75rem; letter-spacing: 0.4125rem; line-height: 4.538rem; }
  .ov-21, .ov-22 { font-size: 7.5rem; line-height: 10.65rem; }
  .ov-23, .ov-26 { font-size: 4.5rem; }
  .ov-24, .ov-25, .ov-27 { font-size: 3.75rem; }
  .ov-28, .ov-29 { font-size: 3.45rem; }
}
