﻿@charset "utf-8";
/* ============================================================
   院長のご紹介 v2 (top-gree--v2) — 東大島レイアウト準拠
   ============================================================ */
.top-gree--v2 {
	position: relative;
	margin-top: 100px;
	padding: 120px 0 120px;
	overflow: hidden;
	background: #fff;
}
.top-gree--v2 .gree-v2-inner {
	position: relative;
	z-index: 2;
	max-width: 1280px;
	margin: 0 auto;
	padding: 0 40px;
	display: grid;
	grid-template-columns: 320px 120px 1fr;
	gap: 60px;
	align-items: start;
}
.top-gree--v2 .gree-v2-inner::before {
	content: '';
	position: absolute;
	top: 80px;
	left: -40px;
	right: 35%;
	bottom: -40px;
	background: #f5f2e9;
	z-index: -1;
}
.top-gree--v2 .gree-v2-photos {
	display: flex;
	flex-direction: column;
	gap: 30px;
	padding-top: 80px;
}
.top-gree--v2 .gree-v2-photo {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	box-shadow: 0 6px 24px rgba(0,0,0,0.05);
}
.top-gree--v2 .gree-v2-photo--portrait {
	aspect-ratio: 3 / 4;
}
/* 下の写真を右にずらしてジグザグ感 */
.top-gree--v2 .gree-v2-photos .gree-v2-photo:nth-child(2) {
	margin-left: 140px;
	width: calc(100% - 0px);
}
.top-gree--v2 .gree-v2-vertical {
	writing-mode: vertical-rl;
	-webkit-writing-mode: vertical-rl;
	font-family: 'Noto Serif JP', '游明朝', serif;
	font-size: 24px;
	font-weight: 500;
	letter-spacing: 0.18em;
	line-height: 1.8;
	color: #555;
	height: 660px;
	margin: 0 auto;
}
.top-gree--v2 .gree-v2-vertical span {
	display: block;
}
.top-gree--v2 .gree-v2-vertical span:nth-child(2) {
	padding-top: 1em;
}
.top-gree--v2 .gree-v2-content {
	padding-top: 60px;
	padding-left: 40px;
}
.top-gree--v2 .gree-v2-heading {
	text-align: center;
	margin-bottom: 36px;
}
.top-gree--v2 .gree-v2-heading-en {
	display: block;
	font-family: 'Marcellus SC', 'Cormorant Garamond', serif;
	font-size: 38px;
	font-weight: 500;
	color: var(--c-primary);
	letter-spacing: 0.1em;
	line-height: 1;
}
.top-gree--v2 .gree-v2-heading-en::first-letter {
	font-size: 1.25em;
}
.top-gree--v2 .gree-v2-heading-ja {
	display: block;
	font-family: 'Noto Serif JP', '游明朝', serif;
	font-size: 18px;
	font-weight: normal;
	color: var(--c-text);
	letter-spacing: 0.08em;
	margin-top: 18px;
}
.top-gree--v2 .gree-v2-body p {
	font-family: 'Noto Serif JP', '游明朝', serif;
	font-size: 16px;
	line-height: 2.0;
	letter-spacing: 0.05em;
	margin: 0;
	color: #333;
}
/* 院長挨拶内 クリニック名強調（やわらかいライン下線） */
.top-gree--v2 .gree-v2-clinic-mark {
	background-image: linear-gradient(to right, var(--c-primary) 0%, var(--c-primary) 100%);
	background-repeat: no-repeat;
	background-position: 0 100%;
	background-size: 100% 1px;
	padding-bottom: 6px;
	-webkit-box-decoration-break: clone;
	box-decoration-break: clone;
}
.top-gree--v2 .gree-v2-signature {
	margin-top: 36px;
	font-family: 'Noto Serif JP', '游明朝', serif;
	font-size: 16px;
	line-height: 1.7;
	letter-spacing: 0.06em;
	color: #333;
	width: fit-content;
	max-width: 100%;
}
.top-gree--v2 .gree-v2-signature p { margin: 0; }
.top-gree--v2 .gree-v2-signature-logo {
	display: block;
	width: 400px;
	max-width: 100%;
	height: auto;
	margin: 0 0 -14px;
}
.top-gree--v2 .gree-v2-signature-name {
	font-size: 26px !important;
	margin-top: 0 !important;
	text-align: center;
	line-height: 1.5;
	color: #565656;
}
.top-gree--v2 .gree-v2-more {
	display: inline-flex;
	align-items: center;
	justify-content: space-between;
	gap: 30px;
	min-width: 200px;
	margin-top: 28px;
	padding: 14px 24px;
	background: var(--c-primary);
	color: #fff;
	text-decoration: none;
	font-family: 'Marcellus SC', serif;
	font-size: 15px;
	letter-spacing: 0.12em;
	transition: background 0.3s;
}
.top-gree--v2 .gree-v2-more:hover {
	background: var(--c-accent);
	color: #fff;
}
.top-gree--v2 .gree-v2-more::after {
	content: '→';
	font-size: 18px;
}
/* PCでは SP用設備写真を非表示 */
.top-gree--v2 .gree-v2-photo-sp { display: none; }

/* SP対応 (新順序: 見出し → 写真+縦書き → 設備写真 → 本文 → 署名 → MORE) */
@media (max-width: 767px) {
	.top-gree--v2 { padding: 50px 0 70px; margin-top: 60px; }
	.top-gree--v2 .gree-v2-inner::before { left: -20px; right: 30%; bottom: -20px; top: 240px; }
	.top-gree--v2 .gree-v2-inner {
		display: flex;
		flex-direction: column;
		position: relative;
		padding: 0 6%;
	}
	/* contentラッパーを解除して子要素を直flex化（並び替え可能に） */
	.top-gree--v2 .gree-v2-content {
		display: contents;
	}
	/* 並び順 (flex order) */
	.top-gree--v2 .gree-v2-heading  { order: 1; margin-bottom: 24px; }
	.top-gree--v2 .gree-v2-photos   { order: 2; }
	.top-gree--v2 .gree-v2-photo-sp { order: 3; }
	.top-gree--v2 .gree-v2-body     { order: 4; }
	.top-gree--v2 .gree-v2-signature{ order: 5; }
	.top-gree--v2 .gree-v2-more     { order: 6; }

	/* 写真: 院長のみ・左寄せ・幅70% */
	.top-gree--v2 .gree-v2-photos {
		flex-direction: column;
		gap: 20px;
		margin-bottom: 30px;
		padding-top: 0;
		max-width: 70%;
	}
	.top-gree--v2 .gree-v2-photo { width: 100%; }
	.top-gree--v2 .gree-v2-photos .gree-v2-photo:nth-child(2) {
		display: none;
	}
	/* SP：縦書きキャッチを写真右側に配置（2列で収める）— font-size !important で確実に上書き */
	.top-gree--v2 .gree-v2-vertical {
		position: absolute !important;
		top: 60px;
		right: 4%;
		writing-mode: vertical-rl;
		-webkit-writing-mode: vertical-rl;
		font-size: 23px !important;
		font-weight: 500;
		letter-spacing: 0.12em;
		line-height: 1.8 !important;
		height: 680px !important;
		max-height: 92vh !important;
		margin: 0;
		padding: 0;
		color: #555;
		z-index: 3;
		white-space: normal;
	}
	.top-gree--v2 .gree-v2-vertical span {
		display: block;
		white-space: nowrap;
	}
	.top-gree--v2 .gree-v2-vertical span:nth-child(2) {
		padding-top: 1em;
	}
	/* 見出し */
	.top-gree--v2 .gree-v2-heading-en { font-size: 30px; }
	.top-gree--v2 .gree-v2-heading-ja { font-size: 16px; }
	.top-gree--v2 .gree-v2-body p { font-size: 15px; line-height: 1.85; }
	/* 設備写真: 院長写真の右下に大きく重ねる */
	.top-gree--v2 .gree-v2-photo-sp {
		display: block;
		width: 75%;
		margin: -140px 0 30px auto;   /* 右寄せ + 上に140px重ねる */
		position: relative;
		z-index: 2;
		aspect-ratio: 4 / 3;
		object-fit: cover;
		box-shadow: 0 6px 24px rgba(0,0,0,0.1);
	}
}

/* ============================================================
   THEME COLORS — ここの値を書き換えるだけで全体の色が変わります
   (こだいら小川町メディカルクリニック / 東大島準拠 鮮やか黄緑系)
   ============================================================ */
:root {
  --c-primary:       #88c030;                /* メインカラー   (鮮やかライム) */
  --c-secondary:     #a8d068;                /* サブカラー     (やわらか黄緑) */
  --c-accent:        #5e8520;                /* ホバー/強調    (濃いライム)   */
  --c-text:          #595757;                /* 本文テキスト                  */
  --c-bg:            #f0f8d0;                /* 背景           (淡黄緑)       */
  --c-bg-sub:        #f0f8d0;                /* サブ背景・サブメニュー         */
  --c-bg-warm-1:     #dcec9e;                /* カードホバー背景               */
  --c-bg-warm-2:     #f0f8d0;                /* セクション背景                 */
  --c-bg-warm-3:     #dcec9e;                /* アクセント背景                 */
  --c-dark:          #5e8520;                /* 濃色テキスト・見出し           */
  --c-orange:        #ec8332;                /* オレンジ (TOPICS・イベント)    */
  --c-red:           #eb4b6d;                /* 警告・赤系                     */
  --c-border:        #e2e2e2;                /* ボーダー                       */
  --c-gray:          #707070;                /* グレー                         */
  --c-panel-overlay: rgba(136,192,48,0.25);  /* パネル重ね色 (ライム25%)       */
  --c-access-bg:     rgba(136,192,48,0.70);  /* アクセス背景                   */
  --c-selection:     rgba(136,192,48,0.15);  /* テキスト選択色                 */
  --c-dark-20:       rgba(94,133,32,0.2);    /* 濃色20%透過                    */
  --c-dark-50:       rgba(94,133,32,0.5);    /* 濃色50%透過                    */
}

/*

font-family: 'Crimson Text', serif;
font-family: 'Marcellus SC', serif;
font-family: 'Lato', sans-serif;

*/

