@charset "UTF-8";
/* =========================================================
   やましろ内科クリニック main.css
   数値の単位: calc(24 * var(--u)) = デザイン24px（画面幅に比例）, max(calc(15 * var(--u)), 12px) = 文字サイズ（12px 未満にしない）
   ビルド: python tools/build_css.py
   ========================================================= */

:root {
	--u: 1px;
	--s: 1px;
	--c-text: #352d25;
	--c-gold: #d5a062;
	--c-brown: #b2967d;
	--c-gray: #a29e92;
	--c-orange: #ed9b3d;
	--c-line: #06c755;
	--c-navy: #355798;
	--c-sky: #06b7ea;
	--c-bg: #f9f8f6;
	--c-beige: #f2e6d9;
	--f-ja: "Zen Kaku Gothic New", "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
	--f-en: "Bodoni Moda SC", "Bodoni Moda", "Didot", serif;
	--h-header: calc(120 * var(--u));
}
@media (min-width: 1024px) and (max-width: 1599px) {
	:root { --u: calc(100vw / 1600); }
}
@media (max-width: 1023px) {
	:root { --s: calc(min(100vw, 585px) / 390); }
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: var(--h-header); }
body {
	margin: 0;
	background: var(--c-bg);
	color: var(--c-text);
	font-family: var(--f-ja);
	font-weight: 500;
	font-size: max(calc(15 * var(--u)), 12px);
	line-height: 1.9;
	letter-spacing: .08em;
	overflow-x: clip;
	-webkit-font-smoothing: antialiased;
}
img, svg { max-width: 100%; height: auto; vertical-align: middle; }
a { color: inherit; text-decoration: none; }
ul, ol, dl, dd, p, h1, h2, h3, figure { margin: 0; padding: 0; }
ul, ol { list-style: none; }
button { font: inherit; color: inherit; letter-spacing: inherit; background: none; border: 0; padding: 0; cursor: pointer; }
address { font-style: normal; }
table { border-collapse: collapse; }
.u-visually-hidden { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.u-svgdefs { position: absolute; width: 0; height: 0; overflow: hidden; }
.u-ib { display: inline-block; }
@media (min-width: 1024px) { .u-sp { display: none; } }
@media (max-width: 1023px) { .u-pc { display: none; } }
a, button { transition: opacity .3s, background-color .3s, color .3s, border-color .3s; }

/* ---------- 共通パーツ ---------- */
.c-arrow { display: inline-block; flex: none; width: calc(18 * var(--u)); height: calc(18 * var(--u)); line-height: 0; }
.c-arrow svg { width: 100%; height: 100%; }
.c-arrow circle { fill: var(--c-orange); }
.c-arrow path { stroke: #fff; }
.c-caret { width: calc(8 * var(--u)); height: calc(5 * var(--u)); margin-left: calc(10 * var(--u)); vertical-align: .2em; }

.c-heading { text-align: center; }
.c-heading__icon { display: block; width: calc(36 * var(--u)); height: calc(36 * var(--u)); margin: 0 auto; }
.c-heading__ja { margin-top: calc(12 * var(--u)); font-size: max(calc(46 * var(--u)), 12px); font-weight: 500; line-height: 1.3; letter-spacing: .1em; }
.c-heading__en { margin-top: calc(6 * var(--u)); font-family: var(--f-en); font-size: max(calc(24 * var(--u)), 12px); line-height: 1.2; letter-spacing: .02em; color: var(--c-gold); }
.c-heading--left { text-align: left; }
.c-heading--left .c-heading__icon { margin: 0; }

.c-btn {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: calc(300 * var(--u));
	height: calc(61 * var(--u));
	padding: 0 calc(40 * var(--u));
	background: var(--c-brown);
	border-radius: calc(3 * var(--u));
	color: #fff;
	font-size: max(calc(15 * var(--u)), 12px);
	letter-spacing: .15em;
}
.c-btn__arrow { position: absolute; right: calc(18 * var(--u)); top: 50%; translate: 0 -50%; width: calc(18 * var(--u)); height: calc(18 * var(--u)); line-height: 0; }
.c-btn__arrow svg { width: 100%; height: 100%; }
.c-btn__arrow circle { fill: #fff; }
.c-btn__arrow path { stroke: var(--c-brown); }
.c-btn:hover { opacity: .8; }

.c-pill {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	height: calc(52 * var(--u));
	padding: 0 calc(40 * var(--u));
	border: 1.5px solid var(--c-gold);
	border-radius: 999px;
	background: #fff;
	font-size: max(calc(14 * var(--u)), 12px);
	line-height: 1.4;
	letter-spacing: .08em;
	text-align: center;
}
.c-pill--lg { height: calc(62 * var(--u)); font-size: max(calc(16 * var(--u)), 12px); }
.c-pill .c-arrow { position: absolute; right: calc(18 * var(--u)); top: 50%; translate: 0 -50%; }
.c-pill:hover { background: #fdf6ee; }

.c-hours { width: 100%; font-size: max(calc(14 * var(--u)), 12px); line-height: 1.4; letter-spacing: .04em; text-align: center; }
.c-hours th, .c-hours td { padding: 0; height: calc(50 * var(--u)); font-weight: 500; white-space: nowrap; }
.c-hours thead th { height: calc(52 * var(--u)); background: var(--c-brown); color: #fff; font-size: max(calc(13 * var(--u)), 12px); }
.c-hours thead th:first-child, .c-hours tbody th { width: max(calc(110 * var(--u)), 96px); padding-left: calc(10 * var(--u)); text-align: left; }
.c-hours tbody tr { background: #fff; }
.c-hours tbody tr + tr { border-top: 1px solid #efebe6; }
.c-hours tbody th { font-size: max(calc(13 * var(--u)), 12px); }

/* =========================================================
   PC（1024px 以上）: デザイン座標をそのまま u で指定
   ========================================================= */
@media (min-width: 1024px) {

	/* ---------- ヘッダー ---------- */
	.l-header { position: fixed; inset: 0 0 auto; z-index: 100; height: var(--h-header); transition: background-color .3s, box-shadow .3s; }
	.admin-bar .l-header { top: 32px; }
	.l-header.is-scrolled { background: rgba(249, 248, 246, .96); box-shadow: 0 2px 16px rgba(53, 45, 37, .08); }
	.l-header__inner { position: relative; height: 100%; }
	.l-header__logo { position: absolute; left: calc(31 * var(--u)); top: calc(12 * var(--u)); display: flex; align-items: flex-start; z-index: 2; }
	.l-header__logo-mark { width: calc(66 * var(--u)); height: auto; }
	.l-header__logo-body { display: block; margin-left: calc(5 * var(--u)); padding-top: calc(9 * var(--u)); }
	.l-header__logo-text { display: block; width: calc(208 * var(--u)); height: auto; }
	.l-header__logo-sub { display: block; margin-top: calc(7 * var(--u)); font-size: calc(8 * var(--u)); line-height: 1.2; letter-spacing: .06em; color: #8c877c; white-space: nowrap; }

	.l-header__nav { position: absolute; left: 0; right: 0; top: calc(86 * var(--u)); }
	.l-gnav { display: flex; justify-content: center; }
	.l-gnav__item { position: relative; }
	.l-gnav__link { display: block; padding: 0 calc(17.5 * var(--u)); font-size: calc(15 * var(--u)); line-height: calc(28 * var(--u)); letter-spacing: .02em; white-space: nowrap; }
	.l-gnav__link:hover { color: var(--c-brown); }
	.l-gnav__sub {
		position: absolute; left: 50%; top: 100%; z-index: 5;
		min-width: calc(240 * var(--u)); padding: calc(12 * var(--u)) 0; translate: -50% calc(8 * var(--u));
		background: #fff; box-shadow: 0 8px 24px rgba(53, 45, 37, .12); border-radius: calc(4 * var(--u));
		opacity: 0; visibility: hidden; transition: opacity .25s, translate .25s, visibility .25s;
	}
	.l-gnav__item:hover .l-gnav__sub, .l-gnav__item:focus-within .l-gnav__sub { opacity: 1; visibility: visible; translate: -50% 0; }
	.l-gnav__sub a { display: block; padding: calc(8 * var(--u)) calc(24 * var(--u)); font-size: max(calc(14 * var(--u)), 12px); line-height: 1.6; white-space: nowrap; }
	.l-gnav__sub a:hover { background: #f6f1eb; color: var(--c-brown); }

	.l-header__cta { position: absolute; right: calc(30 * var(--u)); top: calc(9 * var(--u)); display: flex; align-items: center; }
	.l-header__insta { width: calc(26 * var(--u)); margin-right: calc(17 * var(--u)); line-height: 0; }
	.l-header__insta img { width: calc(26 * var(--u)); height: calc(26 * var(--u)); }
	.l-header__tel { display: block; width: calc(136 * var(--u)); margin-right: calc(10 * var(--u)); text-align: center; }
	.l-header__tel-label { display: block; white-space: nowrap; font-size: calc(11 * var(--u)); line-height: 1.36; letter-spacing: .02em; }
	.l-header__tel-num { display: block; margin-top: calc(3 * var(--u)); font-size: calc(20 * var(--u)); font-weight: 700; line-height: 1.2; letter-spacing: .04em; white-space: nowrap; }
	.l-header__btn {
		display: flex; flex-direction: column; align-items: center; justify-content: center; gap: calc(4 * var(--u));
		width: calc(112 * var(--u)); height: calc(60 * var(--u)); color: #fff; font-size: calc(13 * var(--u)); font-weight: 700; line-height: 1.2; letter-spacing: .1em;
	}
	.l-header__btn img { width: calc(20 * var(--u)); height: calc(20 * var(--u)); }
	.l-header__btn--web { background: var(--c-orange); }
	.l-header__btn--web img { filter: brightness(0) invert(1); }
	.l-header__btn--line { margin-left: calc(10 * var(--u)); background: var(--c-line); }
	.l-header__btn:hover { opacity: .85; }
	.l-header__toggle { display: none; }
	.l-drawer { display: none; }

	/* ---------- MV ---------- */
	.p-mv { position: relative; height: clamp(calc(800 * var(--u)), 100svh, calc(1024 * var(--u))); overflow: hidden; }
	.p-mv__bg { position: absolute; inset: 0; z-index: 0; }
	.p-mv__bg-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
	.p-mv__ring { position: absolute; left: calc(-40 * var(--u)); top: calc(-110 * var(--u)); width: calc(810 * var(--u)); height: auto; mix-blend-mode: multiply; opacity: .9; }
	.p-mv__stage { position: absolute; inset: 0; --mv-x: max(0px, (100% - 1600 * var(--u)) / 2); }
	.p-mv__slide { position: absolute; inset: 0; opacity: 0; visibility: hidden; transition: opacity 1.2s ease, visibility 1.2s; }
	.p-mv__slide.is-active { opacity: 1; visibility: visible; }
	.p-mv__photo { position: absolute; left: calc(var(--mv-x) + calc(675 * var(--u))); right: calc(25 * var(--u)); top: calc(128 * var(--u)); bottom: 0; overflow: hidden; border-radius: calc(8 * var(--u)) calc(8 * var(--u)) 0 0; }
	.p-mv__photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 30%; }
	.p-mv__photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(246, 240, 236, .92) 0%, rgba(246, 240, 236, .55) 22%, rgba(246, 240, 236, 0) 42%); pointer-events: none; }
	.p-mv__slide.is-active .p-mv__photo img { animation: mvZoom 7s ease-out both; }
	@keyframes mvZoom { from { scale: 1.06; } to { scale: 1; } }

	.p-mv__text { position: absolute; left: calc(var(--mv-x) + calc(55 * var(--u))); bottom: calc(258 * var(--u)); z-index: 2; }
	.p-mv__label { font-family: var(--f-en); font-size: max(calc(30 * var(--u)), 12px); line-height: 1.2; letter-spacing: .02em; color: var(--c-gold); }
	.p-mv__num { margin-right: calc(4 * var(--u)); font-size: max(calc(19 * var(--u)), 12px); }
	.p-mv__title { margin-top: calc(22 * var(--u)); font-size: max(calc(55 * var(--u)), 12px); font-weight: 700; line-height: 1.4; letter-spacing: .12em; white-space: nowrap; }
	.p-mv__tags { display: flex; gap: calc(11 * var(--u)); margin-top: calc(27 * var(--u)); }
	.p-mv__tags li { display: flex; align-items: center; height: calc(42 * var(--u)); padding: 0 calc(13 * var(--u)); border: 1px solid var(--c-gold); background: rgba(255, 255, 255, .35); color: var(--c-gold); font-size: max(calc(15 * var(--u)), 12px); line-height: 1; letter-spacing: .1em; white-space: nowrap; }
	.p-mv__lead { margin-top: calc(27 * var(--u)); font-size: max(calc(18 * var(--u)), 12px); line-height: calc(37 * var(--u)); letter-spacing: .12em; white-space: nowrap; }
	@keyframes mvUp { from { opacity: 0; translate: 0 calc(16 * var(--u)); } to { opacity: 1; translate: 0 0; } }

	.p-mv__points {
		position: absolute; left: calc(var(--mv-x) + calc(60 * var(--u))); bottom: calc(69 * var(--u)); z-index: 3;
		display: grid; grid-template-columns: 1fr 1fr; width: max(calc(485 * var(--u)), 410px); height: calc(167 * var(--u)); padding: 0 calc(20 * var(--u));
		background: rgba(255, 255, 255, .6); border-radius: calc(10 * var(--u));
		backdrop-filter: blur(6px);
	}
	.p-mv__points li { position: relative; display: flex; align-items: center; gap: calc(12 * var(--u)); padding-left: calc(4 * var(--u)); font-size: max(calc(15 * var(--u)), 12px); line-height: 1.35; letter-spacing: .04em; }
	.p-mv__points li:nth-child(even) { padding-left: calc(22 * var(--u)); }
	.p-mv__points li:nth-child(odd)::after { content: ""; position: absolute; right: 0; top: calc(14 * var(--u)); bottom: calc(14 * var(--u)); width: 1px; background: #e8dccf; }
	.p-mv__points li:nth-child(-n+2) { border-bottom: 1px solid #e8dccf; }
	.p-mv__points li:nth-child(1)::after { top: calc(14 * var(--u)); bottom: 0; }
	.p-mv__points li:nth-child(3)::after { top: 0; bottom: calc(14 * var(--u)); }
	.p-mv__point-icon { display: flex; align-items: center; justify-content: center; width: calc(40 * var(--u)); height: calc(52 * var(--u)); flex: none; }
	.p-mv__point-icon img { max-width: 100%; max-height: 100%; width: auto; height: auto; }
	.p-mv__points li:nth-child(1) img { height: calc(40 * var(--u)); }
	.p-mv__points li:nth-child(2) img { height: calc(40 * var(--u)); }
	.p-mv__points li:nth-child(3) img { height: calc(51 * var(--u)); }
	.p-mv__points li:nth-child(4) img { width: calc(42 * var(--u)); }

	.p-mv__dots { position: absolute; right: calc(50 * var(--u)); bottom: calc(28 * var(--u)); z-index: 3; display: flex; gap: calc(12 * var(--u)); }
	.p-mv__dot { width: calc(10 * var(--u)); height: calc(10 * var(--u)); border-radius: 50%; background: rgba(255, 255, 255, .6); box-shadow: 0 0 0 1px rgba(53, 45, 37, .15); }
	.p-mv__dot.is-active { background: var(--c-gold); }

	/* ---------- お悩みから探す ---------- */
	.p-search { padding: calc(148 * var(--u)) 0 calc(149 * var(--u)); }
	.p-search__tabs { display: grid; grid-template-columns: 1fr 1fr; gap: calc(14 * var(--u)); width: calc(1000 * var(--u)); margin: calc(40 * var(--u)) auto 0; }
	.p-search__tab {
		position: relative; height: calc(75 * var(--u)); border: 1px solid var(--c-gray); background: transparent;
		font-size: max(calc(22 * var(--u)), 12px); font-weight: 700; line-height: 1.3; letter-spacing: .12em;
	}
	.p-search__tab.is-active { background: var(--c-text); border-color: var(--c-text); color: #fff; }
	.p-search__tab.is-active::after { content: ""; position: absolute; left: 50%; top: 100%; translate: -50% 0; border: calc(11 * var(--u)) solid transparent; border-top-color: var(--c-text); border-bottom: 0; }
	.p-search__tab:not(.is-active):hover { background: #fff; }
	.p-search__panel { width: calc(1400 * var(--u)); margin: calc(32 * var(--u)) auto 0; padding: calc(60 * var(--u)) calc(50 * var(--u)) calc(48 * var(--u)); background: #fcfbfa; }
	.p-search__list { display: grid; gap: calc(10 * var(--u)); }
	.p-search__list--lg { grid-template-columns: repeat(3, 1fr); gap: calc(8 * var(--u)); }
	.p-search__list--md { grid-template-columns: repeat(4, 1fr); gap: calc(8 * var(--u)); }
	.p-search__list--sm { grid-template-columns: repeat(6, 1fr); margin-top: calc(18 * var(--u)); }
	#panel-checkup .p-search__list--sm { grid-template-columns: repeat(5, 1fr); } /* 健診タブは5列（Figma） */
	.p-search__note { margin-top: calc(28 * var(--u)); font-size: max(calc(15 * var(--u)), 12px); line-height: 1.6; text-align: center; }
	.p-search__btn { margin-top: calc(26 * var(--u)); text-align: center; }
	.c-btn--wide { width: auto; min-width: calc(300 * var(--u)); padding-right: calc(60 * var(--u)); }
	.p-blog__meo { margin-top: calc(60 * var(--u)); }

	/* ---------- 診療案内 ---------- */
	.p-menu { position: relative; }
	.p-menu__visual { height: calc(583 * var(--u)); overflow: hidden; }
	.p-menu__visual img { width: 100%; height: 100%; object-fit: cover; }
	.p-menu__body { position: relative; display: flex; justify-content: space-between; width: calc(1400 * var(--u)); margin: 0 auto; }
	.p-menu__intro { padding-top: calc(41 * var(--u)); }
	.p-menu__text { margin-top: calc(42 * var(--u)); font-size: max(calc(15 * var(--u)), 12px); line-height: calc(32 * var(--u)); letter-spacing: .1em; }
	.p-menu__btn { margin-top: calc(35 * var(--u)); }
	.p-menu__cards { width: calc(940 * var(--u)); margin-top: calc(-59 * var(--u)); }
	.p-menu__big { display: grid; grid-template-columns: repeat(3, 1fr); gap: calc(10 * var(--u)); }
	.p-menu__small { display: grid; grid-template-columns: repeat(5, 1fr); gap: calc(10 * var(--u)); margin-top: calc(11 * var(--u)); }

	.c-mcard { position: relative; display: flex; flex-direction: column; align-items: center; height: 100%; min-height: calc(257 * var(--u)); padding: calc(25 * var(--u)) calc(16 * var(--u)) calc(20 * var(--u)); background: #fff; }
	.c-mcard--big { min-height: calc(279 * var(--u)); padding-top: calc(29 * var(--u)); border: 1.5px solid var(--c-brown); }
	.c-mcard__icon { width: calc(70 * var(--u)); height: calc(70 * var(--u)); border-radius: 50%; }
	.c-mcard--big .c-mcard__icon { width: calc(90 * var(--u)); height: calc(90 * var(--u)); }
	.c-mcard__title { margin-top: calc(14 * var(--u)); font-size: max(calc(18 * var(--u)), 12px); font-weight: 700; line-height: 1.45; letter-spacing: .1em; text-align: center; }
	.c-mcard--big .c-mcard__title { margin-top: calc(14 * var(--u)); font-size: max(calc(22 * var(--u)), 12px); letter-spacing: .12em; }
	.c-mcard__text { align-self: stretch; margin-top: calc(8 * var(--u)); font-size: max(calc(13 * var(--u)), 12px); line-height: 1.55; letter-spacing: .06em; color: var(--c-gray); }
	.c-mcard--big .c-mcard__text { margin-top: calc(26 * var(--u)); font-size: max(calc(14 * var(--u)), 12px); }
	.c-mcard__arrow { position: absolute; right: calc(15 * var(--u)); bottom: calc(11 * var(--u)); width: calc(30 * var(--u)); height: calc(30 * var(--u)); }
	.c-mcard--big .c-mcard__arrow { right: calc(20 * var(--u)); bottom: calc(16 * var(--u)); }
	.c-mcard:hover { box-shadow: 0 6px 20px rgba(53, 45, 37, .1); }

	/* ---------- 医院情報（2回出る） ---------- */
	.p-access { padding: calc(300 * var(--u)) 0 calc(250 * var(--u)); }
	.p-news + .p-access { padding-top: calc(151 * var(--u)); }
	.p-access__inner { display: flex; justify-content: space-between; width: calc(1400 * var(--u)); margin: 0 auto; }
	.p-access__info { width: calc(589 * var(--u)); }
	.p-access__logo { display: flex; align-items: center; gap: calc(9 * var(--u)); height: calc(69 * var(--u)); }
	.p-access__logo-mark { width: calc(87 * var(--u)); }
	.p-access__logo-text { width: calc(273 * var(--u)); }
	.p-access__table { width: calc(576 * var(--u)); margin-top: calc(29 * var(--u)); border-top: 2px solid #ddd8d0; }
	.p-access__row { display: flex; align-items: center; min-height: calc(65 * var(--u)); padding: calc(10 * var(--u)) 0; border-bottom: 2px solid #ddd8d0; }
	.p-access__row dt { position: relative; flex: none; width: max(calc(98 * var(--u)), 76px); white-space: nowrap; align-self: stretch; display: flex; align-items: center; font-size: max(calc(15 * var(--u)), 12px); line-height: calc(26 * var(--u)); letter-spacing: .1em; }
	.p-access__row dt::after { content: ""; position: absolute; right: 0; top: 0; bottom: 0; border-right: 2px dotted #c9c3ba; }
	.p-access__row dd { padding-left: calc(11 * var(--u)); font-size: max(calc(15 * var(--u)), 12px); line-height: calc(26 * var(--u)); letter-spacing: .1em; }
	.p-access__hours-title { margin-top: calc(32 * var(--u)); font-size: max(calc(18 * var(--u)), 12px); font-weight: 700; line-height: 1.5; letter-spacing: .06em; }
	.p-access .c-hours { width: calc(576 * var(--u)); margin-top: calc(8 * var(--u)); }
	.p-access__notes { margin-top: calc(13 * var(--u)); font-size: max(calc(13 * var(--u)), 12px); line-height: calc(21 * var(--u)); letter-spacing: .04em; }
	.p-access__gap { display: inline-block; width: calc(30 * var(--u)); }
	.p-access__target { margin-top: calc(33 * var(--u)); padding: calc(16 * var(--u)) calc(20 * var(--u)) calc(18 * var(--u)); border: 1px solid var(--c-gold); border-radius: calc(6 * var(--u)); background: #fdfcfa; text-align: center; }
	.p-access__target-head { display: flex; align-items: center; justify-content: center; gap: calc(10 * var(--u)); }
	.p-access__target-badge { display: inline-block; padding: 0 calc(9 * var(--u)); border-radius: 99px; background: var(--c-gold); color: #fff; font-size: max(calc(12 * var(--u)), 12px); line-height: calc(24 * var(--u)); }
	.p-access__target-age { color: var(--c-gold); font-size: max(calc(20 * var(--u)), 12px); font-weight: 700; line-height: calc(30 * var(--u)); }
	.p-access__target-text { margin-top: calc(6 * var(--u)); font-size: max(calc(13 * var(--u)), 12px); line-height: 1.6; }
	.p-access__map { width: calc(752 * var(--u)); height: calc(822 * var(--u)); }
	.p-access__map iframe { width: 100%; height: 100%; border: 0; filter: saturate(.85); }

	/* ---------- 予約帯 ---------- */
	.p-reserve { background: var(--c-brown); color: #fff; }
	.p-reserve__inner { display: flex; width: calc(1300 * var(--u)); height: calc(370 * var(--u)); margin: 0 auto; padding-top: calc(39 * var(--u)); }
	.p-reserve__photo { width: calc(340 * var(--u)); height: calc(291 * var(--u)); flex: none; }
	.p-reserve__photo img { width: 100%; height: 100%; object-fit: cover; border-radius: calc(4 * var(--u)); }
	.p-reserve__body { margin-left: calc(80 * var(--u)); padding-top: calc(27 * var(--u)); }
	.p-reserve__en { font-family: var(--f-en); font-size: max(calc(26 * var(--u)), 12px); line-height: 1.2; letter-spacing: .02em; }
	.p-reserve__title { margin-top: calc(12 * var(--u)); font-size: max(calc(25 * var(--u)), 12px); font-weight: 700; line-height: 1.5; letter-spacing: .1em; }
	.p-reserve__btns { display: grid; grid-template-columns: repeat(3, calc(283 * var(--u))); gap: calc(14.5 * var(--u)); margin-top: calc(21 * var(--u)); }
	.p-reserve__btn { display: flex; flex-direction: column; align-items: center; justify-content: center; height: calc(82 * var(--u)); color: #fff; }
	.p-reserve__btn span { display: flex; align-items: center; gap: calc(10 * var(--u)); font-size: max(calc(20 * var(--u)), 12px); font-weight: 700; letter-spacing: .08em; line-height: 1.2; }
	.p-reserve__btn img { width: calc(24 * var(--u)); height: calc(24 * var(--u)); }
	.p-reserve__btn small { font-size: max(calc(11 * var(--u)), 11px); line-height: 1.4; letter-spacing: .06em; margin-bottom: calc(4 * var(--u)); }
	.p-reserve__btn--tel { background: var(--c-text); }
	.p-reserve__btn--tel span { font-weight: 500; font-size: max(calc(20 * var(--u)), 12px); }
	.p-reserve__btn--web { background: var(--c-orange); }
	.p-reserve__btn--web img { filter: brightness(0) invert(1); }
	.p-reserve__btn--line { background: var(--c-line); }
	.p-reserve__btn:hover { opacity: .85; }
	.p-reserve__note { margin-top: calc(30 * var(--u)); font-size: max(calc(14 * var(--u)), 12px); line-height: 1.5; letter-spacing: .08em; }

	/* ---------- 当院の特徴 ---------- */
	.p-features { position: relative; padding: calc(145 * var(--u)) 0 calc(153 * var(--u)); }
	/* 1600px を超える画面では、ベージュ地とカード群を中央の 1600px 枠に合わせる（見出しと同じ基準で中央寄せ） */
	.p-features::before { content: ""; position: absolute; left: calc(160 * var(--u) + max(0px, (100% - 1600 * var(--u)) / 2)); right: 0; top: calc(203 * var(--u)); bottom: calc(203 * var(--u)); background: var(--c-beige); z-index: 0; }
	.p-features__head { position: relative; z-index: 1; width: calc(1400 * var(--u)); margin: 0 auto; text-align: right; }
	.p-features__en { font-family: var(--f-en); font-size: max(calc(97 * var(--u)), 12px); line-height: 1; letter-spacing: .01em; color: var(--c-gold); margin-right: calc(-2 * var(--u)); }
	.p-features__ja { margin-top: calc(10 * var(--u)); font-size: max(calc(22 * var(--u)), 12px); font-weight: 500; line-height: 1.4; letter-spacing: .12em; }
	.p-features__list { position: relative; z-index: 1; display: flex; width: calc(1500 * var(--u)); margin: calc(66 * var(--u)) 0 0 calc(100 * var(--u) + max(0px, (100% - 1600 * var(--u)) / 2)); }
	.p-features__col { width: calc(750 * var(--u)); }
	.p-feature { width: calc(640 * var(--u)); }
	.p-feature + .p-feature { margin-top: calc(150 * var(--u)); }
	.p-feature--02 { margin-top: calc(148 * var(--u)); }
	.p-feature--03, .p-feature--04 { margin-left: calc(50 * var(--u)); }
	.p-feature__photo { position: relative; width: calc(500 * var(--u)); height: calc(310 * var(--u)); }
	.p-feature__img { width: calc(500 * var(--u)); height: calc(310 * var(--u)); object-fit: cover; clip-path: url(#yms-wave); }
	.p-feature__wave { position: absolute; left: 0; top: 0; width: 100%; height: 100%; pointer-events: none; }
	.p-feature__num { position: absolute; width: auto; height: calc(83 * var(--u)); }
	.p-feature--01 .p-feature__num { left: calc(430 * var(--u)); top: calc(-34 * var(--u)); }
	.p-feature--02 .p-feature__num { left: calc(-54 * var(--u)); top: calc(-56 * var(--u)); }
	.p-feature--03 .p-feature__num { left: calc(390 * var(--u)); top: calc(230 * var(--u)); }
	.p-feature--04 .p-feature__num { left: calc(365 * var(--u)); top: calc(-39 * var(--u)); }
	.p-feature--05 .p-feature__num { left: calc(-35 * var(--u)); top: calc(-39 * var(--u)); }
	.p-feature__label { display: inline-block; margin-top: 0; padding: 0 calc(12 * var(--u)); border-radius: 99px; background: var(--c-gold); color: #fff; font-family: var(--f-en); font-size: max(calc(16 * var(--u)), 12px); line-height: calc(28 * var(--u)); letter-spacing: .04em; }
	.p-feature__title { margin-top: calc(22 * var(--u)); font-size: max(calc(26 * var(--u)), 12px); font-weight: 700; line-height: calc(41.5 * var(--u)); letter-spacing: .12em; white-space: nowrap; }
	.p-feature__text { max-width: calc(592 * var(--u)); margin-top: calc(18 * var(--u)); font-size: max(calc(15 * var(--u)), 12px); line-height: calc(29 * var(--u)); letter-spacing: .1em; }
	.p-feature--02 .p-feature__text { max-width: calc(620 * var(--u)); }
	.p-feature--05 .p-feature__text { max-width: calc(640 * var(--u)); }
	.p-feature--05 { display: flex; flex-direction: column; align-items: flex-start; }
	.p-feature--05 .p-feature__label { order: 3; margin-top: calc(14 * var(--u)); }
	.p-feature--05 .p-feature__title { margin-top: calc(6 * var(--u)); }

	/* ---------- 院長紹介 ---------- */
	.p-doctor { position: relative; padding: 0 0 calc(199 * var(--u)); overflow-x: clip; }
	.p-doctor__watermark { position: absolute; right: calc(-40 * var(--u)); top: calc(-40 * var(--u)); width: calc(670 * var(--u)); height: auto; opacity: .22; z-index: 0; pointer-events: none; }
	.p-doctor .c-heading { position: relative; z-index: 1; }
	.p-doctor__body { position: relative; z-index: 1; display: flex; gap: calc(66 * var(--u)); width: calc(1200 * var(--u)); margin: calc(56 * var(--u)) auto 0; }
	.p-doctor__photo { flex: none; width: calc(435 * var(--u)); }
	.p-doctor__photo img { display: block; width: calc(435 * var(--u)); height: calc(600 * var(--u)); object-fit: cover; }
	.p-doctor__name { margin-top: calc(22 * var(--u)); text-align: right; font-size: max(calc(24 * var(--u)), 12px); font-weight: 500; line-height: 1.2; letter-spacing: .1em; }
	.p-doctor__role { margin-right: calc(6 * var(--u)); font-size: max(calc(14 * var(--u)), 12px); }
	.p-doctor__kana { display: block; margin-top: calc(6 * var(--u)); font-size: max(calc(12 * var(--u)), 12px); letter-spacing: .1em; }
	.p-doctor__content { flex: 1; padding-top: calc(25 * var(--u)); }
	.p-doctor__catch { color: var(--c-gold); font-size: max(calc(32 * var(--u)), 12px); font-weight: 500; line-height: calc(64 * var(--u)); letter-spacing: .12em; }
	.p-doctor__text { margin-top: calc(20 * var(--u)); font-size: max(calc(15 * var(--u)), 12px); line-height: calc(35 * var(--u)); letter-spacing: .1em; white-space: nowrap; }
	.p-doctor__license { display: flex; width: calc(684 * var(--u)); margin-top: calc(31 * var(--u)); padding: calc(8 * var(--u)) 0; border-top: 2px solid #d4cfc7; border-bottom: 2px solid #d4cfc7; }
	.p-doctor__license dt { position: relative; display: flex; align-items: center; flex: none; width: max(calc(98 * var(--u)), 84px); white-space: nowrap; font-size: max(calc(14 * var(--u)), 12px); letter-spacing: .1em; }
	.p-doctor__license dt::after { content: ""; position: absolute; right: 0; top: 0; bottom: 0; border-right: 2px dotted #c9c3ba; }
	.p-doctor__license dd { padding-left: calc(11 * var(--u)); }
	.p-doctor__license li { font-size: max(calc(14 * var(--u)), 12px); line-height: calc(32.2 * var(--u)); letter-spacing: .08em; }
	.p-doctor__btn { margin-top: calc(30 * var(--u)); }

	/* ---------- お知らせ ---------- */
	.p-news { width: calc(1500 * var(--u)); margin: 0 auto; border-top: 1px solid #c9c4bc; border-bottom: 1px solid #c9c4bc; }
	.p-news__inner { display: flex; width: calc(1100 * var(--u)); height: calc(346 * var(--u)); margin: 0 auto; padding-top: calc(99 * var(--u)); }
	.p-news__head { width: calc(410 * var(--u)); flex: none; padding-top: calc(8 * var(--u)); }
	.p-news__ja { font-size: max(calc(36 * var(--u)), 12px); font-weight: 500; line-height: 1.3; letter-spacing: .14em; }
	.p-news__en { margin-top: calc(4 * var(--u)); font-family: var(--f-en); font-size: max(calc(20 * var(--u)), 12px); line-height: 1.2; color: var(--c-gold); }
	.p-news__btn { margin-top: calc(24 * var(--u)); }
	.c-btn--sm { width: calc(210 * var(--u)); height: calc(42 * var(--u)); font-size: max(calc(12 * var(--u)), 12px); }
	.c-btn--sm .c-btn__arrow { right: calc(12 * var(--u)); width: calc(15 * var(--u)); height: calc(15 * var(--u)); }
	.p-news__list { flex: 1; border-top: 1px dashed #b9b3a8; }
	.p-news__list li { border-bottom: 1px dashed #b9b3a8; }
	.p-news__list a { display: flex; align-items: center; height: calc(66 * var(--u)); font-size: max(calc(15 * var(--u)), 12px); letter-spacing: .08em; }
	.p-news__list a:hover span { color: var(--c-brown); }
	.p-news__list time { width: calc(123 * var(--u)); flex: none; font-size: max(calc(14 * var(--u)), 12px); letter-spacing: .04em; }

	/* ---------- ブログ ---------- */
	.p-blog { position: relative; width: calc(1400 * var(--u)); margin: 0 auto; padding: calc(154 * var(--u)) 0 0; }
	.p-blog::before { content: ""; position: absolute; left: calc(-50 * var(--u)); right: calc(-50 * var(--u)); top: 0; border-top: 1px solid #c9c4bc; }
	.p-blog__head { display: flex; align-items: flex-end; justify-content: space-between; }
	.p-blog__more { padding-bottom: calc(7 * var(--u)); }
	.p-blog__list { display: grid; grid-template-columns: repeat(4, calc(330 * var(--u))); gap: calc(25 * var(--u)); margin-top: calc(34 * var(--u)); }
	.c-bcard { display: block; }
	.c-bcard__img { display: block; height: calc(240 * var(--u)); background: #666; overflow: hidden; }
	.c-bcard__img img { width: 100%; height: 100%; object-fit: cover; transition: scale .5s; }
	.c-bcard:hover .c-bcard__img img { scale: 1.05; }
	.c-bcard__meta { display: flex; align-items: center; justify-content: space-between; margin-top: calc(15 * var(--u)); }
	.c-bcard__tag { padding: 0 calc(10 * var(--u)); border-radius: 99px; background: var(--c-gold); color: #fff; font-size: max(calc(12 * var(--u)), 12px); font-weight: 700; line-height: calc(22 * var(--u)); }
	.c-bcard__meta time { font-size: max(calc(12 * var(--u)), 12px); letter-spacing: .02em; }
	.c-bcard__title { display: block; margin-top: calc(16 * var(--u)); font-size: max(calc(15 * var(--u)), 12px); line-height: calc(22 * var(--u)); letter-spacing: .08em; }
	.p-blog__insta { margin-top: calc(147 * var(--u)); text-align: center; }
	.p-blog__insta a {
		position: relative; display: inline-grid; grid-template-columns: auto 1fr; align-items: center; column-gap: calc(12 * var(--u));
		width: max(calc(379 * var(--u)), 330px); min-height: max(calc(112 * var(--u)), 100px); padding: max(calc(34 * var(--u)), 32px) 56px 10px max(calc(30 * var(--u)), 22px); border: 2px solid #ee1683; background: #fff; text-align: left;
	}
	.p-blog__insta-lead { position: absolute; left: 0; right: 0; top: max(calc(10 * var(--u)), 8px); white-space: nowrap; font-size: max(calc(14 * var(--u)), 12px); font-weight: 700; line-height: 1.4; text-align: center; letter-spacing: .06em; }
	.p-blog__insta-lead::before { content: "＼"; margin-right: calc(4 * var(--u)); }
	.p-blog__insta-lead::after { content: "／"; margin-left: calc(4 * var(--u)); }
	.p-blog__insta-icon { width: max(calc(56 * var(--u)), 46px); height: max(calc(56 * var(--u)), 46px); }
	.p-blog__insta-name { font-family: "Zen Kaku Gothic New", sans-serif; font-size: max(calc(36 * var(--u)), 30px); font-weight: 500; line-height: 1; letter-spacing: 0; }
	.p-blog__insta-name small { display: block; margin-bottom: calc(4 * var(--u)); font-size: max(calc(13 * var(--u)), 12px); font-weight: 700; letter-spacing: .08em; }
	.p-blog__insta-arrow { position: absolute; right: calc(20 * var(--u)); bottom: calc(22 * var(--u)); width: calc(22 * var(--u)); height: calc(22 * var(--u)); }
	.p-blog__insta-arrow circle { fill: #ee1683; }
	.p-blog__insta a:hover { opacity: .8; }

	/* ---------- バナー ---------- */
	.p-banners { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: calc(24 * var(--u)); width: calc(1400 * var(--u)); margin: calc(101 * var(--u)) auto 0; padding-bottom: calc(80 * var(--u)); } /* 枚数の増減に対応して折り返す */
	.p-banners img { height: calc(100 * var(--u)); width: auto; border: 1px solid #e3ded6; }
	.p-banners a:hover { opacity: .8; }

	/* ---------- フッター ---------- */
	.l-footer { background: var(--c-brown); color: #fff; }
	.l-footer__inner { display: flex; width: calc(1400 * var(--u)); margin: 0 auto; padding: calc(79 * var(--u)) 0 0; }
	.l-footer__info { width: calc(504 * var(--u)); flex: none; }
	.l-footer__logo { display: flex; align-items: center; gap: calc(9 * var(--u)); }
	.l-footer__logo-mark { width: calc(87 * var(--u)); }
	.l-footer__logo-text { width: calc(273 * var(--u)); }
	.l-footer__dept { margin-top: calc(12 * var(--u)); font-size: max(calc(13 * var(--u)), 12px); line-height: 1.5; letter-spacing: .04em; }
	.l-footer__address { margin-top: calc(18 * var(--u)); font-size: max(calc(13 * var(--u)), 12px); line-height: calc(25 * var(--u)); letter-spacing: .06em; }
	.l-footer__sep { margin: 0 calc(14 * var(--u)); }
	.l-footer__btns { display: flex; gap: calc(10 * var(--u)); margin-top: calc(18 * var(--u)); }
	.l-footer__btn { display: flex; align-items: center; justify-content: center; gap: calc(10 * var(--u)); width: calc(185 * var(--u)); height: calc(40 * var(--u)); font-size: max(calc(14 * var(--u)), 12px); font-weight: 700; letter-spacing: .1em; }
	.l-footer__btn img { width: calc(20 * var(--u)); height: calc(20 * var(--u)); }
	.l-footer__btn--web { background: var(--c-orange); }
	.l-footer__btn--web img { filter: brightness(0) invert(1); }
	.l-footer__btn--line { background: var(--c-line); }
	.l-footer__btn:hover { opacity: .85; }
	.l-footer__insta { display: inline-block; margin-top: calc(20 * var(--u)); }
	.l-footer__insta img { width: calc(26 * var(--u)); height: calc(26 * var(--u)); }
	.l-footer__nav { display: flex; flex: 1; justify-content: space-between; gap: calc(24 * var(--u)); padding-top: calc(4 * var(--u)); }
	.l-footer__col { flex: none; white-space: nowrap; }
	.l-footer__col--last { margin-right: calc(46 * var(--u)); }
	.l-footer__col > li + li { margin-top: calc(8 * var(--u)); }
	.l-footer__link { font-size: max(calc(14 * var(--u)), 12px); font-weight: 700; line-height: 2.1; letter-spacing: .1em; }
	.l-footer__sub { margin-top: calc(4 * var(--u)); padding-left: calc(8 * var(--u)); }
	.l-footer__sub li { font-size: max(calc(13 * var(--u)), 12px); line-height: calc(30 * var(--u)); letter-spacing: .1em; }
	.l-footer__sub--2col { display: grid; grid-template-columns: auto auto; column-gap: calc(24 * var(--u)); }
	.l-footer a:hover { opacity: .75; }
	.l-footer__copy { width: calc(1400 * var(--u)); margin: 0 auto; padding: calc(44 * var(--u)) 0 calc(80 * var(--u)); text-align: right; font-size: max(calc(11 * var(--u)), 11px); letter-spacing: .04em; line-height: 1.5; }
	.l-footer__copy small { font-size: inherit; }

	/* 1024〜1279px: ナビが収まらないのでドロワー（SP と共通デザイン）に切り替え */
	@media (max-width: 1279px) {
		.l-header__nav { display: none; }
		.l-header__cta { right: calc(110 * var(--u)); }
	}

	/* 下層（暫定） */
	.l-main--page { padding-top: var(--h-header); }
	.l-page { width: calc(1000 * var(--u)); margin: 0 auto; padding: calc(80 * var(--u)) 0 calc(120 * var(--u)); min-height: 50vh; }
	.l-page__title { font-size: max(calc(36 * var(--u)), 12px); font-weight: 500; letter-spacing: .1em; margin-bottom: calc(40 * var(--u)); }
}

/* =========================================================
   ドロワー・トグル（SP と 1024〜1279px 共通 / Figma SP「hv-nav」390x905）
   ========================================================= */
@media (max-width: 1279px) {
	.l-header__toggle {
		position: relative; z-index: 2; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: calc(7 * var(--s));
		width: calc(57 * var(--s)); height: calc(28 * var(--s)); border-radius: 99px; background: var(--c-gold);
	}
	.l-header__toggle span { display: block; width: calc(22 * var(--s)); height: 1.5px; background: #fff; transition: translate .3s, rotate .3s; }
	.l-header__toggle[aria-expanded="true"] span:nth-child(1) { translate: 0 calc(calc(3.5 * var(--s)) + .75px); rotate: 25deg; }
	.l-header__toggle[aria-expanded="true"] span:nth-child(2) { translate: 0 calc(calc(-3.5 * var(--s)) - .75px); rotate: -25deg; }

	.l-drawer { display: block; position: fixed; inset: var(--h-header) 0 0; z-index: 99; overflow-y: auto; overscroll-behavior: contain; background: #f3f2f1; }
	.l-drawer[hidden] { display: none; }
	.l-drawer__nav { padding: calc(26 * var(--s)) calc(15 * var(--s)) calc(40 * var(--s)); }
	.l-drawer__acc + .l-drawer__acc { margin-top: calc(10 * var(--s)); }
	.l-drawer__acc:first-child + .l-drawer__acc { margin-top: calc(20 * var(--s)); }
	.l-drawer__acc-head {
		display: flex; align-items: center; justify-content: space-between; height: calc(45 * var(--s)); padding: 0 calc(20 * var(--s));
		border-radius: calc(3 * var(--s)); background: var(--c-brown); color: #fff; font-size: max(calc(17 * var(--s)), 10px); font-weight: 700; letter-spacing: .1em; cursor: pointer; list-style: none;
	}
	.l-drawer__acc.is-gold .l-drawer__acc-head { height: calc(58 * var(--s)); background: var(--c-gold); }
	.l-drawer__acc-head::-webkit-details-marker { display: none; }
	.l-drawer__acc-arrow { width: calc(13 * var(--s)); height: calc(16 * var(--s)); transition: rotate .3s; }
	.l-drawer__acc[open] .l-drawer__acc-arrow { rotate: 180deg; }
	.l-drawer__acc-list { padding: calc(6 * var(--s)) calc(10 * var(--s)) calc(10 * var(--s)); }
	.l-drawer__acc-list a { display: block; padding: calc(11 * var(--s)) calc(6 * var(--s)); border-bottom: 1px solid #ddd8d0; font-size: max(calc(14 * var(--s)), 10px); line-height: 1.5; letter-spacing: .08em; }
	.l-drawer__acc-list a::before { content: ""; display: inline-block; width: calc(6 * var(--s)); height: calc(6 * var(--s)); margin: 0 calc(10 * var(--s)) calc(2 * var(--s)) 0; border-top: 1.5px solid var(--c-gold); border-right: 1.5px solid var(--c-gold); rotate: 45deg; }
	.l-drawer__links { display: grid; grid-template-columns: 1fr 1fr; column-gap: calc(10 * var(--s)); margin-top: calc(20 * var(--s)); border-top: 2px solid #ccc7bf; }
	.l-drawer__links a { display: flex; align-items: center; height: calc(40 * var(--s)); border-bottom: 1px solid #ddd8d0; font-size: max(calc(14 * var(--s)), 10px); letter-spacing: .1em; white-space: nowrap; }
	.l-drawer__reserve { padding: calc(26 * var(--s)) calc(25 * var(--s)) calc(40 * var(--s)); background: var(--c-brown); color: #fff; text-align: center; }
	.l-drawer__reserve-en { font-family: var(--f-en); font-size: max(calc(16 * var(--s)), 10px); line-height: 1.2; letter-spacing: .02em; }
	.l-drawer__reserve-title { margin-top: calc(6 * var(--s)); font-size: max(calc(20 * var(--s)), 10px); font-weight: 700; line-height: 1.6; letter-spacing: .06em; }
	.l-drawer__reserve .c-cta { margin-top: calc(10 * var(--s)); height: calc(60 * var(--s)); }
	.l-drawer__reserve .c-cta--tel { margin-top: calc(18 * var(--s)); }
	.l-drawer__reserve-note { margin-top: calc(20 * var(--s)); font-size: max(calc(12 * var(--s)), 10px); line-height: 1.6; letter-spacing: .04em; }

	.c-cta { display: flex; flex-direction: column; align-items: center; justify-content: center; color: #fff; }
	.c-cta span { display: flex; align-items: center; gap: calc(34 * var(--s)); font-size: max(calc(20 * var(--s)), 10px); font-weight: 700; line-height: 1.2; letter-spacing: .08em; }
	.c-cta img { width: calc(22 * var(--s)); height: calc(22 * var(--s)); }
	.c-cta small { font-size: max(calc(10 * var(--s)), 10px); line-height: 1.4; letter-spacing: .06em; margin-bottom: calc(2 * var(--s)); }
	.c-cta--tel { background: var(--c-text); }
	.c-cta--tel span { gap: calc(24 * var(--s)); font-weight: 500; font-size: max(calc(22 * var(--s)), 10px); }
	.c-cta--web { background: var(--c-orange); }
	.c-cta--web img { filter: brightness(0) invert(1); }
	.c-cta--line { background: var(--c-line); }
}
.l-spbar { display: none; }

/* =========================================================
   SP（1023px 以下）: Figma SP = 390px 幅の座標を sp で指定
   600px 以上（タブレット）は 585px 幅に固定して中央寄せ
   ========================================================= */
@media (max-width: 1023px) {
	:root { --h-header: calc(70 * var(--s)); }
	html { background: #ebe7e2; scroll-padding-top: var(--h-header); }
	body { max-width: calc(390 * var(--s)); margin: 0 auto; padding-bottom: calc(40 * var(--s)); font-size: max(calc(14 * var(--s)), 10px); letter-spacing: .1em; }
	/* 短い項目（見出し・ボタン・表・カード）は文節で折り返して「クリ/ニック」のような分断を防ぐ。長い本文は通常の折り返し。 */
	h1, h2, h3, dd, summary, button, .c-pill, .c-mcard__title, .c-mcard__text, .p-access__target-text, .c-bcard__title, .p-news__list span { word-break: auto-phrase; }
	body { line-break: strict; }

	/* ヘッダー */
	.l-header { position: fixed; top: 0; left: 0; right: 0; z-index: 100; width: calc(390 * var(--s)); height: var(--h-header); margin: 0 auto; transition: background-color .3s, box-shadow .3s; }
	.admin-bar .l-header { top: 46px; }
	.l-header.is-scrolled, .is-drawer-open .l-header { background: rgba(243, 242, 241, .97); box-shadow: 0 1px 8px rgba(53, 45, 37, .06); }
	.is-drawer-open .l-header { box-shadow: none; }
	.l-header__inner { position: relative; height: 100%; }
	.l-header__logo { position: absolute; left: calc(16 * var(--s)); top: calc(9 * var(--s)); display: flex; align-items: flex-start; }
	.l-header__logo-mark { width: calc(53 * var(--s)); height: auto; }
	.l-header__logo-body { display: block; margin-left: calc(5 * var(--s)); padding-top: calc(7 * var(--s)); }
	.l-header__logo-text { display: block; width: calc(168 * var(--s)); height: auto; }
	.l-header__logo-sub { display: block; margin-top: calc(3 * var(--s)); font-size: calc(6.6 * var(--s)); line-height: 1.2; letter-spacing: .04em; color: #8c877c; white-space: nowrap; }
	.l-header__nav, .l-header__cta { display: none; }
	.l-header__toggle { position: absolute; right: calc(17 * var(--s)); top: calc(16 * var(--s)); }
	.l-drawer { left: 0; right: 0; width: calc(390 * var(--s)); margin: 0 auto; }

	/* 下部固定の予約バー */
	.l-spbar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 98; display: grid; grid-template-columns: calc(40 * var(--s)) calc(116 * var(--s)) calc(117 * var(--s)) calc(117 * var(--s)); width: calc(390 * var(--s)); height: calc(40 * var(--s)); margin: 0 auto; }
	.l-spbar a { display: flex; align-items: center; justify-content: center; gap: calc(6 * var(--s)); color: #fff; font-size: max(calc(14 * var(--s)), 10px); font-weight: 700; letter-spacing: .06em; white-space: nowrap; }
	.l-spbar img { width: calc(20 * var(--s)); height: calc(20 * var(--s)); }
	.l-spbar__insta { background: #fff; border: 2px solid transparent; border-image: linear-gradient(135deg, #feda75, #d62976 50%, #4f5bd5) 1; }
	.l-spbar__insta img { width: calc(22 * var(--s)); height: calc(22 * var(--s)); }
	.l-spbar__btn--tel { background: var(--c-text); }
	.l-spbar__btn--tel img { filter: brightness(0) invert(1); }
	.l-spbar__btn--web { background: var(--c-orange); }
	.l-spbar__btn--web img { filter: brightness(0) invert(1); }
	.l-spbar__btn--line { background: var(--c-line); }

	/* 共通パーツ */
	.c-heading__icon { width: calc(24 * var(--s)); height: calc(24 * var(--s)); }
	.c-heading__ja { margin-top: calc(6 * var(--s)); font-size: max(calc(28 * var(--s)), 10px); font-weight: 500; line-height: 1.3; letter-spacing: .1em; }
	.c-heading__en { margin-top: calc(5 * var(--s)); font-size: max(calc(16 * var(--s)), 10px); line-height: 1.2; }
	.c-btn { position: relative; display: flex; align-items: center; justify-content: center; width: calc(300 * var(--s)); height: calc(50 * var(--s)); margin: 0 auto; border-radius: calc(3 * var(--s)); background: var(--c-brown); color: #fff; font-size: max(calc(13 * var(--s)), 10px); letter-spacing: .15em; }
	.c-btn__arrow { position: absolute; right: calc(10 * var(--s)); top: 50%; translate: 0 -50%; width: calc(22 * var(--s)); height: calc(22 * var(--s)); }
	.c-arrow { width: calc(16 * var(--s)); height: calc(16 * var(--s)); }
	.c-caret { display: none; }

	/* ---------- MV ---------- */
	.p-mv { position: relative; height: calc(740 * var(--s)); overflow: hidden; }
	.p-mv__bg { position: absolute; inset: 0; }
	.p-mv__bg-img { width: 100%; height: 100%; object-fit: cover; }
	.p-mv__ring { position: absolute; left: calc(-60 * var(--s)); top: calc(300 * var(--s)); width: calc(371 * var(--s)); height: auto; mix-blend-mode: multiply; opacity: .9; }
	.p-mv__stage { position: absolute; inset: 0; }
	.p-mv__slide { position: absolute; inset: 0; opacity: 0; visibility: hidden; transition: opacity 1.2s ease, visibility 1.2s; }
	.p-mv__slide.is-active { opacity: 1; visibility: visible; }
	.p-mv__photo { position: absolute; left: calc(40 * var(--s)); right: 0; top: calc(78 * var(--s)); height: calc(369 * var(--s)); overflow: hidden; border-radius: calc(10 * var(--s)) 0 0 calc(10 * var(--s)); }
	.p-mv__photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 30%; }
	.p-mv__photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(246, 240, 236, 0) 62%, rgba(246, 240, 236, .75) 100%), linear-gradient(90deg, rgba(246, 240, 236, .45) 0%, rgba(246, 240, 236, 0) 30%); pointer-events: none; }
	.p-mv__slide.is-active .p-mv__photo img { animation: mvZoom 7s ease-out both; }
	.p-mv__text { position: absolute; left: calc(11 * var(--s)); top: calc(375 * var(--s)); z-index: 2; }
	.p-mv__label { font-family: var(--f-en); font-size: max(calc(24 * var(--s)), 10px); line-height: 1.2; letter-spacing: .02em; color: var(--c-gold); }
	.p-mv__num { margin-right: calc(3 * var(--s)); font-size: max(calc(15 * var(--s)), 10px); }
	.p-mv__title { margin-top: calc(9 * var(--s)); padding-left: calc(3 * var(--s)); font-size: max(calc(30 * var(--s)), 10px); font-weight: 700; line-height: calc(46 * var(--s)); letter-spacing: .12em; white-space: nowrap; }
	.p-mv__tags { display: flex; gap: calc(5 * var(--s)); margin-top: calc(17 * var(--s)); }
	.p-mv__tags li { display: flex; align-items: center; height: calc(23 * var(--s)); padding: 0 calc(6 * var(--s)); border: 1px solid var(--c-gold); background: rgba(255, 255, 255, .35); color: var(--c-gold); font-size: calc(10 * var(--s)); line-height: 1; letter-spacing: .08em; white-space: nowrap; }
	.p-mv__lead { margin-top: calc(15 * var(--s)); font-size: max(calc(11 * var(--s)), 10px); line-height: calc(22 * var(--s)); letter-spacing: .12em; white-space: nowrap; }
	@keyframes mvZoom { from { scale: 1.06; } to { scale: 1; } }
	@keyframes mvUp { from { opacity: 0; translate: 0 12px; } to { opacity: 1; translate: 0 0; } }
	.p-mv__points { position: absolute; left: calc(8 * var(--s)); top: calc(617 * var(--s)); z-index: 3; display: grid; grid-template-columns: 1fr 1fr; width: calc(372 * var(--s)); height: calc(107 * var(--s)); padding: 0 calc(12 * var(--s)); background: rgba(255, 255, 255, .6); border-radius: calc(6 * var(--s)); backdrop-filter: blur(6px); }
	.p-mv__points li { position: relative; display: flex; align-items: center; gap: calc(10 * var(--s)); padding-left: calc(6 * var(--s)); font-size: max(calc(12 * var(--s)), 10px); line-height: 1.55; letter-spacing: .04em; white-space: nowrap; }
	.p-mv__points li:nth-child(even) { padding-left: calc(14 * var(--s)); }
	.p-mv__points li:nth-child(-n+2) { border-bottom: 1px solid #e8dccf; }
	.p-mv__points li:nth-child(odd)::after { content: ""; position: absolute; right: 0; top: calc(8 * var(--s)); bottom: 0; width: 1px; background: #e8dccf; }
	.p-mv__points li:nth-child(3)::after { top: 0; bottom: calc(8 * var(--s)); }
	.p-mv__point-icon { display: flex; align-items: center; justify-content: center; flex: none; width: calc(24 * var(--s)); height: calc(30 * var(--s)); }
	.p-mv__point-icon img { max-width: 100%; max-height: 100%; width: auto; height: auto; }
	.p-mv__points li:nth-child(1) img, .p-mv__points li:nth-child(2) img { height: calc(24 * var(--s)); }
	.p-mv__points li:nth-child(3) img { height: calc(28 * var(--s)); }
	.p-mv__points li:nth-child(4) img { width: calc(24 * var(--s)); }
	.p-mv__dots { position: absolute; right: calc(12 * var(--s)); top: calc(90 * var(--s)); z-index: 3; display: flex; gap: calc(8 * var(--s)); }
	.p-mv__dot { width: calc(7 * var(--s)); height: calc(7 * var(--s)); border-radius: 50%; background: rgba(255, 255, 255, .7); box-shadow: 0 0 0 1px rgba(53, 45, 37, .15); }
	.p-mv__dot.is-active { background: var(--c-gold); }

	/* ---------- お悩みから探す ---------- */
	.p-search { padding: calc(78 * var(--s)) calc(10 * var(--s)) calc(80 * var(--s)); }
	.p-search__tabs { display: grid; grid-template-columns: 1fr 1fr; gap: calc(10 * var(--s)); margin-top: calc(45 * var(--s)); }
	.p-search__tab { position: relative; height: calc(58 * var(--s)); border: 1px solid var(--c-gray); font-size: max(calc(15 * var(--s)), 10px); font-weight: 700; line-height: 1.55; letter-spacing: .12em; }
	.p-search__tab.is-active { background: var(--c-text); border-color: var(--c-text); color: #fff; }
	.p-search__tab.is-active::after { content: ""; position: absolute; left: 50%; top: 100%; translate: -50% 0; border: calc(8 * var(--s)) solid transparent; border-top-color: var(--c-text); border-bottom: 0; }
	.p-search__panel { margin-top: calc(33 * var(--s)); padding: calc(19 * var(--s)) calc(10 * var(--s)) calc(21 * var(--s)); background: #fcfbfa; }
	.p-search__list { display: grid; grid-template-columns: 1fr; gap: calc(11 * var(--s)); }
	.p-search__list--sm { grid-template-columns: 1fr 1fr; margin-top: calc(22 * var(--s)); }
	.c-pill { position: relative; display: flex; align-items: center; justify-content: center; height: calc(44 * var(--s)); padding: 0 calc(30 * var(--s)); border: 1.5px solid var(--c-brown); border-radius: 999px; background: #fff; font-size: max(calc(14 * var(--s)), 10px); line-height: 1.35; letter-spacing: .1em; text-align: center; }
	.c-pill--lg { height: calc(49 * var(--s)); font-size: max(calc(14.5 * var(--s)), 10px); }
	.c-pill .c-arrow { position: absolute; right: calc(12 * var(--s)); top: 50%; translate: 0 -50%; }
	.p-search__note { margin-top: calc(27 * var(--s)); font-size: max(calc(13 * var(--s)), 10px); line-height: 1.6; letter-spacing: .08em; text-align: center; }
	.p-search__btn { margin-top: calc(31 * var(--s)); }
	.c-btn--wide { width: auto; min-width: calc(260 * var(--s)); padding-right: calc(52 * var(--s)); }
	.p-blog__meo { order: 5; margin: calc(40 * var(--s)) calc(20 * var(--s)) 0; }

	/* ---------- 診療案内 ---------- */
	.p-menu { display: flex; flex-direction: column; }
	.p-menu__visual { height: calc(400 * var(--s)); overflow: hidden; }
	.p-menu__visual img { width: 100%; height: 100%; object-fit: cover; object-position: 30% 50%; }
	.p-menu__body { display: contents; }
	.p-menu__intro { display: contents; }
	.p-menu .c-heading { order: 1; margin: calc(29 * var(--s)) calc(20 * var(--s)) 0; }
	.p-menu__text { order: 2; margin: calc(38 * var(--s)) calc(20 * var(--s)) 0; font-size: max(calc(14 * var(--s)), 10px); line-height: calc(30 * var(--s)); letter-spacing: .1em; }
	.p-menu__cards { order: 3; margin: calc(21 * var(--s)) calc(20 * var(--s)) 0; }
	.p-menu__btn { order: 4; margin-top: calc(30 * var(--s)); }
	.p-menu__big { display: grid; gap: calc(10 * var(--s)); }
	.p-menu__small { display: grid; grid-template-columns: 1fr 1fr; gap: calc(10 * var(--s)); margin-top: calc(10 * var(--s)); }
	.c-mcard { position: relative; display: flex; flex-direction: column; align-items: center; height: 100%; min-height: calc(180 * var(--s)); padding: calc(10 * var(--s)) calc(10 * var(--s)) calc(40 * var(--s)); background: #fff; }
	.c-mcard__icon { width: calc(56 * var(--s)); height: calc(56 * var(--s)); border-radius: 50%; }
	.c-mcard__title { margin-top: calc(8 * var(--s)); font-size: max(calc(16 * var(--s)), 10px); font-weight: 700; line-height: 1.6; letter-spacing: .1em; text-align: center; }
	.c-mcard__text { align-self: stretch; margin-top: calc(6 * var(--s)); font-size: max(calc(12 * var(--s)), 10px); line-height: 1.5; letter-spacing: .06em; color: var(--c-gray); }
	.c-mcard__arrow { position: absolute; right: calc(9 * var(--s)); bottom: calc(9 * var(--s)); width: calc(30 * var(--s)); height: calc(30 * var(--s)); }
	.c-mcard--big { display: grid; grid-template-columns: calc(72 * var(--s)) 1fr; grid-template-rows: auto 1fr; column-gap: calc(13 * var(--s)); align-items: start; min-height: calc(122 * var(--s)); padding: calc(18 * var(--s)) calc(34 * var(--s)) calc(18 * var(--s)) calc(18 * var(--s)); border: 1.5px solid var(--c-brown); }
	.c-mcard--big .c-mcard__icon { grid-row: 1 / span 2; align-self: center; width: calc(72 * var(--s)); height: calc(72 * var(--s)); }
	.c-mcard--big .c-mcard__title { margin-top: 0; font-size: max(calc(20 * var(--s)), 10px); text-align: left; }
	.c-mcard--big .c-mcard__text { margin-top: calc(2 * var(--s)); font-size: max(calc(13 * var(--s)), 10px); line-height: 1.65; }

	/* ---------- 医院情報 ---------- */
	.p-access { padding: calc(160 * var(--s)) calc(20 * var(--s)) calc(117 * var(--s)); }
	.p-news + .p-access { padding-top: calc(77 * var(--s)); }
	.p-access__logo { display: flex; align-items: center; gap: calc(8 * var(--s)); }
	.p-access__logo-mark { width: calc(83 * var(--s)); }
	.p-access__logo-text { width: calc(259 * var(--s)); }
	.p-access__table { margin-top: calc(24 * var(--s)); border-top: 2px solid #ddd8d0; }
	.p-access__row { display: flex; align-items: center; min-height: calc(62 * var(--s)); padding: calc(9 * var(--s)) 0; border-bottom: 2px solid #ddd8d0; }
	.p-access__row dt { position: relative; flex: none; align-self: stretch; display: flex; align-items: center; width: calc(68 * var(--s)); font-size: max(calc(14 * var(--s)), 10px); line-height: calc(22 * var(--s)); letter-spacing: .1em; white-space: nowrap; }
	.p-access__row dt::after { content: ""; position: absolute; right: 0; top: 0; bottom: 0; border-right: 2px dotted #c9c3ba; }
	.p-access__row dd { padding-left: calc(12 * var(--s)); font-size: max(calc(14 * var(--s)), 10px); line-height: calc(22 * var(--s)); letter-spacing: .1em; }
	.p-access__hours-title { margin-top: calc(33 * var(--s)); font-size: max(calc(15 * var(--s)), 10px); font-weight: 700; line-height: 1.5; letter-spacing: .06em; }
	.c-hours { width: 100%; margin-top: calc(14 * var(--s)); font-size: max(calc(14 * var(--s)), 10px); letter-spacing: .02em; text-align: center; }
	.c-hours th, .c-hours td { height: calc(51 * var(--s)); padding: 0; font-weight: 500; white-space: nowrap; }
	.c-hours thead th { height: calc(46 * var(--s)); background: var(--c-brown); color: #fff; font-size: max(calc(14 * var(--s)), 10px); }
	.c-hours thead th:first-child, .c-hours tbody th { width: calc(98 * var(--s)); padding-left: calc(6 * var(--s)); text-align: left; font-size: max(calc(13 * var(--s)), 10px); }
	.c-hours tbody tr { background: #fff; }
	.c-hours tbody tr + tr { border-top: 1px solid #efebe6; }
	.p-access__notes { margin-top: calc(13 * var(--s)); font-size: max(calc(13 * var(--s)), 10px); line-height: calc(22 * var(--s)); letter-spacing: .04em; }
	.p-access__gap { display: block; }
	.p-access__target { margin-top: calc(17 * var(--s)); padding: calc(10 * var(--s)) calc(10 * var(--s)) calc(12 * var(--s)); border: 1px solid var(--c-gold); border-radius: calc(6 * var(--s)); background: #fdfcfa; text-align: center; }
	.p-access__target-head { display: flex; align-items: center; justify-content: center; gap: calc(8 * var(--s)); }
	.p-access__target-badge { padding: 0 calc(8 * var(--s)); border-radius: 99px; background: var(--c-gold); color: #fff; font-size: max(calc(14 * var(--s)), 10px); line-height: calc(28 * var(--s)); }
	.p-access__target-age { color: var(--c-gold); font-size: max(calc(15 * var(--s)), 10px); font-weight: 700; line-height: calc(28 * var(--s)); }
	.p-access__target-text { margin-top: calc(10 * var(--s)); font-size: max(calc(14 * var(--s)), 10px); line-height: 1.7; letter-spacing: .06em; }
	.p-access__map { margin-top: calc(40 * var(--s)); height: calc(361 * var(--s)); }
	.p-access__map iframe { width: 100%; height: 100%; border: 0; filter: saturate(.85); }

	/* ---------- 予約 ---------- */
	.p-reserve { padding: calc(13 * var(--s)) calc(25 * var(--s)) calc(27 * var(--s)) calc(10 * var(--s)); background: var(--c-brown); color: #fff; }
	.p-reserve__inner { display: grid; grid-template-columns: calc(90 * var(--s)) 1fr; column-gap: calc(10 * var(--s)); }
	.p-reserve__photo img { width: calc(90 * var(--s)); height: calc(110 * var(--s)); object-fit: cover; border-radius: calc(3 * var(--s)); }
	.p-reserve__body { display: contents; }
	.p-reserve__en { grid-column: 2; grid-row: 1; padding-top: calc(16 * var(--s)); font-family: var(--f-en); font-size: max(calc(15 * var(--s)), 10px); line-height: 1.2; }
	.p-reserve__photo { grid-column: 1; grid-row: 1 / span 2; }
	.p-reserve__title { grid-column: 2; grid-row: 2; margin-top: calc(3 * var(--s)); font-size: max(calc(20 * var(--s)), 10px); font-weight: 700; line-height: calc(34 * var(--s)); letter-spacing: .06em; }
	.p-reserve__btns { grid-column: 1 / -1; display: grid; gap: calc(10 * var(--s)); margin: calc(19 * var(--s)) 0 0 calc(15 * var(--s)); }
	.p-reserve__btn { display: flex; flex-direction: column; align-items: center; justify-content: center; height: calc(70 * var(--s)); color: #fff; }
	.p-reserve__btn span { display: flex; align-items: center; gap: calc(34 * var(--s)); font-size: max(calc(22 * var(--s)), 10px); font-weight: 700; line-height: 1.2; letter-spacing: .08em; }
	.p-reserve__btn img { width: calc(24 * var(--s)); height: calc(24 * var(--s)); }
	.p-reserve__btn small { margin-bottom: calc(4 * var(--s)); font-size: max(calc(10 * var(--s)), 10px); letter-spacing: .06em; }
	.p-reserve__btn--tel { background: var(--c-text); }
	.p-reserve__btn--tel span { gap: calc(24 * var(--s)); font-weight: 500; }
	.p-reserve__btn--web { background: var(--c-orange); }
	.p-reserve__btn--web img { filter: brightness(0) invert(1); }
	.p-reserve__btn--line { background: var(--c-line); }
	.p-reserve__note { grid-column: 1 / -1; margin: calc(22 * var(--s)) 0 0 calc(15 * var(--s)); font-size: max(calc(12 * var(--s)), 10px); line-height: 1.6; letter-spacing: .04em; white-space: nowrap; }

	/* ---------- 当院の特徴 ---------- */
	.p-features { position: relative; padding: calc(83 * var(--s)) 0 calc(75 * var(--s)); }
	.p-features::before { content: ""; position: absolute; left: calc(77 * var(--s)); right: 0; top: calc(128 * var(--s)); bottom: 0; background: var(--c-beige); }
	.p-features__head { position: relative; padding: 0 calc(20 * var(--s)) 0 calc(12 * var(--s)); text-align: right; }
	.p-features__en { font-family: var(--f-en); font-size: max(calc(53 * var(--s)), 10px); line-height: 1; letter-spacing: .01em; color: var(--c-gold); white-space: nowrap; }
	.p-features__ja { margin-top: calc(18 * var(--s)); font-size: max(calc(16 * var(--s)), 10px); font-weight: 500; line-height: 1.4; letter-spacing: .12em; }
	.p-features__list { position: relative; display: flex; flex-direction: column; margin-top: calc(45 * var(--s)); }
	.p-features__col { display: contents; }
	.p-feature { padding: 0 calc(20 * var(--s)); }
	.p-feature--01 { order: 1; } .p-feature--02 { order: 2; } .p-feature--03 { order: 3; } .p-feature--04 { order: 4; } .p-feature--05 { order: 5; }
	.p-feature + .p-feature, .p-feature--02, .p-feature--03, .p-feature--04, .p-feature--05 { margin-top: calc(80 * var(--s)); }
	.p-feature--02, .p-feature--04 { padding: 0 calc(20 * var(--s)) 0 calc(40 * var(--s)); }
	.p-feature--05 { display: flex; flex-direction: column; align-items: flex-start; }
	.p-feature__photo { position: relative; width: calc(325 * var(--s)); height: calc(203 * var(--s)); }
	.p-feature__img { width: 100%; height: 100%; object-fit: cover; clip-path: url(#yms-wave); }
	.p-feature__wave { position: absolute; inset: 0; width: 100%; height: 100%; }
	.p-feature__num { position: absolute; width: auto; height: calc(50 * var(--s)); }
	.p-feature--01 .p-feature__num { left: calc(293 * var(--s)); top: calc(-22 * var(--s)); }
	.p-feature--02 .p-feature__num { left: calc(-32 * var(--s)); top: calc(-25 * var(--s)); }
	.p-feature--03 .p-feature__num { left: calc(283 * var(--s)); top: calc(155 * var(--s)); }
	.p-feature--04 .p-feature__num { left: calc(268 * var(--s)); top: calc(163 * var(--s)); }
	.p-feature--05 .p-feature__num { left: calc(-17 * var(--s)); top: calc(-25 * var(--s)); }
	.p-feature__label { display: inline-block; margin-top: calc(2 * var(--s)); padding: 0 calc(11 * var(--s)); border-radius: 99px; background: var(--c-gold); color: #fff; font-family: var(--f-en); font-size: max(calc(14 * var(--s)), 10px); line-height: calc(23 * var(--s)); letter-spacing: .04em; }
	.p-feature__title { margin-top: calc(24 * var(--s)); font-size: max(calc(20 * var(--s)), 10px); font-weight: 700; line-height: calc(32 * var(--s)); letter-spacing: .1em; white-space: nowrap; }
	.p-feature__text { max-width: calc(330 * var(--s)); margin-top: calc(15 * var(--s)); font-size: max(calc(14 * var(--s)), 10px); line-height: calc(27 * var(--s)); letter-spacing: .1em; }
	.p-feature--02 .p-feature__text, .p-feature--04 .p-feature__text { max-width: calc(325 * var(--s)); }

	/* ---------- 院長紹介 ---------- */
	.p-doctor { position: relative; padding: calc(95 * var(--s)) calc(20 * var(--s)) calc(80 * var(--s)); overflow-x: clip; }
	.p-doctor__watermark { position: absolute; right: calc(-30 * var(--s)); top: calc(520 * var(--s)); width: calc(290 * var(--s)); height: auto; opacity: .22; pointer-events: none; }
	.p-doctor .c-heading { position: relative; }
	.p-doctor__body { position: relative; margin-top: calc(33 * var(--s)); }
	.p-doctor__photo { width: calc(250 * var(--s)); margin: 0 auto; }
	.p-doctor__photo img { display: block; width: calc(250 * var(--s)); height: calc(347 * var(--s)); object-fit: cover; }
	.p-doctor__name { margin-top: calc(22 * var(--s)); text-align: center; font-size: max(calc(26 * var(--s)), 10px); font-weight: 500; line-height: 1.2; letter-spacing: .1em; }
	.p-doctor__role { margin-right: calc(6 * var(--s)); font-size: max(calc(14 * var(--s)), 10px); }
	.p-doctor__kana { display: block; margin-top: calc(8 * var(--s)); font-size: max(calc(12 * var(--s)), 10px); letter-spacing: .1em; }
	.p-doctor__content { margin-top: calc(25 * var(--s)); }
	.p-doctor__catch { color: var(--c-gold); font-size: max(calc(26 * var(--s)), 10px); font-weight: 500; line-height: calc(46 * var(--s)); letter-spacing: .12em; }
	.p-doctor__text { margin-top: calc(19 * var(--s)); font-size: max(calc(14 * var(--s)), 10px); line-height: calc(33 * var(--s)); letter-spacing: .1em; }
	.p-doctor__license { margin-top: calc(31 * var(--s)); border-top: 2px solid #ccc7bf; border-bottom: 2px solid #ccc7bf; }
	.p-doctor__license dt { padding: calc(13 * var(--s)) 0 calc(10 * var(--s)); border-bottom: 2px dotted #ccc7bf; font-size: max(calc(14 * var(--s)), 10px); letter-spacing: .1em; }
	.p-doctor__license dd { padding: calc(9 * var(--s)) 0 calc(7 * var(--s)); }
	.p-doctor__license li { font-size: max(calc(14 * var(--s)), 10px); line-height: calc(28 * var(--s)); letter-spacing: .06em; }
	.p-doctor__btn { margin-top: calc(40 * var(--s)); }

	/* ---------- お知らせ ---------- */
	.p-news { margin: 0 calc(10 * var(--s)); border-top: 1px solid #c9c4bc; border-bottom: 1px solid #c9c4bc; padding: calc(53 * var(--s)) calc(10 * var(--s)) calc(57 * var(--s)); }
	.p-news__head { display: contents; }
	.p-news__inner { display: flex; flex-direction: column; }
	.p-news__ja { order: 1; font-size: max(calc(28 * var(--s)), 10px); font-weight: 500; line-height: 1.3; letter-spacing: .14em; }
	.p-news__en { order: 2; margin-top: calc(4 * var(--s)); font-family: var(--f-en); font-size: max(calc(16 * var(--s)), 10px); line-height: 1.2; color: var(--c-gold); }
	.p-news__list { order: 3; margin-top: calc(52 * var(--s)); border-top: 1px dashed #b9b3a8; }
	.p-news__list li { border-bottom: 1px dashed #b9b3a8; }
	.p-news__list a { display: block; padding: calc(20 * var(--s)) 0 calc(18 * var(--s)); font-size: max(calc(14 * var(--s)), 10px); line-height: calc(22 * var(--s)); letter-spacing: .08em; }
	.p-news__list time { display: block; margin-bottom: calc(4 * var(--s)); font-size: max(calc(13 * var(--s)), 10px); letter-spacing: .04em; }
	.p-news__btn { order: 4; margin-top: calc(45 * var(--s)); }
	.p-news__btn .c-btn { width: calc(300 * var(--s)); height: calc(50 * var(--s)); font-size: max(calc(13 * var(--s)), 10px); }
	.p-news__btn .c-btn__arrow { right: calc(10 * var(--s)); width: calc(22 * var(--s)); height: calc(22 * var(--s)); }

	/* ---------- ブログ ---------- */
	.p-blog { position: relative; padding: calc(80 * var(--s)) 0 0; }
	.p-blog::before { content: ""; position: absolute; left: calc(10 * var(--s)); right: calc(10 * var(--s)); top: 0; border-top: 1px solid #c9c4bc; }
	.p-blog__head { display: flex; flex-direction: column; padding: 0 calc(20 * var(--s)); }
	.p-blog__more { order: 3; margin-top: calc(30 * var(--s)); }
	.p-blog__head { display: contents; }
	.p-blog .c-heading { margin: 0 calc(20 * var(--s)); }
	.p-blog { display: flex; flex-direction: column; }
	.p-blog .c-heading { order: 1; }
	.p-blog__list { order: 2; display: flex; gap: calc(15 * var(--s)); margin-top: calc(45 * var(--s)); padding: 0 calc(20 * var(--s)); overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding: 0 calc(20 * var(--s)); scrollbar-width: none; }
	.p-blog__list::-webkit-scrollbar { display: none; }
	.p-blog__list li { flex: none; width: calc(300 * var(--s)); scroll-snap-align: start; }
	.p-blog__more { order: 3; margin-top: calc(30 * var(--s)); }
	.p-blog__insta { order: 4; margin: calc(50 * var(--s)) calc(20 * var(--s)) 0; }
	.c-bcard { display: block; }
	.c-bcard__img { display: block; height: calc(217 * var(--s)); background: #666; overflow: hidden; }
	.c-bcard__img img { width: 100%; height: 100%; object-fit: cover; }
	.c-bcard__meta { display: flex; align-items: center; justify-content: space-between; margin-top: calc(12 * var(--s)); }
	.c-bcard__tag { padding: 0 calc(9 * var(--s)); border-radius: 99px; background: var(--c-gold); color: #fff; font-size: max(calc(12 * var(--s)), 10px); font-weight: 700; line-height: calc(22 * var(--s)); letter-spacing: .06em; }
	.c-bcard__meta time { font-size: max(calc(13 * var(--s)), 10px); letter-spacing: .02em; }
	.c-bcard__title { display: block; margin-top: calc(12 * var(--s)); font-size: max(calc(14 * var(--s)), 10px); line-height: calc(21 * var(--s)); letter-spacing: .08em; }
	.p-blog__insta a { position: relative; display: grid; grid-template-columns: auto 1fr; align-items: center; column-gap: calc(10 * var(--s)); height: calc(103 * var(--s)); padding: calc(28 * var(--s)) calc(50 * var(--s)) 0 calc(26 * var(--s)); border: 2px solid #ee1683; background: #fff; }
	.p-blog__insta-lead { position: absolute; left: 0; right: 0; top: calc(10 * var(--s)); font-size: max(calc(14 * var(--s)), 10px); font-weight: 700; line-height: 1.4; letter-spacing: .06em; text-align: center; white-space: nowrap; }
	.p-blog__insta-lead::before { content: "＼"; margin-right: calc(3 * var(--s)); }
	.p-blog__insta-lead::after { content: "／"; margin-left: calc(3 * var(--s)); }
	.p-blog__insta-icon { width: calc(52 * var(--s)); height: calc(52 * var(--s)); }
	.p-blog__insta-name { font-size: max(calc(32 * var(--s)), 10px); font-weight: 500; line-height: 1; letter-spacing: 0; }
	.p-blog__insta-name small { display: block; margin-bottom: calc(6 * var(--s)); font-size: max(calc(14 * var(--s)), 10px); font-weight: 700; letter-spacing: .1em; }
	.p-blog__insta-arrow { position: absolute; right: calc(22 * var(--s)); bottom: calc(25 * var(--s)); width: calc(18 * var(--s)); height: calc(18 * var(--s)); }
	.p-blog__insta-arrow circle { fill: #ee1683; }

	/* ---------- バナー ---------- */
	.p-banners { display: flex; flex-wrap: wrap; justify-content: center; gap: calc(10 * var(--s)) calc(6 * var(--s)); margin: calc(40 * var(--s)) calc(20 * var(--s)) 0; padding-bottom: calc(80 * var(--s)); } /* 枚数が奇数でも中央に寄せる */
	.p-banners li { height: calc(60 * var(--s)); }
	.p-banners img { width: auto; height: calc(60 * var(--s)); border: 1px solid #e3ded6; }

	/* ---------- フッター ---------- */
	.l-footer { padding: calc(50 * var(--s)) calc(20 * var(--s)) calc(45 * var(--s)); background: var(--c-brown); color: #fff; }
	.l-footer__info { position: relative; }
	.l-footer__logo { display: flex; align-items: center; gap: calc(7 * var(--s)); width: calc(281 * var(--s)); }
	.l-footer__logo-mark { width: calc(65 * var(--s)); }
	.l-footer__logo-text { width: calc(209 * var(--s)); }
	.l-footer__insta { position: absolute; right: 0; top: calc(22 * var(--s)); }
	.l-footer__insta img { width: calc(26 * var(--s)); height: calc(26 * var(--s)); }
	.l-footer__dept { margin-top: calc(10 * var(--s)); font-size: max(calc(10 * var(--s)), 10px); letter-spacing: .04em; }
	.l-footer__address { margin-top: calc(21 * var(--s)); font-size: max(calc(13 * var(--s)), 10px); line-height: calc(26 * var(--s)); letter-spacing: .06em; }
	.l-footer__sep { margin: 0 calc(14 * var(--s)); }
	.l-footer__btns { display: grid; grid-template-columns: 1fr 1fr; gap: calc(10 * var(--s)); margin-top: calc(7 * var(--s)); }
	.l-footer__btn { display: flex; align-items: center; justify-content: center; gap: calc(10 * var(--s)); height: calc(40 * var(--s)); font-size: max(calc(14 * var(--s)), 10px); font-weight: 700; letter-spacing: .1em; }
	.l-footer__btn img { width: calc(20 * var(--s)); height: calc(20 * var(--s)); }
	.l-footer__btn--web { background: var(--c-orange); }
	.l-footer__btn--web img { filter: brightness(0) invert(1); }
	.l-footer__btn--line { background: var(--c-line); }
	.l-footer__nav { display: none; }
	.l-footer__copy { margin-top: calc(32 * var(--s)); text-align: center; font-size: max(calc(11 * var(--s)), 10px); letter-spacing: .04em; line-height: 1.5; }
	.l-footer__copy small { font-size: inherit; }

	/* 360px 未満: MV は文字の下限を外して等比縮小（構図を崩さない）、予約の注記は折り返す */
	@media (max-width: 359px) {
		.p-mv__lead { font-size: calc(11 * var(--s)); }
		.p-mv__points li { font-size: calc(12 * var(--s)); }
		.p-reserve__note { white-space: normal; word-break: auto-phrase; }
	}

	/* 下層（暫定） */
	.l-main--page { padding-top: var(--h-header); }
	.l-page { padding: calc(40 * var(--s)) calc(20 * var(--s)) calc(64 * var(--s)); min-height: 50vh; }
	.l-page__title { font-size: max(calc(24 * var(--s)), 10px); margin-bottom: calc(24 * var(--s)); }
}

/* 1024〜1279px: ドロワーは右側パネル、トグルはヘッダー右上（上の共通指定より後に置く） */
@media (min-width: 1024px) and (max-width: 1279px) {
	.l-header__toggle { position: absolute; right: calc(30 * var(--u)); top: calc(30 * var(--u)); }
	.l-drawer { left: auto; width: 390px; box-shadow: -8px 0 24px rgba(53, 45, 37, .12); }
}

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

/* お悩みから探す: 案内文とボタンを表示中のタブに合わせて出し分ける */
.p-search__foot--checkup { display: none; }
#panel-checkup:not([hidden]) ~ .p-search__foot--checkup { display: block; }
#panel-checkup:not([hidden]) ~ .p-search__foot--symptom { display: none; }
