@charset "utf-8";
/* ------------------------------
 見出し・テキスト（PC）
------------------------------ */
/* h1 */
.heading {
	background-color: var(--base-color);
	margin-bottom: 100px;
}
.heading .headingIn {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	position: relative;
}
.heading .headingIn::before {
	content: "";
	display: block;
	position: absolute;
	bottom: -80px;
	right: -70px;
	width: 221px;
	height: 160px;
	background: url(../img/h1_decoration.png) no-repeat 0 0 / cover;
}
.heading.noside .headingIn::before {
	bottom: -100px;
	right: -72px;
	width: 201px;
	height: 194px;
	background: url(../img/h1_decoration_noside.png) no-repeat 0 0 / cover;
}
.heading:has(img) .headingIn::before {
	top: 7px;
	right: -75px;
	width: 212px;
	height: 199px;
	background: url(../img/h1_decoration_mainimg.png) no-repeat 0 0 / cover;
}
.heading .headingIn h1 {
	position: relative;
	z-index: 3;
	font-size: 4.8rem;
	line-height: 1.3;
	font-weight: 600;
	text-align: center;
}
.heading.news-blog .headingIn h1 {
	font-size: 4.4rem;
	text-align: left;
}
.heading .headingIn h1::after {
	content: "";
	display: block;
	width: 82px;
	height: 13px;
	margin: 10px auto 0;
	background: url(../img/icon_title.png) no-repeat 0 0 / cover;
}
.heading.news-blog .headingIn h1::after {
	margin: 10px 0 0 0;
}
.heading .headingIn h1 span {
	display: block;
	margin-bottom: 10px;
	color: var(--gray-color);
	font-family: "Rubik", sans-serif;
	font-size: 1.7rem;
	font-weight: 400;
	letter-spacing: .1em;
}
/* h2 */
.contents h2 {
	position: relative;
	margin-bottom: 30px;
	padding-bottom: 20px;
	font-size: 3.4rem;
	line-height: 1.4;
	font-weight: 600;
}
.contents h2::before {
	content: "";
	display: block;
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 7px;
	border-radius: 3px;
	background-color: var(--base-color);
}
.contents h2::after {
	content: "";
	display: block;
	position: absolute;
	bottom: -1px;
	left: -1px;
	width: 82px;
	height: 9px;
	background: url(../img/h2_decoration.png) no-repeat 0 0 / cover;
}
.contents .health h2::after {
	background: url(../img/h2_decoration_health.png) no-repeat 0 0 / cover;
}
.contents .care h2::after {
	background: url(../img/h2_decoration_care.png) no-repeat 0 0 / cover;
}
/* h3 */
.contents h3 {
	margin-bottom: 20px;
	font-size: 2.8rem;
	line-height: 1.5;
	font-weight: 600;
}
/* h4 */
.contents h4 {
	margin-bottom: 15px;
	padding: 16px 20px 12px;
	border-radius: 5px;
	background-color: var(--base-color);
	font-size: 2.3rem;
	line-height: 1.4;
	font-weight: 600;
}
.contents h4.red {
	background-color: #fbf0ee;
	color: var(--red-color);
}
.contents h4.redbg {
	background-color: #fbf0ee;
	color: var(--main-font-color);
}
/* h5 */
.contents h5 {
	margin-bottom: 10px;
	font-size: 2.4rem;
	line-height: 1.5;
	font-weight: 600;
}
.contents h5 span.fr {
	font-size: 1.6rem;
	font-weight: 400;
}
.contents h5:has(.fr)::after {
	content: "";
	display: block;
	clear: both;
}
/* h6 */
.contents h6 {
	display: inline-block;
	margin-bottom: 15px;
	padding: 4px 15px 0;
	border-radius: 5px;
	background-color: var(--hospital-blue);
	color: #fff;
	font-size: 2rem;
	font-weight: 600;
}
/* 小見出し */
.contents .subheading {
	margin-bottom: 20px;
	padding-bottom: 5px;
	border-bottom: var(--dotline);
	color: var(--hospital-blue);
	font-size: 1.8rem;
	line-height: 1.6;
	font-weight: 600;
}
@-moz-document url-prefix() {
	.contents .subheading {
		border-bottom: var(--dotline-ff);
	}
}
.contents .subheading.red {
	border-bottom: 1px dotted #e5a292;
	color: var(--red-color);
}
/* Firefox */
@-moz-document url-prefix() {
	.contents .subheading.red {
		border-bottom: 1px dotted #cc4625;
	}
}
/* メインリード */
.contents .lead-main {
	font-size: 3.8rem;
	line-height: 1.6;
	font-weight: 600;
}
.lead-main span {
	font-size: 3.2rem;
}
/* サブリード */
.contents .lead-sub {
	margin-bottom: 10px;
	color: var(--hospital-blue);
	font-size: 1.9rem;
	line-height: 1.4;
	font-weight: 600;
}
.contents .lead-sub.red {
	color: var(--red-blue);
}
.contents .lead-sub.mfc {
	color: var(--main-font-color);
}
/* 背景ありテキスト（白抜き） */
.bgText {
	display: inline-block;
	margin-bottom: 10px;
	padding: 0 .75em;
	border-radius: 5px;
	background-color: var(--hospital-blue);
	color: #fff;
	font-weight: 600;
}
.health .bgText {
	background-color: var(--health-green);
}
.care .bgText {
	background-color: var(--care-red);
}
/* マーカー */
.marker01 {
	padding: 1px 3px 0;
	border-radius: 3px;
	color: #fff;
	background: var(--hospital-blue);
	font-weight: 600;
}
.marker02 {
	padding: 1px 3px 0;
	border-radius: 3px;
	background: var(--base-color);
	font-weight: 600;
}
@media print, screen and (min-width: 768px) {
	/* h1 */
	.heading {
		height: 270px;
	}
	.heading:has(img) {
		height: 807px;
		background: var(--base-color);
		background: linear-gradient(0deg,rgba(255,255,255,1) 0%, rgba(255,255,255,1) 33.8%, rgba(241,245,247,1) 33.8%, rgba(241,245,247,1) 100%);
	}
	.heading.news-blog {
		height: auto;
		min-height: 320px;
	}
	.heading .headingIn {
		width: 95.8%;
		max-width: 1840px;
		height: 270px;
		margin-left: auto;
		margin-right: auto;
	}
	.heading:has(img) .headingIn {
		height: 257px;
	}
	.heading.news-blog .headingIn {
		height: auto;
		min-height: 320px;
		padding: 60px 0;
	}
	.heading .headingIn h1 {
		width: 1140px;
		margin-left: auto;
		margin-right: auto;
	}
	.heading:has(img) .pc {
		width: 1140px;
		margin: 0 auto;
		border-radius: 30px;
	}
	/* h5 */
	.contents h5 span.fr {
		display: block;
		float: right;
		margin-top: 12px;
	}
	/* メインリード */
	.lead-main span {
		display: block;
	}
}
/* ------------------------------
 見出し・テキスト（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	/* h1 */
	.heading {
		height: 240px;
		margin-bottom: 40px;
	}
	/* .heading.noside {
		margin-bottom: 40px;
	} */
	.heading:has(img) {
		height: auto;
		background: var(--base-color);
		background: linear-gradient(0deg,rgba(255,255,255,1) 0%, rgba(255,255,255,1) 19.7%, rgba(241,245,247,1) 19.7%, rgba(241,245,247,1) 100%);
	}
	.heading.news-blog {
		height: auto;
		min-height: 240px;
	}
	.heading .headingIn {
		height: 240px;
		padding: 0 5%;
	}
	.heading:has(img) .headingIn {
		height: 210px;
	}
	.heading.news-blog .headingIn {
		height: auto;
		min-height: 240px;
		padding: 30px 5%;
	}
	.heading .headingIn::before {
		bottom: -38px;
		right: -33px;
		width: 104px;
		height: 75px;
	}
	.heading.noside .headingIn::before {
		bottom: -20px;
		right: -16px;
		width: 95px;
		height: 92px;
	}
	.heading:has(img) .headingIn::before {
		top: 0;
		right: -14px;
		width: 85px;
		height: 80px;
	}
	.heading:has(img) .sp {
		max-width: initial;
		width: 90%;
		margin: 0 5%;
		border-radius: 20px;
	}
	.heading .headingIn h1 {
		font-size: 3.2rem;
	}
	.heading.news-blog .headingIn h1 {
		font-size: 2.8rem;
	}
	.heading .headingIn h1 span {
		font-size: 1.4rem;
	}
	.heading .headingIn h1::after {
		width: 78px;
		height: 12px;
	}
	/* h2 */
	.contents h2 {
		margin-bottom: 30px;
		padding-bottom: 20px;
		font-size: 2.8rem;
	}
	.contents h2::after {
		width: 72px;
		height: 9px;
		background: url(../img/h2_decoration_sp.png) no-repeat 0 0 / cover;
	}
	.contents .health h2::after {
		background: url(../img/h2_decoration_health_sp.png) no-repeat 0 0 / cover;
	}
	.contents .care h2::after {
		background: url(../img/h2_decoration_care_sp.png) no-repeat 0 0 / cover;
	}
	/* h3 */
	.contents h3 {
		margin-bottom: 15px;
		font-size: 2.2rem;
	}
	/* h4 */
	.contents h4 {
		margin-bottom: 15px;
		padding: 16px 10px 12px;
		font-size: 1.9rem;
	}
	/* h5 */
	.contents h5 {
		font-size: 2.2rem;
	}
	/* h6 */
	.contents h6 {
		font-size: 1.8rem;
		margin-bottom: 15px;
	}
	/* メインリード */
	.contents .lead-main {
		font-size: 2.8rem;
	}
	.contents .lead-main span {
		font-size: 2.3rem;
	}
	/* サブリード */
	.contents .lead-sub {
		margin-bottom: 10px;
		font-size: 1.8rem;
	}
	/* 背景ありテキスト（白抜き） */
	.bgText {		display: inline-block;
		margin-bottom: 5px;
	}
}

