@charset "UTF-8";

/*
 * 施術ページ（menu投稿タイプ）SEO施策追加スタイル
 * 読み込み条件: is_singular('menu') || is_page('menu') || is_front_page() || is_404()
 */

/* =====================
   表示切り替え
   ===================== */
@media only screen and (min-width: 769px) {
	.p-menu .u-hidden-pc { display: none !important; }
}

@media only screen and (max-width: 768px) {
	.p-menu .u-hidden-sp { display: none !important; }
}

/* =====================
   ユーティリティ
   ===================== */
.p-menu .section {
	margin-top: 96px;
	padding-bottom: 0;
}

@media screen and (max-width: 768px) {
	.p-menu .section {
		margin-top: 100px;
	}
}

.p-menu .section:last-child {
	padding-bottom: 200px;
}

@media screen and (max-width: 768px) {
	.p-menu .section:last-child {
		padding-bottom: 100px;
	}
}

.p-menu .section_title {
	margin-bottom: 32px;
}

@media screen and (max-width: 768px) {
	.p-menu .section_title {
		margin-bottom: 24px;
		line-height: 1.67;
	}
}

.p-menu.page_article__container .menu_point_text {
	margin-bottom: 32px;
}

@media screen and (max-width: 768px) {
	.p-menu.page_article__container .menu_point_text {
		margin-bottom: 24px;
	}
}

.p-menu .section.section_access_area {
	padding-bottom: 0;
}

/* =====================
   c-btn-menu（画像上・テキスト下のカード型）
   ===================== */
.c-btn-menu {
	cursor: pointer;
	display: block;
	width: 100%;
	height: 100%;
	background-color: #fff;
	border-radius: 8px;
	box-shadow: 0 0 26px rgba(0, 0, 0, 0.05);
}

.c-btn-menu a {
	display: flex;
	flex-direction: column;
	width: 100%;
	height: 100%;
	color: #0A173E;
	text-decoration: none;
}

.c-btn-menu a:active,
.c-btn-menu a:focus,
.c-btn-menu a:hover,
.c-btn-menu a:visited {
	color: #0A173E;
	text-decoration: none;
}

.c-btn-menu__img {
	margin: 0;
	width: 100%;
	aspect-ratio: 353 / 180;
	overflow: hidden;
	flex-shrink: 0;
	border-radius: 8px 8px 0 0;
}

@media screen and (max-width: 768px) {
	.c-btn-menu__img {
		aspect-ratio: 335 / 180;
	}
}

.c-btn-menu__img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.c-btn-menu__label {
	position: relative;
	padding: 10px 20px;
	font-size: 16px;
	font-weight: 500;
	line-height: 1.9;
}

.c-btn-menu__label::after {
	display: block;
	content: "";
	position: absolute;
	right: 22px;
	top: 50%;
	transform: translateY(-50%) translateX(0);
	width: 14px;
	height: 14px;
	background: url(../img/icon/arrow_right.svg) center no-repeat;
	background-size: cover;
	transition: transform 0.5s ease;
}

.c-btn-menu:hover .c-btn-menu__label::after {
	transform: translateY(-50%) translateX(5px);
	transition: transform 0.5s ease;
}

/* =====================
   診療メニュー アンカーリンク
   ===================== */
.top_menu_nav {
	margin-bottom: 0;
}

.top_menu_nav + .link_button_wrapper {
	margin-top: 30px;
}

.menu-list {
	display: flex;
	flex-wrap: wrap;
	gap: 20px;
}

@media screen and (max-width: 768px) {
	.menu-list {
		display: block;
	}
}

.menu-list + .nav_anchor_items {
	margin-top: 40px;
}

.menu-list__item {
	width: calc((100% - 40px) / 3);
}

@media screen and (max-width: 768px) {
	.menu-list__item {
		width: 100%;

		&:not(:first-child) {
			margin-top: 20px;
		}
	}
}

.c-nav-menu .nav_anchor_items.is-2-3columns {
	gap: 0 20px;
}

@media screen and (max-width: 768px) {
	.c-nav-menu .nav_anchor_items.is-2-3columns {
		margin-top: 40px;
		display: block;
	}
}

@media screen and (min-width: 769px) {
	.c-nav-menu .nav_anchor_items.is-2-3columns .nav_anchor_item {
		width: calc((100% - 40px) / 3);
	}
}

@media screen and (max-width: 768px) {
	.c-nav-menu .nav_anchor_items.is-2-3columns .nav_anchor_item {
		width: 100%;
	}
}

