/* サブページ共通 */
body.subpage,
body.subpage .modal,
body.subpage .modal * {
	font-family: 'Noto Serif JP', serif;
}

/* サブページ：スムーススクロール（トップは Locomotive Scroll、サブは CSS で統一感） */
html:has(body.subpage) {
	scroll-behavior: smooth;
}

/* サブページ：Bootstrap に上書きされないようヘッダーメニューを維持（!important で確実に適用） */
body.subpage #esnav {
	position: fixed !important;
	top: 0 !important;
	left: 0 !important;
	width: 100vw !important;
	height: 100vh !important;
	z-index: 991 !important;
	overflow: hidden !important;
	pointer-events: none !important;
}

body.subpage #esnav .navbg {
	position: absolute !important;
	top: 0 !important;
	left: 0 !important;
	width: 100% !important;
	height: 100% !important;
	z-index: 0 !important;
	background-color: rgba(255, 255, 255, 0.1) !important;
	backdrop-filter: blur(5px) !important;
	-webkit-backdrop-filter: blur(5px) !important;
	opacity: 0 !important;
	transition: opacity 1s !important;
}

body.subpage #esnav nav {
	position: absolute !important;
	top: 0 !important;
	right: 0 !important;
	width: 40vw !important;
	height: 100% !important;
	z-index: 1 !important;
	pointer-events: auto !important;
	background-color: var(--ah-green) !important;
	transition: transform 1s cubic-bezier(0.83, 0, 0.17, 1) !important;
	transform: translate3d(100%, 0, 0) !important;
	display: block !important;
}

body.subpage header.opennav #esnav nav {
	transform: translate3d(0, 0, 0) !important;
}

body.subpage #esnav ul {
	position: absolute !important;
	top: 50% !important;
	left: 7vw !important;
	transform: translateY(-50%) !important;
	width: 35vw !important;
	list-style: none !important;
	padding-left: 0 !important;
	margin: 0 !important;
	border: none !important;
}

body.subpage #esnav li {
	margin: 0 !important;
	list-style: none !important;
	padding: 0 !important;
	border: none !important;
}

body.subpage #esnav a,
body.subpage #esnav a:link,
body.subpage #esnav a:visited,
body.subpage #esnav a:hover,
body.subpage #esnav a:focus,
body.subpage #esnav a:active {
	color: #fff !important;
	font-size: 1vw !important;
	border-top: none !important;
	text-decoration: none !important;
	position: relative !important;
	cursor: pointer !important;
	display: block !important;
	padding: 0.5em 0 !important;
	background: none !important;
}
body.subpage #esnav li:not(:last-child) a {
	border-bottom: 1px solid #fff !important;
}

body.subpage #esnav .arrow {
	transform: scale(0.6) !important;
	width: 2rem !important;
	height: 3rem !important;
	display: inline-block !important;
	vertical-align: middle !important;
	transition: transform 0.3s !important;
}

body.subpage #esnav .navitem a {
	opacity: 0 !important;
	transform: translate3d(3rem, 0, 0) !important;
	transition: all 0.5s !important;
	transition-delay: 0.7s !important;
}
/* サブページもトップと同じく上から順にスタッガー */
body.subpage #esnav .navitem:nth-child(1) a { transition-delay: 0.7s !important; }
body.subpage #esnav .navitem:nth-child(2) a { transition-delay: 0.8s !important; }
body.subpage #esnav .navitem:nth-child(3) a { transition-delay: 0.9s !important; }
body.subpage #esnav .navitem:nth-child(4) a { transition-delay: 1s !important; }
body.subpage #esnav .navitem:nth-child(5) a { transition-delay: 1.1s !important; }
body.subpage #esnav .navitem:nth-child(6) a { transition-delay: 1.2s !important; }
body.subpage #esnav .navitem:nth-child(7) a { transition-delay: 1.3s !important; }
body.subpage #esnav .navitem:nth-child(8) a { transition-delay: 1.4s !important; }
body.subpage #esnav .navitem:nth-child(9) a { transition-delay: 1.5s !important; }
body.subpage #esnav .navitem:nth-child(10) a { transition-delay: 1.6s !important; }
body.subpage #esnav .navitem:nth-child(11) a { transition-delay: 1.7s !important; }
body.subpage #esnav .navitem:nth-child(12) a { transition-delay: 1.8s !important; }
body.subpage #esnav .navitem:nth-child(13) a { transition-delay: 1.9s !important; }
body.subpage #esnav .navitem:nth-child(14) a { transition-delay: 2s !important; }

body.subpage header.opennav #esnav .navitem a {
	opacity: 1 !important;
	transform: translate3d(0, 0, 0) !important;
}

body.subpage header.opennav #esnav {
	pointer-events: initial !important;
}

body.subpage header.opennav .navbg {
	opacity: 1 !important;
	pointer-events: auto !important;
}

@media (max-width: 768px) {
	body.subpage #esnav nav {
		width: 80vw !important;
	}
	body.subpage #esnav ul {
		left: 3rem !important;
		padding: 0.5rem 0 !important;
	}
	body.subpage #esnav li {
		margin: 0 !important;
		padding: 0 !important;
	}
	body.subpage #esnav a,
	body.subpage #esnav a:link,
	body.subpage #esnav a:visited,
	body.subpage #esnav a:hover,
	body.subpage #esnav a:focus {
		font-size: clamp(0.7rem, 2.2vw, 0.95rem) !important;
		white-space: nowrap !important;
		padding: 0.35em 0 !important;
		line-height: 1.25 !important;
	}
}

body.subpage #header {
	background: linear-gradient(180deg, rgba(0, 0, 0, 0.15) 0%, transparent 100%);
}

body.subpage #header.scroll {
	background: var(--ah-green);
}

.subpage-body {
	padding-top: 0;
}

.subpage-top-img {
	width: 100%;
	overflow: hidden;
	position: relative;
}

.subpage-top-img::after {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.25);
	pointer-events: none;
}

.subpage-top-title {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0;
	color: #fff;
	font-size: 2.5rem;
	font-weight: 700;
	text-align: center;
	z-index: 1;
	pointer-events: none;
	text-shadow: 0 2px 8px rgba(0, 0, 0, 0.4);
}

.subpage-top-breadcrumb {
	position: absolute;
	bottom: 1rem;
	left: 0;
	right: 0;
	z-index: 1;
	padding: 0 0.5rem;
	text-align: center;
	display: block;
}
/* ヒーロー内パンくず：Bootstrap .breadcrumb を白文字で表示 */
.subpage-top-breadcrumb .breadcrumb {
	background: none;
	padding: 0;
	margin: 0;
	justify-content: center;
	font-size: 0.9rem;
}
.subpage-top-breadcrumb .breadcrumb-item,
.subpage-top-breadcrumb .breadcrumb-item a {
	color: #fff !important;
	text-decoration: none;
}
.subpage-top-breadcrumb .breadcrumb-item a:hover {
	text-decoration: underline;
}
.subpage-top-breadcrumb .breadcrumb-item + .breadcrumb-item::before {
	color: rgba(255, 255, 255, 0.8);
}
.subpage-top-breadcrumb .breadcrumb-item.active {
	color: rgba(255, 255, 255, 0.95);
}

.subpage-top-breadcrumb-inner {
	display: inline !important;
	white-space: nowrap;
	color: #fff;
	font-size: 0.9rem;
}

.subpage-top-breadcrumb-inner a,
.subpage-top-breadcrumb-inner span {
	display: inline !important;
}

.subpage-top-breadcrumb-inner a {
	color: #fff !important;
	text-decoration: none;
}

.subpage-top-breadcrumb-inner a:hover {
	text-decoration: underline;
}

.subpage-top-breadcrumb .breadcrumb-sep {
	color: rgba(255, 255, 255, 0.8);
	padding: 0 0.4em;
}

.subpage-top-img img {
	width: 100%;
	height: auto;
	display: block;
	object-fit: cover;
	object-position: center;
}

/* 求人詳細ページ：トップ画像の縦幅 1080px */
.subpage-recruit-detail .subpage-top-img {
	height: 1080px;
}
.subpage-recruit-detail .subpage-top-img img {
	height: 100%;
	width: 100%;
	object-fit: cover;
	object-position: center;
}

@media (max-width: 768px) {
	.subpage-top-img {
		height: 250px;
	}
	.subpage-recruit-detail .subpage-top-img {
		height: 250px;
	}
	.subpage-top-img img {
		width: 100%;
		height: 100%;
		max-height: none;
		object-fit: cover;
		object-position: center;
	}
	.subpage-top-title {
		font-size: 1.5rem;
	}
}

/* サブページ：Bootstrap container / row / col 用（フッターのみ） */
.subpage .footer .container.footer-inner {
	max-width: 80%;
}
/* サブページ：お問い合わせセクションの画像をパララックス（background-attachment: fixed） */
.subpage .contact_section .contact_left figure {
	background-image: url(https://999box.net/akarinomori/images/common/contact-bg.jpg);
	background-size: cover;
	background-position: center;
	background-attachment: fixed;
	background-repeat: no-repeat;
}
.subpage .contact_section .contact_left figure img {
	opacity: 0;
	height: 0;
	min-height: 0;
	overflow: hidden;
	position: absolute;
	pointer-events: none;
}
@media (max-width: 768px) {
	.subpage .contact_section .contact_left figure {
		background-image: none;
		background-attachment: scroll;
	}
	.subpage .contact_section .contact_left figure img {
		opacity: 1;
		height: auto;
		min-height: 100%;
		position: static;
	}
}
/* お知らせ一覧ページ：スマホで左右に余白 */
/* サブページ共通：スマホで左右に余白（news / privacy / 他すべて） */
@media (max-width: 768px) {
	.subpage .container.subpage-main,
	.subpage #news-content {
		padding-left: 1.5rem;
		padding-right: 1.5rem;
	}
}

.subpage-main {
	padding: 3rem 0 5rem;
}

.subpage-main .page-title {
	color: var(--ah-green);
	font-size: 1.75rem;
	margin-bottom: 2rem;
}

.subpage-main .content-body {
	line-height: 1.9;
	color: #333;
}

.subpage-main .content-body h2 {
	font-size: 1.15rem;
	margin: 2rem 0 0.75rem;
	color: #333;
}

.subpage-main .content-body p {
	margin-bottom: 1rem;
}

.subpage-main .content-body ul {
	margin: 0.5rem 0 1rem 1.5rem;
}