/* ------------------------------
 横幅（PC）
------------------------------ */
@media print, screen and (min-width: 768px) {
	/* 1/2 */
	.w546,
	.w1-2 {
		width: 47.895%;
	}
	/* サイドあり1/2 */
	.mainContents .w392,
	.mainContents .w1-2 {
		width: 47.805%;
	}
	/* サイドあり背景あり */
	.mainContents .bgBox .w346 {
		width: 48.056%;
	}
	/* 1/3 */
	.w350,
	.w1-3 {
		width: 30.702%;
	}
	.w350.cms_fl + .w350.cms_fl:not(.cms_clear_before),
	.w350.fl + .w350.fl:not(.cms_clear_before),
	.w1-3.cms_fl + .w1-3.cms_fl:not(.cms_clear_before),
	.w1-3.fl + .w1-3.fl:not(.cms_clear_before) {
		margin-left: 3.947%;
	}
	.w350.cms_fl + .w350.cms_fl.ml0 {
		margin-left: 0;
	}
	/* サイドあり1/3 */
	.mainContents .w256,
	.mainContents .w1-3 {
		width: 31.22%;
	}
	.w256.cms_fl + .w256.cms_fl:not(.cms_clear_before),
	.w256.fl + .w256.fl:not(.cms_clear_before),
	.mainContents .w1-3.cms_fl + .w1-3.cms_fl:not(.cms_clear_before),
	.mainContents .w1-3.fl + .w1-3.fl:not(.cms_clear_before) {
		margin-left: 3.17%;
	}
	/* 2/3 */
	.w745,
	.w2-3 {
		width: 65.351%;
	}
	/* サイドあり2/3 */
	.mainContents .w538,
	.mainContents .w2-3 {
		width: 65.61%;
	}
	/* 1/4 */
	.w258,
	.w1-4 {
		width: 22.632%;
	}
	.w258.cms_fl + .w258.cms_fl,
	.w258.fl + .w258.fl,
	.w1-4.cms_fl + .w1-4.cms_fl,
	.w1-4.fl + .w1-4.fl {
		margin-left: 3.157%;
	}
	/* 3/4 */
	.w846,
	.w3-4 {
		width: 74.211%;
	}
	/* 1/5 */
	.w208,
	.w1-5 {
		width: 18.246%;
	}
	.w208.cms_fl + .w208.cms_fl,
	.w208.fl + .w208.fl,
	.w1-5.cms_fl + .w1-5.cms_fl,
	.w1-5.fl + .w1-5.fl {
		margin-left: 2.1925%;
	}
	/* その他 */
	.w150 {
		width: 150px;
	}
	.w442 {
		width: 442px;
	}
	.w460 {
		width: 460px;
	}
	.w604 {
		width: 604px;
	}
	.w620 {
		width: 620px;
	}
	.w980 {
		width: 980px;
	}
}
/* ----------------------
 横幅（SP）
---------------------- */
@media screen and (max-width: 767px) {
	.w258,
	.w1-4,
	.w1-5 {
		width: 47.25%;
	}
	.w258.cms_fl,
	.w1-4.cms_fl,
	.w1-5.cms_fl {
		float: left !important;
	}
	.w258.cms_fl + .w258.cms_fl,
	.w1-4.cms_fl + .w1-4.cms_fl,
	.w1-5.cms_fl + .w1-5.cms_fl {
		margin-left: 5.5%;
	}
	.w258.cms_fl + .w258.cms_fl + .w258.cms_fl,
	.w1-4.cms_fl + .w1-4.cms_fl + .w1-4.cms_fl,
	.w1-5.cms_fl + .w1-5.cms_fl + .w1-5.cms_fl {
		margin-bottom: 0;
		margin-left: 0;
	}
	/* その他 */
	.w150 {
		text-align: center;
	}
	.w150 img {
		width: 150px;
	}
	.sp_w80p {
		width: 80%;
		margin-left: auto;
		margin-right: auto;
	}
	.sp_w80p .cms_caption_b {
		text-align: center;
	}
}

/* ------------------------------
 ボックス（PC）
------------------------------ */
/* 背景 */
.bgBox {
	padding: 50px;
	border-radius: 20px;
	background-color: var(--base-color);
}
/* 背景上下アキ25px */
.bgBox.ptb25 {
	padding: 25px 0;
}
/* 背景上下アキ35px */
.bgBox.ptb35 {
	padding: 35px 0;
}
/* 背景薄い赤 */
.bgrBox {
	padding: 15px 20px;
	border-radius: 8px;
	background-color: #fbf0ee;
	color: var(--red-color);
	font-weight: 600;
}
/* 横並び */
.flexBox {
	display: flex !important;
	flex-wrap: wrap;
}
.cms_block.flexBox::after {
	content: none;
}
/* 横並び センター揃え */
.flexBox.jc-c {
	justify-content: center;
}
/* 横並び 端揃え */
.flexBox.jc-sb {
	justify-content: space-between;
}
/* 横並び 縦センター揃え */
.flexBox.ai-c {
	align-items: center;
}
/* 横並び 縦上揃え */
.flexBox.ai-s {
	align-items: start;
}
/* 横並び4列（SP横並び2列） */
.flexBox.div4 {
	flex-wrap: wrap;
	gap: 30px 3.158%;
}
/* 横並びで写真キャプションが上 */
.flexBox.capTop > * {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
}
/* flexBoxの中でも横並びにしない */
.flexBox.h100p > h2,
.flexBox.h100p > h3 {
	width: 100% !important;
	text-align: center !important;
}
.flexBox .fg-1 {
	flex-grow: 1;
}
@media print, screen and (min-width: 768px) {
	/* 背景アキ30px */
	.bgBox.p30 {
		padding: 30px;
	}
	/* 横並び2列 */
	.flexBox.div2 {
		flex-wrap: wrap;
		column-gap: 4.21%;
	}
	.flexBox.div2 > * {
		width: 47.895%;
	}
	.mainContents .flexBox.div2 {
		column-gap: 4.39%;
	}
	.mainContents .flexBox.div2 > * {
		width: 47.805%;
	}
	/* 横並び3列 */
	.flexBox.div3 {
		flex-wrap: wrap;
		column-gap: 3.948%;
	}
	.flexBox.div3 > * {
		width: 30.702%;
	}
	.mainContents .flexBox.div3 {
		column-gap: 3.17%;
	}
	.mainContents .flexBox.div3 > * {
		width: 31.22%;
	}
	/* 横並び4列（SP横並び2列） */
	.flexBox.div4 > * {
		width: 22.632%;
	}
}
/* ------------------------------
 ボックス（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	/* 背景 */
	.bgBox {
		padding: 20px;
		border-radius: 15px;
	}
	/* 背景上下アキ25px */
	.bgBox.ptb25 {
		padding: 20px 0;
	}
	/* 背景上下アキ35px */
	.bgBox.ptb35 {
		padding: 20px 0;
	}
	/* 横並び2列・横並び3列 */
	.flexBox.div2,
	.flexBox.div3 {
		display: block !important;
	}
	/* .flexBox.div2 > * + *,
	.flexBox.div3 > * + * {
		margin-top: 30px;
	} */
	/* 横並び4列（SP横並び2列） */
	.flexBox.div4 {
		flex-wrap: wrap;
		gap: 15px 5.5%;
	}
	.flexBox.div4 > * {
		width: 47.25%;
	}
	/* 横並び4列（SP横並びにしない） */
	.flexBox.div4.sp_nodiv {
		display: block;
	}
	.flexBox.div4.sp_nodiv > * {
		width: 100%;
	}
}