@media screen and (max-width: 768px) {
	.c-nav-menu .nav_anchor_items.is-2-3columns .nav_anchor_item:not(:first-child) .nav_anchor_link {
		border-top: none;
	}
}

.c-nav-menu .nav_anchor_link-icon img {
	width: 14px;
	margin-bottom: 0;
}

/* =====================
   番号付きカードグリッド
   ===================== */
.m-concern-cards {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 40px;
}

@media screen and (max-width: 768px) {
	.m-concern-cards {
		margin-top: 48px;
		grid-template-columns: 1fr;
		gap: 16px;
	}
}

.m-concern-cards__item {
	background-color: #f7f7f9;
	border-radius: 4px;
	padding: 36px 32px;
	display: flex;
	flex-direction: column;
	gap: 36px;
}

@media screen and (max-width: 768px) {
	.m-concern-cards__item {
		gap: 24px;
		padding: 8.5333vw 5.3333333333vw;
	}
}

.m-concern-cards__figure {
	order: -1;
	margin: 0 auto;
	text-align: center;
}

.m-concern-cards__figure img {
	max-width: 100%;
	width: 264px;
	height: auto;
}

@media screen and (max-width: 768px) {
	.m-concern-cards__figure img {
		width: 220px;
	}
}

.p-menu.page_article__container img {
	margin-bottom: 0;
}

.m-concern-cards__body {
	flex: 1;
}

.m-concern-cards__body p {
	font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
	font-size: 16px;
	font-weight: 400;
	line-height: 1.8;
	color: #3F4960;
}

@media screen and (max-width: 768px) {
	.m-concern-cards__body p {
		font-size: 14px;
		line-height: 1.7;
	}
}

.m-concern-cards__heading {
	font-size: 22px;
	font-weight: 400;
	line-height: 1.3;
	margin-bottom: 16px;
	display: flex;
	align-items: center;
	gap: 10px;
	color: #0A173E;
}

@media screen and (max-width: 768px) {
	.m-concern-cards__heading {
		font-size: 20px;
		line-height: 1.4;
		margin-bottom: 24px;
	}
}

.m-concern-cards__number {
	font-family: Montserrat;
	font-size: 52px;
	font-weight: 400;
	color: #d2dde6;
	flex-shrink: 0;
	padding-right: 10px;
	border-right: 1px solid #d2dde6;
	line-height: 1;
}

@media screen and (max-width: 768px) {
	.m-concern-cards__number {
		font-size: 36px;
	}
}

/* =====================
   menu_point_items
   ===================== */
@media screen and (max-width: 768px) {
	.p-menu .menu_point_wrapper {
		margin-top: 48px;
	}
}

@media screen and (max-width: 768px) {
	.p-menu .menu_point_items {
		padding: 32px 20px;
	}
}

@media screen and (max-width: 768px) {
	.p-menu .menu_point_title {
		margin-bottom: 24px;
	}
}

.p-menu .menu_point_items .menu_point_text {
	margin-bottom: 0;
}

/* =====================
   横並びブロック
   ===================== */
.m-flex-block {
	display: flex;
	gap: 50px;
	align-items: flex-start;
	margin-bottom: 32px;
}

@media screen and (max-width: 768px) {
	.m-flex-block {
		flex-direction: column;
		gap: 24px;
	}
}

.m-flex-block__figure {
	margin-bottom: 0;
	width: 500px;
	flex-shrink: 0;
	overflow: hidden;
}

@media screen and (max-width: 768px) {
	.m-flex-block__figure {
		width: 100%;
	}
}

.m-flex-block__figure img {
	width: 100%;
	height: auto;
	display: block;
}

.m-flex-block__body {
	flex: 1;
	padding-top: 24px;
	min-width: 0;
}

@media screen and (max-width: 768px) {
	.m-flex-block__body {
		padding-top: 0;
	}
}

.m-flex-block__body p {
	font-size: 14px;
	font-weight: 400;
	line-height: 1.65;
}

@media screen and (max-width: 768px) {
	.m-flex-block__body p {
		font-size: 14px;
		line-height: 1.7;
		letter-spacing: 1.4px;
	}
}

/* =====================
   テーブル上書き（p-menu）
   ===================== */
.p-menu .table_scroll {
	overflow-x: visible;
}

@media screen and (max-width: 768px) {
	.p-menu .table_scroll {
		overflow-x: scroll;
	}
}

.p-menu .table_default {
	min-width: 0;
	table-layout: fixed;
}

@media screen and (max-width: 768px) {
	.p-menu .table_default {
		min-width: 600px;
	}
}