/* お問い合わせページ：左・病院情報、右・フォーム */
.contact-page-layout {
	align-items: flex-start;
}
.contact-info-card {
	background: #f8f8f8;
	border: 1px solid #e8e8e8;
	overflow: hidden;
}
.contact-info-img {
	line-height: 0;
}
.contact-info-img img {
	width: 100%;
	height: auto;
	display: block;
	object-fit: cover;
}
.contact-info-body {
	padding: 1.25rem 1.5rem;
}
.contact-info-name {
	font-size: 1.25rem;
	font-weight: 700;
	color: #333;
	margin: 0 0 1rem 0;
	padding-bottom: 0.75rem;
	border-bottom: 2px solid var(--ah-green, #5e8d52);
}
.contact-info-list {
	margin: 0;
	font-size: 0.95rem;
}
.contact-info-list dt {
	font-weight: 600;
	color: #555;
	margin: 0.75rem 0 0.2em 0;
	font-size: 0.85em;
}
.contact-info-list dt:first-of-type {
	margin-top: 0;
}
.contact-info-list dd {
	margin: 0;
	color: #333;
	line-height: 1.5;
}
.contact-info-list dd a {
	color: var(--ah-green, #5e8d52);
	text-decoration: none;
}
.contact-info-list dd a:hover {
	text-decoration: underline;
}
@media (max-width: 991px) {
	.contact-page-info {
		order: -1;
	}
}

/* お問い合わせフォーム */
.subpage-main .contact-form-wrap {
	max-width: 100%;
}
/* 入力欄の枠をはっきりさせる */
.subpage-main .contact-form .form-control,
.subpage-main .contact-form .form-select {
	border: 1px solid #adb5bd;
	background-color: #fff;
	border-radius: 4px;
	padding: 0.5rem 0.75rem;
}
.subpage-main .contact-form .form-control:focus,
.subpage-main .contact-form .form-select:focus {
	border-color: var(--ah-green, #5e8d52);
	box-shadow: 0 0 0 0.2rem rgba(94, 141, 82, 0.2);
	outline: 0;
}
.subpage-main .contact-form .form-control::placeholder {
	color: #6c757d;
}
.subpage-main .contact-form .form-label {
	font-weight: 600;
	color: #333;
}
.subpage-main .contact-form .required {
	color: #c0392b;
	font-size: 0.85em;
	margin-left: 0.25em;
}
/* 個人情報同意：スクロール窓 */
.subpage-main .contact-privacy-section .form-label {
	margin-bottom: 0.5rem;
}
.subpage-main .contact-privacy-scroll {
	max-height: 200px;
	overflow-y: auto;
	border: 1px solid #adb5bd;
	background: #fafafa;
	padding: 1rem 1.25rem;
	font-size: 0.9rem;
	line-height: 1.65;
	color: #333;
	border-radius: 4px;
}
.subpage-main .contact-privacy-scroll h3 {
	font-size: 0.95rem;
	font-weight: 700;
	margin: 1rem 0 0.35em 0;
	color: #333;
}
.subpage-main .contact-privacy-scroll h3:first-child {
	margin-top: 0;
}
.subpage-main .contact-privacy-scroll p,
.subpage-main .contact-privacy-scroll ul {
	margin: 0 0 0.5em 0;
}
.subpage-main .contact-privacy-scroll ul {
	padding-left: 1.25em;
}
.subpage-main .contact-privacy-scroll a {
	color: var(--ah-green, #5e8d52);
	text-decoration: underline;
}
.subpage-main .contact-privacy-checkbox-label {
	display: flex;
	align-items: flex-start;
	gap: 0.5rem;
	cursor: pointer;
	font-weight: 600;
	color: #333;
}
.subpage-main .contact-privacy-checkbox-label input[type="checkbox"] {
	margin-top: 0.25rem;
	flex-shrink: 0;
}
.subpage-main .contact-recaptcha .form-text {
	font-size: 0.8rem;
}

.subpage-main .contact-form-submit {
	margin-top: 1.5rem;
}
.subpage-main .contact-form .btn-primary {
	background-color: var(--ah-green, #5e8d52);
	border-color: var(--ah-green, #5e8d52);
}
.subpage-main .contact-form .btn-primary:hover {
	background-color: #4d7745;
	border-color: #4d7745;
}
.subpage-main .contact-form .btn-primary:disabled {
	opacity: 0.6;
	cursor: not-allowed;
}

/* パンくず（本文エリア内で使う場合）：黒文字・下線なし */
.subpage-main .breadcrumb {
	background: none;
	padding-left: 0;
}
.subpage-main .breadcrumb-item a,
.subpage-main .breadcrumb-item a:hover,
.subpage-main .breadcrumb-item a:focus {
	color: #333;
	text-decoration: none;
}
.subpage-main .breadcrumb-item.active {
	color: #333;
}

/* ========== お知らせ一覧：右サイドバー「重要なお知らせ」・ページネーション ========== */
.subpage-main .news-sidebar .sidebar-title {
	font-size: 1.1rem;
	font-weight: 700;
	color: #333;
	margin-bottom: 1rem;
	padding-bottom: 0.5rem;
	border-bottom: 2px solid var(--ah-green, #5e8d52);
}
/* 重要なお知らせカード：画像 800×400（2:1）で余白なし */
.subpage-main .news-sidebar-important-img-wrap {
	aspect-ratio: 2 / 1;
	overflow: hidden;
}
.subpage-main .news-sidebar-important-img-wrap img {
	object-fit: cover;
	width: 100%;
	height: 100%;
}
.subpage-main .news-sidebar-important-card {
	transition: box-shadow 0.2s ease;
}
.subpage-main .news-sidebar-important-card:hover {
	box-shadow: 0 4px 12px rgba(0,0,0,0.08);
}
/* 重要バッジ「!」の点滅 */
@keyframes news-important-badge-blink {
	0%, 100% { opacity: 1; }
	50% { opacity: 0.35; }
}
.subpage-main .news-sidebar-important-badge {
	position: absolute;
	top: 8px;
	right: 8px;
	height: 24px;
	padding: 0 8px;
	border-radius: 12px;
	background: #c0392b;
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	animation: news-important-badge-blink 1.2s ease-in-out infinite;
	font-size: 0.7rem;
	font-weight: 700;
	line-height: 1;
	white-space: nowrap;
}
.subpage-main .pagination .page-link {
	color: var(--ah-green, #5e8d52);
	border-color: #dee2e6;
}
.subpage-main .pagination .page-item.active .page-link {
	background-color: var(--ah-green, #5e8d52);
	border-color: var(--ah-green, #5e8d52);
}
.subpage-main .no-articles,
.subpage-main .no-sidebar-articles {
	padding: 2rem;
	text-align: center;
	color: #666;
}

/* お知らせ詳細 */
.news-detail-section .news-detail-title {
	font-size: 1.5rem;
	font-weight: 700;
	color: #333;
	margin-bottom: 0.5rem;
}
.news-detail-section .news-detail-date {
	font-size: 0.9rem;
	color: #666;
	margin-bottom: 1rem;
}
.news-detail-section .news-detail-content-text {
	line-height: 1.8;
	color: #333;
}
.news-detail-section .news-detail-back {
	margin-top: 2rem;
}
.news-detail-section .back-to-list-btn {
	display: inline-block;
	padding: 0.5rem 1.5rem;
	background: transparent;
	border: 2px solid var(--ah-green, #5e8d52);
	color: var(--ah-green, #5e8d52);
	text-decoration: none;
	border-radius: 6px;
	font-weight: 600;
	transition: background 0.2s, color 0.2s;
}
.news-detail-section .back-to-list-btn:hover {
	background: var(--ah-green, #5e8d52);
	color: #fff;
}
.news-detail-section .category-tag {
	display: inline-block;
	padding: 0.25rem 0.75rem;
	background: var(--ah-green, #5e8d52);
	color: #fff;
	font-size: 0.8rem;
	border-radius: 4px;
	margin-right: 0.5rem;
}
.news-detail-section .sidebar-item {
	padding: 0.5rem 0;
	border-bottom: 1px solid #eee;
}
.news-detail-section .sidebar-link {
	color: #333;
	text-decoration: none;
	font-size: 0.95rem;
}
.news-detail-section .sidebar-link:hover {
	color: var(--ah-green, #5e8d52);
	text-decoration: underline;
}
.news-detail-section .sidebar-date {
	font-size: 0.8rem;
	color: #666;
	margin-bottom: 0.2rem;
}
.news-detail-section .news-detail-important-title {
	color: #333;
	font-weight: 700;
}

/* お知らせ一覧：ページネーション */
.subpage-main .news_section .pagination .page-link {
	color: var(--ah-green, #5e8d52);
	border-color: #dee2e6;
}
.subpage-main .news_section .pagination .page-item.active .page-link {
	background-color: var(--ah-green, #5e8d52);
	border-color: var(--ah-green, #5e8d52);
	color: #fff;
}
.subpage-main .news_section .no-articles {
	padding: 2rem;
	text-align: center;
	color: #666;
}

/* ========== 夜間診療ページ（.subpage-night） ========== */
.subpage-night .night-tel {
	font-size: clamp(2rem, 5vw, 4rem);
	font-weight: 700;
	letter-spacing: 0.05em;
}
.subpage-night .night-tel a {
	color: inherit;
	text-decoration: none;
}
.subpage-night .night-tel a:hover {
	opacity: 0.85;
}
.subpage-night .section-en {
	font-size: 0.7rem;
	letter-spacing: 0.3em;
	color: #6c757d;
	margin-bottom: 0.25rem;
}
.subpage-night .night-animate {
	opacity: 0;
	transform: translateY(28px);
	transition: opacity 0.65s ease, transform 0.65s ease;
}
.subpage-night .night-animate.in-view {
	opacity: 1;
	transform: translateY(0);
}
.subpage-night .night-block-img {
	width: 100%;
	height: 100%;
	min-height: 320px;
	object-fit: cover;
	display: block;
}
@media (max-width: 991px) {
	.subpage-night .night-animate.row .night-block-img {
		width: 100%;
		max-width: 100%;
		height: auto;
		min-height: 200px;
		object-fit: cover;
		object-position: center;
	}
}
/* 夜間ヒーロー（暗背景）内：電話前注意の強調ボックス */
.subpage-night .night-hero-callout {
	margin-top: 0.25rem;
	padding: 1rem 1.2rem;
	background: linear-gradient(145deg, #fff8e1 0%, #ffecb3 45%, #ffe082 100%);
	border: 2px solid #f9a825;
	border-left-width: 6px;
	border-radius: 8px;
	box-shadow: 0 4px 18px rgba(0, 0, 0, 0.35);
}
.subpage-night .night-hero-callout-text {
	color: #1a1a1a;
	font-size: 1.05rem;
	font-weight: 700;
	line-height: 1.65;
	letter-spacing: 0.02em;
}
.subpage-night .night-hero-callout strong {
	color: #b45309;
	font-weight: 800;
}
@media (min-width: 992px) {
	.subpage-night .night-hero-callout {
		padding: 1.15rem 1.35rem;
	}
	.subpage-night .night-hero-callout-text {
		font-size: 1.15rem;
	}
}
.subpage-night .night-block-text {
	padding: 3rem 2rem;
	display: flex;
	flex-direction: column;
	justify-content: center;
}
@media (min-width: 992px) {
	.subpage-night .night-block-text {
		padding: 4rem 3rem;
	}
	/* PC: 文字を大きくして読みやすく */
	.subpage-night .subpage-body { font-size: 1.125rem; }
	.subpage-night .night-block-text { font-size: 1.125rem; }
	.subpage-night .night-block-text .page-title { font-size: 1.75rem !important; }
	.subpage-night .night-block-text .lead { font-size: 1.25rem !important; }
	.subpage-night .night-block-text p:not(.section-en):not(.night-tel):not(.night-hero-callout-text) { font-size: 1.1rem; }
	.subpage-night .night-block-text .small { font-size: 1rem !important; }
	.subpage-night .night-block-text .section-en { font-size: 0.8rem; }
	.subpage-night .night-block-text .h4 { font-size: 1.5rem !important; }
	.subpage-night .night-block-text ul.list-unstyled { font-size: 1.1rem; }
	.subpage-night .night-block-text .alert { font-size: 1.1rem; }
	.subpage-night .night-block-text .alert .small { font-size: 1rem !important; }
	.subpage-night .hser_title .section_heading_en { font-size: 0.85rem; }
	.subpage-night .hser_title h2 { font-size: 1.75rem !important; }
	.subpage-night .hser_title .section_lead { font-size: 1.1rem; }
	.subpage-night .news_latest_title { font-size: 1.25rem !important; }
	.subpage-night .news_latest_excerpt { font-size: 1.05rem; }
	.subpage-night .news_item .news_title { font-size: 1.05rem; }
	.subpage-night .news_item .news_excerpt { font-size: 1rem; }
	.subpage-night .contact_section .contact_heading_ja { font-size: 1.75rem !important; }
	.subpage-night .contact_section .contact_text { font-size: 1.15rem; }
	.subpage-night .footer p,
	.subpage-night .footer .footer-info-row { font-size: 1.05rem; }
}

/* 夜間診療お知らせ一覧：重要バッジ */
.subpage-night .news_item .news_badge_important {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0 8px;
	border-radius: 12px;
	background: #c00;
	color: #fff;
	font-size: 0.7rem;
	font-weight: 700;
	margin-right: 8px;
}

/* 夜間診療：ご持参いただくもの〜下（新デザイン） */
.subpage-night .night-lower-section {
	background: #fff;
}
/* ご持参いただくもの：画像付きカード */
.subpage-night .night-bring-card {
	background: #fff;
	border-radius: 12px;
	overflow: hidden;
	box-shadow: 0 2px 12px rgba(0,0,0,0.08);
	border: 1px solid #e9ecef;
	transition: box-shadow 0.2s ease, transform 0.2s ease;
}
.subpage-night .night-bring-card:hover {
	box-shadow: 0 4px 20px rgba(0,0,0,0.12);
	transform: translateY(-2px);
}
.subpage-night .night-bring-card-img-wrap {
	position: relative;
	aspect-ratio: 400 / 240;
	overflow: hidden;
	background: #f1f3f5;
}
.subpage-night .night-bring-card-img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.subpage-night .night-bring-card-num {
	position: absolute;
	top: 0.75rem;
	left: 0.75rem;
	width: 2.25rem;
	height: 2.25rem;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--ah-green, #5e8d52);
	color: #fff;
	font-weight: 700;
	font-size: 1rem;
	border-radius: 50%;
	box-shadow: 0 2px 6px rgba(0,0,0,0.2);
}
.subpage-night .night-bring-card-body {
	padding: 1.25rem;
}
.subpage-night .night-bring-card-text {
	font-size: 0.95rem;
	line-height: 1.65;
	color: #495057;
}
@media (min-width: 992px) {
	.subpage-night .night-bring-card-text {
		font-size: 1rem;
	}
	.subpage-night .night-bring-card-body {
		padding: 1.5rem;
	}
}

/* 夜間診療：3カード（支払い・身分証明・保険） */
.subpage-night .night-info-card {
	background: #fff;
	border-radius: 12px;
	padding: 1.75rem;
	box-shadow: 0 2px 12px rgba(0,0,0,0.08);
	border: 1px solid #e9ecef;
	transition: box-shadow 0.2s ease, transform 0.2s ease;
}
.subpage-night .night-info-card:hover {
	box-shadow: 0 4px 20px rgba(0,0,0,0.1);
	transform: translateY(-2px);
}
.subpage-night .night-info-card-en {
	font-size: 0.7rem;
	letter-spacing: 0.2em;
	color: var(--ah-green, #5e8d52);
	margin-bottom: 0.5rem;
	font-weight: 600;
}
.subpage-night .night-info-card-title {
	font-size: 1.15rem;
	font-weight: 700;
	margin-bottom: 0.75rem;
	color: #212529;
	border-bottom: 2px solid #e9ecef;
	padding-bottom: 0.5rem;
}
.subpage-night .night-info-card-body {
	font-size: 0.95rem;
	line-height: 1.65;
	color: #495057;
	margin-bottom: 0.5rem;
}
.subpage-night .night-info-card-note {
	font-size: 0.85rem;
	color: #6c757d;
	margin: 0;
}
.subpage-night .night-id-photos {
	margin-top: 0.25rem;
}
.subpage-night .night-id-photo-figure {
	margin: 0;
}
.subpage-night .night-id-photo-img {
	width: 100%;
	height: auto;
	display: block;
	border-radius: 8px;
	object-fit: cover;
	aspect-ratio: 300 / 200;
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.08);
}
.subpage-night .night-id-photo-caption {
	font-size: 0.75rem;
	color: #6c757d;
	text-align: center;
	margin-top: 0.35rem;
	line-height: 1.35;
}
.subpage-night .night-insurance-logos {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 1.25rem;
	margin-top: 0.75rem;
	padding-top: 0.75rem;
	border-top: 1px solid #e9ecef;
}
.subpage-night .night-insurance-logo-link {
	display: inline-block;
	text-decoration: none;
}
.subpage-night .night-insurance-logo-link:hover {
	opacity: 0.85;
}
.subpage-night .night-insurance-logo {
	height: 52px;
	width: auto;
	max-width: 85%;
	object-fit: contain;
	object-position: left center;
}
.subpage-night .night-payment-brands-label {
	font-size: 0.8rem;
	font-weight: 700;
	color: #495057;
	margin: 0.75rem 0 0.5rem;
	letter-spacing: 0.04em;
}
.subpage-night .night-payment-brands {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 0.3rem 0.2rem;
	align-items: center;
	justify-items: center;
	margin: 0 0 0.75rem;
	padding: 0.45rem 0.35rem;
	background: #f8f9fa;
	border: 1px solid #e9ecef;
	border-radius: 8px;
}
.subpage-night .night-payment-brand {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	line-height: 0;
}
.subpage-night .night-payment-brand-img {
	height: 42px;
	width: auto;
	max-width: 100%;
	display: block;
	object-fit: contain;
}
@media (min-width: 992px) {
	.subpage-night .night-info-card {
		padding: 2rem;
	}
	.subpage-night .night-info-card-title {
		font-size: 1.25rem;
	}
	.subpage-night .night-info-card-body,
	.subpage-night .night-info-card-note {
		font-size: 1rem;
	}
	.subpage-night .night-insurance-logo {
		height: 64px;
		max-width: 85%;
	}
	.subpage-night .night-payment-brands-label {
		font-size: 0.85rem;
	}
	.subpage-night .night-payment-brand-img {
		height: 52px;
	}
	.subpage-night .night-id-photo-caption {
		font-size: 0.8rem;
	}
}

/* 夜間診療：CTAブロック */
.subpage-night .night-cta-block {
	background: linear-gradient(135deg, #2c3e50 0%, #1a252f 100%);
	color: #fff;
	text-align: center;
}
.subpage-night .night-cta-en {
	font-size: 0.75rem;
	letter-spacing: 0.25em;
	color: rgba(255,255,255,0.7);
	margin-bottom: 0.5rem;
}
.subpage-night .night-cta-tel a {
	color: #fff;
	text-decoration: none;
}
.subpage-night .night-cta-tel a:hover {
	opacity: 0.9;
}
.subpage-night .night-cta-btn {
	display: inline-block;
	padding: 0.9rem 2.5rem;
	background: transparent;
	border: 2px solid #fff;
	color: #fff;
	font-weight: 600;
	text-decoration: none;
	border-radius: 8px;
	transition: background 0.2s ease, color 0.2s ease;
}
.subpage-night .night-cta-btn:hover {
	background: #fff;
	color: #2c3e50;
}

/* 夜間診療：地図セクション */
.subpage-night .night-map-section {
	position: relative;
}
.subpage-night .night-map-heading {
	background: #374a5c;
	color: #fff;
	font-size: 1rem;
	font-weight: 600;
	letter-spacing: 0.1em;
	padding: 0.75rem 1.5rem;
	text-align: center;
}
.subpage-night .night-map-section .footer-map {
	display: block;
}

/* 夜間診療：こんなときにご相談ください */
.subpage-night .night-section-lead {
	color: #495057;
	line-height: 1.7;
}
.subpage-night .night-symptoms-img-wrap {
	border-radius: 12px;
	overflow: hidden;
	background: #f1f3f5;
	aspect-ratio: 3 / 2;
}
.subpage-night .night-symptoms-img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.subpage-night .night-symptoms-list {
	list-style: none;
	padding: 0;
	margin: 0;
	display: grid;
	grid-template-columns: 1fr;
	gap: 0.35rem 0;
}
.subpage-night .night-symptoms-list li {
	position: relative;
	padding: 0.4rem 0 0.4rem 1.35rem;
	line-height: 1.5;
	color: #212529;
}
.subpage-night .night-symptoms-list li::before {
	content: '';
	position: absolute;
	left: 0;
	top: 0.65em;
	width: 5px;
	height: 5px;
	background: var(--ah-green, #5e8d52);
	border-radius: 50%;
}
@media (min-width: 576px) {
	.subpage-night .night-symptoms-list {
		grid-template-columns: 1fr 1fr;
		gap: 0.35rem 1rem;
	}
}
.subpage-night .night-symptoms-note {
	background: #f0f7ee;
	border: 1px solid rgba(94, 141, 82, 0.3);
	border-radius: 8px;
	padding: 0.75rem 1rem;
	font-weight: 600;
	color: #2d5016;
	font-size: 0.95rem;
}

/* 夜間診療：受診までの流れ（タイムライン） */
.subpage-night .night-flow-timeline {
	position: relative;
	max-width: 900px;
	margin-left: auto;
	margin-right: auto;
}
.subpage-night .night-flow-track {
	display: none;
}
.subpage-night .night-flow-nodes {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 1.5rem 0.5rem;
}
.subpage-night .night-flow-node {
	display: flex;
	flex-direction: column;
	align-items: center;
	flex: 1 1 120px;
	min-width: 100px;
	max-width: 180px;
}
.subpage-night .night-flow-node-circle {
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background: linear-gradient(145deg, var(--ah-green, #5e8d52) 0%, #4a7a42 100%);
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: 800;
	font-size: 1.35rem;
	box-shadow: 0 4px 14px rgba(94, 141, 82, 0.4);
	margin-bottom: 0.75rem;
	flex-shrink: 0;
}
.subpage-night .night-flow-node-num {
	line-height: 1;
	display: block;
}
.subpage-night .night-flow-node-label {
	font-weight: 700;
	font-size: 0.95rem;
	color: #212529;
	text-align: center;
	line-height: 1.35;
}
.subpage-night .night-flow-connector {
	display: none;
	width: 24px;
	height: 2px;
	background: linear-gradient(90deg, var(--ah-green, #5e8d52), #8fbc8a);
	flex-shrink: 0;
	align-self: center;
	margin-bottom: 2.5rem;
}
@media (min-width: 768px) {
	.subpage-night .night-flow-nodes {
		flex-wrap: nowrap;
		justify-content: space-between;
		gap: 0;
	}
	.subpage-night .night-flow-node {
		flex: 0 0 auto;
		max-width: none;
		min-width: 0;
	}
	.subpage-night .night-flow-connector {
		display: block;
		flex: 1;
		min-width: 20px;
		max-width: 60px;
		margin-bottom: 2.5rem;
		position: relative;
	}
	.subpage-night .night-flow-node-circle {
		width: 64px;
		height: 64px;
		font-size: 1.5rem;
	}
	.subpage-night .night-flow-node-label {
		font-size: 1rem;
	}
}
@media (min-width: 992px) {
	.subpage-night .night-flow-node-circle {
		width: 72px;
		height: 72px;
		font-size: 1.75rem;
		box-shadow: 0 6px 20px rgba(94, 141, 82, 0.35);
	}
	.subpage-night .night-flow-node-label {
		font-size: 1.05rem;
	}
	.subpage-night .night-flow-connector {
		background: linear-gradient(90deg, var(--ah-green, #5e8d52), #7ba872);
		max-width: 80px;
	}
}

/* 夜間診療：夜間受診時のお願い */
.subpage-night .night-request-container {
	padding: 3rem 1rem 4rem;
	max-width: 900px;
	margin-left: auto;
	margin-right: auto;
}
.subpage-night .night-request-list {
	max-width: 720px;
	margin-left: auto;
	margin-right: auto;
	margin-bottom: 2.5rem;
}
.subpage-night .night-request-item {
	position: relative;
	padding-left: 2rem;
	margin-bottom: 1.25rem;
	line-height: 1.8;
	font-size: 1.125rem;
}
.subpage-night .night-request-item::before {
	content: '';
	position: absolute;
	left: 0;
	top: 0.55em;
	width: 8px;
	height: 8px;
	background: var(--ah-green, #5e8d52);
	border-radius: 50%;
}
/* 4つのお願い：オレンジで目立たせる */
.subpage-night .night-request-item-highlight {
	color: #c45c26;
	font-weight: 600;
	font-size: 1.2rem;
}
.subpage-night .night-request-item-highlight::before {
	background: #c45c26;
}
.subpage-night .night-request-item-highlight strong {
	color: #a84a1a;
}
.subpage-night .night-request-extra {
	background: #f8f9fa;
	border-radius: 12px;
	padding: 1.75rem 2rem;
	max-width: 720px;
	margin-left: auto;
	margin-right: auto;
	border: 1px solid #e9ecef;
}
.subpage-night .night-request-extra-title {
	font-size: 1.2rem;
	font-weight: 700;
	margin-bottom: 1rem;
	color: #333;
}
.subpage-night .night-request-extra-list {
	margin: 0;
	padding-left: 1.5rem;
	line-height: 2;
	font-size: 1.1rem;
}
.subpage-night .night-request-extra-list li {
	margin-bottom: 0.5rem;
}
@media (min-width: 768px) {
	.subpage-night .night-request-item {
		font-size: 1.2rem;
	}
	.subpage-night .night-request-item-highlight {
		font-size: 1.25rem;
	}
	.subpage-night .night-request-extra-title {
		font-size: 1.25rem;
	}
	.subpage-night .night-request-extra-list {
		font-size: 1.15rem;
	}
}

/* 夜間診療：当院の夜間診療の強み */
.subpage-night .night-strength-card {
	background: #fff;
	border-radius: 12px;
	padding: 1.75rem;
	height: 100%;
	border: 1px solid #e9ecef;
	box-shadow: 0 2px 10px rgba(0,0,0,0.05);
}
.subpage-night .night-strength-card-title {
	font-size: 1.1rem;
	font-weight: 700;
	color: var(--ah-green, #5e8d52);
	margin-bottom: 0.75rem;
	padding-bottom: 0.5rem;
	border-bottom: 2px solid #e9ecef;
}
.subpage-night .night-strength-card-text {
	font-size: 0.95rem;
	line-height: 1.7;
	color: #495057;
}
@media (min-width: 992px) {
	.subpage-night .night-strength-card-title {
		font-size: 1.2rem;
	}
	.subpage-night .night-strength-card-text {
		font-size: 1rem;
	}
}

/* 夜間診療：よくある質問 */
.subpage-night .night-faq-accordion {
	max-width: 720px;
	margin-left: auto;
	margin-right: auto;
}
.subpage-night .night-faq-accordion .accordion-item {
	border: 1px solid #dee2e6;
	border-radius: 8px;
	margin-bottom: 0.5rem;
	overflow: hidden;
}
.subpage-night .night-faq-accordion .accordion-button {
	background: #fff;
	color: #212529;
	font-weight: 600;
}
.subpage-night .night-faq-accordion .accordion-button:not(.collapsed) {
	background: #f8f9fa;
	color: var(--ah-green, #5e8d52);
	border-bottom: 1px solid #dee2e6;
}
.subpage-night .night-faq-accordion .accordion-button:focus {
	box-shadow: 0 0 0 0.2rem rgba(94, 141, 82, 0.25);
}
.subpage-night .night-faq-more {
	color: var(--ah-green, #5e8d52);
	font-weight: 600;
	text-decoration: none;
}
.subpage-night .night-faq-more:hover {
	text-decoration: underline;
}
.subpage-night .night-linkfree-banner {
	margin-top: 1.5rem;
	margin-bottom: 0;
	text-align: center;
}
.subpage-night .night-linkfree-banner img {
	display: inline-block;
	width: 500px;
	max-width: 100%;
	height: auto;
	vertical-align: middle;
	border-radius: 8px;
	box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
}

/* 夜間診療：医院情報・連絡先 */
.subpage-night .night-clinic-card {
	background: #f8f9fa;
	border-radius: 12px;
	padding: 2rem;
	max-width: 560px;
	margin-left: auto;
	margin-right: auto;
	border: 1px solid #e9ecef;
}
.subpage-night .night-clinic-dl {
	display: grid;
	grid-template-columns: 140px 1fr;
	gap: 0.5rem 1.5rem;
	margin: 0;
	align-items: baseline;
}
.subpage-night .night-clinic-dl dt {
	font-weight: 600;
	color: #495057;
	font-size: 0.9rem;
	margin: 0;
}
.subpage-night .night-clinic-dl dd {
	margin: 0;
	line-height: 1.6;
}
.subpage-night .night-clinic-dl a {
	color: var(--ah-green, #5e8d52);
	font-weight: 600;
	text-decoration: none;
}
.subpage-night .night-clinic-dl a:hover {
	text-decoration: underline;
}
.subpage-night .night-clinic-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	justify-content: center;
}
.subpage-night .night-clinic-btn {
	display: inline-block;
	padding: 0.75rem 1.5rem;
	border-radius: 8px;
	font-weight: 600;
	text-decoration: none;
	transition: opacity 0.2s ease;
}
.subpage-night .night-clinic-btn:hover {
	opacity: 0.9;
}
.subpage-night .night-clinic-btn-tel {
	background: #2c3e50;
	color: #fff;
}
.subpage-night .night-clinic-btn-reserve {
	background: var(--ah-green, #5e8d52);
	color: #fff;
}
@media (min-width: 576px) {
	.subpage-night .night-clinic-dl {
		grid-template-columns: 160px 1fr;
	}
}

/* ========================================
   診療案内ページ（service）
   ======================================== */
.subpage-service .service-page-wrap {
	max-width: 900px;
	margin-left: auto;
	margin-right: auto;
}
.subpage-service .service-layout {
	display: block;
}
.subpage-service .service-sidebar {
	width: 100%;
}
.subpage-service .service-main {
	min-width: 0;
}
.subpage-service .service-nav-anchors {
	margin-bottom: 3rem;
	padding-bottom: 2.5rem;
	border-bottom: 1px solid #e8ebe8;
}
.subpage-service .service-nav-heading {
	font-size: 1.5rem;
	font-weight: 600;
	color: #888;
	margin: 0 0 1rem 0;
	letter-spacing: 0.15em;
	text-transform: uppercase;
}
.subpage-service .service-nav-list {
	display: flex;
	flex-wrap: wrap;
	gap: 0 2.2em;
	list-style: none;
	margin: 0;
	padding: 0;
}
.subpage-service .service-nav-list li {
	margin: 0;
}
.subpage-service .service-nav-list a {
	display: inline-block;
	color: #444;
	text-decoration: none;
	font-size: 0.95rem;
	font-weight: 500;
	padding: 0.4rem 0;
	position: relative;
	transition: color 0.2s ease;
}
.subpage-service .service-nav-list a::after {
	content: '';
	position: absolute;
	left: 0;
	bottom: 0;
	width: 0;
	height: 1px;
	background: var(--ah-green, #5e8d52);
	transition: width 0.25s ease;
}
.subpage-service .service-nav-list a:hover {
	color: var(--ah-green, #5e8d52);
}
.subpage-service .service-nav-list a:hover::after {
	width: 100%;
}
.subpage-service .service-section {
	scroll-margin-top: 120px;
	margin-bottom: 3rem;
	padding-bottom: 2.5rem;
	border-bottom: 1px solid #e9ecef;
}
.subpage-service .service-section:last-of-type {
	border-bottom: none;
}
.subpage-service .service-section-img {
	margin-bottom: 1.25rem;
	border-radius: 12px;
	overflow: hidden;
	background: #eee;
}
.subpage-service .service-section-img img {
	display: block;
	width: 100%;
	height: auto;
	object-fit: cover;
}
.subpage-service .service-section-title {
	font-size: 1.5rem;
	font-weight: 700;
	color: var(--ah-green, #5e8d52);
	margin-bottom: 1.25rem;
	padding-bottom: 0.5rem;
	border-bottom: 2px solid var(--ah-green, #5e8d52);
}
.subpage-service .service-section-body {
	margin-bottom: 1.25rem;
}
.subpage-service .service-section-body p,
.subpage-service .service-subsection p {
	line-height: 1.9;
	margin-bottom: 1rem;
	color: #333;
}
.subpage-service .service-subsection {
	margin-top: 1.5rem;
	margin-bottom: 1.5rem;
}
.subpage-service .service-subsection-img {
	max-width: 360px;
	margin-bottom: 1rem;
	border-radius: 8px;
	overflow: hidden;
	background: #eee;
}
.subpage-service .service-subsection-img img {
	display: block;
	width: 100%;
	height: auto;
	object-fit: cover;
}
.subpage-service .service-subsection-title {
	font-size: 1.15rem;
	font-weight: 700;
	color: #333;
	margin-bottom: 0.75rem;
}
.subpage-service .service-diseases {
	background: #f8f9fa;
	border-radius: 8px;
	padding: 1.25rem 1.5rem;
	margin-top: 1.25rem;
}
.subpage-service .service-diseases-title {
	font-size: 1rem;
	font-weight: 700;
	color: #333;
	margin-bottom: 0.75rem;
}
.subpage-service .service-diseases-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 0.6rem;
	margin: 0 0 1rem 0;
}
.subpage-service .service-disease-tag {
	display: inline-block;
	background: #8b6914;
	color: #fff;
	font-weight: 700;
	font-size: 0.85rem;
	padding: 0.35rem 0.75rem;
	border-radius: 4px;
	line-height: 1.3;
}
.subpage-service .service-diseases ul {
	margin: 0 0 1rem 0;
	padding-left: 1.25rem;
	line-height: 1.8;
	color: #444;
}
.subpage-service .service-note {
	font-size: 0.9rem;
	color: #666;
	margin-top: 0.75rem;
	margin-bottom: 0;
}
.subpage-service .service-case-link {
	margin-top: 0.75rem;
	margin-bottom: 0;
}
.subpage-service .service-case-link a {
	color: var(--ah-green, #5e8d52);
	font-weight: 600;
	text-decoration: none;
}
.subpage-service .service-case-link a:hover {
	text-decoration: underline;
}
.subpage-service .service-doctor {
	font-weight: 600;
	color: #333;
	margin-top: 1rem;
	margin-bottom: 0;
}
.subpage-service .service-treatment-list {
	margin: 1rem 0 0 0;
}
.subpage-service .service-treatment-list dt {
	font-weight: 700;
	color: var(--ah-green, #5e8d52);
	margin-top: 1rem;
	margin-bottom: 0.35rem;
}
.subpage-service .service-treatment-list dt:first-child {
	margin-top: 0;
}
.subpage-service .service-treatment-list dd {
	margin-left: 0;
	line-height: 1.85;
	color: #333;
}
.subpage-service .service-subsection ul {
	margin: 0.5rem 0 1rem 0;
	padding-left: 1.5rem;
	line-height: 1.85;
}
@media (min-width: 768px) {
	.subpage-service .service-section-title {
		font-size: 1.65rem;
	}
	.subpage-service .service-nav-heading {
		font-size: 0.95rem;
		margin-bottom: 1.1rem;
	}
	.subpage-service .service-nav-list {
		gap: 0 2.5em;
	}
	.subpage-service .service-nav-list a {
		font-size: 1rem;
	}
}

/* PC：診療科目を追従サイドバーに（shikinomori-dental flow 同様・sticky） */
@media (min-width: 992px) {
	.subpage-service .service-page-wrap {
		max-width: 1100px;
	}
	.subpage-service .service-layout {
		display: flex;
		flex-direction: row;
		align-items: flex-start;
		gap: 2.5rem;
	}
	.subpage-service .service-sidebar {
		flex-shrink: 0;
		width: 200px;
		position: sticky;
		top: 180px;
		background: #fff;
		padding: 1rem 0;
		border-radius: 8px;
		box-shadow: 0 2px 12px rgba(0,0,0,0.08);
	}
	.subpage-service .service-sidebar .service-nav-anchors {
		margin-bottom: 0;
		padding: 0 1rem;
		border-bottom: none;
	}
	.subpage-service .service-sidebar .service-nav-heading {
		font-size: 1.1rem;
	}
	.subpage-service .service-sidebar .service-nav-list {
		flex-direction: column;
		flex-wrap: nowrap;
		gap: 0;
	}
	.subpage-service .service-sidebar .service-nav-list li {
		border-bottom: 1px solid #eee;
	}
	.subpage-service .service-sidebar .service-nav-list li:last-child {
		border-bottom: none;
	}
	.subpage-service .service-sidebar .service-nav-list a {
		display: block;
		padding: 0.5rem 0;
		font-size: 0.9rem;
	}
	.subpage-service .service-main {
		flex: 1;
		min-width: 0;
	}
}

/* ========================================
   about page（医院紹介）
   ======================================== */
.subpage-about .about-page-wrap {
	max-width: 100%;
	margin: 0 auto;
}
/* 医院紹介のみ：PCで画面を大きく使う */
@media (min-width: 992px) {
	.subpage-about .about-page-wrap {
		max-width: 1280px;
		padding-left: 2rem;
		padding-right: 2rem;
	}
}
@media (min-width: 1200px) {
	.subpage-about .about-page-wrap {
		max-width: 1400px;
		padding-left: 2.5rem;
		padding-right: 2.5rem;
	}
}

/* サブページ共通ヒーロー：背景画像＋左に大きい見出し（about含む全サブで使用・privacy除く） */
.subpage-hero,
.about-hero {
	position: relative;
	width: 100%;
	min-height: 420px;
	display: flex;
	align-items: center;
	overflow: hidden;
}
.subpage-hero-bg,
.about-hero-bg {
	position: absolute;
	inset: 0;
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
}
.subpage-hero-bg::after,
.about-hero-bg::after {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgba(0,0,0,0.5) 0%, rgba(0,0,0,0.2) 50%, transparent 100%);
}
.subpage-hero-inner,
.about-hero-inner {
	position: relative;
	width: 100%;
	max-width: 1400px;
	margin: 0 auto;
	padding: 3rem 1.5rem;
	box-sizing: border-box;
}
.subpage-hero-text,
.about-hero-text {
	max-width: 100%;
}
.subpage-hero-en,
.about-hero-en {
	font-size: 0.9rem;
	letter-spacing: 0.15em;
	color: rgba(255,255,255,0.9);
	margin: 0 0 0.5rem;
	text-transform: uppercase;
}
.subpage-hero-title,
.about-hero-title {
	font-size: 1.75rem;
	font-weight: 700;
	line-height: 1.4;
	color: #fff;
	margin: 0 0 1rem;
	text-shadow: 0 1px 3px rgba(0,0,0,0.3);
}
.subpage-hero-desc,
.about-hero-desc {
	font-size: 0.95rem;
	line-height: 1.7;
	color: rgba(255,255,255,0.95);
	margin: 0 0 1.5rem;
	max-width: 32em;
}
.subpage-hero-cta,
.about-hero-cta {
	display: inline-block;
	background: #c45c26;
	color: #fff;
	font-weight: 700;
	font-size: 0.95rem;
	padding: 0.75rem 1.5rem;
	border-radius: 6px;
	text-decoration: none;
	transition: background 0.2s, transform 0.2s;
	box-shadow: 0 2px 8px rgba(0,0,0,0.2);
}
.subpage-hero-cta:hover,
.about-hero-cta:hover {
	background: #a84a1a;
	color: #fff;
	transform: translateY(1px);
}
@media (min-width: 768px) {
	.subpage-hero,
	.about-hero {
		min-height: 480px;
	}
	.subpage-hero-title,
	.about-hero-title {
		font-size: 2.25rem;
	}
	.subpage-hero-desc,
	.about-hero-desc {
		font-size: 1.05rem;
	}
	.subpage-hero-inner,
	.about-hero-inner {
		padding: 4rem 2rem;
	}
}
@media (min-width: 992px) {
	.subpage-hero,
	.about-hero {
		min-height: 560px;
	}
	.subpage-hero-title,
	.about-hero-title {
		font-size: 2.75rem;
	}
	.subpage-hero-desc,
	.about-hero-desc {
		font-size: 1.15rem;
	}
	.subpage-hero-inner,
	.about-hero-inner {
		padding: 4rem 3rem;
	}
}

/* ご利用の流れページ */
body.subpage-flow .flow-section-img {
	margin-bottom: 1.25rem;
	border-radius: 8px;
	overflow: hidden;
	box-shadow: 0 4px 12px rgba(0,0,0,0.08);
}
body.subpage-flow .flow-section-img img {
	width: 100%;
	height: auto;
	display: block;
	object-fit: cover;
	aspect-ratio: 800 / 400;
}
body.subpage-flow .page-title {
	font-size: 1.75rem;
	font-weight: 700;
	margin-bottom: 0.5rem;
}
body.subpage-flow .flow-section-title {
	font-size: 1.35rem;
	font-weight: 700;
	color: var(--ah-green, #2d5a27);
	border-bottom: 2px solid var(--ah-green, #2d5a27);
	padding-bottom: 0.35rem;
	margin-bottom: 1rem;
}
body.subpage-flow .flow-section-body {
	font-size: 1rem;
	line-height: 1.8;
}
body.subpage-flow .flow-block {
	padding: 0.5rem 0;
}
body.subpage-flow .flow-block .h5 {
	color: #333;
	font-weight: 600;
}
body.subpage-flow .btn {
	min-width: 12em;
}
@media (min-width: 768px) {
	body.subpage-flow .flow-section-title {
		font-size: 1.5rem;
	}
}

/* ご利用の流れ：サイドメニュー（flow-nav） */
body.subpage-flow .flow-layout {
	display: flex;
	flex-direction: column;
	gap: 2rem;
}
@media (min-width: 992px) {
	body.subpage-flow .flow-layout {
		flex-direction: row;
		align-items: flex-start;
		gap: 2.5rem;
	}
}
body.subpage-flow .flow-nav {
	flex-shrink: 0;
}
@media (max-width: 991px) {
	body.subpage-flow .flow-nav {
		display: none;
	}
}
@media (min-width: 992px) {
	body.subpage-flow .flow-nav {
		position: sticky;
		top: 6rem;
	}
}
body.subpage-flow .flow-nav-list {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	gap: 0.5rem;
	justify-content: center;
}
@media (min-width: 992px) {
	body.subpage-flow .flow-nav-list {
		flex-direction: column;
		width: 200px;
		gap: 0;
	}
}
body.subpage-flow .flow-nav-link {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.6rem 1rem;
	font-size: 0.9rem;
	color: #555;
	text-decoration: none;
	border-radius: 6px;
	transition: color 0.2s, background 0.2s, opacity 0.2s;
	opacity: 0.75;
}
body.subpage-flow .flow-nav-link:hover {
	opacity: 1;
	color: var(--ah-green, #2d5a27);
}
body.subpage-flow .flow-nav-link.is-active {
	font-weight: 600;
	opacity: 1;
	color: var(--ah-green, #2d5a27);
}
body.subpage-flow .flow-nav-num {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2rem;
	height: 2rem;
	font-size: 0.75rem;
	font-weight: 700;
	color: #fff;
	background: #c5d0c5;
	border-radius: 50%;
	flex-shrink: 0;
	transition: background 0.2s;
}
body.subpage-flow .flow-nav-link.is-active .flow-nav-num {
	background: var(--ah-green, #2d5a27);
}
body.subpage-flow .flow-main {
	flex: 1;
	min-width: 0;
}
body.subpage-flow .flow-main .flow-section {
	scroll-margin-top: 6rem;
}

/* 治療・手術事例：検索フォームの入力欄（白背景・枠・角丸・高さ揃え） */
.treatment-search-wrap .form-control,
.treatment-search-wrap .form-select {
	background-color: #fff;
	border: 1px solid #dee2e6;
	border-radius: 8px;
	height: 2.375rem;
	min-height: 2.375rem;
	line-height: 1.5;
	padding: 0.375rem 0.75rem;
	box-sizing: border-box;
}
.treatment-search-wrap .form-control:focus,
.treatment-search-wrap .form-select:focus {
	background-color: #fff;
	border-color: #86b7fe;
	box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.15);
}

/* 治療・手術事例：タグデザイン */
.treatment-tag {
	display: inline-block;
	padding: 0.2rem 0.5rem;
	font-size: 0.8rem;
	border-radius: 4px;
	margin-right: 0.35rem;
	margin-bottom: 0.25rem;
}
.treatment-tag-cat {
	background: #e8f5e9;
	color: #2e7d32;
}
.treatment-tag-type {
	background: #e3f2fd;
	color: #1565c0;
}
.treatment-tag-breed {
	background: #fff3e0;
	color: #e65100;
}
.treatment-card-title { font-weight: 600; }
.treatment-detail-body { line-height: 1.9; }

/* 院長挨拶：ここだけ幅を狭く、左に縦長画像、右に挨拶文＋院長名＋学歴・趣味 */
.about-greeting {
	margin-top: 2.5rem;
	padding: 2rem 0 3rem;
	border-top: 1px solid #e9ecef;
}
.about-greeting + .about-greeting {
	margin-top: 0;
	padding-top: 2.5rem;
	border-top: 1px solid #e9ecef;
}
.about-greeting-lead {
	margin: 0 0 1.25rem;
	text-align: center;
}
@media (min-width: 768px) {
	.about-greeting-lead {
		text-align: left;
		max-width: 1200px;
		margin-left: auto;
		margin-right: auto;
		padding: 0 1.5rem;
		box-sizing: border-box;
	}
}
@media (min-width: 992px) {
	.about-greeting-lead {
		padding: 0 2rem;
	}
}
@media (min-width: 768px) {
	.about-greeting--night .about-greeting-inner {
		flex-direction: row-reverse;
	}
}
.about-greeting-inner {
	max-width: 1200px;
	margin: 0 auto;
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
	padding: 1.5rem;
	border-radius: 8px;
	box-sizing: border-box;
}
.about-greeting-img {
	width: 100%;
	max-width: 280px;
	margin: 0 auto;
	border-radius: 8px;
	overflow: hidden;
	box-shadow: 0 4px 16px rgba(0,0,0,0.1);
}
.about-greeting-img img {
	width: 100%;
	height: auto;
	display: block;
	object-fit: cover;
	aspect-ratio: 400 / 560;
}
.about-greeting-body {
	flex: 1;
}
.about-greeting-body > p {
	font-size: 1rem;
	line-height: 1.9;
	color: #444;
	margin: 0 0 1rem;
}
.about-greeting-name {
	font-size: 1.05rem;
	font-weight: 700;
	color: #333;
	margin: 1rem 0 0 !important;
}
.about-greeting-role {
	font-weight: 600;
	color: #8b6914;
}
.about-greeting-profile {
	margin: 1.5rem 0 0;
	padding: 1.25rem 0 0;
	border-top: 1px solid #e0e0e0;
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 0.35rem 1.5rem;
}
.about-greeting-profile dt {
	font-size: 0.9rem;
	font-weight: 700;
	color: #8b6914;
	margin: 0;
}
.about-greeting-profile dd {
	font-size: 0.95rem;
	line-height: 1.75;
	color: #444;
	margin: 0;
}
.about-greeting-profile dt:not(:first-of-type) {
	margin-top: 0.75rem;
}
@media (min-width: 768px) {
	.about-greeting-inner {
		flex-direction: row;
		align-items: flex-start;
		gap: 2.5rem;
	}
	.about-greeting-img {
		max-width: 320px;
		margin: 0;
		flex-shrink: 0;
	}
}
@media (min-width: 992px) {
	.about-greeting-img {
		max-width: 420px;
	}
	.about-greeting-body > p {
		font-size: 1.1rem;
	}
	.about-greeting-name {
		font-size: 1.15rem;
	}
	.about-greeting-profile dt {
		font-size: 0.95rem;
	}
	.about-greeting-profile dd {
		font-size: 1.05rem;
	}
	.about-greeting-inner {
		padding: 2rem;
	}
}
@media (min-width: 1200px) {
	.about-greeting-inner {
		gap: 3rem;
	}
	.about-greeting-img {
		max-width: 460px;
	}
}

.subpage-about .about-section {
	margin-bottom: 3.5rem;
	scroll-margin-top: 120px;
}
.subpage-about .about-section:last-child {
	margin-bottom: 0;
}
.subpage-about .about-section-title {
	font-size: 1.5rem;
	font-weight: 700;
	color: var(--ah-green, #5a7d4a);
	margin-bottom: 0.35rem;
	border-bottom: 2px solid var(--ah-green, #5a7d4a);
	padding-bottom: 0.5rem;
}
.subpage-about .about-section-subtitle {
	font-size: 0.95rem;
	color: #666;
	margin-bottom: 1.25rem;
}
.subpage-about .about-section-img {
	margin-bottom: 1.5rem;
	border-radius: 8px;
	overflow: hidden;
	box-shadow: 0 2px 12px rgba(0,0,0,0.08);
}
.subpage-about .about-section-img img {
	width: 100%;
	height: auto;
	display: block;
	object-fit: cover;
}
.subpage-about .about-section-body {
	line-height: 1.9;
	color: #444;
}
.subpage-about .about-section-body p {
	margin-bottom: 1rem;
}
.subpage-about .about-section-body p:last-child {
	margin-bottom: 0;
}
.subpage-about .about-subtitle {
	font-size: 1.1rem;
	font-weight: 700;
	color: #333;
	margin-bottom: 0.75rem;
}

/* 特徴カード */
.subpage-about .about-features-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 2rem;
	margin-top: 1rem;
}
@media (min-width: 768px) {
	.subpage-about .about-features-grid {
		grid-template-columns: repeat(4, 1fr);
	}
}
.subpage-about .about-feature-card {
	background: #fafafa;
	border-radius: 8px;
	overflow: hidden;
	box-shadow: 0 2px 10px rgba(0,0,0,0.06);
}
.subpage-about .about-feature-img {
	aspect-ratio: 400 / 260;
	overflow: hidden;
}
.subpage-about .about-feature-img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
/* 特徴カード：アイコン表示 */
.subpage-about .about-feature-img.about-feature-icon {
	aspect-ratio: auto;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 120px;
	padding: 1.5rem;
	background: linear-gradient(135deg, #e8f4f0 0%, #f0f7f4 100%);
	color: #2d5a4a;
}
.subpage-about .about-feature-img.about-feature-icon svg {
	width: 56px;
	height: 56px;
	flex-shrink: 0;
}
.subpage-about .about-feature-title {
	font-size: 1.05rem;
	font-weight: 700;
	color: #333;
	padding: 1rem 1.25rem 0.5rem;
	margin: 0;
}
.subpage-about .about-feature-text {
	font-size: 0.9rem;
	line-height: 1.7;
	color: #555;
	padding: 0 1.25rem 1.25rem;
	margin: 0;
}

/* 診療体制（受付・予約） */
.subpage-about .about-reception-wrap {
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
	margin-top: 1rem;
}
@media (min-width: 768px) {
	.subpage-about .about-reception-wrap {
		flex-direction: row;
		align-items: flex-start;
		gap: 2rem;
	}
}
.subpage-about .about-reception-img {
	border-radius: 8px;
	overflow: hidden;
	box-shadow: 0 2px 12px rgba(0,0,0,0.08);
	flex-shrink: 0;
}
@media (min-width: 768px) {
	.subpage-about .about-reception-img {
		width: 45%;
		max-width: 480px;
	}
}
.subpage-about .about-reception-img img {
	width: 100%;
	height: auto;
	display: block;
	object-fit: cover;
	aspect-ratio: 800 / 400;
}
.subpage-about .about-reception-block {
	background: #f8f8f8;
	border-radius: 8px;
	padding: 1.5rem 1.75rem;
	flex: 1;
	min-width: 0;
}
.subpage-about .about-reception-dl {
	display: grid;
	grid-template-columns: 1fr;
	gap: 0.6rem 1rem;
	margin: 0;
}
@media (min-width: 480px) {
	.subpage-about .about-reception-dl {
		grid-template-columns: 200px 1fr;
	}
}
.subpage-about .about-reception-dl dt {
	font-weight: 700;
	color: #333;
	margin: 0;
}
.subpage-about .about-reception-dl dd {
	margin: 0;
	color: #444;
	line-height: 1.6;
}

/* 院内紹介 */
.subpage-about .about-facility-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.5rem;
	margin-top: 1rem;
}
@media (min-width: 576px) {
	.subpage-about .about-facility-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}
@media (min-width: 992px) {
	.subpage-about .about-facility-grid {
		grid-template-columns: repeat(3, 1fr);
	}
}
.subpage-about .about-facility-item {
	margin: 0;
	border-radius: 8px;
	overflow: hidden;
	box-shadow: 0 2px 10px rgba(0,0,0,0.06);
}
.subpage-about .about-facility-item img {
	width: 100%;
	height: auto;
	display: block;
	object-fit: cover;
	aspect-ratio: 500 / 340;
}
.subpage-about .about-facility-item figcaption {
	font-size: 0.95rem;
	font-weight: 600;
	color: #333;
	text-align: center;
	padding: 0.6rem;
	background: #f5f5f5;
}

/* 治療機器（院内紹介と同じグリッド） */
.subpage-about .about-equipment-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.5rem;
	margin-top: 1rem;
}
@media (min-width: 576px) {
	.subpage-about .about-equipment-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}
@media (min-width: 992px) {
	.subpage-about .about-equipment-grid {
		grid-template-columns: repeat(3, 1fr);
	}
}

/* スタッフ紹介：3カード並び（PC）／1列（スマホ） */
.subpage-about .about-staff-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 2rem;
	margin-top: 1.5rem;
}
@media (min-width: 768px) {
	.subpage-about .about-staff-grid {
		grid-template-columns: repeat(3, 1fr);
		gap: 1.5rem;
	}
}
.subpage-about .about-staff-card {
	background: #fafafa;
	border-radius: 8px;
	overflow: hidden;
	box-shadow: 0 2px 10px rgba(0,0,0,0.06);
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	padding-bottom: 1.5rem;
}
.subpage-about .about-staff-card-img {
	width: 100%;
	aspect-ratio: 3 / 4;
	overflow: hidden;
}
.subpage-about .about-staff-card-img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.subpage-about .about-staff-card-name {
	font-size: 1.1rem;
	font-weight: 700;
	color: #333;
	margin: 1rem 1rem 0.25rem;
}
.subpage-about .about-staff-card-dept {
	font-size: 0.9rem;
	color: #8b6914;
	font-weight: 600;
	margin: 0 1rem 0.5rem;
}
.subpage-about .about-staff-card-message {
	font-size: 0.9rem;
	line-height: 1.7;
	color: #555;
	margin: 0 1rem;
	flex: 1;
}
@media (min-width: 992px) {
	.subpage-about .about-staff-card-name {
		font-size: 1.2rem;
	}
	.subpage-about .about-staff-card-dept {
		font-size: 0.95rem;
	}
	.subpage-about .about-staff-card-message {
		font-size: 0.95rem;
	}
}

/* 医院紹介：PCで文字を大きく */
@media (min-width: 992px) {
	.subpage-about .about-section-title {
		font-size: 1.85rem;
		margin-bottom: 0.5rem;
		padding-bottom: 0.6rem;
	}
	.subpage-about .about-section-subtitle {
		font-size: 1.2rem;
		margin-bottom: 1.5rem;
	}
	.subpage-about .about-section-body,
	.subpage-about .about-section-body p {
		font-size: 1.1rem;
		line-height: 2;
	}
	.subpage-about .about-subtitle {
		font-size: 1.3rem;
		margin-bottom: 1rem;
	}
	.subpage-about .about-feature-title {
		font-size: 1.25rem;
		padding: 1.15rem 1.25rem 0.6rem;
	}
	.subpage-about .about-feature-text {
		font-size: 1.05rem;
		line-height: 1.8;
		padding: 0 1.25rem 1.35rem;
	}
	.subpage-about .about-reception-dl dt {
		font-size: 1.05rem;
	}
	.subpage-about .about-reception-dl dd {
		font-size: 1.05rem;
		line-height: 1.75;
	}
	.subpage-about .about-facility-item figcaption,
	.subpage-about .about-equipment-grid .about-facility-item figcaption {
		font-size: 1.1rem;
		padding: 0.75rem;
	}
	.subpage-about .about-staff-card-name {
		font-size: 1.2rem;
	}
	.subpage-about .about-staff-card-message {
		font-size: 1rem;
		line-height: 1.8;
	}
}

/* 採用詳細ページ */
/* 採用ページ ヒーロー */
.recruit-hero { text-align: center; }
.recruit-hero-lead { font-size: clamp(1.35rem, 4vw, 2rem); line-height: 1.7; color: #1976d2; font-weight: 600; margin: 0; }
.recruit-hero-logo-wrap { margin: 0; }
.recruit-hero-logo { max-width: 240px; height: auto; display: inline-block; }

/* いっしょにはたらこう（画面幅いっぱい・背景画像・トップヒーロー風） */
.recruit-catch-bg { position: relative; width: 100%; min-height: 42vw; display: flex; align-items: center; justify-content: center; background-image: url("https://999box.net/akarinomori/images/recruit/recruit-bg.jpg"); background-size: cover; background-position: center; background-repeat: no-repeat; overflow: hidden; }
.recruit-catch-bg__overlay { position: absolute; inset: 0; background: rgba(0,0,0,0.35); z-index: 0; }
.recruit-catch-bg__inner { position: relative; z-index: 1; text-align: center; padding: 4rem 1.5rem; color: #fff; }
.recruit-catch-bg__title { font-size: clamp(1.75rem, 5vw, 3.5rem); font-weight: 700; margin: 0 0 0.75rem; line-height: 1.4; text-shadow: 0 2px 8px rgba(0,0,0,0.4); }
.recruit-catch-bg__lead { font-size: clamp(1rem, 2.5vw, 1.35rem); margin: 0; opacity: 0.95; text-shadow: 0 1px 4px rgba(0,0,0,0.4); line-height: 1.7; }
@media (max-width: 767px) {
    .recruit-catch-bg { min-height: 55vw; }
}

/* 選考の流れ（カラフル） */
.recruit-flow { background: linear-gradient(180deg, #f8f9fa 0%, #fff 100%); }
.recruit-flow-heading { color: #333; }
.recruit-flow-step { border: 3px solid transparent; box-shadow: 0 4px 12px rgba(0,0,0,0.08); transition: transform .2s, box-shadow .2s; }
.recruit-flow-step:hover { transform: translateY(-4px); box-shadow: 0 8px 20px rgba(0,0,0,0.12); }
.recruit-flow-num { font-size: 0.85rem; font-weight: 700; letter-spacing: 0.05em; }
.recruit-flow-step strong { font-size: 1.1rem; }
.recruit-flow-step--1 { background: linear-gradient(145deg, #e8f5e9 0%, #c8e6c9 100%); border-color: #43a047; color: #1b5e20; }
.recruit-flow-step--1 .recruit-flow-num { color: #2e7d32; }
.recruit-flow-step--1 .small { color: #33691e; }
.recruit-flow-step--2 { background: linear-gradient(145deg, #e3f2fd 0%, #bbdefb 100%); border-color: #1e88e5; color: #0d47a1; }
.recruit-flow-step--2 .recruit-flow-num { color: #1565c0; }
.recruit-flow-step--2 .small { color: #1565c0; }
.recruit-flow-step--3 { background: linear-gradient(145deg, #fff3e0 0%, #ffe0b2 100%); border-color: #fb8c00; color: #e65100; }
.recruit-flow-step--3 .recruit-flow-num { color: #ef6c00; }
.recruit-flow-step--3 .small { color: #bf360c; }
.recruit-flow-step--4 { background: linear-gradient(145deg, #f3e5f5 0%, #e1bee7 100%); border-color: #8e24aa; color: #4a148c; }
.recruit-flow-step--4 .recruit-flow-num { color: #7b1fa2; }
.recruit-flow-step--4 .small { color: #6a1b9a; }

/* 採用一覧ページ（Bootstrap 5 グリッド） */
.recruit-jobs-section .recruit-job-card { min-height: 0; }
.recruit-jobs-section .recruit-job-card__img-wrap { position: relative; width: 100%; overflow: hidden; background: #eee; }
.recruit-jobs-section .recruit-job-card__img { width: 100%; height: 100%; object-fit: cover; display: block; }
.recruit-jobs-section .col-md-6 .recruit-job-card__img-wrap { min-height: 220px; }
.recruit-jobs-section .col-md-6 .recruit-job-card__img { min-height: 220px; }
@media (min-width: 768px) {
    .recruit-jobs-section .recruit-job-card__img-wrap { min-height: 280px; }
    .recruit-jobs-section .recruit-job-card__img { min-height: 280px; }
}
.recruit-jobs-section .recruit-job-card__body { background: linear-gradient(135deg, #fff8f2 0%, #fde8dc 50%, #fce0d0 100%); }
.recruit-jobs-section .recruit-job-card__job-type { font-size: 0.9rem; letter-spacing: 0.08em; color: var(--ah-orange, #c75b39); margin: 0; font-weight: 600; }
.recruit-jobs-section .recruit-job-card__title { font-size: 1.25rem; line-height: 1.5; color: #333; margin: 0; }
.recruit-jobs-section .recruit-job-card__excerpt { font-size: 0.9rem; line-height: 1.6; margin: 0; }
.recruit-jobs-section .recruit-job-card__link { color: var(--ah-green, #7cb342); font-weight: 600; text-decoration: none; }
.recruit-jobs-section .recruit-job-card__link:hover { text-decoration: underline; color: var(--ah-green, #7cb342); }

.recruit-detail-h1 { margin-bottom: 0.5rem; }
.recruit-detail-lead { color: #555; margin-bottom: 1.5rem; }
.recruit-detail-section { margin-top: 2.5rem; }
.recruit-detail-section-title { font-size: 1.35rem; margin-bottom: 1rem; padding-bottom: 0.5rem; border-bottom: 2px solid #7cb342; }
/* 募集要項：親幅いっぱい・左項目col-4・右内容col-8（Bootstrapグリッド） */
.recruit-requirements-block { box-sizing: border-box; }
.recruit-requirements-row { margin: 0; --bs-gutter-x: 0; }
.recruit-requirements-row > [class*="col-"] { padding: 0.75rem 1rem; }
.recruit-requirements-head { background: #e9ecef; font-weight: 600; }
.recruit-requirements-item { background: #f8f9fa; font-weight: 600; }
.recruit-requirements-content { background: #fff; vertical-align: top; }

/* スマホ：ヘッダー非表示・1列表示（項目→内容の縦積み） */
@media (max-width: 767.98px) {
	.recruit-requirements-head { display: none !important; }
	.recruit-requirements-row > .col-4,
	.recruit-requirements-row > .col-8 { flex: 0 0 100%; max-width: 100%; }
	.recruit-requirements-item { border-bottom: none; padding-bottom: 0.25rem; }
	.recruit-requirements-content { padding-top: 0.25rem; padding-bottom: 0.75rem; border-bottom: 1px solid #dee2e6; }
	.recruit-requirements-row.border.border-top-0:last-child .recruit-requirements-content { border-bottom: none; }
}
.recruit-apply-section { margin-top: 3rem; padding-top: 2rem; border-top: 1px solid #dee2e6; }
/* 採用受付フォーム：入力欄に角丸の枠・左余白・郵便番号は横長 */
.recruit-apply-section .form-control {
	border-radius: 0.5rem;
	border: 1px solid #ced4da;
	padding-left: 0.75rem;
	color: #000;
}
.recruit-apply-section .recruit-postcode-input {
	min-width: 14em;
	flex: 1;
	max-width: 20em;
}
.recruit-apply-section .form-control:focus {
	border-color: #86b7fe;
	box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.15);
}
.recruit-apply-section .recruit-privacy-scroll { border-radius: 0.5rem; }
.recruit-privacy-scroll { font-size: 0.9rem; line-height: 1.7; }
.recruit-submit-btn { min-width: 200px; padding: 0.6rem 1.5rem; font-weight: bold; transition: background-color .2s, border-color .2s; }
.recruit-submit-btn--disabled,
.recruit-submit-btn:disabled { background-color: #adb5bd; border-color: #adb5bd; color: #fff; cursor: not-allowed; }
.recruit-submit-btn--active { background-color: #1976d2; border-color: #1976d2; color: #fff; }
.recruit-submit-btn--active:hover { background-color: #1565c0; border-color: #1565c0; color: #fff; }

/* ─── 料金ページ ─── */
body.subpage-price .price-page-lead {
	line-height: 1.85;
	color: #444;
	margin-bottom: 1rem;
	font-size: 1.05rem;
}
body.subpage-price .price-tax-badge {
	margin: 0 0 2rem;
}
body.subpage-price .price-tax-badge__inner {
	display: inline-block;
	background: linear-gradient(135deg, #f4f7f2 0%, #e8efe4 100%);
	color: var(--ah-green-dark, #4a6b3d);
	font-size: 0.8rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	padding: 0.35rem 1rem;
	border-radius: 999px;
	border: 1px solid rgba(90, 125, 74, 0.28);
}
body.subpage-price .price-hero-grid {
	display: grid;
	gap: 1.25rem;
	margin-bottom: 3rem;
	grid-template-columns: 1fr;
}
@media (min-width: 992px) {
	body.subpage-price .price-hero-grid {
		grid-template-columns: repeat(3, 1fr);
		gap: 1.5rem;
		align-items: stretch;
	}
}
body.subpage-price .price-hero-card {
	background: #fff;
	border-radius: 12px;
	padding: 1.5rem 1.35rem;
	box-shadow: 0 4px 24px rgba(0, 0, 0, 0.06);
	border: 1px solid #e8ece8;
	border-top: 4px solid var(--ah-green, #5a7d4a);
	display: flex;
	flex-direction: column;
	min-height: 100%;
}
body.subpage-price .price-hero-card--dayextra {
	border-top-color: var(--ah-brown-light, #a67c52);
}
body.subpage-price .price-hero-card--night {
	border-top-color: #3d4f3a;
	background: linear-gradient(180deg, #f9faf8 0%, #fff 45%);
}
body.subpage-price .price-hero-card__title {
	font-size: 1.05rem;
	font-weight: 700;
	color: var(--ah-green, #5a7d4a);
	margin: 0 0 0.5rem;
	letter-spacing: 0.06em;
}
body.subpage-price .price-hero-card--dayextra .price-hero-card__title {
	color: var(--ah-brown, #8b6914);
}
body.subpage-price .price-hero-card--night .price-hero-card__title {
	color: #2d3d2a;
}
body.subpage-price .price-hero-card__lead {
	font-size: 0.9rem;
	line-height: 1.65;
	color: #555;
	margin: 0 0 1rem;
	flex: 0 0 auto;
}
body.subpage-price .price-hero-card__list {
	list-style: none;
	padding: 0;
	margin: 0;
	flex: 1;
}
body.subpage-price .price-hero-card__row {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 1rem;
	padding: 0.65rem 0;
	border-bottom: 1px solid #eee;
}
body.subpage-price .price-hero-card__row:last-child {
	border-bottom: none;
	padding-bottom: 0;
}
body.subpage-price .price-hero-card__label {
	font-weight: 600;
	color: #333;
}
body.subpage-price .price-hero-card__amount,
body.subpage-price .price-hero-card__amount--solo {
	font-feature-settings: "tnum";
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}
body.subpage-price .price-num {
	font-size: 1.65rem;
	font-weight: 700;
	color: #222;
}
body.subpage-price .price-hero-card__amount--solo .price-num {
	font-size: 2rem;
}
body.subpage-price .price-unit {
	font-size: 0.95rem;
	font-weight: 600;
	margin-left: 0.15em;
	color: #444;
}
body.subpage-price .price-hero-card__amount--solo {
	margin: 0.25rem 0 0.75rem;
}
body.subpage-price .price-slot-list {
	list-style: none;
	padding: 0;
	margin: 0;
}
body.subpage-price .price-slot-list li {
	margin-bottom: 0.5rem;
}
body.subpage-price .price-slot-list__time {
	display: inline-block;
	background: #f5f0e8;
	color: #5c4a32;
	font-weight: 700;
	font-size: 0.9rem;
	padding: 0.4rem 0.85rem;
	border-radius: 6px;
}
body.subpage-price .price-hero-card__cta {
	margin: auto 0 0;
	padding-top: 1rem;
}
body.subpage-price .price-text-link {
	color: var(--ah-green, #5a7d4a);
	font-weight: 700;
	text-decoration: none;
	font-size: 0.9rem;
}
body.subpage-price .price-text-link:hover {
	text-decoration: underline;
}
body.subpage-price .price-section {
	margin-bottom: 2.5rem;
}
body.subpage-price .price-section__title {
	font-size: 1.35rem;
	font-weight: 700;
	color: #333;
	margin: 0 0 1rem;
	padding-bottom: 0.5rem;
	border-bottom: 2px solid var(--ah-green, #5a7d4a);
}
body.subpage-price .price-section__body {
	line-height: 1.9;
	color: #333;
}
body.subpage-price .price-section__body p {
	margin-bottom: 1rem;
}
body.subpage-price .price-band-cards {
	display: grid;
	gap: 1rem;
	margin: 1.25rem 0;
	grid-template-columns: 1fr;
}
@media (min-width: 768px) {
	body.subpage-price .price-band-cards {
		grid-template-columns: 1fr 1fr;
	}
}
body.subpage-price .price-band-card {
	background: #fafafa;
	border: 1px solid #e5e5e5;
	border-radius: 10px;
	padding: 1.15rem 1.25rem;
}
body.subpage-price .price-band-card__label {
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	color: var(--ah-green, #5a7d4a);
	margin: 0 0 0.35rem;
}
body.subpage-price .price-band-card__time {
	font-size: 1.35rem;
	font-weight: 700;
	margin: 0 0 0.5rem;
	color: #222;
	font-feature-settings: "tnum";
	font-variant-numeric: tabular-nums;
}
body.subpage-price .price-band-card__note {
	font-size: 0.88rem;
	line-height: 1.65;
	color: #666;
	margin: 0;
}
body.subpage-price .price-note-small {
	font-size: 0.88rem;
	color: #666;
	line-height: 1.7;
}
body.subpage-price .price-section--muted {
	background: #f7f8f6;
	border-radius: 12px;
	padding: 1.5rem 1.35rem;
	border: 1px solid #e8ebe6;
}
body.subpage-price .price-section--muted .price-section__title {
	border-bottom-color: #c5d4bd;
	font-size: 1.15rem;
}
body.subpage-price .price-bullet-list {
	margin: 0 0 1rem 1.2rem;
	padding: 0;
	line-height: 1.85;
}
body.subpage-price .price-bullet-list li {
	margin-bottom: 0.5rem;
}
body.subpage-price .price-cta-row {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	margin-top: 2rem;
	padding-top: 2rem;
	border-top: 1px solid #e5e5e5;
}
body.subpage-price .price-cta-row .btn-primary {
	background-color: var(--ah-green, #5a7d4a);
	border-color: var(--ah-green, #5a7d4a);
}
body.subpage-price .price-cta-row .btn-primary:hover {
	background-color: var(--ah-green-dark, #4a6b3d);
	border-color: var(--ah-green-dark, #4a6b3d);
}