/* ------------------------------
 テーブル（PC）
------------------------------ */
/* デフォルト */
.contents table {
	overflow: hidden;
	width: 100%;
	border-collapse: separate;
	border: 1px solid #dae3eb;
	border-radius: 20px;
	line-height: 1.5;
}
.contents table th {
	padding: 24px 1em 23px;
	background-color: var(--base-color);
	font-weight: 600;
	text-align: center;
	vertical-align: middle;
}
.contents table th.thead-th {
	background-color: var(--gray-color);
	color: #fff;
}
.contents table thead th {
	background-color: var(--gray-color);
	color: #fff;
}
.contents table thead th.red-th {
	background-color: var(--red-color);
}
.contents table td {
	padding: 24px 1em 23px;
}
.contents table:has(thead) td {
	text-align: center;
	vertical-align: middle;
}
.contents table td.red-td {
	background-color: #fbf0ee;
}
.contents table tr:not(:last-child) > th,
.contents table tr:not(:last-child) > td {
	border-bottom: 1px dotted #c9d4e0;
}
.contents table tr:not(:last-child) > th.thead-th,
.contents table tr:not(:last-child) > th.noborder-b,
.contents table tr:not(:last-child) > td.noborder-b {
	border-bottom: none;
}
.contents table thead th:not(:first-child) {
	border-left: 1px dotted #c9d4e0;
}
.contents table thead th.border-l,
.contents table tbody th.border-l {
	border-left: 1px dotted #c9d4e0;
}
.contents table tr > td {
	border-left: 1px dotted #c9d4e0;
}
.contents table:not(:has(thead)) tr:first-child > th {
	border-radius: 20px 0 0 0;
}
.contents table tbody tr:last-child > th {
	border-radius: 0 0 0 20px;
}
.contents table thead tr:first-child th:first-child {
	border-radius: 20px 0 0 0;
}
.contents table thead tr:first-child th:last-child {
	border-radius: 0 20px 0 0;
}
.contents table:not(:has(thead)) tr:first-child > td:last-child {
	border-radius: 0 20px 0 0;
}
.contents table tr:last-child > td:last-child {
	border-radius: 0 0 20px 0;
}
.contents table tbody tr:last-child > th.no-r {
	border-radius: 0;
}
/* Firefox */
@-moz-document url-prefix() {
	.contents table tr:not(:last-child) > th,
	.contents table tr:not(:last-child) > td {
		border-bottom: 1px dotted #93a8c0;
	}
	.contents table thead th:not(:first-child) {
		border-left: 1px dotted #93a8c0;
	}
	.contents table thead th.border-l,
	.contents table tbody th.border-l {
		border-left: 1px dotted #93a8c0;
	}
	.contents table tr > td {
		border-left: 1px dotted #93a8c0;
	}
}
/* デフォルト横padding狭い */
.contents .narrow table th,
.contents .narrow table thead th,
.contents .narrow table td {
	padding: 12px .5em 11px;
}
/* ラインなし */
.contents .noline table {
	border: none !important;
	border-radius: 0 !important;
	border-collapse: collapse;
}
.contents .noline table tr {
	display: grid;
	align-items: start;
}
.contents .noline table tr:not(:last-child) {
	margin-bottom: 15px;
}
.contents .noline table th {
	width: 100%;
	padding: 3px 1em 1px !important;
	border: none !important;
	border-radius: 3px !important;
	background-color: var(--base-color);
	color: var(--hospital-blue);
	font-weight: 600;
	text-align: right !important;
}
.contents .noline table td {
	padding: 3px 0 1px !important;
	border: none !important;
	border-radius: 0 !important;
}
/* スクロール */
.cms_text.scroller {
	overflow-y: hidden !important;
}
.contents .scroll-hint-icon {
	background: rgba(75,110,150,.5);
	top: calc(50% - 46px);
}
/* テーブル内のsmall */
.contents table th .small,
.contents table td .small {
	display: block;
	line-height: 1.5;
}
@media print, screen and (min-width: 768px) {
	/* デフォルト */
	.contents table th {
		width: fit-content;
		/* white-space: nowrap; */
	}
	/* ラインなし */
	.contents .noline table tr {
		grid-template-columns: 1fr 4fr;
		column-gap: 10px;
	}
}
/* ------------------------------
 テーブル（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	.contents table {
		border-radius: 15px;
	}
	.contents table:not(:has(thead)) tr:first-child > th {
		border-radius: 15px 0 0 0;
	}
	.contents table tbody tr:last-child > th {
		border-radius: 0 0 0 15px;
	}
	.contents table thead tr:first-child th:first-child {
		border-radius: 15px 0 0 0;
	}
	.contents table thead tr:first-child th:last-child {
		border-radius: 0 15px 0 0;
	}
	.contents table:not(:has(thead)) tr:first-child > td:last-child {
		border-radius: 0 15px 0 0;
	}
	.contents table tr:last-child > td:last-child {
		border-radius: 0 0 15px 0;
	}
	/* レスポンシブ */
	.contents .res table th,
	.contents .res table td {
		display: block;
		width: auto !important;
		padding: 17px 1em 16px;
	}
	.contents .res table th {
		border-bottom: 1px dotted #c9d4e0;
		text-align: left;
	}
	.contents .res table tr > td {
		border-left: none;
	}
	.contents .res table:not(:has(thead)) tr:first-child > th {
		border-radius: 15px 15px 0 0;
	}
	.contents .res table tbody tr:last-child > th {
		border-radius: 0;
	}
	.contents .res table tbody tr:last-child > td {
		border-radius: 0 0 15px 15px;
	}
	/* ラインなし */
	.contents .noline table tr {
		grid-template-columns: 1fr 1.5fr;
		column-gap: 5px;
	}
	/* ラインなし・レスポンシブ */
	.contents .noline.res table tr {
		display: block;
	}
	.contents .noline.res table tr th {
		margin-bottom: 10px;
	}
	.contents .noline table th {
		width: 45% !important;
		text-align: left !important;
	}
	/* スクロールバーの色 */
	/* スクロール */
	.cms_text.scroller {
		padding-bottom: 24px;
	}
	/* Webkitベースのブラウザ (Chrome, Safariなど) 用 */
	.cms_text.scroller::-webkit-scrollbar {
		width: 8px; /* スクロールバーの幅 */
	}
	.cms_text.scroller::-webkit-scrollbar-track {
		background: #e3eaf0; /* トラックの色 */
		border-radius: 8px;
	}
	.cms_text.scroller::-webkit-scrollbar-thumb {
		background: var(--hospital-color); /* サムの色 */
		border-radius: 8px;
	}
	.cms_text.scroller table {
		width: 1140px !important;
	}
	/* コンテンツ幅が狭い時のスクロール */
	.mainContents .cms_text.scroller table {
		width: 820px !important;
	}
	/* スクロールヒント */
	.contents .scroll-hint-icon {
		width: 120px;
		height: 92px;
		border-radius: 10px;
		padding-top: 23px;
	}
	.contents .scroll-hint-icon::before {
		width: 32px;
		height: 40px;
		background-image: url(../img/icon_scrollhint.svg);
	}
	.contents .scroll-hint-icon::after {
		width: 32px;
		height: 11px;
		top: 16px;
		margin-left: -19px;
		background-image: url(../img/icon_scrollhint_arrow.svg);
	}
	.contents .scroll-hint-text {
		font-family: 'Barlow', sans-serif;
		font-weight: 600;
		letter-spacing: 0.03em;
		margin-top: 1px;
	}
	.contents .scroll-hint-icon-wrap.is-active .scroll-hint-icon {
		opacity: 1;
	}
	/* スクロールバー */
	.cms_text.scroller::-webkit-scrollbar {
		display: block;
		width: 100%;
		height: 8px;
		border-radius: 4px;
		background-color: #e3eaf0;
	}
	.cms_text.scroller::-webkit-scrollbar-thumb {
		border-radius: 4px;
		background-color: var(--hospital-color);
	}
}

