body {
	font-family: "";
}

.u-desktop {
	display: block;
}

.u-mobile {
	display: none;
}

/* =========================================================================
   base / tokens — 南流山レディスクリニック
   デザイン基準: PC=1440 / SP=390。寸法はすべて calc(px * var(--u)) で書く。
   ブレイクポイント: 767px 単一（SP ≤767 / PC ≥768）
   ========================================================================= */

:root { /* --- 流動ユニット: 1デザインpx。PC基準1440・1440超は1px固定 --- */
	--u: min(100vw / 1440, 1px); /* --- カラートークン(Figma) --- */
	--c-pink: #fd7676; /* 主アクセント: コピー/電話/ナビ */
	--c-pink-bar: #ff8f8f; /* インフォメーションバー背景 */
	--c-badge: #ff8171; /* バッジ */
	--c-brown: #6b3906; /* ロゴ和文 */
	--c-brown-2: #7c6660; /* 診療時間・ハンバーガー等 */
	--c-line: #06c755; /* LINE緑 */
	--c-nav-bg: #fffaf6; /* SPヘッダー/グローバルナビ背景 */
	--c-feature-bg: #fffaf6; /* 特長セクション本体(Figma: feature-bg1 body) */
	--c-cream: #fff4d8;
	--c-bg: #fdf2ee; /* 水彩背景のベース色(フォールバック) */
	--c-white: #ffffff;
	--maxw: 1440; /* PCデザイン幅 */ /* 本文フォントサイズ: 16px基準・下限15px(狭幅付近)。読ませる本文はこれを使う */
	--fs-body: max(1.5rem, min(calc(16 * var(--u)), 1.6rem));
	--font-mincho: "Shippori Mincho", serif;
	--font-jp: "Noto Sans JP", sans-serif;
	--font-serif: "Noto Serif JP", serif;
	--font-num: "Open Sans", sans-serif;
	--font-en: "Lora", serif;
}

html {
	font-size: 62.5%; /* 1rem = 10px */
	overflow-x: hidden; /* 横スクロール(装飾のはみ出し)を防止 */
}

body {
	background: #fdf2ee;
	background: var(--c-bg);
	color: #7c6660;
	color: var(--c-brown-2);
	font-family: "Noto Sans JP", sans-serif;
	font-family: var(--font-jp);
	font-size: 1.6rem; /* 本文既定16px(規約) */
	overflow-x: hidden; /* 横スクロール防止(html+bodyの二重で確実に) */
}

/* =========================================================================
   reset — 制作会社実装(minaminagareyama)のリセットをベースに移植
   ※テーマ標準リセットの img{width:100%} / a:hover{opacity:.7} 等は
     デザインを崩すため採用しない
   ========================================================================= */

*,
*::before,
*::after {
	box-sizing: border-box;
	margin: 0;
	padding: 0;
}

html {
	-webkit-text-size-adjust: 100%;
}

body {
	-webkit-font-smoothing: antialiased;
	line-height: 1.75;
}

img,
picture,
svg {
	display: block;
	height: auto;
	max-width: 100%;
}

ul,
ol {
	list-style: none;
}

a {
	-webkit-text-decoration: none;
	color: inherit;
	text-decoration: none;
}

button {
	background: none;
	border: none;
	color: inherit;
	cursor: pointer;
	font: inherit;
}

h1 {
	font-size: inherit;
	font-weight: inherit;
}

/* フォームリセット */

input,
button,
select,
textarea {
	background: transparent;
	border: none;
	border-radius: 0;
	font: inherit;
	outline: none;
}

textarea {
	resize: vertical;
}

input[type=submit],
input[type=button],
label,
button,
select {
	cursor: pointer;
}

/* 電話リンクはPCでは無効化 */

a[href^="tel:"] {
	pointer-events: none;
}

/* =========================================================================
   abortion-contraception（中絶（人工中絶・経口中絶等）・避妊）ページ固有スタイル
   ・下層共通コンポーネント: me-*（_medical-examination.scss）/ cp-*（_under-common.scss）
   ・このファイルは abortion-contraception 固有の差分のみ
   ========================================================================= */

/* ページ地色（Fig: #fffaf6）。menu直後のフッター空色も me ページと同じ */

body.body-page-abortion-contraception {
	background: #fffaf6;
}

body.body-page-abortion-contraception .p-footer {
	--ft-sky: #fff7f1;
}

/* ============ ヒーロー装飾（コアラと女性はcheckup-pillと共通の同一イラストを再利用 / 右側） ============ */

.ac-hero__koala {
	height: auto;
	position: absolute;
	right: calc(-20 * min(100vw / 1440, 1px));
	right: calc(-20 * var(--u));
	top: calc(109 * min(100vw / 1440, 1px));
	top: calc(109 * var(--u));
	width: calc(197 * min(100vw / 1440, 1px));
	width: calc(197 * var(--u));
	z-index: 1;
}

/* ============ ac-note（クリーム単発ノート。Fig: card / #ffefe5・padding40・角丸なし）
   ※ me-note(角丸8u)とは異なりコーナーが直角のため新規クラスとして定義
   ※ TOPアクセス欄の凡例 .ac-note(接頭辞衝突)に背景/余白が漏れないよう .me-page でスコープ ============ */

.me-page .ac-note {
	background: #ffefe5;
	padding: calc(40 * min(100vw / 1440, 1px));
	padding: calc(40 * var(--u));
}

.me-page .ac-note p {
	color: #7c6660;
	color: var(--c-brown-2);
	font-family: "Noto Sans JP", sans-serif;
	font-family: var(--font-jp);
	font-size: max(1.5rem, min(calc(16 * min(100vw / 1440, 1px)), 1.6rem));
	font-size: var(--fs-body);
	font-weight: 400;
	letter-spacing: 0.03em;
	line-height: 1.6;
	text-align: center;
}

/* ============ ac-steps（番号付きスケジュール。Fig: 受診・入院スケジュール専用のステップリスト） ============ */

.ac-steps {
	display: flex;
	flex-direction: column;
}

.ac-steps__item + .ac-steps__item { /* 区切り線(Fig: #afdfb4・太さ3・破線0.1/間隔8・線端丸 ≒ 3px丸ドット8pxピッチ)。SVG真円タイルで描画 */
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='3'%3E%3Ccircle cx='4' cy='1.5' r='1.5' fill='%23afdfb4'/%3E%3C/svg%3E");
	background-position: left top;
	background-repeat: repeat-x;
	background-size: calc(8 * min(100vw / 1440, 1px)) calc(3 * min(100vw / 1440, 1px));
	background-size: calc(8 * var(--u)) calc(3 * var(--u));
	margin-top: calc(32 * min(100vw / 1440, 1px));
	margin-top: calc(32 * var(--u));
	padding-top: calc(32 * min(100vw / 1440, 1px));
	padding-top: calc(32 * var(--u));
}

.ac-steps__ttl {
	color: #7c6660;
	color: var(--c-brown-2);
	font-family: "Noto Sans JP", sans-serif;
	font-family: var(--font-jp);
	font-size: calc(20 * min(100vw / 1440, 1px));
	font-size: calc(20 * var(--u));
	font-weight: 700;
	letter-spacing: 0.03em;
	line-height: 1.6;
	padding-left: calc(24 * min(100vw / 1440, 1px));
	padding-left: calc(24 * var(--u));
	position: relative;
}

.ac-steps__ttl::before {
	background: #afdfb4;
	border-radius: 50%;
	content: "";
	height: calc(8 * min(100vw / 1440, 1px));
	height: calc(8 * var(--u));
	left: 0;
	position: absolute;
	top: calc(12 * min(100vw / 1440, 1px));
	top: calc(12 * var(--u));
	width: calc(8 * min(100vw / 1440, 1px));
	width: calc(8 * var(--u));
}

.ac-steps__txt {
	color: #7c6660;
	color: var(--c-brown-2);
	font-family: "Noto Sans JP", sans-serif;
	font-family: var(--font-jp);
	font-size: max(1.5rem, min(calc(16 * min(100vw / 1440, 1px)), 1.6rem));
	font-size: var(--fs-body);
	font-weight: 400;
	letter-spacing: 0.03em;
	line-height: 1.6;
}

.ac-steps__ttl + .ac-steps__txt {
	margin-top: calc(24 * min(100vw / 1440, 1px));
	margin-top: calc(24 * var(--u));
}

.ac-steps__txt + .ac-steps__txt {
	margin-top: calc(16 * min(100vw / 1440, 1px));
	margin-top: calc(16 * var(--u));
}

/* ============ cp-photo 比率のSP専用上書き（Fig実測: SPは928:400ではなく342:228＝figrowと近い比率に変更） ============ */

/* =========================================================================
   about（当院について）ページ固有スタイル
   ・共通の下層レイアウト/コンポーネント: me-*（_medical-examination.scss）/ cp-*（_under-common.scss）
   ・このページは目次(6ボタン)がFig実測でPCも横並びグリッド(固定サイドバーではない)ため、
     me-head/me-main幅とme-indexの挙動をこのページだけ上書きする
   ・見出し(h2)は「花装飾+ドットライン」の新パターン(ab-h2*)、h3は既存 me-sub__ttl を流用
   ・デザイン基準: PC=1440 / SP=390。寸法は calc(px * var(--u))
   ========================================================================= */

/* ページ地色（Fig: #fffaf6） */

body.body-page-about {
	background: #fffaf6;
}

.p-footer {
	--ft-sky: #fff7f1;
	margin-top: calc(-120 * min(100vw / 1440, 1px));
	margin-top: calc(-120 * var(--u));
}

/* ---- 緑セクションの h3 バー色（Fig実測: #b4e2b8/#8acd90。me系トークン#cbe8ce/#b4e2b8とは別系統。
   .coding-plan.md「照合結果」に記載済みの未解決差分と同じ現象のため、このページはFig実測値を優先） ---- */

body.body-page-about .me-sec--green {
	--bar-a: #b4e2b8;
	--bar-b: #8acd90;
}

/* ---- 背景装飾（鳥・雲・気球。Fig実測: 1440フレームのxを中央相対に換算して配置。
   アンカー: balloon-croudsのみ .me-wrap / 他は各セクション(いずれもposition:relative) ---- */

body.body-page-about .me-page {
	overflow-x: clip; /* 画面端からはみ出す雲(Figでもフレーム外へクリップ)による横スクロール防止 */
}

.ab-deco {
	height: auto;
	pointer-events: none;
	position: absolute;
	z-index: 1;
}

.ab-deco--balloon-crouds {
	left: calc(50% + 423 * min(100vw / 1440, 1px));
	left: calc(50% + 423 * var(--u));
	top: calc(684 * min(100vw / 1440, 1px));
	top: calc(684 * var(--u));
	width: calc(217 * min(100vw / 1440, 1px));
	width: calc(217 * var(--u));
}

/* あしらいアンカー: 近傍ブロック相対配置(画面幅変動での本文リフローによるズレ防止) */

.ab-h3s--anchor {
	position: relative;
}

.ab-deco.ab-deco--balloons {
	left: calc(50% + 479 * min(100vw / 1440, 1px));
	left: calc(50% + 479 * var(--u));
	top: calc(11 * min(100vw / 1440, 1px));
	top: calc(11 * var(--u)); /* SDGsブロック基準(1440実測) */
	width: calc(73 * min(100vw / 1440, 1px));
	width: calc(73 * var(--u));
}

/* 1個目の風船(セクション先頭側)はSPでは非表示 */

.ab-deco--bird1 {
	left: calc(50% - 480 * min(100vw / 1440, 1px));
	left: calc(50% - 480 * var(--u));
	top: calc(104 * min(100vw / 1440, 1px));
	top: calc(104 * var(--u));
	width: calc(78 * min(100vw / 1440, 1px));
	width: calc(78 * var(--u));
}

.ab-deco--bird2-pc {
	left: calc(50% + 457 * min(100vw / 1440, 1px));
	left: calc(50% + 457 * var(--u));
	top: calc(440 * min(100vw / 1440, 1px));
	top: calc(440 * var(--u)); /* 大浦ブロック基準(1440実測) */
	width: calc(119 * min(100vw / 1440, 1px));
	width: calc(119 * var(--u));
}

.ab-deco--bird2-sp {
	display: none;
}

.ab-deco--crouds1 {
	left: calc(50% - 660 * min(100vw / 1440, 1px));
	left: calc(50% - 660 * var(--u));
	top: calc(32 * min(100vw / 1440, 1px));
	top: calc(32 * var(--u));
	width: calc(259 * min(100vw / 1440, 1px));
	width: calc(259 * var(--u));
}

.ab-deco--birds-pair {
	left: calc(50% + 482 * min(100vw / 1440, 1px));
	left: calc(50% + 482 * var(--u));
	top: calc(242 * min(100vw / 1440, 1px));
	top: calc(242 * var(--u));
	width: calc(118 * min(100vw / 1440, 1px));
	width: calc(118 * var(--u));
}

.ab-deco--crouds2 {
	left: calc(50% + 510 * min(100vw / 1440, 1px));
	left: calc(50% + 510 * var(--u));
	top: calc(-56 * min(100vw / 1440, 1px));
	top: calc(-56 * var(--u));
	width: calc(259 * min(100vw / 1440, 1px));
	width: calc(259 * var(--u));
}

.ab-deco--bird5 {
	left: calc(50% - 640 * min(100vw / 1440, 1px));
	left: calc(50% - 640 * var(--u));
	top: calc(80 * min(100vw / 1440, 1px));
	top: calc(80 * var(--u));
	width: calc(70 * min(100vw / 1440, 1px));
	width: calc(70 * var(--u));
}

.ab-deco--crouds3 {
	left: calc(50% + 510 * min(100vw / 1440, 1px));
	left: calc(50% + 510 * var(--u));
	top: calc(-40 * min(100vw / 1440, 1px));
	top: calc(-40 * var(--u));
	width: calc(259 * min(100vw / 1440, 1px));
	width: calc(259 * var(--u));
}

/* ---- セクション背景帯(Fig: doctor/facility/minaminagareyama は全幅 #fff7f1) ---- */

#doctor::before,
#facility::before,
#minaminagareyama::before {
	background: #fff7f1;
	bottom: 0;
	content: "";
	left: 0;
	left: 50%;
	pointer-events: none;
	position: absolute;
	right: 0;
	top: 0;
	transform: translateX(-50%);
	width: 100vw;
	z-index: -1;
}

/* ============================================================
   レイアウト上書き: このページは目次が横並びボタン(PCもSPと同形式)。
   本文幅もFig実測で1040px(通常ページの960pxではない)。
   ============================================================ */

body.body-page-about .me-head,
body.body-page-about .me-main {
	margin-left: auto;
	margin-right: auto;
	width: calc(1040 * min(100vw / 1440, 1px));
	width: calc(1040 * var(--u));
}

body.body-page-about .me-index {
	left: auto;
	max-height: none;
	overflow: visible;
	position: static;
	top: auto;
	z-index: auto;
}

body.body-page-about .me-index__sub {
	display: none;
}

/* PCのみ: このページ特有の4列折返しグリッド(SPは他ページと同じ2列グリッドに任せる) */

/* ============ ヒーロー装飾（背景写真+コアラ+女性イラスト） ============ */

.ab-hero {
	overflow: visible;
	padding-bottom: calc(50 * min(100vw / 1440, 1px));
	padding-bottom: calc(50 * var(--u)); /* Fig実測: 帯400=カード300+上下pad50 */
	padding-top: calc(50 * min(100vw / 1440, 1px));
	padding-top: calc(50 * var(--u));
}

.ab-hero__bg {
	-o-object-fit: cover;
	height: 100%;
	left: 50%;
	max-width: calc(1920 * min(100vw / 1440, 1px));
	max-width: calc(1920 * var(--u));
	object-fit: cover;
	position: absolute;
	top: 0;
	transform: translateX(-50%);
	width: 100vw;
	z-index: 0;
}

.ab-hero .me-hero__card {
	position: relative;
	z-index: 1;
}

.ab-hero__koala {
	height: auto;
	left: calc(-80 * min(100vw / 1440, 1px));
	left: calc(-80 * var(--u));
	position: absolute;
	top: calc(74 * min(100vw / 1440, 1px));
	top: calc(74 * var(--u));
	width: calc(129 * min(100vw / 1440, 1px));
	width: calc(129 * var(--u));
	z-index: 2;
}

.ab-hero__woman {
	height: auto;
	position: absolute;
	right: calc(-80 * min(100vw / 1440, 1px));
	right: calc(-80 * var(--u));
	top: calc(177 * min(100vw / 1440, 1px));
	top: calc(177 * var(--u));
	width: calc(182 * min(100vw / 1440, 1px));
	width: calc(182 * var(--u));
	z-index: 2;
}

/* ============================================================
   h2 見出し（花装飾 + ドットライン）
   ============================================================ */

/* セクション先頭への別名アンカー（#first/#access等。既存idと二重に着地させるための不可視スパン） */

.ab-anchor {
	position: absolute;
	scroll-margin-top: calc((130 * min(100vw / 1440, 1px)) + 20 * min(100vw / 1440, 1px));
	scroll-margin-top: calc(calc(130 * min(100vw / 1440, 1px)) + 20 * min(100vw / 1440, 1px));
	scroll-margin-top: calc(var(--header-h) + 20 * var(--u));
	top: 0;
}

.ab-h2s {
	padding-bottom: calc(120 * min(100vw / 1440, 1px));
	padding-bottom: calc(120 * var(--u));
	padding-top: calc(120 * min(100vw / 1440, 1px));
	padding-top: calc(120 * var(--u));
	position: relative; /* .ab-anchor(別名アンカー)の基準 */
	scroll-margin-top: calc((130 * min(100vw / 1440, 1px)) + 20 * min(100vw / 1440, 1px));
	scroll-margin-top: calc(calc(130 * min(100vw / 1440, 1px)) + 20 * min(100vw / 1440, 1px));
	scroll-margin-top: calc(var(--header-h) + 20 * var(--u));
}

.ab-main > .ab-h2s:first-child {
	padding-top: 0;
}

.ab-h2__head > * + * {
	margin-top: calc(24 * min(100vw / 1440, 1px));
	margin-top: calc(24 * var(--u));
}

.ab-h2__row {
	align-items: center;
	display: flex;
	gap: calc(24 * min(100vw / 1440, 1px));
	gap: calc(24 * var(--u));
	justify-content: center;
}

.ab-h2__flower {
	flex-shrink: 0;
	height: auto;
}

.ab-h2__flower--l {
	width: calc(43 * min(100vw / 1440, 1px));
	width: calc(43 * var(--u));
}

.ab-h2__flower--r {
	width: calc(45 * min(100vw / 1440, 1px));
	width: calc(45 * var(--u));
}

.ab-h2__ttl {
	color: var(--sec);
	font-family: "Shippori Mincho", serif;
	font-family: var(--font-mincho);
	font-size: calc(32 * min(100vw / 1440, 1px));
	font-size: calc(32 * var(--u));
	font-weight: 800;
	letter-spacing: 0.05em;
	line-height: 1.5;
	text-align: center;
	white-space: nowrap;
}

.ab-h2__line {
	background: var(--sec-line) left/auto 100% no-repeat;
	display: block;
	height: calc(10 * min(100vw / 1440, 1px));
	height: calc(10 * var(--u));
	width: 100%;
}

.ab-h2__body {
	margin-top: calc(80 * min(100vw / 1440, 1px));
	margin-top: calc(80 * var(--u)); /* Fig実測: 花ライン→本文80 */
	padding-left: calc(16 * min(100vw / 1440, 1px));
	padding-left: calc(16 * var(--u));
	padding-right: calc(16 * min(100vw / 1440, 1px));
	padding-right: calc(16 * var(--u));
}

.ab-h2__body > * + * {
	margin-top: calc(40 * min(100vw / 1440, 1px));
	margin-top: calc(40 * var(--u)); /* cp-under系と同じ既定40 */
}

.ab-h2__body > * + .ab-h3s {
	margin-top: calc(80 * min(100vw / 1440, 1px));
	margin-top: calc(80 * var(--u)); /* h3グループの上は広め(cp-underのme-sub__ttl上80と同一) */
}

/* h3 グループ（見出し + 本文パーツ、内部gap40=cp-under系と同一） */

.ab-h3s > * + * {
	margin-top: calc(40 * min(100vw / 1440, 1px));
	margin-top: calc(40 * var(--u));
}

/* 全幅の角丸写真（1008x500） */

.ab-photo--a img {
	-o-object-fit: cover;
	aspect-ratio: 1008/500;
	border-radius: calc(10 * min(100vw / 1440, 1px));
	border-radius: calc(10 * var(--u));
	display: block;
	height: auto;
	object-fit: cover;
	width: 100%;
}

/* ============ 写真+本文の横並び（flex。SPは写真が先頭・全幅） ============ */

.ab-figrow {
	align-items: flex-start;
	display: flex;
	gap: calc(40 * min(100vw / 1440, 1px));
	gap: calc(40 * var(--u));
}

.ab-figrow__img {
	flex-shrink: 0;
}

.ab-figrow__img img {
	-o-object-fit: cover;
	border-radius: calc(10 * min(100vw / 1440, 1px));
	border-radius: calc(10 * var(--u));
	display: block;
	height: auto;
	object-fit: cover;
	width: 100%;
}

.ab-figrow__img--sm {
	width: calc(300 * min(100vw / 1440, 1px));
	width: calc(300 * var(--u));
}

.ab-figrow__img--sm img {
	aspect-ratio: 1/1;
}

.ab-figrow__img--sq400 {
	width: calc(400 * min(100vw / 1440, 1px));
	width: calc(400 * var(--u));
}

.ab-figrow__img--sq400 img {
	aspect-ratio: 1/1;
}

.ab-figrow__img--meal1 {
	width: calc(400 * min(100vw / 1440, 1px));
	width: calc(400 * var(--u));
}

.ab-figrow__img--meal1 img {
	aspect-ratio: 400/266;
}

.ab-figrow__img--meal2 {
	width: calc(420 * min(100vw / 1440, 1px));
	width: calc(420 * var(--u));
}

.ab-figrow__img--meal2 img {
	aspect-ratio: 420/280;
}

.ab-figrow__body {
	flex: 1 1 0;
	margin-top: calc(-40 * min(100vw / 1440, 1px));
	margin-top: calc(-40 * var(--u));
	min-width: 0;
}

.ab-figrow__body > * + * {
	margin-top: calc(16 * min(100vw / 1440, 1px));
	margin-top: calc(16 * var(--u));
}

/* ============ 経歴・所属学会 2カラム ============ */

.ab-cols {
	align-items: flex-start;
	display: flex;
	gap: calc(40 * min(100vw / 1440, 1px));
	gap: calc(40 * var(--u));
}

.ab-cols__col {
	flex: 1 1 0;
	min-width: 0;
}

.ab-cols__col > * + * {
	margin-top: calc(16 * min(100vw / 1440, 1px));
	margin-top: calc(16 * var(--u));
}

.ab-h4 {
	color: var(--sec);
	font-family: "Shippori Mincho", serif;
	font-family: var(--font-mincho);
	font-size: calc(20 * min(100vw / 1440, 1px));
	font-size: calc(20 * var(--u));
	font-weight: 800;
	letter-spacing: 0.05em;
	line-height: 1.5;
	padding-bottom: calc(10 * min(100vw / 1440, 1px));
	padding-bottom: calc(10 * var(--u));
}

.ab-h4__line { /* Fig: 太さ3・破線0.1・間隔8・線端丸・緑 ＝ 3px丸ドット8pxピッチ */
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='3'%3E%3Ccircle cx='4' cy='1.5' r='1.5' fill='%238acd90'/%3E%3C/svg%3E");
	background-position: left center;
	background-repeat: repeat-x;
	background-size: calc(8 * min(100vw / 1440, 1px)) calc(3 * min(100vw / 1440, 1px));
	background-size: calc(8 * var(--u)) calc(3 * var(--u));
	border: 0;
	height: calc(3 * min(100vw / 1440, 1px));
	height: calc(3 * var(--u));
	margin: 0;
}

.ab-list {
	color: #7c6660;
	color: var(--c-brown-2);
	font-family: "Noto Sans JP", sans-serif;
	font-family: var(--font-jp);
	font-size: calc(14 * min(100vw / 1440, 1px));
	font-size: calc(14 * var(--u));
	font-weight: 400;
	letter-spacing: 0.03em;
	line-height: 1.6;
	list-style: disc;
	padding-left: calc(21 * min(100vw / 1440, 1px));
	padding-left: calc(21 * var(--u));
}

.ab-list--body {
	font-size: max(1.5rem, min(calc(16 * min(100vw / 1440, 1px)), 1.6rem));
	font-size: var(--fs-body);
}

/* ============ 大浦院長/佐知子先生バナー（外部リンク画像） ============ */

.ab-banners {
	align-items: flex-end;
	display: flex;
	flex-wrap: wrap;
	gap: calc(40 * min(100vw / 1440, 1px));
	gap: calc(40 * var(--u));
	justify-content: center; /* Fig更新版: センター寄せ */
}

.ab-banner {
	display: block;
	transition: opacity 0.2s ease;
}

.ab-banner:focus-visible {
	outline: calc(2 * min(100vw / 1440, 1px)) solid #fd7676;
	outline: calc(2 * var(--u)) solid var(--c-pink);
	outline-offset: calc(2 * min(100vw / 1440, 1px));
	outline-offset: calc(2 * var(--u));
}

.ab-banner img {
	display: block;
	height: auto;
	width: 100%;
}

.ab-banner--w500 {
	width: calc(500 * min(100vw / 1440, 1px));
	width: calc(500 * var(--u));
}

.ab-banner--w380 {
	width: calc(380 * min(100vw / 1440, 1px));
	width: calc(380 * var(--u));
}

/* ============ スタッフ一覧（円形写真+キャプション） ============ */

.ab-staff {
	display: flex;
	flex-wrap: wrap;
	gap: calc(24 * min(100vw / 1440, 1px));
	gap: calc(24 * var(--u));
	justify-content: space-between;
}

/* Fig: 中央2つの円は24px下げた千鳥配置(PCのみ) */

.ab-staff__item {
	align-items: center;
	display: flex;
	flex-direction: column;
	gap: calc(24 * min(100vw / 1440, 1px));
	gap: calc(24 * var(--u));
	width: calc(234 * min(100vw / 1440, 1px));
	width: calc(234 * var(--u));
}

.ab-staff__img {
	height: calc(230 * min(100vw / 1440, 1px));
	height: calc(230 * var(--u));
	width: calc(230 * min(100vw / 1440, 1px));
	width: calc(230 * var(--u)); /* Fig: 230 */ /* 透過ブロブPNGのためCSS円形クリップは不要(クリップすると縁が欠ける) */
}

.ab-staff__img img {
	-o-object-fit: contain;
	display: block;
	height: 100%;
	object-fit: contain;
	width: 100%;
}

.ab-staff__cap {
	color: #7c6660;
	color: var(--c-brown-2);
	font-family: "Noto Sans JP", sans-serif;
	font-family: var(--font-jp);
	font-size: max(1.5rem, min(calc(16 * min(100vw / 1440, 1px)), 1.6rem));
	font-size: var(--fs-body);
	font-weight: 700;
	letter-spacing: 0.03em;
	line-height: 1.6;
	text-align: center;
}

/* ============ 院内紹介 写真ギャラリー（2列） ============ */

.ab-gallery {
	grid-gap: calc(40 * min(100vw / 1440, 1px));
	grid-gap: calc(40 * var(--u));
	display: grid;
	gap: calc(40 * min(100vw / 1440, 1px));
	gap: calc(40 * var(--u));
	grid-template-columns: repeat(2, 1fr);
}

.ab-gallery__item {
	display: flex;
	flex-direction: column;
	gap: calc(24 * min(100vw / 1440, 1px));
	gap: calc(24 * var(--u));
}

.ab-gallery__img img {
	-o-object-fit: cover;
	aspect-ratio: 484/323;
	border-radius: calc(10 * min(100vw / 1440, 1px));
	border-radius: calc(10 * var(--u));
	display: block;
	height: auto;
	object-fit: cover;
	width: 100%;
}

.ab-gallery__cap {
	color: #7c6660;
	color: var(--c-brown-2);
	font-family: "Noto Sans JP", sans-serif;
	font-family: var(--font-jp);
	font-size: max(1.5rem, min(calc(16 * min(100vw / 1440, 1px)), 1.6rem));
	font-size: var(--fs-body);
	font-weight: 700;
	letter-spacing: 0.03em;
	line-height: 1.6;
}

/* ============ 診療時間・アクセスへのスクロールリンク ============ */

.ab-scrolllink a {
	align-items: center;
	border-bottom: 2px solid #fd7676;
	border-bottom: 2px solid var(--c-pink);
	color: #fd7676;
	color: var(--c-pink);
	display: inline-flex;
	font-family: "Noto Sans JP", sans-serif;
	font-family: var(--font-jp);
	font-size: max(1.5rem, min(calc(16 * min(100vw / 1440, 1px)), 1.6rem));
	font-size: var(--fs-body);
	font-weight: 700;
	gap: calc(12 * min(100vw / 1440, 1px));
	gap: calc(12 * var(--u));
	letter-spacing: 0.05em;
	padding-bottom: calc(4 * min(100vw / 1440, 1px));
	padding-bottom: calc(4 * var(--u));
	transition: opacity 0.2s ease;
}

.ab-scrolllink a:focus-visible {
	outline: calc(2 * min(100vw / 1440, 1px)) solid #fd7676;
	outline: calc(2 * var(--u)) solid var(--c-pink);
	outline-offset: calc(2 * min(100vw / 1440, 1px));
	outline-offset: calc(2 * var(--u));
}

.ab-scrolllink__arw {
	flex-shrink: 0;
	height: calc(20 * min(100vw / 1440, 1px));
	height: calc(20 * var(--u));
	width: calc(20 * min(100vw / 1440, 1px));
	width: calc(20 * var(--u));
}

/* ============ はじめて受診される方へ：注意事項リスト ============ */

.ab-notes {
	display: flex;
	flex-direction: column;
	gap: calc(32 * min(100vw / 1440, 1px));
	gap: calc(32 * var(--u));
}

.ab-notes__item {
	display: flex;
	flex-direction: column;
	gap: calc(24 * min(100vw / 1440, 1px));
	gap: calc(24 * var(--u));
}

.ab-notes__item + .ab-notes__item { /* Fig: 太さ3・破線0.1・間隔8・線端丸・#ffbbba ＝ 3px丸ドット8pxピッチ */
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='3'%3E%3Ccircle cx='4' cy='1.5' r='1.5' fill='%23ffbbba'/%3E%3C/svg%3E");
	background-position: left top;
	background-repeat: repeat-x;
	background-size: calc(8 * min(100vw / 1440, 1px)) calc(3 * min(100vw / 1440, 1px));
	background-size: calc(8 * var(--u)) calc(3 * var(--u));
	padding-top: calc(32 * min(100vw / 1440, 1px));
	padding-top: calc(32 * var(--u));
}

.ab-notes__hd {
	align-items: flex-start;
	display: flex;
	gap: calc(16 * min(100vw / 1440, 1px));
	gap: calc(16 * var(--u));
}

.ab-notes__dot {
	background: var(--sec-bar);
	border-radius: 50%;
	flex-shrink: 0;
	height: calc(8 * min(100vw / 1440, 1px));
	height: calc(8 * var(--u));
	margin-top: calc(12 * min(100vw / 1440, 1px));
	margin-top: calc(12 * var(--u));
	width: calc(8 * min(100vw / 1440, 1px));
	width: calc(8 * var(--u));
}

.ab-notes__label {
	color: #7c6660;
	color: var(--c-brown-2);
	font-family: "Noto Sans JP", sans-serif;
	font-family: var(--font-jp);
	font-size: calc(20 * min(100vw / 1440, 1px));
	font-size: calc(20 * var(--u));
	font-weight: 700;
	letter-spacing: 0.03em;
	line-height: 1.6;
}

.ab-notes__bd {
	padding-left: 0; /* Fig更新版: 左インデントなし */
}

/* PC: 見出し→本文の余白を約1/2に（.me-p の margin-top:40 を打ち消し、gap:24 のみに）。SP は現状維持 */

.ab-notes__bd > * + * {
	margin-top: calc(16 * min(100vw / 1440, 1px));
	margin-top: calc(16 * var(--u));
}

/* ============ 診療時間テーブル ============ */

.ab-schedule-wrap {
	overflow-x: auto;
	width: 100%;
}

.ab-schedule {
	background: #fff; /* 角丸5px(Fig): collapseではradiusが効かないためseparateで実装 */
	border-collapse: separate;
	border-radius: calc(10 * min(100vw / 1440, 1px));
	border-radius: calc(10 * var(--u));
	border-spacing: 0;
	font-family: "Shippori Mincho", serif;
	font-family: var(--font-mincho);
	min-width: calc(1008 * min(100vw / 1440, 1px));
	min-width: calc(1008 * var(--u)); /* SPも列幅PCと同様(192+102x8)＝横スクロール */
	overflow: hidden;
	table-layout: fixed; /* Fig: 診療時間列192・曜日列102の固定割付 */
	width: 100%;
}

.ab-schedule th,
.ab-schedule td {
	border-bottom: calc(2 * min(100vw / 1440, 1px)) solid #fff7f1;
	border-bottom: calc(2 * var(--u)) solid #fff7f1; /* separateでの罫線二重化防止: 右・下のみ(外周上端/左端は下記で補完) */
	border-right: calc(2 * min(100vw / 1440, 1px)) solid #fff7f1;
	border-right: calc(2 * var(--u)) solid #fff7f1;
	color: #7c6660;
	color: var(--c-brown-2);
	font-size: calc(16 * min(100vw / 1440, 1px));
	font-size: calc(16 * var(--u)); /* Fig: 16 */
	letter-spacing: 0.03em;
	line-height: 1.6;
	padding: calc(24 * min(100vw / 1440, 1px)) calc(8 * min(100vw / 1440, 1px));
	padding: calc(24 * var(--u)) calc(8 * var(--u)); /* Fig: 行高ゆったり */
	text-align: center;
	vertical-align: middle;
}

.ab-schedule td {
	vertical-align: baseline;
}

.ab-schedule thead th {
	background: #ffe6e8;
	border-top: calc(2 * min(100vw / 1440, 1px)) solid #fff7f1;
	border-top: calc(2 * var(--u)) solid #fff7f1;
	font-weight: 600;
	padding-bottom: calc(9 * min(100vw / 1440, 1px));
	padding-bottom: calc(9 * var(--u)); /* Fig: ヘッダー行高44 */
	padding-top: calc(9 * min(100vw / 1440, 1px));
	padding-top: calc(9 * var(--u));
}

.ab-schedule tr > :first-child {
	border-left: calc(2 * min(100vw / 1440, 1px)) solid #fff7f1;
	border-left: calc(2 * var(--u)) solid #fff7f1;
}

.ab-schedule thead th:first-child {
	width: calc(192 * min(100vw / 1440, 1px));
	width: calc(192 * var(--u)); /* Fig: 診療時間列192・曜日列102 */
}

.ab-schedule tbody th {
	font-family: "Open Sans", sans-serif;
	font-family: var(--font-num); /* Fig: Open Sans */
	font-size: calc(16 * min(100vw / 1440, 1px));
	font-size: calc(16 * var(--u));
	white-space: nowrap;
}

.ab-schedule__dot {
	color: #7c6660;
	color: var(--c-brown-2);
	display: block;
}

.ab-schedule__x {
	color: #7c6660;
	color: var(--c-brown-2);
}

.ab-access .ab-photo--a img {
	border-radius: 0; /* Fig: アクセスの地図写真は角丸なし */
}

/* Googleマップ埋め込み(1008x500比率・角丸なし) */

.ab-gmap iframe {
	aspect-ratio: 1008/500;
	border: 0;
	display: block;
	height: auto;
	width: 100%;
}

.ab-schedule__legend {
	color: #7c6660;
	color: var(--c-brown-2);
	font-family: "Noto Sans JP", sans-serif;
	font-family: var(--font-jp);
	font-size: max(1.5rem, min(calc(16 * min(100vw / 1440, 1px)), 1.6rem));
	font-size: var(--fs-body);
	font-weight: 400;
	letter-spacing: 0.03em;
	line-height: 1.6;
	margin-top: calc(16 * min(100vw / 1440, 1px));
	margin-top: calc(16 * var(--u));
}

/* ============ アクセス ============ */

.ab-access {
	display: flex;
	flex-direction: column;
	gap: calc(24 * min(100vw / 1440, 1px));
	gap: calc(24 * var(--u));
}

.ab-access__row {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: calc(16 * min(100vw / 1440, 1px));
	gap: calc(16 * var(--u));
}

.ab-access__addr {
	align-items: center;
	color: #7c6660;
	color: var(--c-brown-2);
	display: inline-flex;
	font-family: "Noto Sans JP", sans-serif;
	font-family: var(--font-jp);
	font-size: max(1.5rem, min(calc(16 * min(100vw / 1440, 1px)), 1.6rem));
	font-size: var(--fs-body);
	font-weight: 700;
	gap: calc(8 * min(100vw / 1440, 1px));
	gap: calc(8 * var(--u));
	letter-spacing: 0.03em;
	line-height: 1.35;
}

.ab-access__icn {
	color: #fd7676;
	color: var(--c-pink);
	flex-shrink: 0;
	height: calc(20 * min(100vw / 1440, 1px));
	height: calc(20 * var(--u));
	width: calc(20 * min(100vw / 1440, 1px));
	width: calc(20 * var(--u));
}

.ab-access__cards {
	display: flex;
	gap: calc(24 * min(100vw / 1440, 1px));
	gap: calc(24 * var(--u));
}

.ab-access__card {
	align-items: center;
	background: #ffefe5;
	display: flex;
	flex: 1 1 0;
	flex-direction: column;
	gap: calc(8 * min(100vw / 1440, 1px));
	gap: calc(8 * var(--u));
	padding: calc(24 * min(100vw / 1440, 1px)) calc(40 * min(100vw / 1440, 1px));
	padding: calc(24 * var(--u)) calc(40 * var(--u));
}

.ab-access__cardicn {
	color: #fd7676;
	color: var(--c-pink);
	height: calc(20 * min(100vw / 1440, 1px));
	height: calc(20 * var(--u));
	width: calc(20 * min(100vw / 1440, 1px));
	width: calc(20 * var(--u));
}

.ab-access__card p {
	color: #7c6660;
	color: var(--c-brown-2);
	font-family: "Noto Sans JP", sans-serif;
	font-family: var(--font-jp);
	font-size: max(1.5rem, min(calc(16 * min(100vw / 1440, 1px)), 1.6rem));
	font-size: var(--fs-body);
	font-weight: 700;
	letter-spacing: 0.03em;
	line-height: 1.6;
	text-align: center;
}

/* =========================================================================
   bleeding-period（不正出血・生理のお悩み）ページ固有スタイル
   ・レイアウト/基本コンポーネント（me-*）は page/_medical-examination.scss を共用
   ・共通下層コンポーネント（cp-*）は page/_under-common.scss を共用
   ・このファイルは bleeding-period 固有の差分のみ
   ========================================================================= */

/* ページ地色（Fig: #fffaf6）。menu直後のフッター空色も me ページと同じ */

body.body-page-bleeding-period {
	background: #fffaf6;
}

body.body-page-bleeding-period .p-footer {
	--ft-sky: #fff7f1;
}

/* ============ ヒーロー装飾（コアラと女性 / 右側。checkup-pillと同一配置） ============ */

.bp-hero__koala {
	height: auto;
	position: absolute;
	right: calc(-20 * min(100vw / 1440, 1px));
	right: calc(-20 * var(--u));
	top: calc(109 * min(100vw / 1440, 1px));
	top: calc(109 * var(--u));
	width: calc(197 * min(100vw / 1440, 1px));
	width: calc(197 * var(--u));
	z-index: 1;
}

/* ============ 目次SP: 2件のみ→1列フル幅ボタン（Fig: 342x56 縦積み） ============ */

/* ============ 緑セクションの h3 サブ見出しバー（Fig実測差異あり。このページのみ上書き） ============ */

body.body-page-bleeding-period .me-sec--green {
	--bar-a: #b4e2b8;
	--bar-b: #8acd90;
}

/* =========================================================================
   checkup-pill（特定健診・市の検診(子宮がん等)・ピル）ページ固有スタイル
   ・下層共通コンポーネント: me-*（_medical-examination.scss）/ cp-*（_under-common.scss）
   ・このファイルは checkup-pill 固有の差分のみ
   ========================================================================= */

/* ページ地色（Fig: #fffaf6）。menu直後のフッター空色も me ページと同じ */

body.body-page-checkup-pill {
	background: #fffaf6;
}

body.body-page-checkup-pill .p-footer {
	--ft-sky: #fff7f1;
}

/* ============ ヒーロー装飾（コアラと女性 / 右側） ============ */

.cp-hero__koala {
	height: auto;
	position: absolute;
	right: calc(-20 * min(100vw / 1440, 1px));
	right: calc(-20 * var(--u));
	top: calc(109 * min(100vw / 1440, 1px));
	top: calc(109 * var(--u));
	width: calc(197 * min(100vw / 1440, 1px));
	width: calc(197 * var(--u));
	z-index: 1;
}

/* ============ 図解のSP: 正方形クロップ画像に差し替え（Fig: 342x342） ============ */

/* ============ 目次SP: 2件のみ→1列フル幅ボタン（Fig: 342x56 縦積み） ============ */

/* =========================================================================
   共通コンポーネント（全ページ）
   u-rise / l-inner / 見出し / プライマリボタン / SP固定CTA / u-br-pc
   ========================================================================= */

/* ========== スクリーンリーダー専用テキスト ========== */

.u-visually-hidden {
	-webkit-clip-path: inset(50%);
	border: 0;
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	white-space: nowrap;
	width: 1px;
}

/* SP専用改行（PCでは非表示） */

br.u-br-sp {
	display: none;
}

/* ========== 横スクロールヒント（.js-scrollable に script.js が付与） ========== */

.sc-hint-parent {
	position: relative;
}

.sc-hint {
	align-items: center;
	bottom: 0;
	display: flex;
	justify-content: center;
	left: 0;
	opacity: 1;
	pointer-events: none;
	position: absolute;
	right: 0;
	top: 0;
	transition: opacity 0.3s ease;
	z-index: 2;
}

.sc-hint.is-hidden {
	opacity: 0;
}

.sc-hint__box {
	background: rgba(60, 45, 40, 0.65);
	border-radius: calc(8 * min(100vw / 1440, 1px));
	border-radius: calc(8 * var(--u));
	color: #fff;
	font-family: "Noto Sans JP", sans-serif;
	font-family: var(--font-jp);
	font-size: calc(13 * min(100vw / 1440, 1px));
	font-size: calc(13 * var(--u));
	font-weight: 700;
	letter-spacing: 0.05em;
	padding: calc(12 * min(100vw / 1440, 1px)) calc(18 * min(100vw / 1440, 1px));
	padding: calc(12 * var(--u)) calc(18 * var(--u));
	white-space: nowrap;
}

/* ========== 装飾画像の登場アニメーション（下→上へフェードイン） ==========
   使い方: 画像に class="u-rise" を付与。画面内に入ると発火。
   ・順番に登場: 親に data-rise-stagger（例 data-rise-stagger="180"）→子孫の u-rise が DOM順に遅延
   ・個別遅延  : 要素に data-rise-delay="300"（ms）
   ・微調整    : --rise-dist（移動量） / --rise-dur（時間）をインラインで上書き可
   ※ animation で実装＝要素側の transition と干渉しない */

.u-rise {
	opacity: 0;
	will-change: opacity, transform;
}

.u-rise.is-inview {
	animation: u-rise-in 0.9s cubic-bezier(0.22, 0.61, 0.36, 1) both;
	animation: u-rise-in var(--rise-dur, 0.9s) cubic-bezier(0.22, 0.61, 0.36, 1) both;
}

.u-rise.is-risen {
	opacity: 1; /* 再生後の静的状態。要素側の hover transition を活かす */
}

/* ========== インナー ========== */

.l-inner {
	margin-left: auto;
	margin-right: auto;
	max-width: calc(1440 * min(100vw / 1440, 1px));
	max-width: calc(var(--maxw) * var(--u));
	width: 100%;
}

/* ========== 見出し(共通) ========== */

.c-heading {
	text-align: center;
}

.c-heading__ja {
	color: #fd7676;
	color: var(--c-pink);
	display: block;
	font-family: "Shippori Mincho", serif;
	font-family: var(--font-mincho);
	font-size: calc(40 * min(100vw / 1440, 1px));
	font-size: calc(40 * var(--u));
	font-weight: 800;
	letter-spacing: 0.05em;
	line-height: 1.5;
}

.c-heading__en {
	color: #fd7676;
	color: var(--c-pink);
	display: block;
	font-family: "Lora", serif;
	font-family: var(--font-en);
	font-size: calc(18 * min(100vw / 1440, 1px));
	font-size: calc(18 * var(--u));
	font-weight: 600;
	letter-spacing: 0.05em;
	line-height: 1.5;
	margin-top: calc(2 * min(100vw / 1440, 1px));
	margin-top: calc(2 * var(--u));
}

/* ========== プライマリボタン(共通) ========== */

.c-btn-primary {
	align-items: center;
	background: #ff8f8f;
	background: var(--c-pink-bar);
	border-radius: calc(100 * min(100vw / 1440, 1px));
	border-radius: calc(100 * var(--u));
	color: #ffffff;
	color: var(--c-white);
	display: inline-flex;
	font-family: "Noto Sans JP", sans-serif;
	font-family: var(--font-jp);
	font-size: calc(16 * min(100vw / 1440, 1px));
	font-size: calc(16 * var(--u));
	font-weight: 700;
	height: calc(58 * min(100vw / 1440, 1px));
	height: calc(58 * var(--u));
	justify-content: center;
	letter-spacing: 0.08em;
	max-width: 100%;
	position: relative;
	transition: opacity 0.2s ease;
	width: calc(340 * min(100vw / 1440, 1px));
	width: calc(340 * var(--u));
}

.c-btn-primary:hover {
	opacity: 0.85;
}

.c-btn-primary__arrow {
	height: auto;
	position: absolute;
	right: calc(24 * min(100vw / 1440, 1px));
	right: calc(24 * var(--u));
	top: 50%;
	transform: translateY(-50%);
	width: calc(7 * min(100vw / 1440, 1px));
	width: calc(7 * var(--u));
}

/* ========== SP固定CTA(画面下部・SPのみ) ========== */

.p-fixcta {
	display: none; /* PCは非表示 */
}

/* =========================================================================
   faq（よくあるご質問）ページ固有スタイル
   ・共通コンポーネント: me-page/me-wrap/me-head/me-hero/me-breadcrumb/me-index__arw（_medical-examination.scss）
   ・目次サイドバー(me-index)・me-sec は使わない単一センター1040幅カラム構成
     （Fig実測: 全PC 1440。breadcrumb/jump-nav/カテゴリ すべて x=200 幅1040。
     タイトルカードのみ960幅。reservation.php の rv-jump/rv-sec/rv-line-bg 構成を踏襲）
   ・4カテゴリ（h2）構成。緑カテゴリのみ背景色#fff7f1が全幅フルブリード（Fig: Rectangle 1325/1323）
   ・カテゴリ内padding-block=120u共通（緑は色つき/ピンクは透明）。先頭カテゴリのみpadding-top:0
   ========================================================================= */

/* ページ地色（Fig: #fffaf6） */

body.body-page-faq {
	background: #fffaf6;
}

body.body-page-faq .p-footer {
	--ft-sky: #fff7f1;
}

/* ============ レイアウト: 目次なし＝タイトルカード960幅センター ============ */

body.body-page-faq .me-head {
	margin-left: auto;
	margin-right: auto;
	width: calc(960 * min(100vw / 1440, 1px));
	width: calc(960 * var(--u));
}

/* ヒーロー帯: カードは帯400の中で上下pad50（Fig実測） */

body.body-page-faq .me-hero {
	padding-bottom: calc(50 * min(100vw / 1440, 1px));
	padding-bottom: calc(50 * var(--u));
	padding-top: calc(50 * min(100vw / 1440, 1px));
	padding-top: calc(50 * var(--u));
}

/* ============ ヒーロー全幅背景写真（Fig: under-question-hero-bg。本ページ固有） ============ */

.fq-hero-bg {
	height: calc(400 * min(100vw / 1440, 1px));
	height: calc(400 * var(--u));
	left: calc(50% - 50vw);
	overflow: hidden;
	position: absolute;
	top: 0;
	width: 100vw;
	z-index: 0;
}

/* pictureを箱いっぱいに(高さautoのままだとimgのheight:100%が解決されず写真が縦321pxに縮む=採用ページと高さ不一致の原因) */

.fq-hero-bg picture {
	display: block;
	height: 100%;
	width: 100%;
}

.fq-hero-bg img {
	-o-object-fit: cover;
	display: block;
	height: 100%;
	object-fit: cover;
	width: 100%;
}

body.body-page-faq .me-hero__card {
	position: relative;
	z-index: 1;
}

/* ============ ページ内ジャンプメニュー（Fig: under-btn-index-sp ×4。PC横並び/SP2列グリッド） ============ */

.fq-jump {
	display: flex;
	flex-wrap: wrap;
	gap: calc(12 * min(100vw / 1440, 1px));
	gap: calc(12 * var(--u));
	margin-left: auto;
	margin-right: auto;
	margin-top: calc(96 * min(100vw / 1440, 1px));
	margin-top: calc(96 * var(--u)); /* Fig実測: パンくず→ボタン */
	padding-bottom: calc(120 * min(100vw / 1440, 1px));
	padding-bottom: calc(120 * var(--u)); /* Fig実測: ボタン→カテゴリ01 */
	position: relative;
	width: calc(1040 * min(100vw / 1440, 1px));
	width: calc(1040 * var(--u));
}

/* ボタン本体は共通 .me-jump__link。本ページ固有: PC幅251固定 */

.fq-jump .me-jump__link {
	width: calc(251 * min(100vw / 1440, 1px));
	width: calc(251 * var(--u));
}

/* SP: 2列グリッドは市松配色（Fig実測。3番目=green/4番目=pinkへ反転） */

.fq-jump__deco {
	height: auto;
	left: calc(943 * min(100vw / 1440, 1px));
	left: calc(943 * var(--u));
	position: absolute;
	top: calc(68 * min(100vw / 1440, 1px));
	top: calc(68 * var(--u));
	width: calc(217 * min(100vw / 1440, 1px));
	width: calc(217 * var(--u));
	z-index: 1;
}

/* ============ カテゴリセクション共通 ============ */

.fq-cat {
	padding-bottom: calc(120 * min(100vw / 1440, 1px));
	padding-bottom: calc(120 * var(--u));
	padding-top: calc(120 * min(100vw / 1440, 1px));
	padding-top: calc(120 * var(--u));
	position: relative;
	scroll-margin-top: calc((130 * min(100vw / 1440, 1px)) + 20 * min(100vw / 1440, 1px));
	scroll-margin-top: calc(calc(130 * min(100vw / 1440, 1px)) + 20 * min(100vw / 1440, 1px));
	scroll-margin-top: calc(var(--header-h) + 20 * var(--u));
}

.fq-cat--first {
	padding-top: 0;
}

.fq-cat--pink {
	--fq-clr: #fd7676;
	--fq-badge: #ffbbba;
}

.fq-cat--green {
	--fq-clr: #51ad5a;
	--fq-badge: #8acd90;
}

.fq-band {
	background: #fff7f1;
	margin-left: calc(50% - 50vw);
	width: 100vw;
}

.fq-cat__inner {
	margin-left: auto;
	margin-right: auto;
	position: relative;
	width: calc(1040 * min(100vw / 1440, 1px));
	width: calc(1040 * var(--u));
}

/* SP: band(100vwフルブリード)内はme-wrapのpaddingが効かないため自前で確保 */

/* ============ カテゴリ見出し（花あしらい＋中央寄せ＋下線flowerライン） ============ */

.fq-cat__ttl {
	align-items: center;
	color: var(--fq-clr);
	display: flex;
	font-family: "Shippori Mincho", serif;
	font-family: var(--font-mincho);
	font-size: calc(32 * min(100vw / 1440, 1px));
	font-size: calc(32 * var(--u));
	font-weight: 800;
	gap: calc(16 * min(100vw / 1440, 1px));
	gap: calc(16 * var(--u));
	justify-content: center;
	letter-spacing: 0.05em;
	line-height: 1.5;
	text-align: center;
}

.fq-cat__flower {
	flex-shrink: 0;
	height: auto;
	width: calc(43 * min(100vw / 1440, 1px));
	width: calc(43 * var(--u));
}

.fq-cat__flower--right {
	width: calc(45 * min(100vw / 1440, 1px));
	width: calc(45 * var(--u));
}

.fq-cat__line {
	background: center/auto 100% no-repeat;
	display: block;
	height: calc(10 * min(100vw / 1440, 1px));
	height: calc(10 * var(--u));
	margin-top: calc(24 * min(100vw / 1440, 1px));
	margin-top: calc(24 * var(--u));
	width: 100%;
}

.fq-cat__line--pink {
	background-image: url("../images/under/faq/cat-line-pink.webp");
}

.fq-cat__line--green {
	background-image: url("../images/under/faq/cat-line-green.webp");
}

/* ============ カテゴリ本文（h3グループ or Q&Aリスト） ============ */

.fq-cat__body {
	margin-top: calc(80 * min(100vw / 1440, 1px));
	margin-top: calc(80 * var(--u));
}

.fq-cat__body > * + * {
	margin-top: calc(80 * min(100vw / 1440, 1px));
	margin-top: calc(80 * var(--u));
}

/* ============ h3サブ見出し: 共通 me-sub__ttl に統合(.fq-h3group に me-sec--pink を付与して配色供給) ============ */

.fq-h3group > * + * {
	margin-top: calc(40 * min(100vw / 1440, 1px));
	margin-top: calc(40 * var(--u));
}

/* ============ Q&Aリスト（項目間は丸ドット点線区切り。Fig実測: pink=#ffbbba / green=#8acd90） ============ */

.fq-list {
	display: flex;
	flex-direction: column;
}

.fq-item {
	display: flex;
	flex-direction: column;
	gap: calc(24 * min(100vw / 1440, 1px));
	gap: calc(24 * var(--u));
	padding-bottom: calc(32 * min(100vw / 1440, 1px));
	padding-bottom: calc(32 * var(--u));
	padding-top: calc(32 * min(100vw / 1440, 1px));
	padding-top: calc(32 * var(--u));
}

.fq-item:first-child {
	padding-top: 0;
}

.fq-item:last-child {
	padding-bottom: 0;
}

.fq-item + .fq-item {
	background-image: radial-gradient(circle, var(--fq-dot) calc(1.5 * min(100vw / 1440, 1px)), transparent calc(1.5 * min(100vw / 1440, 1px) + 0.5px));
	background-image: radial-gradient(circle, var(--fq-dot) calc(1.5 * var(--u)), transparent calc(1.5 * var(--u) + 0.5px));
	background-position: top left;
	background-repeat: repeat-x;
	background-size: calc(11 * min(100vw / 1440, 1px)) calc(3 * min(100vw / 1440, 1px));
	background-size: calc(11 * var(--u)) calc(3 * var(--u));
}

.fq-cat--pink {
	--fq-dot: #ffbbba;
}

.fq-cat--green {
	--fq-dot: #8acd90;
}

.fq-item__q,
.fq-item__a {
	align-items: flex-start;
	display: flex;
	gap: calc(8 * min(100vw / 1440, 1px));
	gap: calc(8 * var(--u));
}

.fq-badge {
	align-items: center;
	border-radius: 50%;
	display: flex;
	flex-shrink: 0;
	font-family: "Noto Sans JP", sans-serif;
	font-family: var(--font-jp);
	font-size: calc(16 * min(100vw / 1440, 1px));
	font-size: calc(16 * var(--u));
	font-weight: 700;
	height: calc(30 * min(100vw / 1440, 1px));
	height: calc(30 * var(--u));
	justify-content: center;
	letter-spacing: 0; /* 1文字なので字間の後尾スペースが左寄りに見える → 0 */
	line-height: 1.5;
	width: calc(30 * min(100vw / 1440, 1px));
	width: calc(30 * var(--u));
}

/* paddingで光学センター補正(フォント計測値とFigmaレンダの重心を照合した実測値) */

.fq-badge--q {
	background: var(--fq-badge);
	color: #fff;
	padding-bottom: calc(4 * min(100vw / 1440, 1px));
	padding-bottom: calc(4 * var(--u));
}

.fq-badge--a {
	background: #fff;
	border: 2px solid #7c6660;
	color: #7c6660;
	padding-bottom: calc(4 * min(100vw / 1440, 1px));
	padding-bottom: calc(4 * var(--u));
}

.fq-item__qtext {
	color: #7c6660;
	flex: 1 0 0;
	font-family: "Noto Sans JP", sans-serif;
	font-family: var(--font-jp);
	font-size: calc(20 * min(100vw / 1440, 1px));
	font-size: calc(20 * var(--u));
	font-weight: 700;
	letter-spacing: 0.03em;
	line-height: 1.6;
}

.fq-item__atext {
	color: #7c6660;
	flex: 1 0 0;
	font-family: "Noto Sans JP", sans-serif;
	font-family: var(--font-jp);
	font-size: calc(16 * min(100vw / 1440, 1px));
	font-size: calc(16 * var(--u));
	font-weight: 400;
	letter-spacing: 0.03em;
	line-height: 1.6;
	min-width: 0;
}

.fq-item__atext > * + * {
	margin-top: calc(16 * min(100vw / 1440, 1px));
	margin-top: calc(16 * var(--u));
}

/* ============ 本文内リンク（外部/予約リンク。色は固定pink） ============ */

.fq-link a {
	align-items: center;
	color: #fd7676;
	color: var(--c-pink);
	display: inline-flex;
	font-family: "Noto Sans JP", sans-serif;
	font-family: var(--font-jp);
	font-size: calc(16 * min(100vw / 1440, 1px));
	font-size: calc(16 * var(--u));
	font-weight: 700;
	gap: calc(8 * min(100vw / 1440, 1px));
	gap: calc(8 * var(--u));
	letter-spacing: 0.05em;
	line-height: 1.5;
	transition: opacity 0.2s ease;
}

.fq-link a:focus-visible {
	outline: calc(2 * min(100vw / 1440, 1px)) solid #fd7676;
	outline: calc(2 * var(--u)) solid var(--c-pink);
	outline-offset: calc(2 * min(100vw / 1440, 1px));
	outline-offset: calc(2 * var(--u));
}

.fq-link__icn {
	flex-shrink: 0;
	height: calc(20 * min(100vw / 1440, 1px));
	height: calc(20 * var(--u));
	width: calc(20 * min(100vw / 1440, 1px));
	width: calc(20 * var(--u));
}

/* ============ カテゴリ内の花・雲・鳥装飾（オフキャンバス配置の1点は非表示のため未実装）
   PCのtopは fq-cat__inner(=h2上端)基準。Fig絶対y − 各セクションh2s.y+120 で算出 ============ */

.fq-cat__deco {
	height: auto;
	position: absolute;
	z-index: 1;
}

.fq-cat__deco--bird1 {
	left: calc(40 * min(100vw / 1440, 1px));
	left: calc(40 * var(--u));
	top: calc(-32 * min(100vw / 1440, 1px));
	top: calc(-32 * var(--u)); /* Fig y3510 - inner上端3542 */
	width: calc(78 * min(100vw / 1440, 1px));
	width: calc(78 * var(--u));
}

.fq-cat__deco--crouds {
	left: calc(-147 * min(100vw / 1440, 1px));
	left: calc(-147 * var(--u));
	top: calc(-88 * min(100vw / 1440, 1px));
	top: calc(-88 * var(--u)); /* Fig y5318 - inner上端5406 */
	width: calc(259 * min(100vw / 1440, 1px));
	width: calc(259 * var(--u));
}

.fq-cat__deco--birds {
	left: calc(1002 * min(100vw / 1440, 1px));
	left: calc(1002 * var(--u));
	top: calc(122 * min(100vw / 1440, 1px));
	top: calc(122 * var(--u)); /* Fig y5528 - inner上端5406 */
	width: calc(118 * min(100vw / 1440, 1px));
	width: calc(118 * var(--u));
}

/* 入院セクション右上の雲(Fig 2342-62898: 小雲が右端から約100px覗く見切れ配置。SPカンプではx414=完全に画面外のため非表示) */

.fq-cat__deco--crouds2 {
	left: calc(1025 * min(100vw / 1440, 1px));
	left: calc(1025 * var(--u));
	top: calc(-176 * min(100vw / 1440, 1px));
	top: calc(-176 * var(--u));
	width: calc(259 * min(100vw / 1440, 1px));
	width: calc(259 * var(--u));
}

.fq-cat__deco--bird5 {
	left: calc(-120 * min(100vw / 1440, 1px));
	left: calc(-120 * var(--u));
	top: calc(-40 * min(100vw / 1440, 1px));
	top: calc(-40 * var(--u)); /* Fig y7186 - inner上端7226(bird1等と同一の+120ズレを同時修正) */
	width: calc(70 * min(100vw / 1440, 1px));
	width: calc(70 * var(--u));
}

/* =========================================================================
   fertility-support（不妊・不育相談）ページ固有スタイル
   ・下層共通コンポーネント: me-*（_medical-examination.scss）/ cp-*（_under-common.scss）
   ・このファイルは fertility-support 固有の差分のみ
   ========================================================================= */

/* ページ地色（Fig: #fffaf6）。menu直後のフッター空色も me ページと同じ */

body.body-page-fertility-support {
	background: #fffaf6;
}

body.body-page-fertility-support .p-footer {
	--ft-sky: #fff7f1;
}

/* ============ ヒーロー装飾（コアラと女性 / 右側。checkup-pillと同一イラスト・同一位置） ============ */

.fs-hero__koala {
	height: auto;
	position: absolute;
	right: calc(-20 * min(100vw / 1440, 1px));
	right: calc(-20 * var(--u));
	top: calc(109 * min(100vw / 1440, 1px));
	top: calc(109 * var(--u));
	width: calc(197 * min(100vw / 1440, 1px));
	width: calc(197 * var(--u));
	z-index: 1;
}

/* ============ 目次SP: 2列ボタン（Fig実測: 165x56 横並び。base既定のgrid-template-columns:1fr 1frのまま） ============ */

/* ============ 全幅写真（PC/SPで縦横比が異なる: consultation / miscarriage）============ */

/* Fig実測: PC 928x400(2.32:1) / SP 342x228(3:2)。cp-photo(928/400固定)とは別の新パターンのためfs-photoを新設 */

.fs-photo img {
	-o-object-fit: cover;
	aspect-ratio: 928/400;
	border-radius: calc(10 * min(100vw / 1440, 1px));
	border-radius: calc(10 * var(--u));
	object-fit: cover;
}

/* =========================================================================
   フッター(section-footer・全ページ共通)
   自己完結型フッター(前セクションに依存しない=どのページでも同じ)。
   上端に自前の #fff8f2 帯(::before)を持ち、その上に白い雲を重ねる。透過部/谷間から #fff8f2 が覗く。
   --ft-sky = 雲の背景(空)の色。前セクションが別色のページは `.p-footer{--ft-sky:○○}` を1行上書きで合わせる
   ========================================================================= */

.p-footer {
	--ft-sky: #fff8f2;
	background: #ffffff;
	background: var(--c-white);
	overflow-x: clip;
	position: relative;
}

.p-footer::before {
	background: var(--ft-sky);
	content: ""; /* 空の色。最深の谷(≈255/1920)より深く取り、下端の水平線を雲のべた白の下に隠す */
	height: 19.7916666667vw;
	left: 0;
	pointer-events: none;
	position: absolute;
	right: 0;
	top: 0;
	z-index: 0;
}

.body-page-privacy-policy .p-footer::before,
.error404 .p-footer::before,
.body-page-sitemap .p-footer::before,
.body-page-topics .p-footer::before,
.single-topics .p-footer::before {
	background-color: #fffaf6;
}

.ft-cloud {
	height: auto;
	left: 0;
	pointer-events: none;
	position: absolute;
	top: 0;
	width: 100%;
	z-index: 0;
}

/* 装飾の鳥(frame中心=viewport中心基準)。
   ※元CSSでは特長セクションの .ft-bird 規則(top用)と同名クラスで相互干渉していたため、
     移行時に「実際に描画されていた計算結果」を明示して分離(transform は元の描画準拠) */

.ft-bird {
	height: auto;
	pointer-events: none;
	position: absolute; /* SPで --right がフッター上端より上(前セクション領域)に出るため、
     z-index:2の全幅帯を持つ最終セクション(rc-sec--green等)より前面に置く */
	z-index: 3;
}

.ft-bird--left,
.ft-bird--right {
	transform: translateX(-50%);
}

.ft-bird--left {
	left: 50%;
	margin-left: calc(-560 * min(100vw / 1440, 1px));
	margin-left: calc(-560 * var(--u));
	top: calc(240 * min(100vw / 1440, 1px));
	top: calc(240 * var(--u));
	width: calc(98 * min(100vw / 1440, 1px));
	width: calc(98 * var(--u));
}

.ft-bird--right {
	left: 50%;
	margin-left: calc(336 * min(100vw / 1440, 1px));
	margin-left: calc(336 * var(--u));
	top: calc(-9 * min(100vw / 1440, 1px));
	top: calc(-9 * var(--u));
	width: calc(160 * min(100vw / 1440, 1px));
	width: calc(160 * var(--u));
}

.body-page-medical-examination .ft-inner {
	margin-top: calc(110 * min(100vw / 1440, 1px));
	margin-top: calc(110 * var(--u));
}

.ft-inner {
	margin-left: auto;
	margin-right: auto;
	max-width: calc(1120 * min(100vw / 1440, 1px));
	max-width: calc(1120 * var(--u));
	padding-left: calc(20 * min(100vw / 1440, 1px));
	padding-left: calc(20 * var(--u));
	padding-right: calc(20 * min(100vw / 1440, 1px));
	padding-right: calc(20 * var(--u));
	padding-top: calc(344 * min(100vw / 1440, 1px));
	padding-top: calc(344 * var(--u));
	position: relative;
	z-index: 2;
}

/* ---- CTA ---- */

.ft-cta {
	margin-left: auto;
	margin-right: auto;
	max-width: calc(822 * min(100vw / 1440, 1px));
	max-width: calc(822 * var(--u));
}

.ft-cta__lead {
	color: #fd7676;
	color: var(--c-pink);
	font-family: "Shippori Mincho", serif;
	font-family: var(--font-mincho);
	font-size: calc(24 * min(100vw / 1440, 1px));
	font-size: calc(24 * var(--u));
	font-weight: 800;
	letter-spacing: 0.05em;
	line-height: 1.6;
	text-align: center;
}

.ft-cta__row {
	align-items: center;
	display: flex;
	justify-content: space-between;
	margin-top: calc(40 * min(100vw / 1440, 1px));
	margin-top: calc(40 * var(--u));
}

.ft-tel {
	text-align: center;
}

.ft-tel__num {
	align-items: center;
	color: #fd7676;
	color: var(--c-pink);
	display: inline-flex;
	font-family: "Open Sans", sans-serif;
	font-family: var(--font-num);
	font-size: calc(36 * min(100vw / 1440, 1px));
	font-size: calc(36 * var(--u));
	font-weight: 700;
	gap: calc(10 * min(100vw / 1440, 1px));
	gap: calc(10 * var(--u));
	letter-spacing: 0.03em;
	line-height: 1;
}

.ft-tel__num svg {
	fill: currentColor;
	height: auto;
	width: calc(30 * min(100vw / 1440, 1px));
	width: calc(30 * var(--u));
}

.ft-tel__hours {
	color: #7c6660;
	color: var(--c-brown-2);
	font-family: "Open Sans", sans-serif;
	font-family: var(--font-num);
	font-size: calc(16 * min(100vw / 1440, 1px));
	font-size: calc(16 * var(--u));
	font-weight: 600;
	letter-spacing: 0.03em;
	margin-top: calc(8 * min(100vw / 1440, 1px));
	margin-top: calc(8 * var(--u));
}

.ft-tel__note {
	color: #7c6660;
	color: var(--c-brown-2);
	font-family: "Noto Sans JP", sans-serif;
	font-family: var(--font-jp);
	font-size: calc(14 * min(100vw / 1440, 1px));
	font-size: calc(14 * var(--u));
	font-weight: 500;
	letter-spacing: 0.03em;
}

.ft-btns {
	display: flex;
	flex-shrink: 0;
	gap: calc(12 * min(100vw / 1440, 1px));
	gap: calc(12 * var(--u));
}

.ft-btn {
	align-items: center;
	border-radius: 9999px;
	display: grid;
	font-family: "Noto Sans JP", sans-serif;
	font-family: var(--font-jp);
	font-size: calc(18 * min(100vw / 1440, 1px));
	font-size: calc(18 * var(--u));
	font-weight: 700;
	height: calc(60 * min(100vw / 1440, 1px));
	height: calc(60 * var(--u));
	justify-items: center;
	letter-spacing: 0.05em;
	place-items: center;
	transition: opacity 0.2s ease;
	width: calc(220 * min(100vw / 1440, 1px));
	width: calc(220 * var(--u));
}

.ft-btn:hover {
	opacity: 0.8;
}

.ft-btn--web {
	background: #ffffff;
	background: var(--c-white);
	border: 2px solid #fd7676;
	border: 2px solid var(--c-pink); /* 枠線は縮小させず常に2px（FB対応） */
	color: #fd7676;
	color: var(--c-pink);
}

.ft-btn--line {
	background: #06c755;
	background: var(--c-line);
	color: #ffffff;
	color: var(--c-white);
}

.ft-caution {
	background: #fff2e9;
	border-radius: calc(8 * min(100vw / 1440, 1px));
	border-radius: calc(8 * var(--u));
	color: #7c6660;
	color: var(--c-brown-2);
	font-family: "Noto Sans JP", sans-serif;
	font-family: var(--font-jp);
	font-size: calc(16 * min(100vw / 1440, 1px));
	font-size: calc(16 * var(--u));
	font-weight: 700;
	letter-spacing: 0.03em;
	margin-top: calc(42 * min(100vw / 1440, 1px));
	margin-top: calc(42 * var(--u));
	padding: calc(17 * min(100vw / 1440, 1px));
	padding: calc(17 * var(--u));
	text-align: center;
}

/* ---- ブランド + ナビ + 補助リンク(grid) ---- */

.ft-main {
	grid-column-gap: calc(96 * min(100vw / 1440, 1px));
	grid-column-gap: calc(96 * var(--u));
	-moz-column-gap: calc(96 * min(100vw / 1440, 1px));
	-moz-column-gap: calc(96 * var(--u));
	align-items: start;
	column-gap: calc(96 * min(100vw / 1440, 1px));
	column-gap: calc(96 * var(--u));
	display: grid;
	grid-template-areas: "brand nav" "brand sub";
	grid-template-columns: auto 1fr;
	margin-top: calc(80 * min(100vw / 1440, 1px));
	margin-top: calc(80 * var(--u));
}

.ft-brand {
	grid-area: brand;
	width: calc(316 * min(100vw / 1440, 1px));
	width: calc(316 * var(--u)); /* MAPを改行し住所行幅ぶん縮小→ft-navが広がる */
}

/* サイトマップ(Figma実測: 列幅は 175/173/141 とバラバラ・間隔は一律80・ブロックは右端揃え)。
   列幅は中身に委ねる。flex:1 1 0 の均等分配だと文字量と無関係に列幅が決まってしまう。 */

.ft-nav {
	display: flex;
	gap: calc(80 * min(100vw / 1440, 1px));
	gap: calc(80 * var(--u));
	grid-area: nav;
	justify-content: flex-end;
}

/* 区切り線は li の内側ではなくアイテム間の中央に置く(下の .ft-sub li + li::before)。
   そのため gap は「線の左右に置きたい余白 × 2」になる。 */

.ft-sub {
	align-items: center;
	display: flex;
	gap: calc(48 * min(100vw / 1440, 1px));
	gap: calc(48 * var(--u));
	grid-area: sub;
	justify-content: flex-end;
	margin-top: calc(40 * min(100vw / 1440, 1px));
	margin-top: calc(40 * var(--u));
}

/* ブランド */

/* ロゴはリンク(a)で包まれているため、中央寄せは a 側に掛ける。
   img の margin-inline:auto だけでは inline-block の a が中身幅に縮んで左に残る */

.ft-logo__link {
	display: block;
	margin-left: auto;
	margin-right: auto;
	width: -moz-fit-content;
	width: fit-content;
}

.ft-logo {
	display: block;
	height: auto;
	width: calc(146 * min(100vw / 1440, 1px));
	width: calc(146 * var(--u));
}

.ft-corp {
	display: block;
	height: auto;
	margin-left: auto;
	margin-right: auto;
	margin-top: calc(32 * min(100vw / 1440, 1px));
	margin-top: calc(32 * var(--u));
	width: calc(274 * min(100vw / 1440, 1px));
	width: calc(274 * var(--u));
}

.ft-dots {
	background-image: radial-gradient(circle, #d9c4bf 45%, transparent 50%);
	background-repeat: repeat-x;
	background-size: calc(8 * min(100vw / 1440, 1px)) calc(2 * min(100vw / 1440, 1px));
	background-size: calc(8 * var(--u)) calc(2 * var(--u));
	display: block;
	height: calc(2 * min(100vw / 1440, 1px));
	height: calc(2 * var(--u));
	margin-bottom: calc(20 * min(100vw / 1440, 1px));
	margin-bottom: calc(20 * var(--u));
	margin-top: calc(20 * min(100vw / 1440, 1px));
	margin-top: calc(20 * var(--u));
}

.ft-addr,
.ft-train {
	align-items: flex-start;
	color: #7c6660;
	color: var(--c-brown-2);
	display: flex;
	font-family: "Noto Sans JP", sans-serif;
	font-family: var(--font-jp);
	font-size: calc(14 * min(100vw / 1440, 1px));
	font-size: calc(14 * var(--u));
	gap: calc(8 * min(100vw / 1440, 1px));
	gap: calc(8 * var(--u));
	letter-spacing: 0.02em;
	line-height: 1.5;
}

.ft-addr {
	flex-wrap: wrap;
	font-weight: 700;
}

.ft-train {
	font-weight: 400;
	margin-top: calc(8 * min(100vw / 1440, 1px));
	margin-top: calc(8 * var(--u));
}

.ft-icn {
	fill: #fd7676;
	fill: var(--c-pink);
	flex-shrink: 0;
	height: auto;
	width: calc(20 * min(100vw / 1440, 1px));
	width: calc(20 * var(--u));
}

.ft-map {
	align-items: center;
	color: #fd7676;
	color: var(--c-pink);
	display: inline-flex;
	font-weight: 700;
	gap: calc(4 * min(100vw / 1440, 1px));
	gap: calc(4 * var(--u));
	margin-left: calc(8 * min(100vw / 1440, 1px));
	margin-left: calc(8 * var(--u));
	transition: opacity 0.2s ease;
}

.ft-map:hover {
	opacity: 0.65;
}

.ft-map__ext {
	height: auto;
	width: calc(15 * min(100vw / 1440, 1px));
	width: calc(15 * var(--u));
}

/* ナビ(サイトマップ) */

.ft-col {
	display: flex;
	flex: 0 0 auto;
	flex-direction: column;
	gap: calc(15 * min(100vw / 1440, 1px));
	gap: calc(15 * var(--u));
}

.ft-parent {
	color: #7c6660;
	color: var(--c-brown-2);
	font-family: "Noto Sans JP", sans-serif;
	font-family: var(--font-jp);
	font-size: calc(15 * min(100vw / 1440, 1px));
	font-size: calc(15 * var(--u));
	font-weight: 700;
	letter-spacing: 0.03em;
	padding-left: calc(17 * min(100vw / 1440, 1px));
	padding-left: calc(17 * var(--u));
	position: relative;
	transition: opacity 0.2s ease;
}

.ft-parent::before {
	background: #fd7676;
	background: var(--c-pink);
	border-radius: 50%;
	content: "";
	height: calc(6 * min(100vw / 1440, 1px));
	height: calc(6 * var(--u));
	left: 0;
	position: absolute;
	top: calc(9 * min(100vw / 1440, 1px));
	top: calc(9 * var(--u));
	width: calc(6 * min(100vw / 1440, 1px));
	width: calc(6 * var(--u));
}

.ft-parent:hover {
	opacity: 0.65;
}

.ft-group {
	display: flex;
	flex-direction: column;
	gap: calc(15 * min(100vw / 1440, 1px));
	gap: calc(15 * var(--u));
}

.ft-group summary {
	list-style: none;
}

.ft-group summary::-webkit-details-marker {
	display: none;
}

.ft-children {
	display: flex;
	flex-direction: column;
	gap: calc(8 * min(100vw / 1440, 1px));
	gap: calc(8 * var(--u));
	padding-left: calc(17 * min(100vw / 1440, 1px));
	padding-left: calc(17 * var(--u));
}

.ft-children a {
	color: #a2918d;
	font-family: "Noto Sans JP", sans-serif;
	font-family: var(--font-jp);
	font-size: calc(14 * min(100vw / 1440, 1px));
	font-size: calc(14 * var(--u));
	font-weight: 500;
	letter-spacing: 0.02em;
	transition: opacity 0.2s ease;
}

.ft-children a:hover {
	opacity: 0.65;
}

/* summary内のリンク(当院について / 新着情報)。
   PCでは summary 全体の pointer-events:none を打ち消してリンクとして機能させ、
   SPでは逆にリンクを無効化して、文字をタップしたら開閉するようにする。 */

.ft-group summary a {
	transition: opacity 0.2s ease;
}

/* PC: アコーディオンは常時展開・トグル無効 */

/* 補助リンク */

.ft-sub a {
	color: #7c6660;
	color: var(--c-brown-2);
	font-family: "Noto Sans JP", sans-serif;
	font-family: var(--font-jp);
	font-size: calc(13 * min(100vw / 1440, 1px));
	font-size: calc(13 * var(--u));
	font-weight: 500;
	letter-spacing: 0.03em;
	transition: opacity 0.2s ease;
}

.ft-sub a:hover {
	opacity: 0.65;
}

/* line-height:1 で文字の光学中心に線を合わせる(既定の normal だと行ボックスが
   文字より高く、その中心に合わせると約2px上へずれる) */

.ft-sub li {
	align-items: center;
	display: flex;
	line-height: 1;
	position: relative;
}

.ft-sub li a {
	line-height: 1;
}

/* 区切り線: 直前のアイテムとの gap のちょうど中央に置く */

.ft-sub li + li::before {
	background: #d9c4bf;
	content: "";
	height: calc(14 * min(100vw / 1440, 1px));
	height: calc(14 * var(--u));
	left: calc(-24 * min(100vw / 1440, 1px));
	left: calc(-24 * var(--u)); /* gap 48u の半分 */
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 1px;
}

/* コピーライト(全幅バー) */

.ft-copy {
	background: #ff8f8f;
	background: var(--c-pink-bar);
	color: #ffffff;
	color: var(--c-white);
	font-family: "Shippori Mincho", serif;
	font-family: var(--font-mincho);
	font-size: calc(14 * min(100vw / 1440, 1px));
	font-size: calc(14 * var(--u));
	font-weight: 800;
	letter-spacing: 0.1em;
	margin-top: calc(120 * min(100vw / 1440, 1px));
	margin-top: calc(120 * var(--u));
	padding-bottom: calc(16 * min(100vw / 1440, 1px));
	padding-bottom: calc(16 * var(--u));
	padding-top: calc(16 * min(100vw / 1440, 1px));
	padding-top: calc(16 * var(--u));
	text-align: center;
}

/* ================= SP(≤767px): 縦積み・ナビはアコーディオン ================= */

/* =========================================================================
   for-mothers（母親学級）ページ固有スタイル
   ・共通コンポーネント: me-*（_medical-examination.scss）/ cp-extlink（_under-common.scss）
   ・このページは checkup-pill 等の「固定サイドバー目次(me-index)+960幅本文」構成ではなく、
     reservation / sitemap と同じ「サイドバーなし単一センター1040幅カラム」構成。
     cp-under や me-index は使わず、prefix fm- で本ページ専用に組む。
   ・ヒーローのみ、全幅写真バンド（PC1920x400 / SP768x400）+ 中央カードの新規パターン。
   ・母親学級の内容セクションは背景色 #fff7f1 が全幅（フルブリード）で敷かれる（Fig: Rectangle 1325/1328）。
   ・デザイン基準: PC=1440 / SP=390。寸法は calc(px * var(--u))。
   ========================================================================= */

/* ページ地色（Fig: #fffaf6）。フッター空色も母親学級の内容セクション背景と同じ#fff7f1に合わせる */

body.body-page-for-mothers {
	background: #fffaf6;
}

body.body-page-for-mothers .p-footer,
body.body-page-recruit .p-footer,
body.body-page-faq .p-footer,
body.body-page-specialized-clinic .p-footer,
body.body-page-privacy-policy .p-footer {
	--ft-sky: #fff7f1;
	margin-top: 0;
}

body.body-page-sitemap .p-footer {
	margin-top: calc(20 * min(100vw / 1440, 1px));
	margin-top: calc(20 * var(--u));
}

body.body-page-reservation .p-footer {
	margin-top: 0;
}

/* ============ ヒーロー（全幅写真バンド。Fig実測: PC 1920x400 / SP 768x400。
   中心を viewport 中央に合わせる汎用式: margin-left: calc(50vw - 半幅u - 親paddingu) ============ */

.fm-hero {
	align-items: center;
	display: flex;
	justify-content: center;
	margin-left: calc(50% - 50vw); /* フルブリード（1920固定幅だと右側に横スクロールが出るため） */
	min-height: calc(400 * min(100vw / 1440, 1px));
	min-height: calc(400 * var(--u)); /* 固定高だとタイトル増であふれるためmin化 */
	position: relative;
	width: 100vw;
}

.fm-hero__bg {
	bottom: 0;
	left: 0;
	position: absolute;
	right: 0;
	top: 0;
	z-index: 0;
}

.fm-hero__bg img {
	-o-object-fit: cover;
	display: block;
	height: 100%;
	object-fit: cover;
	width: 100%;
}

/* タイトルカード（me-hero共通部品を960幅・中央寄せで使用） */

.fm-hero .me-hero {
	position: relative;
	width: calc(960 * min(100vw / 1440, 1px));
	width: calc(960 * var(--u));
	z-index: 10;
}

/* 装飾イラスト（ノート+ペン / 夫婦イラスト。バンド自身の左上originを基準に配置） */

.fm-hero__stationery {
	left: calc(50% - 504 * min(100vw / 1440, 1px));
	left: calc(50% - 504 * var(--u)); /* Fig: 帯中心(960)基準で456 → 中央-504u */
	position: absolute;
	top: calc(74 * min(100vw / 1440, 1px));
	top: calc(74 * var(--u));
	width: calc(135 * min(100vw / 1440, 1px));
	width: calc(135 * var(--u));
	z-index: 20;
}

.fm-hero__stationery img {
	display: block;
	height: auto;
	width: 100%;
}

.fm-hero__couple {
	left: calc(50% + 255 * min(100vw / 1440, 1px));
	left: calc(50% + 255 * var(--u)); /* Fig: 帯中心基準 1215-960=+255 */
	position: absolute;
	top: calc(264 * min(100vw / 1440, 1px));
	top: calc(264 * var(--u));
	width: calc(305 * min(100vw / 1440, 1px));
	width: calc(305 * var(--u));
	z-index: 20;
}

.fm-hero__couple img {
	display: block;
	height: auto;
	width: 100%;
}

/* ============ 本文カラム共通（1040幅センター。Fig実測: h2s/breadcrumb/jump-nav すべて x=200 幅1040） ============ */

body.body-page-for-mothers .me-breadcrumb,
.fm-jump,
.fm-sec {
	margin-left: auto;
	margin-right: auto;
	width: calc(1040 * min(100vw / 1440, 1px));
	width: calc(1040 * var(--u));
}

.fm-sec.me-sec--pink {
	padding-bottom: calc(120 * min(100vw / 1440, 1px));
	padding-bottom: calc(120 * var(--u));
}

.fm-sec {
	position: relative;
	scroll-margin-top: calc((130 * min(100vw / 1440, 1px)) + 20 * min(100vw / 1440, 1px));
	scroll-margin-top: calc(calc(130 * min(100vw / 1440, 1px)) + 20 * min(100vw / 1440, 1px));
	scroll-margin-top: calc(var(--header-h) + 20 * var(--u));
}

/* ============ ページ内ジャンプメニュー（Fig: under-btn-index-sp。PC=固定幅横並び / SP=2列グリッド） ============ */

.fm-jump {
	display: flex;
	flex-wrap: wrap;
	gap: calc(12 * min(100vw / 1440, 1px));
	gap: calc(12 * var(--u));
	margin-top: calc(96 * min(100vw / 1440, 1px));
	margin-top: calc(96 * var(--u));
	padding-bottom: calc(120 * min(100vw / 1440, 1px));
	padding-bottom: calc(120 * var(--u));
	position: relative;
}

.fm-jump__link {
	align-items: center;
	border: 2px solid #fd7676;
	border: 2px solid var(--c-pink);
	color: #fd7676;
	color: var(--c-pink);
	display: flex;
	font-family: "Noto Sans JP", sans-serif;
	font-family: var(--font-jp);
	font-size: calc(16 * min(100vw / 1440, 1px));
	font-size: calc(16 * var(--u));
	font-weight: 700;
	gap: calc(4 * min(100vw / 1440, 1px));
	gap: calc(4 * var(--u));
	justify-content: space-between;
	letter-spacing: 0.05em;
	line-height: 1.2;
	min-height: calc(56 * min(100vw / 1440, 1px));
	min-height: calc(56 * var(--u)); /* 固定高だとテキスト増であふれるためmin化 */
	padding: calc(24 * min(100vw / 1440, 1px)) calc(8 * min(100vw / 1440, 1px)) calc(24 * min(100vw / 1440, 1px)) calc(12 * min(100vw / 1440, 1px));
	padding: calc(24 * var(--u)) calc(8 * var(--u)) calc(24 * var(--u)) calc(12 * var(--u));
	transition: opacity 0.2s ease;
	width: calc(251 * min(100vw / 1440, 1px));
	width: calc(251 * var(--u));
}

.fm-jump__link:focus-visible {
	outline: calc(2 * min(100vw / 1440, 1px)) solid #fd7676;
	outline: calc(2 * var(--u)) solid var(--c-pink);
	outline-offset: calc(2 * min(100vw / 1440, 1px));
	outline-offset: calc(2 * var(--u));
}

.fm-jump__link--green {
	border: 2px solid #51ad5a;
	color: #51ad5a;
}

/* 装飾（風船+雲。Fig: PCのみ表示。SPカンプに同要素なし） */

.fm-jump__balloon {
	display: block;
	height: auto;
	left: calc(943 * min(100vw / 1440, 1px));
	left: calc(943 * var(--u));
	position: absolute;
	top: calc(68 * min(100vw / 1440, 1px));
	top: calc(68 * var(--u));
	width: calc(217 * min(100vw / 1440, 1px));
	width: calc(217 * var(--u));
	z-index: 10;
}

/* ============ h2（花アイコン+テキスト中央寄せ。下に me-sec__line 共通ドットラインを再利用） ============ */

.fm-sec .fm-h2 {
	align-items: center;
	display: flex; /* TOP(_top.scss)の .fm-h2 inline-flex 上書き対策(全幅flex＝センター寄せ) */
	gap: calc(24 * min(100vw / 1440, 1px));
	gap: calc(24 * var(--u));
	justify-content: center;
}

.fm-h2__tx {
	color: var(--sec);
	font-family: "Shippori Mincho", serif;
	font-family: var(--font-mincho);
	font-size: calc(32 * min(100vw / 1440, 1px));
	font-size: calc(32 * var(--u));
	font-weight: 800;
	letter-spacing: 0.05em;
	line-height: 1.5;
	text-align: center;
	white-space: nowrap;
}

.fm-h2__flower {
	display: block;
	height: auto;
}

.fm-h2__flower--left {
	width: calc(43 * min(100vw / 1440, 1px));
	width: calc(43 * var(--u));
}

.fm-h2__flower--right {
	width: calc(45 * min(100vw / 1440, 1px));
	width: calc(45 * var(--u));
}

/* ============ セクション本文（写真/段落/表を直接並べる。余白は個別指定） ============ */

.fm-sec__body {
	padding-left: calc(16 * min(100vw / 1440, 1px));
	padding-left: calc(16 * var(--u));
	padding-right: calc(16 * min(100vw / 1440, 1px));
	padding-right: calc(16 * var(--u));
}

/* 全幅写真（Fig実測 PC1008x500。SPは共通仕様どおり342:228） */

.fm-photo img {
	-o-object-fit: cover;
	aspect-ratio: 1008/500;
	border-radius: calc(10 * min(100vw / 1440, 1px));
	border-radius: calc(10 * var(--u));
	display: block;
	height: auto;
	object-fit: cover;
	width: 100%;
}

.fm-p--after-photo {
	margin-top: calc(40 * min(100vw / 1440, 1px));
	margin-top: calc(40 * var(--u));
}

/* お申込み・詳細について（h3=me-sub__ttl共通部品） */

.fm-sub-info {
	margin-top: calc(80 * min(100vw / 1440, 1px));
	margin-top: calc(80 * var(--u));
}

/* 情報テーブル（お申し込み先など。me-table共通部品をそのまま使用） */

.fm-table-info {
	margin-top: calc(40 * min(100vw / 1440, 1px));
	margin-top: calc(40 * var(--u));
}

.fm-table-info td > p {
	margin: 0;
}

/* ============ 母親学級の内容: 背景フルブリード（Fig: Rectangle 1325/1328 #fff7f1） ============ */

.fm-sec2-bg {
	background: #fff7f1;
	margin-left: calc(50% - 50vw);
	padding-bottom: calc(120 * min(100vw / 1440, 1px));
	padding-bottom: calc(120 * var(--u)); /* Fig実測: 帯内側の上下pad120（h2は帯上端+120） */
	padding-top: calc(120 * min(100vw / 1440, 1px));
	padding-top: calc(120 * var(--u));
	width: 100vw;
}

.fm-sec2-bg .fm-sec {
	margin-top: 0;
}

/* 装飾（鳥）。Fig: 見出し付近・左側 */

.fm-sec__bird {
	left: calc(40 * min(100vw / 1440, 1px));
	left: calc(40 * var(--u));
	position: absolute;
	top: calc(-18 * min(100vw / 1440, 1px));
	top: calc(-18 * var(--u));
	width: calc(78 * min(100vw / 1440, 1px));
	width: calc(78 * var(--u));
	z-index: 10;
}

.fm-sec__bird img {
	display: block;
	height: auto;
	width: 100%;
}

/* ============ 学級スケジュール表（3列・行結合。me-table共通部品 + 専用モディファイア） ============ */

/* 基本の.me-table th{width:300u}をこのテーブルだけ解除（col1/col2で個別指定するため）。
   読み込み順に依存しないよう、.me-table単体より詳細度が高いセレクタで上書きする */

.me-table.fm-table--sched {
	margin-top: calc(40 * min(100vw / 1440, 1px));
	margin-top: calc(40 * var(--u));
}

.me-table.fm-table--sched th {
	text-align: center;
	width: auto;
}

/* 列1（学級/対象時期。見出し行=中央寄せ、行結合セル=左寄せで上書き）。
   th{text-align:center}の詳細度に勝つよう th.fm-table__label で指定する */

.me-table.fm-table--sched .fm-table__col1 {
	width: calc(300 * min(100vw / 1440, 1px));
	width: calc(300 * var(--u));
}

.me-table.fm-table--sched th.fm-table__label {
	text-align: left;
	vertical-align: middle;
	width: calc(300 * min(100vw / 1440, 1px));
	width: calc(300 * var(--u));
}

/* 列2（担当） */

.me-table.fm-table--sched .fm-table__col2 {
	width: calc(100 * min(100vw / 1440, 1px));
	width: calc(100 * var(--u));
}

.fm-table__sub {
	color: #7c6660;
	color: var(--c-brown-2);
	display: block;
	font-weight: 400;
	margin-top: 0;
}

/* スケジュール表: SPは縦積みにせずテーブルのまま横スクロール(共通me-tableのSP縦積みを打ち消し) */

/* =========================================================================
   gyn-symptoms（おりもの・かゆみ・痛み）ページ固有スタイル
   ・下層共通コンポーネント: me-*（_medical-examination.scss）/ cp-*（_under-common.scss）
   ・このファイルは gyn-symptoms 固有の差分のみ
   ========================================================================= */

/* ページ地色（Fig: #fffaf6）。menu直後のフッター空色も me ページと同じ */

body.body-page-gyn-symptoms {
	background: #fffaf6;
}

body.body-page-gyn-symptoms .p-footer {
	--ft-sky: #fff7f1;
}

/* ============ ヒーロー装飾（コアラと女性 / 右側。checkup-pillと同一素材・同一位置） ============ */

.gs-hero__koala {
	height: auto;
	position: absolute;
	right: calc(-20 * min(100vw / 1440, 1px));
	right: calc(-20 * var(--u));
	top: calc(109 * min(100vw / 1440, 1px));
	top: calc(109 * var(--u));
	width: calc(197 * min(100vw / 1440, 1px));
	width: calc(197 * var(--u));
	z-index: 1;
}

/* ============ 全幅写真（01-1/02冒頭のcp-photo）: SPは928x400ではなく342x228比率で別クロップ（Fig実測） ============ */

/* ============ h3見出しバー色（02.かゆみ・痛み=green セクションのみFig実測が共通値と異なる） ============
   共通値(--bar-a:#cbe8ce / --bar-b:#b4e2b8)に対し、本ページの green セクションは
   Rectangle 1301=#b4e2b8 / Rectangle 1302=#8acd90 で実測。ページ内のみ上書き。 */

body.body-page-gyn-symptoms .me-sec--green {
	--bar-a: #b4e2b8;
	--bar-b: #8acd90;
}

/* ============ h3フォントサイズ（SP: Fig実測24px。共通値22pxとは異なるためページ上書き） ============ */

/* ============ 目次SP: 3件（01/02が2列、03のみ1列フル幅）。色はセクション色のまま（共通の市松ルールを上書き） ============ */

/* =========================================================================
   ヘッダーまわり（全ページ共通）
   固定トップバー / インフォメーションバー / ヘッダー / ハンバーガーボタン /
   グローバルナビ帯(PC)
   ========================================================================= */

:root {
	--header-h: calc(130 * var(--u)); /* ヘッダー高さ(情報バーは含まない) */
}

/* 情報バー+ヘッダーは通常フロー(情報バーは普通にスクロール) */

.l-topbar {
	position: relative;
}

/* スクロールで情報バーを過ぎたら / メニュー展開時: ヘッダーだけ上端固定。地色なし=透過 */

.l-header-spacer {
	height: 0;
}

.l-header {
	background-color: transparent;
	transition: background-color 0.4s ease, -webkit-backdrop-filter 0.4s ease;
	transition: background-color 0.4s ease, backdrop-filter 0.4s ease;
	transition: background-color 0.4s ease, backdrop-filter 0.4s ease, -webkit-backdrop-filter 0.4s ease;
}

body.is-scrolled .l-header,
body.is-hmenu-lock .l-header {
	-webkit-backdrop-filter: blur(calc(12 * min(100vw / 1440, 1px)));
	-webkit-backdrop-filter: blur(calc(12 * var(--u)));
	backdrop-filter: blur(calc(12 * min(100vw / 1440, 1px)));
	backdrop-filter: blur(calc(12 * var(--u))); /* 白を70%に薄め、背後をぼかす(すりガラス) */
	background-color: rgba(255, 255, 255, 0.7);
	left: 0;
	position: fixed;
	right: 0;
	top: 0;
	z-index: 300;
}

/* メニュー展開中はオーバーレイ(#fffaf6)に載るため背景・ぼかしは消す(スクロール中でも優先) */

body.is-hmenu-lock .l-header {
	-webkit-backdrop-filter: none;
	backdrop-filter: none;
	background-color: transparent;
}

body.is-scrolled .l-header-spacer,
body.is-hmenu-lock .l-header-spacer {
	height: calc(130 * min(100vw / 1440, 1px));
	height: var(--header-h);
}

/* --------- インフォメーションバー --------- */

.p-info {
	background: #ff8f8f;
	background: var(--c-pink-bar);
}

.p-info__inner {
	align-items: center;
	display: flex;
	justify-content: center;
	min-height: calc(36 * min(100vw / 1440, 1px));
	min-height: calc(36 * var(--u));
	padding: calc(7 * min(100vw / 1440, 1px)) calc(16 * min(100vw / 1440, 1px));
	padding: calc(7 * var(--u)) calc(16 * var(--u));
	position: relative;
}

.p-info__lead {
	color: #ffffff;
	color: var(--c-white);
	font-family: "Shippori Mincho", serif;
	font-family: var(--font-mincho);
	font-size: calc(15 * min(100vw / 1440, 1px));
	font-size: calc(15 * var(--u));
	font-weight: 700;
	letter-spacing: 0.03em;
	text-align: center;
}

.p-info__addr {
	align-items: center;
	color: #ffffff;
	color: var(--c-white);
	display: flex;
	font-family: "Noto Serif JP", serif;
	font-family: var(--font-serif);
	font-size: calc(14 * min(100vw / 1440, 1px));
	font-size: calc(14 * var(--u));
	font-weight: 600;
	gap: calc(8 * min(100vw / 1440, 1px));
	gap: calc(8 * var(--u));
	letter-spacing: 0.05em;
	position: absolute;
	right: calc(16 * min(100vw / 1440, 1px));
	right: calc(16 * var(--u));
	top: 50%;
	transform: translateY(-50%);
	white-space: nowrap;
}

.p-info__addr svg {
	fill: currentColor;
	height: auto;
	width: calc(18 * min(100vw / 1440, 1px));
	width: calc(18 * var(--u));
}

/* PC: 住所の右端をハンバーガーの右端に合わせる。
   ヘッダーは .l-header__inner が max-width:none の全幅 + padding-inline:32u で、
   ハンバーガー(最後のflex子)の右端は 100vw - 32u。一方 .p-info__inner は .l-inner の
   max-width:1440u で頭打ちになるため、1440px超で両者の右端が離れていく(1856pxで192px)。
   情報バー側も全幅に揃え、住所を同じ 32u の位置に置く。1440px以下では見た目不変。 */

/* --------- ヘッダー --------- */

.l-header__inner {
	align-items: center;
	display: flex;
	gap: calc(20 * min(100vw / 1440, 1px));
	gap: calc(20 * var(--u));
	max-width: none; /* 1440超も全幅に広げ、ロゴ左端・CTA右端に固定 */
	min-height: calc(130 * min(100vw / 1440, 1px));
	min-height: calc(130 * var(--u));
	padding-left: calc(32 * min(100vw / 1440, 1px));
	padding-left: calc(32 * var(--u));
	padding-right: calc(32 * min(100vw / 1440, 1px));
	padding-right: calc(32 * var(--u));
	width: 100%;
}

.l-header__logo {
	align-items: center;
	display: flex;
	gap: calc(12 * min(100vw / 1440, 1px));
	gap: calc(12 * var(--u));
	margin-right: auto;
}

.l-header__logo-mark {
	height: auto;
	width: calc(100 * min(100vw / 1440, 1px));
	width: calc(100 * var(--u));
}

.l-header__logo-txts {
	height: auto;
	width: calc(274 * min(100vw / 1440, 1px));
	width: calc(274 * var(--u));
}

.l-header__right {
	align-items: flex-end;
	display: flex;
	flex-direction: column;
	gap: calc(11 * min(100vw / 1440, 1px));
	gap: calc(11 * var(--u));
}

.l-header__hours {
	color: #7c6660;
	color: var(--c-brown-2);
	font-family: "Open Sans", sans-serif;
	font-family: var(--font-num);
	font-size: calc(14 * min(100vw / 1440, 1px));
	font-size: calc(14 * var(--u));
	font-weight: 600;
	letter-spacing: 0.03em;
}

.l-header__cta {
	align-items: center;
	display: flex;
	gap: calc(16 * min(100vw / 1440, 1px));
	gap: calc(16 * var(--u));
}

.l-header__tel {
	align-items: center;
	color: #fd7676;
	color: var(--c-pink);
	display: flex;
	font-family: "Open Sans", sans-serif;
	font-family: var(--font-num);
	font-size: calc(24 * min(100vw / 1440, 1px));
	font-size: calc(24 * var(--u));
	font-weight: 700;
	gap: calc(8 * min(100vw / 1440, 1px));
	gap: calc(8 * var(--u));
	letter-spacing: 0.05em;
	line-height: 1;
}

.l-header__tel svg {
	fill: #fd7676;
	fill: var(--c-pink);
	height: auto;
	width: calc(20 * min(100vw / 1440, 1px));
	width: calc(20 * var(--u));
}

.c-btn {
	align-items: center;
	border-radius: 9999px; /* 完全な角丸(ピル型) */
	display: grid;
	font-family: "Noto Sans JP", sans-serif;
	font-family: var(--font-jp);
	font-size: calc(15 * min(100vw / 1440, 1px));
	font-size: calc(15 * var(--u));
	font-weight: 700;
	height: calc(40 * min(100vw / 1440, 1px));
	height: calc(40 * var(--u));
	justify-items: center;
	letter-spacing: 0.05em;
	place-items: center;
	transition: opacity 0.2s ease;
	width: calc(110 * min(100vw / 1440, 1px));
	width: calc(110 * var(--u));
}

.c-btn:hover {
	opacity: 0.8;
}

.c-btn--web {
	background: #ffffff;
	background: var(--c-white);
	border: calc(2.5 * min(100vw / 1440, 1px)) solid #fd7676;
	border: calc(2.5 * var(--u)) solid var(--c-pink);
	color: #fd7676;
	color: var(--c-pink);
}

.c-btn--line {
	background: #06c755;
	background: var(--c-line);
	color: #ffffff;
	color: var(--c-white);
}

/* ハンバーガー(PC/SP共通で表示) */

.l-header__hamburger {
	align-items: center;
	display: flex;
	flex-direction: column;
	flex-shrink: 0;
	gap: calc(6 * min(100vw / 1440, 1px));
	gap: calc(6 * var(--u));
}

.l-header__hamburger .bars {
	height: calc(12 * min(100vw / 1440, 1px));
	height: calc(12 * var(--u));
	position: relative;
	width: calc(30 * min(100vw / 1440, 1px));
	width: calc(30 * var(--u));
}

.l-header__hamburger .bars::before,
.l-header__hamburger .bars::after {
	background: #7c6660;
	background: var(--c-brown-2);
	content: "";
	height: calc(2 * min(100vw / 1440, 1px));
	height: calc(2 * var(--u));
	left: 0;
	position: absolute;
	width: 100%;
}

.l-header__hamburger .bars::before {
	top: 0;
}

.l-header__hamburger .bars::after {
	bottom: 0;
}

.l-header__hamburger .label {
	color: #7c6660;
	color: var(--c-brown-2);
	font-family: "Lora", serif;
	font-family: var(--font-en);
	font-size: calc(12 * min(100vw / 1440, 1px));
	font-size: calc(12 * var(--u));
	font-weight: 600;
	letter-spacing: 0.06em;
}

/* 開いてる時: bars→× / menu→close */

.l-header__hamburger .label--close {
	display: none;
}

.l-header__hamburger[aria-expanded=true] .label--menu {
	display: none;
}

.l-header__hamburger[aria-expanded=true] .label--close {
	display: block;
	margin-right: 24px;
}

.l-header__hamburger[aria-expanded=true] .bars::before,
.l-header__hamburger[aria-expanded=true] .bars::after {
	bottom: auto;
	left: calc(-5 * min(100vw / 1440, 1px));
	left: calc(-5 * var(--u));
	top: 50%;
	width: calc(40 * min(100vw / 1440, 1px));
	width: calc(40 * var(--u));
}

.l-header__hamburger[aria-expanded=true] .bars::before {
	transform: translateY(-50%) rotate(29deg);
}

.l-header__hamburger[aria-expanded=true] .bars::after {
	transform: translateY(-50%) rotate(-29deg);
}

/* --------- グローバルナビ帯(PC) --------- */

.l-gnav {
	background: #fffaf6;
	background: var(--c-nav-bg);
}

.l-gnav__list {
	align-items: flex-start;
	display: flex;
	gap: calc(80 * min(100vw / 1440, 1px));
	gap: calc(80 * var(--u));
	justify-content: center;
	min-height: calc(145 * min(100vw / 1440, 1px));
	min-height: calc(145 * var(--u));
	padding-bottom: calc(24 * min(100vw / 1440, 1px));
	padding-bottom: calc(24 * var(--u));
	padding-top: calc(24 * min(100vw / 1440, 1px));
	padding-top: calc(24 * var(--u));
}

.l-gnav__item {
	position: relative;
}

/* ドット区切り(項目間・Figma: 3px丸ドット/間隔8px/#ffbbba) */

.l-gnav__item + .l-gnav__item::before {
	background-image: radial-gradient(circle closest-side, #ffbbba 98%, transparent 100%);
	background-position: center top;
	background-repeat: repeat-y;
	background-size: calc(3 * min(100vw / 1440, 1px)) calc(8 * min(100vw / 1440, 1px));
	background-size: calc(3 * var(--u)) calc(8 * var(--u));
	content: "";
	height: calc(86 * min(100vw / 1440, 1px));
	height: calc(86 * var(--u));
	left: calc(-40 * min(100vw / 1440, 1px));
	left: calc(-40 * var(--u));
	position: absolute;
	top: calc(6 * min(100vw / 1440, 1px));
	top: calc(6 * var(--u));
	width: calc(3 * min(100vw / 1440, 1px));
	width: calc(3 * var(--u));
}

.l-gnav__link {
	align-items: center;
	display: flex;
	flex-direction: column;
	transition: opacity 0.2s ease;
}

.l-gnav__link:hover {
	opacity: 0.7;
}

.l-gnav__icon {
	-o-object-fit: contain;
	height: calc(40 * min(100vw / 1440, 1px));
	height: calc(40 * var(--u));
	object-fit: contain;
	width: calc(50 * min(100vw / 1440, 1px));
	width: calc(50 * var(--u));
}

.l-gnav__ja {
	color: #fd7676;
	color: var(--c-pink);
	font-family: "Shippori Mincho", serif;
	font-family: var(--font-mincho);
	font-size: calc(18 * min(100vw / 1440, 1px));
	font-size: calc(18 * var(--u));
	font-weight: 800;
	letter-spacing: 0.05em;
	line-height: 1;
	margin-top: calc(8 * min(100vw / 1440, 1px));
	margin-top: calc(8 * var(--u));
}

.l-gnav__en {
	color: #fd7676;
	color: var(--c-pink);
	font-family: "Lora", serif;
	font-family: var(--font-en);
	font-size: calc(12 * min(100vw / 1440, 1px));
	font-size: calc(12 * var(--u));
	font-weight: 600;
	letter-spacing: 0.06em;
	line-height: 1;
	margin-top: calc(6 * min(100vw / 1440, 1px));
	margin-top: calc(6 * var(--u));
}

/* ================= SP(≤767px) ================= */

/* =========================================================================
   ハンバーガーメニュー(展開オーバーレイ・全ページ共通)
   ナビは フッター(.ft-nav) のスタイルを流用し .hm-nav で上書き
   ========================================================================= */

.p-hmenu {
	-webkit-overflow-scrolling: touch;
	background: #fffaf6;
	background: var(--c-nav-bg); /* #fffaf6 */
	bottom: 0;
	left: 0;
	opacity: 0;
	overflow-y: auto;
	padding-top: calc(130 * min(100vw / 1440, 1px));
	padding-top: var(--header-h); /* 固定ヘッダーぶん下げてナビを始める */
	pointer-events: none;
	position: fixed;
	right: 0;
	top: 0;
	transition: opacity 0.28s ease, visibility 0.28s ease;
	visibility: hidden;
	z-index: 200; /* 固定トップバー(300)の下に潜り、ヘッダーは常に上に見える */
}

.p-hmenu.is-open {
	opacity: 1;
	pointer-events: auto;
	visibility: visible;
}

body.is-hmenu-lock {
	overflow: hidden;
}

.hm-inner {
	margin-left: auto;
	margin-right: auto;
	max-width: calc(1440 * min(100vw / 1440, 1px));
	max-width: calc(1440 * var(--u));
	padding: 0 calc(150 * min(100vw / 1440, 1px)) calc(56 * min(100vw / 1440, 1px));
	padding: 0 calc(150 * var(--u)) calc(56 * var(--u));
	position: relative;
	z-index: 1;
}

/* メニュー内ヘッダー(通常ヘッダーと同じ全幅・余白＝ロゴ/closeが同位置) */

.hm-head {
	align-items: center;
	display: flex;
	justify-content: space-between;
	min-height: calc(130 * min(100vw / 1440, 1px));
	min-height: calc(130 * var(--u));
	padding-left: calc(32 * min(100vw / 1440, 1px));
	padding-left: calc(32 * var(--u));
	padding-right: calc(32 * min(100vw / 1440, 1px));
	padding-right: calc(32 * var(--u));
}

.hm-logo {
	align-items: center;
	display: flex;
	gap: calc(14 * min(100vw / 1440, 1px));
	gap: calc(14 * var(--u));
}

.hm-logo__mark {
	height: auto;
	width: calc(100 * min(100vw / 1440, 1px));
	width: calc(100 * var(--u));
}

.hm-logo__names {
	display: flex;
	flex-direction: column;
	gap: calc(9 * min(100vw / 1440, 1px));
	gap: calc(9 * var(--u));
}

.hm-logo__corp {
	color: #6b3906;
	color: var(--c-brown);
	font-family: "Shippori Mincho", serif;
	font-family: var(--font-mincho);
	font-size: calc(17 * min(100vw / 1440, 1px));
	font-size: calc(17 * var(--u));
	font-weight: 700;
	letter-spacing: 0.03em;
	line-height: 1;
}

.hm-logo__name {
	color: #6b3906;
	color: var(--c-brown);
	font-family: "Shippori Mincho", serif;
	font-family: var(--font-mincho);
	font-size: calc(24 * min(100vw / 1440, 1px));
	font-size: calc(24 * var(--u));
	font-weight: 800;
	letter-spacing: 0.05em;
	line-height: 1;
}

.hm-close {
	align-items: center;
	display: flex;
	flex-direction: column;
	gap: calc(8 * min(100vw / 1440, 1px));
	gap: calc(8 * var(--u));
}

.hm-close__x {
	height: calc(22 * min(100vw / 1440, 1px));
	height: calc(22 * var(--u));
	position: relative;
	width: calc(34 * min(100vw / 1440, 1px));
	width: calc(34 * var(--u));
}

.hm-close__x::before,
.hm-close__x::after {
	background: #7c6660;
	background: var(--c-brown-2);
	content: "";
	height: calc(2 * min(100vw / 1440, 1px));
	height: calc(2 * var(--u));
	left: 50%;
	position: absolute;
	top: 50%;
	width: calc(40 * min(100vw / 1440, 1px));
	width: calc(40 * var(--u));
}

.hm-close__x::before {
	transform: translate(-50%, -50%) rotate(29deg);
}

.hm-close__x::after {
	transform: translate(-50%, -50%) rotate(-29deg);
}

.hm-close__label {
	color: #7c6660;
	color: var(--c-brown-2);
	font-family: "Lora", serif;
	font-family: var(--font-en);
	font-size: calc(14 * min(100vw / 1440, 1px));
	font-size: calc(14 * var(--u));
	font-weight: 600;
	letter-spacing: 0.06em;
}

/* 本文レイアウト(PC=左:ナビ+補助 / 右:CTA、家族イラストは右下) */

.hm-body {
	grid-column-gap: calc(28 * min(100vw / 1440, 1px));
	grid-column-gap: calc(28 * var(--u));
	-moz-column-gap: calc(28 * min(100vw / 1440, 1px));
	-moz-column-gap: calc(28 * var(--u));
	align-content: start;
	column-gap: calc(28 * min(100vw / 1440, 1px));
	column-gap: calc(28 * var(--u));
	display: grid;
	grid-template-areas: "nav cta" "sub cta";
	grid-template-columns: 1fr calc(300 * min(100vw / 1440, 1px));
	grid-template-columns: 1fr calc(300 * var(--u));
	position: relative;
	width: 100%; /* hm-innerフレックス化で縮む対策=親幅いっぱいに伸ばす */
}

.hm-nav {
	grid-area: nav;
}

.hm-cta {
	grid-area: cta;
}

.hm-sub {
	grid-area: sub;
	justify-content: flex-start;
	margin-top: calc(56 * min(100vw / 1440, 1px));
	margin-top: calc(56 * var(--u));
}

/* 家族イラスト: 画面(ビューポート)右下に固定＝画面幅に依存しない。コンテンツより背面 */

.hm-family {
	bottom: 0;
	height: auto;
	position: fixed;
	right: calc(80 * min(100vw / 1440, 1px));
	right: calc(80 * var(--u));
	width: calc(330 * min(100vw / 1440, 1px));
	width: calc(330 * var(--u));
	z-index: 0;
}

/* ナビ: フッター(.ft-nav)流用。メニューは子も茶色＋展開時ピンク(SPアコーディオン) */

.hm-nav .ft-children a {
	color: #7c6660;
	color: var(--c-brown-2);
}

.hm-nav .ft-group[open] > summary {
	color: #fd7676;
	color: var(--c-pink);
}

.hm-nav .ft-group[open] > summary::before {
	background: #fd7676;
	background: var(--c-pink);
}

/* PC: 各項目にドット下線(親行=padding+border)。子は常時表示(フッターPCの仕組み流用) */

/* CTA(フッターのtel/btns流用) */

.hm-cta .ft-tel {
	text-align: center;
}

.hm-cta .ft-btns {
	flex-direction: column;
	margin-top: calc(24 * min(100vw / 1440, 1px));
	margin-top: calc(24 * var(--u));
}

.hm-cta .ft-btn {
	width: 100%;
}

.hm-caution {
	display: none; /* PCメニューには無い(SPのみ) */
	margin-top: calc(24 * min(100vw / 1440, 1px));
	margin-top: calc(24 * var(--u));
}

/* ================= SP(≤767px): 縦積み ================= */

/* =========================================================================
   オープニング(ローディング) — トップのみ
   Figma: pc-top 2657:65707(1440x810) / 完成形 2655:50756
   背景は l-topbg と同一の水彩なので、この層は背景を持たずイラストだけを持つ。
   タイトル/サブタイトルは hero の h1(.p-hero__copy)を借りて fixed 表示し、
   終了時に FLIP で本来の位置へ戻す(_top.scss の .p-hero__copy / .hc-* を参照)。

   --lu = ローディング専用の単位。PCはフレーム1440基準(=--uと同値)、
   SPは740基準にして構図全体を相対的に拡大する(SPデザインが無いためPC構図の縮小配置)。
   ========================================================================= */

.p-loading {
	--lu: calc(100vw / 740);
	bottom: 0;
	left: 0;
	overflow: hidden;
	pointer-events: none;
	position: fixed;
	right: 0;
	top: 0;
	z-index: 1000;
}

/* 構図はフレーム1440幅のステージとして中央寄せし、下端を画面下に合わせる
   (女性の下端は画面下で見切れる = Figma準拠)。SPは --lu が小さいのでステージが
   画面より広くなり、左右均等にはみ出す＝PC構図がそのまま中央に縮小配置される。 */

.ld-stage {
	bottom: 0;
	height: calc(810 * var(--lu));
	left: 50%;
	position: absolute;
	transform: translateX(-50%);
	width: calc(1440 * var(--lu));
}

.ld-stage > * {
	opacity: 0;
	position: absolute;
}

/* 人物はマスク前の全身素材(497x544)。デザイン(16:9)では下端が画面外へ出て
   Figmaどおり見切れる。縦長画面では下の余白があるので全身を見せる(下の @media)。 */

.ld-women {
	bottom: calc(-199 * var(--lu));
	height: calc(544 * var(--lu));
	left: calc(471 * var(--lu));
	width: calc(497 * var(--lu));
}

.ld-women__img {
	bottom: 0;
	height: auto;
	left: 0;
	opacity: 0;
	position: absolute;
	transition: opacity 0.55s ease;
	width: 100%;
}

.ld-women__img.is-active {
	opacity: 1;
}

/* コアラは足元を軸に角度だけが変わる。キーフレームだと再生のたびに角度が0へ戻るため、
   transition で「現在の角度 → 次の角度」を直接補間する(フェードは挟まない)。 */

.ld-koala {
	transform: rotate(0deg);
	transform: rotate(var(--ld-rot, 0deg));
	transform-origin: 50% 100%;
	transition: transform 0.6s cubic-bezier(0.34, 1.15, 0.64, 1);
}

.ld-koala--1 {
	bottom: calc(51 * var(--lu));
	left: calc(361 * var(--lu));
	width: calc(182 * var(--lu));
}

.ld-koala--2 {
	bottom: calc(53 * var(--lu));
	left: calc(912 * var(--lu));
	width: calc(120 * var(--lu));
}

/* 縦長画面(デザイン比 1440:985 より縦長)では、人物の全身が入る余白があるので
   見切れさせない。コアラも人物との相対位置を保ったまま 199lu ぶん一緒に上げる。 */

/* SPは縦の余白が少ないので、足元がわずかに画面外へ出るところまで下げる。
   コアラも同量だけ一緒に下げて、人物との相対位置を保つ。 */

/* 登場: 女性とコアラは同時にふわっと */

.is-loading .ld-women {
	animation: ld-appear 0.85s cubic-bezier(0.22, 0.61, 0.36, 1) 0.15s both;
}

/* コアラは登場後に transform を transition へ明け渡す必要があるので backwards。
   (both だと最終キーフレームの transform:none が残り、角度指定が効かなくなる) */

.is-loading .ld-koala {
	animation: ld-appear 0.85s cubic-bezier(0.22, 0.61, 0.36, 1) 0.15s backwards;
	opacity: 1;
}

/* 退場 */

.is-loading-out .ld-women,
.is-loading-out .ld-koala {
	animation: ld-leave 0.6s ease both;
}

.p-loading.is-done {
	opacity: 0;
	transition: opacity 0.55s ease;
}

.p-loading.is-removed {
	display: none;
}

/* 同一タブ2回目以降はオープニングを流さない(header.php の判定スクリプト)。
   ステージの中身は既定で opacity:0 なので見えないが、層ごと外しておく。 */

.is-opening-skipped .p-loading {
	display: none;
}

/* ---- ローディング中の hero コピー(fixed でローディング位置へ) ----
   基準幅を素材の実寸 634.8 に置き換えるだけで、タイトルは 1:1 で出る。 */

.is-loading .p-hero__copy {
	--lu: calc(100vw / 740);
	--hc-w: calc(634.8 * var(--lu));
	height: calc(0.2443 * (634.8 * (100vw / 740)));
	height: calc(0.2443 * calc(634.8 * calc(100vw / 740)));
	height: calc(0.2443 * var(--hc-w));
	left: calc(50vw - 317 * (100vw / 740));
	left: calc(50vw - 317 * calc(100vw / 740));
	left: calc(50vw - 317 * var(--lu)); /* ステージ中央(720)から見た x=403 */
	position: fixed;
	top: calc(100vh - 594 * (100vw / 740));
	top: calc(100vh - 594 * calc(100vw / 740));
	top: calc(100vh - 594 * var(--lu)); /* 画面下端基準の 810 ステージ内 y=216 */
	z-index: 1001;
}

/* 縦長画面では下端基準だとテキストが下に寄りすぎるため、
   デザインと同率(216/810 ≒ 27%)の画面高比で置く */

/* 点線・サブタイトルのブロック内比率はローディングとヒーローで共通にする。
   状態ごとに変えると FLIP 中に transform 以外の値が動き、拡大率が二重に掛かって
   破綻するため。比率を固定しておけば移動は純粋な transform だけになる。 */

/* 文字・サブタイトルの登場(その場で中心から拡大しながらフェード) */

.is-loading .hc-ch,
.is-loading .hc-dots,
.is-loading .hc-sub {
	opacity: 0;
}

.is-loading .hc-ch {
	transform-origin: 50% 50%;
}

.hc-ch.is-in {
	animation: hc-pop 0.58s cubic-bezier(0.22, 0.61, 0.36, 1) both;
}

.hc-dots.is-in {
	animation: hc-line 0.5s ease both;
}

.hc-sub.is-in {
	animation: hc-pop 0.7s cubic-bezier(0.22, 0.61, 0.36, 1) both;
}

/* ---- ローディング終了時のページ側の動き ---- */

body.is-loading {
	overflow: hidden;
}

/* 縦長モニター対策: ローディング中は l-topbg より後ろの全セクションを描画ごと止める。
   .p-feature は z-index:1 かつ margin-top:-134u で l-topbg に食い込むため、
   何もしないとアーチとクリーム地が hero の水彩より前面に出る。
   visibility なのでレイアウトは動かず、解除時のガタつきもない。 */

body.is-loading > *:not(.p-loading):not(.l-topbg) {
	visibility: hidden;
}

/* 縦長モニターでは l-topbg の高さ(中身依存)が画面に届かず、下端に継ぎ目が出る。
   水彩の下端は横方向に色ムラがあるため単色では埋まらないので、演出中だけ
   画像を画面高まで引き伸ばした層を敷く。max() により、l-topbg が画面より
   高い通常のワイド画面では 100% = 現状と完全に同じで、何も変わらない。 */

body.is-loading .l-topbg::before {
	background-image: inherit; /* PC/SP の出し分けをそのまま引き継ぐ */
	background-position: top center;
	background-repeat: no-repeat;
	background-size: 100% 100%;
	content: "";
	height: max(100%, 100vh);
	left: 0;
	pointer-events: none;
	position: absolute;
	top: 0;
	width: 100%;
	z-index: 0;
}

/* 退場中は上記が解除されるため、食い込み分だけ重なり順を入れ替えて
   アーチが hero の上に飛び出すのを防ぐ(終了後は元の重なりに戻る)。 */

body.is-loading-out .l-topbg {
	z-index: 2;
}

/* 中身はローディング中は伏せておく(コピーだけは fixed で見えている)。
   .l-gnav / .p-greeting は背の高いビューポートで覗くため一緒に伏せる。 */

.is-loading .l-topbar,
.is-loading .l-gnav,
.is-loading .p-fixcta,
.is-loading .p-greeting,
.is-loading .p-hero__photos,
.is-loading .p-hero__illust,
.is-loading .p-hero__bird--left,
.is-loading .p-hero__bird--right,
.is-loading .p-hero__badges {
	opacity: 0;
}

/* ヘッダーは上から降ってくる */

.is-revealing .l-topbar {
	animation: ld-header-drop 0.9s cubic-bezier(0.22, 0.61, 0.36, 1) both;
}

/* hero の中身は下からふわっと */

.is-revealing .p-hero__photos {
	animation: ld-rise 1s cubic-bezier(0.22, 0.61, 0.36, 1) 0.12s both;
}

.is-revealing .p-hero__illust {
	animation: ld-rise 1s cubic-bezier(0.22, 0.61, 0.36, 1) 0.05s both;
}

.is-revealing .p-hero__badges {
	animation: ld-rise 1s cubic-bezier(0.22, 0.61, 0.36, 1) 0.26s both;
}

.is-revealing .p-hero__bird--left,
.is-revealing .p-hero__bird--right {
	animation: ld-rise 1s cubic-bezier(0.22, 0.61, 0.36, 1) 0.36s both;
}

.is-revealing .l-gnav {
	animation: ld-rise 1s cubic-bezier(0.22, 0.61, 0.36, 1) 0.4s both;
}

.is-revealing .p-fixcta {
	animation: ld-rise 1s cubic-bezier(0.22, 0.61, 0.36, 1) 0.46s both;
}

/* コピーの縮小移動(FLIP)。JS が --flip-x/--flip-y/--flip-s を入れて発火させる */

.p-hero__copy.is-flipping {
	animation: ld-flip 1.1s cubic-bezier(0.55, 0.06, 0.24, 1) both;
	transform-origin: 0 0;
}

/* =========================================================================
   medical-examination（産科 / obstetrics）ページ固有スタイル
   ・共通の reset/tokens/--u/ヘッダー/フッター等は base / page/_header 等が担う
   ・デザイン基準: PC=1440 / SP=390。寸法は calc(px * var(--u))。
   ・セクション配色: --sec 系変数を .me-sec--pink / --green で切替
   ・ページ全体に効かせる上書きは body-page-medical-examination
     （functions.php の body_class フィルタで付与）でスコープする
   ========================================================================= */

/* ページ地色（Fig: #fffaf6） */

body.body-page-medical-examination {
	background: #fffaf6;
}

/* menu セクション直後のフッター空色。menu下地と同じ #fff7f1 に合わせる（このページのみ） */

body.body-page-medical-examination .p-footer {
	--ft-sky: #fff7f1;
}

/* ============ レイアウト（固定目次サイドバー + 本文） ============ */

.me-page {
	padding-top: calc(48 * min(100vw / 1440, 1px));
	padding-top: calc(48 * var(--u));
}

.me-wrap {
	position: relative;
}

/* タイトル+パンくず / 本文カラム(幅960)。
   十分な幅では画面中央、幅が狭くなると右へずれる(左は固定目次を避ける最小マージン380u)。
   1440幅ちょうどでデザイン通り(本文 x=380)。 */

.me-head,
.me-main {
	margin-left: max((100vw - 960 * min(100vw / 1440, 1px)) / 2, 380 * min(100vw / 1440, 1px));
	margin-left: max((100vw - 960 * var(--u)) / 2, 380 * var(--u));
	margin-right: auto;
	width: calc(960 * min(100vw / 1440, 1px));
	width: calc(960 * var(--u));
}

.me-main {
	padding-bottom: calc(120 * min(100vw / 1440, 1px));
	padding-bottom: calc(120 * var(--u));
}

/* --- 固定目次サイドバー（PC）: 画面左に固定（画面幅に依存しない） --- */

.me-index {
	left: calc(40 * min(100vw / 1440, 1px));
	left: calc(40 * var(--u)); /* 画面左に固定 */
	max-height: calc(100vh - (130 * min(100vw / 1440, 1px)) - 64 * min(100vw / 1440, 1px));
	max-height: calc(100vh - calc(130 * min(100vw / 1440, 1px)) - 64 * min(100vw / 1440, 1px));
	max-height: calc(100vh - var(--header-h) - 64 * var(--u));
	overflow-y: auto;
	position: fixed;
	top: calc((130 * min(100vw / 1440, 1px)) + 40 * min(100vw / 1440, 1px));
	top: calc(calc(130 * min(100vw / 1440, 1px)) + 40 * min(100vw / 1440, 1px));
	top: calc(var(--header-h) + 40 * var(--u)); /* 固定ヘッダー下に配置（ほんの少し下げ） */
	width: calc(240 * min(100vw / 1440, 1px));
	width: calc(240 * var(--u));
	z-index: 50;
}

.me-index__list {
	display: flex;
	flex-direction: column;
	gap: calc(20 * min(100vw / 1440, 1px));
	gap: calc(20 * var(--u));
}

.me-index__item + .me-index__item {
	margin-top: 0;
}

.me-index__link {
	align-items: center;
	display: flex;
	font-family: "Noto Sans JP", sans-serif;
	font-family: var(--font-jp);
	font-size: calc(15 * min(100vw / 1440, 1px));
	font-size: calc(15 * var(--u));
	font-weight: 700;
	gap: calc(8 * min(100vw / 1440, 1px));
	gap: calc(8 * var(--u));
	justify-content: space-between;
	letter-spacing: 0.05em;
	line-height: 1.5;
	padding-bottom: calc(12 * min(100vw / 1440, 1px));
	padding-bottom: calc(12 * var(--u));
	padding-top: calc(12 * min(100vw / 1440, 1px));
	padding-top: calc(12 * var(--u));
	transition: opacity 0.2s ease;
}

/* 下線(Fig: #a2918d・太さ1・破線1/間隔4・線端丸。丸端ピル2x1を5pxピッチでSVG描画)
   はグループ内の区切りとしてのみ表示: サブメニューを持つ親のみ(持たない親は下線なし) */

.me-index__item:has(.me-index__sub) > .me-index__link {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='5' height='1'%3E%3Crect width='2' height='1' rx='0.5' fill='%23a2918d'/%3E%3C/svg%3E");
	background-position: left bottom;
	background-repeat: repeat-x;
	background-size: calc(5 * min(100vw / 1440, 1px)) calc(1 * min(100vw / 1440, 1px));
	background-size: calc(5 * var(--u)) calc(1 * var(--u));
}

.me-index__link:hover {
	opacity: 0.65;
}

.me-index__link--pink {
	color: #fd7676;
	color: var(--c-pink);
}

.me-index__link--green {
	color: #51ad5a;
}

.me-index__arw {
	flex-shrink: 0;
	height: calc(20 * min(100vw / 1440, 1px));
	height: calc(20 * var(--u));
	width: calc(20 * min(100vw / 1440, 1px));
	width: calc(20 * var(--u));
}

/* ページ内ジャンプボタン(Fig: under-btn-index-sp。reservation/specialized-clinic/faq/recruit で共用)
   高さはFig固定56: ラベルが2行に折り返しても56を維持できるよう縦padを絞り、センタリングはflexに任せる */

.me-jump__link {
	align-items: center;
	border: 2px solid currentColor; /* 枠線は縮小させず常に2px（FB対応） */
	display: flex;
	font-family: "Noto Sans JP", sans-serif;
	font-family: var(--font-jp);
	font-size: calc(16 * min(100vw / 1440, 1px));
	font-size: calc(16 * var(--u));
	font-weight: 700;
	gap: calc(4 * min(100vw / 1440, 1px));
	gap: calc(4 * var(--u)); /* 8だと長文ラベル(scの3番目)が3行化して56を超える。Figは2行/56 */
	justify-content: space-between;
	letter-spacing: 0.05em;
	line-height: 1.2;
	min-height: calc(56 * min(100vw / 1440, 1px));
	min-height: calc(56 * var(--u));
	padding: calc(4 * min(100vw / 1440, 1px)) calc(8 * min(100vw / 1440, 1px)) calc(4 * min(100vw / 1440, 1px)) calc(12 * min(100vw / 1440, 1px));
	padding: calc(4 * var(--u)) calc(8 * var(--u)) calc(4 * var(--u)) calc(12 * var(--u));
	transition: opacity 0.2s ease;
}

.me-jump__link:focus-visible {
	outline: calc(2 * min(100vw / 1440, 1px)) solid currentColor;
	outline: calc(2 * var(--u)) solid currentColor;
	outline-offset: calc(2 * min(100vw / 1440, 1px));
	outline-offset: calc(2 * var(--u));
}

.me-jump__link--pink {
	color: #fd7676;
	color: var(--c-pink);
}

.me-jump__link--green {
	color: #51ad5a;
}

.me-index__sub {
	padding: 0;
}

.me-index__sub a { /* 下線: 親リンク(.me-index__link)と同じドット破線(#a2918d・1px・5pxピッチ・丸端) */
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='5' height='1'%3E%3Crect width='2' height='1' rx='0.5' fill='%23a2918d'/%3E%3C/svg%3E");
	background-position: left bottom;
	background-repeat: repeat-x;
	background-size: calc(5 * min(100vw / 1440, 1px)) calc(1 * min(100vw / 1440, 1px));
	background-size: calc(5 * var(--u)) calc(1 * var(--u));
	color: #7c6660;
	color: var(--c-brown-2);
	display: block;
	font-family: "Noto Sans JP", sans-serif;
	font-family: var(--font-jp);
	font-size: calc(13 * min(100vw / 1440, 1px));
	font-size: calc(13 * var(--u));
	font-weight: 500;
	letter-spacing: 0.03em;
	line-height: 1.5;
	padding-bottom: calc(6 * min(100vw / 1440, 1px));
	padding-bottom: calc(6 * var(--u));
	padding-top: calc(6 * min(100vw / 1440, 1px));
	padding-top: calc(6 * var(--u));
	transition: opacity 0.2s ease;
}

.me-index__sub a:hover {
	opacity: 0.65;
}

/* グループ最後のサブ項目は下に続くメニューが無いため下線なし */

.me-index__sub li:last-child a {
	background-image: none;
}

/* ============ タイトルカード ============ */

.me-hero {
	position: relative;
}

.me-hero__card {
	background: #fff;
	border: 2px solid #ffd0c9;
	border-radius: calc(10 * min(100vw / 1440, 1px));
	border-radius: calc(10 * var(--u));
	height: calc(300 * min(100vw / 1440, 1px));
	height: calc(300 * var(--u));
	position: relative;
}

.me-hero__inner {
	align-items: center;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='3'%3E%3Ccircle cx='4' cy='1.5' r='1.5' fill='%23ff8f8f'/%3E%3C/svg%3E"), url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='3'%3E%3Ccircle cx='4' cy='1.5' r='1.5' fill='%23ff8f8f'/%3E%3C/svg%3E"), url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='3' height='8'%3E%3Ccircle cx='1.5' cy='4' r='1.5' fill='%23ff8f8f'/%3E%3C/svg%3E"), url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='3' height='8'%3E%3Ccircle cx='1.5' cy='4' r='1.5' fill='%23ff8f8f'/%3E%3C/svg%3E");
	background-position: left top, left bottom, left top, right top;
	background-repeat: repeat-x, repeat-x, repeat-y, repeat-y;
	background-size: calc(8 * min(100vw / 1440, 1px)) calc(3 * min(100vw / 1440, 1px)), calc(8 * min(100vw / 1440, 1px)) calc(3 * min(100vw / 1440, 1px)), calc(3 * min(100vw / 1440, 1px)) calc(8 * min(100vw / 1440, 1px)), calc(3 * min(100vw / 1440, 1px)) calc(8 * min(100vw / 1440, 1px));
	background-size: calc(8 * var(--u)) calc(3 * var(--u)), calc(8 * var(--u)) calc(3 * var(--u)), calc(3 * var(--u)) calc(8 * var(--u)), calc(3 * var(--u)) calc(8 * var(--u)); /* ドット枠(Fig: 破線0.1・間隔8・線端丸・太さ3 ≒ 3px丸ドット8pxピッチ)。
     radial-gradientの極小ドットはAAが効かず角ばるため、SVG真円のタイルで描画
     (寸法はbackground-size側で指定＝postcssのvar(--u)変換バグも回避) */
	border-radius: calc(6 * min(100vw / 1440, 1px));
	border-radius: calc(6 * var(--u));
	bottom: calc(12 * min(100vw / 1440, 1px));
	bottom: calc(12 * var(--u));
	display: flex;
	flex-direction: column;
	justify-content: center;
	left: calc(12 * min(100vw / 1440, 1px));
	left: calc(12 * var(--u));
	position: absolute;
	right: calc(12 * min(100vw / 1440, 1px));
	right: calc(12 * var(--u));
	text-align: center;
	top: calc(12 * min(100vw / 1440, 1px));
	top: calc(12 * var(--u));
}

.me-hero__title {
	color: #fd7676;
	color: var(--c-pink); /* PCは<br class="u-br-pc">で2行に折返し済み＝自然にドット枠より内側。max-widthは不要 */
	font-family: "Shippori Mincho", serif;
	font-family: var(--font-mincho);
	font-size: calc(36 * min(100vw / 1440, 1px));
	font-size: calc(36 * var(--u));
	font-weight: 800;
	letter-spacing: 0.05em;
	line-height: 1.5;
}

.me-hero__en {
	color: #fd7676;
	color: var(--c-pink);
	display: block;
	font-family: "Lora", serif;
	font-family: var(--font-en);
	font-size: calc(18 * min(100vw / 1440, 1px));
	font-size: calc(18 * var(--u));
	font-weight: 600;
	letter-spacing: 0.05em;
	margin-top: calc(6 * min(100vw / 1440, 1px));
	margin-top: calc(6 * var(--u));
}

.me-hero__koala {
	height: auto;
	left: calc(-60 * min(100vw / 1440, 1px));
	left: calc(-60 * var(--u));
	position: absolute;
	top: calc(176 * min(100vw / 1440, 1px));
	top: calc(176 * var(--u));
	width: calc(96 * min(100vw / 1440, 1px));
	width: calc(96 * var(--u));
	z-index: 1;
}

.me-hero__mombaby {
	height: auto;
	position: absolute;
	right: calc(-20 * min(100vw / 1440, 1px));
	right: calc(-20 * var(--u));
	top: calc(109 * min(100vw / 1440, 1px));
	top: calc(109 * var(--u));
	width: calc(121 * min(100vw / 1440, 1px));
	width: calc(121 * var(--u));
	z-index: 1;
}

.me-hero__balloons {
	display: none; /* SPのみ表示 */
}

/* ============ パンくず ============ */

.me-breadcrumb {
	align-items: center;
	color: #7c6660;
	color: var(--c-brown-2);
	display: flex;
	flex-wrap: wrap;
	font-family: "Noto Sans JP", sans-serif;
	font-family: var(--font-jp);
	font-size: calc(13 * min(100vw / 1440, 1px));
	font-size: calc(13 * var(--u));
	font-weight: 500;
	gap: calc(16 * min(100vw / 1440, 1px));
	gap: calc(16 * var(--u));
	letter-spacing: 0.03em;
	line-height: 1.5;
	margin-top: calc(33 * min(100vw / 1440, 1px));
	margin-top: calc(33 * var(--u));
}

.me-breadcrumb__home {
	align-items: center;
	display: inline-flex;
	gap: calc(8 * min(100vw / 1440, 1px));
	gap: calc(8 * var(--u));
	transition: opacity 0.2s ease;
}

.me-breadcrumb__home:hover {
	opacity: 0.65;
}

.me-breadcrumb__home svg {
	fill: #7c6660;
	fill: var(--c-brown-2);
	height: auto;
	width: calc(16 * min(100vw / 1440, 1px));
	width: calc(16 * var(--u));
}

/* ============ セクション（番号見出し + 花ライン） ============ */

.me-sec {
	margin-top: calc(160 * min(100vw / 1440, 1px));
	margin-top: calc(160 * var(--u)); /* Fig更新版: セクション間160(cp-under系と同一) */
	scroll-margin-top: calc((130 * min(100vw / 1440, 1px)) + 20 * min(100vw / 1440, 1px));
	scroll-margin-top: calc(calc(130 * min(100vw / 1440, 1px)) + 20 * min(100vw / 1440, 1px));
	scroll-margin-top: calc(var(--header-h) + 20 * var(--u));
}

.me-main > .me-sec:first-child {
	margin-top: calc(96 * min(100vw / 1440, 1px));
	margin-top: calc(96 * var(--u)); /* パンくず→最初のセクション */
}

.me-sec__num {
	color: var(--sec);
	font-family: "Shippori Mincho", serif;
	font-family: var(--font-mincho);
	font-size: calc(32 * min(100vw / 1440, 1px));
	font-size: calc(32 * var(--u));
	font-weight: 800;
	letter-spacing: 0.05em;
	line-height: 1.5;
}

.me-sec__line { /* 高さ基準で拡縮＝伸縮ゆがみ無し。幅は画面幅に合わせてトリミング（元画像1720と十分長い） */
	background: var(--sec-line) left/auto 100% no-repeat;
	display: block;
	height: calc(10 * min(100vw / 1440, 1px));
	height: calc(10 * var(--u));
	margin-bottom: calc(80 * min(100vw / 1440, 1px));
	margin-bottom: calc(80 * var(--u)); /* 番号→ライン24 / ライン→本文80(デザイン) */
	margin-top: calc(24 * min(100vw / 1440, 1px));
	margin-top: calc(24 * var(--u));
	width: 100%;
}

/* 配色モジュール */

.me-sec--pink {
	--sec: var(--c-pink);
	--sec-bd: #ff8f8f;
	--sec-bar: #ffbbba;
	--bar-a: #ffd0c9;
	--bar-b: #ffbbba;
	--sec-line: url("../images/under/medical-examination/line-flower-pink.webp");
}

.me-sec--green {
	--sec: #51ad5a;
	--sec-bd: #87cf8e;
	--sec-bar: #b4e2b8;
	--bar-a: #cbe8ce;
	--bar-b: #b4e2b8;
	--sec-line: url("../images/under/medical-examination/line-flower-green.webp");
}

/* ============ 箇条書きボックス ============ */

.me-listcard {
	background: #fffaf6;
	border: 2px solid var(--sec-bd);
	border-radius: calc(10 * min(100vw / 1440, 1px));
	border-radius: calc(10 * var(--u));
	padding: calc(40 * min(100vw / 1440, 1px));
	padding: calc(40 * var(--u));
}

.me-listcard__ul {
	-moz-column-gap: calc(24 * min(100vw / 1440, 1px));
	-moz-column-gap: calc(24 * var(--u));
	column-gap: calc(24 * min(100vw / 1440, 1px));
	column-gap: calc(24 * var(--u));
	display: flex;
	flex-wrap: wrap;
	row-gap: calc(12 * min(100vw / 1440, 1px));
	row-gap: calc(12 * var(--u));
}

.me-listcard__li {
	align-items: flex-start;
	color: #7c6660;
	color: var(--c-brown-2);
	display: flex;
	font-family: "Noto Sans JP", sans-serif;
	font-family: var(--font-jp);
	font-size: max(1.5rem, min(calc(16 * min(100vw / 1440, 1px)), 1.6rem));
	font-size: var(--fs-body); /* 本文=16px基準・下限15px(規約)・太字(デザインw700) */
	font-weight: 700;
	gap: calc(16 * min(100vw / 1440, 1px));
	gap: calc(16 * var(--u));
	letter-spacing: 0.03em;
	line-height: 1.6;
}

.me-listcard__li::before {
	background: var(--sec-bar);
	border-radius: 50%;
	content: "";
	flex-shrink: 0;
	height: calc(8 * min(100vw / 1440, 1px));
	height: calc(8 * var(--u));
	margin-top: calc(8 * min(100vw / 1440, 1px));
	margin-top: calc(8 * var(--u));
	width: calc(8 * min(100vw / 1440, 1px));
	width: calc(8 * var(--u));
}

/* ============ セクション本文（02以降。Figで内容は16u内側） ============ */

.me-sec__body {
	padding-left: calc(16 * min(100vw / 1440, 1px));
	padding-left: calc(16 * var(--u));
	padding-right: calc(16 * min(100vw / 1440, 1px));
	padding-right: calc(16 * var(--u));
}

.me-sec__body > * + * {
	margin-top: calc(40 * min(100vw / 1440, 1px));
	margin-top: calc(40 * var(--u)); /* 部品間の既定余白 */
}

.me-sec__body > * + .me-sub__ttl {
	margin-top: calc(80 * min(100vw / 1440, 1px));
	margin-top: calc(80 * var(--u)); /* サブ見出しの上は広め(デザイン) */
}

/* 本文段落 */

.me-p.mt16 {
	margin-top: calc(16 * min(100vw / 1440, 1px)) !important;
	margin-top: calc(16 * var(--u)) !important;
}

.me-p.mt0 {
	margin-top: 0;
}

.me-p {
	color: #7c6660;
	color: var(--c-brown-2);
	font-family: "Noto Sans JP", sans-serif;
	font-family: var(--font-jp);
	font-size: max(1.5rem, min(calc(16 * min(100vw / 1440, 1px)), 1.6rem));
	font-size: var(--fs-body);
	font-weight: 400;
	letter-spacing: 0.03em;
	line-height: 1.6;
	margin-top: calc(40 * min(100vw / 1440, 1px));
	margin-top: calc(40 * var(--u));
}

.me-p + .me-p {
	margin-top: calc(16 * min(100vw / 1440, 1px));
	margin-top: calc(16 * var(--u));
}

.me-hl-g {
	color: #51ad5a;
	font-weight: 700; /* 緑ハイライト */
}

/* 電話番号リンク(SPで発信可)。見た目は親のハイライトを継承・PCはクリック無効 */

.me-tel {
	color: inherit;
}

.me-hl-p {
	color: #fd7676;
	color: var(--c-pink);
	font-weight: 700; /* ピンクハイライト */
}

/* 写真＋本文（PC=回り込み float。テキストが画像の右～下へ一定距離で回り込む） */

.me-figrow::after {
	clear: both; /* 回り込み解除 */
	content: "";
	display: block;
}

.me-figrow__img {
	float: left;
	margin: 0 calc(40 * min(100vw / 1440, 1px)) calc(24 * min(100vw / 1440, 1px)) 0;
	margin: 0 calc(40 * var(--u)) calc(24 * var(--u)) 0;
	width: calc(400 * min(100vw / 1440, 1px));
	width: calc(400 * var(--u));
}

.me-figrow__img img {
	-o-object-fit: cover;
	aspect-ratio: 1/1;
	border-radius: calc(10 * min(100vw / 1440, 1px));
	border-radius: calc(10 * var(--u));
	display: block;
	object-fit: cover;
	width: 100%;
}

.me-figrow--wide .me-figrow__img img {
	aspect-ratio: 400/266; /* 横長写真（06 母乳相談） */
}

/* .me-figrow__body は通常フロー＝floatした画像に回り込む */

/* クリーム注記カード（中央寄せ・強調） */

.me-note {
	background: #ffefe5;
	padding: calc(40 * min(100vw / 1440, 1px));
	padding: calc(40 * var(--u));
}

.me-note p {
	color: #7c6660;
	color: var(--c-brown-2);
	font-family: "Noto Sans JP", sans-serif;
	font-family: var(--font-jp);
	font-size: max(1.5rem, min(calc(16 * min(100vw / 1440, 1px)), 1.6rem));
	font-size: var(--fs-body);
	font-weight: 400;
	letter-spacing: 0.03em;
	line-height: 1.6;
	text-align: center;
}

/* サブ見出し（║ 二本バー＋テキスト）。バーはテキスト行数に追従して伸縮 */

.me-sub__ttl {
	align-items: center;
	color: var(--sec);
	display: flex;
	font-family: "Shippori Mincho", serif;
	font-family: var(--font-mincho);
	font-size: calc(28 * min(100vw / 1440, 1px));
	font-size: calc(28 * var(--u));
	font-weight: 800;
	gap: calc(16 * min(100vw / 1440, 1px));
	gap: calc(16 * var(--u));
	letter-spacing: 0.05em;
	line-height: 1.5;
}

.me-sub__ttl::before {
	align-self: stretch; /* テキストの高さ（行数分）に合わせて縦に伸びる。Fig: バーは行高いっぱい */ /* バー4 / 隙間3 / バー4 (=11幅の36.36% / 63.64%)。
     ※ calc(n * var(--u)) をグラデ内に書くと postcss が PC用フォールバックだけを残しSPで破綻するため%指定 */
	background: linear-gradient(to right, var(--bar-a) 0,var(--bar-a) 36.36%, transparent 36.36%,transparent 63.64%, var(--bar-b) 63.64%, var(--bar-b) 100%);
	content: "";
	flex-shrink: 0;
	width: calc(11 * min(100vw / 1440, 1px));
	width: calc(11 * var(--u));
}

/* 表（左ラベル=cream・ピンク太字 / 右内容=白） */

.me-table {
	border-collapse: collapse;
	font-family: "Noto Sans JP", sans-serif;
	font-family: var(--font-jp);
	width: 100%;
}

.me-table th,
.me-table td {
	border: 2px solid #ffd0c9;
	font-size: max(1.5rem, min(calc(16 * min(100vw / 1440, 1px)), 1.6rem));
	font-size: var(--fs-body);
	letter-spacing: 0.03em;
	line-height: 1.6;
	padding: calc(16 * min(100vw / 1440, 1px));
	padding: calc(16 * var(--u));
	text-align: left;
	vertical-align: middle;
}

.me-table th {
	background: #fff4ed;
	color: #fd7676;
	color: var(--c-pink);
	font-weight: 700;
	width: calc(300 * min(100vw / 1440, 1px));
	width: calc(300 * var(--u));
}

.me-table td {
	background: #fff;
	color: #7c6660;
	color: var(--c-brown-2);
	font-weight: 400;
}

/* コールアウト箱（色付きヘッダー＋クリーム地・ラベル→詳細） */

.mt0 {
	margin-top: 0 !important;
}

.me-callout {
	border: 2px solid #87cf8e;
	border-radius: calc(10 * min(100vw / 1440, 1px));
	border-radius: calc(10 * var(--u));
	overflow: hidden;
}

.me-callout__hd {
	background: #73c07a;
	color: #fff;
	font-family: "Noto Sans JP", sans-serif;
	font-family: var(--font-jp);
	font-size: calc(20 * min(100vw / 1440, 1px));
	font-size: calc(20 * var(--u));
	font-weight: 700;
	letter-spacing: 0.05em;
	line-height: 1.6;
	padding: calc(12 * min(100vw / 1440, 1px));
	padding: calc(12 * var(--u)); /* Fig更新版: 12(cp-under系と同一) */
	text-align: center;
}

.me-callout__bd {
	background: #fff4ed;
	padding: calc(40 * min(100vw / 1440, 1px));
	padding: calc(40 * var(--u)); /* Fig更新版: 上下40(cp-under系と同一) */
}

.me-callout__ul {
	display: flex;
	flex-direction: column;
	gap: calc(24 * min(100vw / 1440, 1px));
	gap: calc(24 * var(--u)); /* Fig更新版: 24(cp-under系と同一) */
}

.me-callout__li {
	color: #7c6660;
	color: var(--c-brown-2);
	font-family: "Noto Sans JP", sans-serif;
	font-family: var(--font-jp);
	font-size: max(1.5rem, min(calc(16 * min(100vw / 1440, 1px)), 1.6rem));
	font-size: var(--fs-body);
	font-weight: 400;
	letter-spacing: 0.03em;
	line-height: 1.6;
	padding-left: calc(24 * min(100vw / 1440, 1px));
	padding-left: calc(24 * var(--u));
	position: relative;
}

.me-callout__li::before {
	background: var(--sec-bar);
	border-radius: 50%;
	content: "";
	height: calc(8 * min(100vw / 1440, 1px));
	height: calc(8 * var(--u));
	left: 0;
	position: absolute;
	top: calc(9 * min(100vw / 1440, 1px));
	top: calc(9 * var(--u));
	width: calc(8 * min(100vw / 1440, 1px));
	width: calc(8 * var(--u));
}

.me-callout__li b {
	font-weight: 700;
}

/* 全幅写真 */

.me-photo img {
	border-radius: calc(10 * min(100vw / 1440, 1px));
	border-radius: calc(10 * var(--u));
	display: block;
	height: auto;
	width: 100%;
}

/* ============ 診療内容一覧（menu / 全幅・ピンク水彩背景） ============ */

/* 背景は下端のピンク(#ffe1e0)でフッター雲へ繋ぐ。フッターの空色も揃える(上の .p-footer 上書き) */

.me-menu { /* 下地はFig Rectangle 1306 = #fff7f1、その上にピンク水彩。
     さらに最前面に「透明→下地色」のグラデを重ね、下端へ向けて水彩を溶かす。
     フッターが120u食い込んで平らな #fff7f1 の帯に切り替わる位置で水彩が消え切るので、
     水彩と帯の境目に横線が出ない。 */
	background: linear-gradient(to bottom, rgba(255, 247, 241, 0) calc(100% - 320 * min(100vw / 1440, 1px)), #fff7f1 calc(100% - 120 * min(100vw / 1440, 1px))) center/100% 100% no-repeat, url("../images/under/medical-examination/menu2-bg.webp") center/100% 100% no-repeat, #fff7f1;
	background: linear-gradient(to bottom, rgba(255, 247, 241, 0) calc(100% - 320 * var(--u)), #fff7f1 calc(100% - 120 * var(--u))) center/100% 100% no-repeat, url("../images/under/medical-examination/menu2-bg.webp") center/100% 100% no-repeat, #fff7f1;
	padding-bottom: calc(120 * min(100vw / 1440, 1px));
	padding-bottom: calc(120 * var(--u)); /* 上:見出しまで136 / 下:フッター雲まで120(Fig更新版・cp-under系と同一) */
	padding-top: calc(136 * min(100vw / 1440, 1px));
	padding-top: calc(136 * var(--u));
	position: relative;
}

/* 装飾（中央基準で配置＝広幅でもコンテンツに追従） */

.me-menu__staff {
	left: 50%;
	margin-left: calc(-600 * min(100vw / 1440, 1px));
	margin-left: calc(-600 * var(--u));
	position: absolute;
	top: calc(-16 * min(100vw / 1440, 1px));
	top: calc(-16 * var(--u));
	width: calc(288 * min(100vw / 1440, 1px));
	width: calc(288 * var(--u));
	z-index: 1; /* 背景上端より16px上にはみ出し(Fig忠実) */
}

.me-menu__staff img {
	display: block;
	height: auto;
	width: 100%;
}

.me-menu__balloons {
	height: auto;
	left: 50%;
	margin-left: calc(367 * min(100vw / 1440, 1px));
	margin-left: calc(367 * var(--u));
	position: absolute;
	top: calc(152 * min(100vw / 1440, 1px));
	top: calc(152 * var(--u));
	width: calc(73 * min(100vw / 1440, 1px));
	width: calc(73 * var(--u));
	z-index: 1;
}

.me-menu__inner {
	margin-left: auto;
	margin-right: auto;
	position: relative;
	width: calc(1040 * min(100vw / 1440, 1px));
	width: calc(1040 * var(--u));
	z-index: 2;
}

.me-menu__ttl {
	color: #7c6660;
	color: var(--c-brown-2);
	font-family: "Shippori Mincho", serif;
	font-family: var(--font-mincho);
	font-size: calc(28 * min(100vw / 1440, 1px));
	font-size: calc(28 * var(--u));
	font-weight: 800;
	letter-spacing: 0.05em;
	line-height: 1.5;
	text-align: center;
}

.me-menu__en {
	color: #7c6660;
	color: var(--c-brown-2);
	display: block;
	font-family: "Lora", serif;
	font-family: var(--font-en);
	font-size: calc(18 * min(100vw / 1440, 1px));
	font-size: calc(18 * var(--u));
	font-weight: 600;
	letter-spacing: 0.05em;
	margin-top: calc(2 * min(100vw / 1440, 1px));
	margin-top: calc(2 * var(--u));
}

/* カード共通（白半透明地・ピンク点線枠・角丸） */

.me-menu__card {
	align-items: center;
	background-color: rgba(255, 255, 255, 0.6); /* マルぽち点線枠(Fig: 破線0.1・間隔8・線端丸・太さ3 ≒ 3px丸ドット8pxピッチ)。
     border: dottedは点が詰まり角ばるため、me-hero__innerと同じSVG真円タイル4辺方式 */
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='3'%3E%3Ccircle cx='4' cy='1.5' r='1.5' fill='%23ff8f8f'/%3E%3C/svg%3E"), url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='3'%3E%3Ccircle cx='4' cy='1.5' r='1.5' fill='%23ff8f8f'/%3E%3C/svg%3E"), url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='3' height='8'%3E%3Ccircle cx='1.5' cy='4' r='1.5' fill='%23ff8f8f'/%3E%3C/svg%3E"), url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='3' height='8'%3E%3Ccircle cx='1.5' cy='4' r='1.5' fill='%23ff8f8f'/%3E%3C/svg%3E");
	background-position: left top, left bottom, left top, right top;
	background-repeat: repeat-x, repeat-x, repeat-y, repeat-y;
	background-size: calc(8 * min(100vw / 1440, 1px)) calc(3 * min(100vw / 1440, 1px)), calc(8 * min(100vw / 1440, 1px)) calc(3 * min(100vw / 1440, 1px)), calc(3 * min(100vw / 1440, 1px)) calc(8 * min(100vw / 1440, 1px)), calc(3 * min(100vw / 1440, 1px)) calc(8 * min(100vw / 1440, 1px));
	background-size: calc(8 * var(--u)) calc(3 * var(--u)), calc(8 * var(--u)) calc(3 * var(--u)), calc(3 * var(--u)) calc(8 * var(--u)), calc(3 * var(--u)) calc(8 * var(--u));
	border-radius: calc(10 * min(100vw / 1440, 1px));
	border-radius: calc(10 * var(--u));
	display: flex;
	height: calc(96 * min(100vw / 1440, 1px));
	height: calc(96 * var(--u));
	transition: opacity 0.2s ease;
}

.me-menu__card:hover {
	opacity: 0.6;
}

.me-menu__icn {
	flex-shrink: 0;
	height: auto;
	width: calc(86 * min(100vw / 1440, 1px));
	width: calc(86 * var(--u));
}

.me-menu__name {
	color: #fd7676;
	color: var(--c-pink);
	font-family: "Shippori Mincho", serif;
	font-family: var(--font-mincho);
	font-size: calc(16 * min(100vw / 1440, 1px));
	font-size: calc(16 * var(--u));
	font-weight: 800;
	letter-spacing: 0.05em;
	line-height: 1.5;
}

/* 産科バナー（中央寄せ・アイコンは左に絶対配置） */

.me-menu__obst {
	justify-content: center;
	margin: calc(40 * min(100vw / 1440, 1px)) auto 0;
	margin: calc(40 * var(--u)) auto 0;
	position: relative;
	width: calc(500 * min(100vw / 1440, 1px));
	width: calc(500 * var(--u));
}

.me-menu__obst-icn {
	left: calc(16 * min(100vw / 1440, 1px));
	left: calc(16 * var(--u));
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
}

.me-menu__obst-txt {
	text-align: center;
}

.me-menu__obst .me-menu__name {
	font-family: "Shippori Mincho", serif;
	font-family: var(--font-mincho);
	font-size: calc(20 * min(100vw / 1440, 1px));
	font-size: calc(20 * var(--u));
	font-weight: 700;
}

.me-menu__desc {
	color: #fd7676;
	color: var(--c-pink);
	display: block;
	font-family: "Noto Sans JP", sans-serif;
	font-family: var(--font-jp);
	font-size: calc(14 * min(100vw / 1440, 1px));
	font-size: calc(14 * var(--u));
	font-weight: 500;
	letter-spacing: 0.03em;
	line-height: 1.35;
	margin-top: calc(2 * min(100vw / 1440, 1px));
	margin-top: calc(2 * var(--u));
}

/* 婦人科6ボタン（3列グリッド・アイコン左＋テキスト） */

.me-menu__grid {
	grid-gap: calc(16 * min(100vw / 1440, 1px));
	grid-gap: calc(16 * var(--u));
	display: grid;
	gap: calc(16 * min(100vw / 1440, 1px));
	gap: calc(16 * var(--u));
	grid-template-columns: repeat(3, 1fr);
	margin-top: calc(24 * min(100vw / 1440, 1px));
	margin-top: calc(24 * var(--u));
}

.me-menu__btn {
	gap: calc(16 * min(100vw / 1440, 1px));
	gap: calc(16 * var(--u));
	padding-left: calc(16 * min(100vw / 1440, 1px));
	padding-left: calc(16 * var(--u));
	padding-right: calc(16 * min(100vw / 1440, 1px));
	padding-right: calc(16 * var(--u));
}

/* 各種サービス項目（●小見出し＋写真左/本文右＋点線区切り） */

.me-service__item + .me-service__item { /* 丸ぽち点線区切り(3px真円・8pxピッチ)。border:dottedは点が詰まり角ばるためSVGタイル */
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='3'%3E%3Ccircle cx='4' cy='1.5' r='1.5' fill='%23eabfb9'/%3E%3C/svg%3E");
	background-position: top left;
	background-repeat: repeat-x;
	background-size: calc(8 * min(100vw / 1440, 1px)) calc(3 * min(100vw / 1440, 1px));
	background-size: calc(8 * var(--u)) calc(3 * var(--u));
	margin-top: calc(40 * min(100vw / 1440, 1px));
	margin-top: calc(40 * var(--u));
	padding-top: calc(40 * min(100vw / 1440, 1px));
	padding-top: calc(40 * var(--u));
}

.me-service__hd {
	align-items: center;
	color: #7c6660;
	color: var(--c-brown-2);
	display: flex;
	font-family: "Noto Sans JP", sans-serif;
	font-family: var(--font-jp);
	font-size: max(1.5rem, min(calc(16 * min(100vw / 1440, 1px)), 1.6rem));
	font-size: var(--fs-body);
	font-weight: 700;
	gap: calc(12 * min(100vw / 1440, 1px));
	gap: calc(12 * var(--u));
	letter-spacing: 0.03em;
	line-height: 1.6;
}

.me-service__hd::before {
	background: var(--sec-bar);
	border-radius: 50%;
	content: "";
	flex-shrink: 0;
	height: calc(8 * min(100vw / 1440, 1px));
	height: calc(8 * var(--u));
	width: calc(8 * min(100vw / 1440, 1px));
	width: calc(8 * var(--u));
}

.me-service__row {
	align-items: flex-start;
	display: flex;
	gap: calc(40 * min(100vw / 1440, 1px));
	gap: calc(40 * var(--u));
	margin-top: calc(20 * min(100vw / 1440, 1px));
	margin-top: calc(20 * var(--u));
}

.me-service__img {
	flex: 0 0 calc(400 * min(100vw / 1440, 1px));
	flex: 0 0 calc(400 * var(--u));
}

.me-service__img img {
	-o-object-fit: cover;
	aspect-ratio: 400/266;
	border-radius: calc(10 * min(100vw / 1440, 1px));
	border-radius: calc(10 * var(--u));
	display: block;
	object-fit: cover;
	width: 100%;
}

.me-service__body {
	flex: 1 1 0;
	min-width: 0;
}

.me-service__body .me-p + .me-p {
	margin-top: calc(16 * min(100vw / 1440, 1px));
	margin-top: calc(16 * var(--u));
}

/* ================= SP（≤767px） ================= */

/* =========================================================================
   404（Not Found）ページ固有スタイル
   Figma: PC=2610-89264（コンテンツ 2610-97959）/ SP=2610-97960（コンテンツ 2610-98815）
   ヘッダー・フッターは共通パーツ。コンテンツはタイトル+本文+戻るボタンのみ。
   WPのbody_classは error404（page slugが無いため body-page-* は付かない）
   ファイル名: _404.scss は不可（sass-globの@use名前空間が数字始まりになりコンパイルエラー）
   ========================================================================= */

/* ページ地色（Fig: #fffaf6）。フッター直前の空色も他の下層ページと同じ */

body.error404 {
	background: #fffaf6;
}

body.error404 .p-footer {
	--ft-sky: #fff7f1;
}

/* コンテンツ（Fig: 上pad80 / 要素間40 / 下pad120。PC・SP同値） */

.nf-content {
	align-items: center;
	display: flex;
	flex-direction: column;
	padding-bottom: calc(120 * min(100vw / 1440, 1px));
	padding-bottom: calc(120 * var(--u));
	padding-top: calc(80 * min(100vw / 1440, 1px));
	padding-top: calc(80 * var(--u));
}

/* 「404」（Fig: Shippori Mincho 80/120 w800 ls4px #fd7676=--c-pink） */

.nf-content__code {
	color: #fd7676;
	color: var(--c-pink);
	font-family: "Shippori Mincho", serif;
	font-family: var(--font-mincho);
	font-size: calc(80 * min(100vw / 1440, 1px));
	font-size: calc(80 * var(--u));
	font-weight: 800;
	letter-spacing: 0.05em;
	line-height: 1.5;
	text-align: center;
}

/* サブタイトル（Fig: 20/32 w700 ls0.6px。「404」との間隔16） */

.nf-content__title {
	color: #fd7676;
	color: var(--c-pink);
	font-size: calc(20 * min(100vw / 1440, 1px));
	font-size: calc(20 * var(--u));
	font-weight: 700;
	letter-spacing: 0.03em;
	line-height: 1.6;
	margin-top: calc(16 * min(100vw / 1440, 1px));
	margin-top: calc(16 * var(--u));
	text-align: center;
}

/* 本文（Fig: 16/25.6 w700 ls0.48px #7c6660=--c-brown-2はbody既定色） */

.nf-content__text {
	font-size: max(1.5rem, min(calc(16 * min(100vw / 1440, 1px)), 1.6rem));
	font-size: var(--fs-body);
	font-weight: 700;
	letter-spacing: 0.03em;
	line-height: 1.6;
	margin-top: calc(40 * min(100vw / 1440, 1px));
	margin-top: calc(40 * var(--u));
	text-align: center;
}

/* Topページに戻るボタン（Fig: 340x58 pill #ff8f8f=--c-pink-bar / 白文字16 w700 ls0.8px） */

.nf-content__btn {
	margin-top: calc(40 * min(100vw / 1440, 1px));
	margin-top: calc(40 * var(--u));
}

.nf-content__btn a {
	align-items: center;
	background: #ff8f8f;
	background: var(--c-pink-bar);
	border-radius: calc(100 * min(100vw / 1440, 1px));
	border-radius: calc(100 * var(--u));
	color: #ffffff;
	color: var(--c-white);
	display: flex;
	font-size: calc(16 * min(100vw / 1440, 1px));
	font-size: calc(16 * var(--u));
	font-weight: 700;
	justify-content: center;
	letter-spacing: 0.05em;
	line-height: 1.5;
	padding-bottom: calc(17 * min(100vw / 1440, 1px));
	padding-bottom: calc(17 * var(--u));
	padding-top: calc(17 * min(100vw / 1440, 1px));
	padding-top: calc(17 * var(--u));
	position: relative;
	transition: opacity 0.2s ease;
	width: calc(340 * min(100vw / 1440, 1px));
	width: calc(340 * var(--u));
	z-index: 0;
}

/* 左向き矢印（Fig実測: 左端から24・10x10・縦中央） */

.nf-content__btn-icn {
	display: inline-flex;
	height: calc(10 * min(100vw / 1440, 1px));
	height: calc(10 * var(--u));
	left: calc(24 * min(100vw / 1440, 1px));
	left: calc(24 * var(--u));
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: calc(10 * min(100vw / 1440, 1px));
	width: calc(10 * var(--u));
	z-index: 1;
}

.nf-content__btn-icn svg {
	height: 100%;
	width: 100%;
}

/* =========================================================================
   privacy-policy（プライバシーポリシー）ページ固有スタイル
   ・下層共通コンポーネント: me-*（_medical-examination.scss）/ cp-*（_under-common.scss）
   ・このページは me-index（目次）が存在しない1セクション構成のため、
     本文カラムを目次サイドバー回避用の960幅ではなく、
     Fig実測どおりセンター1040幅（PC。パンくず/本文とも x=200 幅1040）に上書きする。
     タイトルカードのみ960幅を保ったまま独立してセンタリング（Fig実測 x=240 幅960）。
   ========================================================================= */

/* ページ地色（Fig: #fffaf6）。フッター直前の空色も他の下層ページと同じ */

body.body-page-privacy-policy {
	background: #fffaf6;
}

body.body-page-privacy-policy .p-footer {
	--ft-sky: #fff7f1;
}

/* ============ 本文レイアウト: 目次なし＝センター1040幅（Fig実測） ============ */

body.body-page-privacy-policy .me-head,
body.body-page-privacy-policy .me-main {
	margin-left: auto;
	margin-right: auto;
	width: calc(1040 * min(100vw / 1440, 1px));
	width: calc(1040 * var(--u));
}

/* タイトルカードは960幅を保ったまま単独センタリング（Fig実測: hero-card x=240,幅960） */

body.body-page-privacy-policy .me-hero__card {
	margin-left: auto;
	margin-right: auto;
	position: relative;
	width: calc(960 * min(100vw / 1440, 1px));
	width: calc(960 * var(--u));
	z-index: 1;
}

/* ヒーロー帯（Fig実測: 全幅 #e6f4f4・高さ400=カード300+上下pad50） */

body.body-page-privacy-policy .me-hero {
	padding-bottom: calc(50 * min(100vw / 1440, 1px));
	padding-bottom: calc(50 * var(--u));
	padding-top: calc(50 * min(100vw / 1440, 1px));
	padding-top: calc(50 * var(--u));
}

body.body-page-privacy-policy .me-hero::before {
	background: #e6f4f4;
	content: "";
	height: 100%;
	left: 50%;
	position: absolute;
	top: 0;
	transform: translateX(-50%);
	width: 100vw;
	z-index: 0;
}

/* ============ 見出し: このページのみ中央揃え（Fig実測: text-align center） ============ */

body.body-page-privacy-policy .me-sec__num {
	text-align: center;
}

/* ============ タイトル SP改行（Fig実測: 「プライバシー」/「ポリシー」の2行） ============ */

.pp-hero__br {
	display: none;
}

/* =========================================================================
   recruit（採用情報）ページ固有スタイル
   ・prefix: rc-
   ・スコープ: body.body-page-recruit
   ・me-index（固定サイドバー目次）を使わない新パターン（reservation/specialized-clinic系）。
     ページ内ジャンプは under-btn-index-sp を rc-jump として実装。
   ・再利用: me-hero系・me-breadcrumb・me-sec__line(line-flower-pink/green.webp)・
     me-note・me-p・me-hl-p・me-index__arw(svgアイコン)
   ・院内ギャラリーはトップページ .gl-band/.gl-track/.gl-set/.gl-cell/.gl-cell--01〜15
     （src/sass/page/_top.scss）をそのまま流用。Fig実測でセル位置がトップと完全一致のため。
   ・デザイン基準: PC=1440 / SP=390。寸法は calc(px * var(--u))。
   ========================================================================= */

body.body-page-recruit {
	background: #fffaf6;
}

body.body-page-recruit .p-footer {
	--ft-sky: #fff7f1;
}

/* PC専用/SP専用の強制改行 */

body.body-page-recruit br.rc-br-sp {
	display: none;
}

/* ============ ページ骨格 ============ */

.rc-page {
	padding-top: calc(48 * min(100vw / 1440, 1px));
	padding-top: calc(48 * var(--u));
}

.rc-canvas {
	position: relative;
}

/* ============ 背景装飾（スタッフイラスト・気球・鳥。rc-canvas基準=タイトルカード開始位置を原点） ============ */

.rc-deco {
	height: auto;
	pointer-events: none;
	position: absolute;
	z-index: 3; /* rc-hero(z2)の背景写真より前面に出す(Fig: カード縁に重なる) */
}

.rc-deco--staff1 {
	left: calc(200 * min(100vw / 1440, 1px));
	left: calc(200 * var(--u));
	top: calc(125 * min(100vw / 1440, 1px));
	top: calc(125 * var(--u));
	width: calc(155 * min(100vw / 1440, 1px));
	width: calc(155 * var(--u));
}

.rc-deco--staff2 {
	left: calc(1131 * min(100vw / 1440, 1px));
	left: calc(1131 * var(--u));
	top: calc(216 * min(100vw / 1440, 1px));
	top: calc(216 * var(--u));
	width: calc(109 * min(100vw / 1440, 1px));
	width: calc(109 * var(--u));
}

.rc-deco--balloon {
	left: calc(1143 * min(100vw / 1440, 1px));
	left: calc(1143 * var(--u));
	top: calc(616 * min(100vw / 1440, 1px));
	top: calc(616 * var(--u));
	width: calc(217 * min(100vw / 1440, 1px));
	width: calc(217 * var(--u));
}

/* bird1のみ .rc-sec--green 内に配置（アンカー基準。トップ値は緑帯上端からの実測オフセット） */

.rc-deco--bird1 {
	left: calc(240 * min(100vw / 1440, 1px));
	left: calc(240 * var(--u));
	top: calc(106 * min(100vw / 1440, 1px));
	top: calc(106 * var(--u));
	width: calc(78 * min(100vw / 1440, 1px));
	width: calc(78 * var(--u));
}

/* ============ ヒーロー（全幅写真背景 + me-hero カード） ============ */

.rc-hero {
	height: calc(400 * min(100vw / 1440, 1px));
	height: calc(400 * var(--u));
	position: relative;
	z-index: 2;
}

.rc-hero::before {
	background: url("../images/under/recruit/hero-bg.webp") center/cover no-repeat;
	content: "";
	height: 100%;
	left: 50%;
	position: absolute;
	top: 0;
	transform: translateX(-50%);
	width: 100vw;
	z-index: 0;
}

.rc-hero .me-hero {
	margin-left: auto;
	margin-right: auto;
	max-width: calc(960 * min(100vw / 1440, 1px));
	max-width: calc(960 * var(--u));
	padding-bottom: calc(50 * min(100vw / 1440, 1px));
	padding-bottom: calc(50 * var(--u));
	padding-top: calc(50 * min(100vw / 1440, 1px));
	padding-top: calc(50 * var(--u));
	position: relative;
	z-index: 1;
}

/* ============ パンくず（ヒーロー直後。Fig実測: 隙間なし） ============ */

.rc-breadcrumb {
	margin-top: calc(32 * min(100vw / 1440, 1px));
	margin-top: calc(32 * var(--u)); /* Fig実測: ヒーロー帯下端→パンくず32 */
	position: relative;
	z-index: 2;
}

/* ============ ページ内ジャンプ（Fig: under-btn-index-sp。reservationの rv-jump と同一コンポーネント） ============ */

.rc-jump {
	display: flex;
	gap: calc(12 * min(100vw / 1440, 1px));
	gap: calc(12 * var(--u));
	margin: calc(96 * min(100vw / 1440, 1px)) auto 0;
	margin: calc(96 * var(--u)) auto 0;
	max-width: calc(1040 * min(100vw / 1440, 1px));
	max-width: calc(1040 * var(--u));
	padding-bottom: calc(120 * min(100vw / 1440, 1px));
	padding-bottom: calc(120 * var(--u));
	position: relative;
	z-index: 2;
}

/* ボタン本体は共通 .me-jump__link。本ページ固有: 2ボタン等幅 */

.rc-jump .me-jump__link {
	flex: 1;
}

/* ============ セクション（花見出し + 花ドット罫線。既存 line-flower-*.webp を流用） ============ */

.rc-sec {
	margin-top: 0; /* Fig実測: 目次pb120で先頭確保、セクション間は緑帯が隣接（ギャップ0） */
	position: relative;
	scroll-margin-top: calc((130 * min(100vw / 1440, 1px)) + 20 * min(100vw / 1440, 1px));
	scroll-margin-top: calc(calc(130 * min(100vw / 1440, 1px)) + 20 * min(100vw / 1440, 1px));
	scroll-margin-top: calc(var(--header-h) + 20 * var(--u));
	z-index: 2;
}

/* 募集職種セクションの全幅背景帯（Fig: Rectangle 1325 #fff7f1。前セクションと120u空け、帯内側pad120） */

.rc-sec--green {
	margin-top: calc(120 * min(100vw / 1440, 1px));
	margin-top: calc(120 * var(--u));
	padding-bottom: calc(120 * min(100vw / 1440, 1px));
	padding-bottom: calc(120 * var(--u));
	padding-top: calc(120 * min(100vw / 1440, 1px));
	padding-top: calc(120 * var(--u));
}

.rc-sec--green::before {
	background: #fff7f1;
	content: "";
	height: 100%;
	left: 50%;
	position: absolute;
	top: 0;
	transform: translateX(-50%);
	width: 100vw;
	z-index: -1;
}

.rc-sec--pink {
	--sec: var(--c-pink);
	--sec-line: url("../images/under/medical-examination/line-flower-pink.webp");
}

.rc-sec--green {
	--sec: #51ad5a;
	--sec-line: url("../images/under/medical-examination/line-flower-green.webp");
}

.rc-sec__inner {
	margin-left: auto;
	margin-right: auto;
	max-width: calc(1040 * min(100vw / 1440, 1px));
	max-width: calc(1040 * var(--u));
}

.rc-h2 {
	align-items: center;
	color: var(--sec);
	display: flex;
	font-family: "Shippori Mincho", serif;
	font-family: var(--font-mincho);
	font-size: calc(32 * min(100vw / 1440, 1px));
	font-size: calc(32 * var(--u));
	font-weight: 800;
	gap: calc(24 * min(100vw / 1440, 1px));
	gap: calc(24 * var(--u));
	justify-content: center;
	letter-spacing: 0.05em;
	line-height: 1.5;
	text-align: center;
}

.rc-h2__flower {
	flex-shrink: 0;
	height: auto;
}

.rc-h2__flower--left {
	width: calc(43 * min(100vw / 1440, 1px));
	width: calc(43 * var(--u));
}

.rc-h2__flower--right {
	width: calc(45 * min(100vw / 1440, 1px));
	width: calc(45 * var(--u));
}

.rc-sec__body {
	padding-left: calc(16 * min(100vw / 1440, 1px));
	padding-left: calc(16 * var(--u));
	padding-right: calc(16 * min(100vw / 1440, 1px));
	padding-right: calc(16 * var(--u));
}

.rc-sec__body > * + * {
	margin-top: calc(80 * min(100vw / 1440, 1px));
	margin-top: calc(80 * var(--u));
}

/* ============ イントロ文（me-note カードの下、段落間） ============ */

.rc-intro > * + * {
	margin-top: calc(16 * min(100vw / 1440, 1px));
	margin-top: calc(16 * var(--u));
}

/* ============ 院内ギャラリー（フルブリード。中身は .gl-band 等を流用） ============ */

.rc-gallery {
	height: calc(411 * min(100vw / 1440, 1px));
	height: calc(411 * var(--u));
	margin-left: calc(50% - 50vw);
	overflow: hidden;
	position: relative;
	width: 100vw;
}

/* ============ 募集職種カード ============ */

.rc-job__list > * + * {
	margin-top: calc(80 * min(100vw / 1440, 1px));
	margin-top: calc(80 * var(--u));
}

/* 求人見出しは共通 me-sub__ttl に統合(article.rc-job に me-sec--green を付与して緑配色)。
   バー色はFig実測の明るい緑系(aboutと同じ)にページスコープで上書き */

body.body-page-recruit .me-sec--green {
	--bar-a: #b4e2b8;
	--bar-b: #8acd90;
}

.rc-job__row {
	align-items: flex-start;
	display: flex;
	gap: calc(40 * min(100vw / 1440, 1px));
	gap: calc(40 * var(--u));
	margin-top: calc(40 * min(100vw / 1440, 1px));
	margin-top: calc(40 * var(--u));
}

.rc-job__photo {
	flex-shrink: 0;
	width: calc(300 * min(100vw / 1440, 1px));
	width: calc(300 * var(--u));
}

.rc-job__photo img {
	-o-object-fit: cover;
	aspect-ratio: 1/1;
	border-radius: 50%;
	display: block;
	object-fit: cover;
	width: 100%;
}

.rc-job__body {
	flex: 1;
	min-width: 0;
}

.rc-job__body > * + * {
	margin-top: calc(16 * min(100vw / 1440, 1px));
	margin-top: calc(16 * var(--u));
}

.rc-job__label {
	color: #fd7676;
	color: var(--c-pink);
	font-family: "Noto Sans JP", sans-serif;
	font-family: var(--font-jp);
	font-size: calc(16 * min(100vw / 1440, 1px));
	font-size: calc(16 * var(--u));
	font-weight: 700;
	letter-spacing: 0.03em;
	line-height: 1.625;
}

/* パンくず幅（rc系はpadding無しキャンバス直下のため明示。PC=1040センター / SP=左右24u） */

body.body-page-recruit .me-breadcrumb {
	margin-left: auto;
	margin-right: auto;
	width: calc(1040 * min(100vw / 1440, 1px));
	width: calc(1040 * var(--u));
}

/* =========================================================================
   reservation（WEB予約・LINE予約について）ページ固有スタイル
   ・共通コンポーネント: me-*（_medical-examination.scss）/ cp-extlink・cp-dots（_under-common.scss）/ ft-btn（_footer.scss）
   ・このページは checkup-pill 等の「固定サイドバー目次(me-index)+960幅本文」構成ではなく、
     サイドバーなしの単一センター1040幅カラム構成（Fig実測: h2s/breadcrumb/jump-nav すべて x=200 幅1040）。
     そのため cp-under（me-main前提の間隔調整）や me-index は使わず、prefix rv- で本ページ専用に組む。
   ・LINE予約セクションのみ背景色 #fff7f1 が全幅（フルブリード）で敷かれる（Fig: Rectangle 1325/1328）。
   ========================================================================= */

/* ページ地色（Fig: #fffaf6）。フッター空色もLINE予約セクション背景と同じ#fff7f1に合わせる */

body.body-page-reservation {
	background: #fffaf6;
}

body.body-page-reservation .p-footer {
	--ft-sky: #fff7f1;
}

/* ============ タイトルカード: 960幅センター（Fig実測: 1440時に左右240マージン。
   sidebar回避用のme-head既定margin-left:max(...,380u)をこのページのみ無効化） ============ */

body.body-page-reservation .me-head {
	margin-left: auto;
	margin-right: auto;
	width: calc(960 * min(100vw / 1440, 1px));
	width: calc(960 * var(--u));
}

/* ヒーロー帯（Fig実測: 全幅 #ffe7e3・高さ400=カード300+上下pad50） */

body.body-page-reservation .me-hero {
	padding-bottom: calc(50 * min(100vw / 1440, 1px));
	padding-bottom: calc(50 * var(--u));
	padding-top: calc(50 * min(100vw / 1440, 1px));
	padding-top: calc(50 * var(--u));
}

body.body-page-reservation .me-hero::before {
	background: #ffe7e3;
	content: "";
	height: 100%;
	left: 50%;
	position: absolute;
	top: 0;
	transform: translateX(-50%);
	width: 100vw;
	z-index: 0;
}

body.body-page-reservation .me-hero__card {
	position: relative;
	z-index: 1;
}

/* ============ 本文カラム共通（1040幅センター。Fig実測: h2s/breadcrumb直下のjump-nav） ============ */

.rv-jump,
.rv-sec {
	margin-left: auto;
	margin-right: auto;
	width: calc(1040 * min(100vw / 1440, 1px));
	width: calc(1040 * var(--u));
}

.rv-sec {
	scroll-margin-top: calc((130 * min(100vw / 1440, 1px)) + 20 * min(100vw / 1440, 1px));
	scroll-margin-top: calc(calc(130 * min(100vw / 1440, 1px)) + 20 * min(100vw / 1440, 1px));
	scroll-margin-top: calc(var(--header-h) + 20 * var(--u));
}

/* ============ ページ内ジャンプメニュー（Fig: under-btn-index-sp。PC=固定幅横並び / SP=2列グリッド） ============ */

.rv-jump {
	display: flex;
	flex-wrap: wrap;
	gap: calc(12 * min(100vw / 1440, 1px));
	gap: calc(12 * var(--u));
	margin-top: calc(96 * min(100vw / 1440, 1px));
	margin-top: calc(96 * var(--u)); /* Fig実測: パンくず→ボタン */
	padding-bottom: calc(120 * min(100vw / 1440, 1px));
	padding-bottom: calc(120 * var(--u)); /* Fig実測: ボタン→最初のセクション */
}

/* ボタン本体は共通 .me-jump__link。本ページ固有: PC幅251固定 */

.rv-jump .me-jump__link {
	width: calc(251 * min(100vw / 1440, 1px));
	width: calc(251 * var(--u));
}

/* ============ セクション見出し（WEB予約/LINE予約。me-sec__numは既定左寄せなのでこのページのみ中央寄せ） ============ */

.rv-sec .me-sec__num {
	text-align: center;
}

/* ============ ボタン内 段落+CTAボタンの間隔（Fig: gap16。me-sec__body既定の40uを上書き） ============ */

.me-sec__body > .ft-btn {
	margin-top: calc(16 * min(100vw / 1440, 1px));
	margin-top: calc(16 * var(--u));
}

/* ページ内CTAボタンの幅（Fig実測300。共通.ft-btn既定幅を上書き。SPは中央寄せ） */

.rv-btn--wide {
	width: calc(300 * min(100vw / 1440, 1px));
	width: calc(300 * var(--u));
}

/* WEBボタンの枠のみFig実測#ff8f8f=--c-pink-bar（共通.ft-btn--webは#fd7676。文字色は--c-pinkのまま） */

.rv-btn--wide.ft-btn--web {
	border-color: #ff8f8f;
	border-color: var(--c-pink-bar);
}

/* ============ ご利用の流れ（番号ステップ + 点線区切り） ============ */

.rv-steps {
	display: flex;
	flex-direction: column;
	gap: calc(32 * min(100vw / 1440, 1px));
	gap: calc(32 * var(--u));
	padding-left: calc(16 * min(100vw / 1440, 1px));
	padding-left: calc(16 * var(--u)); /* Fig実測: PCはliが本文からさらに16内側(li x=232) */
}

/* ステップ内の本文はflexのgap24が余白を担う（me-p既定margin40だとgapと二重計上され各ステップ+40ずれる） */

.rv-steps .me-p {
	margin-top: 0;
}

.rv-steps__item {
	display: flex;
	flex-direction: column;
	gap: calc(24 * min(100vw / 1440, 1px));
	gap: calc(24 * var(--u));
}

.rv-steps__ttl {
	color: #7c6660;
	color: var(--c-brown-2);
	font-family: "Noto Sans JP", sans-serif;
	font-family: var(--font-jp);
	font-size: calc(20 * min(100vw / 1440, 1px));
	font-size: calc(20 * var(--u));
	font-weight: 700;
	letter-spacing: 0.03em;
	line-height: 1.6;
	padding-left: calc(24 * min(100vw / 1440, 1px));
	padding-left: calc(24 * var(--u));
	position: relative;
}

.rv-steps__ttl::before {
	background: var(--sec-bar);
	border-radius: 50%;
	content: "";
	height: calc(8 * min(100vw / 1440, 1px));
	height: calc(8 * var(--u));
	left: 0;
	position: absolute;
	top: calc(12 * min(100vw / 1440, 1px));
	top: calc(12 * var(--u));
	width: calc(8 * min(100vw / 1440, 1px));
	width: calc(8 * var(--u));
}

.rv-steps__divider {
	--cp-dot: var(--sec-bar);
	margin-bottom: calc(-1.5 * min(100vw / 1440, 1px));
	margin-bottom: calc(-1.5 * var(--u)); /* hr高さ3u分を相殺し、li間隔をFig実測どおり 32+32=64 にする */
	margin-top: calc(-1.5 * min(100vw / 1440, 1px));
	margin-top: calc(-1.5 * var(--u));
}

/* ============ 診察券番号カード（Fig実測: pink固定・見出しpadding 12/24・本文padding40・段落間16） ============ */

.rv-sec .me-callout {
	border-color: #ff8f8f;
}

.rv-sec .me-callout__hd {
	background: #ff8f8f;
	padding: calc(12 * min(100vw / 1440, 1px)) calc(24 * min(100vw / 1440, 1px));
	padding: calc(12 * var(--u)) calc(24 * var(--u));
}

.rv-sec .me-callout__bd {
	padding: calc(40 * min(100vw / 1440, 1px));
	padding: calc(40 * var(--u));
}

.rv-sec .me-callout__bd > * + * {
	margin-top: calc(16 * min(100vw / 1440, 1px));
	margin-top: calc(16 * var(--u));
}

/* 先頭のme-pは既定margin40が残りpadding40と二重計上される（Fig: pad40のみ） */

.rv-sec .me-callout__bd > :first-child {
	margin-top: 0;
}

/* ============ LINE予約セクション背景（Fig: Rectangle 1325/1328。#fff7f1の全幅フルブリード） ============ */

.rv-line-bg {
	background: #fff7f1;
	margin-left: calc(50% - 50vw);
	margin-top: calc(94 * min(100vw / 1440, 1px));
	margin-top: calc(94 * var(--u)); /* Fig実測: WEBセクション末尾→帯上端94（SPは120） */
	padding-bottom: calc(120 * min(100vw / 1440, 1px));
	padding-bottom: calc(120 * var(--u)); /* Fig実測: LINEセクション末尾→フッター120（PC/SP同値） */
	padding-top: calc(120 * min(100vw / 1440, 1px));
	padding-top: calc(120 * var(--u)); /* Fig実測: 帯上端→LINE見出し120 */
	width: 100vw;
}

/* パンくず: PCは本文カラム(1040)に揃える(親960コンテナから左右-40uで拡張。SPは親のpaddingに任せる) */

/* =========================================================================
   sitemap（サイトマップ）ページ固有スタイル
   ・ヒーロー/パンくずは me-hero・me-breadcrumb（_medical-examination.scss）を再利用
   ・cp-under系(固定目次サイドバー)は使わず、単純な中央寄せ1カラムの独自レイアウト
   ・本文一覧は新規コンポーネント（sm-*）
   ・デザイン基準: PC=1440 / SP=390。寸法は calc(px * var(--u))。
   ========================================================================= */

/* ページ地色（Fig: #fffaf6） */

body.body-page-sitemap {
	background: #fffaf6;
}

body.body-page-sitemap .p-footer {
	--ft-sky: #fff7f1;
}

/* ============ ヒーロー（水色バンド＋タイトルカード。Fig実測: 帯#e6f4f4 内側パディング50） ============ */

.sm-hero {
	background: #e6f4f4;
	padding-bottom: calc(50 * min(100vw / 1440, 1px));
	padding-bottom: calc(50 * var(--u)); /* PCも .me-page の padding-top:48u で確保済み（margin-topを足すと二重計上になる） */
	padding-top: calc(50 * min(100vw / 1440, 1px));
	padding-top: calc(50 * var(--u));
}

.sm-hero .me-hero {
	margin-left: auto;
	margin-right: auto;
	width: calc(960 * min(100vw / 1440, 1px));
	width: calc(960 * var(--u));
}

/* ============ 本文カラム（中央寄せ。Fig実測: PC x=200 / width=1040） ============ */

.sm-wrap {
	margin-left: auto;
	margin-right: auto;
	width: calc(1040 * min(100vw / 1440, 1px));
	width: calc(1040 * var(--u));
}

/* パンくず: 共通me-breadcrumbのSP margin-topのみ上書き(Fig実測80u) */

/* ============ セクション（見出し + 一覧） ============ */

.sm-sec {
	margin-top: calc(97 * min(100vw / 1440, 1px));
	margin-top: calc(97 * var(--u)); /* Fig実測: パンくず→h2 */
	padding-bottom: calc(120 * min(100vw / 1440, 1px));
	padding-bottom: calc(120 * var(--u)); /* Fig実測: 一覧末尾→フッター */
}

/* h2（センター見出し + 花ドットライン。花画像は me-sec__line と同一素材(line-flower-pink.webp)を再利用） */

.sm-h2 {
	color: #fd7676;
	color: var(--c-pink);
	font-family: "Shippori Mincho", serif;
	font-family: var(--font-mincho);
	font-size: calc(32 * min(100vw / 1440, 1px));
	font-size: calc(32 * var(--u));
	font-weight: 800;
	letter-spacing: 0.05em;
	line-height: 1.5;
	text-align: center;
}

.sm-h2__line {
	background: url("../images/under/medical-examination/line-flower-pink.webp") center/auto 100% no-repeat;
	display: block;
	height: calc(10 * min(100vw / 1440, 1px));
	height: calc(10 * var(--u));
	margin-top: calc(24 * min(100vw / 1440, 1px));
	margin-top: calc(24 * var(--u));
	width: 100%;
}

/* ============ ページ一覧リスト ============ */

.sm-list {
	margin-top: calc(80 * min(100vw / 1440, 1px));
	margin-top: calc(80 * var(--u)); /* Fig実測: h2→一覧(PC) */
	padding-left: calc(16 * min(100vw / 1440, 1px));
	padding-left: calc(16 * var(--u));
	padding-right: calc(16 * min(100vw / 1440, 1px));
	padding-right: calc(16 * var(--u));
}

.sm-list__item { /* 丸ドット下線（Fig線設定: 太さ3・破線0.1・間隔8・線端丸・#ffbbba）。border dottedは角ドットになるため不可 */
	background-image: radial-gradient(circle closest-side, #ffbbba 98%, transparent 100%);
	background-position: left bottom;
	background-repeat: repeat-x;
	background-size: calc(8 * min(100vw / 1440, 1px)) calc(3 * min(100vw / 1440, 1px));
	background-size: calc(8 * var(--u)) calc(3 * var(--u));
	padding-bottom: calc(32 * min(100vw / 1440, 1px));
	padding-bottom: calc(32 * var(--u));
}

.sm-list__item + .sm-list__item {
	margin-top: calc(32 * min(100vw / 1440, 1px));
	margin-top: calc(32 * var(--u));
}

/* 通常リンク行（テキスト＋丸アイコン） */

.sm-link {
	align-items: center;
	color: #7c6660;
	color: var(--c-brown-2);
	display: inline-flex;
	font-family: "Noto Sans JP", sans-serif;
	font-family: var(--font-jp);
	font-size: calc(18 * min(100vw / 1440, 1px));
	font-size: calc(18 * var(--u));
	font-weight: 700;
	gap: calc(12 * min(100vw / 1440, 1px));
	gap: calc(12 * var(--u));
	letter-spacing: 0.05em;
	line-height: 1.5;
	transition: opacity 0.2s ease;
}

.sm-link:focus-visible {
	outline: calc(2 * min(100vw / 1440, 1px)) solid #fd7676;
	outline: calc(2 * var(--u)) solid var(--c-pink);
	outline-offset: calc(2 * min(100vw / 1440, 1px));
	outline-offset: calc(2 * var(--u));
}

.sm-link__icn {
	align-items: center;
	background: #7c6660;
	background: var(--c-brown-2);
	border-radius: 50%;
	display: inline-flex;
	flex-shrink: 0;
	height: calc(24 * min(100vw / 1440, 1px));
	height: calc(24 * var(--u));
	justify-content: center;
	width: calc(24 * min(100vw / 1440, 1px));
	width: calc(24 * var(--u));
}

.sm-link__icn svg {
	height: calc(10 * min(100vw / 1440, 1px));
	height: calc(10 * var(--u));
	width: calc(10 * min(100vw / 1440, 1px));
	width: calc(10 * var(--u));
}

/* SP専用改行（「妊婦健診・出産・」項目のみ。PCは1行、SPはFig通り2行） */

.sm-br-sp {
	display: none;
}

/* 婦人科の診療一覧（見出し＋回り込みインラインリンク群） */

.sm-group__ttl {
	color: #7c6660;
	color: var(--c-brown-2);
	font-family: "Noto Sans JP", sans-serif;
	font-family: var(--font-jp);
	font-size: calc(18 * min(100vw / 1440, 1px));
	font-size: calc(18 * var(--u));
	font-weight: 700;
	letter-spacing: 0.05em;
	line-height: 1.5;
}

.sm-sublist {
	-moz-column-gap: calc(16 * min(100vw / 1440, 1px));
	-moz-column-gap: calc(16 * var(--u));
	align-items: center;
	column-gap: calc(16 * min(100vw / 1440, 1px));
	column-gap: calc(16 * var(--u));
	display: flex;
	flex-wrap: wrap;
	margin-top: calc(16 * min(100vw / 1440, 1px));
	margin-top: calc(16 * var(--u));
	row-gap: calc(12 * min(100vw / 1440, 1px));
	row-gap: calc(12 * var(--u));
}

.sm-sublink {
	align-items: center;
	color: #7c6660;
	color: var(--c-brown-2);
	display: inline-flex;
	font-family: "Noto Sans JP", sans-serif;
	font-family: var(--font-jp);
	font-size: calc(16 * min(100vw / 1440, 1px));
	font-size: calc(16 * var(--u));
	font-weight: 700;
	gap: calc(12 * min(100vw / 1440, 1px));
	gap: calc(12 * var(--u));
	letter-spacing: 0.05em;
	line-height: 1.5;
	transition: opacity 0.2s ease;
}

.sm-sublink:focus-visible {
	outline: calc(2 * min(100vw / 1440, 1px)) solid #fd7676;
	outline: calc(2 * var(--u)) solid var(--c-pink);
	outline-offset: calc(2 * min(100vw / 1440, 1px));
	outline-offset: calc(2 * var(--u));
}

.sm-sublink__icn {
	display: inline-flex;
	flex-shrink: 0;
	height: calc(10 * min(100vw / 1440, 1px));
	height: calc(10 * var(--u));
	width: calc(10 * min(100vw / 1440, 1px));
	width: calc(10 * var(--u));
}

.sm-sublink__icn svg {
	height: 100%;
	width: 100%;
}

.sm-sublist__sep {
	color: #7c6660;
	color: var(--c-brown-2);
	font-family: "Noto Sans JP", sans-serif;
	font-family: var(--font-jp);
	font-size: calc(14 * min(100vw / 1440, 1px));
	font-size: calc(14 * var(--u));
	font-weight: 500;
	letter-spacing: 0.03em;
	line-height: 1.5;
}

/* =========================================================================
   specialized-clinic（大浦院長 特殊外来紹介）ページ固有スタイル
   ・prefix: sc-
   ・スコープ: body.body-page-specialized-clinic
   ・このページは me-page/cp-under の固定サイドバー目次パターンを使わない新パターン
     （目次はPC/SPともボタングリッド、本文セクションは余白ではなく背景色の
     帯替えで区切る）
   ・再利用: me-hero系・me-breadcrumb系・me-sec__line・me-p・me-hl-p・me-hl-g・
     me-figrow(--wide) は既存コンポーネントをそのまま流用
   ・デザイン基準: PC=1440 / SP=390。寸法は calc(px * var(--u))。
   ========================================================================= */

body.body-page-specialized-clinic {
	background: #fffaf6;
}

body.body-page-specialized-clinic .p-footer {
	--ft-sky: #fff7f1;
}

/* PC専用/SP専用の強制改行 */

body.body-page-specialized-clinic br.u-br-sp {
	display: none;
}

/* ============ ページ骨格 ============ */

.sc-page {
	overflow-x: clip; /* 1440超に配置された装飾（crouds2等）で横スクロールが出ないようにクリップ */
	padding-top: calc(48 * min(100vw / 1440, 1px));
	padding-top: calc(48 * var(--u));
}

.sc-canvas {
	position: relative;
}

/* ============ 背景装飾（鳥・雲・気球）
   気球のみ sc-canvas 基準(ヒーロー近傍はコンテンツ高の影響なし)。
   他は各セクション内に配置(コンテンツ高の変動でズレない+z2の緑帯に隠れない)。
   topはFig各セクションフレーム(h2s)上端基準・leftはキャンバス絶対x(セクションは全幅) ============ */

.sc-deco {
	height: auto;
	pointer-events: none;
	position: absolute;
	z-index: 1; /* 帯背景(::before z-1)より前・本文(inner z2)より後ろ */
}

/* 装飾がテキストに被らないよう本文を装飾(z1)より前面に */

.sc-sec .sc-sec__inner {
	position: relative;
	z-index: 2;
}

/* 鳥ペアのみ写真より前面(デザイナー指定) */

.sc-deco--birdspair {
	z-index: 3;
}

.sc-deco--balloon {
	left: calc(1143 * min(100vw / 1440, 1px));
	left: calc(1143 * var(--u));
	top: calc(684 * min(100vw / 1440, 1px));
	top: calc(684 * var(--u));
	width: calc(217 * min(100vw / 1440, 1px));
	width: calc(217 * var(--u));
}

/* sec02(緑帯: 出生前診断) Fig 4041-37684 */

.sc-deco--bird1 {
	left: calc(240 * min(100vw / 1440, 1px));
	left: calc(240 * var(--u));
	top: calc(104 * min(100vw / 1440, 1px));
	top: calc(104 * var(--u));
	width: calc(78 * min(100vw / 1440, 1px));
	width: calc(78 * var(--u));
}

.sc-deco--bird2 {
	left: calc(1177 * min(100vw / 1440, 1px));
	left: calc(1177 * var(--u));
	top: calc(562 * min(100vw / 1440, 1px));
	top: calc(562 * var(--u));
	width: calc(119 * min(100vw / 1440, 1px));
	width: calc(119 * var(--u));
}

/* sec03(ピンク: 不妊症フォローアップ) */

.sc-deco--crouds1 {
	left: calc(42 * min(100vw / 1440, 1px));
	left: calc(42 * var(--u));
	top: calc(32 * min(100vw / 1440, 1px));
	top: calc(32 * var(--u));
	width: calc(259 * min(100vw / 1440, 1px));
	width: calc(259 * var(--u));
}

.sc-deco--birdspair {
	left: calc(1202 * min(100vw / 1440, 1px));
	left: calc(1202 * var(--u));
	top: calc(242 * min(100vw / 1440, 1px));
	top: calc(242 * var(--u)); /* 写真(content)より前面 = z-index 1 */
	width: calc(118 * min(100vw / 1440, 1px));
	width: calc(118 * var(--u));
}

/* sec04(緑帯: 早産ハイリスク) 鳥=左・雲=右端見切れ */

.sc-deco--crouds2 { /* Figフレームx1488だと可視部分ゼロ(素材は2つの雲を259幅に再レイアウト済)。小雲実位置(croud2 x1339)にアンカー=右端から約100px覗く */
	left: calc(1224 * min(100vw / 1440, 1px));
	left: calc(1224 * var(--u));
	top: calc(-56 * min(100vw / 1440, 1px));
	top: calc(-56 * var(--u));
	width: calc(259 * min(100vw / 1440, 1px));
	width: calc(259 * var(--u));
}

.sc-deco--bird5 {
	left: calc(80 * min(100vw / 1440, 1px));
	left: calc(80 * var(--u));
	top: calc(80 * min(100vw / 1440, 1px));
	top: calc(80 * var(--u));
	width: calc(70 * min(100vw / 1440, 1px));
	width: calc(70 * var(--u));
}

/* sec06(緑帯: 胎児診断外来) */

.sc-deco--crouds3 { /* 同上: 小雲実位置(croud2 x1211)にアンカー(Figは小雲全体が見える配置) */
	left: calc(1116 * min(100vw / 1440, 1px));
	left: calc(1116 * var(--u));
	top: calc(-40 * min(100vw / 1440, 1px));
	top: calc(-40 * var(--u));
	width: calc(259 * min(100vw / 1440, 1px));
	width: calc(259 * var(--u));
}

/* ============ タイトルカード（フルブリード写真背景） ============ */

.sc-hero {
	height: calc(400 * min(100vw / 1440, 1px));
	height: calc(400 * var(--u));
	position: relative;
	z-index: 2;
}

.sc-hero::before {
	background: url("../images/under/specialized-clinic/hero-bg.webp") center/cover no-repeat;
	content: "";
	height: 100%;
	left: 50%;
	position: absolute;
	top: 0;
	transform: translateX(-50%);
	width: 100vw;
	z-index: -1;
}

.sc-hero .me-hero {
	margin-left: auto;
	margin-right: auto;
	max-width: calc(960 * min(100vw / 1440, 1px));
	max-width: calc(960 * var(--u));
	padding-bottom: calc(50 * min(100vw / 1440, 1px));
	padding-bottom: calc(50 * var(--u));
	padding-top: calc(50 * min(100vw / 1440, 1px));
	padding-top: calc(50 * var(--u));
}

.sc-hero__doctor {
	height: auto;
	left: calc(1131 * min(100vw / 1440, 1px));
	left: calc(1131 * var(--u));
	position: absolute;
	top: calc(177 * min(100vw / 1440, 1px));
	top: calc(177 * var(--u));
	width: calc(149 * min(100vw / 1440, 1px));
	width: calc(149 * var(--u));
	z-index: 2;
}

/* ============ パンくず（Fig実測: タイトルカード直後、余白0） ============ */

.sc-breadcrumb {
	margin-top: calc(32 * min(100vw / 1440, 1px));
	margin-top: calc(32 * var(--u)); /* Fig実測: ヒーロー帯下端→パンくず32 */
	position: relative;
	z-index: 2;
}

/* ============ ページ内目次（PC/SPともボタングリッド。※新パターン） ============ */

.sc-index {
	margin-left: auto;
	margin-right: auto;
	margin-top: calc(96 * min(100vw / 1440, 1px));
	margin-top: calc(96 * var(--u)); /* Fig実測: パンくず→目次96 */
	max-width: calc(1040 * min(100vw / 1440, 1px));
	max-width: calc(1040 * var(--u));
	padding-bottom: calc(120 * min(100vw / 1440, 1px));
	padding-bottom: calc(120 * var(--u)); /* Fig実測: 目次→最初のセクション120 */
	position: relative;
	z-index: 2;
}

.sc-index__list {
	grid-gap: calc(12 * min(100vw / 1440, 1px));
	grid-gap: calc(12 * var(--u));
	display: grid;
	gap: calc(12 * min(100vw / 1440, 1px));
	gap: calc(12 * var(--u));
	grid-template-columns: repeat(4, 1fr);
}

.sc-index__item {
	margin-top: 0;
}

/* ボタン本体は共通 .me-jump__link / 矢印は共通 .me-index__arw を使用 */

/* ============ セクション本文 ============ */

.sc-main {
	position: relative;
}

.sc-sec {
	padding-bottom: calc(120 * min(100vw / 1440, 1px));
	padding-bottom: calc(120 * var(--u));
	padding-top: calc(120 * min(100vw / 1440, 1px));
	padding-top: calc(120 * var(--u));
	position: relative;
	z-index: 2;
}

.sc-main > .sc-sec:first-child {
	padding-top: 0;
}

.sc-sec--green::before {
	background: #fff7f1;
	content: "";
	height: 100%;
	left: 50%;
	position: absolute;
	top: 0;
	transform: translateX(-50%);
	width: 100vw;
	z-index: -1;
}

.sc-sec--pink {
	--sec: var(--c-pink);
	--sec-line: url("../images/under/medical-examination/line-flower-pink.webp");
}

.sc-sec--green {
	--sec: #51ad5a;
	--sec-line: url("../images/under/medical-examination/line-flower-green.webp");
}

.sc-sec__inner {
	margin-left: auto;
	margin-right: auto;
	max-width: calc(1040 * min(100vw / 1440, 1px));
	max-width: calc(1040 * var(--u));
}

/* 見出し（花アイコン + センター見出し文字。フォント/色は既存 me-sec__num と同一トークン） */

.sc-sec__ttl {
	align-items: center;
	color: var(--sec);
	display: flex;
	font-family: "Shippori Mincho", serif;
	font-family: var(--font-mincho);
	font-size: calc(32 * min(100vw / 1440, 1px));
	font-size: calc(32 * var(--u));
	font-weight: 800;
	gap: calc(24 * min(100vw / 1440, 1px));
	gap: calc(24 * var(--u));
	justify-content: center;
	letter-spacing: 0.05em;
	line-height: 1.5;
	text-align: center;
}

.sc-sec__ttl-flower {
	flex-shrink: 0;
	height: auto;
}

.sc-sec__ttl-flower--left {
	width: calc(43 * min(100vw / 1440, 1px));
	width: calc(43 * var(--u));
}

.sc-sec__ttl-flower--right {
	width: calc(45 * min(100vw / 1440, 1px));
	width: calc(45 * var(--u));
}

.sc-sec__body {
	padding-left: calc(16 * min(100vw / 1440, 1px));
	padding-left: calc(16 * var(--u));
	padding-right: calc(16 * min(100vw / 1440, 1px));
	padding-right: calc(16 * var(--u));
}

.sc-sec__body > * + * {
	margin-top: calc(40 * min(100vw / 1440, 1px));
	margin-top: calc(40 * var(--u));
}

/* 全幅写真（Fig実測 1008x500 / SP 342x228） */

.sc-photo img {
	-o-object-fit: cover;
	aspect-ratio: 1008/500;
	border-radius: calc(10 * min(100vw / 1440, 1px));
	border-radius: calc(10 * var(--u));
	display: block;
	height: auto;
	object-fit: cover;
	width: 100%;
}

/* 早産セクションの写真+本文回り込み(me-figrow--wide)：SPの画像下余白のみ実測に合わせて上書き */

/* パンくず幅（rc系はpadding無しキャンバス直下のため明示。PC=1040センター / SP=左右24u） */

body.body-page-specialized-clinic .me-breadcrumb {
	margin-left: auto;
	margin-right: auto;
	width: calc(1040 * min(100vw / 1440, 1px));
	width: calc(1040 * var(--u));
}

/* =========================================================================
   トップページ(front-page.php)
   hero / ごあいさつ / 特長 / 診療メニュー / 母親学級 / ギャラリー /
   たまひよバナー / トピックス / 診療時間・アクセス
   ========================================================================= */

/* --------- hero + ごあいさつ 共通背景ラッパー(hero-menu-greeting-bg を1枚で敷く) --------- */

.l-topbg {
	background-color: #fdf2ee;
	background-color: var(--c-bg);
	background-image: url("../images/hero-bg-pc.webp");
	background-position: top center;
	background-repeat: no-repeat;
	background-size: 100% 100%; /* hero〜ごあいさつ全体を1枚で覆う(下端は特長の背面へ回る) */
	position: relative;
}

.site-top {
	position: relative;
}

/* --------- ヒーロー --------- */

.p-hero {
	padding-bottom: calc(88 * min(100vw / 1440, 1px));
	padding-bottom: calc(88 * var(--u)); /* PC: 下余白を広めに */
	position: relative;
}

.p-hero__stage {
	height: calc(573 * min(100vw / 1440, 1px));
	height: calc(573 * var(--u));
	margin-left: auto;
	margin-right: auto;
	position: relative;
	width: calc(1084 * min(100vw / 1440, 1px));
	width: calc(1084 * var(--u));
	z-index: 2; /* 写真より前面 */
}

.p-hero__stage > * {
	position: absolute;
}

/* 写真スライドショー(フレーム1440基準・中央寄せ・イラストより背面) */

.p-hero__photos {
	height: calc(601 * min(100vw / 1440, 1px));
	height: calc(601 * var(--u));
	left: 50%; /* 中央寄せは margin で行う。transform を使うと登場アニメーション(ld-rise)の
     transform に上書きされ、中央寄せが外れて右へ 720u ずれてしまうため。 */
	margin-left: calc(-720 * min(100vw / 1440, 1px));
	margin-left: calc(-720 * var(--u));
	pointer-events: none;
	position: absolute;
	top: 0;
	width: calc(1440 * min(100vw / 1440, 1px));
	width: calc(1440 * var(--u));
	z-index: 1;
}

.c-heroslide {
	position: absolute;
}

.c-heroslide img {
	-o-object-fit: contain;
	bottom: 0;
	height: 100%;
	left: 0;
	object-fit: contain;
	opacity: 0;
	position: absolute;
	right: 0;
	top: 0;
	transition: opacity 1s ease, transform 1s cubic-bezier(0.22, 0.61, 0.36, 1);
	width: 100%;
}

.c-heroslide img.is-active {
	opacity: 1;
}

/* 入場の起点(下)。JSが transition 無効の状態で一瞬付けてから外すことで、
   「下から上へ」だけを入場側に適用する。退場側は transform を動かさず
   その場でフェードアウトさせたいので、基底には移動量を持たせない。 */

.c-heroslide img.is-enter {
	transform: translateY(calc(24 * min(100vw / 1440, 1px)));
	transform: translateY(calc(24 * var(--u)));
	transition: none;
}

.c-heroslide--a {
	height: calc(237 * min(100vw / 1440, 1px));
	height: calc(237 * var(--u));
	left: calc(213 * min(100vw / 1440, 1px));
	left: calc(213 * var(--u));
	top: calc(10 * min(100vw / 1440, 1px));
	top: calc(10 * var(--u));
	width: calc(240 * min(100vw / 1440, 1px));
	width: calc(240 * var(--u));
}

.c-heroslide--b {
	height: calc(235 * min(100vw / 1440, 1px));
	height: calc(235 * var(--u));
	left: calc(44 * min(100vw / 1440, 1px));
	left: calc(44 * var(--u)); /* Figma値64uから-20u左へ(見た目調整) */
	top: calc(366 * min(100vw / 1440, 1px));
	top: calc(366 * var(--u));
	width: calc(240 * min(100vw / 1440, 1px));
	width: calc(240 * var(--u));
}

.c-heroslide--c {
	height: calc(277 * min(100vw / 1440, 1px));
	height: calc(277 * var(--u));
	left: calc(1110 * min(100vw / 1440, 1px));
	left: calc(1110 * var(--u)); /* Figma値1160uから-50u左へ(見た目調整) */
	top: calc(140 * min(100vw / 1440, 1px));
	top: calc(140 * var(--u));
	width: calc(280 * min(100vw / 1440, 1px));
	width: calc(280 * var(--u));
}

/* イラスト(アート出し分け: PC/SP別webp)。PCはステージ中央(=画面中央)に配置 */

.p-hero__illust {
	left: calc(192 * min(100vw / 1440, 1px));
	left: calc(192 * var(--u));
	top: 0;
	width: calc(700 * min(100vw / 1440, 1px));
	width: calc(700 * var(--u));
	z-index: 1;
}

/* 鳥(装飾) */

.p-hero__bird--left {
	left: 0;
	top: calc(200 * min(100vw / 1440, 1px));
	top: calc(200 * var(--u));
	width: calc(70 * min(100vw / 1440, 1px));
	width: calc(70 * var(--u));
	z-index: 2;
}

.p-hero__bird--right {
	left: calc(966 * min(100vw / 1440, 1px));
	left: calc(966 * var(--u));
	top: calc(442 * min(100vw / 1440, 1px));
	top: calc(442 * var(--u)); /* Figma値392uから+50u下へ(見た目調整) */
	width: calc(118 * min(100vw / 1440, 1px));
	width: calc(118 * var(--u));
	z-index: 2;
}

/* コピー(画像タイトル + 点線 + サブタイトル)
   Figma: hero では Frame 400 (400x102) を section-hero 原点から (624, 64) に配置。
   ローディング中は _loading.scss 側の指定で画面に固定表示され、終了時に本来のこの位置へ戻る。 */

.p-hero__copy {
	--hc-w: calc(400 * var(--u)); /* 基準幅。子要素は全てこれに対する比率で配置する */
	height: calc(0.255 * (400 * min(100vw / 1440, 1px)));
	height: calc(0.255 * calc(400 * min(100vw / 1440, 1px)));
	height: calc(0.255 * var(--hc-w));
	left: calc(624 * min(100vw / 1440, 1px));
	left: calc(624 * var(--u));
	top: calc(64 * min(100vw / 1440, 1px));
	top: calc(64 * var(--u));
	width: calc(400 * min(100vw / 1440, 1px));
	width: var(--hc-w);
	z-index: 3; /* イラストより前面 */
}

/* タイトル: 素材の実寸(634.8幅)を --hc-w に収める。座標も同じ比率で追従 */

.hc-title {
	height: calc(0.1116887209 * var(--hc-w));
	left: 0;
	position: absolute;
	top: 0;
	width: var(--hc-w);
}

.hc-ch {
	height: auto;
	left: calc(var(--x) / 634.8 * var(--hc-w));
	position: absolute;
	top: calc(var(--y) / 634.8 * var(--hc-w));
	width: calc(var(--w) / 634.8 * var(--hc-w));
}

/* SVG は実寸に対し上下左右 約2.2px のパディングを含むため、その分を引いた座標 */

.hc-ch--1 {
	--w: 75;
	--x: -2.2;
	--y: 1.8;
}

.hc-ch--2 {
	--w: 57;
	--x: 76.6;
	--y: 11.8;
}

.hc-ch--3 {
	--w: 53;
	--x: 141.4;
	--y: 14.8;
}

.hc-ch--4 {
	--w: 59;
	--x: 206.4;
	--y: 2.8;
}

.hc-ch--5 {
	--w: 74;
	--x: 271.9;
	--y: -2.2;
}

.hc-ch--6 {
	--w: 60;
	--x: 353.2;
	--y: 10.8;
}

.hc-ch--7 {
	--w: 51;
	--x: 416.8;
	--y: 4.8;
}

.hc-ch--8 {
	--w: 38;
	--x: 476;
	--y: 7.8;
}

.hc-ch--9 {
	--w: 54;
	--x: 522.2;
	--y: 7.8;
}

.hc-ch--10 {
	--w: 53;
	--x: 583.8;
	--y: 14.8;
}

/* 点線(Figma Line 405: #fd7676 / round)
   ドット径・ピッチを絶対値ではなくブロック幅 --hc-w に比例させる。
   絶対値だと FLIP の 1.587 倍切り替えの瞬間にドットだけ大きさと本数が飛ぶため。
   比率は hero(--hc-w = 400u)で 径4px / ピッチ8px 相当。径だけ Figma の 3px から微増。 */

.hc-dots {
	--hc-dot: calc(0.0075 * var(--hc-w)); /* 3 / 400 */
	--hc-pitch: calc(0.0275 * var(--hc-w)); /* 11 / 400 */
	background-image: radial-gradient(circle closest-side, #fd7676 98%, transparent 100%);
	background-image: radial-gradient(circle closest-side, var(--c-pink) 98%, transparent 100%);
	background-position: left center;
	background-repeat: repeat-x;
	background-size: calc(0.0275 * var(--hc-w)) calc(0.0075 * var(--hc-w));
	background-size: var(--hc-pitch) var(--hc-dot);
	height: calc(0.0075 * var(--hc-w));
	height: var(--hc-dot);
	left: 0;
	position: absolute;
	top: calc(0.1525 * var(--hc-w) - (0.0075 * var(--hc-w)) / 2);
	top: calc(0.1525 * var(--hc-w) - calc(0.0075 * var(--hc-w)) / 2);
	top: calc(0.1525 * var(--hc-w) - var(--hc-dot) / 2); /* ドット中心を Figma の y=61 に合わせる */
	width: var(--hc-w);
}

/* サブタイトル(Frame 400 内 (10,77) / 380x25 = 基準幅の 2.5% / 19.25% / 95%) */

.hc-sub {
	height: auto;
	left: calc(0.025 * var(--hc-w));
	position: absolute;
	top: calc(0.1925 * var(--hc-w));
	width: calc(0.95 * var(--hc-w));
}

/* バッジ */

/* Figmaではステージ(section-hero)自体がフレーム中央より18px左にあり、その中で left:304 に
   置くことでバッジがフレーム中央に来る。実装はステージを margin-inline:auto で画面中央に
   置いているためその18uぶん右へずれる。バッジ側で相殺する(304 - 18 = 286)。 */

.p-hero__badges {
	display: flex;
	gap: calc(16 * min(100vw / 1440, 1px));
	gap: calc(16 * var(--u));
	left: calc(286 * min(100vw / 1440, 1px));
	left: calc(286 * var(--u));
	top: calc(413 * min(100vw / 1440, 1px));
	top: calc(413 * var(--u));
	width: calc(512 * min(100vw / 1440, 1px));
	width: calc(512 * var(--u));
	z-index: 3; /* イラストより前面 */
}

.c-badge {
	align-items: center;
	background: url("../images/hero-badge.webp") center/cover no-repeat;
	display: grid;
	height: calc(160 * min(100vw / 1440, 1px));
	height: calc(160 * var(--u));
	justify-items: center;
	place-items: center;
	position: relative;
	width: calc(160 * min(100vw / 1440, 1px));
	width: calc(160 * var(--u));
}

.c-badge__crown {
	left: 50%;
	position: absolute;
	top: calc(24 * min(100vw / 1440, 1px));
	top: calc(24 * var(--u));
	transform: translateX(-50%);
	width: calc(50 * min(100vw / 1440, 1px));
	width: calc(50 * var(--u));
}

.c-badge__text {
	color: #ffffff;
	color: var(--c-white);
	font-family: "Shippori Mincho", serif;
	font-family: var(--font-mincho);
	font-size: calc(18 * min(100vw / 1440, 1px));
	font-size: calc(18 * var(--u));
	font-weight: 800;
	letter-spacing: 0.03em;
	line-height: 1.4;
	margin-top: calc(20 * min(100vw / 1440, 1px));
	margin-top: calc(20 * var(--u));
	text-align: center;
}

/* --------- ごあいさつ --------- */

.p-greeting {
	overflow: hidden;
	padding-bottom: calc(120 * min(100vw / 1440, 1px));
	padding-bottom: calc(120 * var(--u)); /* PC: 上下余白広め(SPは40pxで上書き)。背景は .l-topbg 共通 */
	padding-top: calc(120 * min(100vw / 1440, 1px));
	padding-top: calc(120 * var(--u));
	position: relative;
}

.p-greeting__inner {
	margin-left: auto;
	margin-right: auto;
	min-height: calc(857 * min(100vw / 1440, 1px));
	min-height: calc(857 * var(--u));
	position: relative;
	width: calc(1234 * min(100vw / 1440, 1px));
	width: calc(1234 * var(--u));
}

.p-greeting__body {
	left: 50%;
	position: absolute;
	text-align: center;
	top: 0;
	transform: translateX(-50%);
	width: max(400 * min(100vw / 1440, 1px), 340px);
	width: max(400 * var(--u), 340px); /* PC: 下限340pxで読みやすさ確保 */
	z-index: 2;
}

.p-greeting__text {
	margin-top: calc(48 * min(100vw / 1440, 1px));
	margin-top: calc(48 * var(--u));
	text-align: center;
}

.p-greeting__text p {
	color: #fd7676;
	color: var(--c-pink);
	font-family: "Noto Sans JP", sans-serif;
	font-family: var(--font-jp);
	font-size: max(1.5rem, min(calc(16 * min(100vw / 1440, 1px)), 1.6rem));
	font-size: var(--fs-body); /* 本文16px基準・下限15px */
	font-weight: 500;
	letter-spacing: 0.03em;
	line-height: 1.625;
}

.p-greeting__text p + p {
	margin-top: calc(24 * min(100vw / 1440, 1px));
	margin-top: calc(24 * var(--u));
}

.p-greeting__body .c-btn-primary {
	margin-top: calc(56 * min(100vw / 1440, 1px));
	margin-top: calc(56 * var(--u));
}

.p-greeting__inner > img {
	height: auto;
	position: absolute;
	z-index: 1;
}

.g-facility {
	left: calc(16 * min(100vw / 1440, 1px));
	left: calc(16 * var(--u));
	top: calc(14 * min(100vw / 1440, 1px));
	top: calc(14 * var(--u));
	width: calc(265 * min(100vw / 1440, 1px));
	width: calc(265 * var(--u));
}

.g-baby {
	left: calc(247 * min(100vw / 1440, 1px));
	left: calc(247 * var(--u));
	top: calc(174 * min(100vw / 1440, 1px));
	top: calc(174 * var(--u));
	width: calc(77 * min(100vw / 1440, 1px));
	width: calc(77 * var(--u));
}

.g-babies {
	left: calc(69 * min(100vw / 1440, 1px));
	left: calc(69 * var(--u));
	top: calc(517 * min(100vw / 1440, 1px));
	top: calc(517 * var(--u));
	width: calc(199 * min(100vw / 1440, 1px));
	width: calc(199 * var(--u));
}

.g-group {
	left: calc(855 * min(100vw / 1440, 1px));
	left: calc(855 * var(--u));
	top: calc(317 * min(100vw / 1440, 1px));
	top: calc(317 * var(--u));
	width: calc(363 * min(100vw / 1440, 1px));
	width: calc(363 * var(--u));
}

.g-balloon {
	left: calc(868 * min(100vw / 1440, 1px));
	left: calc(868 * var(--u));
	top: calc(84 * min(100vw / 1440, 1px));
	top: calc(84 * var(--u));
	width: calc(82 * min(100vw / 1440, 1px));
	width: calc(82 * var(--u));
}

.g-clouds {
	left: calc(918 * min(100vw / 1440, 1px));
	left: calc(918 * var(--u));
	top: 0;
	width: calc(173 * min(100vw / 1440, 1px));
	width: calc(173 * var(--u));
}

.g-mombaby {
	left: calc(860 * min(100vw / 1440, 1px));
	left: calc(860 * var(--u));
	top: calc(637 * min(100vw / 1440, 1px));
	top: calc(637 * var(--u));
	width: calc(166 * min(100vw / 1440, 1px));
	width: calc(166 * var(--u));
}

/* --------- 特長(feature) --------- */

.p-feature { /* 上部の凸アーチ(Figma忠実): 幅2278/高さ600の横長楕円(rx1139/ry300)を中央でクリップした形。
     layer1=楕円(頂点=上端 y0, 中心 y=ry) / layer2=中心線から下をベタ塗り。union(add)で「アーチ天面＋本体」。 */
	--arch-rx: calc(1139 * var(--u));
	--arch-ry: calc(300 * var(--u));
	-webkit-mask-image: radial-gradient(calc(1139 * min(100vw / 1440, 1px)) calc(300 * min(100vw / 1440, 1px)) at 50% calc(300 * min(100vw / 1440, 1px)), #000 99.5%, transparent 100%), linear-gradient(#000, #000);
	-webkit-mask-image: radial-gradient(var(--arch-rx) var(--arch-ry) at 50% var(--arch-ry), #000 99.5%, transparent 100%), linear-gradient(#000, #000);
	-webkit-mask-repeat: no-repeat, no-repeat;
	-webkit-mask-position: 0 0, 0 calc(300 * min(100vw / 1440, 1px));
	-webkit-mask-position: 0 0, 0 var(--arch-ry);
	-webkit-mask-size: 100% 100%, 100% 100%;
	background-color: #fffaf6;
	background-color: var(--c-feature-bg);
	margin-top: calc(-134 * min(100vw / 1440, 1px));
	margin-top: calc(-134 * var(--u)); /* 上の .l-topbg に食い込ませ、円弧上端を greeting-mombaby の裾に少し重ねる(PC) */
	mask-image: radial-gradient(calc(1139 * min(100vw / 1440, 1px)) calc(300 * min(100vw / 1440, 1px)) at 50% calc(300 * min(100vw / 1440, 1px)), #000 99.5%, transparent 100%), linear-gradient(#000, #000);
	mask-image: radial-gradient(var(--arch-rx) var(--arch-ry) at 50% var(--arch-ry), #000 99.5%, transparent 100%), linear-gradient(#000, #000);
	mask-position: 0 0, 0 calc(300 * min(100vw / 1440, 1px));
	mask-position: 0 0, 0 var(--arch-ry);
	mask-repeat: no-repeat, no-repeat;
	mask-size: 100% 100%, 100% 100%;
	overflow: hidden;
	padding-bottom: 0; /* 下端は雲バンド(.ft-bg2)が担う */
	padding-top: calc(120 * min(100vw / 1440, 1px));
	padding-top: calc(120 * var(--u)); /* アーチ天面ぶんの余白 */
	position: relative;
	z-index: 1;
}

.p-feature__inner {
	margin-left: auto;
	margin-right: auto;
	min-height: calc(1620 * min(100vw / 1440, 1px));
	min-height: calc(1620 * var(--u));
	position: relative;
	width: calc(1123 * min(100vw / 1440, 1px));
	width: calc(1123 * var(--u));
}

.p-feature__inner > img.ft-deco {
	height: auto;
	position: absolute;
	z-index: 1;
}

/* 下端の雲バンド(feature-woman背面)。全幅・下端揃え。overflow:hiddenで両端はクリップ */

.ft-bg2 {
	bottom: 0;
	left: 0;
	pointer-events: none; /* 全幅セクション基準で画面横幅いっぱい */
	position: absolute;
	width: 100%;
	z-index: 0;
}

.ft-bg2 img {
	display: block;
	height: auto;
	width: 100%;
}

.ft-staffs {
	left: 0;
	top: 0;
	width: calc(288 * min(100vw / 1440, 1px));
	width: calc(288 * var(--u));
}

.ft-crouds {
	left: calc(864 * min(100vw / 1440, 1px));
	left: calc(864 * var(--u));
	top: calc(181 * min(100vw / 1440, 1px));
	top: calc(181 * var(--u));
	width: calc(259 * min(100vw / 1440, 1px));
	width: calc(259 * var(--u));
}

.ft-woman {
	left: calc(944 * min(100vw / 1440, 1px));
	left: calc(944 * var(--u));
	top: calc(1462 * min(100vw / 1440, 1px));
	top: calc(1462 * var(--u));
	width: calc(144 * min(100vw / 1440, 1px));
	width: calc(144 * var(--u));
}

/* 見出し(茶) */

.p-feature__head {
	left: 0;
	position: absolute;
	right: 0;
	top: calc(180 * min(100vw / 1440, 1px));
	top: calc(180 * var(--u));
	z-index: 2;
}

/* h2上の小鳥(装飾)。見出しと一緒に動くよう__head内に配置し、上に絶対配置
   ※フッターの .ft-bird と同名のため .p-feature でスコープ(描画は元CSSの計算結果と同一) */

.p-feature .ft-bird {
	height: auto;
	left: 50%;
	pointer-events: none;
	position: absolute;
	top: calc(-113 * min(100vw / 1440, 1px));
	top: calc(-113 * var(--u)); /* PC: bird下端をh2字面の約24px上に(フォント依存・実機確認) */
	transform: translateX(-50%);
	width: calc(93 * min(100vw / 1440, 1px));
	width: calc(93 * var(--u));
	z-index: 3;
}

.p-feature .c-heading__ja,
.p-feature .c-heading__en {
	color: #7c6660;
	color: var(--c-brown-2);
}

/* feature 01 */

.p-feature01 {
	height: calc(430 * min(100vw / 1440, 1px));
	height: calc(430 * var(--u));
	left: calc(8 * min(100vw / 1440, 1px));
	left: calc(8 * var(--u));
	position: absolute;
	top: calc(338 * min(100vw / 1440, 1px));
	top: calc(338 * var(--u));
	width: calc(1080 * min(100vw / 1440, 1px));
	width: calc(1080 * var(--u));
	z-index: 2;
}

.f01-media {
	aspect-ratio: 520/430;
	left: 0;
	position: absolute;
	top: 0;
	width: calc(520 * min(100vw / 1440, 1px));
	width: calc(520 * var(--u));
}

.f01-media > * {
	position: absolute;
}

.f01-blob {
	left: 0;
	top: 0;
	width: 90.4%;
	z-index: 1;
}

.f01-doctor {
	left: 7.7%;
	top: 7.4%;
	width: 67.3%;
	z-index: 2;
}

.f01-nurse {
	left: 48.1%;
	top: 31.6%;
	width: 51.9%;
	z-index: 3;
}

.f01-num {
	-webkit-text-stroke: calc(12 * min(100vw / 1440, 1px)) #fffaf6;
	-webkit-text-stroke: calc(12 * var(--u)) #fffaf6; /* 外側6pxの縁取り(strokeは中心線基準のため2倍指定) */
	color: #ff9a9a;
	font-family: "Open Sans", sans-serif;
	font-family: var(--font-num);
	font-size: calc(64 * min(100vw / 1440, 1px));
	font-size: calc(64 * var(--u));
	font-weight: 600;
	left: 60.2%;
	letter-spacing: 0.05em;
	line-height: 1;
	paint-order: stroke fill;
	top: 4.7%;
	z-index: 4;
}

.f01-text {
	left: calc(600 * min(100vw / 1440, 1px));
	left: calc(600 * var(--u));
	position: absolute;
	top: calc(67 * min(100vw / 1440, 1px));
	top: calc(67 * var(--u));
	width: calc(480 * min(100vw / 1440, 1px));
	width: calc(480 * var(--u));
	z-index: 2;
}

.f01-title {
	color: #fd7676;
	color: var(--c-pink);
	font-family: "Shippori Mincho", serif;
	font-family: var(--font-mincho);
	font-size: calc(28 * min(100vw / 1440, 1px));
	font-size: calc(28 * var(--u));
	font-weight: 800;
	letter-spacing: 0.05em;
	line-height: 1.5;
}

.f01-line {
	background-image: radial-gradient(circle closest-side, #fd7676 98%, transparent 100%);
	background-image: radial-gradient(circle closest-side, var(--c-pink) 98%, transparent 100%);
	background-position: left center;
	background-repeat: repeat-x;
	background-size: calc(8 * min(100vw / 1440, 1px)) calc(3 * min(100vw / 1440, 1px));
	background-size: calc(8 * var(--u)) calc(3 * var(--u));
	height: calc(3 * min(100vw / 1440, 1px));
	height: calc(3 * var(--u));
	margin-bottom: calc(22 * min(100vw / 1440, 1px));
	margin-bottom: calc(22 * var(--u));
	margin-top: calc(22 * min(100vw / 1440, 1px));
	margin-top: calc(22 * var(--u));
}

.f01-body p {
	color: #7c6660;
	color: var(--c-brown-2);
	font-family: "Noto Sans JP", sans-serif;
	font-family: var(--font-jp);
	font-size: max(1.5rem, min(calc(16 * min(100vw / 1440, 1px)), 1.6rem));
	font-size: var(--fs-body);
	font-weight: 400;
	letter-spacing: 0.03em;
	line-height: 1.625;
}

.f01-body p + p {
	margin-top: calc(20 * min(100vw / 1440, 1px));
	margin-top: calc(20 * var(--u));
}

/* 02/03/04 カード */

.ft-card {
	position: absolute;
	text-align: center;
	width: calc(288 * min(100vw / 1440, 1px));
	width: calc(288 * var(--u));
	z-index: 2;
}

.ft-card--2 {
	left: calc(48 * min(100vw / 1440, 1px));
	left: calc(48 * var(--u));
	top: calc(812 * min(100vw / 1440, 1px));
	top: calc(812 * var(--u));
}

.ft-card--3 {
	left: calc(424 * min(100vw / 1440, 1px));
	left: calc(424 * var(--u));
	top: calc(800 * min(100vw / 1440, 1px));
	top: calc(800 * var(--u));
}

.ft-card--4 {
	left: calc(800 * min(100vw / 1440, 1px));
	left: calc(800 * var(--u));
	top: calc(812 * min(100vw / 1440, 1px));
	top: calc(812 * var(--u));
}

.ft-card__media {
	height: calc(250 * min(100vw / 1440, 1px));
	height: calc(250 * var(--u));
	margin: calc(12 * min(100vw / 1440, 1px)) auto 0;
	margin: calc(12 * var(--u)) auto 0;
	position: relative;
	width: calc(250 * min(100vw / 1440, 1px));
	width: calc(250 * var(--u));
}

.ft-card__media > img {
	height: auto;
	position: absolute;
}

.ft-card__halo {
	left: calc(-12 * min(100vw / 1440, 1px));
	left: calc(-12 * var(--u));
	top: calc(-12 * min(100vw / 1440, 1px));
	top: calc(-12 * var(--u));
	width: calc(250 * min(100vw / 1440, 1px));
	width: calc(250 * var(--u));
	z-index: 1;
}

.ft-card__photo {
	left: 0;
	top: 0;
	width: calc(250 * min(100vw / 1440, 1px));
	width: calc(250 * var(--u));
	z-index: 2;
}

.ft-card__decos {
	z-index: 3;
}

.ft-card--2 .ft-card__decos {
	left: calc(171 * min(100vw / 1440, 1px));
	left: calc(171 * var(--u));
	top: 0;
	width: calc(79 * min(100vw / 1440, 1px));
	width: calc(79 * var(--u));
}

.ft-card--3 .ft-card__decos {
	left: calc(-12 * min(100vw / 1440, 1px));
	left: calc(-12 * var(--u));
	top: calc(176 * min(100vw / 1440, 1px));
	top: calc(176 * var(--u));
	width: calc(132 * min(100vw / 1440, 1px));
	width: calc(132 * var(--u));
}

.ft-card--4 .ft-card__decos {
	left: calc(152 * min(100vw / 1440, 1px));
	left: calc(152 * var(--u));
	top: calc(151 * min(100vw / 1440, 1px));
	top: calc(151 * var(--u));
	width: calc(110 * min(100vw / 1440, 1px));
	width: calc(110 * var(--u));
}

.ft-card__num {
	-webkit-text-stroke: calc(12 * min(100vw / 1440, 1px)) #fffaf6;
	-webkit-text-stroke: calc(12 * var(--u)) #fffaf6; /* 外側6pxの縁取り(strokeは中心線基準のため2倍指定) */
	color: #ff9a9a;
	font-family: "Open Sans", sans-serif;
	font-family: var(--font-num);
	font-size: calc(48 * min(100vw / 1440, 1px));
	font-size: calc(48 * var(--u));
	font-weight: 600;
	left: calc(-6 * min(100vw / 1440, 1px));
	left: calc(-6 * var(--u));
	letter-spacing: 0.05em;
	line-height: 1;
	paint-order: stroke fill;
	position: absolute;
	top: calc(-18 * min(100vw / 1440, 1px));
	top: calc(-18 * var(--u));
	z-index: 4;
}

.ft-card__title {
	color: #fd7676;
	color: var(--c-pink);
	font-family: "Shippori Mincho", serif;
	font-family: var(--font-mincho);
	font-size: calc(24 * min(100vw / 1440, 1px));
	font-size: calc(24 * var(--u));
	font-weight: 800;
	letter-spacing: 0.05em;
	line-height: 1.5;
	margin-top: calc(28 * min(100vw / 1440, 1px));
	margin-top: calc(28 * var(--u));
}

.ft-card__body {
	color: #7c6660;
	color: var(--c-brown-2);
	font-family: "Noto Sans JP", sans-serif;
	font-family: var(--font-jp);
	font-size: max(1.5rem, min(calc(16 * min(100vw / 1440, 1px)), 1.6rem));
	font-size: var(--fs-body);
	font-weight: 400;
	letter-spacing: 0.03em;
	line-height: 1.625;
	margin-top: calc(16 * min(100vw / 1440, 1px));
	margin-top: calc(16 * var(--u));
}

/* ボタン */

.p-feature__btn {
	display: flex;
	justify-content: center;
	left: 0;
	position: absolute;
	right: 0;
	top: calc(1402 * min(100vw / 1440, 1px));
	top: calc(1402 * var(--u));
	z-index: 2;
}

/* ===== 狭PC/タブレット(768–1350px): 本文はremクランプ(下限15px)で縮まないため、絶対配置の固定topだと
   折返し増で下の要素に被る。クランプが効き始める≒1350px以下を flex フロー化し高さ自動＝下へ押し出す。
   1440の承認済み絶対配置(>1350px)は無変更。 ===== */

/* --------- 診療メニュー(menu) --------- */

.p-menu {
	background-color: #fdf7f2; /* クリーム下地(menu-bg1) */
	background-image: url("../images/menu-bg-blue-pc.webp"); /* 上部の青い水彩(menu-bg2) */
	background-position: top center;
	background-repeat: no-repeat;
	background-size: 100% calc(790 * min(100vw / 1440, 1px));
	background-size: 100% calc(790 * var(--u));
	padding-bottom: calc(80 * min(100vw / 1440, 1px));
	padding-bottom: calc(80 * var(--u)); /* カード下→for-mothers上端80uの余白(coupleとカードの距離) */
	padding-top: calc(80 * min(100vw / 1440, 1px));
	padding-top: calc(80 * var(--u));
	position: relative;
	z-index: 1;
}

.p-menu__inner {
	margin-left: auto;
	margin-right: auto;
	padding-top: calc(40 * min(100vw / 1440, 1px));
	padding-top: calc(40 * var(--u));
	position: relative;
	width: calc(1040 * min(100vw / 1440, 1px));
	width: calc(1040 * var(--u));
}

/* 装飾(inner基準・design座標) */

.p-menu__inner > img.m-deco {
	height: auto;
	position: absolute;
	z-index: 1;
}

.m-bird1 {
	left: 0;
	top: 0;
	width: calc(119 * min(100vw / 1440, 1px));
	width: calc(119 * var(--u));
}

.m-bird2 {
	left: calc(786 * min(100vw / 1440, 1px));
	left: calc(786 * var(--u));
	top: calc(223 * min(100vw / 1440, 1px));
	top: calc(223 * var(--u));
	width: calc(78 * min(100vw / 1440, 1px));
	width: calc(78 * var(--u));
}

.m-balloons {
	left: calc(951 * min(100vw / 1440, 1px));
	left: calc(951 * var(--u));
	top: calc(80 * min(100vw / 1440, 1px));
	top: calc(80 * var(--u));
	width: calc(73 * min(100vw / 1440, 1px));
	width: calc(73 * var(--u));
}

.m-mombaby {
	left: calc(72 * min(100vw / 1440, 1px));
	left: calc(72 * var(--u));
	top: calc(219 * min(100vw / 1440, 1px));
	top: calc(219 * var(--u));
	width: calc(180 * min(100vw / 1440, 1px));
	width: calc(180 * var(--u));
}

.m-woman {
	left: calc(818 * min(100vw / 1440, 1px));
	left: calc(818 * var(--u));
	top: calc(539 * min(100vw / 1440, 1px));
	top: calc(539 * var(--u));
	width: calc(182 * min(100vw / 1440, 1px));
	width: calc(182 * var(--u));
}

/* mom-baby / 考える女性 はバナー等より前面に(m-decoのz-index:1より高い詳細度で上書き) */

.p-menu__inner > img.m-mombaby,
.p-menu__inner > img.m-woman {
	z-index: 4;
}

/* 見出し 診療案内 */

.p-menu__head {
	position: relative;
	text-align: center;
	z-index: 2;
}

.m-h2 {
	align-items: center;
	display: inline-flex;
	gap: calc(50 * min(100vw / 1440, 1px));
	gap: calc(50 * var(--u));
	justify-content: center;
}

.m-h2__flower {
	height: auto;
	width: calc(72 * min(100vw / 1440, 1px));
	width: calc(72 * var(--u));
}

.m-h2__tx {
	align-items: center;
	display: flex;
	flex-direction: column;
}

.m-h2__ja {
	color: #7c6660;
	color: var(--c-brown-2);
	font-family: "Shippori Mincho", serif;
	font-family: var(--font-mincho);
	font-size: calc(40 * min(100vw / 1440, 1px));
	font-size: calc(40 * var(--u));
	font-weight: 800;
	letter-spacing: 0.05em;
	line-height: 1.4;
}

.m-h2__en {
	color: #7c6660;
	color: var(--c-brown-2);
	font-family: "Lora", serif;
	font-family: var(--font-en);
	font-size: calc(18 * min(100vw / 1440, 1px));
	font-size: calc(18 * var(--u));
	font-weight: 600;
	letter-spacing: 0.05em;
	line-height: 1.4;
	margin-top: calc(2 * min(100vw / 1440, 1px));
	margin-top: calc(2 * var(--u));
}

.p-menu__lead {
	color: #7c6660;
	color: var(--c-brown-2);
	font-family: "Noto Sans JP", sans-serif;
	font-family: var(--font-jp);
	font-size: max(1.5rem, min(calc(16 * min(100vw / 1440, 1px)), 1.6rem));
	font-size: var(--fs-body);
	font-weight: 400;
	letter-spacing: 0.03em;
	line-height: 1.625;
	margin-top: calc(48 * min(100vw / 1440, 1px));
	margin-top: calc(48 * var(--u));
	text-align: center;
}

.p-menu__lead .is-hl {
	color: #fd7676;
	color: var(--c-pink);
	font-weight: 500;
}

/* 産科バナー(下層リンク) */

.m-obst {
	background: url("../images/menu-obstetrics-bg-pc.webp") center/cover no-repeat;
	border: calc(2 * min(100vw / 1440, 1px)) dashed #ff8f8f;
	border: calc(2 * var(--u)) dashed var(--c-pink-bar);
	border-radius: calc(10 * min(100vw / 1440, 1px));
	border-radius: calc(10 * var(--u));
	display: block;
	height: calc(200 * min(100vw / 1440, 1px));
	height: calc(200 * var(--u));
	margin: calc(56 * min(100vw / 1440, 1px)) auto 0;
	margin: calc(56 * var(--u)) auto 0;
	position: relative;
	transition: opacity 0.25s ease;
	width: calc(720 * min(100vw / 1440, 1px));
	width: calc(720 * var(--u));
	z-index: 2;
}

.m-obst:hover {
	opacity: 0.6;
}

.m-koala {
	display: none; /* PCは母子イラスト(m-mombaby)使用。SPのみコアラ */
}

.m-obst__body {
	left: calc(132 * min(100vw / 1440, 1px));
	left: calc(132 * var(--u));
	position: absolute;
	text-align: center;
	top: calc(40 * min(100vw / 1440, 1px));
	top: calc(40 * var(--u));
	width: calc(453 * min(100vw / 1440, 1px));
	width: calc(453 * var(--u));
}

.m-obst__ja {
	color: #fd7676;
	color: var(--c-pink);
	display: block;
	font-family: "Shippori Mincho", serif;
	font-family: var(--font-mincho);
	font-size: calc(28 * min(100vw / 1440, 1px));
	font-size: calc(28 * var(--u));
	font-weight: 800;
	letter-spacing: 0.05em;
	line-height: 1.5;
}

.m-obst__en {
	color: #fd7676;
	color: var(--c-pink);
	display: block;
	font-family: "Lora", serif;
	font-family: var(--font-en);
	font-size: calc(18 * min(100vw / 1440, 1px));
	font-size: calc(18 * var(--u));
	font-weight: 600;
	letter-spacing: 0.05em;
	line-height: 1.4;
}

.m-tags {
	display: flex;
	gap: calc(4 * min(100vw / 1440, 1px));
	gap: calc(4 * var(--u));
	justify-content: center;
	margin-top: calc(16 * min(100vw / 1440, 1px));
	margin-top: calc(16 * var(--u));
}

.m-tag {
	align-items: center;
	border-radius: calc(2 * min(100vw / 1440, 1px));
	border-radius: calc(2 * var(--u));
	color: #ffffff;
	color: var(--c-white);
	display: grid;
	font-family: "Noto Sans JP", sans-serif;
	font-family: var(--font-jp);
	font-size: calc(16 * min(100vw / 1440, 1px));
	font-size: calc(16 * var(--u));
	font-weight: 700;
	height: calc(30 * min(100vw / 1440, 1px));
	height: calc(30 * var(--u));
	justify-items: center;
	letter-spacing: 0.02em;
	padding-left: calc(12 * min(100vw / 1440, 1px));
	padding-left: calc(12 * var(--u));
	padding-right: calc(12 * min(100vw / 1440, 1px));
	padding-right: calc(12 * var(--u));
	place-items: center;
	white-space: nowrap;
}

.m-tag--1 {
	background: #ff8f8f;
}

.m-tag--2 {
	background: #ff99aa;
}

.m-tag--3 {
	background: #ffa68f;
}

.m-tag--4 {
	background: #ff7ea7;
}

/* 婦人科の診療内容一覧 */

.m-gyn {
	margin-top: calc(120 * min(100vw / 1440, 1px));
	margin-top: calc(120 * var(--u));
	position: relative;
	z-index: 2;
}

.m-gyn__h3 {
	text-align: center;
}

.m-gyn__ja {
	color: #7c6660;
	color: var(--c-brown-2);
	display: block;
	font-family: "Shippori Mincho", serif;
	font-family: var(--font-mincho);
	font-size: calc(28 * min(100vw / 1440, 1px));
	font-size: calc(28 * var(--u));
	font-weight: 800;
	letter-spacing: 0.05em;
	line-height: 1.5;
}

.m-gyn__en {
	color: #7c6660;
	color: var(--c-brown-2);
	display: block;
	font-family: "Lora", serif;
	font-family: var(--font-en);
	font-size: calc(18 * min(100vw / 1440, 1px));
	font-size: calc(18 * var(--u));
	font-weight: 600;
	letter-spacing: 0.05em;
	line-height: 1.4;
	margin-top: calc(2 * min(100vw / 1440, 1px));
	margin-top: calc(2 * var(--u));
}

.m-gyn__grid {
	grid-gap: calc(16 * min(100vw / 1440, 1px));
	grid-gap: calc(16 * var(--u));
	display: grid;
	gap: calc(16 * min(100vw / 1440, 1px));
	gap: calc(16 * var(--u));
	grid-template-columns: repeat(3, calc(336 * min(100vw / 1440, 1px)));
	grid-template-columns: repeat(3, calc(336 * var(--u)));
	justify-content: center;
	margin-top: calc(32 * min(100vw / 1440, 1px));
	margin-top: calc(32 * var(--u));
}

.m-card {
	background-position: center;
	background-size: cover;
	border-radius: calc(10 * min(100vw / 1440, 1px));
	border-radius: calc(10 * var(--u));
	height: calc(200 * min(100vw / 1440, 1px));
	height: calc(200 * var(--u));
	overflow: hidden;
	position: relative;
	transition: opacity 0.25s ease;
}

/* マルぽち点線枠(3px真円・8pxピッチ)。border:dashedは角ばるためme-menu__cardと同じSVG真円タイル4辺方式。
   写真がm-card--Nのbackground-imageに入るため、枠は::beforeに分離 */

.m-card::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='3'%3E%3Ccircle cx='4' cy='1.5' r='1.5' fill='%23ff8f8f'/%3E%3C/svg%3E"), url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='3'%3E%3Ccircle cx='4' cy='1.5' r='1.5' fill='%23ff8f8f'/%3E%3C/svg%3E"), url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='3' height='8'%3E%3Ccircle cx='1.5' cy='4' r='1.5' fill='%23ff8f8f'/%3E%3C/svg%3E"), url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='3' height='8'%3E%3Ccircle cx='1.5' cy='4' r='1.5' fill='%23ff8f8f'/%3E%3C/svg%3E");
	background-position: left top, left bottom, left top, right top;
	background-repeat: repeat-x, repeat-x, repeat-y, repeat-y;
	background-size: calc(8 * min(100vw / 1440, 1px)) calc(3 * min(100vw / 1440, 1px)), calc(8 * min(100vw / 1440, 1px)) calc(3 * min(100vw / 1440, 1px)), calc(3 * min(100vw / 1440, 1px)) calc(8 * min(100vw / 1440, 1px)), calc(3 * min(100vw / 1440, 1px)) calc(8 * min(100vw / 1440, 1px));
	background-size: calc(8 * var(--u)) calc(3 * var(--u)), calc(8 * var(--u)) calc(3 * var(--u)), calc(3 * var(--u)) calc(8 * var(--u)), calc(3 * var(--u)) calc(8 * var(--u));
	bottom: 0;
	content: "";
	left: 0;
	pointer-events: none;
	position: absolute;
	right: 0;
	top: 0;
}

.m-card:hover {
	opacity: 0.6;
}

.m-card__lnk {
	-webkit-text-decoration: none;
	align-items: center;
	color: inherit;
	display: flex;
	flex-direction: column;
	height: 100%;
	padding-top: calc(30 * min(100vw / 1440, 1px));
	padding-top: calc(30 * var(--u));
	text-decoration: none;
}

.m-card--1 {
	background-image: url("../images/menu-card1.webp");
}

.m-card--2 {
	background-image: url("../images/menu-card2.webp");
}

.m-card--3 {
	background-image: url("../images/menu-card3.webp");
}

.m-card--4 {
	background-image: url("../images/menu-card4.webp");
}

.m-card--5 {
	background-image: url("../images/menu-card5.webp");
}

.m-card--6 {
	background-image: url("../images/menu-card6.webp");
}

.m-card__icn {
	-o-object-fit: contain;
	height: calc(74 * min(100vw / 1440, 1px));
	height: calc(74 * var(--u));
	object-fit: contain;
	width: calc(100 * min(100vw / 1440, 1px));
	width: calc(100 * var(--u));
}

.m-card__ttl {
	color: #ffffff;
	color: var(--c-white);
	font-family: "Shippori Mincho", serif;
	font-family: var(--font-mincho);
	font-size: calc(20 * min(100vw / 1440, 1px));
	font-size: calc(20 * var(--u));
	font-weight: 800;
	letter-spacing: 0.05em;
	line-height: 1.4;
	margin-top: calc(10 * min(100vw / 1440, 1px));
	margin-top: calc(10 * var(--u));
	text-align: center;
}

/* --------- 母親学級 + ギャラリー 共通背景ラッパー(for-mothers-gallary-bg を1枚で共有) --------- */

/* salmon水彩＋凹アーチは .l-fmbg::before に1つだけ置き、for-mothers〜gallery を1枚で覆う。
   地色(#fdf7f2 クリーム)はアーチ透過部(上端中央より上)から覗く=menuと同色でシームレス */

.l-fmbg {
	background-color: #fdf7f2;
	isolation: isolate;
	position: relative;
}

/* salmonはgallery下端の少し上(gallary-couple底面の39px上=Rectangle1211上端)で終わり、
   その下は #fff8f2(banner〜info共通のクリーム地)。coupleの下半身が#fff8f2に乗る */

.l-fmbg::after {
	background-color: #fff8f2;
	bottom: 0;
	content: "";
	height: calc(39 * min(100vw / 1440, 1px));
	height: calc(39 * var(--u));
	left: 0;
	pointer-events: none;
	position: absolute;
	right: 0;
	z-index: 0;
}

.l-fmbg::before { /* 上部の凹アーチ: salmon上端が中央で下がる。上部中央の楕円を透過にする1層マスク */
	--arch-rx: calc(1139 * var(--u));
	--arch-ry: calc(140 * var(--u));
	-webkit-mask-image: radial-gradient(calc(1139 * min(100vw / 1440, 1px)) calc(140 * min(100vw / 1440, 1px)) at 50% 0, transparent 99.5%, #000 100%);
	-webkit-mask-image: radial-gradient(var(--arch-rx) var(--arch-ry) at 50% 0, transparent 99.5%, #000 100%);
	-webkit-mask-repeat: no-repeat;
	-webkit-mask-position: 0 0;
	-webkit-mask-size: 100% 100%;
	background-color: #fdeee7;
	background-image: url("../images/for-mothers-bg.webp");
	background-position: top center;
	background-repeat: no-repeat;
	background-size: 100% 100%; /* for-mothers〜gallery を1枚で伸ばす */
	bottom: calc(39 * min(100vw / 1440, 1px));
	bottom: calc(39 * var(--u));
	content: "";
	left: 0;
	mask-image: radial-gradient(calc(1139 * min(100vw / 1440, 1px)) calc(140 * min(100vw / 1440, 1px)) at 50% 0, transparent 99.5%, #000 100%);
	mask-image: radial-gradient(var(--arch-rx) var(--arch-ry) at 50% 0, transparent 99.5%, #000 100%);
	mask-position: 0 0;
	mask-repeat: no-repeat;
	mask-size: 100% 100%;
	pointer-events: none;
	position: absolute;
	right: 0;
	top: 0;
	z-index: 0;
}

/* --------- 母親学級のご案内(for-mothers) --------- */

/* 背景は .l-fmbg::before が担う。本体は透過で前面にコンテンツのみ */

.p-fm {
	margin-top: 0;
	padding-bottom: calc(60 * min(100vw / 1440, 1px));
	padding-bottom: calc(60 * var(--u));
	position: relative;
	z-index: 1;
}

.p-fm__inner {
	margin-left: auto;
	margin-right: auto;
	padding-top: calc(222 * min(100vw / 1440, 1px));
	padding-top: calc(222 * var(--u));
	position: relative;
	width: calc(1216 * min(100vw / 1440, 1px));
	width: calc(1216 * var(--u));
	z-index: 1;
}

/* couple: for-mothers上端。背景(::before)の前面。上半身はクリーム帯・下半身はsalmonに重なる */

.fm-couple {
	height: auto;
	left: 50%;
	position: absolute;
	top: 0;
	transform: translateX(-50%);
	width: calc(305 * min(100vw / 1440, 1px));
	width: calc(305 * var(--u));
	z-index: 3;
}

/* 装飾(section-for-mothers座標) */

.p-fm__inner > img.fm-deco {
	height: auto;
	position: absolute;
}

.fm-crouds {
	left: 0;
	top: calc(320 * min(100vw / 1440, 1px));
	top: calc(320 * var(--u));
	width: calc(259 * min(100vw / 1440, 1px));
	width: calc(259 * var(--u));
	z-index: 1;
}

.fm-stationery {
	left: calc(1009 * min(100vw / 1440, 1px));
	left: calc(1009 * var(--u));
	top: calc(296 * min(100vw / 1440, 1px));
	top: calc(296 * var(--u));
	width: calc(135 * min(100vw / 1440, 1px));
	width: calc(135 * var(--u));
	z-index: 2;
}

.fm-device {
	left: calc(1096 * min(100vw / 1440, 1px));
	left: calc(1096 * var(--u));
	top: calc(780 * min(100vw / 1440, 1px));
	top: calc(780 * var(--u));
	width: calc(120 * min(100vw / 1440, 1px));
	width: calc(120 * var(--u));
	z-index: 2;
}

/* 見出し(母親学級 = 白バッジ + のご案内) */

.p-fm__head {
	position: relative;
	text-align: center;
	z-index: 2;
}

.fm-h2 {
	align-items: center;
	display: inline-flex;
	justify-content: center;
}

.fm-h2__ttl {
	align-items: center;
	display: inline-flex;
}

.fm-bubble {
	align-items: center;
	background: #ffffff;
	background: var(--c-white);
	border-radius: 46% 54% 50% 50%/54% 50% 50% 46%;
	display: inline-grid;
	font-family: "Shippori Mincho", serif;
	font-family: var(--font-mincho);
	font-size: calc(40 * min(100vw / 1440, 1px));
	font-size: calc(40 * var(--u));
	font-weight: 800;
	height: calc(64 * min(100vw / 1440, 1px));
	height: calc(64 * var(--u));
	justify-items: center;
	line-height: 1;
	place-items: center;
	position: relative;
	width: calc(64 * min(100vw / 1440, 1px));
	width: calc(64 * var(--u));
}

/* 吹き出しの尾(親バッジの上・下端が円に重なる) */

.fm-fukidashi {
	height: auto;
	left: 50%;
	position: absolute;
	top: calc(-16 * min(100vw / 1440, 1px));
	top: calc(-16 * var(--u));
	transform: translateX(-50%);
	width: calc(26 * min(100vw / 1440, 1px));
	width: calc(26 * var(--u));
	z-index: 1;
}

.fm-bubble + .fm-bubble {
	margin-left: calc(-6 * min(100vw / 1440, 1px));
	margin-left: calc(-6 * var(--u));
}

.fm-bubble--1 {
	color: #fd7676;
}

.fm-bubble--2 {
	color: #ff99aa;
}

.fm-bubble--3 {
	color: #ffa68f;
}

.fm-bubble--4 {
	color: #ff7ea7;
}

.fm-h2__rest {
	color: #fd7676;
	font-family: "Shippori Mincho", serif;
	font-family: var(--font-mincho);
	font-size: calc(40 * min(100vw / 1440, 1px));
	font-size: calc(40 * var(--u));
	font-weight: 800;
	letter-spacing: 0.05em;
	margin-left: calc(8 * min(100vw / 1440, 1px));
	margin-left: calc(8 * var(--u));
}

.fm-h2__en {
	color: #fd7676;
	display: block;
	font-family: "Lora", serif;
	font-family: var(--font-en);
	font-size: calc(18 * min(100vw / 1440, 1px));
	font-size: calc(18 * var(--u));
	font-weight: 600;
	letter-spacing: 0.05em;
	margin-top: calc(6 * min(100vw / 1440, 1px));
	margin-top: calc(6 * var(--u));
}

/* 内容: 円形写真 + テキスト/ボタン */

.p-fm__content {
	align-items: center;
	display: flex;
	gap: calc(80 * min(100vw / 1440, 1px));
	gap: calc(80 * var(--u));
	justify-content: center;
	margin: calc(48 * min(100vw / 1440, 1px)) auto 0;
	margin: calc(48 * var(--u)) auto 0;
	position: relative;
	width: calc(960 * min(100vw / 1440, 1px));
	width: calc(960 * var(--u));
	z-index: 2;
}

.fm-online {
	flex-shrink: 0;
	height: auto;
	width: calc(490 * min(100vw / 1440, 1px));
	width: calc(490 * var(--u));
}

.fm-txt {
	width: calc(390 * min(100vw / 1440, 1px));
	width: calc(390 * var(--u));
}

.fm-txt p {
	color: #fe6565;
	font-family: "Noto Sans JP", sans-serif;
	font-family: var(--font-jp);
	font-size: max(1.5rem, min(calc(16 * min(100vw / 1440, 1px)), 1.6rem));
	font-size: var(--fs-body);
	font-weight: 400;
	letter-spacing: 0.03em;
	line-height: 1.625;
}

.fm-txt p + p {
	margin-top: calc(24 * min(100vw / 1440, 1px));
	margin-top: calc(24 * var(--u));
}

.fm-btn {
	margin-top: calc(40 * min(100vw / 1440, 1px));
	margin-top: calc(40 * var(--u));
}

/* --------- 院内ギャラリー(gallery) --------- */

/* 背景は .l-fmbg::before(for-mothersと共有の1枚)が透過で覗く。全幅・overflow hiddenの帯 */

.p-gallery {
	height: calc(570 * min(100vw / 1440, 1px));
	height: calc(570 * var(--u));
	overflow: hidden;
	position: relative;
	z-index: 1;
}

/* 写真バンド(全幅・横スクロールマーキー) */

.gl-band {
	height: calc(411 * min(100vw / 1440, 1px));
	height: calc(411 * var(--u));
	left: 0;
	overflow: hidden;
	position: absolute;
	top: 0;
	width: 100%;
	z-index: 1;
}

.gl-track {
	animation: gl-marquee 60s linear infinite; /* ←方向へゆっくり */
	display: flex;
	height: 100%;
	left: 0;
	position: absolute;
	top: 0;
	width: -moz-max-content;
	width: max-content;
	will-change: transform;
}

.gl-set {
	flex: 0 0 auto;
	height: 100%;
	position: relative;
	width: calc(3910 * min(100vw / 1440, 1px));
	width: calc(3910 * var(--u));
}

.gl-cell {
	border-radius: calc(10 * min(100vw / 1440, 1px));
	border-radius: calc(10 * var(--u));
	overflow: hidden;
	position: absolute;
}

.gl-cell > img {
	-o-object-fit: cover;
	height: 100%;
	object-fit: cover;
	width: 100%;
}

/* 各セル位置(normalized x = Figmaのx + 995 / y はslider frame内) */

.gl-cell--01 {
	height: calc(200 * min(100vw / 1440, 1px));
	height: calc(200 * var(--u));
	left: calc(0 * min(100vw / 1440, 1px));
	left: calc(0 * var(--u));
	top: calc(140 * min(100vw / 1440, 1px));
	top: calc(140 * var(--u));
	width: calc(300 * min(100vw / 1440, 1px));
	width: calc(300 * var(--u));
}

.gl-cell--02 {
	height: calc(150 * min(100vw / 1440, 1px));
	height: calc(150 * var(--u));
	left: calc(580 * min(100vw / 1440, 1px));
	left: calc(580 * var(--u));
	top: calc(230 * min(100vw / 1440, 1px));
	top: calc(230 * var(--u));
	width: calc(150 * min(100vw / 1440, 1px));
	width: calc(150 * var(--u));
}

.gl-cell--03 {
	height: calc(150 * min(100vw / 1440, 1px));
	height: calc(150 * var(--u));
	left: calc(1930 * min(100vw / 1440, 1px));
	left: calc(1930 * var(--u));
	top: calc(55 * min(100vw / 1440, 1px));
	top: calc(55 * var(--u));
	width: calc(150 * min(100vw / 1440, 1px));
	width: calc(150 * var(--u));
}

.gl-cell--04 {
	height: calc(150 * min(100vw / 1440, 1px));
	height: calc(150 * var(--u));
	left: calc(3520 * min(100vw / 1440, 1px));
	left: calc(3520 * var(--u));
	top: calc(125 * min(100vw / 1440, 1px));
	top: calc(125 * var(--u));
	width: calc(150 * min(100vw / 1440, 1px));
	width: calc(150 * var(--u));
}

.gl-cell--05 {
	height: calc(200 * min(100vw / 1440, 1px));
	height: calc(200 * var(--u));
	left: calc(1110 * min(100vw / 1440, 1px));
	left: calc(1110 * var(--u));
	top: calc(180 * min(100vw / 1440, 1px));
	top: calc(180 * var(--u));
	width: calc(200 * min(100vw / 1440, 1px));
	width: calc(200 * var(--u));
}

.gl-cell--06 {
	height: calc(200 * min(100vw / 1440, 1px));
	height: calc(200 * var(--u));
	left: calc(2120 * min(100vw / 1440, 1px));
	left: calc(2120 * var(--u));
	top: calc(175 * min(100vw / 1440, 1px));
	top: calc(175 * var(--u));
	width: calc(200 * min(100vw / 1440, 1px));
	width: calc(200 * var(--u));
}

.gl-cell--07 {
	height: calc(200 * min(100vw / 1440, 1px));
	height: calc(200 * var(--u));
	left: calc(3710 * min(100vw / 1440, 1px));
	left: calc(3710 * var(--u));
	top: calc(210 * min(100vw / 1440, 1px));
	top: calc(210 * var(--u));
	width: calc(200 * min(100vw / 1440, 1px));
	width: calc(200 * var(--u));
}

.gl-cell--08 {
	height: calc(200 * min(100vw / 1440, 1px));
	height: calc(200 * var(--u));
	left: calc(2700 * min(100vw / 1440, 1px));
	left: calc(2700 * var(--u));
	top: calc(210 * min(100vw / 1440, 1px));
	top: calc(210 * var(--u));
	width: calc(200 * min(100vw / 1440, 1px));
	width: calc(200 * var(--u));
}

.gl-cell--09 {
	height: calc(200 * min(100vw / 1440, 1px));
	height: calc(200 * var(--u));
	left: calc(770 * min(100vw / 1440, 1px));
	left: calc(770 * var(--u));
	top: calc(80 * min(100vw / 1440, 1px));
	top: calc(80 * var(--u));
	width: calc(300 * min(100vw / 1440, 1px));
	width: calc(300 * var(--u));
}

.gl-cell--10 {
	height: calc(200 * min(100vw / 1440, 1px));
	height: calc(200 * var(--u));
	left: calc(2360 * min(100vw / 1440, 1px));
	left: calc(2360 * var(--u));
	top: calc(100 * min(100vw / 1440, 1px));
	top: calc(100 * var(--u));
	width: calc(300 * min(100vw / 1440, 1px));
	width: calc(300 * var(--u));
}

.gl-cell--11 {
	height: calc(200 * min(100vw / 1440, 1px));
	height: calc(200 * var(--u));
	left: calc(3180 * min(100vw / 1440, 1px));
	left: calc(3180 * var(--u));
	top: calc(200 * min(100vw / 1440, 1px));
	top: calc(200 * var(--u));
	width: calc(300 * min(100vw / 1440, 1px));
	width: calc(300 * var(--u));
}

.gl-cell--12 {
	height: calc(200 * min(100vw / 1440, 1px));
	height: calc(200 * var(--u));
	left: calc(1350 * min(100vw / 1440, 1px));
	left: calc(1350 * var(--u));
	top: calc(50 * min(100vw / 1440, 1px));
	top: calc(50 * var(--u));
	width: calc(300 * min(100vw / 1440, 1px));
	width: calc(300 * var(--u));
}

.gl-cell--13 {
	height: calc(300 * min(100vw / 1440, 1px));
	height: calc(300 * var(--u));
	left: calc(340 * min(100vw / 1440, 1px));
	left: calc(340 * var(--u));
	top: calc(0 * min(100vw / 1440, 1px));
	top: calc(0 * var(--u));
	width: calc(200 * min(100vw / 1440, 1px));
	width: calc(200 * var(--u));
}

.gl-cell--14 {
	height: calc(300 * min(100vw / 1440, 1px));
	height: calc(300 * var(--u));
	left: calc(2940 * min(100vw / 1440, 1px));
	left: calc(2940 * var(--u));
	top: calc(50 * min(100vw / 1440, 1px));
	top: calc(50 * var(--u));
	width: calc(200 * min(100vw / 1440, 1px));
	width: calc(200 * var(--u));
}

.gl-cell--15 {
	height: calc(300 * min(100vw / 1440, 1px));
	height: calc(300 * var(--u));
	left: calc(1690 * min(100vw / 1440, 1px));
	left: calc(1690 * var(--u));
	top: calc(110 * min(100vw / 1440, 1px));
	top: calc(110 * var(--u));
	width: calc(200 * min(100vw / 1440, 1px));
	width: calc(200 * var(--u));
}

/* カップル(バンド前面。frame中心=viewport中心基準に配置) */

.gl-couple {
	height: auto;
	left: 50%;
	margin-left: calc(360 * min(100vw / 1440, 1px));
	margin-left: calc(360 * var(--u)); /* frame-x1080 = 中心720 + 360 */
	position: absolute;
	top: calc(332 * min(100vw / 1440, 1px));
	top: calc(332 * var(--u));
	width: calc(200 * min(100vw / 1440, 1px));
	width: calc(200 * var(--u));
	z-index: 2;
}

/* --------- たまひよバナー(banner-tamahiyo) --------- */

/* gallery(salmon)の後、#fff8f2クリーム地(Rectangle 1211: banner〜info共通)。720幅・中央 */

.p-tama {
	background-color: #fff8f2;
	padding-bottom: calc(80 * min(100vw / 1440, 1px));
	padding-bottom: calc(80 * var(--u)); /* gallery下端→banner41 / banner→topics80 */
	padding-top: calc(41 * min(100vw / 1440, 1px));
	padding-top: calc(41 * var(--u));
}

.p-tama__inner {
	margin-left: auto;
	margin-right: auto;
	max-width: calc(720 * min(100vw / 1440, 1px));
	max-width: calc(720 * var(--u));
	width: 100%;
}

.tama-banner {
	display: block;
	transition: opacity 0.2s ease;
}

.tama-banner:hover {
	opacity: 0.85;
}

.tama-banner img {
	height: auto;
	width: 100%;
}

/* --------- トピックス(お知らせ / コラム) --------- */

/* #fff8f2地(banner〜info共通)に白角丸カード。左上にピン。2カラム＋縦ドット罫線 */

.p-topics {
	background-color: #fff8f2;
	padding-bottom: calc(80 * min(100vw / 1440, 1px));
	padding-bottom: calc(80 * var(--u));
}

.tp-inner {
	margin-left: auto;
	margin-right: auto;
	max-width: calc(1040 * min(100vw / 1440, 1px));
	max-width: calc(1040 * var(--u));
	padding-top: calc(32 * min(100vw / 1440, 1px));
	padding-top: calc(32 * var(--u)); /* ピンのはみ出し分 */
	width: 100%;
}

.tp-card {
	background: #ffffff;
	background: var(--c-white);
	border-radius: calc(10 * min(100vw / 1440, 1px));
	border-radius: calc(10 * var(--u));
	padding: calc(56 * min(100vw / 1440, 1px));
	padding: calc(56 * var(--u));
	position: relative;
}

.tp-pin {
	height: auto;
	left: 0;
	position: absolute;
	top: calc(-32 * min(100vw / 1440, 1px));
	top: calc(-32 * var(--u));
	width: calc(50 * min(100vw / 1440, 1px));
	width: calc(50 * var(--u));
}

.tp-cols {
	align-items: stretch;
	display: flex;
}

.tp-col {
	display: flex;
	flex: 1;
	flex-direction: column;
	min-width: 0;
	position: relative;
}

/* 縦ドット罫線(#ffbbba・3px・8px間隔) */

.tp-div {
	background-image: radial-gradient(circle, #ffbbba 40%, transparent 45%);
	background-position: center;
	background-repeat: repeat-y;
	background-size: calc(3 * min(100vw / 1440, 1px)) calc(11 * min(100vw / 1440, 1px));
	background-size: calc(3 * var(--u)) calc(11 * var(--u));
	flex: 0 0 auto;
	margin-left: calc(48 * min(100vw / 1440, 1px));
	margin-left: calc(48 * var(--u));
	margin-right: calc(48 * min(100vw / 1440, 1px));
	margin-right: calc(48 * var(--u));
	width: calc(3 * min(100vw / 1440, 1px));
	width: calc(3 * var(--u));
}

/* 見出し(ja縦+en) */

.tp-head {
	margin-bottom: calc(40 * min(100vw / 1440, 1px));
	margin-bottom: calc(40 * var(--u));
}

.tp-h2 {
	display: flex;
	flex-direction: column;
	gap: calc(2 * min(100vw / 1440, 1px));
	gap: calc(2 * var(--u));
}

.tp-h2__ja {
	color: #fd7676;
	color: var(--c-pink);
	font-family: "Shippori Mincho", serif;
	font-family: var(--font-mincho);
	font-size: calc(28 * min(100vw / 1440, 1px));
	font-size: calc(28 * var(--u));
	font-weight: 700;
	letter-spacing: 0.05em;
	line-height: 1.5;
}

.tp-h2__en {
	color: #fd7676;
	color: var(--c-pink);
	font-family: "Lora", serif;
	font-family: var(--font-en);
	font-size: calc(18 * min(100vw / 1440, 1px));
	font-size: calc(18 * var(--u));
	font-weight: 600;
	letter-spacing: 0.05em;
	line-height: 1.5;
}

/* 一覧へリンク(PC: 見出し右上に絶対配置) */

.tp-more {
	align-items: center;
	color: #fd7676;
	color: var(--c-pink);
	display: inline-flex;
	font-family: "Noto Sans JP", sans-serif;
	font-family: var(--font-jp);
	font-size: calc(16 * min(100vw / 1440, 1px));
	font-size: calc(16 * var(--u));
	font-weight: 700;
	gap: calc(10 * min(100vw / 1440, 1px));
	gap: calc(10 * var(--u));
	letter-spacing: 0.05em;
	position: absolute;
	right: 0;
	top: calc(24 * min(100vw / 1440, 1px));
	top: calc(24 * var(--u));
	transition: opacity 0.2s ease;
}

.tp-more:hover {
	opacity: 0.65;
}

.tp-more__arrow {
	height: auto;
	width: calc(8 * min(100vw / 1440, 1px));
	width: calc(8 * var(--u));
}

/* リスト・記事 */

.tp-item + .tp-item {
	margin-top: calc(24 * min(100vw / 1440, 1px));
	margin-top: calc(24 * var(--u));
}

.tp-item__lnk {
	display: block;
	transition: opacity 0.2s ease;
}

.tp-item__lnk:hover {
	opacity: 0.65;
}

.tp-meta {
	align-items: center;
	display: flex;
	gap: calc(12 * min(100vw / 1440, 1px));
	gap: calc(12 * var(--u));
}

.tp-date {
	color: #7c6660;
	color: var(--c-brown-2);
	font-family: "Open Sans", sans-serif;
	font-family: var(--font-num);
	font-size: calc(14 * min(100vw / 1440, 1px));
	font-size: calc(14 * var(--u));
	font-weight: 600;
	letter-spacing: 0.05em;
}

.tp-cat {
	align-items: center; /* 既定色。管理画面でカテゴリーを追加してもクラス別の指定が無い場合に
     背景が付かず白文字だけになるのを防ぐ(一覧の .tpl-badge と同値) */
	background: #ff7ea7;
	border-radius: calc(2 * min(100vw / 1440, 1px));
	border-radius: calc(2 * var(--u));
	color: #ffffff;
	color: var(--c-white);
	display: inline-flex;
	font-family: "Noto Sans JP", sans-serif;
	font-family: var(--font-jp);
	font-size: calc(14 * min(100vw / 1440, 1px));
	font-size: calc(14 * var(--u));
	font-weight: 500;
	letter-spacing: 0.03em;
	padding: calc(1 * min(100vw / 1440, 1px)) calc(8 * min(100vw / 1440, 1px));
	padding: calc(1 * var(--u)) calc(8 * var(--u));
	white-space: nowrap;
}

.tp-cat--gyn {
	background: #ffa68f; /* 婦人科疾患 */
}

.tp-cat--meno {
	background: #ff99aa; /* 更年期障害 */
}

.tp-cat--birth {
	background: #ff7ea7; /* 妊娠・出産 */
}

.tp-ttl {
	color: #7c6660;
	color: var(--c-brown-2);
	font-family: "Noto Sans JP", sans-serif;
	font-family: var(--font-jp);
	font-size: max(1.5rem, min(calc(16 * min(100vw / 1440, 1px)), 1.6rem));
	font-size: var(--fs-body);
	font-weight: 400;
	letter-spacing: 0.03em;
	line-height: 1.6;
	margin-top: calc(4 * min(100vw / 1440, 1px));
	margin-top: calc(4 * var(--u));
}

/* --------- 診療時間・アクセス(section-info / #access) --------- */

/* #fff8f2地(banner〜info共通)。2カラム(診療時間表 | アクセス地図) */

.p-access {
	background-color: #fff8f2;
	padding-bottom: calc(80 * min(100vw / 1440, 1px));
	padding-bottom: calc(80 * var(--u));
}

.ac-inner {
	display: flex;
	gap: calc(64 * min(100vw / 1440, 1px));
	gap: calc(64 * var(--u));
	margin-left: auto;
	margin-right: auto;
	max-width: calc(1040 * min(100vw / 1440, 1px));
	max-width: calc(1040 * var(--u));
	width: 100%;
}

.ac-col {
	flex: 1;
	min-width: 0;
}

/* 見出し(ja縦+en・茶色・中央) */

.ac-h2 {
	align-items: center;
	display: flex;
	flex-direction: column;
	gap: calc(2 * min(100vw / 1440, 1px));
	gap: calc(2 * var(--u));
	margin-bottom: calc(32 * min(100vw / 1440, 1px));
	margin-bottom: calc(32 * var(--u));
}

.ac-h2__ja {
	color: #7c6660;
	color: var(--c-brown-2);
	font-family: "Shippori Mincho", serif;
	font-family: var(--font-mincho);
	font-size: calc(28 * min(100vw / 1440, 1px));
	font-size: calc(28 * var(--u));
	font-weight: 700;
	letter-spacing: 0.05em;
	line-height: 1.5;
}

.ac-h2__en {
	color: #7c6660;
	color: var(--c-brown-2);
	font-family: "Lora", serif;
	font-family: var(--font-en);
	font-size: calc(18 * min(100vw / 1440, 1px));
	font-size: calc(18 * var(--u));
	font-weight: 600;
	letter-spacing: 0.05em;
	line-height: 1.5;
}

/* 診療時間テーブル(ピンクヘッダー) */

.ac-cal {
	background: #ffffff;
	background: var(--c-white);
	border-collapse: separate;
	border-radius: calc(10 * min(100vw / 1440, 1px));
	border-radius: calc(10 * var(--u));
	border-spacing: 0;
	color: #7c6660;
	color: var(--c-brown-2);
	overflow: hidden;
	table-layout: fixed;
	width: 100%;
}

.ac-cal th,
.ac-cal td {
	border-bottom: 2px solid #fff8f3; /* separateでの罫線二重化防止: 各セルは右・下のみ。上端・左端の外周は下記で補完 */
	border-right: 2px solid #fff8f3;
	line-height: 1.6;
	padding: calc(8 * min(100vw / 1440, 1px)) 0;
	padding: calc(8 * var(--u)) 0;
	text-align: center;
	vertical-align: middle;
}

.ac-cal thead th {
	border-top: 2px solid #fff8f3;
}

.ac-cal tr > :first-child {
	border-left: 2px solid #fff8f3;
}

.ac-cal thead th {
	background: #ffe6e8;
	font-family: "Shippori Mincho", serif;
	font-family: var(--font-mincho);
	font-size: calc(16 * min(100vw / 1440, 1px));
	font-size: calc(16 * var(--u));
	font-weight: 600;
	letter-spacing: 0.03em;
}

.ac-cal__lead,
.ac-cal__time {
	width: calc(136 * min(100vw / 1440, 1px));
	width: calc(136 * var(--u));
}

.ac-cal__time {
	font-family: "Open Sans", sans-serif;
	font-family: var(--font-num);
	font-size: calc(16 * min(100vw / 1440, 1px));
	font-size: calc(16 * var(--u));
	font-weight: 400;
	letter-spacing: 0.03em;
	white-space: nowrap;
}

.ac-cal tbody td {
	font-family: "Shippori Mincho", serif;
	font-family: var(--font-mincho);
	font-size: calc(13 * min(100vw / 1440, 1px));
	font-size: calc(13 * var(--u));
	font-weight: 600;
}

.ac-cal .is-x {
	color: #7c6660;
	color: var(--c-brown-2);
}

/* 凡例 */

.ac-note {
	color: #7c6660;
	color: var(--c-brown-2);
	font-family: "Noto Sans JP", sans-serif;
	font-family: var(--font-jp);
	font-size: max(1.5rem, min(calc(16 * min(100vw / 1440, 1px)), 1.6rem));
	font-size: var(--fs-body);
	font-weight: 400;
	letter-spacing: 0.03em;
	line-height: 1.6;
	margin-top: calc(16 * min(100vw / 1440, 1px));
	margin-top: calc(16 * var(--u));
}

.ac-note .is-brown {
	color: #7c6660;
	color: var(--c-brown-2);
}

/* 地図(角丸なし) */

.ac-map {
	display: block;
}

.ac-map img {
	height: auto;
	width: 100%;
}

/* 住所・電車 */

.ac-addr,
.ac-train {
	align-items: flex-start;
	color: #7c6660;
	color: var(--c-brown-2);
	display: flex;
	font-family: "Noto Sans JP", sans-serif;
	font-family: var(--font-jp);
	font-size: max(1.5rem, min(calc(16 * min(100vw / 1440, 1px)), 1.6rem));
	font-size: var(--fs-body);
	gap: calc(12 * min(100vw / 1440, 1px));
	gap: calc(12 * var(--u));
	letter-spacing: 0.03em;
	line-height: 1.6;
}

.ac-addr {
	font-weight: 700;
	margin-top: calc(24 * min(100vw / 1440, 1px));
	margin-top: calc(24 * var(--u));
}

.ac-train {
	font-weight: 400;
	margin-top: calc(14 * min(100vw / 1440, 1px));
	margin-top: calc(14 * var(--u));
}

.ac-icn {
	fill: #fd7676;
	fill: var(--c-pink);
	flex-shrink: 0;
	height: auto;
	margin-top: calc(2 * min(100vw / 1440, 1px));
	margin-top: calc(2 * var(--u));
	width: calc(20 * min(100vw / 1440, 1px));
	width: calc(20 * var(--u));
}

/* google map リンク */

.ac-gmap {
	align-items: center;
	color: #fd7676;
	color: var(--c-pink);
	display: inline-flex;
	font-family: "Noto Sans JP", sans-serif;
	font-family: var(--font-jp);
	font-size: calc(16 * min(100vw / 1440, 1px));
	font-size: calc(16 * var(--u));
	font-weight: 700;
	gap: calc(8 * min(100vw / 1440, 1px));
	gap: calc(8 * var(--u));
	letter-spacing: 0.05em;
	margin-top: calc(20 * min(100vw / 1440, 1px));
	margin-top: calc(20 * var(--u));
	transition: opacity 0.2s ease;
}

.ac-gmap:hover {
	opacity: 0.65;
}

.ac-gmap__ext {
	height: auto;
	width: calc(18 * min(100vw / 1440, 1px));
	width: calc(18 * var(--u));
}

/* ================= SP(≤767px) ================= */

/* ≤500px: 特徴セクション(アーチ付き背景ボックス)の上端を8px上げる */

/* =========================================================================
   フッターの装飾鳥: TOPだけデザイン基準(1440/390カンプ)の配置に戻す
   共通の _footer.scss 側は transform:translateX(-50%) で中央寄せしているため、
   margin-left だけ合わせても鳥の幅の半分ずれる。TOPに限って transform を外し、
   カンプの margin-left / top を入れる。下層ページは _footer.scss のまま。
   ========================================================================= */

body.home .ft-bird--left,
body.home .ft-bird--right {
	transform: none;
}

body.home .ft-bird--right {
	margin-left: calc(384 * min(100vw / 1440, 1px));
	margin-left: calc(384 * var(--u));
	top: calc(40 * min(100vw / 1440, 1px));
	top: calc(40 * var(--u));
}

/* =========================================================================
   フッターの食い込み: TOPだけ解除
   _about.scss が body スコープ無しで .p-footer{margin-top:-120u} を定義して
   いるため全ページに効いている。TOPではアクセスの「Google Mapsを開く」が
   フッターの白背景の下に潜って見えなくなるので、TOPに限って打ち消す。
   (下層18ページは実測で食い込みによる不具合が無いため現状維持)
   ========================================================================= */

body.home .p-footer {
	margin-top: 0;
}

/* =========================================================================
   新着情報（topics）: 一覧（/topics/ all・/news/・/column/ 共通 = tpl-*）と
   記事詳細（single-topics = tps-*）
   ・一覧レイアウトは privacy-policy と同じ「目次なしセンター1040 + 960タイトルカード」
   ・カテゴリバッジ色は TOP の .tp-cat--* と同値（gyn / meno / birth）
   ・デザイン基準: PC=1440 / SP=390。寸法は calc(px * var(--u))。
   ========================================================================= */

/* ---- ページ地色 + フッター直前の空色（privacy-policy と同値） ----
   一覧=固定ページ /topics/（body-page-topics）、記事詳細=CPT topics（single-topics。
   news/columnはtopics_catタームでの表示分岐でありbodyクラスにはならない） */

body.body-page-topics,
body.single-topics {
	background: #fffaf6;
}

body.body-page-topics .p-footer {
	--ft-sky: #fff7f1; /* 本文とフッターの間隔（sitemap / reservation と同じ調整値） */
	margin-top: calc(20 * min(100vw / 1440, 1px));
	margin-top: calc(20 * var(--u));
}

body.single-topics .p-footer {
	--ft-sky: #fff7f1; /* 本文とフッターの間隔（sitemap / reservation と同じ調整値） */
	margin-top: calc(20 * min(100vw / 1440, 1px));
	margin-top: calc(20 * var(--u));
}

/* ============ 一覧: レイアウト（センター1040 / カード960 / ヒーロー帯ピンク） ============ */

.tpl-page .me-head,
.tpl-page .me-main {
	margin-left: auto;
	margin-right: auto;
	width: calc(1040 * min(100vw / 1440, 1px));
	width: calc(1040 * var(--u));
}

.tpl-page .me-hero__card {
	margin-left: auto;
	margin-right: auto;
	position: relative;
	width: calc(960 * min(100vw / 1440, 1px));
	width: calc(960 * var(--u));
	z-index: 1;
}

.tpl-page .me-hero {
	padding-bottom: calc(50 * min(100vw / 1440, 1px));
	padding-bottom: calc(50 * var(--u));
	padding-top: calc(50 * min(100vw / 1440, 1px));
	padding-top: calc(50 * var(--u));
}

.tpl-page .me-hero::before {
	background: #ffede8;
	content: "";
	height: 100%;
	left: 50%;
	position: absolute;
	top: 0;
	transform: translateX(-50%);
	width: 100vw;
	z-index: 0;
}

.tpl-page .me-main {
	padding-bottom: calc(160 * min(100vw / 1440, 1px));
	padding-bottom: calc(160 * var(--u));
}

/* ============ 一覧: タブ（all / 当院からのお知らせ / コラム） ============ */

.tpl-tabs {
	margin-top: calc(84 * min(100vw / 1440, 1px));
	margin-top: calc(84 * var(--u));
}

.tpl-tabs__list {
	align-items: flex-end;
	border-bottom: 2px solid #ffbbba;
	display: flex;
	gap: calc(32 * min(100vw / 1440, 1px));
	gap: calc(32 * var(--u)); /* Fig(2214-12243): タブ間32 */
}

.tpl-tabs__link {
	color: #7c6660;
	color: var(--c-brown-2);
	display: inline-block;
	font-family: "Noto Sans JP", sans-serif;
	font-family: var(--font-jp);
	font-size: calc(18 * min(100vw / 1440, 1px));
	font-size: calc(18 * var(--u));
	font-weight: 700;
	letter-spacing: 0.05em;
	padding-bottom: calc(14 * min(100vw / 1440, 1px));
	padding-bottom: calc(14 * var(--u));
	transition: opacity 0.2s ease;
}

a.tpl-tabs__link:hover {
	opacity: 0.65;
}

.tpl-tabs__link.is-active {
	border-bottom: 2px solid #fd7676;
	border-bottom: 2px solid var(--c-pink);
	color: #fd7676;
	color: var(--c-pink);
	margin-bottom: calc(-2 * min(100vw / 1440, 1px));
	margin-bottom: calc(-2 * var(--u));
}

/* ============ 一覧: リスト ============ */

.tpl-list {
	margin-top: calc(40 * min(100vw / 1440, 1px));
	margin-top: calc(40 * var(--u));
}

/* 縦paddingはaタグ側(クリック範囲を広げる)。区切り点線はli上端 */

.tpl-item__lnk {
	padding-bottom: calc(24 * min(100vw / 1440, 1px));
	padding-bottom: calc(24 * var(--u));
	padding-top: calc(24 * min(100vw / 1440, 1px));
	padding-top: calc(24 * var(--u));
}

.tpl-item:first-child .tpl-item__lnk {
	padding-top: 0;
}

.tpl-item:last-child .tpl-item__lnk {
	padding-bottom: 0;
}

.tpl-item + .tpl-item { /* 丸ぽち点線(3px真円・8pxピッチ)。border:dottedは点が詰まり角ばるためSVGタイル */
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='3'%3E%3Ccircle cx='4' cy='1.5' r='1.5' fill='%23ffbbba'/%3E%3C/svg%3E");
	background-position: top left;
	background-repeat: repeat-x;
	background-size: calc(8 * min(100vw / 1440, 1px)) calc(3 * min(100vw / 1440, 1px));
	background-size: calc(8 * var(--u)) calc(3 * var(--u));
}

/* JS絞り込みで非表示のとき(hidden属性)と、絞り込み後の先頭アイテム(区切り不要) */

.tpl-item[hidden] {
	display: none;
}

.tpl-item.is-sep-off {
	background-image: none;
}

.tpl-item__lnk {
	display: block;
	transition: opacity 0.2s ease;
}

.tpl-item__lnk:hover {
	opacity: 0.65;
}

/* コラム記事: サムネ横並び（PC） */

.tpl-item--column .tpl-item__lnk {
	align-items: center;
	display: flex;
	gap: calc(40 * min(100vw / 1440, 1px));
	gap: calc(40 * var(--u));
}

.tpl-item__thumb {
	aspect-ratio: 3/2;
	border-radius: calc(4 * min(100vw / 1440, 1px));
	border-radius: calc(4 * var(--u));
	flex-shrink: 0;
	overflow: hidden;
	width: calc(300 * min(100vw / 1440, 1px));
	width: calc(300 * var(--u));
}

.tpl-item__img {
	-o-object-fit: cover;
	height: 100%;
	object-fit: cover;
	width: 100%;
}

.tpl-item__body {
	flex: 1;
	min-width: 0;
}

.tpl-item__meta {
	align-items: center;
	display: flex;
	gap: calc(12 * min(100vw / 1440, 1px));
	gap: calc(12 * var(--u));
}

.tpl-item__date {
	color: #7c6660;
	color: var(--c-brown-2);
	font-family: "Open Sans", sans-serif;
	font-family: var(--font-num);
	font-size: calc(14 * min(100vw / 1440, 1px));
	font-size: calc(14 * var(--u));
	font-weight: 600;
	letter-spacing: 0.05em;
}

.tpl-item__ttl {
	color: #7c6660;
	color: var(--c-brown-2);
	font-family: "Noto Sans JP", sans-serif;
	font-family: var(--font-jp);
	font-size: max(1.5rem, min(calc(16 * min(100vw / 1440, 1px)), 1.6rem));
	font-size: var(--fs-body);
	font-weight: 400;
	letter-spacing: 0.03em;
	line-height: 1.6;
	margin-top: calc(4 * min(100vw / 1440, 1px));
	margin-top: calc(4 * var(--u));
}

.tpl-empty {
	color: #7c6660;
	color: var(--c-brown-2);
	font-family: "Noto Sans JP", sans-serif;
	font-family: var(--font-jp);
	font-size: max(1.5rem, min(calc(16 * min(100vw / 1440, 1px)), 1.6rem));
	font-size: var(--fs-body);
	margin-top: calc(64 * min(100vw / 1440, 1px));
	margin-top: calc(64 * var(--u));
}

/* ============ 一覧: バッジ（TOP .tp-cat と同スケール） ============ */

.tpl-badge {
	align-items: center;
	background: #ff7ea7;
	border-radius: calc(2 * min(100vw / 1440, 1px));
	border-radius: calc(2 * var(--u));
	color: #ffffff;
	color: var(--c-white);
	display: inline-flex;
	font-family: "Noto Sans JP", sans-serif;
	font-family: var(--font-jp);
	font-size: calc(14 * min(100vw / 1440, 1px));
	font-size: calc(14 * var(--u));
	font-weight: 500;
	letter-spacing: 0.03em;
	line-height: 1.4;
	padding: calc(1 * min(100vw / 1440, 1px)) calc(8 * min(100vw / 1440, 1px));
	padding: calc(1 * var(--u)) calc(8 * var(--u));
	white-space: nowrap;
}

.tpl-badge--news {
	background: #7c6660;
	background: var(--c-brown-2); /* お知らせ */
}

.tpl-badge--gyn {
	background: #ffa68f; /* 婦人科疾患 */
}

.tpl-badge--meno {
	background: #ff99aa; /* 更年期障害 */
}

.tpl-badge--birth {
	background: #ff7ea7; /* 妊娠・出産 */
}

/* ============ 一覧: ページネーション（the_posts_pagination / paginate_links 出力） ============ */

.tpl-pagi {
	margin-top: calc(80 * min(100vw / 1440, 1px));
	margin-top: calc(80 * var(--u));
}

.tpl-pagi .nav-links {
	align-items: center;
	display: flex;
	gap: calc(10 * min(100vw / 1440, 1px));
	gap: calc(10 * var(--u)); /* Fig(2251-24737): 番号間10 */
	justify-content: center;
}

.tpl-pagi .page-numbers {
	align-items: center;
	background: #ffe9e3;
	border-radius: 50%;
	color: #fd7676;
	color: var(--c-pink);
	display: flex;
	font-family: "Open Sans", sans-serif;
	font-family: var(--font-num);
	font-size: calc(16 * min(100vw / 1440, 1px));
	font-size: calc(16 * var(--u));
	font-weight: 600;
	height: calc(30 * min(100vw / 1440, 1px));
	height: calc(30 * var(--u));
	justify-content: center;
	transition: opacity 0.2s ease;
	width: calc(30 * min(100vw / 1440, 1px));
	width: calc(30 * var(--u)); /* Fig: 番号ボタン30 */
}

.tpl-pagi a.page-numbers:hover {
	opacity: 0.65;
}

.tpl-pagi .page-numbers.current {
	background: #fd7676;
	background: var(--c-pink);
	color: #ffffff;
	color: var(--c-white);
}

.tpl-pagi .page-numbers.dots {
	background: transparent;
	color: #7c6660;
	color: var(--c-brown-2);
	height: auto;
	width: auto;
}

.tpl-pagi .page-numbers.prev,
.tpl-pagi .page-numbers.next {
	background: transparent;
	border: 2px solid #fd7676;
	border: 2px solid var(--c-pink); /* 固定2px(縮小時も細らせない) */
	height: calc(40 * min(100vw / 1440, 1px));
	height: calc(40 * var(--u));
	width: calc(40 * min(100vw / 1440, 1px));
	width: calc(40 * var(--u)); /* Fig: 矢印ボタン40 */
}

/* 先頭/末尾ページでは矢印を消さずdisabled表示(JSがspanで出力) */

.tpl-pagi .page-numbers.is-disabled {
	opacity: 0.35;
	pointer-events: none;
}

/* Fig: 矢印ボタンと番号列の間は24(=gap10+マージン14) */

.tpl-pagi .page-numbers.prev {
	margin-right: calc(14 * min(100vw / 1440, 1px));
	margin-right: calc(14 * var(--u));
}

.tpl-pagi .page-numbers.next {
	margin-left: calc(14 * min(100vw / 1440, 1px));
	margin-left: calc(14 * var(--u));
}

.tpl-pagi__arw {
	height: auto;
	width: calc(20 * min(100vw / 1440, 1px));
	width: calc(20 * var(--u)); /* Fig: 尾付きの長い矢印 */
}

/* the_posts_pagination のスクリーンリーダー用見出しは非表示のまま */

.tpl-pagi .screen-reader-text {
	clip: rect(0, 0, 0, 0);
	border: 0;
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	width: 1px;
}

/* =========================================================================
   記事詳細（tps-*）
   ========================================================================= */

.tps-page {
	padding-top: calc(48 * min(100vw / 1440, 1px));
	padding-top: calc(48 * var(--u));
}

.tps-hero {
	background: #ffede8;
	padding: calc(50 * min(100vw / 1440, 1px)) calc(40 * min(100vw / 1440, 1px));
	padding: calc(50 * var(--u)) calc(40 * var(--u)); /* Fig: 上下50 */
}

.tps-hero__inner {
	margin-left: auto;
	margin-right: auto;
	max-width: calc(1040 * min(100vw / 1440, 1px));
	max-width: calc(1040 * var(--u));
	text-align: center;
}

.tps-hero__title {
	color: #7c6660;
	color: var(--c-brown-2);
	font-family: "Shippori Mincho", serif;
	font-family: var(--font-mincho);
	font-size: calc(28 * min(100vw / 1440, 1px));
	font-size: calc(28 * var(--u)); /* Fig: 28 */
	font-weight: 800; /* Fig: ExtraBold */
	letter-spacing: 0.05em;
	line-height: 1.5;
}

.tps-hero__en {
	color: #7c6660;
	color: var(--c-brown-2);
	font-family: "Lora", serif;
	font-family: var(--font-en);
	font-size: calc(18 * min(100vw / 1440, 1px));
	font-size: calc(18 * var(--u)); /* Fig: 18 */
	font-weight: 600;
	letter-spacing: 0.05em;
	margin-top: calc(8 * min(100vw / 1440, 1px));
	margin-top: calc(8 * var(--u)); /* Fig: gap8 */
}

.tps-body {
	margin-left: auto;
	margin-right: auto;
	width: calc(1040 * min(100vw / 1440, 1px));
	width: calc(1040 * var(--u));
}

.tps-breadcrumb {
	margin-top: calc(33 * min(100vw / 1440, 1px));
	margin-top: calc(33 * var(--u));
}

.me-breadcrumb__lnk {
	transition: opacity 0.2s ease;
}

.me-breadcrumb__lnk:hover {
	opacity: 0.65;
}

.tps-article {
	margin-left: auto;
	margin-right: auto;
	padding-bottom: calc(120 * min(100vw / 1440, 1px));
	padding-bottom: calc(120 * var(--u)); /* Fig: 下120 */
	padding-top: calc(88 * min(100vw / 1440, 1px));
	padding-top: calc(88 * var(--u));
	width: calc(900 * min(100vw / 1440, 1px));
	width: calc(900 * var(--u));
}

.tps-eyecatch__img {
	border-radius: calc(4 * min(100vw / 1440, 1px));
	border-radius: calc(4 * var(--u));
	height: auto;
	width: 100%;
}

.tps-eyecatch + .tps-content {
	margin-top: calc(48 * min(100vw / 1440, 1px));
	margin-top: calc(48 * var(--u));
}

/* ============ 記事本文（the_content 汎用スタイル） ============ */

.tps-content {
	color: #7c6660;
	color: var(--c-brown-2);
	font-family: "Noto Sans JP", sans-serif;
	font-family: var(--font-jp);
	font-size: max(1.5rem, min(calc(16 * min(100vw / 1440, 1px)), 1.6rem));
	font-size: var(--fs-body);
	letter-spacing: 0.03em;
	line-height: 1.6;
}

.tps-content > * + * {
	margin-top: calc(40 * min(100vw / 1440, 1px));
	margin-top: calc(40 * var(--u)); /* Fig: ブロック間40 */
}

.tps-content p + p {
	margin-top: calc(16 * min(100vw / 1440, 1px));
	margin-top: calc(16 * var(--u)); /* Fig: 段落間16 */
}

.tps-content a {
	color: #459afb; /* Fig */
	font-weight: 700;
	transition: opacity 0.2s ease;
}

.tps-content a:hover {
	opacity: 0.65;
}

/* h2: ピンク帯 + 二重バー */

.tps-content h2 {
	align-items: center;
	background: #ffefe5; /* Fig */
	color: #fd7676;
	color: var(--c-pink);
	display: flex;
	font-family: "Shippori Mincho", serif;
	font-family: var(--font-mincho);
	font-size: calc(28 * min(100vw / 1440, 1px));
	font-size: calc(28 * var(--u));
	font-weight: 800;
	gap: calc(16 * min(100vw / 1440, 1px));
	gap: calc(16 * var(--u)); /* Fig */
	letter-spacing: 0.05em;
	line-height: 1.5;
	margin-top: calc(80 * min(100vw / 1440, 1px));
	margin-top: calc(80 * var(--u));
	padding: calc(16 * min(100vw / 1440, 1px));
	padding: calc(16 * var(--u)); /* Fig: 16 */
}

.tps-content h2::before {
	align-self: stretch;
	border-left: calc(4 * min(100vw / 1440, 1px)) solid #ff8f8f;
	border-left: calc(4 * var(--u)) solid #ff8f8f;
	border-right: calc(4 * min(100vw / 1440, 1px)) solid #ff8f8f;
	border-right: calc(4 * var(--u)) solid #ff8f8f;
	content: "";
	flex-shrink: 0;
	width: calc(11 * min(100vw / 1440, 1px));
	width: calc(11 * var(--u)); /* Fig: バー4/隙間3/バー4 */
}

/* h3: ピンクドット見出し + ドット下線 */

.tps-content h3 { /* 下線(Fig: 太さ3・丸端・#ffbbba)＝3px丸ドット8pxピッチのSVGタイル */
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='3'%3E%3Ccircle cx='4' cy='1.5' r='1.5' fill='%23ffbbba'/%3E%3C/svg%3E");
	background-position: left bottom;
	background-repeat: repeat-x;
	background-size: calc(8 * min(100vw / 1440, 1px)) calc(3 * min(100vw / 1440, 1px));
	background-size: calc(8 * var(--u)) calc(3 * var(--u));
	color: #fd7676;
	color: var(--c-pink);
	font-family: "Noto Sans JP", sans-serif;
	font-family: var(--font-jp);
	font-size: calc(24 * min(100vw / 1440, 1px));
	font-size: calc(24 * var(--u)); /* Fig: 24 */
	font-weight: 700;
	letter-spacing: 0.05em;
	line-height: 1.6;
	padding-bottom: calc(16 * min(100vw / 1440, 1px));
	padding-bottom: calc(16 * var(--u));
	padding-left: calc(24 * min(100vw / 1440, 1px));
	padding-left: calc(24 * var(--u));
	position: relative;
}

.tps-content h3::before {
	background: #ffbbba; /* Fig */
	border-radius: 50%;
	content: "";
	height: calc(8 * min(100vw / 1440, 1px));
	height: calc(8 * var(--u));
	left: 0;
	position: absolute;
	top: calc(15 * min(100vw / 1440, 1px));
	top: calc(15 * var(--u));
	width: calc(8 * min(100vw / 1440, 1px));
	width: calc(8 * var(--u));
}

.tps-content h4 {
	color: #fd7676;
	font-size: calc(20 * min(100vw / 1440, 1px));
	font-size: calc(20 * var(--u));
	font-weight: 700;
}

/* ul: 角丸囲みリスト */

.tps-content ul {
	background: #fff4ed;
	border: 2px solid #ff8f8f; /* 固定2px(縮小時も細らせない) */
	border-radius: calc(10 * min(100vw / 1440, 1px));
	border-radius: calc(10 * var(--u)); /* Fig: 10 */
	padding: calc(40 * min(100vw / 1440, 1px));
	padding: calc(40 * var(--u)); /* Fig: 40 */
}

.tps-content ul li {
	font-weight: 700;
	padding-left: calc(24 * min(100vw / 1440, 1px));
	padding-left: calc(24 * var(--u));
	position: relative;
}

.tps-content ul li::before {
	background: #ffbbba; /* Fig */
	border-radius: 50%;
	content: "";
	height: calc(8 * min(100vw / 1440, 1px));
	height: calc(8 * var(--u));
	left: 0;
	position: absolute;
	top: calc(9 * min(100vw / 1440, 1px));
	top: calc(9 * var(--u));
	width: calc(8 * min(100vw / 1440, 1px));
	width: calc(8 * var(--u));
}

.tps-content ul li + li {
	margin-top: calc(24 * min(100vw / 1440, 1px));
	margin-top: calc(24 * var(--u));
}

/* 緑バリエーション（エディタで <ul class="is-green"> を指定） */

.tps-content ul.is-green {
	border-color: #73c07a;
}

.tps-content ul.is-green li::before {
	background: #afdfb4;
}

/* ol: 通常の番号リスト */

.tps-content ol {
	list-style: decimal;
	margin-top: calc(24 * min(100vw / 1440, 1px));
	margin-top: calc(24 * var(--u));
	padding-left: calc(24 * min(100vw / 1440, 1px));
	padding-left: calc(24 * var(--u));
}

.tps-content ol li + li {
	margin-top: calc(8 * min(100vw / 1440, 1px));
	margin-top: calc(8 * var(--u));
}

/* table */

.tps-content table {
	border-collapse: collapse;
	width: 100%;
}

.tps-content th,
.tps-content td {
	border: 2px solid #ffd0c9; /* Fig: 固定2px */
	padding: calc(16 * min(100vw / 1440, 1px));
	padding: calc(16 * var(--u)); /* Fig: 16 */
	text-align: left;
	vertical-align: top;
}

.tps-content th {
	background: #fff4ed;
	font-weight: 400; /* Fig: 見出しセルは通常ウェイト */
}

.tps-content tbody th:first-child,
.tps-content tr > th:first-child {
	color: #fd7676;
	color: var(--c-pink);
	font-weight: 700;
	white-space: nowrap;
}

.tps-content td {
	background: #fff;
}

/* 画像 */

.tps-content img {
	display: block;
	height: auto;
	margin-top: calc(40 * min(100vw / 1440, 1px));
	margin-top: calc(40 * var(--u));
	max-width: 100%;
}

/* ============ TOP: 記事なし時の空表示 ============ */

.tp-empty {
	color: #7c6660;
	color: var(--c-brown-2);
	font-family: "Noto Sans JP", sans-serif;
	font-family: var(--font-jp);
	font-size: max(1.5rem, min(calc(16 * min(100vw / 1440, 1px)), 1.6rem));
	font-size: var(--fs-body);
}

/* =========================================================================
   下層 診療内容ページ共通（checkup-pill / gyn-symptoms / bleeding-period /
   vaccine-menopause / abortion-contraception / fertility-support）
   ・レイアウト/基本コンポーネント（me-*）は page/_medical-examination.scss を共用
   ・ここは上記ページ群で共通の追加コンポーネント（cp-*）と配色上書き
   ・スコープ: <main class="me-page cp-under"> 配下
   ・デザイン基準: PC=1440 / SP=390。寸法は calc(px * var(--u))。
   ========================================================================= */

/* h3アンカー（目次サブ項目のジャンプ先）は固定ヘッダー分逃がす */

.cp-under .me-sub__ttl[id] {
	scroll-margin-top: calc((130 * min(100vw / 1440, 1px)) + 20 * min(100vw / 1440, 1px));
	scroll-margin-top: calc(calc(130 * min(100vw / 1440, 1px)) + 20 * min(100vw / 1440, 1px));
	scroll-margin-top: calc(var(--header-h) + 20 * var(--u));
}

/* ---- セクション間隔（Fig実測: セクション間160 / パンくず→最初のセクション97。me系の80と異なる） ---- */

.cp-under .me-sec {
	margin-top: calc(160 * min(100vw / 1440, 1px));
	margin-top: calc(160 * var(--u));
}

.cp-under .me-main > .me-sec:first-child {
	margin-top: calc(97 * min(100vw / 1440, 1px));
	margin-top: calc(97 * var(--u));
}

/* ---- 診療内容一覧(me-menu)の下余白（Fig実測: ボタン群→フッター120。me系の180と異なる） ---- */

.cp-under .me-menu {
	padding-bottom: calc(120 * min(100vw / 1440, 1px));
	padding-bottom: calc(120 * var(--u));
}

/* ---- me-callout 寸法（Fig実測: 見出しpadding12 / 本文padding PC40・SP32x24 / リスト間隔24。me系と異なる） ---- */

.cp-under .me-callout__hd {
	padding: calc(12 * min(100vw / 1440, 1px));
	padding: calc(12 * var(--u));
}

.cp-under .me-callout__bd {
	padding: calc(40 * min(100vw / 1440, 1px));
	padding: calc(40 * var(--u));
}

.cp-under .me-callout__ul {
	gap: calc(24 * min(100vw / 1440, 1px));
	gap: calc(24 * var(--u));
}

/* ---- SP専用の寸法差（Fig実測。me系の値と異なるものだけ上書き） ---- */

/* ---- me-callout / me-listcard 配色（Fig実測: 枠=見出し色 / ドットは薄色） ---- */

.cp-under .me-sec--green .me-callout {
	border-color: #73c07a;
}

.cp-under .me-sec--green .me-callout__li::before {
	background: #afdfb4;
}

.cp-under .me-sec--green .me-listcard__li::before {
	background: #afdfb4;
}

.cp-under .me-sec--pink .me-callout {
	border-color: #ff8f8f;
}

.cp-under .me-sec--pink .me-callout__hd {
	background: #ff8f8f;
}

.cp-under .me-sec--pink .me-callout__li::before {
	background: #ffbbba;
}

.cp-under .me-sec--pink .me-listcard__li::before {
	background: #ffbbba;
}

/* セクション配色と異なる色のカードを置く場合のモディファイア（後勝ち） */

.cp-under .me-callout--pink {
	border-color: #ff8f8f;
}

.cp-under .me-callout--pink .me-callout__hd {
	background: #ff8f8f;
}

.cp-under .me-callout--pink .me-callout__li::before {
	background: #ffbbba;
}

/* ============ 図解画像ブロック（角丸・Fig実寸比率は各ページで上書き可） ============ */

.cp-diagram img {
	aspect-ratio: 928/400;
	border-radius: calc(10 * min(100vw / 1440, 1px));
	border-radius: calc(10 * var(--u));
	display: block;
	height: auto;
	width: 100%;
}

/* ============ 全幅写真の比率（me-photo と併用: 928x400） ============ */

.cp-photo img {
	-o-object-fit: cover;
	aspect-ratio: 928/400;
	object-fit: cover;
}

/* ============ h4（●ドット+太字 小見出し） ============ */

.cp-h4 {
	color: #7c6660;
	color: var(--c-brown-2);
	font-family: "Noto Sans JP", sans-serif;
	font-family: var(--font-jp);
	font-size: calc(20 * min(100vw / 1440, 1px));
	font-size: calc(20 * var(--u));
	font-weight: 700;
	letter-spacing: 0.03em;
	line-height: 1.6;
	padding-left: calc(24 * min(100vw / 1440, 1px));
	padding-left: calc(24 * var(--u));
	position: relative; /* SPも20px（Fig実測: Frame113 h=32 = 20px * lh1.6） */
}

.cp-h4::before {
	background: #afdfb4;
	background: var(--cp-dot, #afdfb4);
	border-radius: 50%;
	content: "";
	height: calc(8 * min(100vw / 1440, 1px));
	height: calc(8 * var(--u));
	left: 0;
	position: absolute;
	top: calc(12 * min(100vw / 1440, 1px));
	top: calc(12 * var(--u));
	width: calc(8 * min(100vw / 1440, 1px));
	width: calc(8 * var(--u));
}

/* ピンクセクション内の h4 ドット */

.cp-under .me-sec--pink .cp-h4 {
	--cp-dot: #ffbbba;
}

/* h4グループ（h4→本文→カードは詰めて24u） */

.cp-set > * + * {
	margin-top: calc(24 * min(100vw / 1440, 1px));
	margin-top: calc(24 * var(--u));
}

/* ============ 丸ドット区切り線（Fig: 3px丸 / 約11px周期） ============ */

.cp-dots {
	background-image: radial-gradient(circle, #afdfb4 calc(1.5 * min(100vw / 1440, 1px)), transparent calc(1.5 * min(100vw / 1440, 1px) + 0.5px));
	background-image: radial-gradient(circle, var(--cp-dot, #afdfb4) calc(1.5 * var(--u)), transparent calc(1.5 * var(--u) + 0.5px));
	background-repeat: repeat-x;
	background-size: calc(11 * min(100vw / 1440, 1px)) calc(3 * min(100vw / 1440, 1px));
	background-size: calc(11 * var(--u)) calc(3 * var(--u));
	border: 0;
	height: calc(3 * min(100vw / 1440, 1px));
	height: calc(3 * var(--u));
}

.cp-under .me-sec--pink .cp-dots {
	--cp-dot: #ffbbba;
}

.me-sec__body > * + .cp-dots,
.me-sec__body > .cp-dots + * {
	margin-top: calc(32 * min(100vw / 1440, 1px));
	margin-top: calc(32 * var(--u));
}

/* ============ 外部リンク（別窓アイコン付き） ============ */

.me-sec__body > * + .cp-extlink {
	margin-top: calc(16 * min(100vw / 1440, 1px));
	margin-top: calc(16 * var(--u));
}

.cp-extlink a {
	align-items: center;
	color: #fd7676;
	color: var(--c-pink);
	display: inline-flex;
	font-family: "Noto Sans JP", sans-serif;
	font-family: var(--font-jp);
	font-size: max(1.5rem, min(calc(16 * min(100vw / 1440, 1px)), 1.6rem));
	font-size: var(--fs-body);
	font-weight: 700;
	gap: calc(8 * min(100vw / 1440, 1px));
	gap: calc(8 * var(--u));
	letter-spacing: 0.03em;
	line-height: 1.6;
	transition: opacity 0.2s ease;
}

.cp-extlink a:focus-visible {
	outline: calc(2 * min(100vw / 1440, 1px)) solid #fd7676;
	outline: calc(2 * var(--u)) solid var(--c-pink);
	outline-offset: calc(2 * min(100vw / 1440, 1px));
	outline-offset: calc(2 * var(--u));
}

.cp-extlink__icn {
	flex-shrink: 0;
	height: auto;
	width: calc(16 * min(100vw / 1440, 1px));
	width: calc(16 * var(--u));
}

/* ============ ページ内/ページ間 遷移リンク（下線+丸矢印。Fig: under-btn-transition） ============ */

.cp-more {
	margin-top: calc(16 * min(100vw / 1440, 1px)) !important;
	margin-top: calc(16 * var(--u)) !important;
}

.cp-more a {
	align-items: center;
	border-bottom: 2px solid #fd7676;
	border-bottom: 2px solid var(--c-pink);
	color: #fd7676;
	color: var(--c-pink);
	display: inline-flex;
	font-family: "Noto Sans JP", sans-serif;
	font-family: var(--font-jp);
	font-size: calc(16 * min(100vw / 1440, 1px));
	font-size: calc(16 * var(--u));
	font-weight: 700;
	gap: calc(12 * min(100vw / 1440, 1px));
	gap: calc(12 * var(--u));
	letter-spacing: 0.05em;
	line-height: 1.5;
	padding-bottom: calc(4 * min(100vw / 1440, 1px));
	padding-bottom: calc(4 * var(--u));
	transition: opacity 0.2s ease;
}

.cp-more a:focus-visible {
	outline: calc(2 * min(100vw / 1440, 1px)) solid #fd7676;
	outline: calc(2 * var(--u)) solid var(--c-pink);
	outline-offset: calc(2 * min(100vw / 1440, 1px));
	outline-offset: calc(2 * var(--u));
}

.cp-more__icn {
	align-items: center;
	background: #fd7676;
	background: var(--c-pink);
	border-radius: 50%;
	display: inline-flex;
	flex-shrink: 0;
	height: calc(24 * min(100vw / 1440, 1px));
	height: calc(24 * var(--u));
	justify-content: center;
	width: calc(24 * min(100vw / 1440, 1px));
	width: calc(24 * var(--u));
}

.cp-more__icn svg {
	height: calc(10 * min(100vw / 1440, 1px));
	height: calc(10 * var(--u));
	width: calc(10 * min(100vw / 1440, 1px));
	width: calc(10 * var(--u));
}

/* =========================================================================
   vaccine-menopause（ワクチン(子宮頸がん予防等)・更年期のお悩み）ページ固有スタイル
   ・下層共通コンポーネント: me-*（_medical-examination.scss）/ cp-*（_under-common.scss）
   ・このファイルは vaccine-menopause 固有の差分のみ
   ========================================================================= */

/* ページ地色（Fig: #fffaf6）。menu直後のフッター空色も me ページと同じ */

body.body-page-vaccine-menopause {
	background: #fffaf6;
}

body.body-page-vaccine-menopause .p-footer {
	--ft-sky: #fff7f1;
}

/* ============ ヒーロー装飾（女性とコアラ / 右側。checkup-pillと同一イラストを再書き出し） ============ */

.vm-hero__koala {
	height: auto;
	position: absolute;
	right: calc(-20 * min(100vw / 1440, 1px));
	right: calc(-20 * var(--u));
	top: calc(109 * min(100vw / 1440, 1px));
	top: calc(109 * var(--u));
	width: calc(197 * min(100vw / 1440, 1px));
	width: calc(197 * var(--u));
	z-index: 1;
}

/* ============ ヒーロー装飾（風船）: このページはPCでも表示（他ページはSPのみ）。共通 .me-hero__balloons を上書き ============ */

body.body-page-vaccine-menopause .me-hero__balloons {
	display: block;
	height: auto;
	left: calc(40 * min(100vw / 1440, 1px));
	left: calc(40 * var(--u));
	position: absolute;
	top: calc(-16 * min(100vw / 1440, 1px));
	top: calc(-16 * var(--u));
	width: calc(73 * min(100vw / 1440, 1px));
	width: calc(73 * var(--u));
	z-index: 1;
}

/* ============ 全幅写真（cp-photo）: SPは比率342:228(=3:2)にトリミング変化(Fig実測) ============ */

.inner {
	margin-left: auto;
	margin-right: auto;
	max-width: 1150px;
	padding-left: 25px;
	padding-right: 25px;
	width: 100%;
}

@media (any-hover: hover) {

.ab-banner:hover {
	opacity: 0.8;
}

.ab-scrolllink a:hover {
	opacity: 0.65;
}

.fq-link a:hover {
	opacity: 0.65;
}

.ft-group summary a:hover {
	opacity: 0.65;
}

.fm-jump__link:hover {
	opacity: 0.65;
}

.me-jump__link:hover {
	opacity: 0.65;
}

.nf-content__btn a:hover {
	opacity: 0.65;
}

.sm-link:hover {
	opacity: 0.65;
}

.sm-sublink:hover {
	opacity: 0.65;
}

.cp-extlink a:hover {
	opacity: 0.65;
}

.cp-more a:hover {
	opacity: 0.65;
}

}

@media (prefers-reduced-motion: reduce) {

.u-rise {
	opacity: 1;
}

.u-rise.is-inview {
	animation: none;
}

.is-loading .ld-women,
.is-loading .ld-koala,
.is-loading-out .ld-women,
.is-loading-out .ld-koala,
.hc-ch.is-in,
.hc-dots.is-in,
.hc-sub.is-in,
.is-revealing .l-topbar,
.is-revealing .p-hero__photos,
.is-revealing .p-hero__illust,
.is-revealing .p-hero__badges,
.is-revealing .p-hero__bird--left,
.is-revealing .p-hero__bird--right,
.p-hero__copy.is-flipping {
	animation: none;
}

.ld-koala {
	transition: none;
}

.gl-track {
	animation: none;
}

}

@media (max-aspect-ratio: 1462/1000) {

.ld-women {
	bottom: 0;
}

.ld-koala--1 {
	bottom: calc(250 * var(--lu));
}

.ld-koala--2 {
	bottom: calc(252 * var(--lu));
}

.is-loading .p-hero__copy {
	top: 27vh;
}

}

@media screen and (min-width: 768px) {

body.body-page-about .me-index {
	margin-left: auto;
	margin-right: auto;
	margin-top: calc(96 * min(100vw / 1440, 1px));
	margin-top: calc(96 * var(--u)); /* Fig実測: パンくず→目次96 */
	width: calc(1040 * min(100vw / 1440, 1px));
	width: calc(1040 * var(--u)); /* 本文と同じ1040幅・中央(Fig: 4ボタン/行) */
}

body.body-page-about .me-index__list {
	display: flex;
	flex-direction: row; /* me系ベースのcolumn指定を打ち消し */
	flex-wrap: wrap;
	gap: calc(12 * min(100vw / 1440, 1px));
	gap: calc(12 * var(--u));
	padding-bottom: calc(120 * min(100vw / 1440, 1px));
	padding-bottom: calc(120 * var(--u));
}

body.body-page-about .me-index__item {
	margin-top: 0;
}

body.body-page-about .me-index__link {
	border: calc(2.5 * min(100vw / 1440, 1px)) solid;
	border: calc(2.5 * var(--u)) solid;
	border-radius: 0;
	min-height: calc(56 * min(100vw / 1440, 1px));
	min-height: calc(56 * var(--u));
	padding: calc(12 * min(100vw / 1440, 1px));
	padding: calc(12 * var(--u));
	width: calc(251 * min(100vw / 1440, 1px));
	width: calc(251 * var(--u));
}

.ab-staff__item:nth-child(2),
.ab-staff__item:nth-child(3) {
	margin-top: calc(24 * min(100vw / 1440, 1px));
	margin-top: calc(24 * var(--u));
}

.ab-notes__bd > :first-child {
	margin-top: 0;
}

.ft-group summary {
	cursor: default;
	pointer-events: none;
}

/* 見出しのリンクだけはクリック可能に戻す */

.ft-group summary a {
	cursor: pointer;
	pointer-events: auto;
}

.ft-group::details-content {
	content-visibility: visible !important;
}

.ft-group > .ft-children {
	display: flex !important;
}

/* リンクの当たり判定を文字幅で止める。flex の既定 align-items:stretch のままだと
     .ft-parent / .ft-group が列幅いっぱいに伸び、文字右側の空白までクリックできてしまう。
     全幅の下線を持つ SP アコーディオンとハンバーガーメニュー(.hm-nav)には効かせないよう
     .p-footer 配下の PC のみに限定する。 */

.p-footer .ft-col,
.p-footer .ft-group {
	align-items: flex-start;
}

.p-footer .ft-children li {
	display: flex; /* li は幅いっぱい、a だけ文字幅 */
}

/* 住所のMAPを改行して住所テキストの下に(アイコン幅ぶん字下げ) */

.ft-map {
	flex: 0 0 100%;
	margin-left: calc(28 * min(100vw / 1440, 1px));
	margin-left: calc(28 * var(--u));
}

.p-info__inner {
	max-width: none;
	padding-left: calc(32 * min(100vw / 1440, 1px));
	padding-left: calc(32 * var(--u));
	padding-right: calc(32 * min(100vw / 1440, 1px));
	padding-right: calc(32 * var(--u));
}

.p-info__addr {
	right: calc(32 * min(100vw / 1440, 1px));
	right: calc(32 * var(--u));
}

/* フッター(.ft-nav)は右端揃え＋列幅は中身任せだが、メニューは左の補助リンク(.hm-sub)と
     左端を揃えたいので左寄せ＋3列均等分配。余白はCTA手前(右側)に寄る。 */

.hm-nav {
	gap: calc(40 * min(100vw / 1440, 1px));
	gap: calc(40 * var(--u)); /* 3列の間隔(SPは縦積みなので対象外) */
	justify-content: flex-start;
}

.hm-nav .ft-col {
	flex: 1 1 0; /* 均等幅。ドット下線が文字より長く伸びる */
	gap: 0;
}

/* 各項目の直下にドット下線 */

.hm-nav .ft-col > .ft-parent,
.hm-nav .ft-col > .ft-group {
	border-bottom: calc(2 * min(100vw / 1440, 1px)) dotted #dcc9c4;
	border-bottom: calc(2 * var(--u)) dotted #dcc9c4;
}

.hm-nav .ft-parent {
	padding-bottom: calc(9 * min(100vw / 1440, 1px));
	padding-bottom: calc(9 * var(--u));
	padding-top: calc(9 * min(100vw / 1440, 1px));
	padding-top: calc(9 * var(--u));
}

.hm-nav .ft-parent::before {
	top: 50%;
	transform: translateY(-50%); /* 丸を文字の縦中央に */
}

.hm-nav .ft-children {
	margin-top: 0;
	padding-bottom: calc(10 * min(100vw / 1440, 1px));
	padding-bottom: calc(10 * var(--u));
}

.hm-nav .ft-group {
	gap: 0; /* 見出しと子リストの上下間隔なし */
}

/* 本文幅1120px・カラム間gap56px(Figma) */

.hm-body {
	-moz-column-gap: calc(50 * min(100vw / 1440, 1px));
	-moz-column-gap: calc(50 * var(--u));
	column-gap: calc(50 * min(100vw / 1440, 1px));
	column-gap: calc(50 * var(--u));
	margin-left: auto;
	margin-right: auto;
	width: 100%;
}

/* 本文を画面縦中央のやや上に配置(上パディング無し) */

.p-hmenu {
	display: flex;
	flex-direction: column;
}

.hm-inner {
	display: flex;
	flex: 1;
	flex-direction: column;
	justify-content: center;
	padding-bottom: calc(120 * min(100vw / 1440, 1px));
	padding-bottom: calc(120 * var(--u));
	width: 100%;
}

.p-loading {
	--lu: calc(100vw / 1440);
}

.is-loading .p-hero__copy {
	--lu: calc(100vw / 1440);
}

.me-tel {
	pointer-events: none;
}

body.body-page-reservation .me-breadcrumb {
	margin-left: calc(-40 * min(100vw / 1440, 1px));
	margin-left: calc(-40 * var(--u));
	margin-right: calc(-40 * min(100vw / 1440, 1px));
	margin-right: calc(-40 * var(--u));
	width: calc(1040 * min(100vw / 1440, 1px));
	width: calc(1040 * var(--u));
}

}

@media screen and (min-width: 768px) and (max-width: 1350px) {

.p-feature__inner {
	-moz-column-gap: calc(40 * min(100vw / 1440, 1px));
	-moz-column-gap: calc(40 * var(--u));
	align-items: flex-start;
	column-gap: calc(40 * min(100vw / 1440, 1px));
	column-gap: calc(40 * var(--u));
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	min-height: 0;
	padding-top: calc(180 * min(100vw / 1440, 1px));
	padding-top: calc(180 * var(--u)); /* 見出しを上端から180u相当に */
	row-gap: calc(72 * min(100vw / 1440, 1px));
	row-gap: calc(72 * var(--u));
	width: calc(1123 * min(100vw / 1440, 1px));
	width: calc(1123 * var(--u));
}

.ft-staffs,
.ft-crouds {
	display: none; /* 上部装飾は被り回避のため非表示 */
}

.p-feature__head {
	flex: 0 0 100%;
	left: auto;
	position: relative;
	right: auto;
	top: auto;
}

.p-feature01 {
	align-items: center;
	display: flex;
	flex: 0 0 100%;
	gap: calc(48 * min(100vw / 1440, 1px));
	gap: calc(48 * var(--u));
	height: auto;
	justify-content: center;
	left: auto;
	position: static;
	top: auto;
	width: 100%;
}

.f01-media {
	flex: 0 0 auto;
	left: auto;
	position: relative;
	top: auto;
	width: calc(520 * min(100vw / 1440, 1px));
	width: calc(520 * var(--u));
}

.f01-text {
	flex: 0 0 auto;
	left: auto;
	position: static;
	top: auto;
	width: calc(480 * min(100vw / 1440, 1px));
	width: calc(480 * var(--u));
}

.ft-card {
	flex: 0 0 calc(288 * min(100vw / 1440, 1px));
	flex: 0 0 calc(288 * var(--u));
	left: auto;
	position: static;
	top: auto;
}

.p-feature__btn {
	flex: 0 0 100%;
	left: auto;
	margin-bottom: calc(180 * min(100vw / 1440, 1px));
	margin-bottom: calc(180 * var(--u)); /* 下の雲バンド+womanゾーン確保 */
	margin-top: calc(24 * min(100vw / 1440, 1px));
	margin-top: calc(24 * var(--u));
	position: static;
	top: auto;
}

.ft-woman {
	bottom: 0;
	left: auto;
	right: calc(60 * min(100vw / 1440, 1px));
	right: calc(60 * var(--u));
	top: auto;
	width: calc(120 * min(100vw / 1440, 1px));
	width: calc(120 * var(--u));
}

}

@media screen and (max-width: 767px) {

.u-desktop {
	display: none;
}

.u-mobile {
	display: block;
}

:root { /* SP: 1デザインpx = 100vw/390。流動させる */
	--u: calc(100vw / 390);
}

a[href^="tel:"] {
	pointer-events: auto;
}

.ac-hero__koala {
	right: calc(-8 * min(100vw / 1440, 1px));
	right: calc(-8 * var(--u));
	top: calc(211 * min(100vw / 1440, 1px));
	top: calc(211 * var(--u));
	width: calc(139 * min(100vw / 1440, 1px));
	width: calc(139 * var(--u));
}

/* SP: カードのみ左右+8u（Fig: 画面余白32・カード幅326） */

body.body-page-abortion-contraception .me-hero__card {
	margin-left: calc(8 * min(100vw / 1440, 1px));
	margin-left: calc(8 * var(--u));
	margin-right: calc(8 * min(100vw / 1440, 1px));
	margin-right: calc(8 * var(--u));
}

body.body-page-abortion-contraception .me-hero__balloons {
	left: calc(48 * min(100vw / 1440, 1px));
	left: calc(48 * var(--u));
}

.me-page .ac-note {
	padding: calc(24 * min(100vw / 1440, 1px));
	padding: calc(24 * var(--u));
}

body.body-page-abortion-contraception .cp-photo img {
	aspect-ratio: 342/228;
}

.ab-deco {
	display: none; /* SPカンプに無いあしらいのため非表示 */
}

.ab-deco.ab-deco--balloons {
	display: block;
	left: calc(50% + 120 * min(100vw / 1440, 1px));
	left: calc(50% + 120 * var(--u));
	top: calc(88 * min(100vw / 1440, 1px));
	top: calc(88 * var(--u)); /* 同(390実測) */
}

.ab-deco.ab-deco--balloons.ab-deco--balloons-1 {
	display: none;
}

.ab-deco--bird1 {
	display: block;
	left: calc(50% - 155 * min(100vw / 1440, 1px));
	left: calc(50% - 155 * var(--u));
	top: calc(40 * min(100vw / 1440, 1px));
	top: calc(40 * var(--u));
	width: calc(59 * min(100vw / 1440, 1px));
	width: calc(59 * var(--u));
}

.ab-deco--bird2-pc {
	display: none;
}

.ab-deco--bird2-sp {
	display: block;
	left: calc(50% + 114 * min(100vw / 1440, 1px));
	left: calc(50% + 114 * var(--u));
	top: 0;
	width: calc(65 * min(100vw / 1440, 1px));
	width: calc(65 * var(--u));
}

.ab-deco--crouds1 {
	display: block;
	left: calc(50% - 215 * min(100vw / 1440, 1px));
	left: calc(50% - 215 * var(--u));
	top: calc(-20 * min(100vw / 1440, 1px));
	top: calc(-20 * var(--u));
	width: calc(177 * min(100vw / 1440, 1px));
	width: calc(177 * var(--u));
}

.ab-deco--birds-pair {
	display: block;
	left: calc(50% + 88 * min(100vw / 1440, 1px));
	left: calc(50% + 88 * var(--u));
	top: calc(24 * min(100vw / 1440, 1px));
	top: calc(24 * var(--u));
	width: calc(83 * min(100vw / 1440, 1px));
	width: calc(83 * var(--u));
}

.ab-deco--crouds2 {
	display: block;
	left: calc(50% - -30 * min(100vw / 1440, 1px));
	left: calc(50% - -30 * var(--u));
	top: calc(-56 * min(100vw / 1440, 1px));
	top: calc(-56 * var(--u));
	width: calc(177 * min(100vw / 1440, 1px));
	width: calc(177 * var(--u));
}

.ab-deco--bird5 {
	display: block;
	left: calc(50% - 172 * min(100vw / 1440, 1px));
	left: calc(50% - 172 * var(--u));
	top: calc(24 * min(100vw / 1440, 1px));
	top: calc(24 * var(--u));
	width: calc(49 * min(100vw / 1440, 1px));
	width: calc(49 * var(--u));
}

.ab-deco--crouds3 {
	display: block;
	left: calc(50% - -30 * min(100vw / 1440, 1px));
	left: calc(50% - -30 * var(--u));
	top: calc(-24 * min(100vw / 1440, 1px));
	top: calc(-24 * var(--u));
	width: calc(177 * min(100vw / 1440, 1px));
	width: calc(177 * var(--u));
}

body.body-page-about .me-head,
body.body-page-about .me-main {
	margin-left: 0;
	width: 100%; /* SPは全幅（1040固定のままだと横スクロールが発生） */
}

body.body-page-about .me-index {
	width: 100%;
}

body.body-page-about .me-index__list {
	padding-bottom: calc(80 * min(100vw / 1440, 1px));
	padding-bottom: calc(80 * var(--u));
}

.ab-hero__koala {
	left: calc(-40 * min(100vw / 1440, 1px));
	left: calc(-40 * var(--u));
	top: calc(75 * min(100vw / 1440, 1px));
	top: calc(75 * var(--u));
	width: calc(94 * min(100vw / 1440, 1px));
	width: calc(94 * var(--u));
}

.ab-hero__woman {
	right: calc(-8 * min(100vw / 1440, 1px));
	right: calc(-8 * var(--u));
	top: calc(316 * min(100vw / 1440, 1px));
	top: calc(316 * var(--u));
	width: calc(118 * min(100vw / 1440, 1px));
	width: calc(118 * var(--u));
}

.ab-h2__ttl {
	font-size: calc(24 * min(100vw / 1440, 1px));
	font-size: calc(24 * var(--u));
	white-space: normal;
}

.ab-h2__body {
	margin-top: calc(56 * min(100vw / 1440, 1px));
	margin-top: calc(56 * var(--u));
	padding-left: 0;
	padding-right: 0;
}

.ab-h2__body > * + .ab-h3s {
	margin-top: calc(56 * min(100vw / 1440, 1px));
	margin-top: calc(56 * var(--u));
}

.ab-photo--a img {
	aspect-ratio: 342/228;
}

.ab-figrow {
	flex-direction: column;
	gap: 0;
}

.ab-figrow__img {
	order: -1;
	width: 100%;
}

.ab-figrow__body {
	margin-top: 0;
}

.ab-cols {
	flex-direction: column;
	gap: calc(24 * min(100vw / 1440, 1px));
	gap: calc(24 * var(--u));
}

.ab-banners {
	align-items: stretch;
	flex-direction: column;
	gap: calc(16 * min(100vw / 1440, 1px));
	gap: calc(16 * var(--u)); /* SP: gap16 */
}

.ab-banner--w500 {
	width: 100%;
}

.ab-banner--w380 {
	width: 100%;
}

.ab-staff {
	justify-content: center;
}

.ab-staff__item {
	max-width: calc(342 * min(100vw / 1440, 1px));
	max-width: calc(342 * var(--u));
	width: 100%;
}

.ab-staff__img {
	height: 100%;
	width: 100%;
}

.ab-gallery {
	grid-template-columns: 1fr;
}

.ab-gallery__cap {
	text-align: center; /* SP: センター寄せ */
}

.ab-notes__item {
	gap: 0; /* SP: 見出し→本文の余白なし */
}

.ab-notes__bd {
	margin-top: calc(-16 * min(100vw / 1440, 1px));
	margin-top: calc(-16 * var(--u));
}

.ab-gmap iframe {
	aspect-ratio: 342/300; /* SP */
}

.ab-access__row {
	gap: calc(8 * min(100vw / 1440, 1px)) calc(16 * min(100vw / 1440, 1px));
	gap: calc(8 * var(--u)) calc(16 * var(--u));
}

.ab-access__cards {
	flex-direction: column;
	gap: calc(16 * min(100vw / 1440, 1px));
	gap: calc(16 * var(--u)); /* SP */
}

.bp-hero__koala {
	right: calc(-8 * min(100vw / 1440, 1px));
	right: calc(-8 * var(--u));
	top: calc(211 * min(100vw / 1440, 1px));
	top: calc(211 * var(--u));
	width: calc(139 * min(100vw / 1440, 1px));
	width: calc(139 * var(--u));
}

/* SP: カードのみ左右+8u（Fig: 画面余白32・カード幅326） */

body.body-page-bleeding-period .me-hero__card {
	margin-left: calc(8 * min(100vw / 1440, 1px));
	margin-left: calc(8 * var(--u));
	margin-right: calc(8 * min(100vw / 1440, 1px));
	margin-right: calc(8 * var(--u));
}

body.body-page-bleeding-period .me-hero__balloons {
	left: calc(48 * min(100vw / 1440, 1px));
	left: calc(48 * var(--u));
}

body.body-page-bleeding-period .me-index__list {
	grid-template-columns: 1fr;
}

body.body-page-bleeding-period .me-index__link {
	border-color: #fd7676; /* Fig: ボタン枠は #fd7676（2件目は既存の市松ルールで緑） */
}

.cp-hero__koala {
	right: calc(-8 * min(100vw / 1440, 1px));
	right: calc(-8 * var(--u));
	top: calc(211 * min(100vw / 1440, 1px));
	top: calc(211 * var(--u));
	width: calc(139 * min(100vw / 1440, 1px));
	width: calc(139 * var(--u));
}

/* SP: カードのみ左右+8u（Fig: 画面余白32・カード幅326） */

body.body-page-checkup-pill .me-hero__card {
	margin-left: calc(8 * min(100vw / 1440, 1px));
	margin-left: calc(8 * var(--u));
	margin-right: calc(8 * min(100vw / 1440, 1px));
	margin-right: calc(8 * var(--u));
}

body.body-page-checkup-pill .me-hero__balloons {
	left: calc(48 * min(100vw / 1440, 1px));
	left: calc(48 * var(--u));
}

body.body-page-checkup-pill .cp-diagram img {
	aspect-ratio: 1/1;
}

body.body-page-checkup-pill .me-index__list {
	grid-template-columns: 1fr;
}

body.body-page-checkup-pill .me-index__link {
	border-color: #fd7676; /* Fig: ボタン枠は #fd7676（2件目は既存の市松ルールで緑） */
}

.p-fixcta {
	bottom: 0;
	display: flex;
	left: 0;
	position: fixed;
	right: 0;
	top: auto;
	z-index: 90; /* ヘッダー(300)/メニュー(200)より背面 */
}

.fixcta__btn {
	align-items: center;
	display: grid;
	flex: 1 1 0;
	font-family: "Noto Sans JP", sans-serif;
	font-family: var(--font-jp);
	font-size: calc(17 * min(100vw / 1440, 1px));
	font-size: calc(17 * var(--u));
	font-weight: 700;
	height: calc(60 * min(100vw / 1440, 1px));
	height: calc(60 * var(--u));
	justify-items: center;
	letter-spacing: 0.05em;
	place-items: center;
	transition: opacity 0.2s ease;
}

.fixcta__btn:hover {
	opacity: 0.8;
}

.fixcta__btn--web {
	background: #ffffff;
	background: var(--c-white);
	border-top: 2px solid #fd7676;
	border-top: 2px solid var(--c-pink);
	color: #fd7676;
	color: var(--c-pink);
}

.fixcta__btn--line {
	background: #06c755;
	background: var(--c-line);
	color: #ffffff;
	color: var(--c-white);
}

body {
	padding-bottom: calc(60 * min(100vw / 1440, 1px));
	padding-bottom: calc(60 * var(--u)); /* 固定CTAで最下部が隠れないよう余白 */
}

/* PC専用改行はSPで無効化 */

br.u-br-pc {
	display: none;
}

/* SP専用改行を有効化 */

br.u-br-sp {
	display: inline;
}

/* 見出し(共通) SP */

.c-heading__ja {
	font-size: calc(32 * min(100vw / 1440, 1px));
	font-size: calc(32 * var(--u));
}

.c-heading__en {
	font-size: calc(14 * min(100vw / 1440, 1px));
	font-size: calc(14 * var(--u));
}

.c-btn-primary {
	width: calc(326 * min(100vw / 1440, 1px));
	width: calc(326 * var(--u));
}

body.body-page-faq .me-head {
	width: 100%; /* SPは全幅（960固定のままだと横スクロールが発生） */
}

body.body-page-faq .me-page {
	padding-top: calc(48 * min(100vw / 1440, 1px));
	padding-top: calc(48 * var(--u)); /* me系既定32 → Fig実測48 */
}

body.body-page-faq .me-hero__card {
	margin-left: calc(8 * min(100vw / 1440, 1px));
	margin-left: calc(8 * var(--u));
	margin-right: calc(8 * min(100vw / 1440, 1px));
	margin-right: calc(8 * var(--u));
}

.fq-jump {
	display: grid;
	grid-template-columns: 1fr 1fr;
	margin-top: calc(80 * min(100vw / 1440, 1px));
	margin-top: calc(80 * var(--u));
	padding-bottom: calc(96 * min(100vw / 1440, 1px));
	padding-bottom: calc(96 * var(--u));
	width: 100%;
}

.fq-jump .me-jump__link {
	width: auto;
}

.fq-jump .me-jump__link:nth-child(3) {
	color: #51ad5a;
}

.fq-jump .me-jump__link:nth-child(4) {
	color: #fd7676;
	color: var(--c-pink);
}

.fq-jump__deco {
	display: none;
}

.fq-cat__inner {
	padding-left: 0;
	padding-right: 0;
	width: 100%;
}

.fq-band .fq-cat__inner {
	padding-left: calc(24 * min(100vw / 1440, 1px));
	padding-left: calc(24 * var(--u));
	padding-right: calc(24 * min(100vw / 1440, 1px));
	padding-right: calc(24 * var(--u));
}

.fq-cat__ttl {
	font-size: calc(28 * min(100vw / 1440, 1px));
	font-size: calc(28 * var(--u));
	gap: calc(6 * min(100vw / 1440, 1px));
	gap: calc(6 * var(--u));
}

.fq-cat__flower {
	width: calc(32 * min(100vw / 1440, 1px));
	width: calc(32 * var(--u));
}

.fq-cat__flower--right {
	width: calc(33 * min(100vw / 1440, 1px));
	width: calc(33 * var(--u));
}

.fq-cat__body {
	margin-top: calc(56 * min(100vw / 1440, 1px));
	margin-top: calc(56 * var(--u));
}

.fq-cat__body > * + * {
	margin-top: calc(56 * min(100vw / 1440, 1px));
	margin-top: calc(56 * var(--u));
}

.fq-cat__deco--bird1 {
	top: calc(-80 * min(100vw / 1440, 1px));
	top: calc(-80 * var(--u)); /* Fig(SP) y4457 - inner上端4537 */
	width: calc(59 * min(100vw / 1440, 1px));
	width: calc(59 * var(--u));
}

.fq-cat__deco--crouds {
	left: calc(-48 * min(100vw / 1440, 1px));
	left: calc(-48 * var(--u)); /* Fig(SP) x161 - me-wrap padding24(非bandはinner原点がx24) */
	top: calc(-140 * min(100vw / 1440, 1px));
	top: calc(-140 * var(--u)); /* Fig(SP) y7173 - inner上端7313 */
	width: calc(177 * min(100vw / 1440, 1px));
	width: calc(177 * var(--u));
}

.fq-cat__deco--birds {
	left: calc(259 * min(100vw / 1440, 1px));
	left: calc(259 * var(--u)); /* Fig(SP) x283 - 24 */
	top: calc(-96 * min(100vw / 1440, 1px));
	top: calc(-96 * var(--u)); /* Fig(SP) y7217 - inner上端7313 */
	width: calc(83 * min(100vw / 1440, 1px));
	width: calc(83 * var(--u));
}

.fq-cat__deco--crouds2 {
	left: calc(280 * min(100vw / 1440, 1px));
	left: calc(280 * var(--u)); /* SPカンプ(x414)は画面外のため、右端から覗く見切れ配置に調整 */
	top: calc(-176 * min(100vw / 1440, 1px));
	top: calc(-176 * var(--u)); /* Fig(SP) y9597 - inner上端9773 */
	width: calc(177 * min(100vw / 1440, 1px));
	width: calc(177 * var(--u));
}

.fq-cat__deco--bird5 {
	left: calc(23 * min(100vw / 1440, 1px));
	left: calc(23 * var(--u));
	top: calc(-96 * min(100vw / 1440, 1px));
	top: calc(-96 * var(--u)); /* Fig(SP) y9677 - inner上端9773 */
	width: calc(49 * min(100vw / 1440, 1px));
	width: calc(49 * var(--u));
}

.fs-hero__koala {
	right: calc(-8 * min(100vw / 1440, 1px));
	right: calc(-8 * var(--u));
	top: calc(211 * min(100vw / 1440, 1px));
	top: calc(211 * var(--u));
	width: calc(139 * min(100vw / 1440, 1px));
	width: calc(139 * var(--u));
}

/* SP: カードのみ左右+8u（Fig実測: 画面余白32・カード幅326） */

body.body-page-fertility-support .me-hero__card {
	margin-left: calc(8 * min(100vw / 1440, 1px));
	margin-left: calc(8 * var(--u));
	margin-right: calc(8 * min(100vw / 1440, 1px));
	margin-right: calc(8 * var(--u));
}

body.body-page-fertility-support .me-hero__balloons {
	left: calc(48 * min(100vw / 1440, 1px));
	left: calc(48 * var(--u));
}

/* Fig実測: 枠幅2u・ピンクは#fd7676（baseの既定#ff8f8fから上書き）。緑はbase既定の#51ad5aのままでOK */

body.body-page-fertility-support .me-index__link {
	border-color: #fd7676;
	border-width: calc(2 * min(100vw / 1440, 1px));
	border-width: calc(2 * var(--u));
}

body.body-page-fertility-support .me-index__list li:nth-child(4n+2) > .me-index__link,
body.body-page-fertility-support .me-index__list li:nth-child(4n+3) > .me-index__link {
	border-color: #51ad5a;
}

.fs-photo img {
	aspect-ratio: 3/2;
}

.body-page-medical-examination .ft-inner {
	margin-top: 0;
}

.ft-inner {
	max-width: calc(342 * min(100vw / 1440, 1px));
	max-width: calc(342 * var(--u));
	padding-left: 0;
	padding-right: 0;
	padding-top: calc(200 * min(100vw / 1440, 1px));
	padding-top: calc(200 * var(--u)); /* Fig実測: 200 */
}

.ft-bird--left {
	margin-left: calc(-128 * min(100vw / 1440, 1px));
	margin-left: calc(-128 * var(--u));
	top: calc(96 * min(100vw / 1440, 1px));
	top: calc(96 * var(--u));
	width: calc(60 * min(100vw / 1440, 1px));
	width: calc(60 * var(--u));
}

.ft-bird--right {
	margin-left: calc(100 * min(100vw / 1440, 1px));
	margin-left: calc(100 * var(--u));
	top: calc(-90 * min(100vw / 1440, 1px));
	top: calc(-90 * var(--u));
	width: calc(98 * min(100vw / 1440, 1px));
	width: calc(98 * var(--u));
}

/* CTA: 中央寄せ・ボタン全幅縦積み */

.ft-cta {
	max-width: none;
}

.ft-cta__lead {
	font-size: calc(20 * min(100vw / 1440, 1px));
	font-size: calc(20 * var(--u));
}

.ft-cta__row {
	align-items: center;
	flex-direction: column;
	gap: calc(24 * min(100vw / 1440, 1px));
	gap: calc(24 * var(--u));
	margin-top: calc(28 * min(100vw / 1440, 1px));
	margin-top: calc(28 * var(--u));
}

.ft-tel {
	text-align: center;
}

.ft-tel__num {
	font-size: calc(30 * min(100vw / 1440, 1px));
	font-size: calc(30 * var(--u));
}

.ft-btns {
	flex-direction: column;
	gap: calc(16 * min(100vw / 1440, 1px));
	gap: calc(16 * var(--u));
	width: 100%;
}

.ft-btn {
	width: 100%;
}

.ft-caution {
	margin-top: calc(28 * min(100vw / 1440, 1px));
	margin-top: calc(28 * var(--u));
}

/* main: 1カラム・順序 nav→sub→brand */

.ft-main {
	-moz-column-gap: 0;
	column-gap: 0;
	grid-template-areas: "nav" "sub" "brand";
	grid-template-columns: 1fr;
	margin-top: calc(64 * min(100vw / 1440, 1px));
	margin-top: calc(64 * var(--u)); /* Fig実測: CTA→ナビ64 */
}

/* ナビ: アコーディオン(親行=全幅・ドット下線・＋/−トグル) */

.ft-nav {
	flex-direction: column;
	gap: 0;
	width: 100%;
}

.ft-col {
	gap: 0;
}

.ft-group {
	gap: 0;
}

/* 区切り線: .hm-nav .ft-parent と同じドット線(2uドット・8uピッチ・線端丸) */

.ft-col > .ft-parent,
.ft-col > .ft-group {
	border-bottom: calc(2 * min(100vw / 1440, 1px)) dotted #dcc9c4;
	border-bottom: calc(2 * var(--u)) dotted #dcc9c4;
}

.ft-parent {
	align-items: center;
	display: flex;
	padding: calc(16 * min(100vw / 1440, 1px)) 0 calc(16 * min(100vw / 1440, 1px)) calc(18 * min(100vw / 1440, 1px));
	padding: calc(16 * var(--u)) 0 calc(16 * var(--u)) calc(18 * var(--u));
}

.ft-parent::before {
	top: 50%;
	transform: translateY(-50%);
}

.ft-group > summary {
	cursor: pointer;
	justify-content: space-between;
	pointer-events: auto;
}

/* SPは文字をタップしても遷移せず開閉する(リンクはPCのみ有効) */

.ft-group > summary a {
	pointer-events: none;
}

.ft-group > summary::after {
	color: #fd7676;
	color: var(--c-pink);
	content: "＋";
	font-family: "Noto Sans JP", sans-serif;
	font-family: var(--font-jp);
	font-size: calc(22 * min(100vw / 1440, 1px));
	font-size: calc(22 * var(--u));
	font-weight: 400;
	line-height: 1;
}

.ft-group[open] > summary::after {
	content: "−";
}

.ft-children {
	gap: calc(16 * min(100vw / 1440, 1px));
	gap: calc(16 * var(--u));
	padding: calc(2 * min(100vw / 1440, 1px)) 0 calc(18 * min(100vw / 1440, 1px)) calc(18 * min(100vw / 1440, 1px));
	padding: calc(2 * var(--u)) 0 calc(18 * var(--u)) calc(18 * var(--u));
}

/* 補助リンク: 縦・左寄せ */

.ft-sub {
	align-items: flex-start;
	flex-direction: column;
	gap: calc(12 * min(100vw / 1440, 1px));
	gap: calc(12 * var(--u));
	margin-top: calc(32 * min(100vw / 1440, 1px));
	margin-top: calc(32 * var(--u));
}

.ft-sub li + li {
	padding-left: 0;
}

.ft-sub li + li::before {
	display: none;
}

/* ブランド: 中央寄せ */

.ft-brand {
	margin-top: calc(48 * min(100vw / 1440, 1px));
	margin-top: calc(48 * var(--u));
	text-align: center;
	width: 100%;
}

.ft-logo {
	margin-left: auto;
	margin-right: auto;
}

.ft-addr,
.ft-train {
	justify-content: center;
}

.ft-train span {
	text-align: left;
}

/* 住所は1行に収める。MAPリンクは折り返して住所の下の行へ
     (SP幅では「住所 + MAP」が1行に入らず、住所が番地の途中で割れるため) */

.ft-addr {
	flex-wrap: wrap;
}

.ft-addr > span {
	white-space: nowrap;
}

.ft-addr .ft-map {
	flex: 0 0 100%;
	justify-content: center;
	margin-left: 0;
	margin-top: calc(4 * min(100vw / 1440, 1px));
	margin-top: calc(4 * var(--u));
}

/* MAPリンクは改行して住所の下・中央寄せ */

.ft-copy {
	margin-top: calc(120 * min(100vw / 1440, 1px));
	margin-top: calc(120 * var(--u));
}

body.body-page-sitemap .p-footer {
	margin-top: calc(-80 * min(100vw / 1440, 1px));
	margin-top: calc(-80 * var(--u));
}

.fm-hero .me-hero {
	width: calc(390 * min(100vw / 1440, 1px));
	width: calc(390 * var(--u));
}

body.body-page-for-mothers .me-hero__card {
	margin-left: calc(8 * min(100vw / 1440, 1px));
	margin-left: calc(8 * var(--u));
	margin-right: calc(8 * min(100vw / 1440, 1px));
	margin-right: calc(8 * var(--u));
}

.fm-hero__stationery {
	left: calc(50% - 179 * min(100vw / 1440, 1px));
	left: calc(50% - 179 * var(--u)); /* Fig SP: 帯中心(384)基準で205 → 中央-179u */
	top: calc(74 * min(100vw / 1440, 1px));
	top: calc(74 * var(--u));
	width: calc(100 * min(100vw / 1440, 1px));
	width: calc(100 * var(--u));
}

.fm-hero__couple {
	left: calc(50% - 37 * min(100vw / 1440, 1px));
	left: calc(50% - 37 * var(--u)); /* Fig SP: 347-384=-37 */
	top: calc(344 * min(100vw / 1440, 1px));
	top: calc(344 * var(--u));
	width: calc(216 * min(100vw / 1440, 1px));
	width: calc(216 * var(--u));
}

body.body-page-for-mothers .me-breadcrumb,
.fm-jump,
.fm-sec {
	margin-left: 0;
	margin-right: 0;
	width: 100%;
}

.fm-jump {
	display: grid;
	grid-template-columns: 1fr 1fr;
	margin-top: calc(80 * min(100vw / 1440, 1px));
	margin-top: calc(80 * var(--u));
	padding-bottom: calc(96 * min(100vw / 1440, 1px));
	padding-bottom: calc(96 * var(--u));
}

.fm-jump__link {
	padding: calc(8 * min(100vw / 1440, 1px));
	padding: calc(8 * var(--u));
	width: auto;
}

.fm-jump__balloon {
	display: none;
}

.fm-sec .fm-h2 {
	gap: calc(16 * min(100vw / 1440, 1px));
	gap: calc(16 * var(--u));
}

.fm-h2__tx {
	font-size: calc(28 * min(100vw / 1440, 1px));
	font-size: calc(28 * var(--u));
}

.fm-h2__flower--left {
	width: calc(32 * min(100vw / 1440, 1px));
	width: calc(32 * var(--u));
}

.fm-h2__flower--right {
	width: calc(33 * min(100vw / 1440, 1px));
	width: calc(33 * var(--u));
}

.fm-sec__body {
	padding-left: 0;
	padding-right: 0;
}

.fm-photo img {
	aspect-ratio: 342/228;
}

.fm-sub-info {
	display: none; /* Fig: SPカンプはこの見出しが無く、本文の次に直接テーブルが続く */
}

.fm-table-info {
	margin-top: calc(56 * min(100vw / 1440, 1px));
	margin-top: calc(56 * var(--u)); /* SPはh3非表示の分、本文からの間隔を詰めて調整 */
}

.fm-sec2-bg {
	padding-left: calc(24 * min(100vw / 1440, 1px));
	padding-left: calc(24 * var(--u));
	padding-right: calc(24 * min(100vw / 1440, 1px));
	padding-right: calc(24 * var(--u)); /* .me-page既定padding-inlineの代替（全幅化で失われる分を復元） */
}

.fm-sec__bird {
	left: calc(16 * min(100vw / 1440, 1px));
	left: calc(16 * var(--u));
	top: calc(-80 * min(100vw / 1440, 1px));
	top: calc(-80 * var(--u));
	width: calc(59 * min(100vw / 1440, 1px));
	width: calc(59 * var(--u));
}

.fm-sched-scroll {
	-webkit-overflow-scrolling: touch;
	overflow-x: auto;
}

.me-table.fm-table--sched {
	min-width: calc(700 * min(100vw / 1440, 1px));
	min-width: calc(700 * var(--u));
}

.me-table.fm-table--sched tr {
	border: 0;
	display: table-row;
}

.me-table.fm-table--sched th,
.me-table.fm-table--sched td {
	border: calc(2 * min(100vw / 1440, 1px)) solid #ffd0c9;
	border: calc(2 * var(--u)) solid #ffd0c9;
	display: table-cell;
	width: auto;
}

.me-table.fm-table--sched .fm-table__col1,
.me-table.fm-table--sched th.fm-table__label {
	width: calc(240 * min(100vw / 1440, 1px));
	width: calc(240 * var(--u));
}

.gs-hero__koala {
	right: calc(-8 * min(100vw / 1440, 1px));
	right: calc(-8 * var(--u));
	top: calc(211 * min(100vw / 1440, 1px));
	top: calc(211 * var(--u));
	width: calc(139 * min(100vw / 1440, 1px));
	width: calc(139 * var(--u));
}

/* SP: カードのみ左右+8u（Fig: 画面余白32・カード幅326） */

body.body-page-gyn-symptoms .me-hero__card {
	margin-left: calc(8 * min(100vw / 1440, 1px));
	margin-left: calc(8 * var(--u));
	margin-right: calc(8 * min(100vw / 1440, 1px));
	margin-right: calc(8 * var(--u));
}

body.body-page-gyn-symptoms .me-hero__balloons {
	left: calc(48 * min(100vw / 1440, 1px));
	left: calc(48 * var(--u));
}

body.body-page-gyn-symptoms .cp-photo img {
	aspect-ratio: 342/228;
}

body.body-page-gyn-symptoms .me-sub__ttl {
	font-size: calc(24 * min(100vw / 1440, 1px));
	font-size: calc(24 * var(--u));
}

body.body-page-gyn-symptoms .me-index__item:nth-child(3) {
	grid-column: 1/-1;
}

body.body-page-gyn-symptoms .me-index__list li:nth-child(3) > .me-index__link {
	border-color: #fd7676;
	border-color: var(--c-pink);
	color: #fd7676;
	color: var(--c-pink);
}

:root {
	--header-h: calc(83 * var(--u)); /* 固定トップバー高さ(情報バー36 + ヘッダー83) */
}

.l-gnav {
	display: none; /* SPはハンバーガー内のため非表示 */
}

/* インフォバー */

.p-info__addr {
	display: none;
}

.p-info__inner {
	min-height: calc(36 * min(100vw / 1440, 1px));
	min-height: calc(36 * var(--u));
}

.p-info__lead {
	font-size: calc(13 * min(100vw / 1440, 1px));
	font-size: calc(13 * var(--u));
	white-space: nowrap;
}

/* ヘッダー */

.l-header__inner {
	min-height: calc(83 * min(100vw / 1440, 1px));
	min-height: calc(83 * var(--u));
	padding-left: calc(12 * min(100vw / 1440, 1px));
	padding-left: calc(12 * var(--u));
	padding-right: calc(12 * min(100vw / 1440, 1px));
	padding-right: calc(12 * var(--u));
}

.l-header__logo {
	gap: calc(8 * min(100vw / 1440, 1px));
	gap: calc(8 * var(--u));
}

.l-header__logo-mark {
	width: calc(60 * min(100vw / 1440, 1px));
	width: calc(60 * var(--u));
}

.l-header__logo-txts {
	width: calc(200 * min(100vw / 1440, 1px));
	width: calc(200 * var(--u));
}

.l-header__right {
	display: none;
}

.l-header__hamburger {
	display: flex;
}

.hm-inner {
	padding: 0 calc(24 * min(100vw / 1440, 1px)) 0;
	padding: 0 calc(24 * var(--u)) 0; /* 下パディング無し=家族イラスト直下でスクロール終了 */
}

/* ヘッダーは通常SPヘッダーと同じ余白・サイズ(12u/83u・ロゴ60u) */

.hm-head {
	min-height: calc(83 * min(100vw / 1440, 1px));
	min-height: calc(83 * var(--u));
	padding-left: calc(12 * min(100vw / 1440, 1px));
	padding-left: calc(12 * var(--u));
	padding-right: calc(12 * min(100vw / 1440, 1px));
	padding-right: calc(12 * var(--u));
}

.hm-logo {
	gap: calc(8 * min(100vw / 1440, 1px));
	gap: calc(8 * var(--u));
}

.hm-logo__mark {
	width: calc(60 * min(100vw / 1440, 1px));
	width: calc(60 * var(--u));
}

.hm-logo__names {
	gap: calc(4 * min(100vw / 1440, 1px));
	gap: calc(4 * var(--u));
}

.hm-logo__corp {
	font-size: calc(11 * min(100vw / 1440, 1px));
	font-size: calc(11 * var(--u));
}

.hm-logo__name {
	font-size: calc(16 * min(100vw / 1440, 1px));
	font-size: calc(16 * var(--u));
	letter-spacing: 0.08em;
}

.hm-close__x {
	height: calc(20 * min(100vw / 1440, 1px));
	height: calc(20 * var(--u));
	width: calc(30 * min(100vw / 1440, 1px));
	width: calc(30 * var(--u));
}

.hm-close__x::before,
.hm-close__x::after {
	width: calc(36 * min(100vw / 1440, 1px));
	width: calc(36 * var(--u));
}

/* 本文: 1カラム縦積み(nav→補助→CTA→家族) */

.hm-body {
	display: block;
	padding-top: calc(24 * min(100vw / 1440, 1px));
	padding-top: calc(24 * var(--u));
}

.hm-sub {
	margin-top: calc(32 * min(100vw / 1440, 1px));
	margin-top: calc(32 * var(--u));
}

.hm-cta {
	margin-top: calc(48 * min(100vw / 1440, 1px));
	margin-top: calc(48 * var(--u));
}

.hm-caution {
	display: block; /* SPメニューは注意バーあり */
}

.hm-family {
	display: block;
	margin: calc(40 * min(100vw / 1440, 1px)) auto 0;
	margin: calc(40 * var(--u)) auto 0;
	position: static;
	width: calc(265 * min(100vw / 1440, 1px));
	width: calc(265 * var(--u));
	z-index: auto;
}

.ld-women {
	bottom: calc(-60 * var(--lu));
}

.ld-koala--1 {
	bottom: calc(190 * var(--lu));
}

.ld-koala--2 {
	bottom: calc(192 * var(--lu));
}

.me-page {
	padding-left: calc(24 * min(100vw / 1440, 1px));
	padding-left: calc(24 * var(--u));
	padding-right: calc(24 * min(100vw / 1440, 1px));
	padding-right: calc(24 * var(--u));
	padding-top: calc(48 * min(100vw / 1440, 1px));
	padding-top: calc(48 * var(--u)); /* Fig更新版: 48(cp-under系と同一) */
}

.me-head {
	margin-left: 0;
	width: 100%;
}

.me-main {
	margin-left: 0;
	padding-bottom: 0;
	width: 100%;
}

/* タイトルカード SP */

.me-hero__card {
	height: calc(300 * min(100vw / 1440, 1px));
	height: calc(300 * var(--u));
}

.me-hero__title {
	font-size: calc(26 * min(100vw / 1440, 1px));
	font-size: calc(26 * var(--u));
	letter-spacing: 0.05em;
	line-height: 1.5;
	max-width: calc(254 * min(100vw / 1440, 1px));
	max-width: calc(254 * var(--u));
}

.me-hero__en {
	font-size: calc(14 * min(100vw / 1440, 1px));
	font-size: calc(14 * var(--u));
}

.me-hero__koala {
	bottom: auto;
	left: calc(-36 * min(100vw / 1440, 1px));
	left: calc(-36 * var(--u));
	top: calc(211 * min(100vw / 1440, 1px));
	top: calc(211 * var(--u));
	width: calc(68 * min(100vw / 1440, 1px));
	width: calc(68 * var(--u));
}

.me-hero__mombaby {
	right: calc(-8 * min(100vw / 1440, 1px));
	right: calc(-8 * var(--u));
	top: calc(211 * min(100vw / 1440, 1px));
	top: calc(211 * var(--u));
	width: calc(86 * min(100vw / 1440, 1px));
	width: calc(86 * var(--u));
}

.me-hero__balloons {
	display: block;
	height: auto;
	left: calc(20 * min(100vw / 1440, 1px));
	left: calc(20 * var(--u));
	position: absolute;
	top: calc(-16 * min(100vw / 1440, 1px));
	top: calc(-16 * var(--u));
	width: calc(40 * min(100vw / 1440, 1px));
	width: calc(40 * var(--u));
	z-index: 1;
}

/* パンくず SP: flexだと長いページ名が箱ごと2行目へ落ちるため、
     インラインの流し込みに切替(＞の隣から始まり画面端で自然折返し) */

/* 目次: 固定解除 → 2列ジャンプボタン */

/* サブメニュー持ち親の下線指定(:has)より優先してSPでは消す */

/* SP: 2列グリッドで市松に色替え（緑=2,3,6… / ピンク=1,4,5…）。隣り合うボタンが必ず別色になる
     ※ピンク側も明示（個別クラス--green等に負けて文字色だけ混ざるのを防ぐ） */

/* セクション SP */

/* 本文パーツ SP */

/* SPは回り込み解除＝写真全幅→本文はその下 */

/* 全幅写真: SPは3:2クロップ(Fig: 342x228。PC用横長アセットの縦つぶれ防止) */

/* 表: ラベル→内容を縦積み（行ごとに枠） */

/* コールアウト / サービス項目 SP */

/* menu セクション SP（バナー・ボタンとも全幅1列・アイコン左＋テキスト左） */

/* SPは under-menu-staff2(女の子のみ)を使用＝小さめ・左上 */

/* 産科バナー：中央寄せ→左寄せ（アイコンをインラインへ戻す） */

/* 6ボタン：3列→1列 */

.me-breadcrumb {
	line-height: 1.8; /* 折返し行間を少し確保 */
	margin-top: calc(80 * min(100vw / 1440, 1px));
	margin-top: calc(80 * var(--u)); /* Fig更新版: 80 */
}

.me-breadcrumb__home {
	margin-right: calc(5 * min(100vw / 1440, 1px));
	margin-right: calc(5 * var(--u));
	vertical-align: middle;
}

.me-breadcrumb > span[aria-hidden] {
	margin-right: calc(5 * min(100vw / 1440, 1px));
	margin-right: calc(5 * var(--u));
}

.me-index {
	left: auto;
	margin-top: calc(80 * min(100vw / 1440, 1px));
	margin-top: calc(80 * var(--u)); /* Fig更新版: 80 */
	max-height: none;
	overflow: visible;
	position: static;
	top: auto;
	width: 100%;
	z-index: auto;
}

.me-index__list {
	grid-gap: calc(12 * min(100vw / 1440, 1px));
	grid-gap: calc(12 * var(--u));
	display: grid;
	gap: calc(12 * min(100vw / 1440, 1px));
	gap: calc(12 * var(--u));
	grid-template-columns: 1fr 1fr;
}

.me-index__link {
	background-image: none; /* PC用のドット下線はSPボタンでは不要 */
	border: calc(2 * min(100vw / 1440, 1px)) solid #ff8f8f;
	border: calc(2 * var(--u)) solid #ff8f8f;
	border-radius: 0;
	justify-content: space-between;
	min-height: calc(56 * min(100vw / 1440, 1px));
	min-height: calc(56 * var(--u)); /* Fig: ボタン高56 */
	padding: calc(3 * min(100vw / 1440, 1px)) calc(12 * min(100vw / 1440, 1px));
	padding: calc(3 * var(--u)) calc(12 * var(--u));
}

.me-index__item:has(.me-index__sub) > .me-index__link {
	background-image: none;
	color: #fd7676;
	color: var(--c-pink);
	font-size: calc(15 * min(100vw / 1440, 1px));
	font-size: calc(15 * var(--u));
	height: 100%;
	line-height: 1.5;
}

.me-index__list li:nth-child(4n+2) > .me-index__link,
.me-index__list li:nth-child(4n+3) > .me-index__link {
	border: 2px solid #51ad5a;
	color: #51ad5a;
}

.me-index__list li:nth-child(4n) > .me-index__link,
.me-index__list li:nth-child(4n+1) > .me-index__link {
	border: 2px solid #ff8f8f;
	color: #fd7676;
	color: var(--c-pink);
}

.me-index__sub {
	display: none; /* SPは大項目のみ */
}

.me-sec {
	margin-top: calc(120 * min(100vw / 1440, 1px));
	margin-top: calc(120 * var(--u)); /* Fig更新版: セクション間120 */
}

.me-main > .me-sec:first-child {
	margin-top: calc(96 * min(100vw / 1440, 1px));
	margin-top: calc(96 * var(--u)); /* ジャンプボタン→最初のセクション96 */
}

.me-sec__num {
	font-size: calc(28 * min(100vw / 1440, 1px));
	font-size: calc(28 * var(--u));
}

.me-sec__line {
	margin-bottom: calc(56 * min(100vw / 1440, 1px));
	margin-bottom: calc(56 * var(--u)); /* SPはライン→本文56(デザイン) */
}

.me-listcard {
	padding: calc(32 * min(100vw / 1440, 1px)) calc(24 * min(100vw / 1440, 1px));
	padding: calc(32 * var(--u)) calc(24 * var(--u)); /* Fig更新版: 32 */
}

.me-sec__body {
	padding-left: 0;
	padding-right: 0;
}

.me-sec__body > * + * {
	margin-top: calc(40 * min(100vw / 1440, 1px));
	margin-top: calc(40 * var(--u)); /* Fig更新版: 40 */
}

.me-sec__body > * + .me-sub__ttl {
	margin-top: calc(56 * min(100vw / 1440, 1px));
	margin-top: calc(56 * var(--u));
}

.me-figrow__img {
	float: none;
	margin: 0 0 calc(40 * min(100vw / 1440, 1px)) 0;
	margin: 0 0 calc(40 * var(--u)) 0; /* Fig更新版: 40 */
	width: 100%;
}

.me-photo img {
	-o-object-fit: cover;
	aspect-ratio: 342/228;
	object-fit: cover;
}

.me-note {
	border-radius: 0;
	padding: calc(24 * min(100vw / 1440, 1px));
	padding: calc(24 * var(--u));
}

.me-sub__ttl {
	font-size: calc(24 * min(100vw / 1440, 1px));
	font-size: calc(24 * var(--u)); /* Fig更新版: 24 */
}

.me-table tr {
	border: 2px solid #ffd0c9;
	border-top: 0;
	display: block;
}

.me-table tbody tr:first-child {
	border-top: 2px solid #ffd0c9;
}

.me-table th,
.me-table td {
	border: 0;
	display: block;
	padding: calc(16 * min(100vw / 1440, 1px));
	padding: calc(16 * var(--u)); /* Fig更新版: セル上下16 */
	width: auto;
}

.me-table th {
	border-bottom: 2px solid #ffd0c9;
	text-align: center; /* SPはラベル行センター寄せ */
}

.me-callout__hd {
	font-size: calc(18 * min(100vw / 1440, 1px));
	font-size: calc(18 * var(--u));
	padding: calc(12 * min(100vw / 1440, 1px));
	padding: calc(12 * var(--u));
}

.me-callout__bd {
	padding: calc(32 * min(100vw / 1440, 1px)) calc(24 * min(100vw / 1440, 1px));
	padding: calc(32 * var(--u)) calc(24 * var(--u)); /* Fig更新版: 32x24 */
}

.me-service__hd {
	font-size: calc(20 * min(100vw / 1440, 1px));
	font-size: calc(20 * var(--u));
}

.me-service__row {
	flex-direction: column;
	gap: calc(16 * min(100vw / 1440, 1px));
	gap: calc(16 * var(--u));
}

.me-service__img {
	flex: none;
	width: 100%;
}

.me-listcard__ul {
	-moz-column-gap: calc(20 * min(100vw / 1440, 1px));
	-moz-column-gap: calc(20 * var(--u));
	column-gap: calc(20 * min(100vw / 1440, 1px));
	column-gap: calc(20 * var(--u));
	row-gap: calc(14 * min(100vw / 1440, 1px));
	row-gap: calc(14 * var(--u));
}

.me-menu { /* SP用の水彩。PCと同じく下端へ溶かすグラデを最前面に重ねる */
	background-image: linear-gradient(to bottom, rgba(255, 247, 241, 0) calc(100% - 320 * min(100vw / 1440, 1px)), #fff7f1 calc(100% - 120 * min(100vw / 1440, 1px))), url("../images/under/medical-examination/menu2-bg-sp.webp");
	background-image: linear-gradient(to bottom, rgba(255, 247, 241, 0) calc(100% - 320 * var(--u)), #fff7f1 calc(100% - 120 * var(--u))), url("../images/under/medical-examination/menu2-bg-sp.webp");
	background-size: 100% 100%, calc(768 * min(100vw / 1440, 1px)) 100%;
	background-size: 100% 100%, calc(768 * var(--u)) 100%; /* 水彩は幅768pxで配置(原寸)＝中央基準で左右トリミング。横方向に縮小しない */
	margin-left: calc(-24 * min(100vw / 1440, 1px));
	margin-left: calc(-24 * var(--u));
	margin-right: calc(-24 * min(100vw / 1440, 1px));
	margin-right: calc(-24 * var(--u)); /* me-pageの左右padding(24u)を相殺＝背景を画面全幅に */
	margin-top: calc(120 * min(100vw / 1440, 1px));
	margin-top: calc(120 * var(--u));
	padding-bottom: calc(240 * min(100vw / 1440, 1px));
	padding-bottom: calc(240 * var(--u));
	padding-left: calc(24 * min(100vw / 1440, 1px));
	padding-left: calc(24 * var(--u));
	padding-right: calc(24 * min(100vw / 1440, 1px));
	padding-right: calc(24 * var(--u)); /* コンテンツは画面端から24u内側 */
	padding-top: calc(120 * min(100vw / 1440, 1px));
	padding-top: calc(120 * var(--u));
}

.me-menu__inner {
	width: 100%;
}

.me-menu__staff {
	left: calc(40 * min(100vw / 1440, 1px));
	left: calc(40 * var(--u));
	margin-left: 0;
	top: calc(-16 * min(100vw / 1440, 1px));
	top: calc(-16 * var(--u));
	width: calc(76 * min(100vw / 1440, 1px));
	width: calc(76 * var(--u));
}

.me-menu__balloons {
	left: auto;
	margin-left: 0;
	right: calc(16 * min(100vw / 1440, 1px));
	right: calc(16 * var(--u));
	top: calc(100 * min(100vw / 1440, 1px));
	top: calc(100 * var(--u));
	width: calc(58 * min(100vw / 1440, 1px));
	width: calc(58 * var(--u));
}

.me-menu__ttl {
	font-size: calc(26 * min(100vw / 1440, 1px));
	font-size: calc(26 * var(--u));
}

.me-menu__en {
	font-size: calc(16 * min(100vw / 1440, 1px));
	font-size: calc(16 * var(--u));
}

.me-menu__icn {
	width: calc(66 * min(100vw / 1440, 1px));
	width: calc(66 * var(--u)); /* SPはアイコン縮小＝テキスト領域確保 */
}

.me-menu__btn .me-menu__name {
	font-size: calc(15 * min(100vw / 1440, 1px));
	font-size: calc(15 * var(--u));
	letter-spacing: 0.03em;
}

.me-menu__obst {
	gap: calc(12 * min(100vw / 1440, 1px));
	gap: calc(12 * var(--u));
	justify-content: flex-start;
	margin-top: calc(32 * min(100vw / 1440, 1px));
	margin-top: calc(32 * var(--u));
	padding-left: calc(20 * min(100vw / 1440, 1px));
	padding-left: calc(20 * var(--u));
	padding-right: calc(20 * min(100vw / 1440, 1px));
	padding-right: calc(20 * var(--u));
	width: 100%;
}

.me-menu__btn {
	gap: calc(12 * min(100vw / 1440, 1px));
	gap: calc(12 * var(--u));
}

.me-menu__obst-icn {
	position: static;
	transform: none;
}

.me-menu__obst-txt {
	text-align: left;
}

.me-menu__grid {
	gap: calc(10 * min(100vw / 1440, 1px));
	gap: calc(10 * var(--u));
	grid-template-columns: 1fr;
	margin-top: calc(10 * min(100vw / 1440, 1px));
	margin-top: calc(10 * var(--u));
}

.nf-content {
	padding-bottom: calc(240 * min(100vw / 1440, 1px));
	padding-bottom: calc(240 * var(--u));
}

/* SP: 本文は画面左右24余白内で自然折返し（Fig: pad24） */

.nf-content__text {
	padding-left: calc(24 * min(100vw / 1440, 1px));
	padding-left: calc(24 * var(--u));
	padding-right: calc(24 * min(100vw / 1440, 1px));
	padding-right: calc(24 * var(--u));
}

/* SP: ボタン幅326（Fig実測: 画面左右32余白） */

.nf-content__btn a {
	width: calc(326 * min(100vw / 1440, 1px));
	width: calc(326 * var(--u));
}

body.body-page-privacy-policy .me-head,
body.body-page-privacy-policy .me-main {
	margin-left: 0;
	width: 100%;
}

/* SP: カードのみ左右+8u（Fig実測: 画面余白32・カード幅326。checkup-pillと同値） */

body.body-page-privacy-policy .me-hero__card {
	margin-left: calc(8 * min(100vw / 1440, 1px));
	margin-left: calc(8 * var(--u));
	margin-right: calc(8 * min(100vw / 1440, 1px));
	margin-right: calc(8 * var(--u));
	width: auto;
}

.pp-hero__br {
	display: inline;
}

body.body-page-recruit br.rc-br-sp {
	display: inline;
}

.rc-deco--staff1 {
	left: calc(265 * min(100vw / 1440, 1px));
	left: calc(265 * var(--u));
	top: calc(282 * min(100vw / 1440, 1px));
	top: calc(282 * var(--u));
	width: calc(109 * min(100vw / 1440, 1px));
	width: calc(109 * var(--u));
}

.rc-deco--staff2 {
	display: none;
}

.rc-deco--balloon {
	display: none;
}

.rc-deco--bird1 {
	left: calc(35 * min(100vw / 1440, 1px));
	left: calc(35 * var(--u));
	top: calc(50 * min(100vw / 1440, 1px));
	top: calc(50 * var(--u));
	width: calc(59 * min(100vw / 1440, 1px));
	width: calc(59 * var(--u));
}

.rc-hero::before {
	background-image: url("../images/under/recruit/hero-bg-sp.webp");
}

.rc-hero .me-hero {
	max-width: none;
}

.rc-hero .me-hero__card {
	margin-left: calc(32 * min(100vw / 1440, 1px));
	margin-left: calc(32 * var(--u));
	margin-right: calc(32 * min(100vw / 1440, 1px));
	margin-right: calc(32 * var(--u));
}

.rc-breadcrumb {
	margin-top: calc(32 * min(100vw / 1440, 1px));
	margin-top: calc(32 * var(--u)); /* SPも32（me系mq既定56を明示的に上書き） */
}

.rc-jump {
	flex-direction: column;
	margin-top: calc(80 * min(100vw / 1440, 1px));
	margin-top: calc(80 * var(--u));
	padding-bottom: calc(96 * min(100vw / 1440, 1px));
	padding-bottom: calc(96 * var(--u));
	padding-left: calc(24 * min(100vw / 1440, 1px));
	padding-left: calc(24 * var(--u));
	padding-right: calc(24 * min(100vw / 1440, 1px));
	padding-right: calc(24 * var(--u));
}

.rc-sec__inner {
	padding-left: calc(24 * min(100vw / 1440, 1px));
	padding-left: calc(24 * var(--u));
	padding-right: calc(24 * min(100vw / 1440, 1px));
	padding-right: calc(24 * var(--u));
}

.rc-h2 {
	font-size: calc(28 * min(100vw / 1440, 1px));
	font-size: calc(28 * var(--u));
	gap: calc(12 * min(100vw / 1440, 1px));
	gap: calc(12 * var(--u));
}

.rc-sec__body {
	padding-left: 0;
	padding-right: 0;
}

.rc-sec__body > * + * {
	margin-top: calc(56 * min(100vw / 1440, 1px));
	margin-top: calc(56 * var(--u));
}

.rc-job__list > * + * {
	margin-top: calc(56 * min(100vw / 1440, 1px));
	margin-top: calc(56 * var(--u));
}

.rc-job__row {
	flex-direction: column;
}

.rc-job__photo {
	margin-left: auto;
	margin-right: auto;
	width: calc(342 * min(100vw / 1440, 1px));
	width: calc(342 * var(--u));
}

body.body-page-recruit .me-breadcrumb {
	width: calc(100% - 48 * min(100vw / 1440, 1px));
	width: calc(100% - 48 * var(--u));
}

body.body-page-reservation .me-head {
	width: 100%; /* SPは全幅（960固定のままだと横スクロールが発生） */
}

/* SP: カードのみ左右+8u（Fig: 画面余白32・カード幅326。ページ側padding24u+8u=32u） */

body.body-page-reservation .me-hero__card {
	margin-left: calc(8 * min(100vw / 1440, 1px));
	margin-left: calc(8 * var(--u));
	margin-right: calc(8 * min(100vw / 1440, 1px));
	margin-right: calc(8 * var(--u));
}

.rv-jump,
.rv-sec {
	margin-left: 0;
	margin-right: 0;
	width: 100%;
}

.rv-jump {
	display: grid;
	grid-template-columns: 1fr 1fr;
	margin-top: calc(80 * min(100vw / 1440, 1px));
	margin-top: calc(80 * var(--u));
	padding-bottom: calc(96 * min(100vw / 1440, 1px));
	padding-bottom: calc(96 * var(--u));
}

.rv-jump .me-jump__link {
	width: auto;
}

.rv-btn--wide {
	margin-left: auto;
	margin-right: auto;
}

.rv-steps {
	padding-left: 0; /* Fig実測SP: li x=24=本文と同じ */
}

.rv-sec .me-callout__bd {
	padding: calc(32 * min(100vw / 1440, 1px)) calc(24 * min(100vw / 1440, 1px));
	padding: calc(32 * var(--u)) calc(24 * var(--u));
}

.rv-line-bg {
	margin-top: calc(120 * min(100vw / 1440, 1px));
	margin-top: calc(120 * var(--u));
	padding-bottom: calc(240 * min(100vw / 1440, 1px));
	padding-bottom: calc(240 * var(--u)); /* Fig実測: LINEセクション末尾→フッター120（PC/SP同値） */
	padding-left: calc(24 * min(100vw / 1440, 1px));
	padding-left: calc(24 * var(--u));
	padding-right: calc(24 * min(100vw / 1440, 1px));
	padding-right: calc(24 * var(--u)); /* SPは.me-page既定padding-inlineの代替（全幅化で失われる分を復元） */
}

.sm-hero {
	margin-left: calc(-24 * min(100vw / 1440, 1px));
	margin-left: calc(-24 * var(--u));
	margin-right: calc(-24 * min(100vw / 1440, 1px));
	margin-right: calc(-24 * var(--u)); /* .me-page の左右padding(24u)を相殺して帯を全幅に */
	margin-top: 0; /* SPは .me-page の padding-top:48u で既に確保済み(二重計上を避ける) */
	padding-left: calc(24 * min(100vw / 1440, 1px));
	padding-left: calc(24 * var(--u));
	padding-right: calc(24 * min(100vw / 1440, 1px));
	padding-right: calc(24 * var(--u));
}

.sm-hero .me-hero {
	width: 100%;
}

.sm-hero .me-hero__card {
	margin-left: calc(8 * min(100vw / 1440, 1px));
	margin-left: calc(8 * var(--u));
	margin-right: calc(8 * min(100vw / 1440, 1px));
	margin-right: calc(8 * var(--u)); /* Fig: 画面余白32・カード幅326 */
}

.sm-wrap {
	margin-left: 0;
	margin-right: 0; /* .me-page の padding-inline:24u をそのまま利用 */
	width: 100%;
}

body.body-page-sitemap .me-breadcrumb {
	margin-top: calc(80 * min(100vw / 1440, 1px));
	margin-top: calc(80 * var(--u));
}

.sm-sec {
	margin-top: calc(80 * min(100vw / 1440, 1px));
	margin-top: calc(80 * var(--u));
	padding-bottom: calc(240 * min(100vw / 1440, 1px));
	padding-bottom: calc(240 * var(--u)); /* Fig実測: 一覧末尾→フッター */
}

.sm-h2 {
	font-size: calc(28 * min(100vw / 1440, 1px));
	font-size: calc(28 * var(--u));
}

.sm-list {
	margin-top: calc(56 * min(100vw / 1440, 1px));
	margin-top: calc(56 * var(--u)); /* Fig実測: h2→一覧(SP) */
	padding: 0;
}

.sm-br-sp {
	display: inline;
}

.sm-sublist {
	align-items: flex-start;
	flex-direction: column;
}

.sm-sublist__sep {
	display: none; /* Fig: SPは「/」なしで縦積み */
}

body.body-page-specialized-clinic br.u-br-sp {
	display: inline;
}

.sc-deco--balloon {
	display: none;
}

.sc-deco--bird1 {
	left: calc(40 * min(100vw / 1440, 1px));
	left: calc(40 * var(--u));
	top: calc(40 * min(100vw / 1440, 1px));
	top: calc(40 * var(--u));
	width: calc(59 * min(100vw / 1440, 1px));
	width: calc(59 * var(--u));
}

.sc-deco--bird2 {
	display: none; /* SPカンプに存在しない */
}

.sc-deco--crouds1 {
	left: calc(-15 * min(100vw / 1440, 1px));
	left: calc(-15 * var(--u));
	top: calc(-24 * min(100vw / 1440, 1px));
	top: calc(-24 * var(--u));
	width: calc(177 * min(100vw / 1440, 1px));
	width: calc(177 * var(--u));
}

.sc-deco--birdspair {
	left: calc(283 * min(100vw / 1440, 1px));
	left: calc(283 * var(--u));
	top: calc(20 * min(100vw / 1440, 1px));
	top: calc(20 * var(--u));
	width: calc(83 * min(100vw / 1440, 1px));
	width: calc(83 * var(--u));
}

.sc-deco--crouds2 {
	left: calc(243 * min(100vw / 1440, 1px));
	left: calc(243 * var(--u));
	width: calc(177 * min(100vw / 1440, 1px));
	width: calc(177 * var(--u));
}

.sc-deco--bird5 {
	left: calc(23 * min(100vw / 1440, 1px));
	left: calc(23 * var(--u));
	top: calc(24 * min(100vw / 1440, 1px));
	top: calc(24 * var(--u));
	width: calc(49 * min(100vw / 1440, 1px));
	width: calc(49 * var(--u));
}

.sc-deco--crouds3 {
	left: calc(243 * min(100vw / 1440, 1px));
	left: calc(243 * var(--u));
	width: calc(177 * min(100vw / 1440, 1px));
	width: calc(177 * var(--u));
}

.sc-hero::before {
	background-image: url("../images/under/specialized-clinic/hero-bg-sp.webp");
}

.sc-hero .me-hero {
	max-width: none;
}

.sc-hero .me-hero__card {
	margin-left: calc(32 * min(100vw / 1440, 1px));
	margin-left: calc(32 * var(--u));
	margin-right: calc(32 * min(100vw / 1440, 1px));
	margin-right: calc(32 * var(--u));
}

.sc-hero__doctor {
	left: calc(270 * min(100vw / 1440, 1px));
	left: calc(270 * var(--u));
	top: calc(324 * min(100vw / 1440, 1px));
	top: calc(324 * var(--u));
	width: calc(104 * min(100vw / 1440, 1px));
	width: calc(104 * var(--u));
}

.sc-index {
	padding-left: calc(24 * min(100vw / 1440, 1px));
	padding-left: calc(24 * var(--u));
	padding-right: calc(24 * min(100vw / 1440, 1px));
	padding-right: calc(24 * var(--u));
}

.sc-index__list {
	grid-template-columns: 1fr 1fr;
}

.sc-index__item:nth-child(-n+4) {
	grid-column: 1/-1;
}

.sc-sec__inner {
	padding-left: calc(24 * min(100vw / 1440, 1px));
	padding-left: calc(24 * var(--u));
	padding-right: calc(24 * min(100vw / 1440, 1px));
	padding-right: calc(24 * var(--u));
}

.sc-sec__ttl {
	font-size: calc(28 * min(100vw / 1440, 1px));
	font-size: calc(28 * var(--u));
	gap: calc(8 * min(100vw / 1440, 1px));
	gap: calc(8 * var(--u));
}

.sc-sec__body {
	padding-left: 0;
	padding-right: 0;
}

.sc-photo img {
	aspect-ratio: 342/228;
}

body.body-page-specialized-clinic .me-figrow__img {
	margin-bottom: calc(40 * min(100vw / 1440, 1px));
	margin-bottom: calc(40 * var(--u));
}

body.body-page-specialized-clinic .me-breadcrumb {
	width: calc(100% - 48 * min(100vw / 1440, 1px));
	width: calc(100% - 48 * var(--u));
}

.l-topbg {
	background-image: url("../images/hero-bg-sp.webp");
}

/* ヒーロー SP */

.p-hero__photos {
	display: none; /* SPのFVには写真スライドショーなし */
}

/* ヘッダー下端→ヒーロー(コピー)上端の余白 48px(390カンプ準拠) */

.p-hero {
	padding-bottom: calc(40 * min(100vw / 1440, 1px));
	padding-bottom: calc(40 * var(--u));
	padding-top: calc(48 * min(100vw / 1440, 1px));
	padding-top: calc(48 * var(--u));
}

.p-hero__stage {
	height: calc(638 * min(100vw / 1440, 1px));
	height: calc(638 * var(--u));
	width: calc(346 * min(100vw / 1440, 1px));
	width: calc(346 * var(--u));
}

/* コピー: SPのアートボードに指定が無いため、PC構図をステージ幅(346)に合わせて縮小配置。
     コピーとイラストは同量(14u)ずつ引き上げ、両者の間隔 44.3u は維持する。 */

.p-hero__copy {
	--hc-w: calc(320 * var(--u));
	left: calc(13 * min(100vw / 1440, 1px));
	left: calc(13 * var(--u));
	right: auto;
	top: calc(10 * min(100vw / 1440, 1px));
	top: calc(10 * var(--u));
}

.p-hero__illust {
	left: calc(3 * min(100vw / 1440, 1px));
	left: calc(3 * var(--u));
	top: calc(136 * min(100vw / 1440, 1px));
	top: calc(136 * var(--u));
	width: calc(340 * min(100vw / 1440, 1px));
	width: calc(340 * var(--u));
}

.p-hero__bird--left {
	left: calc(2 * min(100vw / 1440, 1px));
	left: calc(2 * var(--u));
	top: calc(118 * min(100vw / 1440, 1px));
	top: calc(118 * var(--u));
	width: calc(49 * min(100vw / 1440, 1px));
	width: calc(49 * var(--u));
}

.p-hero__bird--right {
	left: calc(208 * min(100vw / 1440, 1px));
	left: calc(208 * var(--u));
	top: calc(561 * min(100vw / 1440, 1px));
	top: calc(561 * var(--u));
	width: calc(88 * min(100vw / 1440, 1px));
	width: calc(88 * var(--u));
}

.p-hero__badges {
	gap: calc(8 * min(100vw / 1440, 1px));
	gap: calc(8 * var(--u));
	left: 0;
	top: calc(427 * min(100vw / 1440, 1px));
	top: calc(427 * var(--u));
	width: calc(346 * min(100vw / 1440, 1px));
	width: calc(346 * var(--u));
}

.c-badge {
	height: calc(110 * min(100vw / 1440, 1px));
	height: calc(110 * var(--u));
	width: calc(110 * min(100vw / 1440, 1px));
	width: calc(110 * var(--u));
}

.c-badge__crown {
	top: calc(16 * min(100vw / 1440, 1px));
	top: calc(16 * var(--u));
	width: calc(34 * min(100vw / 1440, 1px));
	width: calc(34 * var(--u));
}

.c-badge__text {
	font-size: calc(13 * min(100vw / 1440, 1px));
	font-size: calc(13 * var(--u));
	margin-top: calc(14 * min(100vw / 1440, 1px));
	margin-top: calc(14 * var(--u));
}

/* ごあいさつ SP */

.p-greeting {
	margin-top: calc(-58 * min(100vw / 1440, 1px));
	margin-top: calc(-58 * var(--u)); /* SP: heroとの間隔を詰める */
	padding-bottom: calc(40 * min(100vw / 1440, 1px));
	padding-bottom: calc(40 * var(--u));
	padding-top: calc(40 * min(100vw / 1440, 1px));
	padding-top: calc(40 * var(--u));
}

/* min-height: 390では1428px。幅拡大時の伸びを抑え(下部の余白過多を防ぎ)、feature/アーチを相対的に引き上げる */

.p-greeting__inner {
	min-height: calc(1000 * min(100vw / 1440, 1px) + 428px);
	min-height: calc(1000 * var(--u) + 428px);
	width: 100%;
}

.p-greeting__body {
	left: 0;
	padding-left: calc(32 * min(100vw / 1440, 1px));
	padding-left: calc(32 * var(--u));
	padding-right: calc(32 * min(100vw / 1440, 1px));
	padding-right: calc(32 * var(--u));
	right: 0;
	top: calc(245 * min(100vw / 1440, 1px));
	top: calc(245 * var(--u));
	transform: none;
	width: auto;
}

.p-greeting__text {
	text-align: center;
}

.g-babies {
	left: calc(-24 * min(100vw / 1440, 1px));
	left: calc(-24 * var(--u));
	top: calc(808 * min(100vw / 1440, 1px) + 346px);
	top: calc(808 * var(--u) + 346px);
	width: calc(180 * min(100vw / 1440, 1px));
	width: calc(180 * var(--u)); /* 390で1154px維持・帯域の伸び抑制 */
}

.g-group {
	left: calc(-29 * min(100vw / 1440, 1px));
	left: calc(-29 * var(--u));
	top: 0;
	width: calc(300 * min(100vw / 1440, 1px));
	width: calc(300 * var(--u));
}

.g-balloon {
	left: calc(310 * min(100vw / 1440, 1px) + 10px);
	left: calc(310 * var(--u) + 10px);
	top: calc(80 * min(100vw / 1440, 1px) + 40px);
	top: calc(80 * var(--u) + 40px);
	width: calc(41 * min(100vw / 1440, 1px));
	width: calc(41 * var(--u));
}

.g-clouds {
	left: calc(243 * min(100vw / 1440, 1px) + 10px);
	left: calc(243 * var(--u) + 10px);
	top: calc(94 * min(100vw / 1440, 1px) + 100px);
	top: calc(94 * var(--u) + 100px);
	width: calc(84 * min(100vw / 1440, 1px));
	width: calc(84 * var(--u));
}

.g-baby {
	left: calc(25 * min(100vw / 1440, 1px));
	left: calc(25 * var(--u));
	top: calc(155 * min(100vw / 1440, 1px));
	top: calc(155 * var(--u));
	width: calc(54 * min(100vw / 1440, 1px));
	width: calc(54 * var(--u));
}

.p-greeting__inner > img.g-baby {
	z-index: 3; /* 基底(.p-greeting__inner>img z1)より高詳細度で前面化 */
}

/* top: 390では1008px維持。本文(--fs-body)は16pxクランプで拡大しないため、幅拡大時に絶対配置のg-facilityだけ
     下がりボタンとの隙間が過剰に開く。幅増加ぶんの伸びを半分(740u分)に抑え、残りを固定px(268)で担保して隙間の
     広がりを約半減させる(431〜768帯対策)。u=1で740+268=1008。 */

.g-facility {
	left: calc(180 * min(100vw / 1440, 1px));
	left: calc(180 * var(--u));
	top: calc(570 * min(100vw / 1440, 1px) + 438px);
	top: calc(570 * var(--u) + 438px);
	width: calc(240 * min(100vw / 1440, 1px));
	width: calc(240 * var(--u));
}

.g-mombaby {
	left: calc(210 * min(100vw / 1440, 1px));
	left: calc(210 * var(--u));
	top: calc(892 * min(100vw / 1440, 1px) + 382px);
	top: calc(892 * var(--u) + 382px);
	width: calc(116 * min(100vw / 1440, 1px));
	width: calc(116 * var(--u)); /* 390で1274px維持・帯域の伸び抑制(アーチとキープ) */
}

/* 特長 SP: 縦積み */

.p-feature { /* SPアーチ(Figma忠実): 楕円1000×320(rx500/ry160)を390幅で中央クリップ→端の落差≈13px */
	--arch-rx: calc(500 * var(--u));
	--arch-ry: calc(160 * var(--u));
	margin-top: calc(-30 * min(100vw / 1440, 1px));
	margin-top: calc(-30 * var(--u)); /* SPは食い込み控えめ */
	padding-bottom: calc(24 * min(100vw / 1440, 1px));
	padding-bottom: calc(24 * var(--u));
	padding-top: calc(112 * min(100vw / 1440, 1px));
	padding-top: calc(112 * var(--u));
}

.p-feature__inner {
	align-items: center;
	display: flex;
	flex-direction: column;
	gap: calc(72 * min(100vw / 1440, 1px));
	gap: calc(72 * var(--u));
	min-height: 0;
	padding-left: calc(24 * min(100vw / 1440, 1px));
	padding-left: calc(24 * var(--u));
	padding-right: calc(24 * min(100vw / 1440, 1px));
	padding-right: calc(24 * var(--u));
	padding-top: calc(70 * min(100vw / 1440, 1px));
	padding-top: calc(70 * var(--u));
	position: relative;
	width: auto;
}

.ft-staffs {
	display: none;
}

.ft-crouds {
	display: none; /* SPでは h2上の雲は非表示(birdのみ) */
}

.ft-woman {
	bottom: calc(-24 * min(100vw / 1440, 1px));
	bottom: calc(-24 * var(--u));
	left: auto;
	right: calc(6 * min(100vw / 1440, 1px));
	right: calc(6 * var(--u));
	top: auto;
	width: calc(101 * min(100vw / 1440, 1px));
	width: calc(101 * var(--u));
}

.p-feature__head {
	position: relative;
	top: 0;
}

.p-feature .ft-bird {
	top: calc(-86 * min(100vw / 1440, 1px));
	top: calc(-86 * var(--u));
	width: calc(65 * min(100vw / 1440, 1px));
	width: calc(65 * var(--u)); /* SPは小さめ・heading上端の少し上 */
}

.p-feature .c-heading__ja {
	font-size: calc(32 * min(100vw / 1440, 1px));
	font-size: calc(32 * var(--u));
}

.p-feature .c-heading__en {
	font-size: calc(14 * min(100vw / 1440, 1px));
	font-size: calc(14 * var(--u));
}

.p-feature01 {
	align-items: center;
	display: flex;
	flex-direction: column;
	height: auto;
	left: auto;
	position: static;
	top: auto;
	width: 100%;
}

.f01-media {
	left: calc(-13 * min(100vw / 1440, 1px));
	left: calc(-13 * var(--u));
	position: relative;
	top: auto;
	width: calc(342 * min(100vw / 1440, 1px));
	width: calc(342 * var(--u)); /* doctor+staffの2人を画面中央へ(左へ13px)。blobは意図的に左寄せ */
}

.f01-num {
	font-size: calc(42 * min(100vw / 1440, 1px));
	font-size: calc(42 * var(--u));
}

.f01-line {
	display: none; /* SPはドット罫線なし */
}

.f01-text {
	left: auto;
	margin-top: calc(28 * min(100vw / 1440, 1px));
	margin-top: calc(28 * var(--u));
	position: static;
	top: auto;
	width: 100%;
}

.f01-title {
	font-size: calc(24 * min(100vw / 1440, 1px));
	font-size: calc(24 * var(--u));
	margin-bottom: calc(28 * min(100vw / 1440, 1px));
	margin-bottom: calc(28 * var(--u));
	text-align: center;
}

.f01-body {
	text-align: center;
}

.ft-card {
	left: auto;
	max-width: calc(342 * min(100vw / 1440, 1px));
	max-width: calc(342 * var(--u));
	position: static;
	top: auto;
	width: 100%;
}

.ft-card__num {
	font-size: calc(42 * min(100vw / 1440, 1px));
	font-size: calc(42 * var(--u));
}

/* ボタン下に雲バンド+feature-womanの装飾ゾーンを確保(デザイン: ボタン下端〜本体下端 約155u) */

.p-feature__btn {
	left: auto;
	margin-bottom: calc(131 * min(100vw / 1440, 1px));
	margin-bottom: calc(131 * var(--u));
	position: static;
	top: auto;
}

/* 診療メニュー SP */

.p-menu {
	background-image: url("../images/menu-bg-blue-sp.webp");
	background-size: 100% calc(550 * min(100vw / 1440, 1px));
	background-size: 100% calc(550 * var(--u));
	padding-bottom: calc(60 * min(100vw / 1440, 1px));
	padding-bottom: calc(60 * var(--u)); /* カード→couple の距離 */
	padding-top: calc(40 * min(100vw / 1440, 1px));
	padding-top: calc(40 * var(--u));
}

.p-menu__inner {
	padding-left: calc(24 * min(100vw / 1440, 1px));
	padding-left: calc(24 * var(--u));
	padding-right: calc(24 * min(100vw / 1440, 1px));
	padding-right: calc(24 * var(--u));
	padding-top: calc(56 * min(100vw / 1440, 1px));
	padding-top: calc(56 * var(--u));
	width: 100%;
}

.m-mombaby,
.m-woman,
.m-bird2 {
	display: none; /* SPは装飾を簡素化 */
}

.m-bird1 {
	left: calc(30 * min(100vw / 1440, 1px));
	left: calc(30 * var(--u));
	top: calc(20 * min(100vw / 1440, 1px));
	top: calc(20 * var(--u));
	width: calc(65 * min(100vw / 1440, 1px));
	width: calc(65 * var(--u));
}

.m-balloons {
	left: auto;
	right: calc(24 * min(100vw / 1440, 1px));
	right: calc(24 * var(--u));
	top: 0;
	width: calc(40 * min(100vw / 1440, 1px));
	width: calc(40 * var(--u));
}

.m-h2 {
	gap: calc(20 * min(100vw / 1440, 1px));
	gap: calc(20 * var(--u));
}

.m-h2__flower {
	width: calc(59 * min(100vw / 1440, 1px));
	width: calc(59 * var(--u));
}

.m-h2__ja {
	font-size: calc(32 * min(100vw / 1440, 1px));
	font-size: calc(32 * var(--u));
}

.m-h2__en {
	font-size: calc(14 * min(100vw / 1440, 1px));
	font-size: calc(14 * var(--u));
}

.p-menu__lead {
	margin-top: calc(24 * min(100vw / 1440, 1px));
	margin-top: calc(24 * var(--u));
	text-align: center;
}

/* 産科バナー SP: 342幅・タグ2×2・コアラ */

.m-obst {
	background-image: url("../images/menu-obstetrics-bg-sp.webp");
	height: calc(203 * min(100vw / 1440, 1px));
	height: calc(203 * var(--u));
	margin-top: calc(48 * min(100vw / 1440, 1px));
	margin-top: calc(48 * var(--u));
	width: 100%;
}

.m-koala {
	display: block;
	height: auto;
	left: calc(-6 * min(100vw / 1440, 1px));
	left: calc(-6 * var(--u));
	position: absolute;
	top: calc(160 * min(100vw / 1440, 1px));
	top: calc(160 * var(--u));
	width: calc(56 * min(100vw / 1440, 1px));
	width: calc(56 * var(--u));
	z-index: 3;
}

.m-obst__body {
	left: calc(39 * min(100vw / 1440, 1px));
	left: calc(39 * var(--u));
	top: calc(25 * min(100vw / 1440, 1px));
	top: calc(25 * var(--u));
	width: calc(264 * min(100vw / 1440, 1px));
	width: calc(264 * var(--u));
}

.m-obst__ja {
	font-size: calc(28 * min(100vw / 1440, 1px));
	font-size: calc(28 * var(--u));
}

.m-obst__en {
	font-size: calc(14 * min(100vw / 1440, 1px));
	font-size: calc(14 * var(--u));
}

.m-tags {
	flex-wrap: wrap;
	gap: calc(4 * min(100vw / 1440, 1px));
	gap: calc(4 * var(--u));
	margin-left: auto;
	margin-right: auto;
	max-width: calc(264 * min(100vw / 1440, 1px));
	max-width: calc(264 * var(--u));
}

.m-tag {
	padding-left: 0;
	padding-right: 0;
	width: calc(130 * min(100vw / 1440, 1px));
	width: calc(130 * var(--u));
}

/* 婦人科 SP: 1カラム縦積み */

.m-gyn {
	margin-top: calc(56 * min(100vw / 1440, 1px));
	margin-top: calc(56 * var(--u));
}

.m-gyn__ja {
	font-size: calc(28 * min(100vw / 1440, 1px));
	font-size: calc(28 * var(--u));
}

.m-gyn__en {
	font-size: calc(14 * min(100vw / 1440, 1px));
	font-size: calc(14 * var(--u));
}

.m-gyn__grid {
	gap: calc(16 * min(100vw / 1440, 1px));
	gap: calc(16 * var(--u));
	grid-template-columns: 1fr;
	margin-top: calc(32 * min(100vw / 1440, 1px));
	margin-top: calc(32 * var(--u));
}

.m-card {
	height: calc(180 * min(100vw / 1440, 1px));
	height: calc(180 * var(--u));
}

/* 母親学級のご案内 SP: 縦積み */

.p-fm {
	margin-top: 0;
}

.l-fmbg::before {
	--arch-rx: calc(500 * var(--u));
	--arch-ry: calc(90 * var(--u));
	bottom: calc(27 * min(100vw / 1440, 1px));
	bottom: calc(27 * var(--u));
	top: 0;
}

.l-fmbg::after {
	height: calc(27 * min(100vw / 1440, 1px));
	height: calc(27 * var(--u)); /* SP: salmonはgallery下端の27px上で終わる */
}

.p-fm__inner {
	padding-left: calc(24 * min(100vw / 1440, 1px));
	padding-left: calc(24 * var(--u));
	padding-right: calc(24 * min(100vw / 1440, 1px));
	padding-right: calc(24 * var(--u));
	padding-top: calc(168 * min(100vw / 1440, 1px));
	padding-top: calc(168 * var(--u));
	width: 100%;
}

.fm-couple {
	top: 0;
	width: calc(216 * min(100vw / 1440, 1px));
	width: calc(216 * var(--u));
}

.fm-device {
	display: none;
}

.fm-crouds {
	left: calc(16 * min(100vw / 1440, 1px));
	left: calc(16 * var(--u));
	top: calc(304 * min(100vw / 1440, 1px));
	top: calc(304 * var(--u));
	width: calc(84 * min(100vw / 1440, 1px));
	width: calc(84 * var(--u));
}

.fm-stationery {
	left: auto;
	right: calc(24 * min(100vw / 1440, 1px));
	right: calc(24 * var(--u));
	top: calc(560 * min(100vw / 1440, 1px));
	top: calc(560 * var(--u));
	width: calc(100 * min(100vw / 1440, 1px));
	width: calc(100 * var(--u));
}

.fm-bubble {
	font-size: calc(32 * min(100vw / 1440, 1px));
	font-size: calc(32 * var(--u));
	height: calc(50 * min(100vw / 1440, 1px));
	height: calc(50 * var(--u));
	width: calc(50 * min(100vw / 1440, 1px));
	width: calc(50 * var(--u));
}

/* .p-fm スコープ: for-mothersページの .fm-h2(gap16u) に漏らさないため */

.p-fm .fm-h2 {
	gap: calc(8 * min(100vw / 1440, 1px));
	gap: calc(8 * var(--u));
}

.fm-h2__rest {
	font-size: calc(32 * min(100vw / 1440, 1px));
	font-size: calc(32 * var(--u));
}

.fm-h2__en {
	font-size: calc(14 * min(100vw / 1440, 1px));
	font-size: calc(14 * var(--u));
}

.p-fm__content {
	flex-direction: column;
	gap: calc(32 * min(100vw / 1440, 1px));
	gap: calc(32 * var(--u));
	margin-top: calc(40 * min(100vw / 1440, 1px));
	margin-top: calc(40 * var(--u));
	width: 100%;
}

.fm-online {
	width: calc(340 * min(100vw / 1440, 1px));
	width: calc(340 * var(--u));
}

.fm-txt {
	width: 100%;
}

.fm-btn {
	display: flex;
	margin-left: 0;
	margin-right: 0;
	text-align: left;
}

/* 院内ギャラリー SP: 帯(411)は共通、セクション高さのみSP版(498)。カップルはほぼ中央・140幅 */

.p-gallery {
	height: calc(498 * min(100vw / 1440, 1px));
	height: calc(498 * var(--u));
}

.gl-couple {
	margin-left: calc(-9 * min(100vw / 1440, 1px));
	margin-left: calc(-9 * var(--u)); /* frame-x186 = 中心195 - 9 */
	top: calc(332 * min(100vw / 1440, 1px));
	top: calc(332 * var(--u));
	width: calc(140 * min(100vw / 1440, 1px));
	width: calc(140 * var(--u));
}

/* たまひよバナー SP: 342幅(左右24px余白)。gallery下端→banner37 / banner→topics64 */

.p-tama {
	padding-bottom: calc(64 * min(100vw / 1440, 1px));
	padding-bottom: calc(64 * var(--u));
	padding-top: calc(37 * min(100vw / 1440, 1px));
	padding-top: calc(37 * var(--u));
}

.p-tama__inner {
	max-width: calc(342 * min(100vw / 1440, 1px));
	max-width: calc(342 * var(--u)); /* 342幅・中央→390画面で左右24px自動余白 */
}

/* トピックス SP: 1カラム縦積み・横ドット罫線 */

.p-topics {
	padding-bottom: calc(64 * min(100vw / 1440, 1px));
	padding-bottom: calc(64 * var(--u));
}

.tp-inner {
	max-width: calc(342 * min(100vw / 1440, 1px));
	max-width: calc(342 * var(--u));
	padding-top: calc(24 * min(100vw / 1440, 1px));
	padding-top: calc(24 * var(--u));
}

.tp-card {
	padding: calc(40 * min(100vw / 1440, 1px)) calc(24 * min(100vw / 1440, 1px));
	padding: calc(40 * var(--u)) calc(24 * var(--u));
}

.tp-pin {
	top: calc(-24 * min(100vw / 1440, 1px));
	top: calc(-24 * var(--u));
	width: calc(40 * min(100vw / 1440, 1px));
	width: calc(40 * var(--u));
}

.tp-cols {
	flex-direction: column;
}

/* 罫線を横向きに */

.tp-div {
	background-repeat: repeat-x;
	background-size: calc(11 * min(100vw / 1440, 1px)) calc(3 * min(100vw / 1440, 1px));
	background-size: calc(11 * var(--u)) calc(3 * var(--u));
	height: calc(3 * min(100vw / 1440, 1px));
	height: calc(3 * var(--u));
	margin-bottom: calc(40 * min(100vw / 1440, 1px));
	margin-bottom: calc(40 * var(--u));
	margin-left: 0;
	margin-right: 0;
	margin-top: calc(40 * min(100vw / 1440, 1px));
	margin-top: calc(40 * var(--u));
	width: auto;
}

/* h2: ja + en 横並び(enは右・下寄せ) */

.tp-head {
	margin-bottom: calc(32 * min(100vw / 1440, 1px));
	margin-bottom: calc(32 * var(--u));
}

.tp-h2 {
	align-items: center;
	flex-direction: row;
	gap: calc(12 * min(100vw / 1440, 1px));
	gap: calc(12 * var(--u));
}

.tp-h2__en {
	font-size: calc(14 * min(100vw / 1440, 1px));
	font-size: calc(14 * var(--u));
}

/* 一覧へリンク: リスト下・右寄せ(静的配置に戻す) */

.tp-more {
	align-self: flex-end;
	margin-top: calc(40 * min(100vw / 1440, 1px));
	margin-top: calc(40 * var(--u));
	position: static;
}

/* 診療時間・アクセス SP: 縦積み */

.p-access {
	padding-bottom: calc(56 * min(100vw / 1440, 1px));
	padding-bottom: calc(56 * var(--u));
}

.ac-inner {
	flex-direction: column;
	gap: calc(56 * min(100vw / 1440, 1px));
	gap: calc(56 * var(--u));
	max-width: calc(342 * min(100vw / 1440, 1px));
	max-width: calc(342 * var(--u));
}

.ac-h2__en {
	font-size: calc(14 * min(100vw / 1440, 1px));
	font-size: calc(14 * var(--u));
}

.ac-train {
	align-items: flex-start;
}

.ac-cal__lead,
.ac-cal__time {
	width: calc(118 * min(100vw / 1440, 1px));
	width: calc(118 * var(--u));
}

body.home .ft-bird--right {
	margin-left: calc(70 * min(100vw / 1440, 1px));
	margin-left: calc(70 * var(--u));
	top: calc(20 * min(100vw / 1440, 1px));
	top: calc(20 * var(--u));
}

body.body-page-topics .p-footer {
	margin-top: calc(-80 * min(100vw / 1440, 1px));
	margin-top: calc(-80 * var(--u));
}

body.single-topics .p-footer {
	margin-top: 0;
}

.tpl-page .me-head,
.tpl-page .me-main {
	margin-left: 0;
	width: 100%;
}

.tpl-page .me-hero__card {
	margin-left: calc(8 * min(100vw / 1440, 1px));
	margin-left: calc(8 * var(--u));
	margin-right: calc(8 * min(100vw / 1440, 1px));
	margin-right: calc(8 * var(--u));
	width: auto;
}

.tpl-page .me-main {
	padding-bottom: calc(120 * min(100vw / 1440, 1px));
	padding-bottom: calc(120 * var(--u));
	padding-left: 0;
	padding-right: 0;
}

.tpl-tabs {
	margin-top: calc(64 * min(100vw / 1440, 1px));
	margin-top: calc(64 * var(--u));
}

.tpl-tabs__list {
	gap: calc(28 * min(100vw / 1440, 1px));
	gap: calc(28 * var(--u));
}

.tpl-tabs__link {
	font-size: calc(15 * min(100vw / 1440, 1px));
	font-size: calc(15 * var(--u));
	padding-bottom: calc(12 * min(100vw / 1440, 1px));
	padding-bottom: calc(12 * var(--u));
}

.tpl-item__lnk {
	padding-bottom: calc(32 * min(100vw / 1440, 1px));
	padding-bottom: calc(32 * var(--u));
	padding-top: calc(32 * min(100vw / 1440, 1px));
	padding-top: calc(32 * var(--u));
}

/* SP: コラム記事はサムネを上に縦積み */

.tpl-item--column .tpl-item__lnk {
	align-items: stretch;
	flex-direction: column;
	gap: calc(24 * min(100vw / 1440, 1px));
	gap: calc(24 * var(--u));
}

.tpl-item__thumb {
	aspect-ratio: 358/228;
	width: 100%;
}

.tpl-item__ttl {
	margin-top: calc(8 * min(100vw / 1440, 1px));
	margin-top: calc(8 * var(--u));
}

.tps-hero {
	padding: calc(50 * min(100vw / 1440, 1px)) calc(24 * min(100vw / 1440, 1px));
	padding: calc(50 * var(--u)) calc(24 * var(--u)); /* Fig: 上下50 */
}

.tps-hero__title {
	font-size: calc(26 * min(100vw / 1440, 1px));
	font-size: calc(26 * var(--u));
}

.tps-body {
	padding-left: calc(24 * min(100vw / 1440, 1px));
	padding-left: calc(24 * var(--u));
	padding-right: calc(24 * min(100vw / 1440, 1px));
	padding-right: calc(24 * var(--u)); /* Fig: 本文342幅 */
	width: 100%;
}

.tps-breadcrumb {
	flex-wrap: wrap;
	margin-top: calc(80 * min(100vw / 1440, 1px));
	margin-top: calc(80 * var(--u)); /* Fig SP: 80 */
}

.tps-breadcrumb > span:last-child {
	flex-basis: 100%;
}

.tps-article {
	padding-bottom: calc(120 * min(100vw / 1440, 1px));
	padding-bottom: calc(120 * var(--u)); /* Fig SP: パンくず→サムネ80 / 本文→フッター120 */
	padding-top: calc(80 * min(100vw / 1440, 1px));
	padding-top: calc(80 * var(--u));
	width: 100%;
}

/* SP: アイキャッチはカンプ比率 358:228 でトリミング表示 */

.tps-eyecatch__img {
	-o-object-fit: cover;
	aspect-ratio: 342/228; /* Fig */
	object-fit: cover;
}

.tps-eyecatch + .tps-content {
	margin-top: calc(40 * min(100vw / 1440, 1px));
	margin-top: calc(40 * var(--u));
}

.tps-content h2 {
	gap: calc(16 * min(100vw / 1440, 1px));
	gap: calc(16 * var(--u));
	margin-top: calc(80 * min(100vw / 1440, 1px));
	margin-top: calc(80 * var(--u));
	padding: calc(16 * min(100vw / 1440, 1px));
	padding: calc(16 * var(--u));
}

.tps-content ul {
	padding: calc(32 * min(100vw / 1440, 1px)) calc(24 * min(100vw / 1440, 1px));
	padding: calc(32 * var(--u)) calc(24 * var(--u));
}

/* SP: 表はカンプ準拠の横スクロール（列を潰して折返さない） */

.tps-content table {
	-webkit-overflow-scrolling: touch;
	display: block;
	overflow-x: auto;
}

.tps-content table tbody {
	display: table;
	min-width: calc(780 * min(100vw / 1440, 1px));
	min-width: calc(780 * var(--u));
	width: 100%;
}

.cp-under .me-callout__bd {
	padding: calc(32 * min(100vw / 1440, 1px)) calc(24 * min(100vw / 1440, 1px));
	padding: calc(32 * var(--u)) calc(24 * var(--u));
}

.cp-under.me-page {
	margin-bottom: calc(120 * min(100vw / 1440, 1px));
	margin-bottom: calc(120 * var(--u));
	padding-top: calc(48 * min(100vw / 1440, 1px));
	padding-top: calc(48 * var(--u)); /* me系32 */
}

.cp-under .me-breadcrumb {
	gap: calc(8 * min(100vw / 1440, 1px)) calc(16 * min(100vw / 1440, 1px));
	gap: calc(8 * var(--u)) calc(16 * var(--u));
	margin-top: calc(80 * min(100vw / 1440, 1px));
	margin-top: calc(80 * var(--u)); /* me系56 */
}

.cp-under .me-index {
	margin-top: calc(80 * min(100vw / 1440, 1px));
	margin-top: calc(80 * var(--u)); /* me系40 */
}

.cp-under .me-index__link {
	min-height: calc(56 * min(100vw / 1440, 1px));
	min-height: calc(56 * var(--u)); /* Fig: ボタン高56（テキスト量に応じて伸びる） */
}

.cp-under .me-sec {
	margin-top: calc(120 * min(100vw / 1440, 1px));
	margin-top: calc(120 * var(--u)); /* セクション間 */
}

.cp-under .me-main > .me-sec:first-child {
	margin-top: calc(96 * min(100vw / 1440, 1px));
	margin-top: calc(96 * var(--u)); /* ジャンプボタン→最初のセクション */
}

.cp-under .me-sub__ttl {
	font-size: calc(24 * min(100vw / 1440, 1px));
	font-size: calc(24 * var(--u)); /* me系22 */
}

.cp-under .me-sec__body > * + * {
	margin-top: calc(40 * min(100vw / 1440, 1px));
	margin-top: calc(40 * var(--u)); /* me系32 */
}

.cp-under .me-p + .me-p {
	margin-top: calc(16 * min(100vw / 1440, 1px));
	margin-top: calc(16 * var(--u)); /* 段落同士は16(Fig。上の40指定に読み込み順で負けないよう明示) */
}

.cp-under .me-sec__body > * + .me-sub__ttl {
	margin-top: calc(56 * min(100vw / 1440, 1px));
	margin-top: calc(56 * var(--u));
}

.cp-under .me-figrow__img {
	margin-bottom: calc(40 * min(100vw / 1440, 1px));
	margin-bottom: calc(40 * var(--u)); /* me系24 */
}

.cp-under .me-listcard {
	padding: calc(32 * min(100vw / 1440, 1px));
	padding: calc(32 * var(--u)); /* me系24 */
}

.cp-under .cp-photo img {
	aspect-ratio: 342/228; /* SPは3:2クロップ（全ページ共通） */
}

.vm-hero__koala {
	right: calc(16 * min(100vw / 1440, 1px));
	right: calc(16 * var(--u));
	top: calc(211 * min(100vw / 1440, 1px));
	top: calc(211 * var(--u));
	width: calc(139 * min(100vw / 1440, 1px));
	width: calc(139 * var(--u));
}

body.body-page-vaccine-menopause .me-hero__balloons {
	left: calc(72 * min(100vw / 1440, 1px));
	left: calc(72 * var(--u));
	width: calc(40 * min(100vw / 1440, 1px));
	width: calc(40 * var(--u));
}

body.body-page-vaccine-menopause .cp-photo img {
	aspect-ratio: 3/2;
}

.inner {
	padding-left: 20px;
	padding-right: 20px;
}

}

@media screen and (max-width: 767px) and (max-width: 767px) {

.me-hero__balloons {
	display: none;
}

}

@media (max-width: 500px) {

.p-feature {
	margin-top: calc(-30 * min(100vw / 1440, 1px) - 8px);
	margin-top: calc(-30 * var(--u) - 8px);
}

}

@keyframes u-rise-in {

from {
	opacity: 0;
	transform: translateY(32px);
	transform: translateY(var(--rise-dist, 32px));
}

to {
	opacity: 1;
	transform: none;
}

}

@keyframes ld-appear {

from {
	opacity: 0;
	transform: translateY(calc(18 * var(--lu)));
}

to {
	opacity: 1;
	transform: none;
}

}

@keyframes ld-leave {

from {
	opacity: 1;
}

to {
	opacity: 0;
	transform: translateY(calc(10 * var(--lu)));
}

}

@keyframes hc-pop {

from {
	opacity: 0;
	transform: scale(0.72);
}

to {
	opacity: 1;
	transform: scale(1);
}

}

@keyframes hc-line {

from {
	-webkit-clip-path: inset(0 50% 0 50%);
	clip-path: inset(0 50% 0 50%);
	opacity: 0;
}

to {
	-webkit-clip-path: inset(0 0 0 0);
	clip-path: inset(0 0 0 0);
	opacity: 1;
}

}

@keyframes ld-header-drop {

from {
	opacity: 0;
	transform: translateY(-100%);
}

to {
	opacity: 1;
	transform: none;
}

}

@keyframes ld-rise {

from {
	opacity: 0;
	transform: translateY(calc(40 * min(100vw / 1440, 1px)));
	transform: translateY(calc(40 * var(--u)));
}

to {
	opacity: 1;
	transform: none;
}

}

@keyframes ld-flip {

from {
	transform: translate(var(--flip-x), var(--flip-y)) scale(var(--flip-s));
}

to {
	transform: none;
}

}

@keyframes gl-marquee {

from {
	transform: translateX(0);
}

to {
	transform: translateX(calc(-3910 * min(100vw / 1440, 1px)));
	transform: translateX(calc(-3910 * var(--u)));
}

}


/*# sourceMappingURL=style.css.map */