.p-menu .table_default th,
.p-menu .table_default td {
	white-space: normal;
	font-weight: 400;
	font-size: 14px;
	line-height: 1.7;
	letter-spacing: 1.4px;
}

@media screen and (max-width: 768px) {
	.p-menu .table_default th,
	.p-menu .table_default td {
		font-size: 12px;
		line-height: 1.5;
	}
}

.p-menu .table_default thead th {
	border-bottom: none;
}

.p-menu.page_article__container .table_annotation {
	margin-bottom: 16px;
}

.p-menu .table_annotation_text {
	margin-bottom: 0;
}

.p-menu .table_annotation_list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.p-menu .table_annotation_list li {
	position: relative;
	padding-left: 1em;
	font-size: 10px;
	line-height: 14px;
	letter-spacing: 1px;
}

.p-menu .table_annotation_list li::before {
	content: "・";
	position: absolute;
	left: 0;
}

/* =====================
   見出し付きコンテンツブロック縦並び
   ===================== */
.m-section-list {
	display: flex;
	flex-direction: column;
	margin-top: 60px;
}

@media screen and (max-width: 768px) {
	.m-section-list {
		margin-top: 48px;
	}
}

.m-section-list__item {
	display: flex;
	flex-direction: column;
}

.m-section-list__item:first-child .section_title_subtitle {
	margin-top: 0;
}

@media screen and (max-width: 768px) {
	.m-section-list__item .section_title_subtitle {
		margin-top: 48px;
	}
}

.p-menu.page_article__container .m-section-list__item .menu_point_text {
	margin-bottom: 0;
}

.m-section-list__item > .menu_point_text {
	order: 0;
}

.section_title_subitem {
	margin-top: 15px;
	font-size: 14px;
	font-weight: 500;
	line-height: 1.7;
	letter-spacing: 1.4px;
}

@media screen and (max-width: 768px) {
	.section_title_subitem {
		margin-top: 10px;
		font-size: 16px;
		letter-spacing: 2px;
		line-height: 1.75;
	}
}

/* =====================
   ポイントリスト（画像あり）
   ===================== */
.p-menu .menu_point_contents:has(.menu_point_figure) {
	display: grid;
	grid-template-columns: 1fr 284px;
	column-gap: 39px;
	width: 100%;
}

@media screen and (max-width: 768px) {
	.p-menu .menu_point_contents:has(.menu_point_figure) {
		display: flex;
		flex-direction: column;
	}
}

.p-menu .menu_point_figure {
	grid-column: 2;
	grid-row: 1 / 4;
	padding-top: 64px;
	margin: 0;
	order: 3;
}

@media screen and (max-width: 768px) {
	.p-menu .menu_point_figure {
		margin-top: 10px;
		padding-top: 0;
		margin-bottom: 24px;
	}
}

.p-menu .menu_point_item .table_scroll {
	order: 3;
}

.p-menu .menu_point_figure img {
	width: 100%;
	height: auto;
	display: block;
	margin-bottom: 0;
}

@media screen and (max-width: 768px) {
	.p-menu .menu_point_contents:has(.menu_point_figure) .menu_point_text {
		padding-top: 0;
	}
}

/* =====================
   ポイント内サブセクション
   ===================== */
.menu_point_sub {
	order: 5;
	margin-top: 24px;
}

.menu_point_sub__heading {
	margin-bottom: 8px;
	font-size: 15px;
	font-weight: 500;
	line-height: 24px;
	letter-spacing: 1.5px;
}

.menu_point_sub .table_scroll {
	margin-top: 15px;
	margin-bottom: 0;
}

.p-menu .menu_point_contents:has(.menu_point_figure) .menu_point_sub {
	grid-column: 1 / -1;
}

/* =====================
   YouTube埋め込み
   ===================== */
.casephoto_Box {
	max-width: 640px;
	width: 90%;
	margin: 0 auto;
}

@media screen and (max-width: 768px) {
	.casephoto_Box {
		max-width: 100%;
		width: 100%;
	}
}

.casephoto_Box p {
	font-size: 1.2em;
}

@media screen and (max-width: 768px) {
	.casephoto_Box p {
		font-size: 14px;
	}
}

@media screen and (max-width: 768px) {
	.casephoto_Box .menu_point_text.small {
		font-size: 10px;
		line-height: 1.4;
	}
}

.page_article__container .casephoto_Box .section_title_subtitle {
	margin-top: 38px;
	margin-bottom: 12px;
}

@media screen and (max-width: 768px) {
	.page_article__container .casephoto_Box .section_title_subtitle {
		margin-top: 48px;
		margin-bottom: 16px;
	}
}