/* ------------------------------
 リスト（PC）
------------------------------ */
/* ノーマルリスト●付き */
.cms_text ul > li,
.cms_image ul > li {
	position: relative;
	padding-left: 1em;
}
.cms_text ul > li::before,
.cms_image ul > li::before {
	content: "●";
	position: absolute;
	top: .6em;
	left: 0;
	color: var(--hospital-color);
	font-size: 60%;
	width: auto;
	height: auto;
	background: none;
}
/* 赤●付き */
.cms_text.red-dot ul > li::before,
.cms_image.red-dot ul > li::before {
	color: var(--red-color);
}
/* 点線強調リスト */
.cms_text.dotline ul > li,
.cms_image.dotline ul > li,
.cms_text ul.dotline > li,
.cms_image ul.dotline > li {
	padding: 10px 0 6px 1em;
	border-bottom: 1px dotted var(--dotline-color);
}
.cms_text.dotline ul > li::before,
.cms_image.dotline ul > li::before,
.cms_text ul.dotline > li::before,
.cms_image ul.dotline > li::before {
	content: none;
}
.cms_text.dotline ul > li > p:first-child,
.cms_image.dotline ul > li > p:first-child,
.cms_text ul.dotline > li > p:first-child,
.cms_image ul.dotline > li > p:first-child {
	position: relative;
	margin-left: -1em;
	padding-left: 1em;
	font-size: 1.9rem;
	font-weight: 600;
}
.cms_text.dotline ul > li > p:first-child::before,
.cms_image.dotline ul > li > p:first-child::before,
.cms_text ul.dotline > li > p:first-child::before,
.cms_image ul.dotline > li > p:first-child::before {
	content: "";
	position: absolute;
	top: .5em;
	left: 0;
	width: 12px;
	height: 12px;
	background: url(../img/icon_list.png) no-repeat 0 0 / cover;
}
.cms_text.dotline ul > li > ul.normal > li,
.cms_image.dotline ul > li > ul.normal > li,
.cms_text ul.dotline > li > ul.normal > li,
.cms_image ul.dotline > li > ul.normal > li {
	position: relative;
	padding: 0 0 0 1em;
	border-bottom: none;
}
.cms_text.dotline ul > li > ul.normal > li::before,
.cms_image.dotline ul > li > ul.normal > li::before,
.cms_text ul.dotline > li > ul.normal > li::before,
.cms_image ul.dotline > li > ul.normal > li::before {
	content: "●";
	position: absolute;
	top: .6em;
	left: 0;
	color: var(--hospital-color);
	font-size: 60%;
	width: auto;
	height: auto;
	background: none;
}
/* チェックリスト */
.cms_text.check ul > li,
.cms_image.check ul > li,
.cms_text ul.check > li,
.cms_image ul.check > li {
	padding-left: 20px;
}
.cms_text.check ul > li::before,
.cms_image.check ul > li::before,
.cms_text ul.check > li::before,
.cms_image ul.check > li::before {
	content: "";
	position: absolute;
	top: .6em;
	left: 0;
	width: 15px;
	height: 15px;
	background: url(../img/icon_check.svg) no-repeat 0 0 / cover;
}
/* 数字リスト */
.cms_text ol > li,
.cms_image ol > li {
	position: relative;
	counter-increment: cnt;
	padding-left: 1.5em;
}
.cms_text ol > li::before,
.cms_image ol > li::before {
	content: counter(cnt) '.';
	position: absolute;
	top: 0;
	left: 0;
	color: var(--main-font-color);
	font-family: Arial, sans-serif;
	font-weight: bold;
}
/* 丸数字リスト */
.cms_text.circle ol > li,
.cms_image.circle ol > li,
.cms_text ol.circle > li,
.cms_image ol.circle > li {
	position: relative;
	counter-increment: item;
}
.cms_text.circle ol > li::before,
.cms_image.circle ol > li::before,
.cms_text ol.circle > li::before,
.cms_image ol.circle > li::before {
	content: counter(item);
	position: absolute;
	top: .35em;
	left: 0;
	width: 17px;
	height: 17px;
	border-radius: 50%;
	background-color: var(--hospital-blue);
	color: #fff;
	font-family: Arial, sans-serif;
	font-size: 1.1rem;
	line-height: 17px;
	font-weight: bold;
	text-align: center;
}
/* 横並びリスト */
.inline ul li,
.inline ol li {
	display: inline-block;
	margin-right: 2em;
}
table .inline ul li,
table .inline ol li {
	margin-right: 1em;
}
@media print, screen and (min-width: 768px) {
	/* li下に10pxのスペース */
	.cms_text.list_mb ul > li:not(:last-child),
	.cms_image.list_mb ul > li:not(:last-child),
	.cms_text ul.list_mb > li:not(:last-child),
	.cms_image ul.list_mb > li:not(:last-child),
	.cms_text.list_mb ol > li:not(:last-child),
	.cms_image.list_mb ol > li:not(:last-child),
	.cms_text ol.list_mb > li:not(:last-child),
	.cms_image ol.list_mb > li:not(:last-child) {
		margin-bottom: 10px;
	}
	/* 5行で折り返し */
	.list_grid2 ul {
		display: grid;
		grid-auto-flow: column;
		grid-template-rows: repeat(5, auto);
	}
	.list_grid2 ul li {
		align-self: self-start;
	}
	/* 横並び */
	.list_div2 ul,
	.list_div3 ul,
	.list_div4 ul,
	.list_div2 ol,
	.list_div3 ol,
	.list_div4 ol {
		display: flex;
		flex-wrap: wrap;
		column-gap: 1em;
	}
	/* 2分割 */
	.list_div2 ul li,
	.list_div2 ol li {
		width: calc((100% - 1em) / 2);
	}
	/* 3分割 */
	.list_div3 ul li,
	.list_div3 ol li {
		width: calc((100% - 2em) / 3);
	}
	/* 4分割 */
	.list_div4 ul li,
	.list_div4 ol li {
		width: calc((100% - 3em) / 4);
	}
}
/* ------------------------------
 リスト（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	/* ul、ol下スペース（スマホのみ） */
	.cms_text ul > li,
	.cms_image ul > li,
	.cms_text ol > li,
	.cms_image ol > li {
		margin-bottom: 5px;
	}
	/* 点線強調リスト */
	.cms_text.dotline ol > li,
	.cms_image.dotline ol > li,
	.cms_text ol.dotline > li,
	.cms_image ol.dotline > li {
		margin-bottom: 0;
	}
	.cms_text.dotline ul > li > p:first-child,
	.cms_image.dotline ul > li > p:first-child,
	.cms_text ul.dotline > li > p:first-child,
	.cms_image ul.dotline > li > p:first-child {
		font-size: 1.8rem;
		line-height: 1.5;
	}
	.cms_text.dotline ul > li > p:first-child::before,
	.cms_image.dotline ul > li > p:first-child::before,
	.cms_text ul.dotline > li > p:first-child::before,
	.cms_image ul.dotline > li > p:first-child::before {
		top: .4em;
	}
}