body { color: var(--c-text); background: #ffffff; letter-spacing: .05em; line-height: 1.75; font-size: 16px; font-family: '游明朝', YuMincho, 'ヒラギノ明朝 ProN W3', 'Hiragino Mincho ProN', 'HG明朝E', 'ＭＳ Ｐ明朝', 'ＭＳ 明朝', serif; }
a { color: var(--c-secondary); }
a:hover { color: var(--c-accent); text-decoration: none; }
a img { border: none; }
a:hover img { opacity: 0.7; }
select::-ms-expand {display: none;}
select {-webkit-appearance: none;-moz-appearance: none;appearance: none;width: 100%;margin-bottom: 20px;padding: 10px;font-size: 15px;line-height: 1.1em;border: 1px solid var(--c-border);border-radius: 5px;}
select:focus {outline: 3px solid var(--c-secondary);border-radius: 5px;overflow: hidden;}
::selection { background-color: var(--c-selection); }
::-moz-selection { background-color: var(--c-selection); }

.content { margin-bottom: 60px; }
.content { width: 100%; }

/* ヘッダー -----------------------------------------------------*/
.header { position: absolute; top: 0; left: 0; width: 100%; height: 110px; z-index: 998; background-color: rgba(255,255,255,0.6); -webkit-backdrop-filter: blur(20px); backdrop-filter: blur(20px); }
.header.fiexd { top: 0; left: 0; }
.header .header-logo { width: 302px; margin-top: 13px; }
.header .header-right { width: 890px; }

/* メイン -----------------------------------------------------*/
.home .mainvisual { height: auto; background: none; }
.home .mainvisual .container-or { position: absolute; top: 0; left: 0; right: 0; margin: auto; display: table; height: 100%; margin-top: 0; }

.mainvisual { height: 280px; overflow: hidden; background-image: url(../images/main_bg.png); background-size: cover; background-position: center; background-repeat: no-repeat; }
.mainvisual .container-or { position: relative; z-index: 10; }
.mainvisual .main-slide { position: relative; z-index: 1; }
.mainvisual .main-cat { position: absolute; z-index: 9; top: 32%; left: 0; margin: auto; width: 53%; }
.mainvisual .headline-inner { display: table-cell; vertical-align: middle; text-align: center; }
.mainvisual .headline-flame { display: table; width: 100%; height: 216px; margin-top: 64px; letter-spacing: 0.15em; text-shadow: 0 0 5px rgb(255 255 255 / 70%); }
.mainvisual .headline-flame p { position: relative; margin-bottom: 0; color: var(--c-primary); font-family: 'Crimson Text', serif; text-shadow: #ffffff 1px 1px 5px, #ffffff -1px 1px 5px, #ffffff 1px -1px 5px, #ffffff -1px -1px 5px; }
.mainvisual .headline-flame p::before,
.mainvisual .headline-flame p::after { position: relative; content:'-'; }
.mainvisual .headline-flame p::before { left:-0.5em; }
.mainvisual .headline-flame p::after { right:-0.5em; }
.mainvisual .headline-flame .headline { font-weight: bold; font-size: 25px; }

/* トップページ -----------------------------------------------------*/
.top-news .news-box { position: relative; top: -80px; z-index: 10; margin: 0 6%; padding: 20px 30px 30px; background: #fff; }
.top-news .news-box .btn { margin: 20px auto 0; text-align: center; }
.top-news .news-box .btn a { margin: 0 auto; }
.top-news .news-titl { margin-bottom: 1.25em; }
.top-news .news-titl::after { content: none; }
.top-news .news-titl h2 { font-size: 16px; }
.top-news .news-titl h2::before { content: none; position: relative; top: -5px; display: inline-block; width: 50px; height: 1px; background: var(--c-dark-50); margin-right: 12px; }
.top-news .news-titl p { font-size: 30px; }
.top-news .news-titl p:first-letter{font-size: 40px; }
.top-news .news-btn { text-align:center; margin-top:20px; }
.top-news .news-btn a { background: var(--c-primary); }
.top-news .news-btn a::before { background: var(--c-accent); }
.top-news .news-list li { position: relative; margin-bottom: 10px; border-bottom: 1px solid var(--c-bg); }
.top-news .news-list li::before { content: ''; display: block; width: 0; height: 0; border-top: .2em solid transparent; border-bottom: .2em solid transparent; border-left: 0.6em solid var(--c-accent); position: absolute; top: calc(50% - .2em); left: -1em; transition: .9s all cubic-bezier(0.19, 1, 0.22, 1); transform: translateX(-1em) scaleY(0); -webkit-backface-visibility: hidden; backface-visibility: hidden; }
.top-news .news-list li::after { content: ''; display: block; width: 0; height: 1px; background: var(--c-accent); position: absolute; bottom: -1px; left: 0; transition: .9s all cubic-bezier(0.19, 1, 0.22, 1); }
.top-news .news-list li:hover::before { transform: none; }
.top-news .news-list li:hover::after { width: 100%; }
.top-news .news-list li a { padding-bottom: 3px; color: var(--c-text); display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.top-news .news-list .date { font-family: 'Crimson Text', serif; }
.top-news .news-list .cate { display: none; }
.top-news .news-list .titl { overflow: hidden; text-overflow: ellipsis; display: block; }

/* ===== TOPIX 固定行（お知らせの下、一覧へリンク） ===== */
.top-news .news-topix {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-top: 16px;
	padding: 10px 12px;
	background: #fff8ec;
	border: 1px solid #f5d9b8;
	border-radius: 6px;
	color: var(--c-text);
	text-decoration: none;
	font-size: 13.5px;
	line-height: 1.5;
	transition: background 0.2s, border-color 0.2s, color 0.2s;
}
.top-news .news-topix:hover {
	background: #fdebd0;
	border-color: var(--c-orange);
	color: #b66a25;
	text-decoration: none;
}
.top-news .news-topix-tag {
	flex-shrink: 0;
	padding: 2px 10px;
	background: var(--c-orange);
	color: #fff;
	font-family: 'Marcellus SC', serif;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.08em;
	border-radius: 999px;
	text-transform: lowercase;
}
.top-news .news-topix-text {
	flex: 1;
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.top-news .news-topix-arrow {
	flex-shrink: 0;
	color: var(--c-orange);
	font-size: 18px;
	line-height: 1;
	transition: transform 0.2s;
}
.top-news .news-topix:hover .news-topix-arrow {
	transform: translateX(3px);
}
@media (min-width: 768px) {
	.top-news .news-topix {
		margin-top: 20px;
		padding: 12px 16px;
		font-size: 14px;
	}
	.top-news .news-topix-tag {
		padding: 3px 12px;
		font-size: 12px;
	}
}

.top-time .table-2 { margin-bottom: 20px; padding: 0; background: transparent; border: none; border-radius: 0; overflow: visible; }
.top-time .table-2 table { width: 100%; max-width: 100%; }
.top-time .table-2 tr:not(:first-child) th { font-size: 1.15em; }
.top-time .table-2 th { font-size: 1em; }
.top-time .table-2 td { font-size: 1em; }

.top-clinic { overflow: hidden; }
.top-clinic .clinic-r { width: 75%; margin: 413px auto 0; position: relative; z-index: 4; }
.top-clinic .clinic-r a { display: block; }
.top-clinic .clinic-r img { max-width:290px; width:100%; height:auto; }
.top-clinic .clinic-titl { margin-top: -60px; text-align: left; align-items: baseline; }
.top-clinic .clinic-titl::after { content: none; }
.top-clinic .clinic-titl h2::before { content: ''; position: relative; top: -5px; display: inline-block; width: 30px; height: 1px; background: var(--c-dark-50); margin-right: 12px; }
.top-clinic .clinic-titl h2 { margin-left: 30px; font-size: 18px; }
.top-clinic .clinic-box::before { content: ''; position: absolute; top: 67px; right: -100px; width: 80%; height: 534px; background-color: var(--c-bg); z-index: 1}
.top-clinic .clinic-box::after { content: ''; position: absolute; top: 87px; right: -230px; margin: auto; width: 520px; height: 390px; background: url(../images/clinic_bg.svg) no-repeat; background-size: cover; background-position: top center; z-index: 2; }
.top-clinic .clinic-box .img { margin-left: 100px; }
.top-clinic .clinic-box .text { position: absolute; top: 150px; left: 0; width: 88%; padding: 20px 10px 10px; background-color: rgba(255, 255, 255, 0.96); box-shadow: 0px 3px 69.35px 3.65px rgb(102 102 102 / 5%); box-sizing: border-box; }
@media (min-width: 576px) { 
    .facility-standards-btn{
        margin-left: 15px;
    }
}

.top-clinic .clinic-box .sub { position: absolute; top: -60px; left: 0; margin: 0; font-size: 24px; letter-spacing: 0.08em; line-height: 40px; }
.top-clinic .clinic-box .sub { color: var(--c-dark); font-family:; -webkit-writing-mode: vertical-rl; -moz-writing-mode: vertical-rl; -ms-writing-mode: tb-rl; -ms-writing-mode: vertical-rl; writing-mode: vertical-rl; }
.top-clinic .clinic-box .sub span { display: block; padding-top: 75px; }
.top-clinic .clinic-box > * { z-index: 3; }

.top-gree { padding: 60px 0 20px; background:#fff; }
.top-gree::after { content: ''; position: absolute; bottom: 140px; height: 550px; width: 78%; background-color: var(--c-bg); z-index: 1; }
.top-gree .heading-1::after { content: none; }
.top-gree .gree-box .text { letter-spacing: 0.04em; line-height: 1.8125; }
.top-gree .gree-box .text p { margin-bottom: 30px; }
.top-gree .gree-box .sub { position: absolute; top: -9px; right: -82px; margin: 0; font-size: 24px; line-height: 40px; color: var(--c-dark); letter-spacing: 0.08em; writing-mode: vertical-rl; }
.top-gree .gree-box .sub span { display: block; padding-top: 20px; }
.top-gree .gree-box .sub { color: var(--c-dark); font-family: ; -webkit-writing-mode: vertical-rl; -moz-writing-mode: vertical-rl; -ms-writing-mode: tb-rl; -ms-writing-mode: vertical-rl; writing-mode: vertical-rl; }
.top-gree .gree-r { margin-bottom: 0; }
.top-gree .gree-l { width: 72%; z-index: 2; }
.top-diag { padding: 60px 0; background: #fff; }
.top-diag .diag-box { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-start; }

.top-diag .diag-box a { position: relative; -ms-flex: 0 0 47%; flex: 0 0 47%; max-width: 47%; aspect-ratio: 1 / 1; height: auto; border: 3px dotted #b0c475; border-radius: 50%; margin-bottom: 20px; transition: all .8s; }
.top-diag .diag-box a::after { content: ''; display: block; width: 0; height: 1px; background: var(--c-accent); position: absolute; bottom: -1px; left: 0; transition: .8s all cubic-bezier(0.19, 1, 0.22, 1); }
.top-diag .diag-box a:nth-child(1) img { width: 50px; }
.top-diag .diag-box a:nth-child(2) img { width: 42px; }
.top-diag .diag-box a:nth-child(3) img { width: 50px; }
.top-diag .diag-box a:nth-child(4) img { width: 32px; }
.top-diag .diag-box a:nth-child(5) img { width: 43px; }
.top-diag .diag-box a:nth-child(6) img { width: 50px; }
.top-diag .diag-box a:nth-child(7) img { width: 50px; }
.top-diag .diag-box a:nth-child(8) img { width: 40px; }
.top-diag .diag-box a:hover { opacity: .8; border-color: var(--c-bg-warm-1); animation: vertical 1.5s ease-in-out infinite alternate; }
.top-diag .diag-box a:hover span { color: var(--c-secondary); }
.top-diag .diag-box a:hover i { transform: rotateY(360deg); }
.top-diag .diag-box i { width: 70px; height: 70px; transition: 1s; transform: rotateY(0deg); }
.top-diag .diag-box img { width: 60px; }
.top-diag .diag-box span { color: var(--c-text); font-size: 16px; font-weight: bold; letter-spacing: .04em; line-height: 1.4; transition: all .3s; }

.top-symp { padding: 60px 0 40px; background: url(../images/symp_bg.png); background-position: center; background-size: cover; }
.top-symp .img{ position: relative; top: -145px; left: -460px; }
.top-symp .symp-box { z-index:2; }
.top-symp .symp-tab .tab { margin-bottom: 20px; justify-content: space-between; }
.top-symp .symp-tab .tab li { width: 48%; padding: 10px; margin-bottom: .8em; background: var(--c-primary); color: #fff; border-radius: 10px; cursor: pointer; transition: ease .2s; }
.top-symp .symp-tab .tab li:last-child { margin-right: 0; }
.top-symp .symp-tab .tab li.selected { background: var(--c-accent)!important; }
.top-symp .symp-tab .tab li:hover { background: var(--c-primary); }
.top-symp .symp-list { overflow: auto; height: 246px; }
.top-symp .symp-list li { position: relative; overflow: hidden; width: 90%; margin-bottom: .2em; border-radius: 10px; text-align: center; border: 6px solid transparent; transition: all .2s; }
.top-symp .symp-list li:hover { border-color: var(--c-bg); }
.top-symp .symp-list li a { display: block; padding: 10px; padding-left: 25px; background: #fff; text-align: left; transition: all .2s; }
.top-symp .symp-list li span { padding: 0 20px; font-weight: bold; background-image: url(../images/cross.svg); background-size: 10px; background-position: center left; background-repeat: no-repeat; }

/* フッター -----------------------------------------------------*/
.footer .gmap { height: 360px; }
.footer .gmap-link { position: absolute; bottom: 24px; left: 0; right: 0; margin: auto; width: 200px; display: block; }
.footer-top { padding: 62px 0 58px; }
.footer-top .footer-logo { width: 90%; margin: 0 auto 20px; left: -1.5%; }
.footer-bottom { padding-top: 45px; padding-bottom: 40px; background-color: #fafafa; border-top: 1px solid #e5ebd5; }
.footer-bottom .footer-logo { width: 70%; }
.footer-bottom .footer-logo img { filter: none; }
.footer-tel { padding-top: 0; }
.footer-tel a { display: inline-block; position: relative; color: var(--c-secondary); line-height: 1; font-size: 40px; font-weight: normal; font-family: 'Crimson Text', serif; }
.footer-tel a:hover { text-decoration: none; }
.footer-tel i { font-size: 21px; position: relative; top: -2px; transform: rotate(22deg); }
.footer-reser { margin-left: 20px; }
.footer-reser a { display: inline-block; padding: 10px; border: 1px solid var(--c-secondary); font-size: 14px; transition: all .4s; }
.footer-reser a:hover { border-color: var(--c-accent); }
.footer-med { letter-spacing: 0.05em; font-weight: 400; font-style: normal; }
.footer-med span { display: inline-block; margin-top: 10px; margin-right: 6px; padding: 3px 10px; color: #fff; background-color: var(--c-primary); border-radius: 5px; text-align: center; letter-spacing: 0.05em; }
.footer-sche .table-1 { padding: 8px 8px 0; background: var(--c-bg); }
.footer-sche .table-1 table { width: 100%; max-width: 100%; }
.footer-sche p { display: inline-block; letter-spacing: 0.05em; }
.footer-nav .menu > li { display: inline-table; position: relative; height: inherit; }
.footer-nav .menu > li > a { padding: 0 15px; vertical-align: middle; color: #555; text-align: center; font-weight: bold; font-size: 15px; display: -ms-flexbox; display: flex; -ms-flex-wrap: wrap; flex-wrap: wrap; justify-content: center; align-items: center; flex-flow: column; }
.footer-nav .menu > li > a::before { position: absolute; left: 0; right: 0; bottom: -10px; width: 100%; height: 1px; margin: auto; background-color: var(--c-primary); -webkit-transition-duration: 0.15s; transition-duration: 0.15s; -webkit-transition-timing-function: ease-out; transition-timing-function: ease-out; transform: scaleX(0); content: ''; z-index: 1;}
.footer-nav .menu > li > a:hover { color: var(--c-accent); }
.footer-nav .menu > li > a:hover::before { transform: scaleX(1); }
.footer-nav .menu > li > a > span { position: relative; }
.footer-nav .menu > li > a > span:nth-child(1) { padding-bottom: 10px; line-height: 1; letter-spacing: 0.06em; font-weight: 400; font-size: 18px; font-family: 'Marcellus SC', serif; color: var(--c-primary); }
.footer-nav .menu > li > a > span:nth-child(2) { font-weight: normal; color: #555; }
.footer-nav .sub-menu { display: none!important; }

/* トップへ戻るボタン：画面右下に固定表示。スクロール後に出現（JSで .is-visible 付与） */
.pagetop {
	position: fixed;
	right: 16px;
	bottom: 70px;            /* SP底部ナビ(sp-bottom-nav)の上に出るよう余白確保 */
	top: auto;
	width: 44px;
	height: 44px;
	border: 1px solid var(--c-primary);
	border-radius: 50%;
	background: #fff;
	text-align: center;
	cursor: pointer;
	z-index: 90;
	opacity: 0;
	visibility: hidden;
	transform: translateY(8px);
	transition: opacity 0.25s ease, transform 0.25s ease, background 0.2s ease, border-color 0.2s ease;
	box-shadow: 0 4px 12px rgba(94, 133, 32, 0.18);
}
.pagetop.is-visible {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}
.pagetop i { position: relative; color: var(--c-primary); transition: color 0.2s ease; }
.pagetop:hover { background: var(--c-primary); border-color: var(--c-primary); transform: translateY(-3px); }
.pagetop:hover i { color: #fff; }
.copy { color: #fff; margin: 0; }
.copy small { line-height: 1; color: #ffffff; font-weight: 300; font-size: 13px; letter-spacing: 0.09em; font-family: 'Marcellus SC', serif; }

/* フッター下部：ロゴ削除後のナビ中央寄せ調整（pagetop は absolute なので flex 中央寄せでもズレない） */
.footer-bottom > .container-or { justify-content: center; }

/* SP用フッターメニュー：2列軽量レイアウト */
@media (max-width: 575px) {
	.footer-nav { display: block; width: 100%; }
	.footer-nav .menu {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 12px 8px;
		max-width: 320px;
		margin: 0 auto;
		padding: 0;
		list-style: none;
	}
	.footer-nav .menu > li { display: block; margin: 0; }
	.footer-nav .menu > li > a {
		display: flex;
		flex-direction: column;
		align-items: center;
		gap: 2px;
		padding: 8px 4px;
	}
	.footer-nav .menu > li > a > span:nth-child(1) {
		font-size: 11px;
		padding-bottom: 2px;
		letter-spacing: 0.05em;
	}
	.footer-nav .menu > li > a > span:nth-child(2) {
		font-size: 12px;
	}
}

/* フッター最下部：緑の帯（コピーライト + サイトマップ） */
.footer-copyright {
	background-color: var(--c-primary);
	padding: 16px 0 14px;
	text-align: center;
}
.footer-copyright .copy { margin: 0; padding: 0; }
.footer-copyright .copy small { color: #fff; font-size: 12px; letter-spacing: 0.09em; font-family: 'Marcellus SC', serif; }
.footer-copyright .copy-meta {
	margin: 4px 0 0;
	font-size: 11px;
	letter-spacing: 0.08em;
}
.footer-copyright .copy-meta a {
	color: rgba(255,255,255,0.85);
	text-decoration: none;
	transition: color 0.2s;
}
.footer-copyright .copy-meta a:hover {
	color: #ffffff;
	text-decoration: underline;
}

/*パンくず*/
.breadcrumb { list-style: none; padding: 30px 0; margin: 0; display: flex; flex-wrap: wrap; gap: 8px; align-items: center; font-size: 13px; color: var(--c-accent); }
.breadcrumb li:not(:last-child)::after { content: '/'; margin-left: 12px; color: var(--c-primary); opacity: 0.6; }
.breadcrumb a { color: var(--c-primary); text-decoration: none; }
.breadcrumb a:hover { color: var(--c-accent); text-decoration: underline; }
.breadcrumb i { color: var(--c-primary); }

/*ページネーション*/
.pagination { margin:45px auto; }
.pagination > * { font-weight: 700; font-size: 14px; }
.pagination a,
.pagination span { display: block; padding: 3px; }
.pagination a { transition: all .4s ease; }
.pagination a:hover { opacity: .8; }
.pagination .prev,
.pagination .next,
.pagination .prev-link,
.pagination .next-link { position: relative; }
.pagination .prev,
.pagination .prev-link { border-left: none; }
.pagination .next-link a { border-left: 0; }
.pagination .next a,
.pagination .next-link a { display: block; padding: 3px; color: var(--c-secondary); }
.pagination .prev,
.pagination .prev-link a { padding-left: 16px; padding-right: 0; }
.pagination .next,
.pagination .next-link a { padding-right: 16px; padding-left: 0; }
.pagination .prev i,
.pagination .next i,
.pagination .prev-link i,
.pagination .next-link i { position: absolute; top: 0; bottom: 0; margin: auto; height: 13px; }
.pagination .prev i,
.pagination .prev-link i { left: 0; }
.pagination .next i,
.pagination .next-link i { right: 0; }
.pagination .prev i::before,
.pagination .next i::before,
.pagination .prev-link i::before,
.pagination .next-link i::before{color: var(--c-secondary); }
.pagination .list-link { margin-right: 20px; margin-left: 20px; }
.pagination .list-link a { padding: 3px 0; }

/*404*/
.notfound {}

/* その他 -----------------------------------------------------*/

/*スマホナビ*/
.fixed { position: fixed; top: 0; left: 0; right: 0; }
.full-h { height: 100%; }

/*アニメーション*/
@keyframes arrow { 0% { transform: translateX(0px); } 49% { transform: translateX(1.875em); } 50% { transform: translateX(-1.875em); } 100% { transform: translateX(0); } }
@keyframes horizontal {  0% { transform: translateX(0px); } 100% { transform: translateX(-3px); } }
@keyframes vertical {  0% { transform: translateY(0px); } 100% { transform: translateY(-6px); } }
@keyframes zoomUp {  0% { transform:  scale(1); } 100% { transform:  scale(1.15); } }

.bnr-slide .bx-wrapper .bx-pager.bx-default-pager a { background: var(--c-secondary); }
.bnr-slide .bx-wrapper .bx-pager.bx-default-pager a:hover,
.bnr-slide .bx-wrapper .bx-pager.bx-default-pager a.active,
.bnr-slide .bx-wrapper .bx-pager.bx-default-pager a:focus { background: var(--c-accent); }

/*タイトル*/
.heading { position: relative; text-align: center;  display: flex; align-items: center; justify-content: center; flex-wrap: wrap; flex-flow: column; word-break: break-all; }
.heading-1::after { content: ''; display: inline-block; width: 85px; height: 2px; background: var(--c-orange); margin-top: 30px; }
.heading-1 h2 { font-weight: normal; font-size: 20px; line-height: 1; letter-spacing: .04em; margin-top: 20px; }
.heading-1 p { font-weight: 500; font-size: 25px; line-height: 1; letter-spacing: .1em; font-family: 'Marcellus SC', serif; margin-bottom: 0; color: var(--c-primary); }
.heading-1 p.orange { color: var(--c-orange); }
.heading-1 p.green  { color: var(--c-primary); }
.heading-1 p:first-letter { font-size: 1.25em; }
/* OPENING HOUR / 診療のご案内 セクション 見出し拡大 */
body .top-time .heading-1 p,
body .top-diag .heading-1 p { font-size: 36px !important; line-height: 0.95 !important; }
/* .heading-2::after { content: ''; display: block; width: 3.75em; height: .625em; background: url(../images/heading_dot.svg); background-size: 100% 100%; margin-top: .8em; } */
.heading-2 h2 { font-weight: normal; font-size: 26px; line-height: 1; letter-spacing: .04em; width: 100%; display: flex; align-items: center; justify-content: center; flex-wrap: nowrap; overflow: hidden; white-space: nowrap; }
.heading-2 h2::before,
.heading-2 h2::after { content: ''; display: block; width: 7em; height: 1px; background: var(--c-dark-20); }
.heading-2 h2::before { margin-right: 1.4em; }
.heading-2 h2::after { margin-left: 1.4em; }
.heading-2 p { font-weight: 500; font-size: 18px; letter-spacing: .1em; font-family: 'Marcellus SC', serif; margin-bottom: 0; color: var(--c-primary); }
.heading-2 p:first-letter { font-size: 23px; }

.titl-1,.titl-2,.titl-3,
.titl-4,.titl-5,.titl-6,
.titl-7,.titl-8,.titl-9,.titl-10 { font-size: 23px; }
.titl--1,.titl--2,.titl--3 { font-size: 20px; }
.titl-1.point {position: relative;padding: 0 0 14px;border-bottom: 1px solid var(--c-primary);text-align: left;letter-spacing: 0.08em;line-height: 1.4;font-family: 'M PLUS Rounded 1c', sans-serif;font-weight: normal;}
.titl-1.point span {display: block;font-size: 11px;letter-spacing: 0.1em;color: var(--c-primary);font-style: italic;font-family: 'Noto Sans', sans-serif;font-weight: 500;}
.titl-1.point em {margin-left: 3px;font-size: 16px;letter-spacing: 0.05em;color: var(--c-primary);font-family: 'Roboto',sans-serif;}
.titl-2 {position: relative;padding: 14px 0 14px;text-align: left;letter-spacing: 0.15em;line-height: 1.4;font-weight: normal;}
.titl-2.log {padding: 8px 14px 8px 55px;}
.titl-2.log::before {content: '';position: absolute;width: 40px;height: 40px;top: 7px;left: 0;margin: auto;background-image: url(../images/logo_icon.svg);background-repeat: no-repeat;background-position: center;background-size: cover;}
.titl-3 {position: relative;padding: 8px 0 10px 18px;text-align: left;letter-spacing: 0.15em;line-height: 1.4;font-weight: normal;border-left: 4px solid var(--c-primary);}
.titl-4 {position: relative;padding: 6px 0 10px 18px;text-align: left;letter-spacing: 0.15em;line-height: 1.4;font-weight: normal;border-left: 4px solid var(--c-primary);border-bottom: 1px solid var(--c-primary);}
.titl-5 {position: relative;padding: 6px 0 10px;text-align: left;letter-spacing: 0.15em;line-height: 1.4;font-weight: normal;}
.titl-5::after {content: "";position: absolute;bottom: 0;left: 0;display: block;width: 100%;height: 2px;background: -moz-linear-gradient(to right, var(--c-primary), transparent);background: -webkit-linear-gradient(to right, var(--c-primary), transparent);background: linear-gradient(to right, var(--c-primary), transparent);}
.titl-6 {position: relative;padding: 10px 0 10px 22px;text-align: left;letter-spacing: 0.15em;line-height: 1.4;font-weight: normal;color: #ffffff;background: var(--c-primary);border-radius: 6px;}
.titl-7 {position: relative;padding: 8px 0 8px 16px;text-align: left;letter-spacing: 0.15em;line-height: 1.4;font-weight: normal;border: 6px solid var(--c-primary);border-radius: 12px;}
.titl-8 {position: relative;padding: 6px 0 6px 35px;text-align: left;letter-spacing: 0.15em;line-height: 1.4;font-weight: normal;}
.titl-8::before {content:"";position:absolute;top: 14px;left: 0;margin: auto;width: 22px;height: 22px;display: block;border: 4px solid var(--c-primary);border-radius: 100%;}
.titl-9 {position: relative;padding: 6px 0 6px 35px;text-align: left;letter-spacing: 0.15em;line-height: 1.4;font-weight: normal;}
.titl-9::before {content:"";position:absolute;top: 20px;left: 0;margin: auto;width: 22px;height: 4px;display: block;background: var(--c-primary);border-radius: 3px;}
.titl-10 {position: relative;padding: 16px 0;letter-spacing: 0.15em;line-height: 1.4;font-weight: normal;border-top: 1px solid var(--c-bg-warm-3);border-bottom: 1px solid var(--c-bg-warm-3);}
.titl--1 {position: relative;padding: 0;letter-spacing: 0.15em;line-height: 1.4;font-weight: normal;}
.titl--1 .dou {padding-bottom: 6px;border-bottom: 4px double var(--c-primary);line-height: 2;}
.titl--1 .arr {padding: 0 0 6px 30px;}
.titl--1 .arr::before {content: '';position: absolute;width: 20px;height: 20px;top: 3px;left: 0;margin: auto;background-image: url(../images/line-arrow.svg);background-repeat: no-repeat;background-position: center;background-size: cover;}
.titl--1 .dot {position: relative;display: inline-block;}
.titl--1 .dot::after {content: '';position: absolute;bottom: 0;left: 0;background: url(../images/line-dot.svg) repeat-x;background-size: 6px 2px;width: 100%;height: 2px;}
.titl--2 {position: relative;padding: 0;letter-spacing: 0.15em;line-height: 1.4;font-weight: normal;}
.titl--2 span {display: inline-block;padding: 8px 12px;border: 1px solid var(--c-primary);}
.titl--3 {position: relative;padding: 0;letter-spacing: 0.15em;line-height: 1.4;font-weight: normal;}
.titl--3 span {display: inline-block;padding: 8px 12px;border-bottom: 4px double var(--c-primary);}

/*ボタン*/
.button-1 a { display: inline-block; max-width: 100%; background: var(--c-secondary); color: #fff; letter-spacing: .1em; line-height: 1.4; font-size: 12px; font-family: 'Marcellus SC', serif; overflow: hidden; position: relative; transition: .9s all cubic-bezier(0.19, 1, 0.22, 1); padding: 16px 20px; -webkit-backface-visibility: hidden; backface-visibility: hidden; border: none; will-change: transform; }
.button-1 span:first-letter { font-size: 16px; }
.button-1 a::before { content: ''; display: block; position: absolute; width: 100%; height: 100%; opacity: 0; transition: .6s all cubic-bezier(0.19, 1, 0.22, 1); top: 0; left: 0; transform: rotate(45deg); z-index: -1; background: var(--c-accent); }
.button-1 a:hover { transform: scale(1.05); }
.button-1 a:hover::before { opacity: 1; transform: scale(2) rotate(0deg); }
.button-1 a:hover i { animation: arrow .2s ease-in-out 1 alternate; }
.button-2 a { width: 14em; max-width: 100%; background: var(--c-secondary); color: #fff; letter-spacing: .1em; line-height: 1.4; font-size: 12px; font-family: 'Marcellus SC', serif; overflow: hidden; position: relative; display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; transition: .9s all cubic-bezier(0.19, 1, 0.22, 1); padding: 16px 20px; -webkit-backface-visibility: hidden; backface-visibility: hidden; border: none; will-change: transform; }
.button-2 span:first-letter { font-size: 16px; }
.button-2 a::before { content: ''; display: block; position: absolute; top: 0; left: 0; width: 0; height: 100%; transition: all .2s; z-index: -1; background: var(--c-accent); }
.button-2 i { position: relative; transition: all .2s; }
.button-2 a:hover::before { width: 100%; }
.button-2 a:hover i { animation: arrow .2s ease-in-out 1 alternate; }
.button-3 a { max-width: 100%; background: var(--c-secondary); color: #fff; letter-spacing: .1em; line-height: 1.4; font-size: 16px; font-family: 'Marcellus SC', serif; overflow: hidden; position: relative; display: inline-block; transition: .9s all cubic-bezier(0.19, 1, 0.22, 1); padding: 16px 120px 16px 40px; -webkit-backface-visibility: hidden; backface-visibility: hidden; border: none; will-change: transform; }
.button-3 span:first-letter { font-size: 16px; }
.button-3 a::before { content: ''; display: block; position: absolute; top: 0; left: 0; width: 0; height: 100%; transition: all .2s; z-index: -1; background: var(--c-accent); }
.button-3 a::after { content: ''; display: block; position: absolute; top: 0; bottom: 0; right: -50px; margin: auto; width: 100px; height: 1px; transition: all .2s; z-index: -1; background: #ffffff; }
.button-3 a:hover::before { width: 100%; }
.button-3 a:hover::after { right: 0; }
.button-3 a:hover i { animation: arrow .2s ease-in-out 1 alternate; }

/*テーブル*/
.table-1 table { font-size: .86em; border-spacing: 0; border-collapse: collapse; white-space: nowrap; color: var(--c-text); font-family: 'Crimson Text', serif; }
.table-1 tr:not(:first-child) th { font-size: 1.15em; }
.table-1 tr:not(:first-child) td { color: var(--c-secondary); }
.table-1 tr:not(:last-child) { border-bottom: 1px solid var(--c-text); }
.table-1 tr:first-child td,
.table-1 tr:first-child th { padding: 5px 0; }
.table-1 td, .table-1 th { padding: 8px 0; font-size: 1em; vertical-align: middle; text-align:center; font-weight: normal; }
.table-1 th { width: 30%; letter-spacing: 0.1em; white-space: nowrap; }
.table-1 td { width: 10%; letter-spacing: 0; }
.table-2 table { font-size: .86em; border-spacing: 0; border-collapse: collapse; white-space: nowrap; background: #ffffff; color: #333; font-family: 'Crimson Text', serif; border: 1px solid var(--c-secondary); width: 100%; }
.table-2 tr:not(:first-child) th { font-size: 1.15em; }
.table-2 tr:not(:last-child) { border-bottom: 1px solid var(--c-bg-warm-1); }
.table-2 th:not(:last-child),
.table-2 td:not(:last-child) { border-right: 1px solid var(--c-bg-warm-1); }
.table-2 tr:first-child th,
.table-2 tr:first-child td { background: var(--c-primary); color: #ffffff; font-weight: 700; padding: 12px 0; letter-spacing: 0.12em; }
.table-2 tr:first-child th:not(:last-child),
.table-2 tr:first-child td:not(:last-child) { border-right: 1px solid rgba(255,255,255,0.35); }
.table-2 td, .table-2 th { padding: 12px 0; font-size: 1em; vertical-align: middle; text-align:center; font-weight: normal; }
.table-2 tr:not(:first-child) th { background: var(--c-primary); color: #ffffff; font-weight: 600; border-right: 1px solid rgba(255,255,255,0.35); }
.table-2 tr:not(:first-child) td { color: #666; font-size: 1.1em; }
.table-2 th { width: 30%; letter-spacing: 0.1em; white-space: nowrap; }
.table-2 td { width: 10%; letter-spacing: 0; }
.table-3 table { font-size: .86em; border-spacing: 0; border-collapse: collapse; white-space: nowrap; overflow: hidden; }
.table-3 tr:first-child > * { background: var(--c-secondary); color: #ffffff; padding-top: 6px; padding-bottom: 6px; }
.table-3 th,
.table-3 td { padding: 10px 0; }
.table-3 th { width: 30%; padding-left: 12px; }
.table-3 td { width: 10%; text-align: center; color: var(--c-secondary); }

/*mainslider [js]*/
.swiper-slide-active .slide-img,
.swiper-slide-duplicate-active .slide-img,
.swiper-slide-prev .slide-img { animation: zoomUp 10s linear 0s 1 normal both; }
.slide-img img { display: block; width: 100%; }

/* ページ -----------------------------------------------------*/

/*医師紹介*/
.dr { overflow: hidden; }
.dr .doctor-box .heading-1::after { content: none; }
.dr .doctor-box .text { letter-spacing: 0.04em; line-height: 1.8125; }
.dr .doctor-box .text p { margin-bottom: 30px; }
.dr .doctor-box .sub { position: absolute; top: -9px; right: -82px; margin: 0; font-size: 24px; line-height: 40px; color: var(--c-dark); letter-spacing: 0.08em; writing-mode: vertical-rl; }
.dr .doctor-box .sub span { display: block; padding-top: 20px; }
.dr .doctor-box .sub { color: var(--c-dark); font-family: ; -webkit-writing-mode: vertical-rl; -moz-writing-mode: vertical-rl; -ms-writing-mode: tb-rl; -ms-writing-mode: vertical-rl; writing-mode: vertical-rl; }
.dr .doctor-box .name { font-weight: 600; font-size: 14px; }
.name-1 { position: relative; font-size: 22px; padding-top: 16px; letter-spacing: .16em; display:inline; }
.dr .doctor-box .name em { position: absolute; top: 0; left: 6px; letter-spacing: .08em; font-style: normal; font-size: 10px; }
.dr .doctor-r { position: relative; z-index: 1; }
.dr .doctor-l { width: 72%; z-index: 2; }
.dr .doctor-l::after { content: ''; position: absolute; top: 0; left: -60px; height: 500px; width: 120%; background-color: var(--c-bg); z-index: -1; }
.dr .doctor-2 .doctor-l { margin-left: 28%; padding-bottom: 30px; }
.dr .doctor-2 .doctor-l::after { top: 0; right: 0; height: 390px;}
.dr .doctor-2 .dashed-list li { padding-bottom: 8px; }

/*よくある質問*/

.qa-box .qa-titl { font-size: 32px; letter-spacing: .08em; }
.qa-box .qa-list { border: 2px solid var(--c-bg-warm-2); }
.qa-box .accordion-btn { position: relative; padding: 15px 15px 15px 40px; letter-spacing: .08em; }
.qa-box .accordion-btn span { position: relative; border-bottom: 4px solid var(--c-bg-warm-3); }
.qa-box .accordion-btn::before { content: 'Q'; position: absolute; top: 8px; left: 12px; color: var(--c-primary); font-size: 23px; font-family: 'Crimson Text', serif; }
.qa-box .accordion-content { position: relative; border-top: 2px dashed var(--c-bg-warm-3); }
.qa-box .accordion-content p:last-child { margin-bottom: 0; }

/*症状から探す*/
.symptoms-list { overflow: hidden; border: 6px solid var(--c-primary); border-radius: 12px; }
.symptoms-titl { padding: 8px 10px 10px; color: #ffffff; background: var(--c-primary); font-size: 20px; }
.symptoms-content .scroll-box { overflow: auto; height: 140px; margin: 20px; }
.symptoms-content .scroll-box > div { overflow: auto; height: 140px; position: relative; }
.symptoms-content picture { display: block; }
.symptoms-content ul {margin-right: 26px;}
.symptoms-content li { padding: 3px 0 3px 18px; border-bottom: 1px dashed var(--c-primary); position: relative; }
.symptoms-content li a { display: block; color: var(--c-text); transition: ease .4s; }
.symptoms-content li:hover { opacity: .8; }
.symptoms-content li a:hover { color: var(--c-accent); }
.symptoms-content li::before { content: ''; position: absolute; top: 14px; left: 0; display: block; width: 10px; height: 10px; background: url(../images/cross.svg); background-size: 100%; }

/* iphone5-5s-se */
@media screen and (max-width:320px) {
 
body { font-size: 15px; }

/* スマホメニュー -----------------------------------------------------*/

/* メイン -----------------------------------------------------*/

/* トップページ -----------------------------------------------------*/

}

/* pc-ipad */
@media (min-width: 576px) {

/* html, body { min-width: 1280px; } */

.content { margin-bottom: 100px; width: 840px; }

/* メイン -----------------------------------------------------*/
.mainvisual { height: 340px; }
.mainvisual .headline-flame { height: 240px; margin-top: 100px; }
.mainvisual .headline-flame .headline { font-size: 27px; }

/* トップページ -----------------------------------------------------*/
.top-news { padding-bottom: 200px; }
.top-news .news-box { position: absolute; top: -100px; left: 0; right: 0; margin: auto; height: auto; padding: 50px 60px 35px; }
.top-news .news-box .btn { margin: 0 0 10px; text-align: left; }
.top-news .news-box .btn a { margin: 0; }
.top-news .news-left { width: 18%; }
.top-news .news-right { width: 76%; }
.top-news .news-titl { margin-bottom: 30px; text-align: left; align-items: flex-start; }
.top-news .news-titl h2::before { content: ''; }
.top-news .news-list li { margin-bottom: 15px; }
.top-news .news-list .titl { display: inline; margin-left: 30px; }
.top-time { margin-top: 60px; }
.top-time .table-2 { margin-bottom: 20px; padding: 0; background: transparent; border: none; border-radius: 0; }
.top-clinic .clinic-l { margin-right: 50px; }
.top-clinic .clinic-r { margin: 0 0 0; width: auto; }
.top-clinic .clinic-box { margin-bottom: 100px; }
.top-clinic .clinic-box::before { width: 82vw; top: auto; bottom: -100px; }
.top-clinic .clinic-box::after { top: auto; bottom: -60px; right: 40px; }
.top-clinic .clinic-box .img { margin-left: 0; }
.top-clinic .clinic-box .text { top: 300px; left: -186px; width: 620px; padding: 20px 60px 40px; }
.top-clinic .clinic-box .sub { top: 0; left: 50px; font-size: 28px; line-height: 49px; }
.top-clinic .clinic-l { margin-left: auto; margin-right: 50px; }
.top-clinic .clinic-box .text { top: 300px; left: -186px; width: 620px; }
.top-gree { padding: 160px 0 40px; }
.top-gree::after { bottom: 120px; height: 619px; width: 42.2vw; }
.top-gree .gree-box .sub { top: -109px; right: 12px; line-height: 49px; font-size: 28px; }
.top-gree .gree-r { margin-bottom: 60px; }
.top-gree .gree-l { width: auto; }
.top-diag .diag-box { justify-content: center; gap: 5%; }
.top-diag .diag-box a { -ms-flex: 0 0 28%; flex: 0 0 28%; max-width: 28%; height: auto; aspect-ratio: 1 / 1; overflow: hidden; margin-bottom: 5%; }
.top-diag .diag-box a:nth-child(1) img { width: 70px; }
.top-diag .diag-box a:nth-child(2) img { width: 62px; }
.top-diag .diag-box a:nth-child(3) img { width: 70px; }
.top-diag .diag-box a:nth-child(4) img { width: 45px; }
.top-diag .diag-box a:nth-child(5) img { width: 63px; }
.top-diag .diag-box a:nth-child(6) img { width: 70px; }
.top-diag .diag-box a:nth-child(7) img { width: 70px; }
.top-diag .diag-box a:nth-child(8) img { width: 60px; }
.top-diag .diag-box i { width: 90px; height: 90px; }
.top-diag .diag-box span { font-size: 14px; }
.top-symp .symp-tab .tab { margin-bottom: 46px; }
.top-symp .symp-tab .tab li { width: 180px; padding: 15px; margin-right: 1em; margin-bottom: 0; }
.top-symp .symp-tab .tab { justify-content: center; }
.top-symp .tab-panel { height: 260px; }
.top-symp .symp-list { overflow: visible; height: auto; }
.top-symp .symp-list li { width: 30%; margin-bottom: .8em; margin-right: 1em;}
.top-symp .symp-list li:nth-child(3n) { margin-right: 0; }
.top-symp .symp-list li a { padding: 15px; }
.top-video { padding: 60px 0 0; }

/* フッター -----------------------------------------------------*/
.bnr-slide { padding: 60px 0 20px; }

.panel-bnr .bnr-l,
.panel-bnr .bnr-r { overflow: hidden; height: 400px; }
.panel-bnr .img img { height: auto; min-width: 100%; }

.footer .gmap { height: 100%; }
.footer .gmap-kunk { left: 80px; right: auto; }
.footer-top { padding: 82px 0 78px; }
.footer-top .footer-logo { width: 420px; padding-right: 0; margin: 0; margin-bottom: 30px; left: auto; }
.footer-bottom { padding-bottom: 32px; }
.footer-bottom .footer-logo { width: 300px;margin-bottom: 15px; }
.footer-med span { margin-top: 0; }
.footer-sche .table-1 { padding: 20px 24px 18px 20px; background: var(--c-bg); }
.pagetop { width: 50px; height: 50px; right: 24px; bottom: 24px; }

/*ページネーション*/
.pagination a,
.pagination span { padding: 16px; }
.pagination .next a,
.pagination .next-link a { padding: 16px; }
.pagination .prev,
.pagination .prev-link a { padding-left: 24px; padding-right: 0; }
.pagination .next,
.pagination .next-link a { padding-right: 24px; padding-left: 0; }
.pagination .list-link a { padding: 16px 0; }

/* その他 -----------------------------------------------------*/

.heading-1 p { font-size: 40px; }
body .top-time .heading-1 p,
body .top-diag .heading-1 p { font-size: 38px !important; }

/*タイトル*/
.titl-1, .titl-2,.titl-3,
.titl-4,.titl-5,.titl-6,
.titl-7,.titl-8,.titl-9,.titl-10 {font-size: 28px;}
.titl--1,.titl--2,.titl--3 {font-size: 23px;}
.titl-2.hai {padding: 14px 14px 14px 65px;}
.titl-2.hai::before {width: 50px;height: 50px;top: 8px;}
.titl-3 {padding: 10px 0 10px 24px;}
.titl-4 {padding: 6px 0 12px 24px;}
.titl-5 {padding: 6px 0 13px;}
.titl-6 {padding: 12px 0 12px 24px;}
.titl-7 {padding: 12px 0 12px 18px;border: 8px solid var(--c-bg-warm-3);}
.titl-9::before {top: 22px;}
.titl--1 {position: relative;padding: 0;letter-spacing: 0.15em;line-height: 1.4;font-weight: normal;}
.titl--1 .dou {padding-bottom: 6px;border-bottom: 4px double var(--c-primary);}
.titl--1 .arr {padding: 0 0 6px 30px;}
.titl--1 .arr::before {content: '';position: absolute;width: 20px;height: 20px;top: 6px;left: 0;margin: auto;background-image: url(../images/line-arrow.svg);background-repeat: no-repeat;background-position: center;background-size: cover;}
.titl--1 .dot {position: relative;display: inline-block;}
.titl--1 .dot::after {content: '';position: absolute;bottom: 0;left: 0;background: url(../images/line-dot.svg) repeat-x;background-size: 6px 2px;width: 100%;height: 2px;}
.titl--2 {position: relative;padding: 0;letter-spacing: 0.15em;line-height: 1.4;font-weight: normal;}
.titl--2 span {display: inline-block;padding: 8px 12px;border: 1px solid var(--c-primary);}
.titl--3 {position: relative;padding: 0;letter-spacing: 0.15em;line-height: 1.4;font-weight: normal;}
.titl--3 span {display: inline-block;padding: 8px 12px;border-bottom: 4px double var(--c-primary);}

/*テーブル*/
.table-1 table { font-size: 16px; }
.table-1 tr:first-child td,
.table-1 tr:first-child th { padding: 5px 0; }
.table-1 td, .table-1 th { padding: 8px 0; }
.table-2 table { font-size: 16px; }
.table-3 table { font-size: 16px; }
.table-3 th { padding-left: 24px; }

/*ボタン*/
.button-1 a { padding: 20px; }
.button-2 a { padding: 20px; }
.button-3 a { padding: 20px 120px 20px 40px; }

/* ページ -----------------------------------------------------*/

/*医師紹介*/
.dr .doctor-box .name span { font-size: 26px; }
.dr .doctor-box .sub { top: -100px; right: 0; font-family: 'Noto Serif JP', '游明朝', serif; font-weight: 500; font-size: 24px; line-height: 1.8; max-height: none; }
.dr .doctor-box .sub span { display: block; white-space: nowrap; }
.dr .doctor-box .sub span:nth-child(2) { padding-top: 1em; }
.dr .doctor-r { margin-bottom: 60px; }
.dr .doctor-l { width: auto; }
.dr .doctor-l::after { top: auto; bottom: 120px; left: auto; right: 0; height: 619px; width: 42.2vw; }
.dr .doctor-1 { padding-top: 116px; }
.dr .doctor-2 .doctor-l { margin-left: 0; }
.dr .doctor-2 { padding-top: 60px; }
.dr .doctor-2 .dashed-list li { padding-bottom: 0; }
.dr .doctor-2 .doctor-l { padding-bottom: 0; }
.dr .doctor-2 .doctor-l::after { top: 30px; left: 0; right: auto; height: 460px; }

/*よくある質問*/

.qa-box .accordion-btn { padding: 20px 20px 20px 48px; font-size: 18px; }
.qa-box .accordion-btn::before { top: 12px; left: 16px; font-size: 26px; }
.qa-box .accordion-content {  }

}

/* ==========================================================================
   kodaira teaser overrides (こだいら小川町メディカルクリニック)
   ========================================================================== */

/* 診療時間セクション右カラムの「開院案内カード」 */
.opening-info-card {
	background: var(--c-bg-sub);
	border: 2px solid var(--c-primary);
	border-radius: 16px;
	padding: 32px 28px;
	text-align: center;
}
.opening-info-card-en {
	font-family: 'Marcellus SC', serif;
	color: var(--c-primary);
	font-size: 14px;
	letter-spacing: .15em;
	margin-bottom: 8px;
}
.opening-info-card-ja {
	font-size: 24px;
	color: var(--c-dark);
	margin-bottom: 16px;
	font-weight: 600;
	line-height: 1.4;
}
.opening-info-card-ja .opening-info-card-num {
	font-size: 36px;
	color: var(--c-primary);
	margin: 0 4px;
}
.opening-info-card-text {
	margin-bottom: 16px;
	line-height: 1.7;
}
.opening-info-card-preview {
	background: #fff;
	border-radius: 8px;
	padding: 14px 16px;
	margin-top: 16px;
}
.opening-info-card-preview-label {
	font-size: 14px;
	color: var(--c-secondary);
	margin-bottom: 4px;
	font-weight: 600;
}
.opening-info-card-preview-date {
	font-size: 18px;
	color: var(--c-dark);
	font-weight: 600;
	margin: 0;
}
.opening-info-card-preview-note {
	font-size: 13px;
	margin: 6px 0 0;
	color: var(--c-gray);
}

/* Google Map iframe (footer) */
.gmap iframe { border: 0; }

/* メインビジュアル下のカテゴリエリア(非表示・将来用) */
.main-cat { display: none; }

/* メインビジュアル(ヒーロー)の安定した高さとクロップ
   - 画像のアスペクト比がバラバラ(縦長/横長混在)でも安定して見せるため
     固定の aspect-ratio + object-fit: cover で統一する。
*/
.home .mainvisual .main-slide .or .swiper-container,
.home .mainvisual .main-slide .hide-or .swiper-container {
	width: 100%;
	overflow: hidden;
}
.home .mainvisual .swiper-slide .slide-img {
	position: relative;
	width: 100%;
	aspect-ratio: 5 / 3;         /* PC 用やや縦長ワイド(目安: 1920×1152) */
	overflow: hidden;
}
.home .mainvisual .swiper-slide .slide-img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center center;
	display: block;
}
@media (max-width: 575px) {
	.home .mainvisual .swiper-slide .slide-img {
		aspect-ratio: 3 / 4;     /* SP 用縦型(目安: 750×1000) */
	}
}

@media (max-width: 575px) {
	.opening-info-card { padding: 24px 20px; }
	.opening-info-card-ja { font-size: 20px; }
	.opening-info-card-ja .opening-info-card-num { font-size: 30px; }
}

/* SP時: お知らせセクション内の MORE ボタンを最下部へ */
@media (max-width: 575px) {
	.top-news .news-box .flex-or {
		display: flex;
		flex-direction: column;
	}
	.top-news .news-left { display: contents; }
	.top-news .news-titl { order: 1; }
	.top-news .news-right { order: 2; }
	.top-news .news-btn {
		order: 3;
		margin-top: 24px;
		text-align: center;
	}
}

/* --------------------------------------------------------------------------
   クリニック紹介セクション (ogawa から移植したスタイル)
   --------------------------------------------------------------------------
   .greeting-section スコープ内で ogawa の CSS 変数を再定義し、
   元の ogawa CSS をほぼそのまま流用できるようにしています。
*/
.greeting-section {
	--color-primary: var(--c-primary);
	--color-primary-dark: var(--c-accent);
	--color-primary-light: #dcec9e;  /* 薄黄緑 */
	--color-text: var(--c-text);
	--color-text-dark: var(--c-accent);
	--color-white: #ffffff;
	--font-serif: 'Noto Serif JP', 'Yu Mincho', YuMincho, 'Hiragino Mincho ProN', serif;
	--font-en: 'Cormorant Garamond', Georgia, serif;
	position: relative;
	padding: 0;
	background: var(--color-white);
	overflow: hidden;
}
.greeting-inner {
	padding: 50px 15px 80px;
}

/* clinic-box: 写真+縦書き+テキストの重なりレイアウト */
.greeting-section .clinic-box {
	position: relative;
	margin-bottom: 0;
}

/* 背景装飾(写真の後ろの青いブロック) */
.greeting-section .clinic-box::before {
	content: '';
	position: absolute;
	bottom: 0;
	right: -8%;
	width: 78%;
	height: 75%;
	background-color: var(--c-primary);
	z-index: 1;
}

/* 縦書きキャッチコピー (SP：縦書きのまま画面内に収める) */
.clinic-box-sub {
	position: absolute;
	top: 20px;
	left: 16px;
	z-index: 5;
	writing-mode: vertical-rl;
	-webkit-writing-mode: vertical-rl;
	font-family: var(--font-serif);
	font-size: 16px;
	font-weight: 500;
	color: #555;
	letter-spacing: 0.18em;
	line-height: 1.6;
	height: auto;
	max-height: 70%;
	white-space: nowrap;
}
.clinic-box-sub span {
	display: inline;
	padding: 0;
	margin-left: 0;
	color: var(--c-primary);
	font-weight: 600;
}

/* 医師写真 */
.greeting-section .clinic-box-img {
	position: relative;
	z-index: 3;
	margin-left: auto;
	width: 88%;
}
.greeting-section .clinic-box-img img {
	width: 100%;
	height: auto;
	display: block;
}

/* テキストボックス(写真に重なる) */
.clinic-box-text {
	position: relative;
	bottom: auto;
	left: auto;
	width: calc(100% - 24px);
	max-width: calc(100% - 24px);
	padding: 24px 20px 28px;
	background-color: rgba(255, 255, 255, 0.96);
	box-shadow: 0 6px 28px rgba(40, 80, 110, 0.1);
	box-sizing: border-box;
	z-index: 4;
}

/* CLINIC 見出し(Marcellus SC風、ブルー、頭文字大きく) */
.clinic-box-heading {
	margin-bottom: 16px;
}
.clinic-box-heading-en {
	display: block;
	font-family: 'Marcellus SC', var(--font-en), serif;
	font-size: 22px;
	font-weight: 500;
	color: var(--color-primary);
	letter-spacing: 0.1em;
	line-height: 1;
	text-transform: uppercase;
	margin-bottom: 12px;
}
.clinic-box-heading-en::first-letter {
	font-size: 30px;
}
.clinic-box-heading-ja {
	display: flex;
	align-items: center;
	gap: 12px;
	font-family: var(--font-serif);
	font-size: 15px;
	font-weight: 400;
	color: var(--color-text-dark);
	letter-spacing: 0.04em;
	margin: 0;
}
.clinic-box-heading-ja::before {
	content: '';
	display: inline-block;
	width: 30px;
	height: 1px;
	background: rgba(51, 68, 85, 0.5);
}

/* 本文テキスト */
.clinic-box-body p {
	font-family: var(--font-serif);
	font-size: 16px;
	line-height: 2;
	color: var(--color-text);
	margin-bottom: 8px;
}
.clinic-box-body p:last-child {
	margin-bottom: 0;
}

/* MORE リンク */
.clinic-box-more {
	display: inline-flex;
	align-items: center;
	justify-content: space-between;
	gap: 30px;
	min-width: 200px;
	margin-top: 28px;
	padding: 14px 24px;
	background: var(--c-primary);
	color: #fff;
	text-decoration: none;
	font-family: 'Marcellus SC', serif;
	font-size: 15px;
	font-weight: 500;
	letter-spacing: 0.12em;
	transition: background 0.3s;
	border: none;
	transition: color 0.3s, border-color 0.3s;
}
.clinic-box-more:hover {
	background: var(--c-accent);
	color: #fff;
}
.clinic-box-more svg {
	width: 16px;
	height: 16px;
	stroke: #fff;
}

/* タブレット以上(768px+)の上書き */
@media (min-width: 768px) {
	.greeting-section .clinic-box::before {
		bottom: -100px;
		right: 0;
		width: 82%;
		height: 480px;
	}
	.clinic-box-sub {
		position: absolute;
		top: 30px;
		left: 60px;
		writing-mode: vertical-rl;
		-webkit-writing-mode: vertical-rl;
		font-family: 'Noto Serif JP', '游明朝', serif;
		font-size: 24px;
		font-weight: 500;
		line-height: 1.8;
		letter-spacing: 0.18em;
		color: #555;
	}
	.clinic-box-sub span {
		display: inline;
		padding: 0;
	}
	.greeting-section .clinic-box-img {
		position: relative;
		width: 48%;
	}
	.clinic-box-text {
		position: absolute;
		bottom: -160px;
		left: 100px;
		width: 540px;
		max-width: 48%;
		padding: 20px 50px 40px;
		box-shadow: 0px 3px 70px 4px rgba(102, 102, 102, 0.05);
	}
	.clinic-box-heading {
		margin-bottom: 20px;
	}
	.clinic-box-heading-en {
		font-size: 25px;
	}
	.clinic-box-heading-en::first-letter {
		font-size: 32px;
	}
	.clinic-box-heading-ja {
		font-size: 18px;
	}
}

/* タブレットのみ(768〜1023px) */
@media (min-width: 768px) and (max-width: 1163px) {
	.clinic-box-heading-en {
		font-size: 25px;
	}
	.clinic-box-heading-en::first-letter {
		font-size: 40px;
	}
	.clinic-box-heading-ja {
		font-size: 16px;
	}
	.greeting-section .clinic-box-img {
		width: 85%;
		margin-left: 100px;
	}
	.clinic-box-sub {
		position: relative;
		top: auto;
		left: auto;
		writing-mode: vertical-rl;
		font-size: 24px;
		line-height: 40px;
		margin-bottom: 16px;
	}
	.clinic-box-sub span {
		padding-top: 0;
	}
	.clinic-box-text {
		position: relative;
		bottom: auto;
		left: auto;
		width: 88%;
		max-width: 100%;
		padding: 20px 16px 16px;
		margin-top: -60px;
	}
	.greeting-section .clinic-box::before {
		top: 67px;
		bottom: auto;
		right: -100px;
		width: 80%;
		height: 480px;
	}
}

/* デスクトップ(1024px+) */
@media (min-width:1164px){
	.greeting-inner {
		position: relative;
		max-width: 1280px;
		margin: 0 auto;
		padding: 80px 20px 200px;
	}
	.clinic-box-heading-en {
		display: block;
		font-family: 'Marcellus SC', 'Cormorant Garamond', var(--font-en), serif;
		font-size: 40px;
		font-weight: 500;
		color: var(--color-primary);
		letter-spacing: 0.1em;
		line-height: 1;
		text-transform: uppercase;
		margin-bottom: 12px;
	}
	.clinic-box-heading-en::first-letter {
		font-size: 56px;
	}
}

/* --------------------------------------------------------------------------
   医師紹介セクション (ogawa から移植したスタイル)
   --------------------------------------------------------------------------
   .top-gree スコープ内で ogawa の CSS 変数を再定義し、heading-1 等の汎用
   クラスを再定義しても他セクションに影響しないようスコープ済みです。
*/
.top-gree {
	--color-primary: var(--c-primary);
	--color-primary-dark: var(--c-accent);
	--color-primary-light: #dcec9e;  /* 薄黄緑 */
	--color-primary-bg: #f5f2e9;     /* 薄背景(クリーム) */
	--color-text: var(--c-text);
	--color-text-light: #707070;
	--color-text-dark: var(--c-accent);
	--color-white: #ffffff;
	--color-border: #e2e2e2;
	--font-serif: 'Noto Serif JP', 'Yu Mincho', YuMincho, 'Hiragino Mincho ProN', serif;
	--font-en: 'Cormorant Garamond', Georgia, serif;
	background: var(--color-white);
	padding: 0;
}
/* 上書き: 既存 .top-gree::after は使わない */
.top-gree::after { content: none !important; }

/* 理事長セクション(.top-gree#chief-director)の装飾は青系 */
#chief-director .gree-block::after {
	background-color: var(--c-primary);
}

/* gree-block: 院長/理事長の各ブロック */
.gree-block {
	position: relative;
	padding: 50px 0 40px;
	overflow: hidden;
}
.gree-block::after {
	content: '';
	position: absolute;
	bottom: 0;
	right: auto;
	height: 75%;
	width: 78%;
	background-color: var(--color-primary-bg);
	z-index: 1;
}
.gree-block--reverse::after {
	right: -8%;
	left: auto;
}
/* 緑背景に慈映会ロゴ(白)を透過配置 */
.gree-block::before {
	content: '';
	position: absolute;
	top: 30%;
	left: 4%;
	width: 180px;
	height: 180px;
	background-image: url('../images/common/white_logom.svg');
	background-repeat: no-repeat;
	background-size: contain;
	background-position: center;
	opacity: 0.28;
	z-index: 3;
	pointer-events: none;
}
.gree-block--reverse::before {
	left: auto;
	right: 4%;
}
/* PC: 緑背景の位置に合わせてロゴを反転 */
@media (min-width: 768px) {
	.gree-block::before {
		left: auto;
		right: 4%;
		top: 32%;
		width: 300px;
		height: 300px;
	}
	.gree-block--reverse::before {
		left: 4%;
		right: auto;
	}
}

/* クリニック紹介セクションの緑背景に "JIEIKAI" 透過テキスト */
.clinic-watermark {
	display: block;
	position: absolute;
	bottom: 30px;
	right: 8%;
	font-family: 'Marcellus SC', 'Cormorant Garamond', Georgia, serif;
	font-weight: 700;
	font-size: 28px;
	letter-spacing: 0.14em;
	color: #ffffff;
	opacity: 0.5;
	z-index: 99;
	pointer-events: none;
	line-height: 1;
	white-space: nowrap;
	margin: 0;
}
@media (min-width: 768px) and (max-width: 1163px) {
	.clinic-watermark {
		font-size: 48px;
		bottom: -60px;
		right: 4%;
	}
}
@media (min-width:1164px){
	.clinic-watermark {
		font-size: 64px;
		bottom: -80px;
		right: 6%;
	}
}

/* 緑背景の中に "JIEIKAI" 透過テキスト */
.gree-watermark {
	display: block;
	position: absolute;
	bottom: 30px;
	right: 8%;
	font-family: 'Marcellus SC', 'Cormorant Garamond', Georgia, serif;
	font-weight: 700;
	font-size: 28px;
	letter-spacing: 0.14em;
	color: #ffffff;
	opacity: 0.5;
	z-index: 99;
	pointer-events: none;
	line-height: 1;
	white-space: nowrap;
	margin: 0;
}
.gree-block--reverse .gree-watermark {
	right: auto;
	left: 8%;
}
/* タブレット (768〜1023px): 緑は bottom:140px ~ +450px */
@media (min-width: 768px) and (max-width: 1163px) {
	.gree-watermark {
		font-size: 48px;
		bottom: 160px;
	}
}
/* PC (1024px+): 緑は bottom:0, height:70% */
@media (min-width:1164px){
	.gree-watermark {
		font-size: 64px;
		bottom: 20px;
	}
}
.gree-block-inner {
	max-width: 1100px;
	margin: 0 auto;
	padding: 0 20px;
	position: relative;
	z-index: 2;
}

/* 見出し(.gree-block 内のみ): 西葛西スタイル */
.gree-block .heading-1 {
	margin-bottom: 24px;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	font-family: var(--font-serif);
}
.gree-block .heading-1::after { content: none; }
.gree-block .heading-1 p {
	font-family: 'Marcellus SC', var(--font-en), serif;
	font-size: 18px;
	font-weight: 500;
	color: var(--color-primary);
	letter-spacing: 0.1em;
	line-height: 1;
	margin-bottom: 0;
}
.gree-block .heading-1 p::first-letter {
	font-size: 30px;
}
.gree-block .heading-1 h2 {
	display: flex;
	align-items: center;
	gap: 12px;
	font-family: var(--font-serif);
	font-size: 18px;
	font-weight: 400;
	color: var(--color-text-dark);
	letter-spacing: 0.04em;
	margin-top: 12px;
}
.gree-block .heading-1 h2::before {
	content: '';
	display: inline-block;
	width: 30px;
	height: 1px;
	background: rgba(51, 68, 85, 0.5);
	flex-shrink: 0;
}

/* gree-box: 写真+縦書き+テキストの重なり */
.top-gree .gree-box {
	position: relative;
}

/* キャッチコピー */
.gree-box-sub {
	position: static;
	z-index: 3;
	writing-mode: horizontal-tb;
	font-family: var(--font-serif);
	font-size: 13px;
	font-weight: 500;
	color: var(--color-primary-dark);
	letter-spacing: 0.18em;
	line-height: 1.6;
	text-align: center;
	padding-right: 20px;
}
.gree-box-sub span {
	display: block;
	padding-top: 6px;
	font-size: 17px;
	letter-spacing: 0.05em;
	color: var(--color-text-dark);
}
.gree-block--reverse .gree-box-sub {
	text-align: left;
	padding-right: 0;
	padding-left: 20px;
}

/* 写真 */
.gree-box-img {
	position: relative;
	z-index: 2;
	width: 88%;
}
.gree-box-img > img {
	width: 100%;
	height: auto;
	display: block;
}

/* 写真下キャプション(ロゴ+名前) */
.gree-photo-caption {
	margin-top: 36px;
	padding: 0;
	text-align: center;
}
.gree-photo-logo {
	width: 340px;
	max-width: 92%;
	height: auto;
	display: block;
	margin: 0 auto 16px;
}
.gree-photo-name {
	display: block;
	text-align: center;
	font-size: 18px;
	letter-spacing: 0.12em;
	color: var(--color-text);
	font-family: var(--font-serif);
	padding: 0;
}
.gree-block--reverse .gree-photo-caption {
	padding: 0;
	text-align: center;
}
.gree-block--reverse .gree-photo-logo {
	margin: 0 auto 16px;
}
.gree-block--reverse .gree-photo-name {
	padding: 0;
	text-align: center;
}

/* 院長挨拶 / 理事長挨拶 ボタン */
.gree-photo-link {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	width: max-content;
	max-width: 100%;
	margin: 16px auto 0;
	padding: 12px 32px;
	min-width: 200px;
	font-family: 'Cormorant Garamond', 'Noto Serif JP', serif;
	font-size: 14px;
	font-weight: 500;
	letter-spacing: 0.12em;
	color: var(--c-accent);
	border: 1px solid var(--c-primary);
	border-radius: 8px;
	background: #fff;
	text-decoration: none;
	transition: background 0.25s ease, color 0.25s ease, transform 0.25s ease, box-shadow 0.25s ease;
}
.gree-photo-link:hover {
	background: var(--c-primary);
	color: #fff;
	transform: translateY(-2px);
	box-shadow: 0 6px 18px rgba(136, 192, 48, 0.25);
}
.gree-photo-link svg {
	transition: transform 0.25s ease;
}
.gree-photo-link:hover svg {
	transform: translateX(3px);
}
/* キャプション内中央寄せ(ロゴ+名前のみ) */
@media (min-width: 768px) {
	.gree-photo-caption {
		text-align: center !important;
	}
	.gree-photo-caption .gree-photo-name,
	.gree-block--reverse .gree-photo-caption .gree-photo-name {
		display: block;
		text-align: center;
		width: 100%;
	}
}
/* gree-box-img 直下のボタン(写真+キャプションの下に独立配置) */
.gree-box-img > .gree-photo-link {
	margin: 20px auto 0;
}
.gree-block--reverse .gree-box-img {
	margin-left: auto;
}

/* テキストボックス */
.gree-box-text {
	position: relative;
	top: auto;
	left: auto;
	right: auto;
	width: calc(100% - 24px);
	max-width: calc(100% - 24px);
	padding: 24px 20px 28px;
	background-color: rgba(255, 255, 255, 0.96);
	box-shadow: 0 6px 28px rgba(40, 80, 110, 0.1);
	box-sizing: border-box;
	z-index: 4;
}
.gree-block--reverse .gree-box-text {
	right: auto;
	left: 0;
}

/* もっと見るアコーディオン */
.gree-text-collapse {
	overflow: hidden;
	max-height: 0;
	opacity: 0;
	transition:
		max-height 1.1s cubic-bezier(0.55, 0.06, 0.75, 0.54),
		opacity 0.7s ease 0.4s;
}
.gree-text-collapse.is-open {
	max-height: 2000px;
	opacity: 1;
}
.gree-text-collapse > p:first-child {
	margin-top: 16px;
}
.gree-text-toggle {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 10px 26px;
	margin: 20px 0 28px;
	background: transparent;
	border: 1px solid var(--color-primary);
	border-radius: 4px;
	color: var(--color-primary-dark);
	font-size: 13px;
	font-family: 'Marcellus SC', var(--font-en), serif;
	letter-spacing: 0.18em;
	text-transform: lowercase;
	cursor: pointer;
	transition: background 0.3s ease, color 0.3s ease;
}
.gree-text-toggle--center {
	display: flex;
	width: fit-content;
	margin: 20px auto 28px;
}
.gree-text-toggle:hover {
	background: var(--color-primary-bg);
}
.gree-text-toggle-icon {
	width: 12px;
	height: 12px;
	transition: transform 0.5s cubic-bezier(0.55, 0.06, 0.75, 0.54);
}
.gree-text-toggle[aria-expanded="true"] .gree-text-toggle-icon {
	transform: rotate(180deg);
}

.gree-box-text-body {
	letter-spacing: 0.04em;
	line-height: 1.8125;
	margin-bottom: 24px;
}
.gree-box-text-body p {
	font-family: var(--font-serif);
	font-size: 15px;
	line-height: 1.85;
	color: var(--color-text);
	margin-bottom: 16px;
}
.gree-box-text-body p:last-child { margin-bottom: 0; }

/* タブレット以上(768px+) */
@media (min-width: 768px) {
	.gree-block {
		padding: 40px 0 20px;
	}
	.gree-block::after {
		bottom: 0;
		right: 0;
		height: 70%;
		width: 42.2vw;
		background-color: var(--color-primary-bg);
	}
	.gree-block--reverse::after {
		left: 0;
		right: auto;
	}
	.gree-box-sub {
		position: absolute;
		writing-mode: horizontal-tb;
		font-size: 28px;
		line-height: 1.55;
		letter-spacing: 0.12em;
		color: var(--c-text);
		text-align: right;
	}
	.gree-box-sub span {
		display: block;
		font-size: 22px;
		letter-spacing: 0.1em;
		color: var(--c-gray);
	}
	.gree-box-img {
		width: 60%;
	}
	.gree-box-text {
		position: absolute;
		top: 300px;
		right: 0;
		left: auto;
		width: 720px;
		max-width: 62%;
		padding: 24px 48px 36px;
		box-shadow: 0px 3px 70px 4px rgba(102, 102, 102, 0.05);
	}
	.gree-box-text-body p {
		font-size: 16px;
		line-height: 1.8;
	}
	.gree-text-toggle {
		font-size: 13px;
		padding: 8px 22px;
		letter-spacing: 0.12em;
	}
	.gree-photo-caption {
		text-align: left;
	}
	.gree-photo-logo {
		width: 320px;
		max-width: 90%;
		margin: 0 0 16px;
	}
	.gree-photo-name {
		font-size: 18px;
		letter-spacing: 0.08em;
	}
}

/* モバイル限定オーバーライド(max-width:767px) */
@media (max-width: 767px) {
	.gree-block {
		padding: 50px 0 40px;
		min-height: auto;
		position: relative;
		overflow: hidden;
	}
	.gree-block::after {
		bottom: 0;
		left: -8%;
		right: auto;
		height: 75%;
		width: 78%;
		opacity: 1;
		background-color: var(--color-primary-bg);
	}
	.gree-block--reverse::after {
		left: auto;
		right: -8%;
	}
	.gree-block--reverse .heading-1 {
		align-items: flex-end;
		text-align: right;
	}
	.gree-box-sub {
		position: static;
		writing-mode: horizontal-tb;
		font-size: 13px;
		line-height: 1.6;
		letter-spacing: 0.18em;
		color: var(--color-primary-dark);
		text-align: center;
		margin: 0 0 18px;
	}
	.gree-box-sub span {
		display: block;
		padding: 0;
		margin: 6px 0 0;
		font-size: 17px;
		font-weight: 500;
		letter-spacing: 0.05em;
		color: var(--color-text-dark);
	}
	.gree-box-img {
		width: 88%;
		margin: 0 0 0 auto;
		border-radius: 12px;
		overflow: hidden;
		box-shadow: 0 10px 32px rgba(40, 80, 110, 0.12);
	}
	.gree-block--reverse .gree-box-img {
		margin: 0 auto 0 0;
	}
	.gree-box-text {
		position: relative;
		top: auto;
		right: auto;
		left: auto;
		width: calc(100% - 24px);
		max-width: calc(100% - 24px);
		margin: -36px auto 0;
		padding: 24px 20px 28px;
		background: rgba(255, 255, 255, 0.97);
		border-radius: 8px;
		box-shadow: 0 6px 28px rgba(40, 80, 110, 0.1);
	}
	.gree-block--reverse .gree-box-text { margin: -36px auto 0; }
	.gree-box-text-body p { font-size: 15px; line-height: 1.85; }
	.gree-text-toggle { font-size: 13px; padding: 10px 26px; letter-spacing: 0.18em; }
	.gree-photo-logo { width: 340px; max-width: 92%; margin: 0 auto 16px; }
	.gree-block--reverse .gree-photo-logo { width: 340px; max-width: 92%; margin: 0 auto 16px; }
	.gree-photo-name { padding: 0; font-size: 18px; font-weight: 700; letter-spacing: 0.12em; line-height: 1.6; white-space: nowrap; }
	.gree-block--reverse .gree-photo-name { padding: 0; font-size: 18px; font-weight: 700; letter-spacing: 0.12em; line-height: 1.6; white-space: nowrap; }
}

/* タブレット限定(768〜1023px) */
@media (min-width: 768px) and (max-width: 1163px) {
	.gree-block { padding: 60px 0 20px; }
	.gree-block--reverse .gree-box-img { margin-left: 0; margin-right: 80px; }
	.gree-block--reverse .gree-box-sub { left: auto; }
	.gree-block--reverse .gree-box-text { left: auto; margin-left: auto; }
	.gree-block::after { bottom: 140px; height: 450px; width: 78%; }
	.gree-box-img { width: 85%; margin-left: 80px; }
	.gree-box-sub {
		position: relative;
		top: auto; right: auto; left: auto;
		padding-right: 0; padding-left: 0;
		font-size: 22px; line-height: 1.55;
		margin-bottom: 16px; text-align: right;
	}
	.gree-block--reverse .gree-box-sub { text-align: left; padding-left: 0; }
	.gree-box-sub span { padding-top: 4px; font-size: 18px; }
	.gree-box-text {
		position: relative;
		top: auto; right: auto; left: auto;
		width: 90%; max-width: 100%;
		padding: 20px 16px 20px;
		margin-top: -50px;
	}
	.gree-block .heading-1 h2 { font-size: 18px; }
	.gree-block .heading-1 p { font-size: 25px; }
	.gree-block .heading-1 p::first-letter { font-size: 40px; }
}

/* デスクトップ(1024px+) */
@media (min-width:1164px){
	.gree-block {
		position: relative;
		padding: 80px 0 60px;
		min-height: auto;
	}
	.gree-block .heading-1 p {
		font-family: 'Marcellus SC', var(--font-en), serif;
		font-size: 40px;
		font-weight: 500;
		color: var(--color-primary);
		letter-spacing: 0.1em;
		line-height: 1;
		margin-bottom: 0;
	}
	.gree-block .heading-1 p::first-letter { font-size: 56px; }
	.top-gree .gree-box {
		display: flex;
		align-items: flex-start;
	}
	.gree-box-img {
		width: 60%;
		flex-shrink: 0;
		margin: 0;
	}
	.gree-block--reverse .gree-box-img { margin: 0; }
	.gree-box-text {
		position: relative;
		top: auto; right: auto; left: auto;
		width: 62%;
		max-width: none;
		margin-top: 260px;
		margin-left: -22%;
		flex-shrink: 0;
	}
	.gree-block--reverse .gree-box {
		flex-direction: row-reverse;
	}
	.gree-block--reverse .gree-box-text {
		margin-left: 0;
		margin-right: -22%;
	}
	/* PC: 写真下キャプション
	   gree-box-text が -22% 重なってくるため、可視エリア(約63%幅)に
	   キャプションの内容を収め、photo の見た目中央に揃える */
	.gree-photo-caption {
		display: block;
		width: 63%;
		margin: 24px 0 0;
		padding: 0;
		text-align: center;
		background: transparent;
		border-radius: 0;
		box-shadow: none;
		box-sizing: border-box;
	}
	.gree-block--reverse .gree-photo-caption {
		display: block;
		width: 63%;
		margin: 24px 0 0 auto;  /* reverse は右寄せ */
		padding: 0;
		text-align: center;
	}
	.gree-photo-logo,
	.gree-block--reverse .gree-photo-logo {
		display: block;
		width: 280px;
		max-width: 90%;
		margin: 0 auto 14px !important;
	}
	.gree-photo-name,
	.gree-block--reverse .gree-photo-name {
		display: block;
		text-align: center;
		font-size: 18px;
		font-weight: 600;
		letter-spacing: 0.12em;
		line-height: 1.6;
		padding: 0;
	}
	/* ボタンを 63% コンテナ内で中央寄せ
	   inline-flex + 親の text-align:center で対応 */
	.gree-box-img {
		text-align: center;
	}
	.gree-box-img > .gree-photo-link {
		display: inline-flex;
		margin: 20px 0 0 !important;
		margin-right: 37% !important;  /* 右側 37% を空けて左寄せ気味に中央化 */
	}
	.gree-block--reverse .gree-box-img > .gree-photo-link {
		margin-left: 37% !important;
		margin-right: 0 !important;
	}
}

/* ==========================================================================
   ヘッダー (ogawa から移植したスタイル)
   - body.home / body.is-home スコープで動作
   - 旧 .header / .pc-nav / .sp-nav ルールはセレクタが一致しないか
     ここで上書きされて無効化される
   ========================================================================== */

/* ヘッダー用 CSS 変数: 緑系配色
   メイン: オリーブ var(--c-primary) / アクセント: 濃オリーブ var(--c-accent) / サブ: 黄緑 #a8d068 */
.home {
	--color-primary: var(--c-primary);
	--color-primary-dark: var(--c-accent);
	--color-primary-bg: #f0f8d0;     /* 薄黄緑背景 */
	--color-text: var(--c-text);
	--color-text-dark: var(--c-accent);
	--color-white: #ffffff;
	--color-border: #e2e2e2;
	--color-gold: #a8d068;           /* サブ用 明るい黄緑(WEB予約ボタン) */
	--font-en: 'Cormorant Garamond', Georgia, serif;
}

.home .header {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: auto;
	z-index: 1000;
	background: var(--color-white);
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.06);
	transition: background 0.4s ease, box-shadow 0.4s ease, backdrop-filter 0.4s ease;
	-webkit-backdrop-filter: none;
	backdrop-filter: none;
}

/* TOPページ限定: 透過ヘッダー(ヒーロー貫通) */
.is-home .header {
	/* background: transparent; */
	background: rgba(255, 255, 255, 0.8);
	box-shadow: none;
}
.is-home .header .header-main
/*
.is-home .header .header-main,
.is-home .header .header-nav  */
{
	background: transparent;
	border-bottom-color: rgba(255, 255, 255, 0.25);
	transition: background 0.4s ease, border-color 0.4s ease;
}
.is-home .header .header-nav{
	background: rgba(255, 255, 255, 0.8);
}

/* .is-home .header .header-nav{
	background: rgba(255, 255, 255, 0.5);
} */
/* スクロール後: 背景を復帰 */
.is-home .header.is-scrolled {
	background: rgba(255, 255, 255, 0.92);
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
	box-shadow: 0 2px 14px rgba(0, 0, 0, 0.08);
}
.is-home .header.is-scrolled .header-main,
.is-home .header.is-scrolled .header-nav {
	background: transparent;
	border-bottom-color: var(--color-border);
}

/* 1段目: メインヘッダー(ロゴ+CTA+住所電話) */
.header-main {
	padding: 10px 0;
}
.header-main-inner {
	/* max-width: 1280px; */
	margin: 0 auto;
	padding: 0 16px;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 12px;
}

/* ロゴ */
.header .header-logo {
	display: flex;
	align-items: center;
	gap: 10px;
	text-decoration: none;
	flex-shrink: 0;
	position: static;
	height: auto;
	padding: 0;
}
.header-logo-img {
	height: 92px;
	width: auto;
	display: block;
}

/* スクリーンリーダー専用テキスト */
.sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* CTAボタン */
.header-cta {
	display: none;
	gap: 0;
	flex-shrink: 0;
}
.header-cta-btn {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 14px 28px;
	font-size: 15px;
	font-weight: 500;
	color: var(--color-white);
	text-decoration: none;
	letter-spacing: 0.08em;
	transition: opacity 0.3s ease;
	min-width: 160px;
	overflow: hidden;
}
.header-cta-btn::before {
	content: '';
	position: absolute;
	top: 50%;
	left: 22%;
	width: 70px;
	height: 70px;
	transform: translate(-50%, -50%);
	background: url("../images/common/white_logom.svg") center / contain no-repeat;
	opacity: 0.28;
	pointer-events: none;
}
.header-cta-btn::after {
	content: '';
	position: absolute;
	right: 5px;
	bottom: 5px;
	width: 0;
	height: 0;
	border-left: 6px solid transparent;
	border-bottom: 6px solid rgba(255, 255, 255, 0.9);
	pointer-events: none;
}
.header-cta-btn > * { position: relative; z-index: 1; }
.header-cta-btn:hover { opacity: 0.85; color: var(--color-white); }
/* CTAボタン背景色: グリーン系2色 */
.header-cta-btn--first {
	background: var(--c-primary);        /* オリーブ系の濃緑(お問合わせ) */
	border-radius: 4px 0 0 4px;
}
.header-cta-btn--reserve {
	background: #a8d068;        /* やや明るい黄緑(WEB予約) */
	border-radius: 0 4px 4px 0;
}

/* 文字サイズ切替 */
.header-fontsize {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 4px;
	margin: 0 12px;
	flex-shrink: 0;
}
.header-fontsize-label {
	font-size: 11px;
	color: var(--color-text);
	letter-spacing: 0.05em;
	white-space: nowrap;
	line-height: 1;
}
.header-fontsize-btns {
	display: flex;
	align-items: center;
	gap: 4px;
}
.header-fontsize-btn {
	width: 28px;
	height: 28px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 1px solid #ccc;
	border-radius: 50%;
	background: #fff;
	color: var(--color-text-dark);
	font-size: 12px;
	font-weight: 500;
	cursor: pointer;
	font-family: inherit;
	padding: 0;
	line-height: 1;
	transition: all 0.2s ease;
}
.header-fontsize-btn:hover {
	border-color: var(--color-primary);
	color: var(--color-primary);
}
.header-fontsize-btn.is-active {
	background: var(--color-primary-bg);
	border: 2px solid var(--color-primary);
	color: var(--color-primary-dark);
	font-weight: 700;
}

/* 右エリア(住所+お問合せ+電話) */
.header-right {
	display: none;
	flex-direction: column;
	align-items: flex-end;
	gap: 6px;
	flex-shrink: 0;
}
.header-right-address {
	font-size: 13px;
	color: var(--color-text);
	letter-spacing: 0.02em;
	margin: 0;
}
.header-right-contact {
	display: flex;
	align-items: center;
	gap: 16px;
}
.header-right-inquiry {
	display: inline-block;
	padding: 6px 20px;
	font-size: 13px;
	color: var(--color-text);
	border: 1px solid var(--color-border);
	border-radius: 4px;
	text-decoration: none;
	transition: all 0.3s ease;
	letter-spacing: 0.05em;
}
.header-right-inquiry:hover {
	background: var(--color-primary-bg);
	border-color: var(--color-primary);
	opacity: 1;
}
.header-right-tel {
	display: flex;
	align-items: baseline;
	gap: 4px;
	margin: 0;
}
.header-right-tel-label {
	font-family: var(--font-en);
	font-size: 15px;
	color: var(--color-primary-dark);
	font-weight: 400;
}
.header-right-tel-number {
	font-family: var(--font-en);
	font-size: 28px;
	font-weight: 500;
	color: var(--color-primary-dark);
	letter-spacing: 0.02em;
	line-height: 1;
	text-decoration: none;
}

/* 2段目: グローバルナビゲーション */
.header-nav {
	background: var(--color-white);
}
.header-nav-inner {
	max-width: 1280px;
	margin: 0 auto;
	padding: 0;
}
.header-nav-list {
	display: flex;
	justify-content: center;
	gap: 0;
	margin: 0;
	padding: 0;
	list-style: none;
}
.header-nav-list li {
	position: relative;
	flex: 1;
	text-align: center;
}
.header-nav-list li:not(:last-child)::after {
	content: "";
	position: absolute;
	right: 0;
	top: 50%;
	transform: translateY(-50%) rotate(20deg);
	width: 1px;
	height: 28px;
	background: #ccc;
}
.header-nav-list li a {
	display: flex;
	flex-direction: column;
	align-items: center;
	padding: 10px 16px;
	text-decoration: none;
	transition: background 0.3s ease;
}
.header-nav-list li a:hover {
	background: var(--color-primary-bg);
	opacity: 1;
}
.header-nav-list li a:hover .nav-ja {
	color: var(--color-primary-dark);
}
.nav-ja {
	font-size: 17px;
	font-weight: 500;
	color: #333;
	transition: color 0.3s ease;
	letter-spacing: 0.05em;
	white-space: nowrap;
}
.nav-en {
	display: none;
	font-family: var(--font-en);
	font-size: 12px;
	color: var(--color-primary);
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

/* ハンバーガー */
.hamburger {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	width: 48px;
	height: 48px;
	background: var(--color-primary);
	border: none;
	border-radius: 50%;
	cursor: pointer;
	gap: 6px;
	z-index: 1100;
	box-shadow: 0 2px 8px rgba(40, 80, 110, 0.15);
	transition: background 0.3s ease, box-shadow 0.3s ease;
	padding: 0;
}
.hamburger:hover { background: var(--color-primary-dark); }
.hamburger span {
	display: block;
	width: 22px;
	height: 2px;
	background: var(--color-white);
	transition: all 0.3s ease;
}
.hamburger.is-active span:nth-child(1) { transform: translateY(8px) rotate(45deg); }
.hamburger.is-active span:nth-child(2) { opacity: 0; }
.hamburger.is-active span:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }

/* ============================================
   SPナビオーバーレイ (新設計: 2026-05-10)
   - 透明背景でスマホ画面が透けて見える / ×ボタンのみ
   - 上部CTA / 主要6ページ2列グリッド / 詳細をみる(2列タブ + 全幅展開) / 閉じるボタン
   ============================================ */
.sp-nav-overlay {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: rgba(0, 0, 0, 0.18);
	-webkit-backdrop-filter: blur(2px);
	backdrop-filter: blur(2px);
	z-index: 1050;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
	visibility: hidden;
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.4s ease, visibility 0s linear 0.4s;
}
.sp-nav-overlay.is-active {
	visibility: visible;
	opacity: 1;
	pointer-events: auto;
	transition: opacity 0.4s ease, visibility 0s linear 0s;
}
.sp-nav-overlay .sp-nav {
	position: static;
	width: 100%;
	background: transparent;
	-webkit-backdrop-filter: none;
	backdrop-filter: none;
	overflow: visible;
	text-align: left;
	padding-bottom: 20px;
	opacity: 0;
	transform: translateY(-12px);
	transition: opacity 0.45s ease 0.08s,
				transform 0.55s cubic-bezier(0.22, 0.61, 0.36, 1) 0.08s;
}
.sp-nav-overlay.is-active .sp-nav {
	opacity: 1;
	transform: translateY(0);
}

/* SPナビ ヘッダー (×ボタンのみ・右寄せ・透明背景) */
.sp-nav-header {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	padding: 14px 16px;
	background: transparent;
	border-bottom: none;
	position: sticky;
	top: 0;
	z-index: 5;
}
/* おしゃれな ×ボタン (展開時は60px・回転 + ブランド緑アクセント) */
.sp-nav-close-x {
	position: relative;
	box-sizing: border-box;
	padding: 0;
	margin: 0;
	background: #fff;
	border: 2px solid var(--c-primary);
	border-radius: 50%;
	width: 60px;
	height: 60px;
	min-width: 60px;
	min-height: 60px;
	cursor: pointer;
	flex-shrink: 0;
	transition: background 0.3s ease,
				border-color 0.3s ease,
				transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1),
				box-shadow 0.3s ease;
	box-shadow: 0 3px 12px rgba(40, 80, 110, 0.18);
	font-size: 0;
	color: transparent;
	line-height: 1;
}
.sp-nav-close-x::before,
.sp-nav-close-x::after {
	content: '';
	position: absolute;
	top: 50%;
	left: 50%;
	width: 24px;
	height: 2.5px;
	background: var(--c-accent);
	border-radius: 1px;
	transition: background 0.3s ease;
}
.sp-nav-close-x::before { transform: translate(-50%, -50%) rotate(45deg); }
.sp-nav-close-x::after { transform: translate(-50%, -50%) rotate(-45deg); }
.sp-nav-close-x:hover,
.sp-nav-close-x:focus-visible {
	background: var(--c-primary);
	border-color: var(--c-primary);
	transform: rotate(90deg);
	box-shadow: 0 4px 14px rgba(94, 133, 32, 0.25);
	outline: none;
}
.sp-nav-close-x:hover::before,
.sp-nav-close-x:hover::after,
.sp-nav-close-x:focus-visible::before,
.sp-nav-close-x:focus-visible::after {
	background: #fff;
}
.sp-nav-close-x:active {
	transform: rotate(90deg) scale(0.92);
}

/* 上部CTA */
.sp-nav-cta {
	padding: 14px 16px 16px;
	background: linear-gradient(180deg, var(--c-bg-warm-1) 0%, var(--c-bg) 100%);
}
.sp-nav-cta-row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 10px;
	margin-bottom: 8px;
}
.sp-nav-cta-row a {
	text-align: center;
	text-decoration: none;
	padding: 14px 6px;
	border-radius: 8px;
	font-weight: 700;
	font-size: 13.5px;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	line-height: 1.3;
}
.sp-nav-cta-tel {
	background: #fff;
	color: var(--c-primary);
	border: 2px solid var(--c-primary);
}
.sp-nav-cta-tel strong {
	display: block;
	font-size: 17px;
	letter-spacing: 0.04em;
}
.sp-nav-cta-tel-ico {
	font-size: 20px;
	margin-right: 4px;
}
.sp-nav-cta-reserve {
	background: var(--c-primary);
	color: #fff;
}
.sp-nav-cta-info {
	text-align: center;
	font-size: 11.5px;
	color: #333;
	line-height: 1.6;
}

/* セクション見出し (よく見られるページ / 詳細をみる) */
.sp-nav-section-h {
	background: #f5f2e9;
	font-size: 11px;
	color: var(--c-accent);
	font-weight: 700;
	letter-spacing: 0.12em;
	padding: 9px 18px;
	text-transform: uppercase;
	border-bottom: 1px solid #e6e6e6;
}

/* 主要6ページ 2列グリッド */
.sp-nav-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1px;
	background: #e6e6e6;
}
.sp-nav-grid a {
	background: #fff;
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 18px 16px;
	text-decoration: none;
	color: #333;
	font-size: 14.5px;
	font-weight: 600;
}
.sp-nav-grid a .arrow {
	color: var(--c-primary);
	font-size: 16px;
}

/* 2列タブボタン */
.sp-nav-tabs {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1px;
	background: #e6e6e6;
	border-bottom: 1px solid #e6e6e6;
}
.sp-nav-tab {
	background: #fff;
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 18px 14px;
	cursor: pointer;
	font-size: 14px;
	font-weight: 600;
	color: #333;
	user-select: none;
	gap: 4px;
}
.sp-nav-tab:active { background: #f9f9f9; }
.sp-nav-tab-count {
	display: inline-block;
	font-size: 11px;
	background: var(--c-bg-warm-1);
	color: var(--c-accent);
	border-radius: 10px;
	padding: 1px 7px;
	margin-left: 4px;
	font-weight: 700;
	vertical-align: middle;
}
.sp-nav-tab-arrow {
	color: var(--c-primary);
	font-size: 14px;
	transition: transform 0.25s;
	font-weight: 700;
}
.sp-nav-tab.active {
	background: var(--c-bg);
	color: var(--c-accent);
}
.sp-nav-tab.active .sp-nav-tab-arrow {
	transform: rotate(90deg);
}

/* タブパネル (全幅展開・スライドフェード) */
.sp-nav-panel {
	max-height: 0;
	overflow: hidden;
	opacity: 0;
	background: #fafafa;
	transition: max-height 0.4s cubic-bezier(0.22, 0.61, 0.36, 1),
				opacity 0.3s ease 0.05s,
				border-bottom-color 0.3s ease;
	border-bottom: 1px solid transparent;
}
.sp-nav-panel.active {
	max-height: 1500px;
	opacity: 1;
	border-bottom-color: #e6e6e6;
}
.sp-nav-panel a {
	opacity: 0;
	transform: translateY(-6px);
	transition: opacity 0.35s ease, transform 0.35s ease;
}
.sp-nav-panel.active a { opacity: 1; transform: translateY(0); }
.sp-nav-panel.active a:nth-child(1) { transition-delay: 0.06s; }
.sp-nav-panel.active a:nth-child(2) { transition-delay: 0.10s; }
.sp-nav-panel.active a:nth-child(3) { transition-delay: 0.14s; }
.sp-nav-panel.active a:nth-child(4) { transition-delay: 0.18s; }
.sp-nav-panel.active a:nth-child(5) { transition-delay: 0.22s; }
.sp-nav-panel.active a:nth-child(6) { transition-delay: 0.26s; }
.sp-nav-panel.active a:nth-child(7) { transition-delay: 0.30s; }
.sp-nav-panel.active a:nth-child(8) { transition-delay: 0.34s; }
.sp-nav-panel.active a:nth-child(9) { transition-delay: 0.38s; }
.sp-nav-panel.active a:nth-child(10) { transition-delay: 0.42s; }
.sp-nav-panel.active a:nth-child(11) { transition-delay: 0.46s; }
.sp-nav-panel.active a:nth-child(12) { transition-delay: 0.50s; }
.sp-nav-panel.active a:nth-child(13) { transition-delay: 0.54s; }
.sp-nav-panel.active a:nth-child(14) { transition-delay: 0.58s; }

/* 診療内容パネル (縦リスト) */
.sp-nav-panel-list a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 14px 18px 14px 26px;
	text-decoration: none;
	color: #333;
	font-size: 14px;
	border-top: 1px solid #e6e6e6;
	background: #fff;
}
.sp-nav-panel-list a:first-child { border-top: none; }
.sp-nav-panel-list a::before {
	content: '';
	display: inline-block;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--c-secondary);
	margin-right: 10px;
	flex-shrink: 0;
}
.sp-nav-panel-list a .name { flex: 1; }
.sp-nav-panel-list a .arrow {
	color: var(--c-primary);
	font-size: 14px;
}

/* 症状パネル (3列アイコングリッド) */
.sp-nav-panel-symp {
	display: grid;
	grid-template-columns: 1fr 1fr 1fr;
	gap: 1px;
	background: #e6e6e6;
}
.sp-nav-panel-symp:not(.active) {
	gap: 0;
	background: transparent;
}
.sp-nav-panel-symp a {
	background: #fff;
	text-decoration: none;
	color: #333;
	font-size: 11.5px;
	text-align: center;
	padding: 14px 4px 12px;
	font-weight: 500;
	line-height: 1.3;
}
.sp-nav-panel-symp a::before {
	content: '';
	display: block;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	background: var(--c-primary);
	margin: 0 auto 6px;
}

/* 閉じるボタン */
.sp-nav-close-btn {
	display: block;
	width: calc(100% - 32px);
	margin: 20px 16px;
	padding: 16px 0;
	background: #fff;
	color: #666;
	border: 1px solid #e6e6e6;
	border-radius: 8px;
	font-family: inherit;
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 0.1em;
	cursor: pointer;
	transition: all 0.2s;
}
.sp-nav-close-btn:hover {
	background: var(--c-bg);
	color: var(--c-accent);
	border-color: var(--c-secondary);
}
.sp-nav-close-btn::before {
	content: '×';
	display: inline-block;
	margin-right: 8px;
	font-size: 18px;
	vertical-align: middle;
}

/* ============================================
   SP固定フッターメニュー (画面下部に常時固定)
   - 電話 / WEB予約 / アクセス
   ============================================ */
.sp-bottom-nav {
	display: none;
}
@media (max-width: 767px) {
	.sp-bottom-nav {
		display: grid;
		grid-template-columns: 1fr 1fr 1fr;
		gap: 1px;
		position: fixed;
		bottom: 0;
		left: 0;
		right: 0;
		background: var(--c-secondary);
		z-index: 1040;
		box-shadow: 0 -2px 12px rgba(0, 0, 0, 0.08);
	}
	.sp-bottom-nav a {
		background: var(--c-primary);
		color: #fff;
		text-decoration: none;
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		gap: 3px;
		padding: 10px 4px;
		font-size: 11px;
		font-weight: 600;
		letter-spacing: 0.04em;
		transition: background 0.2s;
	}
	.sp-bottom-nav a:active {
		background: var(--c-accent);
	}
	.sp-bottom-nav a .sp-bn-ico {
		font-size: 18px;
		line-height: 1;
		margin-bottom: 2px;
	}
	.sp-bottom-nav a .sp-bn-label {
		display: block;
		line-height: 1.2;
	}
	/* 固定フッター分の余白を確保 (フッターと重ならないように) */
	body { padding-bottom: 60px; }
	/* SPナビが開いている時はフッターを下に隠す */
	.sp-bottom-nav.is-hidden { transform: translateY(100%); transition: transform 0.3s ease; }
}

/* 旧 .header .header-logo / .header .header-right の固定幅(width:302px / 890px)を解除 */
.header .header-logo { width: auto; margin-top: 0; }
.header .header-right { width: auto; }

/* タブレット以上(768px+) */
@media (min-width: 768px) {
	.header-main { padding: 4px 0 8px; }
	.header-main-inner {
		padding: 0 20px;
		gap: 16px;
	}
	.header-logo-img { height: 120px; }
	.header-cta { display: flex; }
	.header-right { display: flex; }
	.hamburger { display: none; }
}

/* タブレット〜PC中間 (768〜1023px): ハンバーガー表示・ナビ非表示 */
@media (min-width: 768px) and (max-width: 1163px) {
	.hamburger { display: flex; }
	.header-cta { display: none; }
	.header-fontsize { display: none; }
	.header-logo-img { height: 80px; }
	.header-nav { display: none; }
	.header-right { display: none; }
}

/* モバイル限定(max-width:767px) */
@media (max-width: 767px) {
	.header-main { padding: 10px 0; }
	.header-main-inner {
		padding: 0 16px;
		gap: 12px;
	}
	.header .header-logo { flex: 1 1 auto; min-width: 0; }
	.header-logo-img { height: 80px; max-height: 80px; }
	.header-cta { display: none; }
	.header-fontsize { display: none; }
	.header-right { display: none; }
	.header-nav { display: none; }
	.hamburger {
		display: flex;
		flex: 0 0 auto;
	}
	.is-home .hamburger span { background: var(--color-white); }
}

/* デスクトップ(1024px+) */
@media (min-width:1164px){
	.header-logo-img { height: 120px; }
}

/* ================================================================
   医師紹介ページ用 色オーバーライド
   base.css の青系を kodaira の緑系/オレンジに置換
   ================================================================ */
.page-doctor .titl--1 .dou { border-bottom-color: var(--c-orange); }
.page-doctor .bg-2 { background: #f5f2e9; }
.page-doctor .b-1 { border-color: #dcec9e; }
.page-doctor .dashed-list li { border-bottom-color: #c5d4a3; }
.page-doctor .titl-1 { color: var(--c-accent); border-bottom: 2px solid var(--c-primary); padding-bottom: 12px; }

/* 内部ページ共通（トップページ以外の全ページ）
   padding-top はヘッダー高さに合わせて設定
   SP(~767px): header-main ~100px
   Tablet(768~1023px): header-main ~92px（nav非表示）
   PC(1024px+): header-main ~132px + header-nav ~45px = ~177px */
.inner-page .main { padding-top: 100px; }
.inner-page .page-content { padding-bottom: 60px; }
@media (min-width: 768px) {
	.inner-page .main { padding-top: 100px; }
}
@media (min-width:1164px){
	.inner-page .main { padding-top: 180px; }
}

/* ================================================================
   下層ページ ヒーロー (page-hero) - シンプル帯型
   ================================================================ */
.page-hero {
	background: #f5f2e9;
	padding: 70px 0 60px;
	margin-top: 0;
	position: relative;
	overflow: hidden;
}
.page-hero::before {
	content: '';
	position: absolute;
	left: 50%;
	bottom: 0;
	transform: translateX(-50%);
	width: 60px;
	height: 3px;
	background: var(--c-orange);
	border-radius: 2px;
}
.page-hero-inner {
	text-align: center;
	position: relative;
	z-index: 1;
}
.page-hero-en {
	font-family: 'Marcellus SC', serif;
	font-size: 14px;
	letter-spacing: 0.3em;
	color: var(--c-orange);
	margin: 0 0 14px;
	text-transform: uppercase;
	display: inline-flex;
	align-items: center;
	gap: 14px;
}
.page-hero-en::before,
.page-hero-en::after {
	content: '';
	display: inline-block;
	width: 28px;
	height: 1px;
	background: var(--c-orange);
	opacity: 0.6;
}
.page-hero-ja {
	font-family: 'Noto Serif JP', 'Yu Mincho', serif;
	font-size: 32px;
	font-weight: 500;
	color: var(--c-accent);
	margin: 0;
	letter-spacing: 0.08em;
	line-height: 1.4;
}
.page-hero-ja-sub {
	display: block;
	margin-top: 16px;
	font-family: 'Noto Serif JP', 'Yu Mincho', serif;
	font-size: 14px;
	font-weight: 400;
	letter-spacing: 0.06em;
	color: #7a8a5a;
	line-height: 1.6;
}
@media (min-width: 768px) {
	.page-hero { padding: 50px 0 60px; }
	.page-hero-en { font-size: 15px; }
	.page-hero-en::before,
	.page-hero-en::after { width: 40px; }
	.page-hero-ja { font-size: 40px; }
	.page-hero-ja-sub { font-size: 15px; margin-top: 18px; }
}
@media (min-width:1164px){
	.page-hero { padding: 60px 0 70px; }
	.page-hero-ja { font-size: 44px; }
	.page-hero-ja-sub { font-size: 16px; margin-top: 20px; }
}
@media (max-width: 767px) {
	.page-hero { padding: 40px 0 35px; }
	.page-hero-en { font-size: 12px; letter-spacing: 0.25em; gap: 10px; }
	.page-hero-en::before,
	.page-hero-en::after { width: 20px; }
	.page-hero-ja { font-size: 24px; letter-spacing: 0.06em; }
}

/* doctor-l 背景装飾(写真の後ろのブロック)を緑系に */
.page-doctor .dr .doctor-l::after { background-color: #f5f2e9; }

/* doctor-r テキスト */
.page-doctor .dr .doctor-box .text p { color: #444; }

/* 名前ボックス */
.page-doctor .dr .doctor-box .name { color: var(--c-text); }
.page-doctor .dr .doctor-box .name .name-1 { font-size: 22px; font-weight: 700; }

/* 略歴・資格セクション */
.page-doctor .dr .doctor-box .sub { color: #555; letter-spacing: 0.18em; }
.page-doctor .dr .doctor-box .sub span { display: block; white-space: nowrap; }
.page-doctor .dr .doctor-box .sub span:nth-child(2) { padding-top: 1em; }

.page-doctor .career-box.bg-2 { padding: 40px 0; }
.page-doctor .career-box .box-3 { background: #fff; border-radius: 8px; }
.page-doctor .career-box .titl-1 { font-size: 20px; font-weight: 700; }

/* 略歴: 縦タイムラインスタイル */
.dr-history-list {
	list-style: none;
	padding: 0;
	margin: 0;
	position: relative;
}
.dr-history-list::before {
	content: '';
	position: absolute;
	left: 6px;
	top: 18px;
	bottom: 18px;
	width: 1px;
	background: #b0c2d2;
	z-index: 0;
}
.dr-history-list li {
	position: relative;
	padding: 10px 0 10px 30px;
	font-size: 15px;
	color: #333;
	line-height: 1.7;
	letter-spacing: 0.04em;
}
.dr-history-list li::before {
	content: '';
	position: absolute;
	left: 0;
	top: 18px;
	width: 13px;
	height: 13px;
	background: #fff;
	border: 2px solid #6e8ba6;
	border-radius: 50%;
	z-index: 1;
	box-sizing: border-box;
}
.dr-history-list li:last-child::before {
	background: #6e8ba6;
}

/* 資格・所属学会: 区切り線付きリスト */
.dr-qualification-list {
	list-style: none;
	padding: 0;
	margin: 0;
}
.dr-qualification-list li {
	position: relative;
	padding: 14px 0 14px 24px;
	border-bottom: 1px solid #d8dfe6;
	font-size: 15px;
	color: #333;
	letter-spacing: 0.04em;
}
.dr-qualification-list li::before {
	content: '';
	position: absolute;
	left: 4px;
	top: 50%;
	transform: translateY(-50%);
	width: 8px;
	height: 8px;
	background: #6e8ba6;
	border-radius: 50%;
}
.dr-qualification-list li:last-child {
	border-bottom: none;
}

/* 診療理念 */
.page-doctor .titl--1 .dou { display: inline-block; padding-bottom: 4px; font-size: 22px; font-weight: 700; }

/* レスポンシブ */
@media (max-width: 767px) {
	.page-doctor .career-box .col-or-4-8 { width: 100%; }
	.page-doctor .dr .doctor-l-t { flex-direction: column; }
	.page-doctor .dr .doctor-l { width: 100%; margin-left: 0; }
	.page-doctor .dr .doctor-2 .doctor-l { margin-left: 0; }
	.page-doctor .titl--1 .dou { font-size: 18px; }

	/* SP：縦書きキャッチコピーを画面内に収める（縦書き維持） */
	.page-doctor .dr .doctor-box {
		position: relative;
	}
	.page-doctor .dr .doctor-l-t {
		position: relative;
	}
	.page-doctor .dr .doctor-box .sub {
		position: absolute;
		top: 60px;
		right: 4%;
		left: auto;
		writing-mode: vertical-rl;
		-webkit-writing-mode: vertical-rl;
		font-family: 'Noto Serif JP', '游明朝', serif;
		font-weight: 500;
		font-size: 23px;
		line-height: 1.8;
		letter-spacing: 0.12em;
		color: #555 !important;
		margin: 0;
		padding: 0;
		max-height: none;
		z-index: 3;
	}
	/* 画像を左寄せにして縦書きキャッチとの重なりを解消（さらに左へシフト） */
	.page-doctor .dr .doctor-l-t .doctor {
		margin: 0 0 16px -10px;
		max-width: 66%;
		text-align: left;
	}
	.page-doctor .dr .doctor-l-t .doctor img {
		max-width: 100%;
		height: auto;
	}
	/* 院長名のフォント色をグレーに確実に */
	.page-doctor .dr .doctor-box .name,
	.page-doctor .dr .doctor-box .name p,
	.page-doctor .dr .doctor-box .name .name-1,
	.page-doctor .dr .doctor-box .name em {
		color: var(--c-text) !important;
	}
}

@media (min-width:1164px){
	/* index.html と同じ幅(1200px固定)に揃える。base.css の .container-or に合わせる */
	.top-diag .diag-box { justify-content: space-between; gap: 0; }
	.top-diag .diag-box a { -ms-flex: 0 0 21%; flex: 0 0 21%; max-width: 21%; overflow: hidden; margin-bottom: 26px; }
	.top-diag .diag-box i { width: 120px; height: 120px; }
	.top-diag .diag-box span { font-size: 18px; }
}

/* ================================================================
   こんな症状でお悩みの方へ - カプセルスタイル(ogawa移植)
   ================================================================ */
.top-symp.symptom-section {
	position: relative;
	background-color: #fff;
	background-image: url(../images/index/bg_sec_sp.png);
	background-repeat: no-repeat;
	background-position: center center;
	background-size: cover;
	overflow: hidden;
}
/* 文字・アイコンの可読性確保のための薄い白オーバーレイ */
.top-symp.symptom-section::before {
	content: '';
	position: absolute;
	inset: 0;
	background: rgba(255, 255, 255, 0.55);
	pointer-events: none;
	z-index: 0;
}
.top-symp.symptom-section > .container-or {
	position: relative;
	z-index: 1;
}
@media (min-width: 768px) {
	.top-symp.symptom-section {
		background-image: url(../images/index/bg_sec_pc.png);
	}
}
.top-symp .symptom-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 10px;
	padding-top: 8px;
	max-width: 1100px;
	margin: 0 auto;
}
.top-symp .symptom-item {
	position: relative;
	display: flex;
	align-items: center;
	gap: 10px;
	text-decoration: none;
	padding: 10px 12px;
	background: transparent;
	border-radius: 9999px;
	overflow: hidden;
}
.top-symp .symptom-item::before {
	content: '';
	position: absolute;
	top: 50%;
	left: 12px;
	width: 36px;
	height: 36px;
	transform: translateY(-50%);
	background: transparent;
	border-radius: 9999px;
	transition: width 0.45s cubic-bezier(0.25, 0.46, 0.45, 0.94),
	            height 0.45s cubic-bezier(0.25, 0.46, 0.45, 0.94),
	            left 0.45s cubic-bezier(0.25, 0.46, 0.45, 0.94),
	            background 0.45s ease,
	            box-shadow 0.45s ease;
	z-index: 0;
}
.top-symp .symptom-item:hover::before {
	left: 0;
	width: 100%;
	height: 70%;
	background: var(--c-accent);
	box-shadow: 0 4px 24px rgba(94, 133, 32, 0.35);
}
.top-symp .symptom-item:hover {
	opacity: 1;
}
.top-symp .symptom-icon {
	position: relative;
	z-index: 1;
	flex-shrink: 0;
	color: var(--c-primary);
	display: flex;
	align-items: center;
	transition: color 0.35s ease;
}
.top-symp .symptom-icon svg {
	width: 36px;
	height: 36px;
}
.top-symp .symptom-item:hover .symptom-icon svg circle {
	fill: #ffffff;
	transition: fill 0.35s ease;
}
.top-symp .symptom-item:hover .symptom-icon svg line {
	stroke: var(--c-accent);
	transition: stroke 0.35s ease;
}
.top-symp .symptom-name {
	position: relative;
	z-index: 1;
	font-size: 15px;
	font-weight: 500;
	color: #666;
	letter-spacing: 0.06em;
	transition: color 0.35s ease 0.1s;
}
.top-symp .symptom-item:hover .symptom-name {
	color: #ffffff;
}

/* タブレット以上 */
@media (min-width: 768px) {
	.top-symp .symptom-grid {
		grid-template-columns: repeat(3, 1fr);
		gap: 20px 32px;
		padding-top: 30px;
	}
	.top-symp .symptom-item {
		padding: 16px 20px;
		gap: 16px;
	}
	.top-symp .symptom-icon svg {
		width: 48px;
		height: 48px;
	}
	.top-symp .symptom-item::before {
		left: 20px;
		width: 48px;
		height: 48px;
	}
	.top-symp .symptom-name {
		font-size: 16px;
	}
}

/* PC */
@media (min-width:1164px){
	.top-symp .symptom-grid {
		grid-template-columns: repeat(4, 1fr);
		gap: 16px 24px;
	}
}

/* ================================================================
   関連サイトセクション (慈映会グループ + 専門サイト)
   ================================================================ */
.affiliated-section {
	padding: 60px 0 80px;
	background: #fff;
}
.affiliated-section .container-or {
	max-width: 1280px;
	margin: 0 auto;
	padding: 0 20px;
}
.affiliated-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 40px;
	align-items: start;
}
.affiliated-col {
	min-width: 0;
}
.affiliated-heading {
	margin-bottom: 24px;
	padding-bottom: 12px;
	border-bottom: 2px solid var(--c-primary);
}
.affiliated-heading-ja {
	display: block;
	font-family: 'Noto Serif JP', 'Yu Mincho', serif;
	font-size: 18px;
	font-weight: 700;
	color: #555;
	letter-spacing: 0.08em;
	margin: 0;
}
.affiliated-heading-en {
	display: block;
	font-family: 'Cormorant Garamond', Georgia, serif;
	font-size: 12px;
	letter-spacing: 0.2em;
	color: var(--c-primary);
	margin-top: 6px;
	text-transform: uppercase;
}
/* 6バナー(2カラムグリッド) */
.affiliated-banners-list {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 12px;
	list-style: none;
	margin: 0;
	padding: 0;
}
.affiliated-banners-list li {
	margin: 0;
}
.affiliated-banners-list a {
	display: block;
	border: 1px solid #e2e2e2;
	border-radius: 6px;
	overflow: hidden;
	transition: border-color 0.25s ease, transform 0.25s ease, box-shadow 0.25s ease;
	background: #fff;
}
.affiliated-banners-list a:hover {
	border-color: var(--c-primary);
	transform: translateY(-2px);
	box-shadow: 0 6px 18px rgba(136, 192, 48, 0.15);
}
.affiliated-banners-list img {
	display: block;
	width: 100%;
	height: auto;
}
/* 専門サイトバナー */
.affiliated-banner-fuse {
	display: block;
	border-radius: 8px;
	overflow: hidden;
	transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.affiliated-banner-fuse:hover {
	transform: translateY(-2px);
	box-shadow: 0 8px 22px rgba(136, 192, 48, 0.2);
}
.affiliated-banner-fuse img {
	display: block;
	width: 100%;
	height: auto;
}

/* タブレット以上(768px+) */
@media (min-width: 768px) {
	.affiliated-section {
		padding: 80px 0 100px;
	}
	.affiliated-grid {
		grid-template-columns: 2fr 1fr;
		gap: 48px;
	}
	.affiliated-banners-list {
		grid-template-columns: repeat(3, 1fr);
		gap: 16px;
	}
	.affiliated-heading-ja {
		font-size: 22px;
	}
	.affiliated-heading-en {
		font-size: 13px;
	}
}

/* PC(1024px+) */
@media (min-width:1164px){
	.affiliated-grid {
		grid-template-columns: 1.6fr 1fr;
		gap: 60px;
	}
	.affiliated-banners-list {
		gap: 20px 18px;
	}
}

/* ================================================================
   診療理念セクション (philosophy cards) - 緑系カラー
   ================================================================ */
.philosophy-section {
	position: relative;
	padding: 80px 0 100px;
	background:
		radial-gradient(ellipse at top left, #f1f6e4 0%, transparent 55%),
		radial-gradient(ellipse at bottom right, #ecf2dc 0%, transparent 55%),
		#fbfdf6;
	overflow: hidden;
}
.philosophy-section::before,
.philosophy-section::after {
	content: "";
	position: absolute;
	border-radius: 50%;
	pointer-events: none;
	z-index: 0;
}
.philosophy-section::before {
	width: 240px; height: 240px;
	background: radial-gradient(circle, rgba(136, 192, 48, 0.18), transparent 70%);
	top: 40px; left: -60px;
}
.philosophy-section::after {
	width: 320px; height: 320px;
	background: radial-gradient(circle, rgba(171, 197, 106, 0.22), transparent 70%);
	bottom: 20px; right: -80px;
}
.philosophy-section .container-or {
	position: relative;
	z-index: 1;
}
.philosophy-lead {
	text-align: center;
	font-size: 16px;
	line-height: 2;
	color: var(--c-accent);
	margin: -10px 0 50px;
	font-family: "Noto Serif JP", serif;
	letter-spacing: 0.05em;
}
.philosophy-cards {
	display: flex;
	flex-direction: column;
	gap: 36px;
	max-width: 1080px;
	margin: 0 auto;
}
.philosophy-card {
	position: relative;
	display: flex;
	align-items: center;
	gap: 32px;
	padding: 44px 48px 40px;
	background: #ffffff;
	border-radius: 8px;
	box-shadow:
		0 8px 24px rgba(94, 133, 32, 0.08),
		0 2px 6px rgba(94, 133, 32, 0.05);
	transition: transform 0.4s ease, box-shadow 0.4s ease;
	overflow: hidden;
}
.philosophy-card:hover {
	transform: translateY(-4px);
	box-shadow:
		0 14px 36px rgba(94, 133, 32, 0.14),
		0 4px 10px rgba(94, 133, 32, 0.07);
}
.philosophy-card--01 {
	background: linear-gradient(135deg, #f4f8e9 0%, #ffffff 60%);
}
.philosophy-card--01 .philosophy-card__icon {
	color: var(--c-primary);
}
.philosophy-card--02 {
	background: linear-gradient(135deg, #eff5e2 0%, #ffffff 60%);
}
.philosophy-card--02 .philosophy-card__icon {
	color: #a8d068;
}
.philosophy-card--03 {
	background: linear-gradient(135deg, #ebf2dd 0%, #ffffff 60%);
}
.philosophy-card--03 .philosophy-card__icon {
	color: var(--c-accent);
}

/* ロゴマーク (番号の代わり) */
.philosophy-card__mark {
	flex: 0 0 auto;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 200px;
	padding-top: 0;
}
.philosophy-card__logo {
	width: 170px;
	height: auto;
	display: block;
	opacity: 0.9;
}

.philosophy-card__body {
	flex: 1 1 auto;
	min-width: 0;
}
.philosophy-card__icon {
	width: 48px;
	height: 48px;
	margin-bottom: 14px;
}
.philosophy-card__icon svg {
	width: 100%;
	height: 100%;
	display: block;
}
.philosophy-card__title {
	position: relative;
	display: inline-block;
	font-family: "Noto Serif JP", serif;
	font-size: 24px;
	font-weight: 500;
	color: #3a4a20;
	margin: 0 0 22px;
	padding-bottom: 10px;
	letter-spacing: 0.04em;
}
.philosophy-card__title::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 100%;
	height: 6px;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 6' preserveAspectRatio='none'><path d='M0 3 Q 15 0 30 3 T 60 3 T 90 3 T 120 3' stroke='%238fa94d' stroke-width='1.8' fill='none' stroke-linecap='round'/></svg>");
	background-repeat: no-repeat;
	background-size: 100% 100%;
	opacity: 0.85;
}
.philosophy-card__title-mark {
	font-size: 0.85em;
	opacity: 0.55;
	margin: 0 -2px;
}
.philosophy-card__text {
	font-family: "Noto Serif JP", serif;
	font-size: 15px;
	line-height: 2;
	color: #3a4030;
	letter-spacing: 0.04em;
	margin: 0 0 24px;
}
.philosophy-card__tags {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	list-style: none;
	padding: 0;
	margin: 0;
}
.philosophy-card__tags li {
	display: inline-block;
	padding: 6px 16px;
	font-size: 13px;
	font-family: "Noto Serif JP", serif;
	color: var(--c-accent);
	background: #f1f6e4;
	border: 1px solid #c5d4a3;
	border-radius: 999px;
	letter-spacing: 0.06em;
}
.philosophy-section .sp-only { display: none; }

@media screen and (max-width: 768px) {
	.philosophy-section {
		padding: 56px 0 70px;
	}
	.philosophy-lead {
		font-size: 14px;
		margin-bottom: 36px;
		padding: 0 16px;
	}
	.philosophy-section .sp-only { display: inline; }
	.philosophy-cards {
		gap: 24px;
	}
	.philosophy-card {
		flex-direction: column;
		align-items: center;
		gap: 12px;
		padding: 32px 24px 28px;
		border-radius: 8px;
	}
	.philosophy-card__mark {
		width: auto;
		padding-top: 24px;
		margin-bottom: 4px;
	}
	.philosophy-card__logo {
		width: 120px;
	}
	.philosophy-card__body {
		width: 100%;
	}
	.philosophy-card__icon {
		width: 38px;
		height: 38px;
		margin-bottom: 10px;
	}
	.philosophy-card__title {
		font-size: 19px;
		margin-bottom: 18px;
	}
	.philosophy-card__text {
		font-size: 14px;
		line-height: 1.95;
		margin-bottom: 20px;
	}
	.philosophy-card__tags li {
		font-size: 12px;
		padding: 5px 12px;
	}
}

/* ================================================================
   グループ医院 院長紹介セクション
   ================================================================ */
.group-doctor-section {
	padding: 80px 0 100px;
	background: #fbfdf6;
}
.group-doctor-lead {
	text-align: center;
	font-size: 16px;
	line-height: 2;
	color: var(--c-accent);
	margin: -10px 0 50px;
	font-family: "Noto Serif JP", serif;
	letter-spacing: 0.05em;
}
.group-doctor-list {
	list-style: none;
	padding: 0;
	margin: 0;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 50px 50px;
	max-width: 720px;
	margin-left: auto;
	margin-right: auto;
}
.group-doctor-card {
	margin: 0;
}
/* 段ずらし装飾(2段目だけ少し下にずらす) */
.group-doctor-card:nth-child(n+4) {
	margin-top: 40px;
}
/* 各カードに微妙な縦オフセット */
.group-doctor-card:nth-child(2),
.group-doctor-card:nth-child(5) {
	transform: translateY(-20px);
}
.group-doctor-link {
	display: block;
	text-decoration: none;
	color: inherit;
	transition: transform 0.3s ease;
}
.group-doctor-link:hover {
	transform: translateY(-4px);
	opacity: 1;
}
.group-doctor-link:hover .more-plus {
	transform: rotate(90deg);
}
.group-doctor-link:hover .group-doctor-img::after {
	transform: translate(8px, 8px);
}

/* 写真 + 背面の濃色シェイプ */
.group-doctor-img {
	position: relative;
	margin-bottom: 22px;
}
.group-doctor-img::after {
	content: "";
	position: absolute;
	top: 12px;
	right: -10px;
	width: 90%;
	height: 100%;
	background: #2a4a64;
	z-index: 0;
	transition: transform 0.3s ease;
}
.group-doctor-img img {
	position: relative;
	z-index: 1;
	display: block;
	width: 100%;
	height: auto;
	background: #6fa0c4;
}

/* テキスト */
.group-doctor-info {
	margin-bottom: 14px;
}
.group-doctor-clinic {
	font-size: 15px;
	font-weight: 500;
	line-height: 1.5;
	color: #2a3a20;
	margin: 0 0 10px;
	letter-spacing: 0.04em;
}
.group-doctor-name {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px;
	font-size: 16px;
	font-weight: 700;
	color: #2a3a20;
	margin: 0;
	letter-spacing: 0.04em;
}
.group-doctor-tag {
	display: inline-block;
	padding: 3px 8px;
	font-size: 12px;
	font-weight: 500;
	color: #fff;
	background: #2a3a20;
	border-radius: 2px;
	letter-spacing: 0.08em;
}
.group-doctor-more {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding-bottom: 4px;
	font-size: 14px;
	font-weight: 500;
	color: var(--c-orange);
	border-bottom: 1px solid var(--c-orange);
	letter-spacing: 0.04em;
	font-family: "Noto Serif JP", serif;
}
.group-doctor-more .more-plus {
	font-style: normal;
	display: inline-block;
	font-size: 14px;
	transition: transform 0.3s ease;
}

/* ================================================================
   FAQ ページ
   ================================================================ */

/* カテゴリタブ */
.faq-tabs {
	list-style: none;
	padding: 0;
	margin: 0 0 32px;
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 12px;
}
.faq-tabs li { margin: 0; }
.faq-tabs a {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 18px 12px;
	background: var(--c-primary);
	border: 1px solid var(--c-primary);
	border-radius: 6px;
	color: #fff;
	text-decoration: none;
	font-family: "Noto Serif JP", serif;
	transition: background 0.3s ease, color 0.3s ease, transform 0.3s ease, border-color 0.3s ease;
	text-align: center;
}
.faq-tabs a:hover {
	background: var(--c-accent);
	border-color: var(--c-accent);
	color: #fff;
	transform: translateY(-2px);
	opacity: 1;
}
.faq-tab-label {
	font-size: 15px;
	font-weight: 500;
	letter-spacing: 0.04em;
}

.faq-note {
	text-align: right;
	font-size: 13px;
	color: #888;
	margin: 0 0 24px;
}

/* カテゴリブロック */
.faq-block {
	margin-bottom: 60px;
	scroll-margin-top: 140px;
}
.faq-block:last-child { margin-bottom: 0; }
.faq-block .heading { margin-bottom: 30px; }

/* FAQリスト */
.faq-list {
	margin: 0;
	padding: 0;
}
.faq-item {
	border: 1px solid #dcec9e;
	border-radius: 6px;
	background: #fff;
	margin-bottom: 24px;
	overflow: hidden;
	transition: box-shadow 0.3s ease;
}
.faq-item:hover {
	box-shadow: 0 4px 12px rgba(94, 133, 32, 0.08);
}

/* Q ボタン */
.faq-q {
	position: relative;
	margin: 0;
	padding: 20px 56px 20px 64px;
	font-size: 16px;
	font-weight: 500;
	color: #2a3a20;
	cursor: pointer;
	letter-spacing: 0.04em;
	line-height: 1.6;
	font-family: "Noto Serif JP", serif;
	transition: background 0.25s ease;
}
.faq-q:hover { background: #f4f8e9; }
.faq-q::before {
	content: "Q";
	position: absolute;
	top: 50%;
	left: 18px;
	transform: translateY(-50%);
	width: 32px;
	height: 32px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--c-primary);
	color: #fff;
	font-family: "Cormorant Garamond", serif;
	font-size: 18px;
	font-weight: 700;
	border-radius: 50%;
}
.faq-q::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 24px;
	width: 14px;
	height: 14px;
	transform: translateY(-50%);
	background:
		linear-gradient(var(--c-accent), var(--c-accent)) center/14px 2px no-repeat,
		linear-gradient(var(--c-accent), var(--c-accent)) center/2px 14px no-repeat;
	transition: transform 0.3s ease;
}
.faq-q.is-open::after {
	transform: translateY(-50%) rotate(45deg);
	background: linear-gradient(var(--c-accent), var(--c-accent)) center/14px 2px no-repeat;
}

/* A 回答 */
.faq-a {
	margin: 0;
	padding: 0 24px 0 64px;
	background: #fbfdf6;
	border-top: 1px dashed #c5d4a3;
	position: relative;
}
.faq-a > p:first-child { padding-top: 20px; position: relative; }
.faq-a > p:last-child { padding-bottom: 20px; }
.faq-a > *:first-child::before {
	content: "A";
	position: absolute;
	top: 16px;
	left: -46px;
	width: 32px;
	height: 32px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--c-orange);
	color: #fff;
	font-family: "Cormorant Garamond", serif;
	font-size: 18px;
	font-weight: 700;
	border-radius: 50%;
}
.faq-a p {
	font-size: 15px;
	line-height: 1.95;
	color: #3a4030;
	letter-spacing: 0.04em;
	margin: 0 0 12px;
}
.faq-a p:last-child { margin-bottom: 0; }
.faq-a strong {
	color: var(--c-accent);
	font-weight: 700;
}

/* ページトップへ戻る */
.faq-toplink {
	text-align: right;
	margin-top: 24px;
}
.faq-toplink a {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 8px 18px;
	font-size: 13px;
	color: var(--c-accent);
	text-decoration: none;
	border-bottom: 1px solid var(--c-primary);
	transition: color 0.3s ease, border-color 0.3s ease;
	letter-spacing: 0.04em;
}
.faq-toplink a:hover {
	color: var(--c-orange);
	border-color: var(--c-orange);
	opacity: 1;
}

/* レスポンシブ: タブ */
@media (max-width: 767px) {
	.faq-tabs {
		grid-template-columns: repeat(2, 1fr);
		gap: 8px;
	}
	.faq-tabs a { padding: 14px 8px; }
	.faq-tab-label { font-size: 13px; }
	/* .faq-block .heading-1 h2 はデフォルト(20px)に揃える */
	.faq-q {
		padding: 16px 44px 16px 54px;
		font-size: 15px;
	}
	.faq-q::before {
		left: 12px;
		width: 28px;
		height: 28px;
		font-size: 16px;
	}
	.faq-q::after { right: 16px; width: 12px; height: 12px; }
	.faq-a { padding: 0 16px 0 54px; }
	.faq-a > *:first-child::before {
		left: -42px;
		width: 28px;
		height: 28px;
		font-size: 16px;
		top: 14px;
	}
	.faq-a p { font-size: 16px; line-height: 2.0; }
}

@media screen and (max-width: 767px) {
	.group-doctor-section {
		padding: 56px 0 70px;
	}
	.group-doctor-lead {
		font-size: 14px;
		margin-bottom: 36px;
		padding: 0 16px;
	}
	.group-doctor-section .sp-only { display: inline; }
	.group-doctor-list {
		grid-template-columns: repeat(2, 1fr);
		gap: 32px 16px;
	}
	/* SP では段ずらしをリセット */
	.group-doctor-card:nth-child(n+4) {
		margin-top: 0;
	}
	.group-doctor-card:nth-child(2),
	.group-doctor-card:nth-child(5) {
		transform: none;
	}
	.group-doctor-img {
		margin-bottom: 16px;
	}
	.group-doctor-img::after {
		top: 8px;
		right: -6px;
	}
	.group-doctor-clinic {
		font-size: 13px;
	}
	.group-doctor-name {
		font-size: 14px;
		gap: 6px;
	}
	.group-doctor-tag {
		font-size: 11px;
		padding: 2px 6px;
	}
	.group-doctor-more {
		font-size: 13px;
	}
}

/* ================================================================
   ACCESS ページ
   ================================================================ */

/* ================================================================
   VISIT ページ
   ================================================================ */

/* ================================================================
   CLINIC ページ
   ================================================================ */

/* ================================================================
   MEDICAL（診療内容個別） ページ
   ================================================================ */

/* セクション間隔 */
.access-section {
	margin-bottom: 70px;
}
.access-section:last-child { margin-bottom: 0; }

/* 医院情報グリッド */
.access-info-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 40px;
	align-items: stretch;
}
.access-info-table {
	display: flex;
	align-items: center;
}
.access-info-photo .access-photo-wrap {
	width: 100%;
	aspect-ratio: 4 / 3;
	background: #f4f8e9;
	border-radius: 12px;
	overflow: hidden;
}
.access-info-photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/* 医院情報テーブル */
.access-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 15px;
	line-height: 1.8;
}
.access-table th,
.access-table td {
	padding: 16px 14px;
	text-align: left;
	border-bottom: 1px solid #dcec9e;
	vertical-align: top;
}
.access-table th {
	width: 32%;
	font-weight: 700;
	color: var(--c-accent);
	background: #fbfdf6;
	letter-spacing: 0.04em;
}
.access-table td {
	color: #3a4030;
}
.access-table td a {
	color: var(--c-primary);
	font-weight: 700;
	text-decoration: none;
	font-family: "Cormorant Garamond", serif;
	font-size: 1.05em;
}
.access-table td a:hover { color: var(--c-accent); opacity: 1; }

/* 診療受付スケジュール */
.access-schedule {
	max-width: 720px;
	margin: 0 auto;
	background: transparent;
	border: none;
	border-radius: 0;
	padding: 0;
}
.access-schedule .table-1 { background: transparent; padding: 0; }
.access-schedule .table-1 table {
	width: 100%;
	font-family: "Crimson Text", serif;
	border-collapse: collapse;
}
.access-schedule .table-1 th,
.access-schedule .table-1 td {
	padding: 10px 6px;
	text-align: center;
	border-bottom: 1px solid #c5d4a3;
	font-size: 15px;
	color: #3a4030;
}
.access-schedule .table-1 tr:first-child th,
.access-schedule .table-1 tr:first-child td {
	background: var(--c-primary);
	color: #fff;
	font-weight: 700;
	border-bottom-color: var(--c-primary);
}
.access-schedule .table-1 tr:last-child th,
.access-schedule .table-1 tr:last-child td { border-bottom: none; }
.access-schedule-meta {
	margin-top: 18px;
	display: flex;
	flex-direction: column;
	gap: 6px;
	font-size: 14px;
	color: var(--c-accent);
	letter-spacing: 0.04em;
}
.access-schedule-meta .schedule-time {
	margin: 0;
	font-family: "Noto Serif JP", serif;
	font-size: 15px;
	color: #3a4030;
}
.access-schedule-meta .schedule-closed {
	margin: 0;
	display: inline-flex;
	align-items: center;
	gap: 10px;
	flex-wrap: wrap;
}
.access-schedule-meta .closed-label {
	display: inline-block;
	padding: 3px 10px;
	background: var(--c-orange);
	color: #fff;
	border-radius: 999px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.08em;
}

/* 交通アクセス 2カラム */
.access-two-col {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 28px;
}
.access-two-col-item {
	background: #fff;
	border: 1px solid #dcec9e;
	border-radius: 8px;
	padding: 32px 28px;
	transition: box-shadow 0.3s ease, transform 0.3s ease;
}
.access-two-col-item:hover {
	box-shadow: 0 8px 20px rgba(94, 133, 32, 0.08);
	transform: translateY(-2px);
}
.access-two-col-heading {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	margin: 0 0 18px;
	padding-bottom: 14px;
	border-bottom: 2px solid #c5d4a3;
	font-family: "Noto Serif JP", serif;
	font-size: 18px;
	font-weight: 500;
	color: #3a4a20;
	letter-spacing: 0.04em;
}
.access-two-col-heading img {
	width: 36px;
	height: 36px;
	flex-shrink: 0;
}
.access-two-col-item p:not(.access-two-col-heading) {
	font-size: 15px;
	line-height: 1.95;
	color: #3a4030;
	margin: 0 0 12px;
	letter-spacing: 0.04em;
}
.access-two-col-item p:last-child { margin-bottom: 0; }

/* 地図 */
.access-map {
	width: 100%;
	height: 0;
	padding-bottom: 56.25%;
	position: relative;
	border-radius: 8px;
	overflow: hidden;
	background: #f4f8e9;
}
.access-map iframe {
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	border: 0;
}
.access-map-link {
	margin-top: 16px;
	text-align: right;
}
.access-map-link a {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 10px 22px;
	background: #fff;
	border: 1px solid var(--c-primary);
	color: var(--c-accent);
	border-radius: 999px;
	text-decoration: none;
	font-size: 14px;
	font-weight: 500;
	transition: background 0.3s ease, color 0.3s ease, transform 0.3s ease;
}
.access-map-link a:hover {
	background: var(--c-primary);
	color: #fff;
	transform: translateY(-2px);
	opacity: 1;
}
.access-map-link a i { transition: transform 0.3s ease; }
.access-map-link a:hover i { transform: translateX(3px); }

/* レスポンシブ */
@media (max-width: 767px) {
	.access-section { margin-bottom: 50px; }
	.access-info-grid {
		grid-template-columns: 1fr;
		gap: 24px;
	}
	.access-table th { width: 35%; padding: 12px 10px; font-size: 14px; }
	.access-table td { padding: 12px 10px; font-size: 14px; }
	.access-schedule { padding: 16px; }
	.access-schedule .table-1 th,
	.access-schedule .table-1 td { padding: 8px 3px; font-size: 13px; }
	.access-two-col {
		grid-template-columns: 1fr;
		gap: 16px;
	}
	.access-two-col-item { padding: 24px 20px; }
	.access-two-col-heading { font-size: 16px; }
	.access-two-col-heading img { width: 30px; height: 30px; }
	.access-map-link a { font-size: 13px; padding: 8px 16px; }
}

/* ================================================================
   BASE / ユーティリティ （旧 base.css）
   ================================================================ */
h1,h2,h3,h4,h5,h6 { font-weight: normal; margin-bottom: 0; }
img { max-width: 100%; }
dl,ol,ul { margin-bottom: 0; padding-left: 0; list-style-type: none; }
iframe { max-width: 100%; }

/*独自スタイル*/
.b-shdw-1 { box-shadow: 0 0.625em 3.125em rgba(6,33,88,0.1); }
.b-1 { border: 8px solid  #d9effe; }
.b-b-1 { border-bottom: 1px solid #e2e2e2; }
.bg-1 { background: #fff; }
.bg-2 { background: #edf5ff; }
.video { position: relative; width:100%; padding-bottom: 56.25%; height:0px; }
.video iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
.gmap {height: 0; overflow: hidden; padding-bottom: 56.25%; position: relative; }
.gmap iframe { position: absolute; left: 0; top: 0; height: 100%; width: 100%; }
.fbp { max-width: 500px;/*plugin最大値*/ margin: 0 auto; }
.fbp > .fb-page { width: 100%; }
.fbp > .fb-page > span,
.fbp iframe { width: 100% !important; }

.box-1 { padding: 40px 0 20px; }
.box-2 { padding: 40px 0 6px; }
.box-3 { padding: 30px 6%; }
.box-4 { padding: 30px 6%; }
.dashed-list { margin: 0 0 15px; }
.dashed-list li { padding-top: 8px; padding-bottom: 8px; border-bottom: 1px dashed #c5d9ea; }
.dashed-list li:last-child { margin-bottom: 0; }
.dashed-list.small li { padding-bottom: 0; }
.img-center img { display: block; margin: auto; }

@media (min-width: 576px) {

.box-1 { padding: 40px 0 40px; }
.box-2 { padding: 60px 0 20px; }
.box-3 { padding: 30px; }
.box-4 { padding: 60px; }

}

@media (max-width: 575px) {

.img-center img[class*="w-"] { width: 100%; }
.text-img-box img[class*="w-"] { width: 100%; }
.text-img-box img[class*="ml-"] { margin-left: 0; }
.text-img-box img[class*="mr-"] { margin-right: 0; }

}

/* 共通スタイル */
/* management screen eroor .fixed { position: fixed; } */
.relative { position: relative; }
.clear { clear: both; }
.clearfix:after { display: block; clear: both; content: ""; }
.hide { display: none; }
.overflow { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: inherit; }
.fl { float: left; }
.fr { float: right; }
.center { text-align: center; }
.left { text-align: left; }
.right { text-align: right; }
.v-top { vertical-align: top; }
.v-mid { vertical-align: middle; }
.v-btm { vertical-align: bottom; }
.bold {font-weight: bold;}
.normal {font-weight: normal;}
.underline {text-decoration: underline;}
.red { color: #eb4b6d; }
.green { color: var(--c-primary); }
.pink { color: #f1a0b5; }
.orange { color: var(--c-orange); }
.white { color: #FFFFFF; }
.w-10 { width: 10px; }
.w-20 { width: 20px; }
.w-30 { width: 30px; }
.w-40 { width: 40px; }
.w-50 { width: 50px; }
.w-60 { width: 60px; }
.w-70 { width: 70px; }
.w-80 { width: 80px; }
.w-90 { width: 90px; }
.w-100 { width: 100px; }
.w-110 { width: 110px; }
.w-120 { width: 120px; }
.w-130 { width: 130px; }
.w-140 { width: 140px; }
.w-150 { width: 150px; }
.w-160 { width: 160px; }
.w-170 { width: 170px; }
.w-180 { width: 180px; }
.w-190 { width: 190px; }
.w-200 { width: 200px; }
.w-210 { width: 210px; }
.w-220 { width: 220px; }
.w-230 { width: 230px; }
.w-240 { width: 240px; }
.w-250 { width: 250px; }
.w-260 { width: 260px; }
.w-270 { width: 270px; }
.w-280 { width: 280px; }
.w-290 { width: 290px; }
.w-300 { width: 300px; }
.w-310 { width: 310px; }
.w-320 { width: 320px; }
.w-330 { width: 330px; }
.w-340 { width: 340px; }
.w-350 { width: 350px; }
.w-360 { width: 360px; }
.w-370 { width: 370px; }
.w-380 { width: 380px; }
.w-390 { width: 390px; }
.w-400 { width: 400px; }
.w-410 { width: 410px; }
.w-420 { width: 420px; }
.w-430 { width: 430px; }
.w-440 { width: 440px; }
.w-450 { width: 450px; }
.w-460 { width: 460px; }
.w-470 { width: 470px; }
.w-480 { width: 480px; }
.w-490 { width: 490px; }
.w-500 { width: 500px; }
.w-510 { width: 510px; }
.w-520 { width: 520px; }
.w-530 { width: 530px; }
.w-540 { width: 540px; }
.w-550 { width: 550px; }
.w-560 { width: 560px; }
.w-570 { width: 570px; }
.w-580 { width: 580px; }
.w-590 { width: 590px; }
.w-600 { width: 600px; }
.w-610 { width: 610px; }
.w-620 { width: 620px; }
.w-630 { width: 630px; }
.w-640 { width: 640px; }
.w-650 { width: 650px; }
.w-660 { width: 660px; }
.w-670 { width: 670px; }
.w-680 { width: 680px; }
.w-690 { width: 690px; }
.w-700 { width: 700px; }
.w-710 { width: 710px; }
.w-720 { width: 720px; }
.w-730 { width: 730px; }
.w-740 { width: 740px; }
.w-750 { width: 750px; }
.w-760 { width: 760px; }
.w-770 { width: 770px; }
.w-780 { width: 780px; }
.w-790 { width: 790px; }
.w-800 { width: 800px; }
.w-810 { width: 810px; }
.w-820 { width: 820px; }
.w-830 { width: 830px; }
.w-840 { width: 840px; }
.w-850 { width: 850px; }
.w-860 { width: 860px; }
.w-870 { width: 870px; }
.w-880 { width: 880px; }
.w-890 { width: 890px; }
.w-900 { width: 900px; }
.w-910 { width: 910px; }
.w-920 { width: 920px; }
.w-930 { width: 930px; }
.w-940 { width: 940px; }
.w-950 { width: 950px; }
.w-960 { width: 960px; }
.w-970 { width: 970px; }
.w-980 { width: 980px; }
.w-990 { width: 990px; }
.w-1000 { width: 1000px; }
.w-1010 { width: 1010px; }
.w-1020 { width: 1020px; }
.w-1030 { width: 1030px; }
.w-1040 { width: 1040px; }
.w-1050 { width: 1050px; }
.w-1060 { width: 1060px; }
.w-1070 { width: 1070px; }
.w-1080 { width: 1080px; }
.w-1090 { width: 1090px; }
.w-1100 { width: 1100px; }
.w-1110 { width: 1110px; }
.w-1120 { width: 1120px; }
.w-1130 { width: 1130px; }
.w-1140 { width: 1140px; }
.w-1150 { width: 1150px; }
.w-1160 { width: 1160px; }
.w-1170 { width: 1170px; }
.w-1180 { width: 1180px; }
.w-1190 { width: 1190px; }
.w-1200 { width: 1200px; }
.w-1210 { width: 1210px; }
.w-1220 { width: 1220px; }
.w-1230 { width: 1230px; }
.w-1240 { width: 1240px; }
.w-1250 { width: 1250px; }
.w-1260 { width: 1260px; }
.w-1270 { width: 1270px; }
.w-1280 { width: 1280px; }
.w-1290 { width: 1290px; }
.w-1300 { width: 1300px; }
.p-4 { padding:4px; }
.p-6 { padding:6px; }
.p-8 { padding:8px; }
.p-10 { padding:10px; }
.p-20 { padding:20px; }
.p-4-0 { padding:4px 0; }
.p-6-0 { padding:6px 0; }
.p-8-0 { padding:8px 0; }
.p-4-10 { padding:4px 10px; }
.p-6-20 { padding:6px 10px; }
.p-8-10 { padding:8px 10px; }
.p-10-0 { padding:10px 0; }
.p-20-0 { padding:20px 0; }
.p-20-10 { padding:20px 10px; }
.p-30-0 { padding:30px 0; }
.p-40-0 { padding:40px 0; }
.p-50-0 { padding:50px 0; }
.p-60-0 { padding:60px 0; }
.p-0-4 { padding:0 4px; }
.p-0-6 { padding:0 6px; }
.p-0-8 { padding:0 8px; }
.p-0-10 { padding:0 10px; }
.p-0-20 { padding:0 20px; }
.p-0-30 { padding:0 30px; }
.pt-10 { padding-top: 10px; }
.pt-20 { padding-top: 20px; }
.pt-30 { padding-top: 30px; }
.pt-40 { padding-top: 40px; }
.pt-45 { padding-top: 45px; }
.pt-50 { padding-top: 50px; }
.pt-60 { padding-top: 60px; }
.pt-70 { padding-top: 70px; }
.pt-80 { padding-top: 80px; }
.pt-90 { padding-top: 90px; }
.pt-100 { padding-top: 100px; }
.pb-10 { padding-bottom: 10px; }
.pb-16 { padding-bottom: 16px; }
.pb-20 { padding-bottom: 20px; }
.pb-30 { padding-bottom: 30px; }
.pb-40 { padding-bottom: 40px; }
.pb-50 { padding-bottom: 50px; }
.pb-60 { padding-bottom: 60px; }
.pb-70 { padding-bottom: 70px; }
.pb-80 { padding-bottom: 80px; }
.pb-90 { padding-bottom: 90px; }
.pb-100 { padding-bottom: 100px; }
.pr-10 { padding-right: 10px; }
.pr-20 { padding-right: 20px; }
.pr-30 { padding-right: 30px; }
.pr-40 { padding-right: 40px; }
.pr-50 { padding-right: 50px; }
.pr-60 { padding-right: 60px; }
.pr-70 { padding-right: 70px; }
.pr-80 { padding-right: 80px; }
.pr-90 { padding-right: 90px; }
.pr-100 { padding-right: 100px; }
.pl-10 { padding-left: 10px; }
.pl-20 { padding-left: 20px; }
.pl-30 { padding-left: 30px; }
.pl-40 { padding-left: 40px; }
.pl-50 { padding-left: 50px; }
.pl-60 { padding-left: 60px; }
.pl-70 { padding-left: 70px; }
.pl-80 { padding-left: 80px; }
.pl-90 { padding-left: 90px; }
.pl-100 { padding-left: 100px; }
.m-at { margin: auto; }
.m-0-at { margin: 0 auto; }
.m-10 { margin:10px; }
.m-20 { margin:20px; }
.mt-0 { margin-top: 0; }
.mt-5 { margin-top: 5px; }
.mt-6 { margin-top: 6px; }
.mt-12 { margin-top: 12px; }
.mt-16 { margin-top: 16px; }
.mt-10 { margin-top: 10px; }
.mt-20 { margin-top: 20px; }
.mt-30 { margin-top: 30px; }
.mt-40 { margin-top: 40px; }
.mt-50 { margin-top: 50px; }
.mt-60 { margin-top: 60px; }
.mt-70 { margin-top: 70px; }
.mt-80 { margin-top: 80px; }
.mt-90 { margin-top: 90px; }
.mt-100 { margin-top: 100px; }
.mb-0 { margin-bottom: 0; }
.mb-4 { margin-bottom: 4px; }
.mb-6 { margin-bottom: 6px; }
.mb-8 { margin-bottom: 8px; }
.mb-10 { margin-bottom: 10px; }
.mb-16 { margin-bottom: 16px; }
.mb-20 { margin-bottom: 20px; }
.mb-25 { margin-bottom: 25px; }
.mb-30 { margin-bottom: 30px; }
.mb-40 { margin-bottom: 40px; }
.mb-45 { margin-bottom: 45px; }
.mb-50 { margin-bottom: 50px; }
.mb-60 { margin-bottom: 60px; }
.mb-70 { margin-bottom: 70px; }
.mb-80 { margin-bottom: 80px; }
.mb-90 { margin-bottom: 90px; }
.mb-100 { margin-bottom: 100px; }
.mr-0 { margin-right: 0; }
.mr-6 { margin-right: 6px; }
.mr-8 { margin-right: 8px; }
.mr-10 { margin-right: 10px; }
.mr-20 { margin-right: 20px; }
.mr-30 { margin-right: 30px; }
.mr-40 { margin-right: 40px; }
.mr-50 { margin-right: 50px; }
.mr-60 { margin-right: 60px; }
.mr-70 { margin-right: 70px; }
.mr-80 { margin-right: 80px; }
.mr-90 { margin-right: 90px; }
.mr-100 { margin-right: 100px; }
.ml-0 { margin-left: 0; }
.ml-0 { margin-left: 0; }
.ml-6 { margin-left: 6px; }
.ml-8 { margin-left: 8px; }
.ml-10 { margin-left: 10px; }
.ml-20 { margin-left: 20px; }
.ml-30 { margin-left: 30px; }
.ml-40 { margin-left: 40px; }
.ml-50 { margin-left: 50px; }
.ml-60 { margin-left: 60px; }
.ml-70 { margin-left: 70px; }
.ml-80 { margin-left: 80px; }
.ml-90 { margin-left: 90px; }
.ml-100 { margin-left: 100px; }
.box-500 { max-width: 500px; }/*fb*/
.box-680 { max-width: 680px; }
.box-760 { max-width: 760px; }
.box-840 { max-width: 840px; }
.box-960 { max-width: 960px; }
.box-980 { max-width: 980px; }
.box-1000 { max-width: 1000px; }
.box-1024 { max-width: 1024px; }
.box-1040 { max-width: 1040px; }
.box-1080 { max-width: 1080px; }
.box-1200 { max-width: 1200px; }
.box-1300 { max-width: 1300px; }
.flex { display: -ms-flexbox; display: flex; -ms-flex-wrap: wrap; flex-wrap: wrap; }
.flex-nowrap { display: -ms-flexbox; display: flex; }
.flex-start-center { justify-content: flex-start; align-items: center; }
.flex-center-start { justify-content: center; align-items: flex-start; }
.flex-center-center { justify-content: center; align-items: center; }
.flex-center-end { justify-content: center; align-items: flex-end; }
.flex-end { justify-content: flex-end; }
.flex-end-center { justify-content: flex-end; align-items: center; }
.flex-sb { justify-content: space-between; }
.flex-sb-start { justify-content: space-between; align-items: flex-start; }
.flex-sb-center { justify-content: space-between; align-items: center; }
.flex-row { flex-direction: row; }
.flex-row-reverse { flex-direction: row-reverse; }
.flex-flow-column { flex-flow: column; }

/*ipad-pc*/
.hide-or { display: block; }
.or { display: none; }
.col-or-l,
.col-or-r { float: none; }
.col-or-1, .col-or-2, .col-or-2-3, .col-or-2-5, .col-or-2-7, .col-or-2-8,
.col-or-3, .col-or-3-5, .col-or-4, .col-or-4-3,.col-or-4-5, .col-or-4-8,
.col-or-5, .col-or-5-3, .col-or-5-5, .col-or-6,.col-or-7, .col-or-8,
.col-or-9, .col-or-10, .col-or,
.col-or-auto { position: relative; width: 100%; }
.container-or { width: auto; margin: 0 6%; }
.m-center-or { margin-left: 0; margin-right: 0; }
.left-or,
.right-or,
.center-or { text-align: left; }
.pt-or-10, .pt-or-20, .pt-or-30, .pt-or-40, .pt-or-50,
.pt-or-60, .pt-or-70, .pt-or-80, .pt-or-90, .pt-or-100 { padding-top: auto; }
.pb-or-10, .pb-or-20, .pb-or-30, .pb-or-40, .pb-or-50,
.pb-or-60, .pb-or-70, .pb-or-80, .pb-or-90, .pb-or-100 { padding-bottom: auto; }
.pr-or-10, .pr-or-20, .pr-or-30, .pr-or-40, .pr-or-50,
.pr-or-60, .pr-or-70, .pr-or-80, .pr-or-90, .pr-or-100 { padding-right: auto; }
.pl-or-10, .pl-or-20, .pl-or-30, .pl-or-40, .pl-or-50,
.pl-or-60, .pl-or-70, .pl-or-80, .pl-or-90, .pl-or-100 { padding-left: auto; }

@media (min-width: 576px) {

  .flex-or { display: -ms-flexbox; display: flex; -ms-flex-wrap: wrap; flex-wrap: wrap; }
  .flex-nowrap-or { display: -ms-flexbox; display: flex; }
  .flex-start-center-or { justify-content: flex-start; align-items: center; }
  .flex-center-start-or { justify-content: center; align-items: flex-start; }
  .flex-center-center-or { justify-content: center; align-items: center; }
  .flex-center-end-or { justify-content: center; align-items: flex-end; }
  .flex-end-or { justify-content: flex-end; }
  .flex-end-center-or { justify-content: flex-end; align-items: center; }
  .flex-sb-or { justify-content: space-between; }
  .flex-sb-center-or { justify-content: space-between; align-items: center; }
  .flex-row-or { flex-direction: row; }
  .flex-row-reverse-or { flex-direction: row-reverse; }
  .flex-flow-column-or { flex-flow: column; }
  .hide-or { display: none; }
  .or { display: block; }
  .col-or-l { float: left; }
  .col-or-r { float: right; }
  .col-or { -ms-flex-preferred-size: 0; flex-basis: 0; -ms-flex-positive: 1; flex-grow: 1; max-width: 100%; }
  .col-or-auto { -ms-flex: 0 0 auto; flex: 0 0 auto; width: auto; max-width: 100%; }
  .col-or-1 { -ms-flex: 0 0 10%; flex: 0 0 10%; max-width: 10%; }
  .col-or-2 { -ms-flex: 0 0 20%; flex: 0 0 20%; max-width: 20%; }
  .col-or-2-5 { -ms-flex: 0 0 25%; flex: 0 0 25%; max-width: 25%; }
  .col-or-2-3 { -ms-flex: 0 0 23%; flex: 0 0 23%; max-width: 23%; }
  .col-or-2-7 { -ms-flex: 0 0 27%; flex: 0 0 27%; max-width: 27%; }
  .col-or-2-8 { -ms-flex: 0 0 28%; flex: 0 0 28%; max-width: 28%; }
  .col-or-3 { -ms-flex: 0 0 30%; flex: 0 0 30%; max-width: 30%; }
  .col-or-3-5 { -ms-flex: 0 0 35%; flex: 0 0 35%; max-width: 35%; }
  .col-or-4 { -ms-flex: 0 0 40%; flex: 0 0 40%; max-width: 40%; }
  .col-or-4-3 { -ms-flex: 0 0 43%; flex: 0 0 43%; max-width: 43%; }
  .col-or-4-5 { -ms-flex: 0 0 45%; flex: 0 0 45%; max-width: 45%; }
  .col-or-4-8 { -ms-flex: 0 0 48%; flex: 0 0 48%; max-width: 48%; }
  .col-or-5 { -ms-flex: 0 0 50%; flex: 0 0 50%; max-width: 50%; }
  .col-or-5-3 { -ms-flex: 0 0 53%; flex: 0 0 53%; max-width: 53%; }
  .col-or-5-5 { -ms-flex: 0 0 55%; flex: 0 0 55%; max-width: 55%; }
  .col-or-6 { -ms-flex: 0 0 60%; flex: 0 0 60%; max-width: 60%; }
  .col-or-7 { -ms-flex: 0 0 70%; flex: 0 0 70%; max-width: 70%; }
  .col-or-8 { -ms-flex: 0 0 80%; flex: 0 0 80%; max-width: 80%; }
  .col-or-9 { -ms-flex: 0 0 90%; flex: 0 0 90%; max-width: 90%; }
  .col-or-10 { -ms-flex: 0 0 100%; flex: 0 0 100%; max-width: 100%; }
  .container-or {max-width: 1280px; margin: 0 auto;}
  .m-center-or { margin-left: auto; margin-right: auto; }
  .left-or { text-align: left; }
  .right-or { text-align: right; }
  .center-or{ text-align: center; }
  .pt-or-10 { padding-top: 10px; }
  .pt-or-20 { padding-top: 20px; }
  .pt-or-30 { padding-top: 30px; }
  .pt-or-40 { padding-top: 40px; }
  .pt-or-50 { padding-top: 50px; }
  .pt-or-60 { padding-top: 60px; }
  .pt-or-70 { padding-top: 70px; }
  .pt-or-80 { padding-top: 80px; }
  .pt-or-90 { padding-top: 90px; }
  .pt-or-100 { padding-top: 100px; }
  .pb-or-10 { padding-bottom: 10px; }
  .pb-or-20 { padding-bottom: 20px; }
  .pb-or-30 { padding-bottom: 30px; }
  .pb-or-40 { padding-bottom: 40px; }
  .pb-or-50 { padding-bottom: 50px; }
  .pb-or-60 { padding-bottom: 60px; }
  .pb-or-70 { padding-bottom: 70px; }
  .pb-or-80 { padding-bottom: 80px; }
  .pb-or-90 { padding-bottom: 90px; }
  .pb-or-100 { padding-bottom: 100px; }
  .pr-or-10 { padding-right: 10px; }
  .pr-or-20 { padding-right: 20px; }
  .pr-or-30 { padding-right: 30px; }
  .pr-or-40 { padding-right: 40px; }
  .pr-or-50 { padding-right: 50px; }
  .pr-or-60 { padding-right: 60px; }
  .pr-or-70 { padding-right: 70px; }
  .pr-or-80 { padding-right: 80px; }
  .pr-or-90 { padding-right: 90px; }
  .pr-or-100 { padding-right: 100px; }
  .pl-or-10 { padding-left: 10px; }
  .pl-or-20 { padding-left: 20px; }
  .pl-or-30 { padding-left: 30px; }
  .pl-or-40 { padding-left: 40px; }
  .pl-or-50 { padding-left: 50px; }
  .pl-or-60 { padding-left: 60px; }
  .pl-or-70 { padding-left: 70px; }
  .pl-or-80 { padding-left: 80px; }
  .pl-or-90 { padding-left: 90px; }
  .pl-or-100 { padding-left: 100px; }
}

/* ================================================================
   メガメニュー （旧 services-mega.css）
   ================================================================ */
/* ================================================================
   診療内容 メガメニュー(PCのみ・右半分スライドインパネル)
   - 既存グローバルメニューのレイアウトには影響しません
   - position:fixed で別レイヤーに描画
   - 緑系カラー(オリーブ/黄緑)
   ================================================================ */

:root{
  --sm-primary:      var(--c-primary);  /* オリーブ */
  --sm-primary-dark: var(--c-accent);  /* 濃いオリーブ */
  --sm-primary-deep: #3d4f1f;          /* さらに濃いオリーブ */
  --sm-mint:         #a8d068;          /* 明るい黄緑 */
  --sm-bg:           #f0f8d0;          /* 薄黄緑背景 */
  --sm-text:         var(--c-accent);  /* テキスト用濃いオリーブ */
  --sm-muted:        #707a4f;          /* マットなオリーブ */
  --sm-border:       rgba(136,192,48,.14);
  --sm-ease-out:     cubic-bezier(0.22, 1, 0.36, 1);
  --sm-ease-pow:     cubic-bezier(0.77, 0, 0.175, 1);
  --sm-ease-spring:  cubic-bezier(0.34, 1.56, 0.64, 1);
}

/* トリガーリンク側 */
.sm-trigger{
  position:relative;
}
.sm-trigger .sm-caret{
  display:none;
  width:7px;height:7px;
  margin-left:5px;
  border-right:1.5px solid currentColor;
  border-bottom:1.5px solid currentColor;
  transform:rotate(45deg) translateY(-2px);
  transition:transform .3s var(--sm-ease-out);
  vertical-align:middle;
  pointer-events:none;
}
.sm-trigger.is-open .sm-caret{
  transform:rotate(-135deg) translateY(1px);
}

/* ===== パネル本体(PCのみ表示) ===== */
.sm-panel{
  display:none !important;
  position:fixed;
  top:0;right:0;
  width:min(780px, 56vw);
  height:100vh;
  background:transparent;
  opacity:0;visibility:hidden;
  transform:translateX(40px);
  transform-origin:top right;
  transition:
    opacity .5s var(--sm-ease-out),
    transform .65s var(--sm-ease-pow),
    visibility .5s;
  pointer-events:none;
  z-index:1300;
  font-family:var(--font-sans, 'Noto Sans JP', sans-serif);
  will-change:transform, opacity;
  -webkit-backface-visibility:hidden;
  backface-visibility:hidden;
}
.sm-panel.is-open{
  opacity:1;visibility:visible;
  transform:translateX(0);
  pointer-events:auto;
}

/* 左の縦ラインアクセント */
.sm-panel::before{
  content:'';
  position:absolute;
  top:calc(var(--sm-offset-top, 120px) + 58px);bottom:40px;left:0;width:2px;
  background:linear-gradient(180deg,
    transparent 0%,
    var(--sm-mint) 10%,
    var(--sm-primary) 50%,
    var(--sm-primary-dark) 90%,
    transparent 100%);
  transform:scaleY(0);transform-origin:top;
  transition:transform 1.1s var(--sm-ease-pow) .15s;
  z-index:2;
  border-radius:2px;
  box-shadow:0 0 10px rgba(171,197,106,.35);
}
.sm-panel.is-open::before{transform:scaleY(1)}

/* ガラスパネル */
.sm-inner{
  position:absolute;
  top:calc(var(--sm-offset-top, 120px) + 18px);
  left:0;right:0;bottom:0;
  background:
    linear-gradient(180deg, rgba(255,255,255,.85) 0%, rgba(255,255,255,.72) 100%);
  backdrop-filter:blur(16px) saturate(160%);
  -webkit-backdrop-filter:blur(16px) saturate(160%);
  border-left:1px solid rgba(255,255,255,.6);
  border-top:1px solid rgba(255,255,255,.75);
  border-top-left-radius:28px;
  box-shadow:
    -28px 0 80px rgba(58,79,31,.12),
    -4px -4px 24px rgba(171,197,106,.08),
    inset 1px 1px 0 rgba(255,255,255,.8);
  padding:34px 44px 36px;
  display:flex;flex-direction:column;
  overflow-y:auto;
  overflow-x:hidden;
}

/* 左上の装飾グロー */
.sm-inner::after{
  content:'';
  position:absolute;
  top:0;left:0;
  width:180px;height:180px;
  background:radial-gradient(circle at 0% 0%, rgba(171,197,106,.18), transparent 60%);
  pointer-events:none;
  border-top-left-radius:inherit;
  z-index:0;
}

/* 装飾ブロブ */
.sm-inner::before{
  content:'';
  position:absolute;inset:0;
  background:
    radial-gradient(400px 400px at 100% 110%, rgba(190,210,140,.22), transparent 60%),
    radial-gradient(500px 300px at 0% 0%, rgba(171,197,106,.14), transparent 60%);
  pointer-events:none;
  opacity:0;
  transition:opacity .8s var(--sm-ease-out) .2s;
  z-index:0;
}
.sm-panel.is-open .sm-inner::before{opacity:1}

.sm-inner > *{position:relative;z-index:1}

/* ヘッダー */
.sm-head{
  position:relative;
  display:flex;flex-direction:column;align-items:center;
  margin-top:0;
  margin-bottom:14px;
  padding:4px 0 22px;
  gap:6px;
}
.sm-head::after{
  content:'';
  position:absolute;
  left:50%;bottom:0;
  width:56px;height:2px;
  background:linear-gradient(90deg, transparent, var(--sm-primary), var(--sm-primary-dark), transparent);
  transform:translateX(-50%) scaleX(0);
  transform-origin:center;
  transition:transform .9s var(--sm-ease-pow) .35s;
  border-radius:2px;
}
.sm-panel.is-open .sm-head::after{transform:translateX(-50%) scaleX(1)}

.sm-head-left{
  display:flex;flex-direction:column;align-items:center;gap:6px;
  opacity:0;transform:translateY(-10px);
  transition:opacity .6s var(--sm-ease-out) .2s, transform .7s var(--sm-ease-spring) .2s;
}
.sm-panel.is-open .sm-head-left{opacity:1;transform:translateY(0)}

.sm-tag{
  font-size:12px;font-weight:700;
  letter-spacing:.35em;text-transform:uppercase;
  color:#666;
  position:relative;
  padding:0 14px;
  font-family:var(--font-en, 'Cormorant Garamond', serif);
}
.sm-tag::before,.sm-tag::after{
  content:'';
  position:absolute;top:50%;
  width:18px;height:1px;
  background:linear-gradient(90deg, transparent, var(--sm-primary));
}
.sm-tag::before{right:100%;}
.sm-tag::after{
  left:100%;
  background:linear-gradient(90deg, var(--sm-primary), transparent);
}
.sm-title{
  font-size:24px;font-weight:700;
  letter-spacing:.08em;
  font-family:var(--font-serif, 'Noto Serif JP', serif);
  color:#333;
}

.sm-close{
  position:absolute;
  top:6px;right:0;
  z-index:3;
  display:inline-flex;align-items:center;gap:8px;
  padding:10px 20px;
  border-radius:999px;
  background:rgba(238,244,225,.8);
  color:#333;
  font-size:12px;font-weight:700;
  letter-spacing:.05em;
  text-decoration:none;
  border:1px solid rgba(136,192,48,.25);
  cursor:pointer;
  font-family:inherit;
  transition:all .4s var(--sm-ease-spring);
  white-space:nowrap;
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
}
.sm-close:hover{
  background:var(--sm-primary-dark);color:#fff;
  border-color:var(--sm-primary-dark);
  transform:translateY(-1px);
}
.sm-close svg{width:13px;height:13px;transition:transform .5s var(--sm-ease-spring)}
.sm-close:hover svg{transform:rotate(90deg)}

/* 一覧を見るリンク */
.sm-index-link{
  position:absolute;
  top:6px;left:0;
  z-index:3;
  display:inline-flex;align-items:center;gap:8px;
  padding:10px 20px;
  border-radius:999px;
  background:rgba(238,244,225,.8);
  color:#333;
  font-size:12px;font-weight:700;
  letter-spacing:.05em;
  text-decoration:none;
  border:1px solid rgba(136,192,48,.25);
  cursor:pointer;
  font-family:inherit;
  transition:all .4s var(--sm-ease-spring);
  white-space:nowrap;
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
}
.sm-index-link:hover{
  background:var(--sm-primary-dark);color:#fff;
  border-color:var(--sm-primary-dark);
  transform:translateY(-1px);
}
.sm-index-link svg{width:14px;height:14px;transition:transform .5s var(--sm-ease-spring)}
.sm-index-link:hover svg{transform:translateX(3px)}

/* リスト(横2列) */
.sm-list{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:0 20px;
  list-style:none;
  margin:0;padding:0;
}
.sm-item{
  position:relative;
  display:flex;align-items:center;justify-content:space-between;gap:14px;
  padding:20px 22px;
  border-radius:12px;
  cursor:pointer;
  overflow:hidden;
  opacity:0;
  transform:translateX(24px);
  transition:
    opacity .55s var(--sm-ease-out),
    transform .65s var(--sm-ease-spring),
    background .4s var(--sm-ease-out);
  text-decoration:none;
  color:inherit;
  border-bottom:1px solid rgba(171,197,106,.2);
}
.sm-panel.is-open .sm-item{opacity:1;transform:translateX(0)}
.sm-panel.is-open .sm-item:nth-child(1){transition-delay:.12s}
.sm-panel.is-open .sm-item:nth-child(2){transition-delay:.17s}
.sm-panel.is-open .sm-item:nth-child(3){transition-delay:.22s}
.sm-panel.is-open .sm-item:nth-child(4){transition-delay:.27s}
.sm-panel.is-open .sm-item:nth-child(5){transition-delay:.32s}
.sm-panel.is-open .sm-item:nth-child(6){transition-delay:.37s}
.sm-panel.is-open .sm-item:nth-child(7){transition-delay:.42s}
.sm-panel.is-open .sm-item:nth-child(8){transition-delay:.47s}
.sm-panel.is-open .sm-item:nth-child(9){transition-delay:.52s}
.sm-panel.is-open .sm-item:nth-child(10){transition-delay:.57s}
.sm-panel.is-open .sm-item:nth-child(11){transition-delay:.62s}

.sm-item::before{
  content:'';
  position:absolute;inset:0;
  background:linear-gradient(90deg, rgba(238,244,225,.85) 0%, rgba(238,244,225,.25) 100%);
  opacity:0;
  transition:opacity .4s var(--sm-ease-out);
  z-index:-1;
  border-radius:inherit;
}
.sm-item::after{
  content:'';
  position:absolute;left:0;top:14px;bottom:14px;width:3px;
  background:linear-gradient(180deg, var(--sm-primary), var(--sm-primary-deep));
  border-radius:3px;
  transform:scaleY(0);transform-origin:center;
  transition:transform .5s var(--sm-ease-spring);
}
.sm-item:hover::before{opacity:1}
.sm-item:hover::after{transform:scaleY(1)}

.sm-item-body{
  flex:1;min-width:0;
  display:flex;align-items:center;gap:20px;
}
.sm-dot{
  width:8px;height:8px;
  border-radius:50%;
  background:var(--sm-primary);
  flex-shrink:0;
  transition:background .4s var(--sm-ease-out), transform .5s var(--sm-ease-spring);
}
.sm-item:hover .sm-dot{
  background:var(--sm-primary-dark);
  transform:scale(1.25);
}
.sm-item-title{
  font-size:17px;font-weight:500;
  color:#333;
  letter-spacing:.04em;
  line-height:1.4;
  flex:1;
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  transition:color .35s var(--sm-ease-out);
}
.sm-item:hover .sm-item-title{color:var(--sm-primary-dark)}

.sm-circle-arrow{
  flex-shrink:0;
  width:40px;height:40px;
  border-radius:50%;
  border:1.5px solid var(--sm-primary);
  display:flex;align-items:center;justify-content:center;
  transition:background .4s var(--sm-ease-out), border-color .4s var(--sm-ease-out), transform .4s var(--sm-ease-spring);
}
.sm-circle-arrow svg{
  width:18px;height:18px;
  color:var(--sm-primary);
  transition:color .4s var(--sm-ease-out), transform .3s var(--sm-ease-spring);
}
.sm-item:hover .sm-circle-arrow{
  background:var(--sm-primary);
  border-color:var(--sm-primary);
  transform:translateX(4px);
}
.sm-item:hover .sm-circle-arrow svg{
  color:#fff;
  transform:translateX(2px);
}

/* 背景オーバーレイ */
.sm-backdrop{
  display:none !important;
  position:fixed;inset:0;
  background:rgba(58,79,31,.2);
  backdrop-filter:blur(3px) saturate(110%);
  -webkit-backdrop-filter:blur(3px) saturate(110%);
  opacity:0;visibility:hidden;
  z-index:1200;
  transition:opacity .5s var(--sm-ease-out),visibility .5s;
  pointer-events:none;
}
.sm-backdrop.is-open{
  opacity:1;visibility:visible;
  pointer-events:auto;
}

/* デスクトップ(1024px〜) */
@media (min-width:1164px){
  .sm-panel,.sm-backdrop{display:block !important}
  .sm-trigger .sm-caret{display:inline-block}
}

@media (prefers-reduced-motion: reduce){
  .sm-panel,.sm-panel::before,.sm-item{
    transition-duration:.01ms !important;
  }
}

/* ================================================================
   ドロップダウン型パネル (sm-panel--compact)
   トリガー直下の小さなドロップダウン
   ================================================================ */
@media (min-width:1164px){
  .sm-panel--compact{
    top:var(--sm-offset-top, 120px);
    right:auto;
    left:var(--sm-trigger-left, 0);
    width:max(640px, calc(var(--sm-trigger-width, 200px) + 480px));
    max-width:720px;
    height:auto;
    transform:none;
    transform-origin:top left;
    /* トリガーとパネル本体の間にホバーブリッジを確保(マウスが外れない) */
    padding-top:24px;
    margin-top:-24px;
    will-change:opacity, transform;
  }
  .sm-panel--compact.is-open{
    transform:none;
  }
  .sm-panel--compact::before{
    display:none;
  }
  .sm-panel--compact .sm-inner{
    position:relative;
    top:0;
    padding:18px 18px 22px;
    border-radius:14px;
    border:1px solid rgba(136,192,48,.18);
    background:rgba(255,255,255,.96);
    box-shadow:
      0 18px 40px rgba(58,79,31,.14),
      0 4px 12px rgba(136,192,48,.10);
    overflow:visible;
    margin-top:0;
    transition:opacity .25s var(--sm-ease-out), transform .3s var(--sm-ease-out);
    opacity:0;
    transform:translateY(-8px);
  }
  .sm-panel--compact.is-open .sm-inner{
    opacity:1;
    transform:translateY(0);
  }
  /* ドロップダウン上部の三角インジケータ */
  .sm-panel--compact .sm-inner::before{
    content:'';
    position:absolute;
    top:-7px;
    left:36px;
    width:14px;height:14px;
    background:#fff;
    border-left:1px solid rgba(136,192,48,.18);
    border-top:1px solid rgba(136,192,48,.18);
    transform:rotate(45deg);
    opacity:1;
    z-index:0;
    border-radius:2px 0 0 0;
    transition:none;
    background-image:none;
  }
  .sm-panel--compact.is-open .sm-inner::before{opacity:1}
  .sm-panel--compact .sm-inner::after{
    display:none;
  }

  /* ヘッダー部分はコンパクト化 */
  .sm-panel--compact .sm-head{
    flex-direction:row;
    align-items:center;
    justify-content:space-between;
    padding:4px 4px 12px;
    margin-bottom:8px;
    gap:10px;
  }
  .sm-panel--compact .sm-head::after{
    width:32px;
  }
  .sm-panel--compact .sm-head-left{
    flex-direction:row;
    align-items:baseline;
    gap:10px;
    flex:1 1 auto;
    min-width:0;
    white-space:nowrap;
  }
  .sm-panel--compact .sm-tag{
    font-size:10px;
    letter-spacing:.25em;
    padding:0 8px;
    white-space:nowrap;
    flex-shrink:0;
    color:#666;
  }
  .sm-panel--compact .sm-tag::before,
  .sm-panel--compact .sm-tag::after{
    width:10px;
  }
  .sm-panel--compact .sm-title{
    font-size:16px;
    letter-spacing:.05em;
    white-space:nowrap;
    flex-shrink:0;
    /* グレー単色化: 親の緑グラデーションを解除 */
    background:none;
    -webkit-background-clip:initial;
    background-clip:initial;
    -webkit-text-fill-color:#333;
    color:#333;
    text-shadow:none;
  }
  .sm-panel--compact .sm-close,
  .sm-panel--compact .sm-index-link{
    position:relative;
    top:auto;left:auto;right:auto;
    padding:5px 10px;
    font-size:11px;
    color:#333;
  }
  /* ホバー時は白文字＋緑背景（既存挙動を踏襲） */
  .sm-panel--compact .sm-close:hover,
  .sm-panel--compact .sm-index-link:hover{
    color:#fff;
  }
  .sm-panel--compact .sm-close{order:3}
  .sm-panel--compact .sm-index-link{order:2}
  .sm-panel--compact .sm-head-left{order:1; flex:1}

  /* リスト：診療内容は2列、医師紹介など項目少ない場合は別途指定 */
  .sm-panel--compact .sm-list{
    grid-template-columns:1fr 1fr;
    gap:0 12px;
  }
  .sm-panel--compact .sm-item{
    padding:10px 12px;
    gap:8px;
    border-bottom:1px solid rgba(171,197,106,.18);
  }
  /* 2列レイアウト時：最後の2項目で border-bottom を消す */
  .sm-panel--compact .sm-item:nth-last-child(-n+2){
    border-bottom:none;
  }
  /* 11項目（奇数）の場合：最後の単独項目の右側にborder-bottom残す */
  .sm-panel--compact .sm-item:nth-last-child(1):nth-child(odd){
    border-bottom:none;
  }
  .sm-panel--compact .sm-item-body{
    gap:14px;
  }
  .sm-panel--compact .sm-item-title{
    font-size:14px;
    color:#333;
  }
  .sm-panel--compact .sm-item:hover .sm-item-title{
    color:var(--sm-primary-dark);
  }
  .sm-panel--compact .sm-circle-arrow{
    width:30px;height:30px;
  }
  .sm-panel--compact .sm-circle-arrow svg{
    width:14px;height:14px;
  }

  /* compact用バックドロップは透明(クリック透過させない範囲のみ) */
  .sm-backdrop--compact{
    background:transparent;
    backdrop-filter:none;
    -webkit-backdrop-filter:none;
  }
}

/* ================================================================
   アクセスページ （旧 access-content.css）
   ================================================================ */
/* ================================================================
   access.html 本文ブロック用スタイル
   ※ 見出し・ヘッダー・フッターは kodaira CSS（style.css）に従う
   ※ ここではアクセスページ固有のテーブル / スケジュール / 2カラム / 地図のみ
   ================================================================ */

/* --- セクション間隔（faq-block 相当） --- */
.access-content .access-block {
	margin-bottom: 60px;
}
.access-content .access-block:last-child {
	margin-bottom: 0;
}

/* --- 医院情報テーブル --- */
.access-content .access-table {
	width: 100%;
	font-size: 15px;
	margin: 15px 0;
}
.access-content .access-table th {
	text-align: left;
	padding: 12px 15px 12px 0;
	font-weight: bold;
	color: var(--c-accent);
	white-space: nowrap;
	vertical-align: top;
	width: 120px;
	border-bottom: 1px dashed #d6dcc7;
}
.access-content .access-table td {
	padding: 12px 0;
	border-bottom: 1px dashed #d6dcc7;
	vertical-align: top;
	color: var(--c-text);
}
.access-content .access-table a {
	color: var(--c-accent);
	text-decoration: none;
}
.access-content .access-table a:hover {
	text-decoration: underline;
}
.access-content .access-table-soon {
	display: inline-block;
	padding: 4px 12px;
	font-size: 13px;
	color: #7a8a5a;
	background: #f0f8d0;
	border: 1px solid #dcec9e;
	border-radius: 4px;
	letter-spacing: 0.05em;
}
.access-content .access-table-link {
	display: inline-block;
	padding: 6px 16px;
	font-size: 13px;
	color: #fff;
	background: #8fa94d;
	border: 1px solid #8fa94d;
	border-radius: 4px;
	letter-spacing: 0.05em;
	text-decoration: none !important;
	transition: background 0.2s, border-color 0.2s;
}
.access-content .access-table-link:hover {
	background: #5a7030;
	border-color: #5a7030;
	color: #fff !important;
	text-decoration: none !important;
}

/* --- 診療スケジュール --- */
.access-content .topSchedule {
	width: 100%;
	max-width: 680px;
	margin: 0 auto;
}
.access-content .topSchedule-table {
	width: 100%;
	border-collapse: collapse;
	margin-top: 8px;
	display: table;
}
.access-content .topSchedule-table th,
.access-content .topSchedule-table td {
	border: 1px solid #d6dcc7;
	padding: 10px 6px;
	text-align: center;
	font-size: 14px;
	color: var(--c-text);
}
.access-content .topSchedule-table thead th {
	background: #a8d068;
	color: #fff;
	font-weight: bold;
}
.access-content .topSchedule-table tbody td.time-col {
	background: #f0f8d0;
	font-weight: bold;
	white-space: nowrap;
	text-align: left;
	padding-left: 12px;
	color: var(--c-accent);
}

/* テーブル下部 */
.access-content .topSchedule-bottom {
	display: flex;
	flex-direction: column;
	margin-top: 14px;
	gap: 10px;
}
.access-content .topSchedule-meta {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px;
	font-size: 13px;
}
.access-content .topSchedule-meta .closed-label {
	color: var(--c-primary);
	font-weight: bold;
	margin-right: 4px;
	font-size: 14px;
}
.access-content .topSchedule-meta .closed-days {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: #99c14c;
	color: #fff;
	border-radius: 50%;
	width: 53px;
	height: 53px;
	font-size: 14px;
	font-weight: bold;
	white-space: nowrap;
	letter-spacing: 0;
}
.access-content .topSchedule-meta .closed-days--emphasis {
	font-size: 11px;
}
.access-content .topSchedule-sub {
	display: flex;
	flex-direction: column;
	gap: 4px;
}
.access-content .topSchedule-sub .time-info {
	font-size: 15px;
	color: var(--c-text);
}
.access-content .topSchedule-sub .time-info strong {
	font-size: 16px;
	color: var(--c-accent);
}
.access-content .topSchedule-note {
	font-size: 13px;
	color: #707070;
	line-height: 1.7;
}

/* --- 2カラム（電車/車） --- */
.access-content .access-two-col {
	display: flex;
	flex-direction: column;
	gap: 24px;
	margin: 30px 0;
}
.access-content .access-two-col-item {
	flex: 1;
	padding: 0;
}
.access-content .access-two-col-heading {
	font-size: 17px;
	font-weight: bold;
	color: var(--c-accent);
	margin-bottom: 14px;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	text-align: center;
}
.access-content .access-two-col-heading .access-icon {
	width: 36px;
	height: 36px;
	flex-shrink: 0;
	color: var(--c-primary);
}
.access-content .access-two-col-item p {
	font-size: 15px;
	line-height: 1.9;
	color: var(--c-text);
	margin-bottom: 0.6em;
	text-align: center;
}
.access-content .access-two-col-item p:last-child {
	margin-bottom: 0;
}

/* --- Google Map --- */
.access-content .map-container {
	width: 100%;
	margin: 20px 0;
}
.access-content .map-container iframe {
	width: 100%;
	height: 400px;
	border: 0;
	border-radius: 6px;
}

/* --- 写真 --- */
.access-content .clinic-photo {
	width: 100%;
	aspect-ratio: 4 / 3;
	background: #f0f8d0;
	border-radius: 12px;
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
}
.access-content .clinic-photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/* --- 3Dカードフリップ（2枚スライド） --- */
.access-content .clinic-photo-3d {
	width: 100%;
	aspect-ratio: 3 / 2;
	perspective: 1400px;
}
.access-content .clinic-photo-3d-inner {
	position: relative;
	width: 100%;
	height: 100%;
	transform-style: preserve-3d;
	animation: clinic-photo-flip 8s infinite ease-in-out;
}
.access-content .clinic-photo-3d-face {
	position: absolute;
	inset: 0;
	border-radius: 12px;
	overflow: hidden;
	backface-visibility: hidden;
	-webkit-backface-visibility: hidden;
	box-shadow: 0 6px 20px rgba(94, 133, 32, 0.12);
	background: #f0f8d0;
}
.access-content .clinic-photo-3d-face img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.access-content .clinic-photo-3d-face--back {
	transform: rotateY(180deg);
}

@keyframes clinic-photo-flip {
	0%, 45%   { transform: rotateY(0deg); }
	55%, 95%  { transform: rotateY(180deg); }
	100%      { transform: rotateY(360deg); }
}

/* モーション控えめ設定の場合は静止 */
@media (prefers-reduced-motion: reduce) {
	.access-content .clinic-photo-3d-inner {
		animation: none;
	}
}

/* --- 医院情報レイアウト --- */
.access-content .access-info-grid {
	display: flex;
	flex-direction: column;
	gap: 24px;
	align-items: stretch;
}

/* ================================================================
   タブレット以上（768px+）
   ================================================================ */
@media (min-width: 768px) {
	.access-content .page-text h3 {
		font-size: 20px;
		margin: 40px 0 20px;
	}
	.access-content .topSchedule-table th,
	.access-content .topSchedule-table td {
		padding: 12px 10px;
		font-size: 14px;
	}
	.access-content .access-info-grid {
		flex-direction: row;
		gap: 30px;
	}
	.access-content .access-info-grid > * {
		flex: 1;
		min-width: 280px;
	}
	.access-content .access-two-col {
		flex-direction: row;
		gap: 40px;
	}
}

/* ================================================================
   デスクトップ（1024px+）
   ================================================================ */
@media (min-width:1164px){
	.access-content .map-container iframe {
		height: 450px;
	}
}

/* ================================================================
   院内ギャラリー（1大＋2×2小）
   ================================================================ */
.access-content .access-gallery {
	display: grid;
	grid-template-columns: 1fr;
	gap: 14px;
	margin: 0 auto;
}
.access-content .access-gallery-item {
	position: relative;
	margin: 0;
	overflow: hidden;
	border-radius: 6px;
	background: #f0f8d0;
	aspect-ratio: 4 / 3;
}
.access-content .access-gallery-item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.45s ease;
}
.access-content .access-gallery-item:hover img {
	transform: scale(1.04);
}
.access-content .access-gallery-caption {
	position: absolute;
	left: 14px;
	bottom: 14px;
	padding: 8px 14px 6px;
	background: #fff;
	border-radius: 2px;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 1px;
	min-width: 88px;
}
.access-content .access-gallery-caption-ja {
	font-size: 14px;
	font-weight: 700;
	color: var(--c-text);
	letter-spacing: 0.06em;
	line-height: 1.2;
}
.access-content .access-gallery-caption-en {
	font-family: 'Crimson Text', 'Cormorant Garamond', serif;
	font-style: italic;
	font-size: 13px;
	color: var(--c-primary);
	letter-spacing: 0.05em;
	line-height: 1.3;
}

/* タブレット以上：1大＋2×2小 */
@media (min-width: 768px) {
	.access-content .access-gallery {
		grid-template-columns: 1.4fr 1fr 1fr;
		grid-template-rows: 1fr 1fr;
		gap: 18px;
	}
	.access-content .access-gallery-item--large {
		grid-column: 1;
		grid-row: 1 / span 2;
		aspect-ratio: auto;
	}
	.access-content .access-gallery-caption {
		left: 18px;
		bottom: 18px;
		padding: 10px 18px 8px;
		min-width: 110px;
	}
	.access-content .access-gallery-caption-ja {
		font-size: 16px;
	}
	.access-content .access-gallery-caption-en {
		font-size: 14px;
	}
}

/* 医院名のプレフィックス（内科・循環器・糖尿病の） */
.access-content .clinic-name-prefix {
	display: block;
	font-size: 0.85em;
	color: var(--c-text);
	letter-spacing: 0.04em;
	margin-bottom: 4px;
	line-height: 1.4;
}

/* ================================================================
   院内紹介ページ （旧 clinic-content.css）
   ================================================================ */
/* ================================================================
   clinic.html 本文ブロック用スタイル
   ※ 再診カード類は visit-content.css の bring/reserve/payment を流用
   ================================================================ */

.clinic-content .clinic-block {
	margin-bottom: 60px;
}
.clinic-content .clinic-block:last-child {
	margin-bottom: 0;
}

.clinic-content .clinic-lead {
	text-align: center;
	color: var(--c-text);
	line-height: 1.9;
	font-size: 15px;
	margin-bottom: 8px;
}
@media (min-width: 768px) {
	.clinic-content .clinic-lead { font-size: 16px; }
}

/* --- FACILITY: 設備カード（画像付き） --- */
.clinic-content .facility-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 20px;
	margin-top: 24px;
}
.clinic-content .facility-card {
	background: #fff;
	border: 1px solid #dcec9e;
	border-radius: 12px;
	overflow: hidden;
	display: flex;
	flex-direction: column;
}
.clinic-content .facility-img {
	width: 100%;
	aspect-ratio: 3 / 2;
	background: #f0f8d0;
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
}
.clinic-content .facility-img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.clinic-content .facility-body {
	padding: 18px 20px 22px;
}
.clinic-content .facility-title {
	font-size: 16px;
	font-weight: 700;
	color: var(--c-accent);
	margin: 0 0 8px;
	letter-spacing: 0.04em;
	line-height: 1.4;
}
.clinic-content .facility-desc {
	font-size: 14px;
	color: var(--c-text);
	line-height: 1.8;
	margin: 0;
}

@media (min-width: 768px) {
	.clinic-content .facility-grid {
		grid-template-columns: repeat(2, 1fr);
		gap: 24px;
	}
	.clinic-content .facility-body { padding: 22px 24px 26px; }
	.clinic-content .facility-title { font-size: 17px; }
	.clinic-content .facility-desc { font-size: 15px; }
}
@media (min-width:1164px){
	.clinic-content .facility-grid {
		grid-template-columns: repeat(3, 1fr);
	}
}

/* --- SPECIALTY: 診療内容カード --- */
.clinic-content .specialty-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 14px;
	margin-top: 24px;
}
.clinic-content .specialty-card {
	background: #fff;
	border: 1px solid #dcec9e;
	border-radius: 12px;
	padding: 22px 16px 20px;
	text-align: center;
	transition: box-shadow 0.25s, transform 0.25s;
}
.clinic-content .specialty-card:hover {
	box-shadow: 0 6px 18px rgba(94, 133, 32, 0.10);
	transform: translateY(-2px);
}
.clinic-content .specialty-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 64px;
	height: 64px;
	margin: 0 auto 12px;
	background: #f0f8d0;
	border-radius: 50%;
}
.clinic-content .specialty-icon img {
	width: 36px;
	height: 36px;
}
.clinic-content .specialty-title {
	font-size: 15px;
	font-weight: 700;
	color: var(--c-accent);
	margin: 0 0 6px;
	letter-spacing: 0.04em;
}
.clinic-content .specialty-desc {
	font-size: 12px;
	color: #7a8a5a;
	line-height: 1.6;
	margin: 0;
}

@media (min-width: 768px) {
	.clinic-content .specialty-grid {
		grid-template-columns: repeat(4, 1fr);
		gap: 18px;
	}
	.clinic-content .specialty-card {
		padding: 28px 16px 22px;
	}
	.clinic-content .specialty-icon {
		width: 72px;
		height: 72px;
	}
	.clinic-content .specialty-icon img {
		width: 40px;
		height: 40px;
	}
	.clinic-content .specialty-title { font-size: 16px; }
	.clinic-content .specialty-desc { font-size: 13px; }
}

/* --- GROUP: 関連クリニック --- */
.clinic-content .group-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 14px;
	margin-top: 24px;
}
.clinic-content .group-card {
	display: flex;
	align-items: center;
	gap: 16px;
	padding: 16px 18px;
	background: #fff;
	border: 1px solid #dcec9e;
	border-radius: 10px;
	color: var(--c-text);
	text-decoration: none;
	transition: box-shadow 0.25s, transform 0.25s;
}
.clinic-content .group-card:hover {
	box-shadow: 0 6px 16px rgba(94, 133, 32, 0.10);
	transform: translateY(-2px);
	opacity: 1;
}
.clinic-content .group-card-img {
	flex-shrink: 0;
	width: 96px;
	height: 60px;
	background: #f0f8d0;
	border-radius: 6px;
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
}
.clinic-content .group-card-img img {
	max-width: 100%;
	max-height: 100%;
	object-fit: contain;
}
.clinic-content .group-card-text {
	flex: 1;
	min-width: 0;
}
.clinic-content .group-card-name {
	font-size: 14px;
	font-weight: 700;
	color: var(--c-accent);
	margin: 0 0 4px;
	letter-spacing: 0.03em;
	line-height: 1.4;
}
.clinic-content .group-card-meta {
	font-size: 12px;
	color: #7a8a5a;
	margin: 0;
}
.clinic-content .group-card-arrow {
	flex-shrink: 0;
	color: var(--c-primary);
	font-size: 18px;
}

@media (min-width: 768px) {
	.clinic-content .group-grid {
		grid-template-columns: repeat(2, 1fr);
		gap: 18px;
	}
	.clinic-content .group-card { padding: 18px 22px; }
	.clinic-content .group-card-img { width: 110px; height: 68px; }
	.clinic-content .group-card-name { font-size: 15px; }
}

/* ================================================================
   診療内容ページ （旧 medical-content.css）
   ================================================================ */
/* ================================================================
   診療内容ページ共通スタイル（naika.html / junkanki.html / 他 9 ページで共有）
   ※ 見出し・ヘッダー・フッターは kodaira CSS（style.css）に従う
   ================================================================ */

/* --- セクション間隔 --- */
.medical-content .medical-block {
	margin-bottom: 60px;
}
.medical-content .medical-block:last-child {
	margin-bottom: 0;
}

/* --- ヒーロー画像（見出し直下・500×500 正方形） --- */
.medical-content .medical-hero-image {
	margin: 0 auto 30px;
	max-width: 500px;
	width: 100%;
	aspect-ratio: 1 / 1;
	border-radius: 10px;
	overflow: hidden;
	background: #f0f8d0;
}
.medical-content .medical-hero-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
@media (min-width: 768px) {
	.medical-content .medical-hero-image {
		margin: 0 auto 40px;
		border-radius: 12px;
	}
}

/* --- 左テキスト + 右画像 レイアウト --- */
.medical-content .medical-about-flex {
	display: grid;
	grid-template-columns: 1fr;
	gap: 24px;
}
.medical-content .medical-about-flex .medical-about-image {
	border-radius: 10px;
	overflow: hidden;
	background: #f4f8eb;
}
.medical-content .medical-about-flex .medical-about-image img {
	width: 100%;
	height: auto;
	display: block;
}
@media (min-width: 768px) {
	.medical-content .medical-about-flex {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
		gap: 40px;
		align-items: start;
	}
	.medical-content .medical-about-flex .medical-about-image {
		border-radius: 12px;
	}
}
@media (min-width:1164px){
	.medical-content .medical-about-flex {
		gap: 56px;
	}
}

/* --- 本文領域：自由レイアウト用 --- */
.medical-content .medical-body {
	font-size: 15px;
	line-height: 1.95;
	color: var(--c-text);
	text-align: left;
}
.medical-content .medical-body > * + * {
	margin-top: 1.2em;
}

@media (min-width: 768px) {
	.medical-content .medical-body {
		font-size: 16px;
		line-height: 2.0;
	}
}

/* --- 本文内の見出し --- */
.medical-content .medical-body h3 {
	font-size: 18px;
	font-weight: 700;
	color: var(--c-accent);
	border-left: 4px solid #a8d068;
	padding: 4px 0 4px 14px;
	margin: 40px 0 18px;
	line-height: 1.5;
	letter-spacing: 0.04em;
}
.medical-content .medical-body h3:first-child { margin-top: 0; }

.medical-content .medical-body h4 {
	font-size: 16px;
	font-weight: 700;
	color: var(--c-accent);
	margin: 30px 0 12px;
	padding-bottom: 6px;
	border-bottom: 1px dashed #d6dcc7;
	letter-spacing: 0.03em;
}

@media (min-width: 768px) {
	.medical-content .medical-body h3 {
		font-size: 20px;
		margin: 50px 0 22px;
	}
	.medical-content .medical-body h4 {
		font-size: 17px;
	}
}

/* --- 段落 --- */
.medical-content .medical-body p {
	margin: 0 0 1em;
}

/* --- リスト --- */
.medical-content .medical-body ul,
.medical-content .medical-body ol {
	margin: 0 0 1.2em;
	padding-left: 0;
	list-style: none;
}
.medical-content .medical-body ul li {
	position: relative;
	padding-left: 24px;
	margin-bottom: 8px;
	line-height: 1.85;
}
.medical-content .medical-body ul li::before {
	content: "";
	position: absolute;
	left: 6px;
	top: 0.7em;
	width: 8px;
	height: 8px;
	background: #a8d068;
	border-radius: 50%;
}
.medical-content .medical-body ol {
	counter-reset: medical-counter;
	padding-left: 0;
}
.medical-content .medical-body ol li {
	position: relative;
	padding-left: 32px;
	margin-bottom: 10px;
	line-height: 1.85;
	counter-increment: medical-counter;
}
.medical-content .medical-body ol li::before {
	content: counter(medical-counter);
	position: absolute;
	left: 0;
	top: 4px;
	width: 22px;
	height: 22px;
	background: var(--c-primary);
	color: #fff;
	border-radius: 50%;
	font-size: 12px;
	font-weight: 700;
	display: flex;
	align-items: center;
	justify-content: center;
	line-height: 1;
}
.medical-content .medical-body li > ul,
.medical-content .medical-body li > ol {
	margin-top: 8px;
	margin-bottom: 8px;
}

/* --- 強調 --- */
.medical-content .medical-body strong {
	color: var(--c-accent);
	font-weight: 700;
}

/* --- リンク --- */
.medical-content .medical-body a {
	color: var(--c-accent);
	text-decoration: underline;
	text-decoration-color: rgba(136, 192, 48, 0.4);
	text-underline-offset: 3px;
	transition: color 0.2s, text-decoration-color 0.2s;
}
.medical-content .medical-body a:hover {
	color: var(--c-primary);
	text-decoration-color: var(--c-primary);
	opacity: 1;
}

/* --- 引用 / 補足ノート --- */
.medical-content .medical-body blockquote,
.medical-content .medical-body .medical-note {
	margin: 24px 0;
	padding: 16px 20px;
	background: #f0f8d0;
	border-left: 3px solid #a8d068;
	border-radius: 0 6px 6px 0;
	font-size: 14px;
	color: var(--c-text);
	line-height: 1.85;
}
.medical-content .medical-body blockquote p:last-child,
.medical-content .medical-body .medical-note p:last-child { margin-bottom: 0; }

@media (min-width: 768px) {
	.medical-content .medical-body blockquote,
	.medical-content .medical-body .medical-note {
		font-size: 15px;
		padding: 18px 24px;
	}
}

/* --- 表 --- */
.medical-content .medical-body table {
	width: 100%;
	border-collapse: collapse;
	margin: 24px 0;
	font-size: 14px;
}
.medical-content .medical-body thead th {
	background: #a8d068;
	color: #fff;
	padding: 10px 12px;
	text-align: center;
	font-weight: 700;
	border: 1px solid #a8d068;
}
.medical-content .medical-body tbody th {
	background: #f0f8d0;
	color: var(--c-accent);
	padding: 10px 12px;
	font-weight: 700;
	border: 1px solid #d6dcc7;
	text-align: left;
	white-space: nowrap;
}
.medical-content .medical-body tbody td {
	padding: 10px 12px;
	border: 1px solid #d6dcc7;
	color: var(--c-text);
}

@media (max-width: 767px) {
	.medical-content .medical-body table {
		display: block;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
	}
}

/* --- 画像 --- */
.medical-content .medical-body img {
	max-width: 100%;
	height: auto;
	border-radius: 8px;
	display: block;
	margin: 16px 0;
}

/* ================================================================
   洗練された画像レイアウト（複数の医療ページで使用可能）
   ================================================================ */

/* --- イントロ：テキスト + ヒーロー画像の横並び --- */
.medical-content .medical-intro {
	display: flex;
	flex-direction: column-reverse;
	gap: 24px;
	margin-bottom: 16px;
}
.medical-content .medical-intro-text { min-width: 0; }
.medical-content .medical-intro-image { margin: 0; }
.medical-content .medical-intro-image img {
	width: 100%;
	height: auto;
	margin: 0;
	border-radius: 14px;
	box-shadow: 0 10px 28px rgba(94, 133, 32, 0.14);
}
@media (min-width: 768px) {
	.medical-content .medical-intro {
		flex-direction: row;
		align-items: center;
		gap: 40px;
	}
	.medical-content .medical-intro-text { flex: 1.15; }
	.medical-content .medical-intro-image {
		flex: 0.85;
		max-width: 420px;
	}
	/* 画像を左に配置（テキストを右に） */
	.medical-content .medical-intro--reverse {
		flex-direction: row-reverse;
	}
}

/* --- セクション内図版（中央寄せ・影付き） --- */
.medical-content .medical-figure {
	margin: 32px auto;
	max-width: 560px;
	text-align: center;
}
.medical-content .medical-figure img {
	width: 100%;
	height: auto;
	margin: 0;
	border-radius: 12px;
	box-shadow: 0 8px 24px rgba(94, 133, 32, 0.12);
}
.medical-content .medical-figure figcaption,
.medical-content .medical-figure .caption {
	margin-top: 10px;
	font-size: 13px;
	color: #888;
	letter-spacing: 0.04em;
}
.medical-content .medical-figure--narrow { max-width: 380px; }
.medical-content .medical-figure--wide { max-width: 760px; }

/* --- セクション内：テキスト + 画像の横並び（イントロ流用） --- */
.medical-content .medical-side {
	display: flex;
	flex-direction: column;
	gap: 24px;
	margin: 16px 0;
}
.medical-content .medical-side-text { min-width: 0; }
.medical-content .medical-side-text p:last-child { margin-bottom: 0; }
.medical-content .medical-side-image { margin: 0; }
.medical-content .medical-side-image img {
	width: 100%;
	height: auto;
	margin: 0;
	border-radius: 12px;
	box-shadow: 0 8px 24px rgba(94, 133, 32, 0.12);
}
/* SP で画像→テキストの順に表示（画像を上、テキストを下） */
.medical-content .medical-side--image-large {
	flex-direction: column-reverse;
}
@media (min-width: 768px) {
	.medical-content .medical-side {
		flex-direction: row;
		align-items: center;
		gap: 36px;
	}
	.medical-content .medical-side-text { flex: 1.2; }
	.medical-content .medical-side-image {
		flex: 0.8;
		max-width: 380px;
	}
	/* 画像を少し小さく（縦長画像など） */
	.medical-content .medical-side-image--small {
		flex: 0.55;
		max-width: 280px;
	}
	/* 画像を左に配置 */
	.medical-content .medical-side--reverse {
		flex-direction: row-reverse;
	}
	/* 画像側を大きく（テキストより画像を強調したい場合） */
	.medical-content .medical-side--image-large {
		flex-direction: row;
	}
	.medical-content .medical-side--image-large .medical-side-text {
		flex: 0.85;
	}
	.medical-content .medical-side--image-large .medical-side-image {
		flex: 1.15;
		max-width: 480px;
	}
}

/* --- 診断テスト（番号付きカード式） --- */
.medical-content .medical-body .medical-quiz {
	list-style: none !important;
	padding: 0 !important;
	margin: 24px 0 !important;
	display: grid;
	gap: 10px;
	counter-reset: none;
}
.medical-content .medical-body .medical-quiz > li.medical-quiz-item {
	display: flex;
	align-items: flex-start;
	gap: 14px;
	padding: 16px 18px;
	margin: 0;
	background: #fbfdf3;
	border: 1px solid #dcec9e;
	border-radius: 10px;
	counter-increment: none;
	position: static;
	padding-left: 18px;
	line-height: 1.7;
	transition: background 0.25s, border-color 0.25s, box-shadow 0.25s;
}
.medical-content .medical-body .medical-quiz > li.medical-quiz-item:hover {
	background: #f4f8eb;
	border-color: #a8d068;
	box-shadow: 0 4px 14px rgba(94, 133, 32, 0.08);
}
.medical-content .medical-body .medical-quiz > li.medical-quiz-item::before {
	display: none;
	content: none;
}
.medical-content .medical-body .medical-quiz-num {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 38px;
	height: 36px;
	padding: 0 10px;
	background: linear-gradient(135deg, var(--c-primary) 0%, var(--c-accent) 100%);
	color: #fff;
	font-family: 'Marcellus SC', serif;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 0.04em;
	border-radius: 8px;
	box-shadow: 0 2px 6px rgba(94, 133, 32, 0.18);
}
.medical-content .medical-body .medical-quiz-body {
	flex: 1;
	min-width: 0;
}
.medical-content .medical-body .medical-quiz-q {
	margin: 6px 0 0 !important;
	font-size: 15px;
	color: var(--c-text);
	line-height: 1.75;
}
.medical-content .medical-body .medical-quiz-sub {
	margin-top: 12px;
	padding: 12px 16px;
	background: #f3eedd;
	border-radius: 6px;
}
.medical-content .medical-body .medical-quiz-sub p {
	margin: 0 !important;
	font-size: 13px;
	color: #7a6a4a;
	line-height: 1.75;
}

/* 強調赤色テキスト（テスト基準の強調） */
/* 料金リスト */
.medical-content .medical-body .medical-price-list {
	list-style: none !important;
	padding: 0 !important;
	margin: 20px 0 !important;
}
.medical-content .medical-body .medical-price-list li {
	display: flex !important;
	justify-content: space-between;
	align-items: center;
	padding: 16px 10px;
	border-bottom: 1px solid #e0ebb0;
	margin: 0 !important;
}
.medical-content .medical-body .medical-price-list li:first-child {
	border-top: 1px solid #e0ebb0;
}
.medical-content .medical-body .medical-price-list li::before {
	display: none !important;
	content: none !important;
}
.medical-price-label {
	font-weight: 700;
	color: var(--c-dark);
}
.medical-price-label small {
	display: inline-block;
	margin-left: 8px;
	font-size: 12px;
	color: #999;
	font-weight: 400;
}
.medical-price-value {
	text-align: right;
	white-space: nowrap;
}
.medical-price-value strong {
	font-size: 20px;
	font-weight: 700;
	color: var(--c-accent);
}
.medical-price-value small {
	font-size: 12px;
	color: #999;
	margin-left: 2px;
}

.medical-content .medical-body .medical-emph-red {
	color: #d04444;
	font-weight: 700;
	border-bottom: 1px solid rgba(208, 68, 68, 0.45);
	padding-bottom: 1px;
}

/* 小さい注釈 */
.medical-content .medical-body .medical-note-small {
	margin-top: 22px !important;
	font-size: 13px;
	color: #888;
	line-height: 1.85;
}

@media (min-width: 768px) {
	.medical-content .medical-body .medical-quiz {
		gap: 12px;
	}
	.medical-content .medical-body .medical-quiz > li.medical-quiz-item {
		padding: 20px 24px;
		gap: 20px;
	}
	.medical-content .medical-body .medical-quiz-num {
		min-width: 46px;
		height: 42px;
		font-size: 16px;
	}
	.medical-content .medical-body .medical-quiz-q {
		font-size: 16px;
	}
	.medical-content .medical-body .medical-note-small {
		font-size: 14px;
	}
}

/* --- 要件ボックス（禁煙外来などの「以下の要件」用のクリーム色ボックス） --- */
.medical-content .medical-body .medical-requirements {
	margin: 18px 0 22px;
	padding: 22px 26px;
	background: #f3eedd;
	border-radius: 8px;
}
.medical-content .medical-body .medical-requirements ul {
	margin: 0;
	padding: 0;
	list-style: none;
}
.medical-content .medical-body .medical-requirements ul li {
	position: relative;
	padding-left: 22px;
	margin-bottom: 12px;
	line-height: 1.75;
}
.medical-content .medical-body .medical-requirements ul li:last-child {
	margin-bottom: 0;
}
.medical-content .medical-body .medical-requirements ul li::before {
	content: "";
	position: absolute;
	left: 4px;
	top: 0.65em;
	width: 8px;
	height: 8px;
	background: var(--c-orange);
	border-radius: 50%;
}
@media (min-width: 768px) {
	.medical-content .medical-body .medical-requirements {
		padding: 26px 32px;
	}
}

/* --- 計算式・数式の強調ボックス --- */
.medical-content .medical-body .medical-formula {
	margin: 0 auto 16px;
	padding: 22px 24px;
	max-width: 500px;
	background: linear-gradient(135deg, #f0f8d0 0%, #fbfdf3 100%);
	border: 1.5px dashed var(--c-primary);
	border-radius: 12px;
	text-align: center;
}
/* medical-side 内ではコラム幅いっぱいに */
.medical-content .medical-body .medical-side .medical-formula {
	max-width: 100%;
	margin: 0 0 16px;
}
.medical-content .medical-body .medical-formula-label {
	font-size: 12px;
	color: var(--c-accent);
	letter-spacing: 0.12em;
	margin: 0 0 10px;
	font-family: 'Marcellus SC', serif;
}
.medical-content .medical-body .medical-formula-equation {
	font-size: 22px;
	font-weight: 700;
	color: #3d4f1f;
	letter-spacing: 0.04em;
	margin: 0;
	line-height: 1.5;
}
.medical-content .medical-body .medical-formula-equation sup {
	font-size: 14px;
	color: var(--c-accent);
}
@media (min-width: 768px) {
	.medical-content .medical-body .medical-formula-equation {
		font-size: 26px;
	}
}

/* --- 治療法ブロック（背景つきカード型 / 画像 + 見出し + 本文） --- */
.medical-content .medical-treatment {
	margin: 28px 0 36px;
	padding: 28px 24px 22px;
	background: linear-gradient(180deg, #fbfdf3 0%, #f4f8eb 100%);
	border: 1px solid #dcec9e;
	border-radius: 14px;
	position: relative;
	overflow: hidden;
}
.medical-content .medical-treatment::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 4px;
	height: 100%;
	background: linear-gradient(180deg, var(--c-primary) 0%, var(--c-accent) 100%);
	z-index: 1;
}
.medical-content .medical-treatment-figure {
	margin: 0 0 18px;
	border-radius: 10px;
	overflow: hidden;
	box-shadow: 0 6px 18px rgba(94, 133, 32, 0.14);
}
.medical-content .medical-treatment-figure img {
	width: 100%;
	height: auto;
	margin: 0;
	display: block;
	border-radius: 0;
	aspect-ratio: 3 / 2;
	object-fit: cover;
}
.medical-content .medical-treatment-content {
	min-width: 0;
}
.medical-content .medical-treatment h4 {
	margin: 0 0 14px !important;
	padding: 0 !important;
	border: none !important;
	font-size: 18px !important;
	color: var(--c-accent);
	letter-spacing: 0.06em;
	display: flex;
	align-items: center;
	gap: 10px;
}
.medical-content .medical-treatment h4::before {
	content: '';
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--c-primary);
	flex-shrink: 0;
}
.medical-content .medical-treatment p {
	color: #444;
}
.medical-content .medical-treatment p:last-child {
	margin-bottom: 0;
}

/* PC：画像と文章を左右に並べる（交互レイアウト） */
@media (min-width: 768px) {
	.medical-content .medical-treatment {
		padding: 36px 36px 32px;
		display: flex;
		align-items: center;
		gap: 36px;
	}
	.medical-content .medical-treatment-figure {
		flex: 0 0 40%;
		max-width: 360px;
		margin: 0;
	}
	.medical-content .medical-treatment-content {
		flex: 1;
	}
	.medical-content .medical-treatment h4 {
		font-size: 20px !important;
	}
	/* 交互レイアウト：--reverse で画像を右に */
	.medical-content .medical-treatment--reverse {
		flex-direction: row-reverse;
	}
}

/* --- 関連する診療内容（ページ末尾） ogawa medical.html スタイル / こだいら色 --- */
.medical-content .medical-related {
	margin-top: 80px;
	padding: 40px 24px 50px;
	background: #f0f8d0;
	border-radius: 12px;
}
.medical-content .medical-related-head {
	text-align: center;
	margin-bottom: 14px;
}
.medical-content .medical-related-tag {
	display: inline-block;
	font-family: 'Marcellus SC', serif;
	font-size: 11px;
	color: var(--c-primary);
	letter-spacing: 0.18em;
	margin-bottom: 6px;
	font-weight: 700;
}
.medical-content .medical-related-title {
	font-family: 'Noto Serif JP', serif;
	font-size: 18px;
	font-weight: 500;
	color: var(--c-accent);
	margin: 0;
	letter-spacing: 0.08em;
}

/* リスト */
.medical-content .medical-list {
	list-style: none;
	margin: 0 auto 30px;
	padding: 0;
	max-width: 100%;
}
.medical-content .medical-list-item {
	margin: 0;
	padding: 0;
	border-bottom: 1px solid rgba(136, 192, 48, 0.4);
}
.medical-content .medical-list-item:first-child {
	border-top: 1px solid rgba(136, 192, 48, 0.4);
}
.medical-content .medical-list-link {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 22px 0;
	text-decoration: none;
	color: inherit;
	transition: color 0.3s ease;
}
.medical-content .medical-list-body {
	flex: 1;
	min-width: 0;
}
.medical-content .medical-list-name {
	display: block;
	margin: 0 0 6px;
	font-family: 'Noto Serif JP', serif;
	font-size: 17px;
	font-weight: 500;
	color: var(--c-accent);
	letter-spacing: 0.05em;
	line-height: 1.3;
	transition: color 0.3s ease;
}
.medical-content .medical-list-link:hover .medical-list-name {
	color: var(--c-primary);
}
.medical-content .medical-list-desc {
	margin: 0;
	font-size: 14px;
	line-height: 1.75;
	color: var(--c-text);
	letter-spacing: 0.04em;
}

/* MORE 円 */
.medical-content .medical-list-arrow {
	flex-shrink: 0;
	width: 70px;
	height: 70px;
	display: grid;
	place-items: center;
	border-radius: 50%;
	background: #fff;
	border: 1px solid #a8d068;
	transition: background 0.35s ease, border-color 0.35s ease;
}
.medical-content .medical-list-arrow::before {
	content: "MORE";
	font-family: 'Marcellus SC', serif;
	font-size: 11px;
	font-weight: 500;
	color: var(--c-primary);
	letter-spacing: 0.12em;
	transition: color 0.35s ease;
}
.medical-content .medical-list-link:hover .medical-list-arrow {
	background: var(--c-primary);
	border-color: var(--c-primary);
}
.medical-content .medical-list-link:hover .medical-list-arrow::before {
	color: #fff;
}

/* 戻るボタン */
.medical-content .medical-related-back {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 12px 30px;
	border: 1px solid var(--c-accent);
	border-radius: 999px;
	font-size: 13px;
	color: var(--c-accent);
	text-decoration: none;
	background: #fff;
	font-weight: 500;
	letter-spacing: 0.06em;
	margin: 0 auto;
	transition: background 0.25s, color 0.25s;
}
.medical-content .medical-related-back-wrap {
	text-align: center;
	padding-top: 24px;
}
.medical-content .medical-related-back:hover {
	background: var(--c-accent);
	color: #fff;
}
.medical-content .medical-related-back svg {
	width: 14px;
	height: 14px;
	transition: transform 0.25s;
}
.medical-content .medical-related-back:hover svg {
	transform: translateX(-3px);
}

/* タブレット以上：ジグザグレイアウト + 円ボタン拡大 */
@media (min-width: 768px) {
	.medical-content .medical-related {
		margin-top: 100px;
		padding: 50px 40px 60px;
		border-radius: 16px;
	}
	.medical-content .medical-related-tag {
		font-size: 12px;
	}
	.medical-content .medical-related-title {
		font-size: 22px;
	}
	.medical-content .medical-list-link {
		gap: 24px;
		padding: 32px 0;
	}
	.medical-content .medical-list-item:nth-child(odd) .medical-list-link {
		padding-right: 6%;
	}
	.medical-content .medical-list-item:nth-child(even) .medical-list-link {
		padding-left: 6%;
	}
	.medical-content .medical-list-name {
		margin-bottom: 10px;
		font-size: 22px;
		letter-spacing: 0.08em;
	}
	.medical-content .medical-list-desc {
		font-size: 14px;
		line-height: 1.85;
	}
	.medical-content .medical-list-arrow {
		width: 110px;
		height: 110px;
	}
	.medical-content .medical-list-arrow::before {
		font-size: 13px;
		letter-spacing: 0.16em;
	}
}

@media (min-width:1164px){
	.medical-content .medical-list-name {
		font-size: 25px;
	}
	.medical-content .medical-list-arrow {
		width: 130px;
		height: 130px;
	}
}

/* ================================================================
   理事長著書ブロック（ピンク背景・書影 + テキスト）
   ================================================================ */
.medical-content .medical-book {
	display: flex;
	flex-direction: column;
	gap: 24px;
	padding: 28px 22px;
	background: #fdf1f3;
	border-radius: 12px;
	border: 1px solid #f3d6dc;
}
.medical-content .medical-book-cover-wrap {
	display: flex;
	flex-direction: column;
	gap: 14px;
	align-items: center;
}
.medical-content .medical-book-cover {
	margin: 0;
	text-align: center;
	width: 100%;
}
.medical-content .medical-book-cover img {
	width: 100%;
	max-width: 480px;
	height: auto;
	margin: 0 auto;
	border-radius: 0;
	display: block;
	box-shadow: none;
	background: transparent;
}
.medical-content .medical-book-buy {
	margin: 0;
	text-align: center;
	width: 100%;
	max-width: 480px;
}
.medical-content .medical-book-buy a {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 12px 28px;
	background: #ff9900;
	color: #fff !important;
	text-decoration: none;
	border-radius: 999px;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 0.04em;
	box-shadow: 0 4px 12px rgba(255, 153, 0, 0.25);
	transition: background 0.25s, transform 0.25s, box-shadow 0.25s;
}
.medical-content .medical-book-buy a:hover {
	background: #e08800;
	color: #fff !important;
	transform: translateY(-1px);
	box-shadow: 0 6px 16px rgba(255, 153, 0, 0.35);
	text-decoration: none !important;
}
.medical-content .medical-book-buy a i {
	font-size: 12px;
}
.medical-content .medical-book-buy-note {
	display: block;
	margin-top: 8px;
	font-size: 12px;
	color: #888;
}
/* 慈映会ボタン（同形・色違い） */
.medical-content .medical-book-buy--jieikai a {
	background: var(--c-primary);
	box-shadow: 0 4px 12px rgba(136, 192, 48, 0.25);
}
.medical-content .medical-book-buy--jieikai a:hover {
	background: #6ea020;
	box-shadow: 0 6px 16px rgba(136, 192, 48, 0.35);
}
.medical-content .medical-book-body {
	min-width: 0;
}
.medical-content .medical-book-title {
	font-size: 18px;
	font-weight: 700;
	color: #c64a64;
	line-height: 1.55;
	margin: 0 0 16px !important;
	padding: 0 0 16px !important;
	border: none !important;
	border-bottom: 1px solid #f0bfc8 !important;
	letter-spacing: 0.02em;
}
.medical-content .medical-book-text p {
	color: var(--c-text);
	line-height: 1.9;
	margin: 0 0 1em;
}
.medical-content .medical-book-text p:last-child {
	margin-bottom: 0;
}

@media (min-width: 768px) {
	.medical-content .medical-book {
		flex-direction: row;
		align-items: flex-start;
		gap: 40px;
		padding: 40px 36px;
	}
	.medical-content .medical-book-cover-wrap {
		flex: 0 0 44%;
		max-width: 480px;
	}
	.medical-content .medical-book-title {
		font-size: 22px;
		margin: 0 0 20px !important;
		padding: 0 0 20px !important;
	}
}

/* --- 「症状からさがす」のような小見出しブロック --- */
.medical-content .medical-symptoms {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 10px;
	margin: 20px 0;
	padding: 0;
	list-style: none;
}
.medical-content .medical-symptoms li {
	background: #fff;
	border: 1px solid #dcec9e;
	border-radius: 8px;
	padding: 10px 14px;
	font-size: 14px;
	color: var(--c-text);
	text-align: center;
}
@media (min-width: 768px) {
	.medical-content .medical-symptoms {
		grid-template-columns: repeat(4, 1fr);
		gap: 12px;
	}
}

/* ================================================================
   診療案内ページ （旧 visit-content.css）
   ================================================================ */
/* ================================================================
   visit.html 本文ブロック用スタイル
   ※ 見出し・ヘッダー・フッターは kodaira CSS（style.css）に従う
   ================================================================ */

/* --- セクション間隔 --- */
.visit-content .visit-block {
	margin-bottom: 60px;
}
.visit-content .visit-block:last-child {
	margin-bottom: 0;
}

/* --- ご来院前のお願い: 2カード --- */
.visit-content .reserve-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 20px;
	margin-top: 20px;
}
.visit-content .reserve-card {
	background: #fff;
	border: 1px solid #dcec9e;
	border-radius: 12px;
	padding: 28px 24px;
	text-align: center;
	transition: box-shadow 0.25s, transform 0.25s;
}
.visit-content .reserve-card:hover {
	box-shadow: 0 8px 24px rgba(94, 133, 32, 0.10);
	transform: translateY(-2px);
}
.visit-content .reserve-card-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 64px;
	height: 64px;
	margin: 0 auto 14px;
	background: #f0f8d0;
	border-radius: 50%;
	color: var(--c-primary);
}
.visit-content .reserve-card-icon svg {
	width: 32px;
	height: 32px;
}
.visit-content .reserve-card-title {
	font-size: 17px;
	font-weight: 700;
	color: var(--c-accent);
	margin-bottom: 10px;
	letter-spacing: 0.05em;
}
.visit-content .reserve-card-body {
	font-size: 14px;
	color: var(--c-text);
	line-height: 1.8;
	margin-bottom: 18px;
}
.visit-content .reserve-card-action {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 12px 28px;
	font-size: 16px;
	font-weight: 700;
	color: #fff;
	background: var(--c-primary);
	border-radius: 28px;
	text-decoration: none;
	letter-spacing: 0.04em;
	transition: background 0.2s, opacity 0.2s;
}
.visit-content .reserve-card-action:hover {
	background: var(--c-accent);
	opacity: 1;
}
.visit-content .reserve-card-action--soon {
	background: #cdd8a3;
	color: #fff;
	cursor: not-allowed;
	pointer-events: none;
}
.visit-content .reserve-card-note {
	display: block;
	margin-top: 10px;
	font-size: 12px;
	color: #7a8a5a;
}

/* --- お持ちいただくもの: 4カード --- */
.visit-content .bring-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 16px;
	margin-top: 20px;
}
.visit-content .bring-card {
	background: #fff;
	border: 1px solid #dcec9e;
	border-radius: 10px;
	padding: 22px 18px 20px;
	text-align: center;
}
.visit-content .bring-card-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 52px;
	height: 52px;
	margin: 0 auto 12px;
	background: #f0f8d0;
	border-radius: 12px;
	color: var(--c-primary);
}
.visit-content .bring-card-icon svg {
	width: 28px;
	height: 28px;
}
.visit-content .bring-card-title {
	font-size: 16px;
	font-weight: 700;
	color: var(--c-accent);
	margin-bottom: 8px;
	letter-spacing: 0.03em;
	line-height: 1.4;
}
.visit-content .bring-card-note {
	font-size: 14px;
	color: #7a8a5a;
	line-height: 1.7;
}

.visit-content .visit-foot-note {
	margin-top: 24px;
	padding: 18px 22px;
	background: #f0f8d0;
	border-left: 3px solid #a8d068;
	border-radius: 0 6px 6px 0;
	font-size: 15px;
	color: var(--c-text);
	line-height: 1.9;
}
@media (min-width: 768px) {
	.visit-content .visit-foot-note {
		font-size: 16px;
		padding: 20px 26px;
	}
}

/* --- 施設基準など補足リンクボタン --- */
.visit-content .visit-info-link-wrap {
	margin-top: 24px;
	text-align: center;
}
.visit-content .visit-info-link {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 14px 28px;
	background: #fff;
	border: 1.5px solid var(--c-primary);
	color: var(--c-accent);
	border-radius: 32px;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-decoration: none;
	transition: background 0.2s, color 0.2s, transform 0.2s;
}
.visit-content .visit-info-link:hover {
	background: var(--c-primary);
	color: #fff;
	transform: translateY(-1px);
	opacity: 1;
}
.visit-content .visit-info-link svg {
	width: 16px;
	height: 16px;
	flex-shrink: 0;
}
@media (min-width: 768px) {
	.visit-content .visit-info-link {
		font-size: 15px;
		padding: 16px 36px;
	}
}

/* --- お支払い方法: 3カード --- */
.visit-content .payment-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 16px;
	margin-top: 20px;
}
.visit-content .payment-card {
	background: #fff;
	border: 1px solid #dcec9e;
	border-radius: 10px;
	padding: 22px 20px;
	text-align: center;
}
.visit-content .payment-card-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	margin: 0 auto 12px;
	background: #f0f8d0;
	border-radius: 50%;
	color: var(--c-primary);
}
.visit-content .payment-card-icon svg {
	width: 30px;
	height: 30px;
}
.visit-content .payment-card-title {
	font-size: 15px;
	font-weight: 700;
	color: var(--c-accent);
	margin-bottom: 6px;
	letter-spacing: 0.04em;
}
.visit-content .payment-card-note {
	font-size: 12px;
	color: #7a8a5a;
	line-height: 1.6;
}

/* ================================================================
   タブレット以上（768px+）
   ================================================================ */
@media (min-width: 768px) {
	.visit-content .reserve-grid {
		grid-template-columns: 1fr 1fr;
		gap: 28px;
	}
	.visit-content .reserve-card {
		padding: 36px 28px;
	}
	.visit-content .reserve-card-icon {
		width: 72px;
		height: 72px;
		margin-bottom: 18px;
	}
	.visit-content .reserve-card-icon svg {
		width: 36px;
		height: 36px;
	}
	.visit-content .reserve-card-title {
		font-size: 19px;
	}
	.visit-content .bring-grid {
		grid-template-columns: repeat(4, 1fr);
		gap: 20px;
	}
	.visit-content .bring-card {
		padding: 28px 18px 22px;
	}
	.visit-content .bring-card-title {
		font-size: 17px;
	}
	.visit-content .bring-card-note {
		font-size: 14px;
	}
	.visit-content .payment-grid {
		grid-template-columns: repeat(3, 1fr);
		gap: 24px;
	}
	.visit-content .payment-card {
		padding: 32px 20px 26px;
	}
	.visit-content .payment-card-icon {
		width: 64px;
		height: 64px;
		margin-bottom: 16px;
	}
	.visit-content .payment-card-icon svg {
		width: 34px;
		height: 34px;
	}
	.visit-content .payment-card-title {
		font-size: 17px;
	}
}

/* ================================================================
   症状ページ （旧 symptom-content.css）
   ================================================================ */
/* ================================================================
   症状ページ専用スタイル
   - 症状詳細ページ（mune_itami.html / doki.html 他 12ページ）
   - 症状一覧ページ（symptoms.html）
   で共有
   ================================================================ */

/* ----------------------------------------------------------------
   症状詳細ページ：本文ブロック（テキスト＋画像の横並びレイアウト）
   ---------------------------------------------------------------- */
.medical-content .symptom-detail .symptom-body-flex {
	display: flex;
	flex-direction: column;
	gap: 30px;
	max-width: 1000px;
	margin: 0 auto;
}
.medical-content .symptom-detail .symptom-body-text {
	flex: 1;
	min-width: 0;
}
.medical-content .symptom-detail .symptom-body-text p {
	font-size: 15px;
	line-height: 2;
	letter-spacing: 0.06em;
	color: #444;
	margin-bottom: 1.5em;
}
.medical-content .symptom-detail .symptom-body-image {
	flex-shrink: 0;
	width: 100%;
}
.medical-content .symptom-detail .symptom-body-image img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 8px;
}

/* タブレット以上：テキスト左 / 画像右の横並び */
@media (min-width: 768px) {
	.medical-content .symptom-detail .symptom-body-flex {
		flex-direction: row;
		align-items: flex-start;
		gap: 48px;
	}
	.medical-content .symptom-detail .symptom-body-text p {
		font-size: 16px;
		line-height: 2.1;
	}
	.medical-content .symptom-detail .symptom-body-image {
		width: 38%;
		max-width: 380px;
	}
}

/* ----------------------------------------------------------------
   症状詳細ページ：下部「症状から探す」ボタングリッド
   - TOPと同スタイル（.top-symp .symptom-grid を再利用）
   ---------------------------------------------------------------- */
.page-symptom-related {
	background: #fff;
	padding: 60px 0 30px;
}
.page-symptom-related .heading-2 {
	text-align: center;
	margin-bottom: 30px;
}
.page-symptom-related .heading-2 p {
	font-family: 'Marcellus SC', serif;
	font-size: 25px;
	letter-spacing: 0.1em;
	color: var(--c-orange);
	margin: 0;
}
.page-symptom-related .heading-2 p:first-letter {
	font-size: 1.25em;
}
.page-symptom-related .heading-2 h2 {
	font-size: 20px;
	font-weight: normal;
	margin-top: 20px;
	letter-spacing: 0.04em;
}
@media (min-width: 768px) {
	.page-symptom-related {
		padding: 80px 0 40px;
	}
	.page-symptom-related .heading-2 p {
		font-size: 38px;
	}
}

/* 現在のページ（アクティブ）状態 */
.top-symp .symptom-item.is-current {
	background: #f0f8d0;
	pointer-events: none;
}
.top-symp .symptom-item.is-current .symptom-name {
	color: var(--c-accent);
	font-weight: 600;
}

/* ----------------------------------------------------------------
   症状詳細ページ：戻るボタン（.medical-content 外配置）
   ---------------------------------------------------------------- */
.symptom-back-wrap {
	text-align: center;
	padding: 20px 0 60px;
}
.symptom-back-wrap .medical-related-back {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 12px 30px;
	border: 1px solid var(--c-accent);
	border-radius: 999px;
	font-size: 13px;
	color: var(--c-accent);
	text-decoration: none;
	background: #fff;
	font-weight: 500;
	letter-spacing: 0.06em;
	transition: background 0.25s, color 0.25s;
}
.symptom-back-wrap .medical-related-back:hover {
	background: var(--c-accent);
	color: #fff;
}
.symptom-back-wrap .medical-related-back svg {
	width: 14px;
	height: 14px;
	flex-shrink: 0;
	transition: transform 0.25s;
}
.symptom-back-wrap .medical-related-back:hover svg {
	transform: translateX(-3px);
}

/* ================================================================
   症状一覧ページ（symptoms.html）
   ================================================================ */
.page-symptoms .symptoms-intro {
	max-width: 780px;
	margin: 0 auto 50px;
	text-align: center;
}
.page-symptoms .symptoms-intro p {
	font-size: 15px;
	line-height: 2;
	color: #444;
	letter-spacing: 0.06em;
}
@media (min-width: 768px) {
	.page-symptoms .symptoms-intro p {
		font-size: 16px;
	}
}
.page-symptoms .symptoms-grid-wrap {
	padding: 0 0 60px;
}

/* ================================================================
   ニュースページ （旧 news-content.css）
   ================================================================ */
/* ================================================================
   お知らせ詳細ページ専用スタイル
   ================================================================ */

/* ================================================================
   記事本体
   ================================================================ */
.news-content {
	padding: 40px 0 80px;
}
.news-article {
	max-width: 880px;
	margin: 0 auto;
	background: #fff;
}

.news-article-head {
	padding-bottom: 24px;
	margin-bottom: 32px;
	border-bottom: 1px solid #e0e6cc;
}
.news-article-meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
	margin-bottom: 14px;
}
.news-article-date {
	font-family: 'Marcellus SC', serif;
	font-size: 14px;
	color: var(--c-accent);
	letter-spacing: 0.08em;
}
.news-article-cate {
	display: inline-block;
	padding: 3px 14px;
	font-size: 11px;
	font-weight: 700;
	color: #fff;
	background: var(--c-primary);
	border-radius: 999px;
	letter-spacing: 0.06em;
}
.news-article-cate.is-event { background: var(--c-orange); }
.news-article-cate.is-open { background: var(--c-accent); }
.news-article-cate.is-recruit { background: #88a0c0; }
.news-article-cate.is-closed { background: #a89060; }

.news-article-title {
	margin: 0;
	font-size: 22px;
	font-weight: 700;
	color: #333;
	line-height: 1.5;
	letter-spacing: 0.02em;
}
@media (min-width: 768px) {
	.news-article-title {
		font-size: 26px;
	}
}

/* 本文 */
.news-article-body {
	font-size: 15px;
	line-height: 1.95;
	color: var(--c-text);
}
.news-article-body > * + * {
	margin-top: 1.2em;
}
.news-article-body p {
	margin: 0 0 1em;
}
.news-article-body p:last-child {
	margin-bottom: 0;
}
.news-article-body strong {
	color: var(--c-accent);
	font-weight: 700;
}
.news-article-body a {
	color: var(--c-accent);
	text-decoration: underline;
	text-decoration-color: rgba(136, 192, 48, 0.4);
	text-underline-offset: 3px;
	transition: color 0.2s, text-decoration-color 0.2s;
}
.news-article-body a:hover {
	color: var(--c-primary);
	text-decoration-color: var(--c-primary);
}
.news-article-body h2 {
	font-size: 18px;
	font-weight: 700;
	background: var(--c-primary);
	color: #fff;
	border-radius: 6px;
	padding: 6px 20px 8px;
	margin: 40px 0 18px;
	line-height: 1.5;
	letter-spacing: 0.04em;
}
.news-article-body h3 {
	font-size: 18px;
	font-weight: 700;
	color: var(--c-accent);
	padding: 0 4px;
	margin: 40px 0 18px;
	line-height: 1.5;
	letter-spacing: 0.04em;
	background: linear-gradient(transparent 60%, rgba(136,192,48,0.25) 60%);
	border-left: none;
}
.news-article-body h4,
.news-article-body h5 {
	font-size: 16px;
	font-weight: 700;
	color: var(--c-accent);
	border-left: 4px solid var(--c-primary);
	padding: 4px 0 4px 14px;
	margin: 30px 0 14px;
	line-height: 1.5;
}
.news-article-body h6 {
	font-size: 16px;
	font-weight: 700;
	color: var(--c-text);
	margin: 24px 0 10px;
}
.news-article-body blockquote {
	position: relative;
	margin: 20px 0;
	padding: 40px 20px 16px;
	background: #f7faf0;
	color: var(--c-accent);
	font-style: italic;
	border-left: none;
	border-radius: 4px;
}
.news-article-body blockquote::before {
	content: '\201C';
	position: absolute;
	top: 0;
	left: 6px;
	color: var(--c-primary);
	font-size: 80px;
	line-height: 1;
}
.news-article-body blockquote p {
	margin: 8px 0;
	line-height: 1.7;
}
.news-article-body figure.wp-block-table table {
	border: 1px solid var(--c-primary);
	border-collapse: collapse;
	width: 100%;
}
.news-article-body figure.wp-block-table thead th {
	background: var(--c-primary);
	color: #fff;
	padding: 8px 12px;
	border: 1px solid #fff;
}
.news-article-body figure.wp-block-table tbody th {
	background: #f7faf0;
}
.news-article-body figure.wp-block-table tbody th,
.news-article-body figure.wp-block-table tbody td {
	padding: 10px 14px;
	border: 1px solid var(--c-border);
}
.news-article-body hr.wp-block-separator {
	border: none;
	border-top: 1px solid var(--c-border);
	margin: 30px 0;
}
.news-article-body img {
	max-width: 100%;
	height: auto;
	margin-bottom: 15px;
}
.news-article-body ul {
	margin: 0 0 1.2em;
	padding-left: 0;
	list-style: none;
}
.news-article-body ul li {
	position: relative;
	padding-left: 24px;
	margin-bottom: 8px;
	line-height: 1.85;
}
.news-article-body ul li::before {
	content: "";
	position: absolute;
	left: 6px;
	top: 0.7em;
	width: 8px;
	height: 8px;
	background: #a8d068;
	border-radius: 50%;
}
.news-article-body ol {
	margin: 0 0 1.2em;
	padding-left: 0;
	list-style: none;
	counter-reset: ol-counter;
}
.news-article-body ol li {
	position: relative;
	padding-left: 30px;
	margin-bottom: 8px;
	line-height: 1.85;
	counter-increment: ol-counter;
}
.news-article-body ol li::before {
	content: counter(ol-counter);
	position: absolute;
	left: 0;
	top: 0.15em;
	width: 20px;
	height: 20px;
	background: var(--c-primary);
	color: #fff;
	border-radius: 50%;
	font-size: 12px;
	font-weight: 700;
	display: flex;
	align-items: center;
	justify-content: center;
}
@media (min-width: 768px) {
	.news-article-body {
		font-size: 16px;
		line-height: 2.0;
	}
}

/* 戻るボタン */
.news-article-foot {
	margin-top: 60px;
	text-align: center;
}
.news-back {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 12px 30px;
	border: 1px solid var(--c-accent);
	border-radius: 999px;
	font-size: 13px;
	color: var(--c-accent);
	text-decoration: none;
	background: #fff;
	font-weight: 500;
	letter-spacing: 0.06em;
	transition: background 0.25s, color 0.25s;
}
.news-back:hover {
	background: var(--c-accent);
	color: #fff;
}
.news-back svg {
	width: 14px;
	height: 14px;
	transition: transform 0.25s;
}
.news-back:hover svg {
	transform: translateX(-3px);
}

/* ================================================================
   TOPIX セクション（お知らせ記事の上に表示）
   ================================================================ */
.news-topix-block {
	margin-bottom: 40px;
}
.news-topix-heading {
	display: flex;
	align-items: baseline;
	gap: 14px;
	margin: 0 0 18px;
	padding-bottom: 10px;
	border-bottom: 1px solid #e0e6cc;
}
.news-topix-heading-en {
	font-family: 'Marcellus SC', serif;
	font-size: 18px;
	font-weight: 700;
	color: var(--c-orange);
	letter-spacing: 0.14em;
}
.news-topix-heading-ja {
	font-size: 14px;
	font-weight: 500;
	color: var(--c-text);
	letter-spacing: 0.08em;
}
.news-topix-card {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 18px 20px;
	background: #fff8ec;
	border: 1px solid #f5d9b8;
	border-radius: 8px;
	color: var(--c-text);
	text-decoration: none;
	transition: background 0.2s, border-color 0.2s, transform 0.2s, box-shadow 0.2s;
}
.news-topix-card:hover {
	background: #fdebd0;
	border-color: var(--c-orange);
	box-shadow: 0 4px 16px rgba(236, 131, 50, 0.18);
	transform: translateY(-1px);
	text-decoration: none;
}
.news-topix-card-tag {
	flex-shrink: 0;
	align-self: flex-start;
	padding: 4px 12px;
	background: var(--c-orange);
	color: #fff;
	font-family: 'Marcellus SC', serif;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.08em;
	border-radius: 999px;
	text-transform: lowercase;
	margin-top: 2px;
}
.news-topix-card-body {
	flex: 1;
	min-width: 0;
}
.news-topix-card-title {
	margin: 0 0 6px !important;
	font-size: 16px;
	font-weight: 700;
	color: #b66a25;
	line-height: 1.55;
	letter-spacing: 0.02em;
}
.news-topix-card-text {
	margin: 0;
	font-size: 13.5px;
	color: #888;
	line-height: 1.65;
}
.news-topix-card-arrow {
	flex-shrink: 0;
	color: var(--c-orange);
	font-size: 22px;
	line-height: 1;
	transition: transform 0.2s;
}
.news-topix-card:hover .news-topix-card-arrow {
	transform: translateX(4px);
}
@media (min-width: 768px) {
	.news-topix-heading-en {
		font-size: 22px;
	}
	.news-topix-heading-ja {
		font-size: 15px;
	}
	.news-topix-card {
		padding: 22px 28px;
		gap: 20px;
	}
	.news-topix-card-tag {
		padding: 5px 14px;
		font-size: 12px;
	}
	.news-topix-card-title {
		font-size: 18px;
	}
	.news-topix-card-text {
		font-size: 14px;
	}
}

/* ===== お知らせ一覧ページ ===== */
.news-list-wrap {
	padding: 0 0 60px;
}
.news-list-heading {
	display: flex;
	align-items: baseline;
	gap: 14px;
	margin: 0 0 18px;
	padding-bottom: 10px;
	border-bottom: 1px solid #e0e6cc;
}
.news-list-heading-en {
	font-family: 'Marcellus SC', serif;
	font-size: 18px;
	font-weight: 700;
	color: var(--c-primary);
	letter-spacing: 0.14em;
}
.news-list-heading-ja {
	font-size: 14px;
	font-weight: 500;
	color: var(--c-text);
	letter-spacing: 0.08em;
}
.news-list-archive {
	list-style: none;
	padding: 0;
	margin: 0 0 40px;
}
.news-list-archive li {
	border-bottom: 1px solid #e8eedb;
}
.news-link {
	display: block;
	padding: 20px 8px;
	color: #333;
	text-decoration: none;
	transition: background 0.2s;
}
.news-link:hover {
	background: #f7faef;
	text-decoration: none;
}
.news-meta {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 8px;
}
.news-date {
	font-family: 'Marcellus SC', serif;
	font-size: 13px;
	color: var(--c-accent);
	letter-spacing: 0.06em;
}
.news-cate {
	display: inline-block;
	padding: 2px 12px;
	font-size: 11px;
	font-weight: 700;
	color: #fff;
	background: var(--c-primary);
	border-radius: 999px;
	letter-spacing: 0.05em;
}
.news-cate.is-topics,
.news-article-cate.is-topics { background: var(--c-orange); }
.news-cate.is-event   { background: var(--c-orange); }
.news-cate.is-open    { background: var(--c-accent); }
.news-cate.is-recruit { background: #88a0c0; }
.news-cate.is-closed  { background: #a89060; }
.news-title {
	margin: 0 0 6px;
	font-size: 16px;
	font-weight: 700;
	color: #333;
	line-height: 1.55;
	letter-spacing: 0.02em;
}
.news-excerpt {
	margin: 0;
	font-size: 13.5px;
	color: #888;
	line-height: 1.65;
}
.news-back-wrap {
	text-align: center;
	margin-top: 10px;
}
@media (min-width: 768px) {
	.news-list-heading-en { font-size: 22px; }
	.news-list-heading-ja { font-size: 15px; }
	.news-link { padding: 24px 12px; }
	.news-title { font-size: 18px; }
	.news-excerpt { font-size: 14px; }
}

/* ===== 診療案内リスト：現在ページのアイテムを非表示 ===== */
.medical-related li.is-current { display: none; }

/* ===== 関連診療リスト内の ul/li からデフォルトの bullet を除去 ===== */
.medical-content .medical-related ul {
	list-style: none;
	padding-left: 0;
	margin: 0;
}
.medical-content .medical-related li {
	list-style: none;
	padding-left: 0;
}
.medical-content .medical-related ul li::before {
	display: none;
	content: none;
}
.medical-content .medical-related a {
	text-decoration: none;
}

/* ===== サイトマップ ===== */
.sitemap-content {
	padding: 60px 0 80px;
}
.sitemap-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 50px 60px;
}
.sitemap-section h2 {
	font-size: 15px;
	font-weight: 700;
	color: var(--c-primary);
	border-bottom: 1px solid var(--c-border);
	padding-bottom: 10px;
	margin-bottom: 20px;
}
.sitemap-section h2 .en {
	display: block;
	font-size: 11px;
	letter-spacing: 0.1em;
	color: var(--c-secondary);
	margin-bottom: 4px;
}
.sitemap-list {
	list-style: none;
	padding: 0;
	margin: 0;
}
.sitemap-list > li {
	margin-bottom: 12px;
}
.sitemap-list > li > a {
	position: relative;
	display: inline-block;
	padding-left: 20px;
	color: var(--c-text);
	text-decoration: none;
	font-weight: 600;
	font-size: 15px;
}
.sitemap-list > li > a::before {
	content: '';
	position: absolute;
	top: 6px;
	left: 0;
	width: 7px;
	height: 7px;
	border-top: 2px solid var(--c-secondary);
	border-right: 2px solid var(--c-secondary);
	transform: rotate(45deg);
}
.sitemap-sublist {
	list-style: none;
	padding-left: 20px;
	margin-top: 10px;
}
.sitemap-sublist li {
	margin-bottom: 8px;
}
.sitemap-sublist li a {
	position: relative;
	display: inline-block;
	padding-left: 16px;
	color: var(--c-text);
	text-decoration: none;
	font-size: 14px;
}
.sitemap-sublist li a::before {
	content: '';
	position: absolute;
	top: 9px;
	left: 0;
	width: 8px;
	height: 2px;
	background: var(--c-border);
}
.sitemap-list > li > a:hover,
.sitemap-sublist li a:hover {
	color: var(--c-primary);
}
@media (max-width: 767px) {
	.sitemap-grid {
		grid-template-columns: 1fr;
		gap: 40px;
	}
}


.top-info-cards {
	background: var(--c-bg-warm-2);
	padding: 56px 0 64px;
}
.info-cards-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
}
/* 5枚目を中央寄せ */
.info-cards-grid .info-card:last-child:nth-child(3n+2) {
	grid-column: 2 / 3;
}
.info-card {
	background: #fff;
	border: 1px solid var(--c-secondary);
	border-radius: 14px;
	padding: 28px 22px 24px;
	text-align: center;

}
.info-card-icon {
	margin-bottom: 14px;
}
.info-card-icon img {
	width: 48px;
	height: 48px;
}
.info-card-title {
	font-size: 15px;
	font-weight: 700;
	color: var(--c-dark);
	line-height: 1.65;
	margin: 0 0 12px;
	padding-bottom: 12px;
	border-bottom: 1px solid var(--c-bg-warm-1);
	letter-spacing: 0.04em;
}
.info-card-body {
	font-size: 13.5px;
	color: var(--c-text);
	line-height: 1.9;
	margin: 0;
	text-align: left;
	letter-spacing: 0.03em;
}
.info-card-body em {
	font-style: normal;
	color: var(--c-primary);
	font-weight: 700;
}
.info-card-body a {
	color: var(--c-accent);
	text-decoration: underline;
}

/* SP対応 */
@media (max-width: 767px) {
	.top-info-cards {
		padding: 40px 0 48px;
	}
	.info-cards-grid {
        grid-template-columns: 1fr;
        gap: 14px;
	}
	.info-cards-grid .info-card:last-child:nth-child(3n+2) {
		grid-column: auto;
	}
	.info-cards-grid .info-card:last-child:nth-child(odd) {
		grid-column: 1 / -1;
	}
	.info-card {
		padding: 22px 16px 20px;
		border-radius: 10px;
	}
	.info-card-icon img {
		width: 40px;
		height: 40px;
	}
	.info-card-title {
		font-size: 14px;
	}
	.info-card-body {
		font-size: 13px;
		line-height: 1.8;
	}
}line-height: 1.65;
	margin: 0 0 12px;
	padding-bottom: 12px;
	border-bottom: 1px solid var(--c-bg-warm-1);
	letter-spacing: 0.04em;
}
.info-card-body {
	font-size: 13.5px;
	color: var(--c-text);
	line-height: 1.9;
	margin: 0;
	text-align: left;
	letter-spacing: 0.03em;
}
.info-card-body em {
	font-style: normal;
	color: var(--c-primary);
	font-weight: 700;
}
.info-card-body a {
	color: var(--c-accent);
	text-decoration: underline;
}

/* SP対応 */
@media (max-width: 767px) {
	.top-info-cards {
		padding: 40px 0 48px;
	}
	.info-cards-grid {
        grid-template-columns: 1fr;
        gap: 14px;
	}
	.info-cards-grid .info-card:last-child:nth-child(3n+2) {
		grid-column: auto;
	}
	.info-cards-grid .info-card:last-child:nth-child(odd) {
		grid-column: 1 / -1;
	}
	.info-card {
		padding: 22px 16px 20px;
		border-radius: 10px;
	}
	.info-card-icon img {
		width: 40px;
		height: 40px;
	}
	.info-card-title {
		font-size: 14px;
	}
	.info-card-body {
		font-size: 13px;
		line-height: 1.8;
	}
}