/*
 * 共通骨格CSS（CLINIC-SITE-TEMPLATE-SPEC.md準拠）
 * トップページのデザインが決まったら、色・フォント・FV等のセクションをこのファイルに追記していく。
 * 色はすべて変数化してあるので、ブランドカラーが決まったら :root の値を差し替えるだけでよい。
 */

:root {
	--color-primary: #0b64ae;
	--color-primary-dark: #0c4b91;
	--color-blue-light: #096ece;
	--color-accent: #f0873f;
	--color-pink: #e8617b;
	--color-teal: #2fa3a3;
	--color-nav-icon: #c2aa79;
	--color-taupe: #958677;
	--color-panel-taupe: #a7998d;
	--color-text: #333333;
	--color-text-light: #6b6b6b;
	--color-bg: #ffffff;
	--color-bg-soft: #f6f7f5;
	--color-border: #e2e2e2;
	--header-height: 88px;
	--header-border-bottom: #a9c6ed;
	--header-badge-bg: #4f9bd6;
	--header-cta-entry-gradient: linear-gradient(180deg, #0070a0 0%, #55baff 100%);
	--header-cta-official-gradient: linear-gradient(180deg, #00a096 0%, #55f7ff 100%);
	/* ページ内アンカー移動時、固定ヘッダー（PC）／追従アイコンナビ（SP）に隠れない分の余白。JS（syncOffsets）が実測値で上書きする。 */
	--anchor-offset: 88px;
	--container-width: 1280px;
	/* 下層ページ本文の基本コンテンツ幅。theme.jsonのlayout.contentSizeと同じ値にすること。 */
	--content-width: 1100px;
	--font-base: "Zen Kaku Gothic New", "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
}

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

html { scroll-behavior: auto; }

/* ページ内アンカーの着地先（見出しのHTMLアンカー等）がヘッダーの下に隠れないよう、上に余白を確保する。
   #page はTOPボタンの着地先なので除外（余白があるとSPで画面最上部まで戻らない） */
[id]:not(#page) { scroll-margin-top: calc(var(--anchor-offset) + 16px); }

body {
	margin: 0;
	font-family: var(--font-base);
	color: var(--color-text);
	background: var(--color-bg);
	line-height: 1.8;
	font-size: 16px;
	letter-spacing: 0.1rem;
	overflow-x: hidden;
	-webkit-font-smoothing: antialiased;
}

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

a { color: inherit; text-decoration: none; }
a:hover { opacity: 0.8; }

ul, ol { margin: 0; padding: 0; list-style: none; }

h1, h2, h3, h4, h5, h6, p { margin: 0; }

button { font-family: inherit; cursor: pointer; }

.container {
	max-width: var(--container-width);
	margin: 0 auto;
	padding: 0 24px;
}

.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	white-space: nowrap;
}

.skip-link {
	position: absolute;
	top: -100px;
	left: 0;
	background: var(--color-primary);
	color: #fff;
	padding: 8px 16px;
	z-index: 10000;
}
.skip-link:focus {
	top: 0;
	position: fixed;
}

/* ボタン共通 */
.btn-more {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 12px 28px;
	border-radius: 999px;
	background: var(--color-primary);
	color: #fff;
	font-weight: 500;
	font-size: 0.95rem;
}
.btn-more--orange { background: var(--color-accent); }
.btn-more--pink { background: var(--color-pink); }
.btn-more--green-bright { background: var(--color-primary); }

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

/* ブロックエディタの「表示設定（PC/SP）」で指定した表示切替。
   SPレイアウトへの切り替わり（max-width:1199px）に合わせている。 */
@media (max-width: 1199px) {
	.u-pc-only { display: none !important; }
}
@media (min-width: 1200px) {
	.u-sp-only { display: none !important; }
}

/* ==========================================================================
   ヘッダー
   ========================================================================== */
.site-header {
	position: sticky;
	top: 0;
	z-index: 500;
	background: #fff;
}

.site-header__top {
	display: flex;
	align-items: stretch;
	justify-content: space-between;
	gap: 16px;
	width: 100%;
}

.site-header__brand {
	display: flex;
	align-items: center;
	padding: 14px 24px;
	flex-shrink: 0;
}

.site-header__logo {
	display: inline-flex;
	align-items: center;
	flex-shrink: 0;
}
.site-header__logo-img {
	height: auto;
	width: auto;
	max-height: 64px;
	max-width: 100%;
	object-fit: contain;
}
.site-header__sp-bar {
	display: none;
}

.site-header__top-right {
	display: flex;
	align-items: stretch;
	flex-shrink: 0;
}

.site-header__cta {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 10px;
	padding: 0 32px;
	color: #fff;
	font-weight: 600;
	letter-spacing: 0.08em;
	white-space: nowrap;
}
.site-header__cta--entry { background: var(--header-cta-entry-gradient); }
.site-header__cta--official {
	background: var(--header-cta-official-gradient);
	white-space: normal;
	text-align: center;
	padding: 0 24px;
}
.site-header__cta-label { font-size: 1.125rem; line-height: 1.4; }
.site-header__cta-arrow { font-size: 1.1rem; line-height: 1; }

.site-header__icon-nav {
	display: none;
}

/* デスクトップナビ：シンプルな横並びテキストナビ、項目間を縦線区切りにする */
.site-header__nav {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	flex: 1;
	min-width: 0;
	padding: 0 16px;
}
.site-nav {
	display: flex;
	align-items: center;
	justify-content: flex-end;
}
.site-nav__item {
	position: relative;
	z-index: 1;
	display: flex;
	align-items: center;
}
.site-nav__item.has-sub:hover,
.site-nav__item.has-sub:focus-within,
.site-nav__item.has-sub.is-open {
	z-index: 100;
}
.site-nav__item:not(:first-child)::before {
	content: "";
	width: 1px;
	height: 16px;
	margin: 0 12px;
	background: #000;
}
.site-nav__item > a {
	display: inline-flex;
	align-items: center;
	padding: 8px 0;
	font-size: 18px;
	color: var(--color-text);
	white-space: nowrap;
}
.site-nav__title {
	font-weight: 500;
	font-size: inherit;
	color: inherit;
	white-space: nowrap;
}
.site-nav__arrow {
	width: 0;
	height: 0;
	margin-left: 6px;
	border-left: 4px solid transparent;
	border-right: 4px solid transparent;
	border-top: 5px solid currentColor;
	opacity: 0.6;
}
.site-nav__sub {
	display: none;
	position: absolute;
	top: 100%;
	left: 0;
	min-width: 440px;
	max-width: calc(100vw - 40px);
	background: #fff;
	border: 1px solid var(--color-border);
	box-shadow: 0 8px 20px rgba(0,0,0,0.08);
	z-index: 101;
	pointer-events: auto;
	text-align: left;
	font-family: "Zen Kaku Gothic New", "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
}
.site-header,
.site-header__top,
.site-header__nav,
.site-nav {
	overflow: visible;
}
.site-nav__item.has-sub:hover .site-nav__sub,
.site-nav__item.has-sub.is-open .site-nav__sub { display: block; }
.site-nav__sub li a {
	display: block;
	padding: 12px 16px;
	border-bottom: 1px solid var(--color-border);
	font-family: inherit;
	font-size: 18px;
	color: var(--color-text);
	transition: background-color 0.2s ease, color 0.2s ease;
}
.site-nav__sub li a:hover,
.site-nav__sub li a:focus,
.site-nav__sub li a:active { background: var(--color-primary-dark); color: #fff; opacity: 1; }

/* サブメニューのグループ化 */
.site-nav__sub.has-groups {
	width: max-content;
	max-width: min(960px, calc(100vw - 40px));
	min-width: 440px;
	padding: 28px 32px;
}
.site-nav__item.has-sub:hover .site-nav__sub.has-groups,
.site-nav__item.has-sub.is-open .site-nav__sub.has-groups {
	display: flex;
	flex-direction: column;
	gap: 16px;
	align-items: stretch;
}
.site-nav__sub-group {
	padding: 0;
	align-self: start;
}
.site-nav__sub-group:last-child { border-bottom: none; }
.site-nav__sub-label {
	margin: 0 0 14px;
	padding-bottom: 10px;
	font-family: inherit;
	font-size: 18px;
	font-weight: 500;
	text-align: left;
	color: var(--color-text);
	border-bottom: 2px solid var(--color-primary-dark);
}
.site-nav__sub-inner {
	display: flex;
	flex-direction: column;
	gap: 4px;
}
.site-nav__sub-inner li a {
	display: flex;
	align-items: center;
	gap: 6px;
	padding: 8px 10px;
	text-align: left;
	font-family: inherit;
	font-size: 18px;
	border-bottom: none;
	border-radius: 4px;
	color: var(--color-text);
	transition: background-color 0.15s ease, color 0.15s ease;
}
.site-nav__sub-inner li a:hover,
.site-nav__sub-inner li a:focus,
.site-nav__sub-inner li a:active { background: var(--color-primary-dark); color: #fff; opacity: 1; }

/* 右端のナビはサブメニューを左方向に開く */
.site-nav__item.has-sub.is-sub-left .site-nav__sub {
	left: auto;
	right: 0;
}

/* ドロワー */
.drawer {
	position: fixed;
	top: 0; right: 0;
	width: 100%;
	height: 100%;
	background: #fff;
	transform: translateX(100%);
	transition: transform 0.3s ease;
	z-index: 1000;
	overflow-y: auto;
	padding: 24px;
}
.drawer.is-active { transform: translateX(0); }
.drawer-overlay {
	position: fixed;
	inset: 0;
	background: rgba(0,0,0,0.5);
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.3s ease;
	z-index: 999;
}
.drawer-overlay.is-active { opacity: 1; pointer-events: auto; }
.drawer__close {
	margin-left: auto;
	display: block;
	width: 40px; height: 40px;
	position: relative;
	background: none;
	border: none;
}
.drawer__close span {
	position: absolute;
	top: 50%; left: 50%;
	width: 24px; height: 2px;
	background: var(--color-text);
}
.drawer__close span:first-child { transform: translate(-50%, -50%) rotate(45deg); }
.drawer__close span:last-child { transform: translate(-50%, -50%) rotate(-45deg); }
.drawer__nav { margin-top: 16px; }
.drawer__nav li a,
.drawer__nav li .js-drawer-toggle {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	padding: 14px 4px;
	border-bottom: 1px solid var(--color-border);
	font-weight: 500;
}
.drawer__nav li .js-drawer-toggle {
	background: none;
	border-left: none;
	border-right: none;
	border-top: none;
	font: inherit;
	color: inherit;
	text-align: left;
	cursor: pointer;
	-webkit-tap-highlight-color: transparent;
}
.drawer__arrow {
	position: relative;
	width: 14px;
	height: 14px;
	flex-shrink: 0;
}
.drawer__arrow::before,
.drawer__arrow::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	background: var(--color-primary);
	transform: translate(-50%, -50%);
	transition: transform 0.2s ease, opacity 0.2s ease;
}
.drawer__arrow::before { width: 100%; height: 2px; }
.drawer__arrow::after { width: 2px; height: 100%; }
.drawer__nav li.is-open .drawer__arrow::after { transform: translate(-50%, -50%) rotate(90deg); opacity: 0; }

.drawer__sub { display: none; padding-left: 16px; }
.drawer__sub li a {
	display: flex;
	align-items: center;
	justify-content: flex-start;
	border-bottom: none;
	padding: 8px 4px;
	font-weight: 400;
	font-size: 0.9rem;
}
.drawer__sub li a::before {
	content: "";
	width: 6px;
	height: 6px;
	border-top: 1px solid var(--color-primary);
	border-right: 1px solid var(--color-primary);
	transform: rotate(45deg);
	margin-right: 10px;
	flex-shrink: 0;
}
.drawer__sub-group { border-bottom: 1px solid var(--color-border); }
.drawer__sub-group:last-child { border-bottom: none; }
.drawer__sub-label {
	margin: 0;
	padding: 10px 4px 10px 16px;
	font-size: 0.8rem;
	font-weight: 500;
	letter-spacing: 0.05em;
	color: #fff;
	background: var(--color-primary-dark);
}
.drawer__sub-inner { padding: 6px 0; }
.drawer__sub-inner li a {
	position: relative;
	display: block;
	padding: 9px 4px 9px 32px;
	border-bottom: none;
	font-size: 0.85rem;
	color: var(--color-text);
}
.drawer__sub-inner li a::before {
	content: "";
	position: absolute;
	left: 16px;
	top: 50%;
	transform: translateY(-50%);
	width: 0;
	height: 0;
	border-top: 3px solid transparent;
	border-bottom: 3px solid transparent;
	border-left: 4px solid var(--color-primary);
}
.drawer__recruit {
	display: block;
	margin-top: 20px;
	padding: 12px;
	text-align: center;
	border: 1px solid var(--color-primary);
	border-radius: 999px;
	color: var(--color-primary);
	font-weight: 500;
}
.drawer__ctas {
	display: flex;
	align-items: stretch;
	gap: 10px;
	margin-top: 28px;
}
.drawer__cta {
	flex: 1 1 0;
	min-width: 0;
	min-height: 72px;
	padding: 12px 10px;
	gap: 6px;
	border-radius: 4px;
	text-decoration: none;
}
.drawer__cta .site-header__cta-label {
	font-size: 0.95rem;
	line-height: 1.35;
	white-space: normal;
}
.drawer__cta.site-header__cta--official {
	padding: 12px 10px;
}
.drawer__hours { margin-top: 24px; }
.drawer__holiday { margin-top: 8px; font-size: 0.85rem; color: var(--color-text-light); }

/* ==========================================================================
   トップページ：ファーストビュー（FV）
   ========================================================================== */
.fv {
	position: relative;
	background: #fff;
	overflow: hidden;
}
.fv__inner {
	position: relative;
}
.fv__catch {
	position: absolute;
	z-index: 2;
	top: 50%;
	left: 0;
	transform: translateY(-50%);
	padding-left: clamp(24px, 6vw, 96px);
}
.fv__catch::before {
	content: "";
	position: absolute;
	inset: -15% -10% -15% -6%;
	background: rgba(255, 255, 255, 0.75);
	filter: blur(36px);
	z-index: -1;
}
.fv__catch-line {
	font-family: "Noto Sans JP", var(--font-base);
	font-size: clamp(2rem, 3.6vw, 3.4rem);
	font-weight: 500;
	line-height: 1.7;
	color: #171717;
	white-space: nowrap;
}
body.home .fv__catch::before {
	opacity: 0;
}
body.home .fv__catch-line {
	opacity: 0;
	transform: translate3d(0, 1em, 0);
}
body.home .fv__catch.is-ready::before {
	animation: fvCatchGlowIn 1.5s ease forwards;
}
body.home .fv__catch.is-ready .fv__catch-line {
	animation: fvCatchLineIn 1.25s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}
body.home .fv__catch.is-ready .fv__catch-line:nth-child(1) { animation-delay: 0.2s; }
body.home .fv__catch.is-ready .fv__catch-line:nth-child(2) { animation-delay: 0.45s; }
body.home .fv__catch.is-ready .fv__catch-line:nth-child(3) { animation-delay: 0.7s; }
@keyframes fvCatchLineIn {
	from {
		opacity: 0;
		transform: translate3d(0, 1em, 0);
	}
	to {
		opacity: 1;
		transform: translate3d(0, 0, 0);
	}
}
@keyframes fvCatchGlowIn {
	from { opacity: 0; }
	to { opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
	body.home .fv__catch::before,
	body.home .fv__catch-line {
		opacity: 1;
		transform: none;
		animation: none;
	}
}
.fv__catch-team {
	display: inline-block;
	height: 2em;
	width: auto;
	vertical-align: -0.55em;
	margin: 0 0.12em;
}
.fv__visual {
	width: 82%;
	margin-left: auto;
}
.fv__visual picture {
	display: block;
}
.fv__visual img {
	display: block;
	width: 100%;
	height: auto;
}
.fv__entry {
	display: none;
}
.fv__entry-close {
	display: none;
}
.fv__entry-link {
	display: block;
}
.fv__entry-link img {
	display: block;
	width: 100%;
	height: auto;
}
.fv__banner-area {
	display: flex;
	justify-content: center;
	background-color: #e8f6fb;
	background-size: cover;
	background-position: center top;
	background-repeat: no-repeat;
	padding: 32px 24px;
}
.fv__banner {
	width: 100%;
	max-width: 900px;
}
.fv__banner img {
	display: block;
	width: 100%;
	height: auto;
}
.fv-hours-table {
	width: auto;
	border-collapse: collapse;
	border-spacing: 0;
	font-size: 0.85rem;
	background: rgba(255,255,255,0.96);
}
.fv-hours-table thead th {
	background: var(--color-nav-icon);
	color: #fff;
	padding: 8px 4px;
	font-weight: 500;
}
.fv-hours-table thead th:not(:first-child),
.fv-hours-table tbody td {
	width: 52px;
}
.fv-hours-table tbody th,
.fv-hours-table tbody td {
	padding: 10px 4px;
	text-align: center;
	border-top: 1px solid var(--color-border);
}
.fv-hours-table__label {
	text-align: left;
	padding-left: 8px !important;
	padding-right: 8px !important;
	font-weight: 500;
	font-size: 16px;
	white-space: nowrap;
}
.fv-hours-note {
	display: flex;
	flex-wrap: wrap;
	gap: 6px 20px;
	padding: 10px 16px 0;
	font-size: 16px;
	background: transparent;
	color: #fff;
}

@media (max-width: 1199px) {
	.fv {
		overflow: visible;
		margin-bottom: 48px;
	}
	.fv__inner {
		position: relative;
		display: block;
		overflow: hidden;
		margin-left: 16px;
		border-radius: 48px 0 0 0;
	}
	.fv__visual {
		width: 100%;
		margin-left: 0;
	}
	.fv__visual img {
		width: 100%;
		height: auto;
	}
	.fv__catch {
		position: absolute;
		top: 33%;
		left: 0;
		right: 0;
		transform: none;
		padding: 0 20px;
		text-align: left;
	}
	.fv__catch::before {
		inset: -20% -8% -20% -8%;
		background: rgba(255, 255, 255, 0.55);
		filter: blur(28px);
	}
	.fv__catch-line {
		font-size: clamp(1.35rem, 5.8vw, 1.85rem);
		font-weight: 500;
		line-height: 1.75;
		white-space: nowrap;
		text-shadow: 0 0 12px rgba(255, 255, 255, 0.9);
	}
	.fv__catch-team {
		height: 1.7em;
		vertical-align: -0.4em;
	}
	.fv__entry {
		display: block;
		position: fixed;
		left: 12px;
		bottom: 16px;
		z-index: 840;
		width: min(68vw, 280px);
		filter: drop-shadow(0 8px 18px rgba(30, 90, 140, 0.28));
	}
	.fv__entry[hidden] {
		display: none;
	}
	.fv__entry-close {
		display: flex;
		align-items: center;
		justify-content: center;
		position: absolute;
		/* sp-banner.png は枠の外に透明余白があるため、枠の右上角（上26.7%・右4.9%）を基準に配置 */
		top: calc(26.7% - 8px);
		right: calc(4.9% - 8px);
		z-index: 1;
		width: 28px;
		height: 28px;
		padding: 0;
		border: none;
		border-radius: 50%;
		background: rgba(15, 40, 70, 0.78);
		box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
		cursor: pointer;
	}
	.fv__entry-close span,
	.fv__entry-close span::before {
		display: block;
		position: absolute;
		width: 12px;
		height: 2px;
		background: #fff;
		border-radius: 1px;
	}
	.fv__entry-close span {
		transform: rotate(45deg);
	}
	.fv__entry-close span::before {
		content: "";
		transform: rotate(90deg);
	}
	.fv__entry-link img {
		display: block;
		width: 100%;
		height: auto;
	}
	.fv__banner-area {
		display: none;
	}
	.fv-hours-table { width: 100%; }
	.fv-hours-table thead th:not(:first-child),
	.fv-hours-table tbody td { width: auto; }
	.fv-hours-note { color: #342323; padding-left: 8px; }
}

.drawer__hours .fv-hours-table {
	width: 100%;
}
.drawer__hours .fv-hours-table thead th:not(:first-child),
.drawer__hours .fv-hours-table tbody td { width: auto; }
.drawer__hours .fv-hours-table thead th:not(:first-child) { padding: 8px 10px; }
.drawer__hours .fv-hours-table__label { font-size: 14px; }
.drawer__hours .fv-hours-note {
	color: #342323;
	padding-left: 4px;
}

/* ==========================================================================
   トップページ：施設から探すセクション
   ========================================================================== */
.facility {
	position: relative;
}
.facility__bg {
	background-size: cover;
	background-position: center;
	background-color: #1b3a63;
}
.facility__overlay {
	position: relative;
	overflow: hidden;
	padding: 72px 0 88px;
	background: linear-gradient(160deg, rgba(20, 74, 140, 0.82) 0%, rgba(35, 100, 170, 0.72) 100%);
}
.facility__stripe {
	position: absolute;
	top: -10%;
	right: -6%;
	width: 340px;
	height: 340px;
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
	filter: brightness(0) invert(1);
	opacity: 0.5;
	pointer-events: none;
	animation: deco-spin 28s linear infinite;
}
.facility .section-head__title {
	color: #fff;
	font-size: 42px;
}
.facility .section-head__title-en {
	color: rgba(255, 255, 255, 0.85);
	font-size: 29px;
	font-weight: 500;
	letter-spacing: 0.16em;
}
.facility__inner { position: relative; }
.facility__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 20px;
	margin-top: 48px;
}
.facility__card {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 220px;
	padding: 24px 28px 44px;
	background: #fff;
	text-align: center;
	overflow: hidden;
	isolation: isolate;
}
.facility__card::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 140%;
	aspect-ratio: 1;
	background: #0070a0;
	border-radius: 50%;
	transform: translate(-50%, -50%) scale(0);
	transition: transform 0.45s ease;
	z-index: 0;
	pointer-events: none;
}
.facility__card:hover::before,
.facility__card:focus-visible::before {
	transform: translate(-50%, -50%) scale(1);
}
.facility__card-name {
	position: relative;
	z-index: 1;
	color: var(--color-primary-dark);
	font-size: 1.15rem;
	font-weight: 500;
	line-height: 1.6;
	transition: color 0.3s ease;
}
.facility__card-arrow {
	position: absolute;
	right: 20px;
	bottom: 20px;
	z-index: 1;
	width: 0;
	height: 0;
	border-top: 6px solid transparent;
	border-bottom: 6px solid transparent;
	border-left: 9px solid var(--color-primary-dark);
	transition: border-left-color 0.3s ease;
}
.facility__card:hover .facility__card-name,
.facility__card:focus-visible .facility__card-name {
	color: #fff;
}
.facility__card:hover .facility__card-arrow,
.facility__card:focus-visible .facility__card-arrow {
	border-left-color: #fff;
}

@media (max-width: 1199px) {
	.facility__overlay { padding: 48px 0 56px; }
	.facility .section-head__title {
		font-size: clamp(22px, 6vw, 28px);
		letter-spacing: 0.08em;
	}
	.facility .section-head__title-en {
		font-size: clamp(0.95rem, 3.5vw, 1.2rem);
	}
	.facility__grid {
		grid-template-columns: 1fr;
		gap: 12px;
		margin-top: 28px;
	}
	.facility__card {
		min-height: 0;
		padding: 18px 20px;
		align-items: center;
		justify-content: space-between;
		gap: 16px;
		text-align: left;
	}
	.facility__card-name {
		font-size: 0.95rem;
		line-height: 1.5;
		flex: 1 1 auto;
	}
	.facility__card-arrow {
		position: static;
		flex-shrink: 0;
		top: auto;
		right: auto;
		bottom: auto;
	}
	.facility__stripe { width: 180px; height: 180px; top: -8%; right: -10%; }
}

/* トップページ：あしらいアニメーション */
@keyframes deco-spin {
	from { transform: rotate(0deg); }
	to { transform: rotate(360deg); }
}
@keyframes deco-spin-reverse {
	from { transform: rotate(0deg); }
	to { transform: rotate(-360deg); }
}
@keyframes deco-spin-y {
	from { transform: translateY(-50%) rotate(0deg); }
	to { transform: translateY(-50%) rotate(360deg); }
}
@keyframes deco-bounce-y {
	0%, 100% { transform: translateY(-50%) scale(1); }
	50% { transform: translateY(calc(-50% - 28px)) scale(1.04); }
}
@keyframes deco-float {
	0%, 100% { transform: translateY(0) rotate(0deg); }
	50% { transform: translateY(-24px) rotate(3deg); }
}
@media (prefers-reduced-motion: reduce) {
	.facility__stripe,
	.buddy-story__deco--right,
	.buddy-story__deco--left,
	.chairman-message__deco--1,
	.conduct__deco--2,
	.best-part__deco {
		animation: none;
	}
}

/* ==========================================================================
   トップページ：理事長メッセージ〜モットー（あしらい共有）
   ========================================================================== */
.buddy-story {
	position: relative;
	overflow: hidden;
}
.buddy-story__seam {
	position: relative;
	height: 0;
	z-index: 1;
}
.buddy-story__deco {
	position: absolute;
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
	pointer-events: none;
}
.buddy-story__deco--right {
	right: -6%;
	top: 0;
	width: 400px;
	height: 400px;
	transform: translateY(-50%);
	animation: deco-spin-y 32s linear infinite;
}
.buddy-story__deco--left {
	left: -8%;
	top: 0;
	width: 380px;
	height: 380px;
	transform: translateY(-50%);
	animation: deco-bounce-y 2.8s ease-in-out infinite;
}

/* ==========================================================================
   トップページ：理事長メッセージセクション
   ========================================================================== */
.chairman-message {
	position: relative;
	padding: 88px 0;
	background-color: #e8f6fb;
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	overflow: visible;
}
.chairman-message__deco {
	position: absolute;
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
	pointer-events: none;
	z-index: 1;
}
.chairman-message__deco--1 {
	top: -10%;
	left: -6%;
	width: 420px;
	height: 420px;
	animation: deco-spin-reverse 30s linear infinite;
}
.chairman-message__inner {
	position: relative;
	z-index: 2;
	display: flex;
	align-items: flex-start;
	gap: 0;
}
.chairman-message__col--left {
	flex: 0 0 60%;
	width: 60%;
	max-width: 60%;
	display: flex;
	flex-direction: column;
	position: relative;
	z-index: 1;
}
.chairman-message__col--right {
	flex: 0 0 50%;
	width: 50%;
	max-width: 50%;
	margin-left: -10%;
	min-width: 0;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	position: relative;
	z-index: 2;
}
.section-head__title.chairman-message__title {
	color: #171717;
	font-size: 42px;
}
.section-head__title-en.chairman-message__title-en {
	margin-top: 8px;
	margin-bottom: 28px;
	font-size: 29px;
	letter-spacing: 0.16em;
	line-height: 1.2;
	color: var(--color-primary);
	font-weight: 500;
}
.chairman-message__lead {
	font-size: 1.125rem;
	font-weight: 500;
	line-height: 1.9;
	color: var(--color-text);
}
.chairman-message__quote {
	margin-top: 16px;
	font-size: 1.3rem;
	font-weight: 500;
	color: var(--color-primary-dark);
	line-height: 1.6;
}
.chairman-message__box {
	position: relative;
	z-index: 2;
	width: 100%;
	max-width: none;
	background: #fff;
	padding: 40px 40px 56px;
	margin-bottom: 48px;
	border: 1px solid rgba(20, 70, 130, 0.1);
	box-shadow: 0 12px 30px rgba(20, 70, 130, 0.08);
	color: var(--color-text);
	font-size: 1.125rem;
	line-height: 2;
}
.chairman-message__box p { margin: 0 0 1.6em; }
.chairman-message__box p:last-child { margin-bottom: 0; }
.chairman-message__photo {
	position: relative;
	z-index: 2;
	width: calc(100% * 40 / 60); /* 全体の約40%（左カラム60%基準） */
	margin-top: 28px;
	margin-bottom: -40px;
	margin-left: 60px;
}
.chairman-message__photo img {
	display: block;
	width: 100%;
	height: auto;
	box-shadow: 0 16px 32px rgba(20, 40, 80, 0.2);
}
.chairman-message__body {
	position: relative;
	z-index: 1;
	width: 100%;
	background: #fff;
	padding: 104px 40px 40px;
	margin-top: -32px;
	border: 1px solid rgba(20, 70, 130, 0.1);
	box-shadow: 0 12px 30px rgba(20, 70, 130, 0.08);
	color: var(--color-text);
	font-size: 1.125rem;
	line-height: 2;
}
.chairman-message__body p { margin: 0 0 1.6em; }
.chairman-message__body > p:last-of-type { margin-bottom: 0; }
.chairman-message__photos {
	display: flex;
	flex-direction: column;
	gap: 24px;
	margin-top: 80px;
	width: 100%;
}
.chairman-message__sub-photo {
	width: 80%; /* 右カラム50%内 → 全体の約40% */
}
.chairman-message__sub-photo:first-child {
	margin-left: auto;
	margin-right: -40px;
}
.chairman-message__sub-photo:last-child {
	margin-left: 100px;
}
.chairman-message__sub-photo img {
	display: block;
	width: 100%;
	height: auto;
}
.chairman-message__sign { margin-top: 32px; }
.chairman-message__sign p { margin: 0; }
.chairman-message__sign-org {
	font-size: 1.125rem;
	color: var(--color-text);
}
.chairman-message__sign-name {
	margin-top: 8px;
	font-size: 1.5rem;
	font-weight: 500;
	color: #171717;
}

@media (max-width: 1199px) {
	.chairman-message { padding: 48px 0 40px; }
	.section-head__title.chairman-message__title {
		font-size: clamp(22px, 6vw, 28px);
		letter-spacing: 0.08em;
	}
	.section-head__title-en.chairman-message__title-en {
		font-size: clamp(0.95rem, 3.5vw, 1.15rem);
		margin-bottom: 20px;
	}
	.chairman-message__lead,
	.chairman-message__box,
	.chairman-message__body {
		font-size: 0.95rem;
		line-height: 1.9;
	}
	.chairman-message__quote {
		font-size: 1.05rem;
		line-height: 1.8;
	}
	.chairman-message__sign-org { font-size: 0.85rem; }
	.chairman-message__sign-name { font-size: 1.15rem; }
	.chairman-message__inner {
		display: flex;
		flex-direction: column;
		gap: 20px;
	}
	.chairman-message__col--left,
	.chairman-message__col--right {
		display: contents;
	}
	.chairman-message__head { order: 1; }
	.chairman-message__photo {
		order: 2;
		width: 78%;
		max-width: none;
		margin: 0 auto;
	}
	.chairman-message__box {
		order: 3;
		padding: 22px 18px;
		margin-bottom: 0;
	}
	.chairman-message__photos {
		order: 4;
		display: flex;
		flex-direction: row;
		justify-content: center;
		align-items: flex-start;
		gap: 0;
		width: 100%;
		margin-top: 30px;
		margin-left: 0;
		margin-right: 0;
	}
	.chairman-message__sub-photo {
		width: 52%;
		max-width: none;
		flex-shrink: 0;
		margin: 0;
	}
	.chairman-message__sub-photo:first-child {
		margin-top: 0;
		margin-left: 0;
		margin-right: -4%;
		position: relative;
		z-index: 1;
	}
	.chairman-message__sub-photo:last-child {
		margin-top: 32px;
		margin-left: 0;
		position: relative;
		z-index: 2;
	}
	.chairman-message__body {
		order: 5;
		padding: 22px 18px;
		margin-top: 0;
	}
	.chairman-message__deco--1 { width: 180px; height: 180px; top: -6%; left: -14%; }
}

/* ==========================================================================
   トップページ：モットーセクション
   ========================================================================== */
.work-motto {
	position: relative;
	padding: 96px 0 88px;
	background: #fff;
	overflow: visible;
}
.work-motto__inner {
	position: relative;
	z-index: 2;
	max-width: 920px;
	margin-left: auto;
	margin-right: auto;
	text-align: center;
}
.work-motto__title {
	color: #171717;
	font-size: clamp(1.75rem, 3.8vw, 2.6rem);
	font-weight: 500;
	letter-spacing: 0.12em;
	line-height: 1.7;
}
.work-motto__body {
	margin-top: 48px;
	color: #333;
}
.work-motto__item + .work-motto__item {
	margin-top: 40px;
}
.work-motto__heading {
	color: var(--color-primary);
	font-size: clamp(1.15rem, 2vw, 1.35rem);
	font-weight: 500;
	letter-spacing: 0.08em;
	line-height: 1.6;
}
.work-motto__text {
	margin-top: 12px;
	font-size: clamp(0.95rem, 1.5vw, 1.05rem);
	line-height: 2.2;
	letter-spacing: 0.06em;
}

@media (max-width: 1199px) {
	.buddy-story__deco--right {
		width: 180px;
		height: 180px;
		right: -12%;
	}
	.buddy-story__deco--left {
		width: 160px;
		height: 160px;
		left: -16%;
	}
	.work-motto { padding: 48px 0 40px; }
	.work-motto__title {
		font-size: clamp(1.25rem, 5.5vw, 1.6rem);
		letter-spacing: 0.06em;
		line-height: 1.6;
	}
	.work-motto__body {
		margin-top: 24px;
		text-align: left;
	}
	.work-motto__item + .work-motto__item { margin-top: 28px; }
	.work-motto__heading { font-size: 1.05rem; }
	.work-motto__text {
		margin-top: 8px;
		font-size: 0.9rem;
		line-height: 1.9;
	}
}

/* ==========================================================================
   トップページ：行動指針セクション
   ========================================================================== */
.conduct {
	position: relative;
	padding: 140px 0 120px;
	overflow: visible;
	margin-top: -2vw;
}
.conduct__bg {
	position: absolute;
	inset: 0;
	background-position: center top;
	background-size: 100% auto;
	background-repeat: no-repeat;
	z-index: 0;
	clip-path: polygon(0 6vw, 100% 0, 100% 100%, 0 100%);
}
.conduct__deco {
	position: absolute;
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
	pointer-events: none;
	z-index: 1;
}
.conduct__deco--2 {
	bottom: calc(120px + 480px);
	right: -6%;
	width: 380px;
	height: 380px;
	opacity: 0.7;
	animation: deco-spin-reverse 36s linear infinite;
}
.conduct__inner {
	position: relative;
	z-index: 2;
	max-width: 920px;
	margin-left: auto;
	margin-right: auto;
}
.conduct__head {
	text-align: center;
	margin-bottom: 48px;
}
.conduct__title {
	color: #171717;
	font-size: 42px;
	font-weight: 500;
	letter-spacing: 0.14em;
	line-height: 1.5;
}
.conduct__title-en {
	margin-top: 10px;
	color: #4aa3d0;
	font-size: 29px;
	font-weight: 500;
	letter-spacing: 0.16em;
	line-height: 1.2;
}
.conduct__list {
	display: flex;
	flex-direction: column;
	gap: 20px;
}
.conduct-card {
	display: flex;
	align-items: center;
	gap: 28px;
	background: #fff;
	border-radius: 12px;
	padding: 28px 36px;
	box-shadow: 0 10px 28px rgba(40, 80, 120, 0.08);
}
.conduct-card__num {
	position: relative;
	flex: 0 0 auto;
	min-width: 100px;
	text-align: center;
	font-size: clamp(3.2rem, 5.5vw, 4.75rem);
	font-weight: 500;
	color: #3a3a3a;
	letter-spacing: 0.04em;
	line-height: 1;
	padding-right: 32px;
}
.conduct-card__num::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 0;
	width: 1px;
	height: calc(100% + 28px);
	background: #000000;
	transform: translateY(-50%);
}
.conduct-card__body {
	flex: 1 1 auto;
	min-width: 0;
}
.conduct-card__title {
	margin: 0;
	color: #2f8fc4;
	font-size: 28px;
	font-weight: 500;
	letter-spacing: 0.06em;
	line-height: 1.6;
}
.conduct-card__text {
	margin: 10px 0 0;
	color: #333;
	font-size: 18px;
	line-height: 1.9;
	letter-spacing: 0.04em;
}
.conduct__photo {
	position: relative;
	z-index: 2;
	margin-top: 80px;
	width: 90%;
	margin-left: 0;
	margin-right: auto;
	border-radius: 0 16px 16px 0;
	overflow: hidden;
	box-shadow: 0 12px 32px rgba(40, 80, 120, 0.1);
}
.conduct__photo img {
	display: block;
	width: 100%;
	height: auto;
	max-height: 520px;
	object-fit: cover;
	object-position: center;
}

@media (max-width: 1199px) {
	.conduct {
		padding: 140px 0 56px;
		margin-top: -1px;
	}
	.conduct__bg {
		background-size: cover;
		background-position: center top;
		clip-path: none;
	}
	/* 白帯を斜めにして、上部をきれいに切り取る */
	.conduct::before {
		content: "";
		position: absolute;
		left: -10%;
		right: -10%;
		top: -2px;
		height: 88px;
		background: #fff;
		transform: skewY(-4deg);
		transform-origin: top left;
		z-index: 1;
		pointer-events: none;
	}
	.conduct__deco--2 { width: 160px; height: 160px; bottom: calc(56px + 200px); right: -14%; }
	.conduct__head { margin-bottom: 24px; }
	.conduct__title {
		font-size: clamp(22px, 6vw, 28px);
		letter-spacing: 0.08em;
	}
	.conduct__title-en {
		font-size: clamp(0.95rem, 3.5vw, 1.2rem);
	}
	.conduct__list { gap: 14px; }
	.conduct-card {
		flex-direction: column;
		align-items: flex-start;
		gap: 12px;
		padding: 18px 16px;
		border-radius: 10px;
	}
	.conduct-card__num {
		min-width: 0;
		padding-right: 0;
		padding-bottom: 10px;
		font-size: clamp(2rem, 9vw, 2.6rem);
	}
	.conduct-card__num::after {
		top: auto;
		right: auto;
		left: 0;
		bottom: 0;
		width: 48px;
		height: 1px;
		transform: none;
	}
	.conduct-card__title { font-size: 18px; }
	.conduct-card__text { font-size: 14px; line-height: 1.8; margin-top: 6px; }
	.conduct__photo {
		margin-top: 32px;
		width: 92%;
		border-radius: 0 10px 10px 0;
	}
	.conduct__photo img {
		max-height: 240px;
	}
}

/* ==========================================================================
   トップページ：チームバディのここがいい
   ========================================================================== */
.best-part {
	position: relative;
	padding: 72px 0 100px;
	background: #fff;
	overflow: hidden;
}
.best-part__head {
	position: relative;
	z-index: 2;
	text-align: left;
	margin-bottom: 0;
}
.best-part__title {
	margin: 0;
	color: #171717;
	font-size: 42px;
	font-weight: 500;
	letter-spacing: 0.3rem;
	line-height: 1.5;
}
.best-part__title-en {
	position: relative;
	z-index: 2;
	margin: 10px 0 -0.55em;
	color: #5eb4d8;
	font-size: 29px;
	font-weight: 500;
	letter-spacing: 0.14em;
	line-height: 1.3;
}
.best-part__panel {
	position: relative;
	z-index: 1;
	width: calc(100% + (100vw - 100%) / 2 + 24px);
	max-width: none;
	background: #e8f6fb;
	border-radius: 28px 0 0 28px;
	padding: 56px 48px 64px;
	padding-right: max(48px, calc((100vw - var(--container-width)) / 2 + 48px));
	overflow: visible;
}
.best-part__deco {
	position: absolute;
	top: -48px;
	right: 0;
	width: 420px;
	height: 300px;
	background-size: contain;
	background-repeat: no-repeat;
	background-position: top right;
	pointer-events: none;
	z-index: 0;
	animation: deco-float 2.5s ease-in-out infinite;
}
.best-part__list {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	gap: 64px;
}
.best-episode {
	display: grid;
	grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
	gap: 48px;
	align-items: center;
}
.best-episode--reverse {
	grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
}
.best-episode--reverse .best-episode__media { order: 2; }
.best-episode--reverse .best-episode__body { order: 1; }
.best-episode__media {
	position: relative;
}
.best-episode__img {
	aspect-ratio: 1 / 1;
	width: 100%;
	background: #fff;
	border-radius: 2px;
	overflow: hidden;
	box-shadow: 0 12px 28px rgba(40, 80, 120, 0.12);
}
.best-episode__img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.best-episode__label {
	position: absolute;
	left: 50%;
	bottom: -36px;
	width: min(340px, 85%);
	height: auto;
	transform: translateX(-20%);
	pointer-events: none;
	z-index: 2;
}
.best-episode--reverse .best-episode__label {
	left: auto;
	right: 0;
	transform: none;
}
.best-episode__body {
	min-width: 0;
	display: flex;
	flex-direction: column;
	justify-content: center;
}
.best-episode__title {
	margin: 0;
}
.best-episode__title span {
	display: inline-block;
	padding: 10px 24px;
	border-radius: 6px;
	background: linear-gradient(90deg, #00a096 0%, #55f7ff 100%);
	color: #fff;
	font-size: 32px;
	font-weight: 500;
	letter-spacing: 0.06em;
	line-height: 1.5;
}
.best-episode:nth-child(odd) .best-episode__title span {
	background: linear-gradient(90deg, #0070a0 0%, #55baff 100%);
}
.best-episode__text {
	margin: 24px 0 0;
	color: #333;
	font-size: 17px;
	line-height: 2;
	letter-spacing: 0.04em;
}
.best-episode__sign {
	margin: 28px 0 0;
	text-align: right;
	color: #000000;
	font-size: 18px;
	font-weight: 500;
	letter-spacing: 0.04em;
}
.best-episode--reverse .best-episode__sign {
	text-align: left;
}

@media (max-width: 1199px) {
	.best-part { padding: 40px 0 56px; }
	.best-part__head { margin-bottom: 0; }
	.best-part__title {
		font-size: clamp(22px, 6vw, 28px);
		letter-spacing: 0.06rem;
		line-height: 1.4;
	}
	.best-part__title-en {
		margin-bottom: -0.4em;
		font-size: clamp(0.95rem, 3.5vw, 1.15rem);
	}
	.best-part__panel {
		width: calc(100% + 16px);
		border-radius: 16px 0 0 16px;
		padding: 32px 14px 40px;
		padding-right: 16px;
	}
	.best-part__deco { width: 180px; height: 130px; top: -20px; right: 0; opacity: 0.7; }
	.best-part__list { gap: 40px; }
	.best-episode,
	.best-episode--reverse {
		grid-template-columns: 1fr;
		gap: 14px;
	}
	.best-episode--reverse .best-episode__media,
	.best-episode--reverse .best-episode__body { order: initial; }
	.best-episode__label {
		left: 0;
		bottom: -20px;
		width: min(200px, 65%);
		transform: none;
	}
	.best-episode--reverse .best-episode__label {
		left: 0;
		right: auto;
	}
	.best-episode__title span { font-size: 17px; padding: 7px 14px; }
	.best-episode__text { font-size: 14px; line-height: 1.85; margin-top: 16px; }
	.best-episode__sign,
	.best-episode--reverse .best-episode__sign {
		text-align: left;
		font-size: 14px;
		margin-top: 18px;
	}
}

/* ==========================================================================
   トップページ：募集職種から探す
   ========================================================================== */
.job-type {
	position: relative;
	padding: 88px 0 0;
	background: #fff;
}
.job-type__head {
	text-align: center;
	margin-bottom: 56px;
}
.job-type__title {
	margin: 0;
	color: #171717;
	font-size: 42px;
	font-weight: 500;
	letter-spacing: 0.3rem;
	line-height: 1.5;
}
.job-type__title-en {
	margin-top: 10px;
	color: #6eb8d8;
	font-size: 29px;
	font-weight: 500;
	letter-spacing: 0.16em;
	line-height: 1.2;
}
.job-type__nav {
	width: 100%;
	aspect-ratio: 16 / 9;
}
.job-type__list {
	position: relative;
	isolation: isolate;
	display: flex;
	align-items: stretch;
	height: 100%;
	margin: 0;
	padding: 0;
	list-style: none;
	border-left: 1px solid #a8d4e8;
	overflow: hidden;
	background: #fff;
}
.job-type__list::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	background-color: transparent;
	background-image: var(--job-hover-bg, none);
	background-size: cover;
	background-position: center;
	opacity: 0;
	transform: scale(1.12);
	pointer-events: none;
}
.job-type__list::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	background: rgba(15, 40, 70, 0.48);
	opacity: 0;
	transition: opacity 0.35s ease;
	pointer-events: none;
}
.job-type__list.is-hover {
	border-left-color: rgba(255, 255, 255, 0.35);
}
.job-type__list.is-hover::before {
	animation: jobTypeBgZoomOut 0.75s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}
.job-type__list.is-hover::after {
	opacity: 1;
}
@keyframes jobTypeBgZoomOut {
	from {
		opacity: 0;
		transform: scale(1.12);
	}
	to {
		opacity: 1;
		transform: scale(1);
	}
}
.job-type__item {
	position: relative;
	z-index: 1;
	flex: 1 1 0;
	min-width: 0;
	display: flex;
	border-right: 1px solid #a8d4e8;
	transition: border-color 0.3s ease;
}
.job-type__list.is-hover .job-type__item {
	border-right-color: rgba(255, 255, 255, 0.35);
}
.job-type__link {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	flex: 1 1 auto;
	width: 100%;
	height: 100%;
	min-height: 0;
	padding: 32px 8px 56px;
	box-sizing: border-box;
	text-align: center;
	transition: background-color 0.25s ease, opacity 0.2s ease;
}
a.job-type__link:hover {
	opacity: 1;
	background: rgba(168, 212, 232, 0.12);
}
.job-type__list.is-hover a.job-type__link:hover,
.job-type__list.is-hover .job-type__item.is-active .job-type__link {
	background: rgba(255, 255, 255, 0.1);
}
.job-type__num {
	flex-shrink: 0;
	color: #6eb8d8;
	font-size: 37px;
	font-weight: 500;
	letter-spacing: 0.08em;
	line-height: 1;
	transition: color 0.3s ease;
}
.job-type__label {
	flex: 1 1 auto;
	display: flex;
	align-items: center;
	justify-content: center;
	writing-mode: vertical-rl;
	text-orientation: mixed;
	color: #171717;
	font-size: 26px;
	font-weight: 500;
	letter-spacing: 0.18em;
	line-height: 1.4;
	white-space: nowrap;
	margin: 36px 0 28px;
	transition: color 0.3s ease;
}
.job-type__arrow {
	position: absolute;
	left: 50%;
	bottom: 20px;
	transform: translateX(-50%);
	display: flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	border: 1px solid transparent;
	background: transparent;
	box-sizing: border-box;
	transition: background-color 0.3s ease, border-color 0.3s ease, opacity 0.3s ease;
	opacity: 0.85;
}
.job-type__arrow::before {
	content: "";
	display: block;
	width: 0;
	height: 0;
	border-style: solid;
	border-width: 5px 0 5px 8px;
	border-color: transparent transparent transparent #6eb8d8;
	transition: border-left-color 0.3s ease;
}
.job-type__list.is-hover .job-type__num,
.job-type__list.is-hover .job-type__label {
	color: #fff;
}
.job-type__list.is-hover .job-type__arrow::before {
	border-left-color: #fff;
}
.job-type__list.is-hover .job-type__item.is-active .job-type__arrow {
	background: rgba(255, 255, 255, 0.95);
	border-color: rgba(255, 255, 255, 0.95);
	opacity: 1;
}
.job-type__list.is-hover .job-type__item.is-active .job-type__arrow::before {
	border-left-color: #0070a0;
}

@media (max-width: 1199px) {
	.job-type { padding: 40px 0 0; }
	.job-type__head {
		margin-bottom: 24px;
		padding: 0 16px;
	}
	.job-type__title {
		font-size: clamp(22px, 6vw, 28px);
		letter-spacing: 0.06rem;
	}
	.job-type__title-en { font-size: clamp(0.95rem, 3.5vw, 1.15rem); }
	.job-type .container {
		padding-left: 0;
		padding-right: 0;
		max-width: none;
	}
	.job-type__nav {
		aspect-ratio: auto;
		width: 100%;
	}
	.job-type__list {
		display: flex;
		flex-direction: column;
		height: auto;
		border: 1px solid #a8d4e8;
		border-left: 1px solid #a8d4e8;
		gap: 0;
		background: #fff;
		overflow: hidden;
	}
	.job-type__list.is-hover {
		border-color: rgba(255, 255, 255, 0.35);
	}
	.job-type__item {
		flex: none;
		width: 100%;
		height: 88px;
		aspect-ratio: auto;
		border: none;
		border-right: none;
		border-bottom: 1px solid #a8d4e8;
		overflow: hidden;
		background: #fff;
		transition: border-color 0.3s ease;
	}
	.job-type__item:last-child {
		border-bottom: none;
	}
	.job-type__list.is-hover .job-type__item {
		border-right-color: transparent;
		border-bottom-color: rgba(255, 255, 255, 0.35);
	}
	.job-type__item:nth-child(3n) { border-right: none; }
	.job-type__item.is-active {
		border-bottom-color: rgba(255, 255, 255, 0.35);
	}
	.job-type__link {
		flex-direction: row;
		align-items: center;
		justify-content: flex-start;
		gap: 16px;
		height: 100%;
		min-height: 0;
		padding: 0 20px;
		text-align: left;
	}
	.job-type__num { font-size: 20px; }
	.job-type__label {
		writing-mode: horizontal-tb;
		text-orientation: mixed;
		font-size: 15px;
		letter-spacing: 0.08em;
		margin: 0;
		justify-content: flex-start;
		flex: 1 1 auto;
	}
	.job-type__arrow {
		position: static;
		left: auto;
		bottom: auto;
		transform: none;
		margin-left: auto;
		width: 32px;
		height: 32px;
		flex-shrink: 0;
	}
	/* SPは各カード内で背景を切り替える */
	.job-type__list::before,
	.job-type__list::after {
		display: none;
	}
	.job-type__item {
		isolation: isolate;
	}
	.job-type__item::before {
		content: "";
		position: absolute;
		inset: 0;
		z-index: 0;
		background-image: var(--job-item-bg, none);
		background-size: cover;
		background-position: center;
		opacity: 0;
		transform: scale(1.12);
		pointer-events: none;
	}
	.job-type__item::after {
		content: "";
		position: absolute;
		inset: 0;
		z-index: 0;
		background: rgba(15, 40, 70, 0.48);
		opacity: 0;
		transition: opacity 0.35s ease;
		pointer-events: none;
	}
	.job-type__item.is-active::before {
		animation: jobTypeBgZoomOut 0.75s cubic-bezier(0.22, 1, 0.36, 1) forwards;
	}
	.job-type__item.is-active::after {
		opacity: 1;
	}
	.job-type__item .job-type__link,
	.job-type__item .job-type__num,
	.job-type__item .job-type__label,
	.job-type__item .job-type__arrow {
		position: relative;
		z-index: 1;
	}
	.job-type__item.is-active .job-type__num,
	.job-type__item.is-active .job-type__label {
		color: #fff;
	}
	.job-type__item.is-active .job-type__arrow {
		background: rgba(255, 255, 255, 0.95);
		border-color: rgba(255, 255, 255, 0.95);
		opacity: 1;
	}
	.job-type__item.is-active .job-type__arrow::before {
		border-left-color: #0070a0;
	}
}

/* ==========================================================================
   トップページ：写真ループ（上下ズレ＋無限スクロール）
   ========================================================================== */
.photo-loop {
	padding: 80px 0 96px;
	overflow: hidden;
	background: #fff;
}
.photo-loop__viewport {
	overflow: hidden;
}
.photo-loop__track {
	display: flex;
	width: max-content;
	animation: photoLoopMarquee 40s linear infinite;
}
.photo-loop__group {
	display: flex;
	align-items: center;
	gap: 36px;
	padding-right: 36px;
}
.photo-loop__item {
	flex-shrink: 0;
	width: 380px;
	aspect-ratio: 4 / 3;
	margin: 0;
	background: #e6e6e6;
	overflow: hidden;
	box-shadow: 0 12px 28px rgba(40, 80, 120, 0.16);
}
.photo-loop__item:nth-child(odd) {
	transform: translateY(-36px);
}
.photo-loop__item:nth-child(even) {
	transform: translateY(36px);
}
.photo-loop__item img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
@keyframes photoLoopMarquee {
	from { transform: translateX(0); }
	to { transform: translateX(-50%); }
}
@media (prefers-reduced-motion: reduce) {
	.photo-loop__track { animation: none; }
}

@media (max-width: 1199px) {
	.photo-loop { padding: 40px 0 48px; }
	.photo-loop__group { gap: 14px; padding-right: 14px; }
	.photo-loop__item {
		width: 200px;
		box-shadow: 0 6px 16px rgba(40, 80, 120, 0.12);
	}
	.photo-loop__item:nth-child(odd) { transform: translateY(-16px); }
	.photo-loop__item:nth-child(even) { transform: translateY(16px); }
	.photo-loop__track { animation-duration: 28s; }
}

/* ==========================================================================
   トップページ：全幅横長バナー
   ========================================================================== */
.wide-banner {
	width: 100%;
	overflow: hidden;
	line-height: 0;
	background: #e6e6e6;
}
.wide-banner__img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 3 / 1;
	object-fit: cover;
}

@media (max-width: 1199px) {
	.wide-banner__img {
		aspect-ratio: 2.4 / 1;
	}
}

/* ==========================================================================
   トップページ：法人・施設一覧
   ========================================================================== */
.corp-sites {
	position: relative;
	overflow: hidden;
	padding: 80px 0 96px;
	color: #fff;
}
.corp-sites__bg,
.corp-sites__overlay {
	position: absolute;
	inset: 0;
	pointer-events: none;
}
.corp-sites__bg {
	background-position: center;
	background-size: cover;
	background-repeat: no-repeat;
}
.corp-sites__overlay {
	background: rgba(11, 100, 174, 0.78);
}
.corp-sites__inner {
	position: relative;
	z-index: 1;
}
.corp-sites__brand {
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 40px;
}
.corp-sites__logo {
	display: block;
	height: 56px;
	width: auto;
	max-width: min(420px, 90%);
}
.corp-sites__hq {
	max-width: 920px;
	margin: 0 auto 40px;
	padding: 36px 40px 32px;
	background: #0c4b91;
	text-align: center;
}
.corp-sites__hq-name {
	margin: 0;
	color: #fff;
	font-size: 28px;
	font-weight: 500;
	letter-spacing: 0.14em;
	line-height: 1.4;
}
.corp-sites__hq-address {
	margin: 14px 0 0;
	color: #fff;
	font-size: 15px;
	font-weight: 500;
	letter-spacing: 0.04em;
	line-height: 1.7;
}
.corp-sites__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	margin-top: 22px;
	padding: 10px 28px;
	border-radius: 0;
	font-size: 15px;
	font-weight: 500;
	letter-spacing: 0.08em;
	line-height: 1.4;
	text-decoration: none;
	transition: opacity 0.2s ease, background-color 0.2s ease, color 0.2s ease;
}
.corp-sites__btn:hover {
	opacity: 0.9;
}
.corp-sites__btn--outline {
	border: 1px solid #fff;
	color: #fff;
	background: transparent;
}
.corp-sites__btn--outline:hover {
	opacity: 1;
	background: rgba(255, 255, 255, 0.12);
}
.corp-sites__btn--solid {
	border: 1px solid transparent;
	color: #fff;
	background: #0b64ae;
}
.corp-sites__btn--solid:hover {
	opacity: 1;
	background: #0c4b91;
}
.corp-sites__btn-arrow {
	display: block;
	width: 0;
	height: 0;
	border-style: solid;
	border-width: 5px 0 5px 8px;
	border-color: transparent transparent transparent currentColor;
}
.corp-sites__grid {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 20px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.corp-sites__card {
	display: flex;
	flex-direction: column;
	align-items: center;
	width: calc((100% - 60px) / 4);
	min-width: 0;
	padding: 28px 20px 24px;
	background: #fff;
	text-align: center;
	box-shadow: 0 10px 24px rgba(20, 50, 90, 0.16);
}
.corp-sites__card-name {
	margin: 0;
	color: #0b64ae;
	font-size: 18px;
	font-weight: 500;
	letter-spacing: 0.04em;
	line-height: 1.3;
}
.corp-sites__card-address {
	flex: 1 1 auto;
	margin: 14px 0 0;
	color: #333;
	font-size: 13px;
	font-weight: 500;
	letter-spacing: 0.02em;
	line-height: 1.5;
}
.corp-sites__card .corp-sites__btn {
	margin-top: 20px;
	padding: 8px 22px;
	font-size: 14px;
}

@media (max-width: 1199px) {
	.corp-sites { padding: 48px 0 56px; }
	.corp-sites__brand { margin-bottom: 20px; }
	.corp-sites__logo { height: 36px; }
	.corp-sites__hq {
		padding: 22px 16px 20px;
		margin-bottom: 20px;
	}
	.corp-sites__hq-name {
		font-size: 20px;
		letter-spacing: 0.06em;
	}
	.corp-sites__hq-address {
		font-size: 12px;
		line-height: 1.6;
		margin-top: 10px;
	}
	.corp-sites__btn {
		margin-top: 16px;
		padding: 8px 18px;
		font-size: 13px;
	}
	.corp-sites__grid { gap: 12px; }
	.corp-sites__card {
		width: 100%;
		padding: 18px 14px 16px;
	}
	.corp-sites__card-name { font-size: 16px; }
	.corp-sites__card-address {
		font-size: 12.5px;
		line-height: 1.55;
		margin-top: 10px;
	}
	.corp-sites__card .corp-sites__btn {
		margin-top: 14px;
		padding: 7px 16px;
		font-size: 13px;
	}
}

@media (max-width: 599px) {
	.corp-sites__card { width: 100%; }
}

/* ==========================================================================
   トップページ：特徴セクション
   ========================================================================== */
.features {
	position: relative;
	padding: 64px 0 88px;
}
.features__inner { position: relative; }
.features__side {
	writing-mode: vertical-rl;
	position: absolute;
	left: -8px;
	top: 90px;
	height: 420px;
	font-size: 0.7rem;
	letter-spacing: inherit;
	color: var(--color-text-light);
}
/* セクション見出し共通（タイトル＋英字サブ＋3点ドット）：features・medical-menu等で使い回す */
.section-head { text-align: center; padding-top: 8px; }
.section-head__title {
	color: var(--color-primary-dark);
	font-size: 38px;
	font-weight: 500;
	letter-spacing: 0.3rem;
}
.section-head__title-en {
	margin-top: 10px;
	font-size: 0.75rem;
	letter-spacing: inherit;
	color: var(--color-text-light);
	font-weight: 500;
}
.section-head__dots {
	display: flex;
	justify-content: center;
	margin-top: 18px;
}
.section-head__dots img {
	display: block;
	width: 56px;
	height: 16px;
}

@media (max-width: 1199px) {
	.section-head__title { font-size: clamp(24px, 6.5vw, 32px); letter-spacing: 0.02rem; line-height: 1.4; }
}

.features__grid {
	margin-top: 56px;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 32px;
}
.feature-card {
	display: flex;
	position: relative;
	border: 1px solid transparent;
	color: inherit;
	text-decoration: none;
	transition: opacity 0.2s ease;
}
a.feature-card:hover { opacity: 1; }
.feature-card--link::after {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(255, 255, 255, 0);
	pointer-events: none;
	z-index: 2;
	transition: background 0.25s ease;
}
.feature-card--link:hover::after {
	background: rgba(255, 255, 255, 0.28);
}
.feature-card--highlight { border-color: transparent; }
.feature-card__img { flex: 0 0 50%; overflow: hidden; }
.feature-card__img img { width: 100%; height: 100%; object-fit: cover; }
.feature-card__body {
	flex: 1;
	background: #fcf5ea;
	padding: 32px 24px 28px 0;
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	gap: 2px;
	min-width: 0;
}
.feature-card__lines {
	display: flex;
	flex-direction: column;
	gap: 4px;
	align-items: flex-start;
	margin-left: -88px;
	position: relative;
	z-index: 1;
}
.feature-card__line {
	display: inline-block;
	background: #fff;
	padding: 10px 22px;
	font-weight: 500;
	font-size: 1.55rem;
	line-height: 1.4;
	color: var(--color-text);
	width: fit-content;
	box-shadow: 0 1px 0 rgba(0,0,0,0.04);
}
.feature-card__btn {
	margin-top: auto;
	align-self: flex-end;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	padding: 12px 12px;
	min-width: 200px;
	box-sizing: border-box;
	background: linear-gradient(120deg, #c9beb1 0%, #988575 100%);
	color: #fff;
	font-weight: 500;
	font-size: 17px;
}
.feature-card__btn-arrow {
	width: 0;
	height: 0;
	border-top: 5px solid transparent;
	border-bottom: 5px solid transparent;
	border-left: 7px solid #fff;
}

@media (max-width: 1199px) {
	.features { padding-bottom: 0; }
	.features__side { display: none; }
	.features__grid { grid-template-columns: 1fr; }
	.feature-card { flex-direction: column; }
	.feature-card__img { flex-basis: auto; height: 200px; }
	.feature-card__body { padding: 0 20px 24px; gap: 28px; }
	.feature-card__lines {
		margin-left: -20px;
		margin-top: -68px;
	}
	.feature-card__line { font-size: 1.25rem; }
}

/* ==========================================================================
   トップページ：診療案内メニュー
   ========================================================================== */
.medical-menu { padding: 64px 0 88px; }
.medical-menu__panel {
	margin-top: 48px;
	background: #ddd4c6;
	padding: 48px;
	display: flex;
	flex-direction: column;
	gap: 32px;
}
.medical-menu__banner {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 16px;
	padding: 26px 40px;
	background: linear-gradient(to top, #c9beb1 0%, #988575 100%);
}
.medical-menu__banner-text {
	color: #fff;
	font-size: 38px;
	font-weight: 500;
	letter-spacing: inherit;
	text-align: center;
}
.medical-menu__banner-icon { width: 24px; height: 36px; flex-shrink: 0; }
.medical-menu__banner-icon img { width: 100%; height: 100%; object-fit: contain; }

.medical-menu__grid {
	margin-top: 0;
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 28px;
}
.medical-menu__item {
	display: block;
	position: relative;
	background: #fff;
	padding: 36px 24px 28px;
	text-align: center;
}
.medical-menu__item-icon {
	width: 90px;
	height: 90px;
	margin: 0 auto;
	border-radius: 50%;
	background: linear-gradient(135deg, #c2b6a8, var(--color-taupe));
	display: flex;
	align-items: center;
	justify-content: center;
}
.medical-menu__item-icon img { width: 46px; height: 46px; object-fit: contain; }
.medical-menu__item-text {
	display: block;
	margin-top: 18px;
}
.medical-menu__item-label {
	display: block;
	color: #342323;
	font-weight: 500;
	font-size: 20px;
	letter-spacing: 0;
	line-height: 1.4;
	white-space: nowrap;
}
.medical-menu__item-arrow {
	position: absolute;
	right: 18px;
	bottom: 18px;
	width: 0;
	height: 0;
	border-top: 5px solid transparent;
	border-bottom: 5px solid transparent;
	border-left: 7px solid #ddd4c6;
}

@media (max-width: 1199px) {
	.medical-menu__panel { padding: 15px; gap: 15px; }
	.medical-menu__grid { grid-template-columns: repeat(2, 1fr); gap: 10px; }
	.medical-menu__banner { padding: 20px 24px; }
	.medical-menu__banner-text { font-size: clamp(22px, 6.5vw, 28px); }
	.medical-menu__item { padding: 25px 6px 20px; }
	.medical-menu__item-text {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		gap: 4px;
		max-width: 100%;
	}
	.medical-menu__item-label {
		display: block;
		font-size: 12px;
		letter-spacing: 0;
		white-space: nowrap;
		text-align: left;
	}
	.medical-menu__item-arrow {
		position: static;
		flex-shrink: 0;
	}
}

/* ==========================================================================
   トップページ：注目トピック
   ========================================================================== */
.spotlight-row {
	display: flex;
	min-height: 480px;
}
.spotlight-row--reverse { flex-direction: row-reverse; }
.spotlight-row__img { flex: 0 0 44%; overflow: hidden; }
.spotlight-row__img img { width: 100%; height: 100%; object-fit: cover; }
.spotlight-row__panel {
	flex: 1;
	background: linear-gradient(to right, #c9beb1 0%, #988575 100%);
	padding: 56px clamp(24px, 5vw, 80px);
	display: flex;
	flex-direction: column;
	justify-content: center;
}
.spotlight-row__head {
	position: relative;
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 16px;
}
.spotlight-row__tag { height: 56px; width: auto; margin-bottom: 8px; }
.spotlight-row__bubble {
	position: absolute;
	top: -8px;
	right: 160px;
	height: 175px;
	width: auto;
	z-index: 1;
	pointer-events: none;
}
.spotlight-row__heading {
	margin-top: 0;
	color: #fff;
	font-size: clamp(2.2rem, 4.2vw, 3.4rem);
	font-weight: 500;
}
.spotlight-row__heading span {
	font-size: clamp(1.35rem, 2.1vw, 1.7rem);
	font-weight: 400;
	margin-left: 6px;
}
.spotlight-row__subheading {
	margin-top: 18px;
	padding-top: 18px;
	border-top: 1px solid rgba(255,255,255,0.7);
	color: #fff;
	font-size: clamp(1.2rem, 2.4vw, 34px);
	font-weight: 500;
}
.spotlight-row__body {
	margin-top: 16px;
	color: rgba(255,255,255,0.92);
	font-size: 17px;
	line-height: 1.9;
}
.spotlight-row__btn {
	margin-top: 32px;
	align-self: flex-end;
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 14px 26px;
	background: #fff;
	color: #372222;
	font-weight: 500;
	font-size: 17px;
}
.spotlight-row__btn-arrow {
	width: 0;
	height: 0;
	border-top: 7px solid transparent;
	border-bottom: 7px solid transparent;
	border-left: 10px solid #372222;
}

@media (max-width: 1199px) {
	.spotlight-row,
	.spotlight-row--reverse { flex-direction: column; min-height: 0; }
	.spotlight-row__img { flex-basis: auto; height: 260px; }
	.spotlight-row__panel { padding: 40px 24px; }
	.spotlight-row__head { flex-wrap: wrap; row-gap: 12px; }
	.spotlight-row__tag { height: 36px; margin-bottom: 4px; }
	.spotlight-row__bubble { height: 96px; top: 0; right: 0; }
}

/* ==========================================================================
   トップページ：疾患・症状から探す（大タブ＋入れ子の小タブ）
   ========================================================================== */
.disease-search { padding: 64px 0 0; }
.disease-search__bg {
	margin-top: 48px;
	padding: 0 0 88px;
	background-size: cover;
	background-position: center;
	background-color: #2a2420;
}
.disease-search__overlay {
	padding: 0 0 1px;
	background: linear-gradient(180deg, rgba(20,15,10,0.05) 0%, rgba(20,15,10,0.35) 100%);
}
.disease-search__tabs {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
	max-width: 940px;
	margin: 0 auto 32px;
	padding-top: 64px;
}
.disease-search__tab {
	border: none;
	padding: 26px 20px;
	background: #cbcbcb;
	color: #fff;
	font-size: 24px;
	font-weight: 500;
	letter-spacing: inherit;
}
.disease-search__tab.is-active { background: linear-gradient(120deg, #c9beb1 0%, #988575 100%); }

.disease-search__panel { max-width: 940px; margin: 0 auto; }
.disease-search__tab-panel { display: none; background: linear-gradient(120deg, #c9beb1 0%, #988575 100%); padding: 40px; }
.disease-search__tab-panel.is-active { display: block; }

.disease-search__cats {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 10px;
}
.disease-search__cat {
	border: none;
	padding: 20px 12px;
	background: #cbcbcb;
	color: #fff;
	font-weight: 500;
	font-size: 17px;
	letter-spacing: inherit;
}
.disease-search__cat.is-active { background: var(--color-primary-dark); color: #fff; }

.disease-search__items-wrap { margin-top: 32px; }
.disease-search__items {
	display: none;
	grid-template-columns: repeat(4, 1fr);
	gap: 10px;
}
.disease-search__items.is-active { display: grid; }
.disease-search__item {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	background: #fff;
	color: #342323;
	font-weight: 500;
	font-size: 17px;
	padding: 18px 20px;
	text-align: center;
}
.disease-search__item-arrow {
	width: 0;
	height: 0;
	flex-shrink: 0;
	border-top: 5px solid transparent;
	border-bottom: 5px solid transparent;
	border-left: 7px solid var(--color-primary-dark);
}
.disease-search__empty {
	grid-column: 1 / -1;
	background: rgba(255,255,255,0.7);
	padding: 20px;
	text-align: center;
	color: #342323;
}

@media (max-width: 1199px) {
	.disease-search__tabs { grid-template-columns: 1fr; justify-items: center; }
	.disease-search__tab { width: 280px; max-width: 100%; }
	.disease-search__cats { grid-template-columns: repeat(2, 1fr); }
	.disease-search__items { grid-template-columns: repeat(2, 1fr); }
	.disease-search__item { font-size: 16px; padding: 12px 10px; }
	.disease-search__tab-panel { padding: 20px; }
}

/* ==========================================================================
   トップページ：お知らせ
   ========================================================================== */
.top-news { padding: 64px 0 88px; }
.top-news__list { margin-top: 40px; border-top: 1px solid #7b6d35; }
.top-news__item { border-bottom: 1px solid #7b6d35; font-size: 20px; }
.top-news__item a {
	display: flex;
	align-items: center;
	gap: 24px;
	padding: 26px 8px;
}
.top-news__date {
	flex-shrink: 0;
	width: 110px;
	color: #372222;
	font-weight: 500;
	letter-spacing: inherit;
}
.top-news__title {
	flex: 1;
	color: #372222;
}
.top-news__arrow {
	flex-shrink: 0;
	width: 0;
	height: 0;
	border-top: 6px solid transparent;
	border-bottom: 6px solid transparent;
	border-left: 9px solid #342323;
}
.top-news__more { margin-top: 40px; text-align: center; }
.top-news__more-btn {
	display: inline-flex;
	align-items: center;
	gap: 14px;
	padding: 16px 44px;
	background: linear-gradient(120deg, #c9beb1 0%, #988575 100%);
	color: #fff;
	font-weight: 500;
	font-size: 18px;
}
.top-news__more-arrow {
	width: 0;
	height: 0;
	border-top: 5px solid transparent;
	border-bottom: 5px solid transparent;
	border-left: 7px solid #fff;
}

@media (max-width: 1199px) {
	.top-news__item a { gap: 14px; padding: 18px 4px; }
	.top-news__date { width: 90px; font-size: 0.85rem; }
	.top-news__title { font-size: 0.9rem; }
}

/* ==========================================================================
   トップページ：診療案内ブロック（page-header風タイトルバー＋写真＋詳細）
   ========================================================================== */
.info-block__row + .info-block__row { margin-top: 8px; }
.info-block__header {
	background: linear-gradient(120deg, #c9beb1 0%, #988575 100%);
	padding: 56px 24px;
	text-align: center;
}
.info-block__header-title {
	color: #fff;
	font-size: 38px;
	font-weight: 500;
	letter-spacing: 0.3rem;
}
.info-block__header-en {
	margin-top: 10px;
	color: rgba(255,255,255,0.85);
	font-size: 0.75rem;
	letter-spacing: inherit;
	font-weight: 500;
}
.info-block__header .section-head__dots { justify-content: center; margin-top: 16px; }

.info-block__content {
	background: #e7e9f0;
	background-size: cover;
	background-position: center;
	padding: 40px 0 0;
}
.info-block__content-inner {
	position: relative;
	display: grid;
	grid-template-columns: 40% 60%;
	align-items: stretch;
	max-width: none;
	margin: 0;
	padding: 0;
}
.info-block__photo {
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
	width: 50%;
	height: 88%;
	z-index: 2;
	overflow: hidden;
	pointer-events: none;
}
.info-block__photo img { width: 100%; height: 100%; object-fit: cover; display: block; pointer-events: auto; }
.info-block__card {
	grid-column: 2;
	width: auto;
	margin-left: 0;
	background: #fff;
	padding: 56px clamp(28px, 4vw, 64px) 56px max(200px, 28%);
	position: relative;
	z-index: 1;
	box-sizing: border-box;
	min-width: 0;
}
.info-block__heading {
	color: var(--color-primary-dark);
	font-size: clamp(1.5rem, 2.4vw, 1.9rem);
	font-weight: 500;
	letter-spacing: inherit;
}
.info-block__body {
	margin-top: 16px;
	line-height: 1.9;
	font-size: 17px;
	color: #372222;
}

.info-block__checklist-wrap { position: relative; margin-top: 28px; padding-right: 48px; }
.info-block__checklist {
	background: #f3f5f8;
	border-radius: 4px;
	padding: 28px 32px;
}
.info-block__checklist li {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 10px 0;
	font-size: 17px;
}
.info-block__checklist li img { width: 22px; height: 22px; flex-shrink: 0; }
.info-block__checklist li span { color: #372222; }
.info-block__bubble {
	position: absolute;
	top: -28px;
	right: 0;
	width: 130px;
	height: auto;
	z-index: 2;
}

.info-block__buttons { display: flex; gap: 12px; margin-top: 32px; flex-wrap: wrap; }
.info-block__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 5px;
	padding: 16px 28px;
	color: #fff;
	font-weight: 500;
	font-size: 17px;
	flex: 1 1 0;
	min-width: 0;
}
.info-block__btn--navy { background: var(--color-primary-dark); }
.info-block__btn--blue { background: var(--color-blue-light); text-align: center; line-height: 1.35; }
.info-block__btn-text { display: block; text-align: center; }
.info-block__btn-arrow {
	width: 0;
	height: 0;
	flex-shrink: 0;
	border-top: 6px solid transparent;
	border-bottom: 6px solid transparent;
	border-left: 8px solid #fff;
}

.info-block__disease {
	margin-top: 48px;
	padding: 64px clamp(16px, 4vw, 64px) 96px;
}
.info-block__disease-card {
	max-width: 1180px;
	margin: 0 auto;
	background: rgba(249,249,249,0.92);
	padding: 48px clamp(8px, 1.5vw, 16px);
}
.info-block__disease-title {
	text-align: center;
	color: var(--color-primary-dark);
	font-size: clamp(1.3rem, 2.8vw, 34px);
	font-weight: 500;
	letter-spacing: inherit;
}
.info-block__disease-list {
	margin-top: 32px;
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	column-gap: 14px;
	row-gap: 28px;
}
.info-block__disease-list li {
	padding-bottom: 12px;
	border-bottom: 1px solid #b9b9c2;
	font-size: clamp(17px, 1.6vw, 18px);
}
.info-block__disease-link {
	display: flex;
	align-items: center;
	gap: 10px;
	color: #342323;
	text-decoration: none;
}
a.info-block__disease-link {
	color: var(--color-blue-light);
	text-decoration: underline;
}
a.info-block__disease-link:hover {
	color: var(--color-blue-light);
	text-decoration: none;
	opacity: 1;
}
.info-block__disease-check { color: var(--color-blue-light); flex-shrink: 0; }

@media (max-width: 1199px) {
	.info-block__header-title { font-size: clamp(22px, 6.5vw, 30px); letter-spacing: 0.02rem; }
	.info-block__content { padding: 32px 0 0; }
	.info-block__content-inner { display: block; grid-template-columns: none; }
	.info-block__photo {
		position: relative;
		left: auto;
		top: auto;
		transform: none;
		width: 100%;
		height: 220px;
	}
	.info-block__card { width: 100%; margin-left: 0; padding: 32px 24px; }
	.info-block__checklist-wrap { padding-right: 0; }
	.info-block__checklist { padding: 25px 15px; }
	.info-block__bubble { width: 100px; top: -56px; right: -15px; }
	.info-block__btn { padding: 12px 8px; font-size: 15px; }
	.info-block__disease { margin-top: 0; }
	.info-block__disease-list { grid-template-columns: repeat(2, 1fr); }
	.info-block__disease-list li { font-size: 15px; }
}

/* ==========================================================================
   トップページ：ご挨拶
   ========================================================================== */
.greeting { position: relative; padding: 64px 0 24px; overflow: hidden; }
.greeting__row { position: relative; z-index: 1; padding-bottom: 200px; }
.greeting__row + .greeting__row {
	margin-top: 0;
	padding-top: 8px;
}
.greeting__row--reverse { padding-bottom: 120px; }
.greeting__media {
	position: relative;
	min-width: 0;
	z-index: 0;
}
.greeting__bg {
	position: absolute;
	top: 72%;
	width: 480px;
	z-index: -1;
	pointer-events: none;
}
.greeting__bg-img {
	display: block;
	width: 100%;
	height: auto;
	object-fit: contain;
}
.greeting__bg--left {
	left: -80px;
	right: auto;
}
.greeting__bg--right {
	left: auto;
	right: -180px;
}
.greeting__photo {
	position: relative;
	z-index: 1;
}
.greeting__photo-img {
	display: block;
	position: relative;
	z-index: 1;
	width: 100%;
	height: auto;
}

.greeting__inner {
	position: relative;
	z-index: 1;
	margin-top: 60px;
}
.greeting__row + .greeting__row .greeting__inner { margin-top: 24px; }
.greeting__heading {
	position: relative;
	color: #342323;
	font-size: 28px;
	font-weight: 500;
	padding-bottom: 20px;
	margin-bottom: 32px;
	text-align: center;
}
.greeting__heading::after {
	content: "";
	position: absolute;
	left: 50%;
	bottom: 0;
	transform: translateX(-50%);
	width: 48px;
	height: 2px;
	background: var(--color-blue-light);
}
.greeting__content {
	display: grid;
	grid-template-columns: 45fr 55fr;
	gap: 48px;
	align-items: start;
}
.greeting__row--reverse .greeting__content { grid-template-columns: 55fr 45fr; }
.greeting__row--reverse .greeting__media { order: 2; }
.greeting__row--reverse .greeting__body { order: 1; }
.greeting__photo--placeholder {
	aspect-ratio: 4 / 5;
	background: var(--color-bg-soft);
	border: 1px dashed var(--color-border);
}
.greeting__body { min-width: 0; }
.greeting__text { color: #342323; line-height: 2; font-size: 17px; }

.greeting__signature { margin-top: 32px; text-align: right; }
.greeting__signature-clinic { display: block; font-size: 0.95rem; color: #342323; }
.greeting__signature-name { display: block; margin-top: 8px; font-size: 1.3rem; font-weight: 500; color: #342323; }
.greeting__signature-name small { font-size: 0.75rem; font-weight: 400; margin-right: 8px; }

.greeting__btn-wrap { margin-top: 24px; text-align: right; }
.greeting__row--reverse .greeting__signature,
.greeting__row--reverse .greeting__btn-wrap { text-align: left; }
.greeting__btn {
	display: inline-flex;
	align-items: center;
	gap: 14px;
	padding: 16px 44px;
	background: linear-gradient(120deg, #c9beb1 0%, #988575 100%);
	color: #fff;
	font-weight: 500;
	font-size: 18px;
}
.greeting__btn-arrow {
	width: 0;
	height: 0;
	border-top: 5px solid transparent;
	border-bottom: 5px solid transparent;
	border-left: 7px solid #fff;
}

@media (max-width: 1199px) {
	.greeting__heading { font-size: 22px; }
	.greeting__content,
	.greeting__row--reverse .greeting__content { grid-template-columns: 1fr; }
	.greeting__row--reverse .greeting__media,
	.greeting__row--reverse .greeting__body { order: initial; }
	.greeting__media { width: 100%; max-width: 320px; margin: 0 auto; }
	.greeting__bg { width: 260px; }
	.greeting__bg--left { left: -24px; }
	.greeting__bg--right { right: -48px; }
	.greeting__row { padding-bottom: 40px; }
	.greeting__row--reverse { padding-bottom: 80px; }
	.greeting__signature,
	.greeting__btn-wrap,
	.greeting__row--reverse .greeting__signature,
	.greeting__row--reverse .greeting__btn-wrap { text-align: center; }
}

/* ==========================================================================
   トップページ：クリニック名スクロールバナー
   ========================================================================== */
.clinic-marquee {
	position: relative;
	height: 450px;
	overflow: hidden;
}
.clinic-marquee__bg { position: absolute; inset: 0; }
.clinic-marquee__bg img { width: 100%; height: 100%; object-fit: cover; }
.clinic-marquee__track {
	position: absolute;
	left: 0;
	bottom: 32px;
	display: flex;
	align-items: center;
	width: max-content;
	animation: tamaplazaMarquee 30s linear infinite;
}
.clinic-marquee__text {
	display: block;
	height: auto;
	width: auto;
	margin-right: 56px;
	flex-shrink: 0;
	color: rgba(255, 255, 255, 0.45);
	font-family: "Zen Kaku Gothic New", "Hiragino Sans", "Helvetica Neue", Arial, sans-serif;
	font-size: clamp(40px, 6vw, 88px);
	font-weight: 500;
	letter-spacing: 0.06em;
	line-height: 1;
	white-space: nowrap;
}
@keyframes tamaplazaMarquee {
	from { transform: translateX(0); }
	to { transform: translateX(-50%); }
}

@media (max-width: 1199px) {
	.clinic-marquee { height: 220px; }
	.clinic-marquee__text { font-size: 36px; letter-spacing: 0.04em; margin-right: 32px; }
	.clinic-marquee__track { bottom: 20px; }
}

/* ==========================================================================
   下層ページ：ページ上部（タイトル → 全幅アイキャッチ → パンくず）
   ========================================================================== */
.page-header-top { padding: 32px 0 44px; background: var(--color-bg); }
.page-header-top__inner {
	display: flex;
	flex-direction: column;
	gap: 20px;
}
.page-header-top__title-wrap {
	position: relative;
	min-width: 0;
}
.page-header-top__logo-bg {
	position: absolute;
	left: -32px;
	top: 50%;
	transform: translateY(-50%);
	width: 160px;
	max-width: none;
	opacity: 0.6;
	z-index: 0;
	pointer-events: none;
}
.page-header-top__title {
	position: relative;
	z-index: 1;
	color: var(--color-text);
	font-size: clamp(1.8rem, 3.2vw, 2.6rem);
	font-weight: 400;
	letter-spacing: inherit;
}
@media (max-width: 1199px) {
	.page-header-top { padding: 20px 0 0; }
	.page-header-top__inner { gap: 12px; }
	.page-header-top__title { font-size: 1.5rem; padding: 18px 0 16px; }
	.page-header-top__logo-bg { width: 100px; left: -14px; }
}

/* 全幅アイキャッチ */
.page-header-eyecatch { width: 100%; height: 630px; overflow: hidden; }
.page-header-eyecatch img { width: 100%; height: 100%; object-fit: cover; }

@media (max-width: 1199px) {
	.page-header-eyecatch { height: 260px; }
}

/* パンくず（トップ画像の下・左寄せ） */
.page-header-breadcrumb {
	padding: 12px 0 8px;
}
.page-header-breadcrumb .breadcrumb {
	padding: 0;
	text-align: left;
}
.breadcrumb { padding: 16px 0; overflow-x: auto; }
.breadcrumb__list { display: flex; flex-wrap: wrap; gap: 6px; font-size: 0.8rem; color: var(--color-text-light); }
.breadcrumb__item:not(:last-child)::after { content: "\203A"; margin-left: 6px; }
.breadcrumb__item a { color: var(--color-primary-dark); }

/* 目次（固定ページ：content_sectionsから生成） */
.anchor-nav { margin: 8px 0 40px; }
.anchor-nav ul {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px 40px;
}
.anchor-nav li {
	list-style: none;
	display: flex;
	height: 100%;
}
.anchor-nav a {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	flex: 1;
	width: 100%;
	box-sizing: border-box;
	padding-bottom: 14px;
	border-bottom: 1px solid var(--color-border);
	color: var(--color-text);
	font-weight: 500;
	font-size: 18px;
	transition: border-color 0.25s ease, color 0.25s ease;
}
.anchor-nav a::before {
	content: "\2193";
	flex: 0 0 auto;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	margin-top: 0.1em;
	border-radius: 50%;
	background: var(--color-primary-dark);
	color: #fff;
	font-size: 13px;
	line-height: 1;
	transition: background-color 0.25s ease;
}
.anchor-nav a:hover { color: var(--color-primary-dark); border-color: var(--color-primary-dark); opacity: 1; }
.anchor-nav a:hover::before { background: var(--color-primary); }

@media (max-width: 1199px) {
	.anchor-nav ul { grid-template-columns: repeat(2, 1fr); }
}

/* 目次（ブログ：本文中のh2/h3見出しから自動生成） */
.anchor-nav-blog {
	background: var(--color-bg-soft);
	padding: 30px;
	margin: 40px 0;
	border-radius: 8px;
}
.anchor-nav-blog p {
	padding-bottom: 18px;
	margin-bottom: 10px;
	font-size: 1.1rem;
	font-weight: 500;
	border-bottom: 2px solid var(--color-border);
}
.anchor-nav-blog ul { padding: 0; }
.anchor-nav-blog li { list-style: none; border-bottom: 1px solid var(--color-border); }
.anchor-nav-blog li:last-child { border-bottom: none; }
.anchor-nav-blog a {
	position: relative;
	display: block;
	padding: 12px 0 12px 24px;
	color: var(--color-text);
	font-size: 18px;
	line-height: 1.6;
	transition: padding-left 0.25s ease, color 0.25s ease;
}
.anchor-nav-blog a::before {
	content: "";
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
	width: 0;
	height: 0;
	border-top: 5px solid transparent;
	border-bottom: 5px solid transparent;
	border-left: 7px solid var(--color-primary-dark);
}
.anchor-nav-blog a:hover { color: var(--color-primary-dark); padding-left: 28px; opacity: 1; }
.anchor-nav-blog li.is-h3 { margin-left: 20px; border-bottom: 1px dashed var(--color-border); }
.anchor-nav-blog li.is-h3 a { padding-left: 20px; font-size: 16px; }
.anchor-nav-blog li.is-h3 a::before { border-top-width: 4px; border-bottom-width: 4px; border-left-width: 6px; }

/* ==========================================================================
   本文・下層ページ共通
   ========================================================================== */
.page-content { padding: 48px 0 80px; }
.entry-content { max-width: var(--content-width); margin-left: auto; margin-right: auto; font-size: 18px; line-height: 1.9; }
.entry-content h2 {
	position: relative;
	margin: 2.2em 0 1.2em;
	padding: 0 0 1em;
	text-align: center;
	font-size: 2.4rem;
	font-weight: 500;
	letter-spacing: 0.05em;
	color: var(--color-primary-dark);
}
.entry-content h2::before {
	content: "";
	display: block;
	width: 56px;
	height: 16px;
	margin: 0 auto 16px;
	background: url('../../img/section-title-icon.png') no-repeat center / contain;
}
.entry-content h2::after {
	content: "";
	position: absolute;
	left: 50%;
	bottom: 0;
	transform: translateX(-50%);
	width: 60px;
	height: 3px;
	background: var(--color-primary);
}
.entry-content h3 {
	position: relative;
	margin: 1.8em 0 1em;
	padding: 8px 0;
	font-size: 1.3rem;
	font-weight: 500;
	border-bottom: 1px solid var(--color-primary-dark);
}
.entry-content h4 {
	margin: 1.4em 0 0.8em;
	padding: 10px 0;
	font-size: 1.15rem;
	font-weight: 500;
	border-bottom: 1px solid var(--color-blue-light);
}
.entry-content h5 {
	position: relative;
	display: flex;
	align-items: center;
	margin: 1.2em 0 0.6em;
	padding-left: 1.2em;
	font-size: 1.05rem;
	font-weight: 500;
}
.entry-content h5::before {
	content: "";
	position: absolute;
	left: 0;
	width: 0.6em;
	height: 0.6em;
	background: var(--color-blue-light);
	transform: rotate(45deg);
}
.entry-content p { margin-bottom: 1.2em; }
.entry-content ul { list-style: disc; margin: 1em 0 1.5em 1.5em; }
.entry-content ul li { margin-bottom: 0.5em; }
.entry-content ol { list-style: decimal; margin: 1em 0 1.5em 1.5em; }
.entry-content ol li { margin-bottom: 0.5em; }
.entry-content li::marker { letter-spacing: 0; }

/* リストブロックのスタイル「2列」選択時：PCは2列、SPは読みやすさのため1列に戻す */
.entry-content .is-style-two-column {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	column-gap: 32px;
	row-gap: 0.5em;
	margin-left: 0;
	padding-left: 2.5em;
}
.entry-content .is-style-two-column li { margin-bottom: 0; }
@media (max-width: 1199px) {
	.entry-content ul { margin-left: 1em; padding-left: 0.25em; }
	.entry-content ol { margin-left: 1em; padding-left: 0.25em; }
	.entry-content .is-style-two-column {
		grid-template-columns: 1fr;
		padding-left: 1.25em;
	}
}

/* リストブロックのスタイル「チェックマーク」「チェックマーク（2列）」 */
.entry-content .is-style-checkmark,
.entry-content .is-style-checkmark-two-column {
	list-style: none;
	margin-left: 0;
}
.entry-content .is-style-checkmark li,
.entry-content .is-style-checkmark-two-column li {
	position: relative;
	padding-left: 1.6em;
}
.entry-content .is-style-checkmark li::before,
.entry-content .is-style-checkmark-two-column li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.35em;
	width: 1em;
	height: 1em;
	background-color: transparent;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 14' fill='none'%3E%3Cpath d='M1.5 7.5 6 12 16.5 1.5' stroke='%23096ece' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: center;
	background-size: contain;
}
.entry-content .is-style-checkmark-two-column {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	column-gap: 32px;
	row-gap: 0.5em;
}
.entry-content .is-style-checkmark-two-column li { margin-bottom: 0; }
@media (max-width: 1199px) {
	.entry-content .is-style-checkmark-two-column { grid-template-columns: 1fr; }
}
/* リンクの初期色（:whereで詳細度0にし、ブロックエディタで指定した文字色があればそちらを優先する） */
:where(.entry-content a:not(.wp-element-button):not(.wp-block-button__link)),
:where(.entry-content a:not(.wp-element-button):not(.wp-block-button__link):visited) {
	color: var(--color-blue-light);
}
.entry-content a:not(.wp-element-button):not(.wp-block-button__link),
.entry-content a:not(.wp-element-button):not(.wp-block-button__link):visited {
	text-decoration: underline !important;
}
:where(.entry-content a:not(.wp-element-button):not(.wp-block-button__link):hover) {
	color: var(--color-blue-light);
}
.entry-content a:not(.wp-element-button):not(.wp-block-button__link):hover {
	text-decoration: none !important;
	opacity: 1;
}
.entry-content img { border-radius: 8px; }

/* テーブル内画像は中央寄せ（テーマの img { display:block } 対策） */
.entry-content .wp-block-flexible-table-block-table td img,
.entry-content .wp-block-flexible-table-block-table th img,
.entry-content .wp-block-table td img,
.entry-content .wp-block-table th img {
	margin-left: auto;
	margin-right: auto;
}

/* ブロックエディタの全幅レイアウト（.entry-contentからのはみ出し表示）
   コンテンツ幅は基本的に.entry-contentの1パターンのみ。幅広(alignwide)は
   独自スタイルを持たず、通常のコンテンツ幅と同じ見た目になる。 */
.entry-content > .alignfull {
	max-width: none;
	width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
}
.entry-content > .alignfull img { width: 100%; }

/* 全幅ブロックの中に入れたグループブロックは、PCでは.entry-contentの最大幅による
   中央寄せで自然に左右の余白ができるが、SPでは幅が画面幅を超えないため余白が消えてしまう。
   グループ側で個別にpadding指定がある場合はそちらが優先される（インラインstyleのため）。 */
@media (max-width: 1199px) {
	.entry-content > .alignfull > .wp-block-group:not(.alignfull) {
		padding-left: 24px;
		padding-right: 24px;
	}
}
.entry-content > .alignleft {
	float: left;
	margin: 4px 24px 16px 0;
}
.entry-content > .alignright {
	float: right;
	margin: 4px 0 16px 24px;
}

.entry-content .wp-block-buttons { margin: 1.5em 0; }
.entry-content .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 14px 32px;
	border-radius: 999px;
	background: var(--color-primary);
	color: #fff;
	font-weight: 500;
	font-size: 17px;
	text-decoration: none !important;
	transition: opacity 0.25s ease;
}
.entry-content .wp-block-button__link::after {
	content: "";
	width: 0;
	height: 0;
	border-top: 5px solid transparent;
	border-bottom: 5px solid transparent;
	border-left: 7px solid #fff;
}
.entry-content .wp-block-button__link:hover { opacity: 0.8; }

@media (max-width: 1199px) {
	.entry-content { font-size: 16px; }
	.anchor-nav a { font-size: 14px; font-weight: 400; }
	.anchor-nav-blog a { font-size: 16px; }
	.anchor-nav-blog li.is-h3 a { font-size: 14px; }
}

@media (max-width: 600px) {
	.entry-content h2 { font-size: 1.35rem; }
	.entry-content h3 { font-size: 1.1rem; }
	.entry-content h4 { font-size: 1rem; }
	.entry-content h5 { font-size: 0.95rem; }
}

.page-news__back { text-align: center; padding: 24px 0 64px; }

.content-404 { padding: 64px 0; text-align: center; }
.content-404 h2 { font-size: 1.4rem; margin-bottom: 16px; }
.content-404__back { margin-top: 32px; }

/* サイトマップページ */
.sitemap-page { padding: 24px 0 96px; }
.sitemap-page__inner { max-width: var(--container-width); margin: 0 auto; padding: 0 24px; }
.sitemap-page__groups {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 48px;
}
.sitemap-page__group-title {
	font-weight: 500;
	font-size: 1.1rem;
	color: var(--color-primary-dark);
	padding-bottom: 12px;
	margin-bottom: 12px;
	border-bottom: 2px solid var(--color-primary);
}
.sitemap-page__list li { padding: 8px 0; font-size: 0.95rem; }
.sitemap-page__list a { color: var(--color-text); }
.sitemap-page__list a:hover { color: var(--color-primary-dark); }

@media (max-width: 1199px) {
	.sitemap-page__groups { grid-template-columns: repeat(2, 1fr); gap: 32px; }
}

@media (max-width: 600px) {
	.sitemap-page__groups { grid-template-columns: 1fr; }
}


/* ==========================================================================
   診療時間・アクセス（clinic-info 共通パーツ）
   ========================================================================== */
.clinic-info__inner {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 40px;
	padding: 48px 0;
}
.hours-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.85rem;
}
.hours-table th, .hours-table td {
	border: 1px solid var(--color-border);
	padding: 8px;
	text-align: center;
}
.hours-table__label { text-align: left; font-weight: 500; }
.hours-table__label span { display: block; font-size: 0.7rem; color: var(--color-text-light); font-weight: 400; }

.hours-symbol {
	display: inline-block;
	vertical-align: middle;
	letter-spacing: 0;
	font-style: normal;
	line-height: 1;
}
.hours-symbol--dot,
.hours-symbol--dot2 {
	width: 0.7em;
	height: 0.7em;
	border-radius: 50%;
	background: #372222;
}
.hours-symbol--dot2 { background: #372222; }
.hours-symbol--slash {
	width: 0.85em;
	height: 0.85em;
	position: relative;
}
.hours-symbol--slash::before {
	content: "";
	position: absolute;
	left: 50%;
	top: 10%;
	width: 1.5px;
	height: 80%;
	background: var(--color-text-light);
	transform: translateX(-50%) rotate(25deg);
}
.hours-symbol--square {
	width: 0.7em;
	height: 0.7em;
	background: var(--color-accent);
}
.hours-symbol--triangle {
	width: 0;
	height: 0;
	border-left: 0.42em solid transparent;
	border-right: 0.42em solid transparent;
	border-bottom: 0.72em solid #096ece;
}

.hours-legend { display: flex; flex-wrap: wrap; gap: 8px 20px; margin-top: 12px; font-size: 0.8rem; }
.hours-legend li { display: flex; align-items: center; gap: 4px; }

.clinic-info__holiday { margin-top: 12px; font-size: 0.85rem; }
.clinic-info__address { margin-top: 16px; font-size: 0.9rem; }

.reception-blocks { margin-top: 20px; display: grid; gap: 16px; }
.reception-block__title { font-weight: 500; margin-bottom: 4px; }
.reception-block__lines { font-size: 0.85rem; color: var(--color-text-light); }

.reservation-notice {
	margin-top: 20px;
	padding: 16px;
	background: var(--color-bg-soft);
	border-radius: 8px;
}
.reservation-notice__title { font-weight: 500; }
.reservation-notice__text { font-size: 0.85rem; margin-top: 4px; }

.map-embed {
	position: relative;
	width: 100%;
	aspect-ratio: 16 / 10;
	background: var(--color-bg-soft);
	border-radius: 8px;
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--color-text-light);
	margin-top: 16px;
}
.map-embed iframe { width: 100%; height: 100%; border: 0; }

.access-group { margin-top: 24px; }
.access-group__header { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; }
.access-group__label {
	padding: 4px 14px;
	border-radius: 999px;
	color: #fff;
	font-size: 0.8rem;
	font-weight: 500;
}
.access-group__label--green { background: var(--color-primary); }
.access-group__label--teal { background: var(--color-teal); }
.access-group__line { flex: 1; height: 1px; background: var(--color-border); }
.access-group__list li { display: flex; align-items: center; gap: 10px; padding: 8px 0; font-size: 0.85rem; }
.access-icon { width: 32px; height: 32px; border-radius: 50%; background: var(--color-bg-soft); flex-shrink: 0; display: flex; align-items: center; justify-content: center; overflow: hidden; }

/* ==========================================================================
   フッター
   ========================================================================== */
.footer-info { background: #e7e9f0; padding: 64px 0; font-size: 18px; }
.footer-info__inner {
	max-width: var(--container-width);
	margin: 0 auto;
	padding: 0 24px;
}
.footer-info__logo { text-align: center; margin-bottom: 48px; }
.footer-info__logo img {
	width: auto;
	height: auto;
	max-height: 80px;
	max-width: 100%;
	margin: 0 auto;
	object-fit: contain;
}
.footer-info__logo-text { font-size: 18px; font-weight: 500; color: var(--color-primary-dark); }

.footer-info__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 40px;
	align-items: stretch;
}
.footer-info__tel {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 16px;
	margin-bottom: 24px;
}
.footer-info__tel-icon {
	width: 48px;
	height: 48px;
	border-radius: 50%;
	border: 2px solid var(--color-taupe);
	color: var(--color-taupe);
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}
.footer-info__tel-number { font-size: 36px; font-weight: 500; letter-spacing: inherit; color: #342323; }

.hours-table--navy th,
.hours-table--navy td {
	border-left: none;
	border-right: none;
}
.hours-table--navy thead th { background: var(--color-primary-dark); color: #fff; }
.hours-table--navy tbody tr:nth-child(1),
.hours-table--navy tbody tr:nth-child(2) {
	background: #fff;
}
.footer-info .hours-table { font-size: 18px; }
.footer-info .hours-table__label span { font-size: 18px; }
.footer-info__hours-note {
	margin-top: 12px;
	display: flex;
	flex-wrap: wrap;
	gap: 6px 20px;
	font-size: 18px;
	color: #342323;
}

.footer-info__tag-block { margin-top: 24px; text-align: center; }
.footer-info__tag {
	display: block;
	width: 100%;
	max-width: 220px;
	margin-left: auto;
	margin-right: auto;
	padding: 5px 0;
	background: var(--color-primary-dark);
	color: #fff;
	text-align: center;
	font-weight: 500;
}
.footer-info__tag-text { margin-top: 14px; font-size: 18px; color: #342323; }

.footer-info__map {
	margin-top: 0;
	height: 100%;
	min-height: 320px;
	aspect-ratio: auto;
	border-radius: 0;
	background: #989898;
	color: #fff;
	font-weight: 500;
}

.footer-links { background: #e7e9f0; padding: 0 0 64px; }
.footer-links__inner { max-width: var(--container-width); margin: 0 auto; padding: 56px 24px 0; }
.footer-links__group + .footer-links__group { margin-top: 56px; }
.footer-links__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
	margin-top: 40px;
}
.footer-links__item {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 17px 24px;
	background: var(--color-primary-dark);
	color: #fff;
	font-weight: 500;
	font-size: 18px;
	text-align: center;
	border-radius: 4px;
	transition: opacity 0.2s ease;
}
.footer-links__item:hover { opacity: 0.85; }

.footer-bottom { background: #fff; padding: 40px 0; border-top: 1px solid var(--color-border); }
.footer-bottom__inner { max-width: var(--container-width); margin: 0 auto; padding: 0 24px; }
.partner-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 16px;
	margin-bottom: 32px;
}
.partner-grid__item { display: flex; align-items: center; justify-content: center; padding: 8px; border: 1px solid var(--color-border); border-radius: 8px; }

.footer-bottom__row { display: flex; flex-direction: column; align-items: center; gap: 32px; }
.footer-bottom__title {
	display: inline-block;
	text-align: center;
	font-size: 16px;
	font-weight: 400;
	letter-spacing: inherit;
	color: var(--color-text);
	text-indent: 0.3em;
}
.footer-bottom__title:hover { text-decoration: underline; }

.site-footer__inner {
	max-width: var(--container-width);
	margin: 0 auto;
	padding: 24px;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 16px;
	font-size: 0.75rem;
	text-align: center;
	color: var(--color-text-light);
	padding-bottom: 24px;
}
.site-footer__credit { display: flex; flex-direction: column; align-items: center; line-height: 1.4; }
.site-footer__credit-name { font-weight: 500; color: var(--color-text); }
.site-footer__credit--banner img { width: 240px; max-width: 100%; }

/* ==========================================================================
   TOPへ戻る
   ========================================================================== */
.fixed-pagetop {
	position: fixed;
	right: 24px;
	bottom: 24px;
	z-index: 850;
	width: 64px; height: 64px;
	border-radius: 50%;
	background: linear-gradient(90deg, #0070a0 0%, #55baff 100%);
	border: none;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0;
	box-shadow: 0 4px 14px rgba(40, 120, 160, 0.28);
	color: #fff;
	font-size: 13px;
	font-weight: 500;
}
.fixed-pagetop__arrow {
	width: 10px; height: 10px;
	border-top: 3px solid #fff;
	border-right: 3px solid #fff;
	transform: rotate(-45deg);
	margin-bottom: -2px;
}

/* ==========================================================================
   ブログ
   ========================================================================== */
.blog-layout { display: grid; grid-template-columns: 3fr 1fr; gap: 30px; align-items: start; padding-top: 40px; padding-bottom: 80px; }
.blog-layout__main { max-width: 750px; min-width: 0; }
.blog-list { display: flex; flex-wrap: wrap; gap: 15px; }
.blog-card {
	display: block;
	width: calc((100% - 30px) / 3);
	padding: 15px;
	border: 1px solid var(--color-border);
	border-radius: 15px;
	letter-spacing: 0.05em;
	line-height: 1.8;
	transition: opacity 0.25s ease;
}
.blog-card:hover { opacity: 0.85; }
.blog-card__img { aspect-ratio: 4 / 3; border-radius: 10px; overflow: hidden; background: var(--color-bg-soft); }
.blog-card__img img { width: 100%; height: 100%; object-fit: cover; }
.blog-card__img--noimage,
.sidebar__post-img--noimage {
	display: flex;
	align-items: center;
	justify-content: center;
}
.blog-card__img--noimage .is-fallback-logo,
.sidebar__post-img--noimage .is-fallback-logo {
	display: block;
	width: 55%;
	height: 55%;
	object-fit: contain;
	opacity: 0.6;
}
.blog-card__title { display: block; padding: 10px 0; margin-top: 0; font-weight: 500; font-size: 18px; line-height: 1.4; }
.blog-card__date { display: inline-block; padding-right: 10px; font-size: 0.85rem; color: var(--color-text-light); }
.blog-card__category {
	display: inline-block;
	margin-top: 10px;
	padding: 3px 15px;
	background: var(--color-primary-dark);
	color: #fff;
	font-size: 0.75rem;
	border-radius: 20px;
}
.blog-card__more {
	display: block;
	margin-top: 30px;
	padding: 10px 12px;
	border: 1px solid var(--color-primary-dark);
	text-align: center;
	font-weight: 500;
	color: var(--color-text);
	transition: background-color 0.25s ease, color 0.25s ease;
}
.blog-card__more-arrow {
	display: inline-block;
	width: 0; height: 0;
	margin-left: 10px;
	vertical-align: middle;
	border-top: 5px solid transparent;
	border-bottom: 5px solid transparent;
	border-left: 7px solid currentColor;
}
.blog-card:hover .blog-card__more { background: var(--color-primary-dark); color: #fff; }

.blog-single__meta { display: flex; align-items: center; gap: 12px; font-size: 0.85rem; color: var(--color-text-light); }
.blog-single__category {
	display: inline-block;
	padding: 3px 15px;
	background: var(--color-primary-dark);
	color: #fff;
	border-radius: 20px;
	font-size: 0.75rem;
}

.sidebar { display: flex; flex-direction: column; gap: 40px; min-width: 0; }
.sidebar__title {
	font-size: 1.2rem;
	font-weight: 400;
	padding-left: 12px;
	margin-bottom: 20px;
	border-left: 4px solid var(--color-primary-dark);
}
.sidebar__post-list li { border-bottom: 1px solid var(--color-border); padding-bottom: 15px; margin-bottom: 15px; }
.sidebar__post-list li:last-child { border-bottom: none; margin-bottom: 0; padding-bottom: 0; }
.sidebar__post-list li a { display: flex; gap: 12px; }
.sidebar__post-list li a:hover .sidebar__post-text { color: var(--color-primary-dark); }
.sidebar__post-img { width: 80px; height: 60px; border-radius: 2px; overflow: hidden; flex-shrink: 0; background: var(--color-bg-soft); }
.sidebar__post-img img { width: 100%; height: 100%; object-fit: cover; }
.sidebar__post-text { display: block; font-size: 0.9rem; font-weight: 500; line-height: 1.4; transition: color 0.25s ease; }
.sidebar__post-date { display: block; font-size: 0.75rem; color: var(--color-text-light); margin-top: 4px; }
.sidebar__category-list li { border-bottom: 1px solid var(--color-border); }
.sidebar__category-list li a {
	display: flex;
	justify-content: space-between;
	padding: 12px 5px;
	font-size: 0.95rem;
	transition: color 0.25s ease, padding-left 0.25s ease;
}
.sidebar__category-list li a:hover { color: var(--color-primary-dark); padding-left: 10px; }
.sidebar__category-list li a span { color: var(--color-text-light); font-size: 0.85rem; }
.sidebar__banners { display: flex; flex-direction: column; gap: 15px; }
.sidebar__banner { display: block; border-radius: 4px; overflow: hidden; transition: opacity 0.25s ease; }
.sidebar__banner:hover { opacity: 0.8; }

/* お知らせ一覧・詳細（トップページのお知らせセクションとデザインを揃える） */
.page-news { padding-top: 48px; padding-bottom: 80px; }
.page-news__list { border-top: 1px solid #7b6d35; }
.page-news__item {
	display: flex;
	align-items: center;
	gap: 24px;
	padding: 26px 8px;
	border-bottom: 1px solid #7b6d35;
	color: #372222;
	font-size: 20px;
}
.page-news__date {
	flex-shrink: 0;
	width: 110px;
	color: #372222;
	font-weight: 500;
	letter-spacing: inherit;
}
.page-news__item-title { flex: 1; color: #372222; }
.page-news__arrow {
	flex-shrink: 0;
	width: 0;
	height: 0;
	border-top: 6px solid transparent;
	border-bottom: 6px solid transparent;
	border-left: 9px solid #342323;
}
.page-news__single-title { font-size: 1.4rem; margin: 12px 0 24px; color: #372222; }

@media (max-width: 1199px) {
	.page-news__item { gap: 14px; padding: 18px 4px; }
	.page-news__date { width: 90px; font-size: 0.85rem; }
	.page-news__item-title { font-size: 0.9rem; }
}
@media (min-width: 768px) and (max-width: 1199px) {
	.page-news__item { gap: 20px; padding: 22px 8px; }
	.page-news__date { width: 110px; font-size: 0.95rem; }
	.page-news__item-title { font-size: 1rem; }
}

.pagination { display: flex; justify-content: center; gap: 8px; margin-top: 40px; }
.pagination .page-numbers,
.pagination ul { display: flex; gap: 8px; list-style: none; }
.pagination a, .pagination span {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 36px; height: 36px;
	border-radius: 50%;
	border: 1px solid var(--color-border);
	font-size: 0.85rem;
}
.pagination .current { background: var(--color-primary); color: #fff; border-color: var(--color-primary); }

/* ==========================================================================
   レスポンシブ（1199px以下：タブレット〜スマホ）
   ========================================================================== */
@media (max-width: 1199px) {
	body { letter-spacing: 0.02rem; }
	.container { padding: 0 16px; }
	.site-header { position: static; }
	.site-header__top {
		justify-content: stretch;
		align-items: center;
	}
	.site-header__brand {
		width: 100%;
		padding: 10px 14px;
	}
	.site-header__logo--pc { display: none; }
	.site-header__sp-bar {
		position: relative;
		display: block;
		width: 100%;
	}
	.site-header__sp-bar-img {
		display: block;
		width: 100%;
		height: auto;
	}
	.site-header__sp-bar-link {
		position: absolute;
		top: 0;
		bottom: 0;
	}
	.site-header__sp-bar-link--home {
		left: 0;
		width: 68%;
	}
	.site-header__sp-bar-link--recruit {
		right: 0;
		width: 32%;
	}
	.site-header__top-right { display: none; }
	.site-header__nav { display: none; }
	.site-header__icon-nav {
		display: flex;
		width: 100%;
		background: #fff;
	}
	.site-header__icon-nav.is-fixed {
		position: fixed;
		top: 0; left: 0; right: 0;
		z-index: 500;
	}
	.site-header__icon-nav-item {
		position: relative;
		flex: 1;
		min-width: 0;
		display: flex;
		flex-direction: column;
		align-items: center;
		gap: 6px;
		padding: 10px 2px;
		font-size: 0.65rem;
		font-weight: 500;
		color: var(--color-text);
		letter-spacing: 0.02rem;
		text-align: center;
		line-height: 1.25;
	}
	.site-header__icon-nav-item:not(:last-child)::after {
		content: "";
		position: absolute;
		top: 50%;
		right: 0;
		transform: translateY(-50%);
		width: 1px;
		height: 70%;
		background: #d0d0d0;
		pointer-events: none;
	}
	.site-header__icon-nav-menu {
		border: none;
		background: transparent;
		appearance: none;
		-webkit-appearance: none;
		font-family: inherit;
		color: inherit;
		line-height: inherit;
	}
	.site-header__icon-nav-item img {
		width: 24px;
		height: 24px;
		object-fit: contain;
	}
	.site-header__icon-nav-menu-icon {
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		width: 24px;
		height: 24px;
		gap: 4px;
	}
	.site-header__icon-nav-menu-icon span {
		width: 20px;
		height: 2px;
		background: var(--color-text);
	}

	.clinic-info__inner { grid-template-columns: 1fr; gap: 32px; }
	.footer-info__grid { grid-template-columns: 1fr; }
	.footer-info { font-size: 15px; }
	.footer-info__logo img { max-width: 85%; max-height: 80px; }
	.footer-info__logo-text,
	.footer-info .hours-table,
	.footer-info .hours-table__label span,
	.footer-info__hours-note,
	.footer-info__tag-text { font-size: 15px; }
	.footer-info__map { min-height: 240px; }
	.partner-grid { grid-template-columns: repeat(2, 1fr); }
	.footer-links__grid { grid-template-columns: 1fr; }
	.site-footer__credit--banner { width: 35%; }
	.site-footer__credit--banner img { width: 100%; }
	/* 固定ENTRYバナーにフッタークレジットが隠れないように */
	body.has-fv-entry .site-footer__inner {
		padding-bottom: 120px;
	}

	.blog-layout { grid-template-columns: 1fr; }
	.blog-layout__main { max-width: 100%; }
	.blog-list { gap: 20px; }
	.blog-card { width: calc((100% - 20px) / 2); padding: 10px; }
	.blog-card__title { font-size: 16px; padding: 8px 0; }
	.blog-card__category { font-size: 11px; padding: 2px 10px; }
	.blog-card__more { margin-top: 15px; padding: 8px 6px; font-size: 15px; }
	.blog-card__more-arrow { border-top-width: 4px; border-bottom-width: 4px; border-left-width: 6px; }

	.fixed-pagetop { width: 52px; height: 52px; right: 12px; }

	.u-sp-break { display: inline; }
}

/* ==========================================================================
   タブレット（768px〜1199px）：SPレイアウトを維持（余白・文字だけ少し調整）
   ========================================================================== */
@media (min-width: 768px) and (max-width: 1199px) {
	body { letter-spacing: 0.06rem; }
	.u-sp-break { display: none; }
	.container { padding: 0 24px; }

	/* FV：SPと同じ余白・キャッチ位置を明示 */
	.fv { margin-bottom: 48px; }
	.fv__catch { top: 33%; }
	.fv__entry {
		width: min(52vw, 280px);
	}

	.facility__grid { gap: 14px; }
	.job-type__item { height: 100px; }
	.job-type__num { font-size: 22px; }
	.job-type__label { font-size: 16px; }

	.section-head__title { font-size: 28px; letter-spacing: 0.12rem; }

	.fv-hours-table { width: auto; margin: 0 auto; }

	.features { padding-bottom: 48px; }
	.features__grid { grid-template-columns: 1fr; }
	.feature-card__img { height: 240px; }

	.medical-menu__panel { padding: 28px; gap: 24px; }
	.medical-menu__grid { grid-template-columns: repeat(2, 1fr); gap: 16px; }
	.medical-menu__item { padding: 28px 16px 24px; }
	.medical-menu__item-label { font-size: 18px; }

	.spotlight-row__img { height: 340px; }
	.spotlight-row__panel { padding: 48px 40px; }

	.disease-search__tabs { grid-template-columns: 1fr; justify-items: center; }
	.disease-search__tab { width: 280px; max-width: 100%; }
	.disease-search__cats { grid-template-columns: repeat(2, 1fr); }
	.disease-search__items { grid-template-columns: repeat(2, 1fr); }
	.disease-search__item { font-size: 16px; padding: 16px 14px; }
	.disease-search__tab-panel { padding: 32px; }

	.top-news__item a { gap: 20px; padding: 22px 8px; }
	.top-news__date { width: 110px; font-size: 0.95rem; }
	.top-news__title { font-size: 1rem; }

	.info-block__header-title { font-size: 28px; letter-spacing: 0.12rem; }
	.info-block__photo { height: 320px; }
	.info-block__card { padding: 40px 36px; }
	.info-block__checklist { padding: 28px 24px; }
	.info-block__btn { padding: 14px 16px; font-size: 16px; }
	.info-block__disease-list { grid-template-columns: repeat(2, 1fr); }
	.info-block__disease-list li { font-size: 16px; }

	/* greeting もSP縦積みのまま */
	.greeting__heading { font-size: 24px; }
	.greeting__bg { width: 300px; }

	.clinic-marquee { height: 280px; }
	.clinic-marquee__text { font-size: 48px; }

	.clinic-info__inner { grid-template-columns: 1fr; }
	.footer-info { font-size: 16px; }
	.footer-info__grid { grid-template-columns: 1fr; }
	.footer-info__logo-text,
	.footer-info .hours-table,
	.footer-info .hours-table__label span,
	.footer-info__hours-note,
	.footer-info__tag-text { font-size: 16px; }
	.footer-info__map { min-height: 280px; }
	.footer-links__grid { grid-template-columns: 1fr; }
	.site-footer__credit--banner { width: 35%; }

	body.has-fv-entry .site-footer__inner {
		padding-bottom: 120px;
	}

	.fixed-pagetop { width: 56px; height: 56px; right: 16px; }
}

@media (max-width: 600px) {
	.partner-grid { grid-template-columns: repeat(2, 1fr); }
}

/* ==========================================================================
   採用応募フォームページ（page-entry.php／Contact Form 7）
   ========================================================================== */
/* 本文（青背景のフォームセクションより上）：下層ページ共通の .page-content / .entry-content を使用 */
.page-content--before-form { padding-bottom: 56px; }
.page-content--before-form .entry-content > *:last-child { margin-bottom: 0; }

.entry-form-page {
	position: relative;
	overflow: hidden;
	padding: 72px 0 96px;
	background: linear-gradient(160deg, #0f2f60 0%, #1c4a8a 60%, #14396d 100%);
	background-image:
		radial-gradient(rgba(255, 255, 255, 0.09) 1px, transparent 1px),
		linear-gradient(160deg, #0f2f60 0%, #1c4a8a 60%, #14396d 100%);
	background-size: 16px 16px, cover;
}
.entry-form-page__deco {
	position: absolute;
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
	opacity: 0.35;
	pointer-events: none;
	z-index: 0;
}
.entry-form-page__deco--1 {
	top: -10%;
	left: -8%;
	width: 420px;
	height: 420px;
}
.entry-form-page__deco--2 {
	bottom: -8%;
	left: 4%;
	width: 260px;
	height: 260px;
}
.entry-form-page__head {
	position: relative;
	z-index: 2;
	text-align: center;
	margin-bottom: 40px;
}
.entry-form-page__title {
	color: #fff;
	font-size: 40px;
	font-weight: 700;
	letter-spacing: 0.15em;
}
.entry-form-page__title-en {
	margin-top: 12px;
	color: rgba(255, 255, 255, 0.75);
	font-size: 0.95rem;
	letter-spacing: 0.35em;
}
.entry-form-page__body {
	position: relative;
	z-index: 2;
}
.entry-form-page__card {
	max-width: 820px;
	margin: 0 auto;
	background: #fffdf6;
	padding: 8px 48px 48px;
	box-shadow: 0 24px 60px rgba(0, 0, 0, 0.25);
}

/* サンクスページ */
.entry-thanks {
	padding-top: 48px;
	text-align: center;
}
.entry-thanks__text {
	font-size: 1.05rem;
	line-height: 2;
	color: var(--color-text);
}
.entry-thanks__text p { margin: 0 0 1.4em; }
.entry-thanks__text > *:first-child { margin-top: 0; }
.entry-thanks__text h3,
.entry-thanks__text h4 { text-align: left; }
.entry-thanks__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 260px;
	margin-top: 24px;
	padding: 16px 48px;
	background: var(--color-primary-dark);
	color: #fff;
	font-size: 1.05rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	transition: opacity 0.2s ease;
}
.entry-thanks__btn:hover { opacity: 0.85; }

/* Contact Form 7 の見た目調整 */
.entry-form-page__card .wpcf7-form { color: var(--color-text); }
.entry-form__row {
	display: flex;
	align-items: flex-start;
	gap: 32px;
	padding: 28px 0;
	border-bottom: 1px solid #e4e1d8;
}
.entry-form__row:last-of-type { border-bottom: none; }
.entry-form__label {
	flex: 0 0 200px;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 10px;
	padding-top: 12px;
	padding-right: 12px;
	font-weight: 500;
	font-size: 1rem;
}
.entry-form__badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 3px 10px;
	background: #32476a;
	color: #fff;
	font-size: 0.7rem;
	font-weight: 500;
	white-space: nowrap;
}
.entry-form__field { flex: 1 1 auto; min-width: 0; }
.entry-form__field--age p { display: flex; align-items: center; gap: 10px; }
.entry-form__field--age input[type="number"] { width: 120px !important; max-width: 120px !important; }
.entry-form__unit { font-size: 0.95rem; color: var(--color-text); }

.entry-form-page__card input[type="text"],
.entry-form-page__card input[type="email"],
.entry-form-page__card input[type="tel"],
.entry-form-page__card input[type="number"],
.entry-form-page__card textarea,
.entry-form-page__card select {
	width: 100%;
	padding: 14px 16px;
	background: #ece9e2;
	border: 1px solid transparent;
	font-family: inherit;
	font-size: 1rem;
	color: var(--color-text);
	transition: border-color 0.2s ease, background 0.2s ease;
}
.entry-form-page__card select { max-width: 100%; }
.entry-form-page__card textarea { min-height: 140px; resize: vertical; }
.entry-form-page__card input:focus,
.entry-form-page__card textarea:focus,
.entry-form-page__card select:focus {
	outline: none;
	background: #fff;
	border-color: var(--color-primary);
}
.entry-form-page__card input[type="number"] { max-width: 120px; }

.entry-form__field--radio .wpcf7-form-control-wrap { display: flex; }
.entry-form__field--radio .wpcf7-list-item:first-child {
	/* CF7の仕様上ラジオボタンは1つ選択必須になるため、非表示の「未回答」を初期選択にして任意項目にしている */
	display: none;
}
.entry-form__field--radio .wpcf7-list-item {
	margin: 0 28px 0 0;
}
.entry-form__field--radio .wpcf7-list-item-label { padding-left: 8px; }
.entry-form__field--radio input[type="radio"] {
	width: 18px;
	height: 18px;
	accent-color: var(--color-primary);
}

.entry-form__confirm {
	margin-top: 36px;
	text-align: center;
}
.entry-form__confirm .wpcf7-list-item { margin: 0; }
.entry-form__confirm .wpcf7-list-item-label {
	padding-left: 10px;
	font-size: 1rem;
	font-weight: 500;
}
.entry-form__confirm input[type="checkbox"] {
	width: 20px;
	height: 20px;
	vertical-align: middle;
	accent-color: var(--color-primary);
}

.entry-form__submit {
	margin-top: 24px;
	text-align: center;
}
.entry-form__submit input[type="submit"] {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 260px;
	padding: 16px 48px;
	background: #a9cdda;
	color: #17324f;
	border: none;
	font-size: 1.05rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	cursor: pointer;
	transition: opacity 0.2s ease;
}
.entry-form__submit input[type="submit"]:hover { opacity: 0.85; }
.entry-form__submit .wpcf7-spinner { display: block; margin: 12px auto 0; }

.entry-form-page__card .wpcf7-not-valid-tip {
	margin-top: 6px;
	color: var(--color-pink);
	font-size: 0.85rem;
}
.entry-form-page__card .wpcf7-response-output {
	margin: 32px 0 0;
	padding: 16px 20px;
	border: 1px solid var(--color-border);
	font-size: 0.95rem;
}

@media (max-width: 1199px) {
	.entry-form-page { padding: 48px 0 64px; }
	.entry-form-page__title { font-size: 28px; letter-spacing: 0.08em; }
	.entry-form-page__card { padding: 4px 20px 32px; }
	.entry-form__row { flex-direction: column; gap: 12px; padding: 20px 0; }
	.entry-form__label { flex: 0 0 auto; padding-top: 0; }
}

/* ==========================================================================
   トップページ：スクロール出現アニメーション
   ========================================================================== */
.js-reveal {
	opacity: 0;
	transform: translate3d(0, 36px, 0);
	transition:
		opacity 1.25s cubic-bezier(0.22, 1, 0.36, 1),
		transform 1.25s cubic-bezier(0.22, 1, 0.36, 1);
	transition-delay: var(--reveal-delay, 0s);
	will-change: opacity, transform;
}
.js-reveal--scale {
	transform: translate3d(0, 28px, 0) scale(0.94);
}
.js-reveal--left {
	transform: translate3d(-40px, 0, 0);
}
.js-reveal--right {
	transform: translate3d(40px, 0, 0);
}
.js-reveal.is-visible {
	opacity: 1;
	transform: translate3d(0, 0, 0) scale(1);
}
@media (prefers-reduced-motion: reduce) {
	.js-reveal {
		opacity: 1;
		transform: none;
		transition: none;
	}
}