/* ------------------------------
 アイコン（PC）
------------------------------ */
/* カレンダー */
.icon_calendar a::before {
	content: "";
	display: inline-block;
	width: 26px;
	height: 25px;
	background: url(../img/icon_calendar.svg) no-repeat center / cover;
	vertical-align: middle;
	margin-right: 5px;
	margin-bottom: 5px;
}
.icon_calendar.cms_link a::after {
	content: none;
}
/* 電話 */
.icon-tel {
	line-height: 1;
	display: inline-block;
	padding-left: 1.1em;
	position: relative;
}
.icon-tel::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
}
/* ------------------------------
 アイコン（SP）
------------------------------ */
@media screen and (max-width: 767px) {
}

/* ------------------------------
 角丸（PC）
------------------------------ */
.r8,
.r8 img {
	border-radius: 8px;
}
.r20,
.r20 img {
	border-radius: 20px;
}
.r30,
.r30 img {
	border-radius: 30px;
}
/* 角丸なし */
.no-r img {
	border-radius: 0;
}
/* ------------------------------
 角丸（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	.r20,
	.r20 img {
		border-radius: 15px;
	}
	.r30,
	.r30 img {
		border-radius: 20px;
	}
}

/* ------------------------------
 画像（PC）
------------------------------ */
/* ポップボックス */
.cms_image a[rel="popbox"] {
	display: block;
	position: relative;
}
.cms_image a[rel="popbox"]::after {
	content: "";
	width: 32px;
	height: 32px;
	background: url(../img/icon_gnav_close.svg) no-repeat center / cover;
	position: absolute;
	top: -7px;
	right: -7px;
}
/* ------------------------------
 画像（SP）
------------------------------ */
@media screen and (max-width: 767px) {
}

/* ------------------------------
 線（PC）
------------------------------ */
/* 点線上 */
.dotline-t {
	margin-bottom: 10px;
	padding-top: 15px;
	border-top: var(--dotline);
}
/* 点線下 */
.dotline-b {
	margin-bottom: 15px;
	padding-bottom: 10px;
	border-bottom: var(--dotline);
}
/* Firefox */
@-moz-document url-prefix() {
	.dotline-t {
		border-top: var(--dotline-ff);
	}
	.dotline-b {
		border-bottom: var(--dotline-ff);
	}
}
/* ------------------------------
 線（SP）
------------------------------ */
@media screen and (max-width: 767px) {
}

/* ------------------------------
 リンク（PC）
------------------------------ */
/* 横並びリンク */
.inlineLink {
	display: flex;
	flex-flow: row wrap;
	gap: 20px;
}
/* ------------------------------
 リンク（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	/* 横並びリンク */
	.inlineLink {
		gap: 5px 10px;
	}
}

/* ------------------------------
 ボタン（PC）
------------------------------ */
/*デフォルト*/
.btn a,
a.btn {
	display: inline-flex;
	align-items: center;
	position: relative;
	height: 84px;
	padding: 0 76px 0 30px;
	border-radius: 42px;
	background-color: var(--base-color);
	color: var(--main-font-color);
	font-size: 1.8rem;
	font-weight: 600;
	text-decoration: none;
	transition: .3s ease-in-out;
}
.btn a::after,
a.btn::after {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	right: 23px;
	width: 38px;
	height: 38px;
	background: url(../img/icon_arrow_c_r.svg) no-repeat 0 0 / cover;
	margin: auto 0;
	transition: .3s ease-in-out;
}
.btn.list a::after,
a.btn.list::after {
	background: url(../img/icon_list_c.svg) no-repeat 0 0 / cover;
}
.btn a[target="_blank"]::after,
a.btn[target="_blank"]::after {
	background: url(../img/icon_blank_c.svg) no-repeat 0 0 / cover;
}
.btn.dl a::after,
a.btn.dl::after {
	background: url(../img/icon_dl.svg) no-repeat center / cover;
}
/*横並びボタン*/
.inlineBtn {
	display: flex;
	flex-wrap: wrap;
}
.inlineBtn .btn a {
	align-items: center;
}
.cms_block.inlineBtn::after {
	content: none;
}
@media print, screen and (min-width: 768px) {
	/*デフォルト*/
	.btn a,
	a.btn {
		min-width: 258px;
	}
	/* f18 */
	.btn.f18 a {
		font-size: 1.8rem;
	}
	/*横並びボタン*/
	.inlineBtn {
		gap: 10px 23px;
	}
}
/* ------------------------------
 ボタン（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	/*デフォルト*/
	.btn a,
	a.btn {
		min-width: 280px;
		height: 76px;
		font-size: 1.7rem;
		border-radius: 38px;
		padding: 0 72px 0 25px;
	}
	.btn a::after,
	a.btn::after {
		right: 19px;
	}
	/*横並びボタン*/
	.inlineBtn {
		flex-direction: column;
		align-items: center;
		gap: 10px 0;
	}
}

/* ------------------------------
 下層ページリンク（PC）
------------------------------ */
.cms_block:has(.lowerLink) li {
	padding-left: 0;
}
.cms_block:has(.lowerLink) li::before {
	content: none;
}
.cms_block .lowerLink li {
	display: flex;
	align-items: center;
	height: 104px;
}
.cms_block .lowerLink li p {
	font-size: 1.8rem;
	line-height: 1.6;
}
.cms_block .lowerLink li:has(img) {
	height: auto;
	margin-bottom: 14px;
	padding: 0;
	border-radius: 0;
	background: none;
}
.cms_block .lowerLink li a {
	display: flex;
	align-items: center;
	width: 100%;
	height: 100%;
	padding: 0 75px 0 25px;
	border-radius: 20px;
	background: var(--base-color) url(../img/icon_arrow_c_r.svg) no-repeat right 20px center / 38px 38px;
	color: var(--main-font-color);
	text-decoration: none;
}
.cms_block .lowerLink li a[target="_blank"] {
	background: var(--base-color) url(../img/icon_blank_c.svg) no-repeat right 20px center / 38px 38px;
}
.cms_block .lowerLink li:has(img) a {
	display: block;
	padding: 0;
	border-radius: 0;
	background: none;
}
.cms_block .lowerLink li img {
	border-radius: 20px;
}
.cms_block .lowerLink li p {
	font-size: 1.8rem;
	line-height: 1.6;
	font-weight: 600;
}
.cms_block .lowerLink li:has(img) p {
	margin: 22px 0 10px;
	font-size: 2.4rem;
	line-height: 1.3;
}
.cms_block .lowerLink li:has(img) p::after {
	content: "";
	display: inline-block;
	width: 38px;
	height: 38px;
	margin: -4px 0 0 8px;
	background: url(../img/icon_arrow_c_r.svg) no-repeat 0 0 / cover;
	vertical-align: middle;
}
.cms_block .lowerLink li:has(img) a[target="_blank"] p::after {
	background: url(../img/icon_blank_c.svg) no-repeat 0 0 / cover;
}
/* 第3階層画像タイプ */
.mainContents .cms_block .lowerLink li:has(img) p {
	margin-top: 20px;
	font-size: 2rem;
}
.mainContents .cms_block .lowerLink li:has(img) p::after {
	width: 30px;
	height: 30px;
	margin: -4px 0 0 6px;
	background: url(../img/icon_arrow_c_r_s.svg) no-repeat 0 0 / cover;
}
.mainContents .cms_block .lowerLink li:has(img) a[target="_blank"] p::after {
	background: url(../img/icon_blank_c.svg) no-repeat 0 0 / cover;
}
/* リンクなし */
.cms_block .lowerLink li div {
	display: flex;
	align-items: center;
	width: 100%;
	height: 100%;
	padding: 0 25px;
	border-radius: 20px;
	background: var(--base-color);
	color: var(--main-font-color);
	text-decoration: none;
}
/* 病診連携室 （紹介について）アイコン入り */
.mainContents .cms_block.cooperationLink .lowerLink li a {
	position: relative;
	padding: 0 75px 0 80px;
}
.mainContents .cms_block.cooperationLink .lowerLink li a::before {
	content: "";
	display: block;
	position: absolute;
	top: 0;
	bottom: 0;
	left: 25px;
	width: 40px;
	height: 40px;
	margin: auto 0;
}
.mainContents .cms_block.cooperationLink .lowerLink li:first-child a::before {
	background: url(../img/icon_introduction.svg) no-repeat 0 4px / 37px 36px;
}
.mainContents .cms_block.cooperationLink .lowerLink li:nth-child(2) a::before {
	background: url(../img/icon_ct-mri-bmd.svg) no-repeat 0 0 / 38px 38px;
}
.mainContents .cms_block.cooperationLink .lowerLink li:last-child a::before {
	background: url(../img/icon_carotid-eeg.svg) no-repeat 0 0 / 36px 39px;
}
@media print, screen and (min-width: 768px) {
	.cms_block .lowerLink {
		display: flex;
		flex-wrap: wrap;
		gap: 16px 45px;
	}
	.mainContents .cms_block .lowerLink {
		gap: 16px 36px;
	}
	.cms_block .lowerLink li {
		width: 30.702%;
	}
	.cms_block .lowerLink li:has(img) {
		width: 47.895%;
	}
	.mainContents .cms_block .lowerLink li {
		width: 47.805%;
	}
	.cms_block .lowerLink li:has(img):nth-child(even) {
		margin-left: 3px;
	}
	.mainContents .cms_block .lowerLink li:has(img):nth-child(even) {
		margin-left: 0;
	}
	/* 画像入りとタイトルのみが混在したとき間をあけたいけどうまくいかない
		リンクブロックは見出しなどを入れる必要がなければ分けたくない
	.cms_block .lowerLink li:has(img):last-child,
	.cms_block .lowerLink li:has(img):nth-last-child(2) {
		margin-bottom: 34px;
	} */
}
/* ----------------------
 下層ページリンク（SP）
---------------------- */
@media screen and (max-width: 767px) {
	.cms_block .lowerLink li:not(:last-child) {
		margin-bottom: 20px;
	}
	.cms_block .lowerLink li:not(:last-child):has(img) {
		margin-bottom: 24px;
	}
	.cms_block .lowerLink li a {
		border-radius: 15px;
	}
	.cms_block .lowerLink li p {
		font-size: 1.7rem;
	}
	.cms_block .lowerLink li:has(img) p {
		margin: 12px 0 6px;
		font-size: 2.2rem;
	}
	.cms_block .lowerLink li:has(img) p::after {
		width: 36px;
		height: 36px;
	}
	/* 第3階層画像タイプ */
	.mainContents .cms_block .lowerLink li:has(img) p {
		margin-top: 15px;
	}
}