.p-menu .youtube {
	margin-top: 40px;
	margin-bottom: 40px;
	aspect-ratio: 16 / 9;
}

@media screen and (max-width: 768px) {
	.p-menu .youtube {
		margin-top: 24px;
		margin-bottom: 10px;
	}
}

.p-menu .youtube iframe {
	width: 100%;
	height: 100%;
}

/* =====================
   グレーボックス リスト
   ===================== */
.p-menu.page_article__container .menu_grey_box {
	padding: 32px 64px;
	margin-bottom: 0;
}

@media screen and (max-width: 768px) {
	.p-menu.page_article__container .menu_grey_box {
		margin-top: 9px;
		padding: 32px 20px;
	}
}

.p-menu.page_article__container .menu_grey_box + .menu_point_text {
	margin-top: 16px;
}

.p-menu.page_article__container .menu_grey_box .feature-list {
	list-style: disc;
	padding-left: 21px;
}

.p-menu.page_article__container .menu_grey_box p {
	font-size: 14px;
	line-height: 24px;
	letter-spacing: 1.4px;
}

.p-menu.page_article__container .menu_grey_box p:not(:first-child) {
	margin-top: 24px;
}

.p-menu.page_article__container .menu_grey_box ul {
	font-size: 14px;
	line-height: 24px;
	letter-spacing: 1.4px;
}

.p-menu.page_article__container .menu_grey_box li {
	font-size: 14px;
	line-height: 24px;
	letter-spacing: 1.4px;
}

/* =====================
   FAQ
   ===================== */
.p-menu .menu_faq_wrapper {
	margin-top: 96px;
}

@media screen and (max-width: 768px) {
	.p-menu .menu_faq_wrapper {
		margin-top: 64px;
	}
}

@media screen and (max-width: 768px) {
	.p-menu .faq_question {
		margin-bottom: 48px;
	}
}

/* =====================
   LINEボタン
   ===================== */
.c-line-cta {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
	text-align: center;
}

@media screen and (max-width: 768px) {
	.c-line-cta {
		margin-top: 56px;
		gap: 5px;
	}
}

.c-line-cta__catch {
	font-size: 24px;
	font-weight: 700;
	color: #56bc5a;
	letter-spacing: 1.2px;
	line-height: 1.8;
}

@media screen and (max-width: 768px) {
	.c-line-cta__catch {
		font-size: 16px;
		letter-spacing: 1.6px;
	}
}

.c-line-cta__btn {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	width: 550px;
	padding: 20px;
	background: #56bc5a;
	border-radius: 90px;
	box-shadow: 0 8px 0 #26942a;
	color: #fff;
	text-decoration: none;
	font-weight: 700;
	line-height: 1.6;
	transition: opacity 0.2s ease;
}

@media screen and (max-width: 768px) {
	.c-line-cta__btn {
		width: 100%;
	}
}

.c-line-cta__btn:hover,
.c-line-cta__btn:visited {
	color: #fff;
	text-decoration: none;
	opacity: 0.8;
}

.c-line-cta__btn-main {
	font-size: 36px;
	display: block;
}

@media screen and (max-width: 768px) {
	.c-line-cta__btn-main {
		font-size: 24px;
	}
}

.c-line-cta__btn-sub {
	font-size: 20px;
	letter-spacing: 1px;
	display: block;
	line-height: 1;
}

@media screen and (max-width: 768px) {
	.c-line-cta__btn-sub {
		font-size: 16px;
		letter-spacing: 0.8px;
	}
}

.c-line-cta__note {
	margin-top: 10px;
	font-size: 16px;
	letter-spacing: 1.4px;
	line-height: 24px;
}

@media screen and (max-width: 768px) {
	.c-line-cta__note {
		font-size: 14px;
		text-align: left;
	}
}

/* =====================
   関連記事
   ===================== */
.p-menu .related-guide__title {
	font-size: 32px;
	font-weight: 400;
}

@media screen and (max-width: 768px) {
	.p-menu .related-guide__title {
		font-size: 24px;
	}
}

.p-menu .related-guide__list {
	display: flex;
	justify-content: left;
	gap: 16px;
	margin-top: 20px;
}

@media screen and (max-width: 768px) {
	.p-menu .related-guide__list {
		flex-wrap: wrap;
	}
}

.p-menu .related-guide__list .related-guide__item {
	width: calc((100% - 48px) / 3);
}

@media screen and (max-width: 768px) {
	.p-menu .related-guide__list .related-guide__item {
		flex: 0 0 calc((100% - 16px) / 2);
	}
}