/* ------------------------------
 ページ内リンク（PC）
------------------------------ */
.pageLink {
	display: flex;
	flex-flow: row wrap;
	gap: 2px 1em;
}
.pageLink .cms_text.index {
	display: block;
	width: 100px;
	height: 30px;
	margin-bottom: 13px;
	margin-right: calc(100% - 100px);
	border-radius: 10px 10px 0 0;
	background-color: var(--hospital-blue);
	color: #fff;
	font-family: "Rubik", sans-serif;
	font-size: 1.5rem;
	line-height: 30px;
	font-weight: 400;
	text-align: center;
}
.pageLink .cms_text.index {
	font-family: "Rubik", sans-serif;
}
.pageLink .cms_link {
	margin-bottom: 0;
}
.pageLink .cms_link a {
	font-size: 1.6rem;
	font-weight: 400;
}
.pageLink .cms_link:not(.btn) a::after {
	width: 20px;
	height: 20px;
	margin: -4px 0 0 4px;
	background: url(../img/icon_arrow_c_b_p.svg) no-repeat 0 0 / cover;
	transform: none;
}
@media print, screen and (min-width: 768px) {
	/* 横幅980px */
	.heading.noside + .inBlock > .cms_block.pageLink {
		width: 980px;
	}
}
/* ------------------------------
 ページ内リンク（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	.pageLink .cms_text.index {
		margin-bottom: 8px;
	}
	.pageLink {
		gap: 7px 1em;
	}
}

/* ------------------------------
 お知らせ・ブログ（PC）
------------------------------ */
/* お知らせ一覧ページ */
.newsList li {
	display: flex;
	column-gap: 20px;
	width: 100%;
	padding: 25px 0;
	border-bottom: 1px dotted #a5b7cb;
}
.newsList li:first-child {
	border-top: 1px dotted #a5b7cb;
}
.newsList li a[target="_blank"]::after {
	content: "";
	display: inline-block;
	width: 14px;
	height: 14px;
	margin-left: 5px;
	background: url(../img/icon_blank.svg) no-repeat center / cover;
	transition: .3s ease-in-out;
}
/* お知らせタイトル */
.newsList .headline {
	width: calc(100% - 256px);
	padding-top: 4px;
	line-height: 1.5;
}
/* リンクありの場合 */
.newsList .headline a {
	position: relative;
	display: inline-block;
}
/* ブログ一覧 */
.contentsHome .postList li a .postImg { /* ←トップ */
	margin-bottom: 15px;
}
.postList li a .postImg img {
	border-radius: 20px;
	width: 100%;
	aspect-ratio: 4.3 / 3;
	object-fit: cover;
	object-position: center top;
}
.postList li a .postText {
	display: flex;
	flex-wrap: wrap;
	gap: 3px 8px;
}
.contentsHome .postList li a .postText { /* ←トップ */
	gap: 12px 8px;
}
.postList li a .postText .title {
	line-height: 1.5;
}
.postList .tag {
	display: flex;
}
/* 日付 */
.newsList .date,
.postList .date,
.dateBox .date {
	padding-top: 2px;
	color: var(--gray-color);
	font-family: "Rubik", sans-serif;
	font-weight: 400;
	line-height: 28px;
}
/* カテゴリ・タグ */
.cate,
.tag {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 133px;
	height: 30px;
	padding-top: 2px;
	border: 1px solid var(--hospital-blue);
	border-radius: 15px;
	background-color: #fff;
	color: var(--hospital-blue);
	font-size: 1.3rem;
	font-weight: 600;
	line-height: 1;
}
.cate2 .cate {
	color: #00856f;
	border-color: #00856f;
}
.cate3 .cate {
	color: var(--fuyo-color);
	border-color: var(--fuyo-color);
}
.cate4 .cate {
	color: #627a00;
	border-color: #627a00;
}
/* 下層ページ */
.dateBox {
	display: flex;
	align-items: center;
	gap: 0 10px;
	margin-bottom: 40px;
}
@media print, screen and (min-width: 768px) {
	/* ページネーション 前へ／次へ */
	.postSwiper .swiper-pagination,
	.postSwiper .swiper-buttons {
		display: none !important;
	}
}
/* ----------------------
 新着・ブログ一覧（SP）
---------------------- */
@media screen and (max-width: 767px) {
	/* 新着情報一覧 */
	.newsList li {
		flex-flow: row wrap;
		gap: 3px 10px;
		padding: 20px 0 15px;
	}
	/* 新着タイトル */
	.newsList .headline {
		width: 100%;
	}
	/* ブログ一覧 */
	.postList li {
		width: 100%;
	}
	.postList li a .postImg {
		width: 100%;
	}
	.mainContents .postList li a .postImg {
		margin-bottom: 20px;
	}
	/* ページネーション */
	.postSwiper .swiper-pagination-bullets.swiper-pagination-horizontal {
		display: block;
		bottom: 0;
		left: 50%;
		width: auto;
		height: 34px;
		padding-top: 4px;
		transform: translateX(-50%);
	}
	.postSwiper .swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet {
		opacity: 1;
		margin: 0 4px;
		background-color: #bfcfdb;
	}
	.postSwiper .swiper-pagination .swiper-pagination-bullet.swiper-pagination-bullet-active {
		background-color: var(--hospital-color);
	}
	/* 前へ／次へ */
	.postSwiper .swiper-buttons {
		display: flex;
		position: absolute;
		justify-content: flex-end;
		height: 34px;
		gap: 5px;
		bottom: 0;
		right: 0;
	}
	.postSwiper .swiper-buttons .swiper-button-prev,
	.postSwiper .swiper-buttons .swiper-button-next {
		position: static;
		width: 34px;
		height: 34px;
		margin: 0;
	}
	.postSwiper .swiper-buttons .swiper-button-prev::after,
	.postSwiper .swiper-buttons .swiper-button-next::after {
		content: "";
		display: block;
		width: 34px;
		height: 34px;
		border-radius: 5px;
		background: var(--base-color) url(../img/icon_arrow_r_g_s.svg) no-repeat 11px center / 13px 10px;
	}
	.postSwiper .swiper-buttons .swiper-button-prev::after {
		transform: rotate(180deg);
	}
}

/* ------------------------------
 Googlemap埋め込み（PC）
------------------------------ */
.map {
	width: 100%;
	aspect-ratio: 16 / 9;
}
.map iframe {
	width: 100%;
	height: 100%;
	border: 0;
	border-radius: 20px;
}
/* ------------------------------
 Googlemap埋め込み（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	.map {
		aspect-ratio: 1 / 1;
	}
	.map iframe {
		border-radius: 15px;
	}
}

/* ------------------------------
 YouTube埋め込み
------------------------------ */
.youtube {
	width: 100%;
	aspect-ratio: 16 / 9;
}
.youtube iframe {
	width: 100%;
	height: 100%;
	border: 0;
}

/* ------------------------------
 順番指定
------------------------------ */
@media print, screen and (min-width: 768px) {
	.order1 { order: 1;}
	.order2 { order: 2;}
	.order3 { order: 3;}
}
@media screen and (max-width: 767px) {
	.sp_order1 { order: 1;}
	.sp_order2 { order: 2;}
	.sp_order3 { order: 3;}
}

/* ------------------------------
 よくあるご質問（PC）
------------------------------ */
.cms_text.toggle {
	position: relative;
	margin-bottom: 15px;
	padding: 20px 60px 19px;
	border-radius: 10px;
	background-color: var(--base-color);
	font-size: 1.8rem;
	font-weight: bold;
	cursor: pointer;
}
.cms_text.toggle::before {
	content: "";
	display: block;
	position: absolute;
	right: 29px;
	top: 0;
	bottom: 0;
	margin: auto;
	width: 2px;
	height: 18px;
	background-color: var(--hospital-color);
}
.cms_text.toggle::after {
	content: "";
	display: block;
	position: absolute;
	right: 21px;
	top: 0;
	bottom: 0;
	margin: auto;
	width: 18px;
	height: 2px;
	background-color: var(--hospital-color);
}
.cms_text.toggle.is-open::before {
	display: none;
}
.cms_text.toggle p::before {
	content:"Q";
	display: block;
	position: absolute;
	top: 18px;
	left: 18px;
	width: 32px;
	height: 32px;
	border: 1px solid var(--hospital-blue);
	border-radius: 50%;
	background-color: #fff;
	color: var(--hospital-blue);
	font-family: "Rubik", sans-serif;
	font-size: 2.2rem;
	line-height: 34px;
	font-weight: 500;
	text-align: center;
}
.cms_text.toggleContents {
	display: none;
	position: relative;
	margin-bottom: 0;
	padding: 7px 20px 22px 60px;
}
.cms_text.toggleContents p {
	position: relative;
}
.cms_text.toggleContents p:before {
	content:"A";
	display: block;
	position: absolute;
	top: -4px;
	left: -42px;
	color: #fff;
	width: 34px;
	height: 34px;
	border-radius: 50%;
	background-color: var(--hospital-blue);
	font-family: "Rubik", sans-serif;
	font-size: 2.2rem;
	line-height: 34px;
	font-weight: 500;
	text-align: center;
}
@media print, screen and (min-width: 768px) {
}
/* ------------------------------
 よくあるご質問（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	.cms_text.toggle {
		margin-bottom: 10px;
		padding: 17px 41px 17px 50px;
		font-size: 1.6rem;
	}
	.cms_text.toggle::before {
		right: 22px;
		width: 2px;
		height: 16px;
	}
	.cms_text.toggle::after {
		right: 15px;
		width: 16px;
		height: 2px;
	}
	.cms_text.toggle p:before {
		top: 15px;
		left: 10px;
		width: 30px;
		height: 30px;
		font-size: 2rem;
		line-height: 30px;
	}
	.cms_text.toggleContents {
		padding: 6px 15px 22px 50px;
	}
	.cms_text.toggleContents p:before {
		top: -2px;
		left: -45px;
		width: 30px;
		height: 30px;
		font-size: 2rem;
		line-height: 30px;
	}
}

/* ------------------------------
 流れ
------------------------------ */
.flowBlock .bgBox {
	position: relative;
	padding: 25px 60px;
	border-radius: 10px;
}
.flowBlock .bgBox:not(:last-child) {
	margin-bottom: 20px;
}
.flowBlock .bgBox:not(:last-child):after {
	content: "";
	display: block;
	position: absolute;
	top: calc(100% - 1px);
	left: 28px;
	width: 24px;
	height: 12px;
	background-color: var(--base-color);
	clip-path: polygon(50% 100%, 0 0, 100% 0);
}
.flowBlock p:first-child {
	position: relative;
	margin-bottom: 15px;
	padding: 4px 0 0 12px;
	color: var(--hospital-blue);
	font-size: 2rem;
	line-height: 24px;
	font-weight: 600;
}
.flowBlock p:first-child  span {
	display: inline-block;
	position: absolute;
	top: 0;
	left: -60px;
	width: 66px;
	height: 28px;
	padding-left: 8px;
	border-radius: 0 14px 14px 0;
	background-color: var(--hospital-blue);
	color: #fff;
	font-family: "Rubik", sans-serif;
	font-size: 1.5rem;
	line-height: 28px;
}
.flowBlock p:first-child  span em {
	font-size: 1.1rem;
	font-style: normal;
}
.flowBlock .arrowImg div {
	position: relative;
}
.flowBlock .arrowImg div:not(:last-child)::after {
	content: "";
	display: block;
	position: absolute;
	top: 0;
	bottom: 0;
	right: -14px;
	width: 8px;
	height: 8px;
	margin: auto 0;
	border-right: solid 2px #a3bacc;
	border-bottom: solid 2px #a3bacc;
	transform: rotate(-45deg);
}
@media print, screen and (min-width: 768px) {
	.flowBlock.narrow .bgBox {
		padding: 25px 30px;
	}
	.flowBlock.narrow .bgBox p:first-child {
		padding: 4px 0 0 42px;
	}
	.flowBlock.narrow .bgBox p:first-child span {
		left: -30px;
	}
}
/* ----------------------
 流れ（SP）
---------------------- */
@media screen and (max-width: 767px) {
	.flowBlock .bgBox {
		padding: 20px;
	}
	.flowBlock p:first-child  {
		margin-bottom: 10px;
		padding: 4px 0 0 52px;
		font-size: 1.9rem;
	}
	.flowBlock p:first-child span {
		left: -20px;
	}
	.flowBlock .arrowImg div:not(:last-child)::after {
		content: "";
		display: block;
		position: absolute;
		top: auto;
		bottom: -18px;
		left: 0;
		right: 0;
		width: 12px;
		height: 12px;
		margin: 0 auto;
		border-right: solid 2px #a3bacc;
		border-bottom: solid 2px #a3bacc;
		transform: rotate(45deg);
	}
}

/* ------------------------------
 電話（PC）
------------------------------ */
/* 代表電話 */
.mainTel {
	display: flex;
	align-items: center;
	column-gap: 15px;
	color: var(--hospital-blue);
	font-family: "Rubik", sans-serif;
	font-size: 3.6rem;
	letter-spacing: -.015em;
}
.mainTel span {
	display: inline-block;
	height: 40px;
	padding: 2px 12px 0;
	border-radius: 5px;
	background-color: #e8eef2;
	color: var(--hospital-blue);
	font-family: "IBM Plex Sans JP", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
	font-size: 2rem;
	line-height: 38px;
	font-weight: 600;
}
.mainTel a[href^="tel:"] {
	color: var(--hospital-blue);
	line-height: 40px;
}
/* 電話アイコン付き */
.iconTel a[href^="tel:"] {
	display: inline-block;
	color: var(--hospital-blue);
	font-family: "Rubik", sans-serif;
	font-size: 4.5rem;
	line-height: 1;
	letter-spacing: -.015em;
}
.iconTel a[href^="tel:"]::before {
	content: "";
	display: inline-block;
	width: 38px;
	height: 38px;
	margin: -8px 8px 0 0;
	background: url(../img/icon_tel.svg) no-repeat 0 0 / cover;
	vertical-align: middle;
}
.iconTel .cms_link::after {
	content: none;
}
/* ------------------------------
 電話（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	/* 代表電話 */
	.mainTel {
		flex-wrap: wrap;
		align-items: flex-start;
		gap: 5px 13px;
		font-size: 3.2rem;
	}
	.mainTel span {
		height: 36px;
		font-size: 1.8rem;
		line-height: 34px;
	}
	.mainTel a[href^="tel:"] {
		line-height: 36px;
		text-decoration: none !important;
	}
	/* 電話アイコン付き */
	.iconTel a[href^="tel:"] {
		font-size: 3.5rem;
		letter-spacing: -.015em;
		text-decoration: none !important;
	}
	.iconTel a[href^="tel:"]::before {
		width: 30px;
		height: 30px;
		margin: -6px 6px 0 0;
	}
}

/* ------------------------------
 はみ出し画像コンテンツ
------------------------------ */
.overflowBlock > * {
	margin-left: 0;
	margin-right: 0;
}
.overflowBlock .textBox h2 {
	letter-spacing: 0;
	line-height: 1.36;
}
.overflowBlock .textBox .text-lead {
	margin-bottom: 35px;
}
.overflowBlock .textBox .text-lead span {
	padding: 4px 10px;
	border-radius: 5px;
	display: inline-block;
}
@media print, screen and (min-width: 768px) {
	.overflowBlock.flexBox {
		column-gap: 45px;
	}
	.overflowBlock .textBox {
		width: 350px;
	}
	.overflowBlock .imgBox {
		width: 1105px;
		margin-left: -360px;
	}
	.overflowBlock .imgBox.order2 {
		margin-left: 0;
		margin-right: -360px;
	}
}
/* ----------------------
 はみ出し画像（SP）
---------------------- */
@media screen and (max-width: 767px) {
	.overflowBlock .textBox .text-lead {
		margin-bottom: 15px;
	}
}

/* ------------------------------
 画像とテキスト横並び（PC）
------------------------------ */
.image-textBox {
	color: #fff;
	border-radius: 20px;
	overflow: hidden;
	background: #474747;
	position: relative;
	transition: opacity 0.3s ease-in-out;
}
.image-textBox a.cms_link::after {
	content: none;
}
.image-textBox:has(a)::after {
	content: "";
	display: block;
	width: 60px;
	height: 60px;
	border-radius: 100%;
	position: absolute;
	right: 35px;
	bottom: 30px;
	background: var(--green-color) url(../img/arrow_right_w.svg) no-repeat center / 16px auto;
}
.image-textBox img {
	border-radius: 0;
}
.image-textBox a,
.image-textBox h2 {
	color: #fff;
}
.image-textBox .cms_caption_b,
.image-textBox .cms_caption_b a {
	display: flex;
}
.image-textBox .cms_caption_b a {
	width: 100%;
	align-items: center;
	padding: 30px 60px;
}
.cms_image.image-textBox:has(h2:first-child) .cms_caption_b {
	margin-top: 0;
}
@media print, screen and (min-width: 768px) {
	.image-textBox a:hover {
		opacity: 1;
	}
	.image-textBox:has(a):hover {
		opacity: .7;
	}
	.image-textBox {
		display: flex;
	}
	.image-textBox > * {
		width: 50%;
		margin: 0;
	}
}
/* ------------------------------
 画像とテキスト横並び（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	.image-textBox .cms_caption_b a {
		padding: 20px 30px 40px;
	}
	.image-textBox:has(a)::after {
		width: 40px;
		height: 40px;
		right: 20px;
		bottom: 20px;
	}
}
/* ------------------------------
 背景全面画像（PC）
------------------------------ */
.imgbgBlock {
	position: relative;
	max-width: 1920px;
	display: flex;
	align-items: center;
}
.imgbgBlock .textBox {
	text-align: center;
	border-radius: 20px;
	padding: 60px 50px;
	background-color: #fff;
	position: absolute;
	left: 0;
	right: 0;
	margin: auto;
}
.imgbgBlock .textBox h2 {
	text-align: center;
}
.imgbgBlock .textBox h2::after {
	left: 0;
	right: 0;
	margin-left: auto;
	margin-right: auto;
}
@media print, screen and (min-width: 768px) {
	.imgbgBlock > .cms_image {
		width: calc(100% / 2);
		margin-bottom: 0;
	}
	.imgbgBlock > .cms_image img {
		width: 100%;
		height: 620px;
		object-fit: cover;
	}
	.imgbgBlock > .cms_image:nth-of-type(1) img {
		object-position: 100% 0;
	}
	.imgbgBlock > .cms_image:nth-of-type(2) img {
		object-position: 0 0;
	}
	.imgbgBlock .textBox {
		width: 490px;
	}
}

/* ------------------------------
 当院の歴史と特長（PC）
------------------------------ */
.hfBox {
	position: relative;
	padding-top: 50px;
}
.hfNumber {
	position: absolute;
	top: -5px;
	left: -17px;
	color: var(--base-color);
	font-family: "Rubik", sans-serif;
	font-size: 8rem;
	line-height: 1;
	font-weight: 600;
}
@media print, screen and (min-width: 768px) {
}
/* ------------------------------
 当院の歴史と特長（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	.hfBox {
		padding-top: 40px;
	}
	.cms_block.hfBox,
	.hfBox .cms_text {
		margin-bottom: 30px;
	}
	.hfBox .cms_text {
		margin-bottom: 20px;
	}
	.hfNumber {
		top: -4px;
		left: -14px;
		font-size: 6.6rem;
	}
}

/* ------------------------------
 地域密着型の総合病院（PC）
------------------------------ */
.communityBox {
	margin-bottom: 0;
	padding: 30px 0;
	border-top: var(--dotline);
	border-bottom: var(--dotline);
}
/* Firefox */
@-moz-document url-prefix() {
	.communityBox {
		border-top: var(--dotline-ff);
		border-bottom: var(--dotline);
	}
}
.communityBox h3 {
	color: var(--hospital-blue);
}
.communityBox + .communityBox {
	margin-top: -1px;
}
@media print, screen and (min-width: 768px) {
	.communityBox > * {
		width: 47.805%;
	}
}

/* ------------------------------
 MRI（PC）
------------------------------ */
/* POINT */
.point {
	position: relative;
	width: 84px;
	height: 26px;
	margin-bottom: 10px;
	border-radius: 13px;
	background-color: var(--hospital-blue);
	color: #fff;
	font-family: "Rubik", sans-serif;
	font-size: 1.5rem;
	line-height: 26px;
	font-weight: 400;
	text-align: center;
}
.point::after {
	content: "";
	display: block;
	position: absolute;
	bottom: -6px;
	left: 14px;
	width: 7px;
	height: 7px;
	clip-path: polygon(0 0, 100% 100%, 100% 0);
	background-color: var(--hospital-blue);
}

/* ------------------------------
 在宅支援室（PC）
------------------------------ */
@media print, screen and (min-width: 768px) {
	.w360img {
		text-align: center;
	}
	.w360img img {
		width: 360px;
	}
}
/* ------------------------------
 画像とテキスト横並び（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	.w360img img {
		width: 80%;
		max-width: 360px;
	}
}