@import url('https://fonts.googleapis.com/css2?family=Zen+Kaku+Gothic+New:wght@300;400;500;700;900&family=Noto+Serif+JP:wght@200;300;400;500;600;700;900&display=swap');


/* 共通 */

*,
body,
html {
/*	font-family: 'design_plus' !important;*/
    font-family: "Zen Kaku Gothic New", sans-serif !important;
    font-weight: normal;
}

*,
*::before,
*::after {
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    -o-box-sizing: border-box;
    -ms-box-sizing: border-box;
    box-sizing: border-box;
}

ul,
ol,
li {
    list-style: none;
}

:root {
	--navy-color: #112342;
	--purple-color: #9E79B0;
	--lilac-color: #E1E1F7;
}

/* 
#container {
	overflow-x: hidden;
}
*/

/* ヘッダ周り */

.sub-menu li:not(:last-child) {
	border-bottom: 1px solid #cccccc !important;
}

#header_logo img {
	width: 176px;
	height: 44px;
}

#header_button .button a,
.pc #global_menu > ul > li > a {
	font-size: 16px;
	font-weight: 500;
}

#index_side_button a {
	background: #06c755;
	position: relative;
}

#index_side_button a::before {
	content: '';
	margin: 0 auto;
	width: 27px;
	height: 25.5px;
	background: url(../images/icon_line_w.svg) no-repeat 50% 50%;
	background-size: cover;
	position: absolute;
	top: 6%;
	right: 0;
	left: 0;
}

#index_side_button a span {
	font-weight: 500;
}

#header_slider.header_para_slider .item {
	height: 100% !important;
}

#header_slider.header_para_slider .item .image {
	width: 100% !important;
	left: 0;
}

/* トップページ */

.caption_inner :is(h2, p) {
	position: relative;
	top: -2.5em;
}

.caption_inner span {
	font-weight: 500 !important;
	filter: drop-shadow(0 3px 3px rgba(0, 0, 0, .2));
}

.header_para_slider {
	position: relative;
}

.caption_inner h2::before {
	content: '';
	margin: 0 auto;
	width: min(500px, 40vw);
	aspect-ratio: 432/84;
	background: url(../images/toplogo_pure.svg) no-repeat 50% 50%;
	background-size: cover;
	position: absolute;
	top: -3.25em;
	right: 0;
	left: 0;
	z-index: 10;
}

#header_slider.header_para_slider .item {
	width: 1195px;
	height: 725px;
}

#header_button .button1 a,
#header_button .button2 a,
#footer_button .button1 a,
#footer_button .button2 a {
	position: relative;
}

#header_button .button1 a::before {
	content: '';
	margin: auto 0;
	width: 17px;
	height: 15px;
	background: url(../images/icon_web.svg) no-repeat 50% 50%;
	background-size: cover;
	position: absolute;
	top: 0;
	bottom: 0;
	left: 22%;
}

#header_button .button2 a::before {
	content: '';
	margin: auto 0;
	width: 20px;
	height: 15px;
	background: url(../images/icon_mail_bk.svg) no-repeat 50% 50%;
	background-size: cover;
	position: absolute;
	top: 0;
	bottom: 0;
	left: 14%;
}

ul.ul_top-parts {
	display: flex;
	flex-wrap: wrap;
	width: 100%;
}

ul.ul_top-parts li {
	width: calc(100%/3);
	height: 250px;
}

ul.ul_top-parts li h3 {
	font-size: 34px;
	font-weight: 400;
}

ul.ul_top-parts li a {
	display: flex;
}

.index_box_content:is(.row1,.row2,.row3,.row4,.row5) .title,
.index_box_content:is(.row1,.row2,.row3,.row4,.row5) .box .sub_title {
	position: relative;
}

.index_box_content:is(.row1,.row2,.row3,.row4,.row5) .box .sub_title {
	display: flex;
	margin-top: 0;
	line-height: 2;
	font-size: 18px !important;
}

.author_profile a.avatar img, .animate_image img, .animate_background .image {
	background-position: 100% 50% !important;
}

.top_case h2,
.top_flow h2,
.top_doctor h2 {
	margin: 0 auto;
	color: #000000;
	font-size: 36px !important;
	font-weight: 500 !important;
	text-align: center;
	position: relative;
}

h2.catch.rich_font.has_mobile_word {
	margin-bottom: .5em;
	position: relative;
}

h2.catch.rich_font.has_mobile_word span {
	color: #000000;
	font-weight: 500;
}

h2.catch.rich_font.has_mobile_word::after,
.top_case h2::after,
.top_flow h2::after,
.top_doctor h2::after,
#index_news .index_cb_catch h2::after {
	content: '';
	margin: 0 auto;
	width: 56px;
	height: 1px;
	background: var(--purple-color);
	position: absolute;
	bottom: -.56em;
	right: 0;
	left: 0;
}

#index_news .index_cb_catch h2::after {
	right: auto;
	left: 0;
}

#index_campaign_slider .desc {
	color: #000000;
	font-family: "Zen Kaku Gothic New", sans-serif !important;
	font-size: 16px !important;
	line-height: 1.75;
}

#index_campaign1 {
	margin-bottom: 280px;
}

#index_campaign1::after {
	content: '';
	width: 100%;
	height: 280px;
	background: url(../images/top_img04.webp) no-repeat 50% 50%;
	background-size: cover;
	position: absolute;
	bottom: -280px;
	left: 0;
}

#index_campaign1 .index_cb_button a,
.top_case .index_cb_button a {
	background: #ffffff;
	border: 1px solid #000000;
	font-size: 18px;
}

#index_free_space {
	padding: 0 !important;
	width: 100%;
}

.top_case {
	padding: 60px 0;
}

.top_case ul.ul_case {
	display: flex;
	flex-wrap: wrap;
	margin: 70px auto 0;
	width: min(1181px, 90%);
	row-gap: 3em;
	justify-content: space-between;
}

.top_case ul.ul_case li {
	width: 22.4%;
	font-family: "Zen Kaku Gothic New", sans-serif !important;
	font-size: 16px;
	line-height: 2.25rem;
	position: relative;
	z-index: 0;
}

.top_case ul.ul_case li img {
	display: block;
	margin: 0 0 .5em;
	width: 100%;
	z-index: 0;
}

.top_case ul.ul_case li div,
.page_case .tab_content ul li div {
	width: 50px;
	height: 35px;
	background: rgba(255, 255, 255, .8) url(../images/icon_loupe.svg) no-repeat 50% 50%;
	background-size: 50%;
	position: absolute;
	bottom: 3.1em;
	right: 0;
	z-index: 2;
	pointer-events: none;
}

.page_case .tab_content ul li div {
	bottom: 2.9em;
}

.top_case .index_cb_button a {
	margin: 6rem auto 0;
	background: #ffffff;
	color: #000000;
}

.pum-content.popmake-content h2 {
	margin: .5em 0 .5em;
	font-size: 18px;
	font-weight: 400;
}

.pum-content.popmake-content p {
	margin: 0;
	font-family: "Zen Kaku Gothic New", sans-serif !important;
	font-size: 14px;
	font-weight: 400;
	line-height: 1.75;
}

.popmake-content h2 a {
    padding-bottom: .1em;
    border-bottom: 1px solid;
}

.top_contact {
	margin: 0;
	padding: 70px 0 60px;
	width: 100%;
	background: url(../images/bg_top-camp.webp) no-repeat 50% 50%;
	background-size: cover;
	position: relative;
}

.top_contact p {
	margin: 0 auto .5em;
	width: 100%;
	font-family: unset !Important;
	font-size: 24px;
	text-align: center;
}

.top_contact ul.ul_contact {
	display: flex;
	flex-wrap: wrap;
	margin: 0 auto;
	padding: 40px 6% 50px;
	width: min(1181px, 90%);
	background: #ffffff;
	border-top: 1px solid var(--purple-color);
	border-bottom: 1px solid var(--purple-color);
	justify-content: space-between;
	position: relative;
}

.top_contact ul.ul_contact::before,
.top_contact ul.ul_contact::after {
	content: '';
	width: 120px;
	height: 120px;
	background: url(../images/deco_contact02.svg) no-repeat 50% 50%;
	background-size: cover;
	position: absolute;
	top: 0;
	left: 0;
}

.top_contact ul.ul_contact::after {
	transform: rotate(180deg);
	position: absolute;
	top: auto;
	left: auto;
	bottom: 0;
	right: 0;
}

.top_contact ul.ul_contact li {
	display: flex;
	width: 48%;
}

.top_contact ul.ul_contact li a {
	display: flex;
	width: 100%;
	height: 90px;
	background: var(--navy-color);
	border: 1px solid var(--navy-color);
	border-radius: .2em;
	color: #ffffff;
	font-size: 24px;
	font-weight: 500;
	box-shadow: 0 3px 6px 0 rgba(0, 0, 0, .2);
	justify-content: center;
	align-items: center;
	position: relative;
}

.top_contact ul.ul_contact li a::before,
.top_contact ul.ul_contact li a::after {
	content: '';
	margin: auto 0;
	width: 33px;
	height: 30px;
	background: url(../images/icon_web.svg) no-repeat 50% 50%;
	background-size: cover;
	position: absolute;
	top: 0;
	bottom: 0;
	right: 82%;
}

.top_contact ul.ul_contact li a::after {
	width: 20px;
	height: 18px;
	background: url(../images/icon_blank.svg) no-repeat 50% 50%;
	background-size: cover;
	position: absolute;
	right: auto;
	left: 82%;
}

.top_contact ul.ul_contact li:last-child a {
	color: #000000;
	background: var(--lilac-color);
	border: 1px solid var(--lilac-color);
}

.top_contact ul.ul_contact li:last-child a::before {
	width: 37px;
	height: 27px;
	background: url(../images/icon_mail_bk.svg) no-repeat 50% 50%;
	background-size: cover;
	position: absolute;
	right: 86%
}

.top_contact ul.ul_contact li:last-child a::after {
	width: 12px;
	height: 12px;
	background: none;
	border-top: 3px solid #000000;
	border-right: 3px solid #000000;
	transform: rotate(45deg);
	position: absolute;
	left: 88%;
}

.top_image01,
.top_image02 {
	margin: 0;
	width: 100vw;
	height: 280px;
	background: url(../images/top_img05.webp) no-repeat 50% 65%;
	background-size: contain !important;
}

.top_image02 {
	background: url(../images/top_img06.webp) no-repeat 50% 50%;
	background-size: cover;
}

.top_flow {
	margin: 0;
	padding: 70px 0 60px;
	width: 100%;
	background: #F6F6F8;
}

.top_flow ul {
	display: flex;
	margin: 20px auto 0;
	padding: 0;
	width: min(1181px, 90%);
	background: #ffffff;
	border-radius: .625rem;
	column-gap: 30px;
}

.top_flow ul:first-of-type {
	margin-top: 4rem;
}

.top_flow ul li:first-child {
	padding: 20px 0 20px 20px;
	width: 32%;
}

.top_flow ul li img {
	display: block;
	margin: 0;
	padding: 0;
	width: 100%;
}

.top_flow ul li:last-child {
	padding: 1.5rem 30px 0 0 ;
	width: 68%;
}

.top_flow ul li h3 {
	margin: 0;
	color: var(--purple-color);
	font-size: 12px;
	line-height: 1;
}

.top_flow ul li h4 {
	margin: 0 0 .5em;
	font-size: 28px;
	font-weight: 500;
	line-height: 1;
}

.top_flow ul li p {
	margin: 0;
    font-family: "Zen Kaku Gothic New", sans-serif !important;
	font-size: 16px;
 	line-height: 2;
}

.top_flow ul li p.note {
	font-size: 14px;
}

.top_flow ul li p.p_narrow {
	line-height: 1.5;
}

.top_doctor {
	margin: 0;
	padding: 70px 0 60px;
	width: 100%;
	background: #FAFAFA;
}

.top_doctor ul {
	display: flex;
	margin: 4rem auto 0;
	width: min(1181px, 90%);
	justify-content: center;
	column-gap: 2rem;
}

.top_doctor ul li {
	width: 32.6%;
	padding: 0 1.4rem 146px;
	background: #ffffff;
	position: relative;
}

.top_doctor ul li img {
	display: flex;
	flex-wrap: wrap;
	margin: 36px auto 0;
	padding: 0;
	width: 252px;
}

.top_doctor ul li h3 {
	margin: 0;
	padding: 0;
    font-family: "Zen Kaku Gothic New", sans-serif !important;
	font-size: 16px;
	font-weight: 400;
}

.top_doctor ul li h4 {
	margin: 0 0 .75em;
	padding: 0;
	font-size: 22px;
	font-weight: 500;
}

.top_doctor ul li b {
	display: inline-flex;
	padding: 0 1em;
	background: var(--purple-color);
	color: #ffffff;
	font-size: 14px;
	font-weight: 400;
	line-height: 1.5;
}

.top_doctor ul li dl {
	display: flex;
	flex-wrap: wrap;
	margin: .75em 0 0;
	font-size: 14px;
	row-gap: .5em;
}

.top_doctor ul li dl dt {
	margin: 0;
	padding: 0;
	width: 22%;
	font-weight: 400;
	line-height: 1.75;
}

.top_doctor ul li dl dd {
	margin: 0;
	padding: 0;
	width: 78%;
	line-height: 1.75;
}

.top_doctor ul li a {
	display: flex;
	margin: 0 auto;
	width: 100px;
	height: 34px;
	border: 1px solid #000000;
	color: #000000;
	font-size: 13px;
	justify-content: center;
	align-items: center;
	position: absolute;
	bottom: 50px;
	right: 0;
	left: 0;
}

#index_news {
	display: flex;
	margin: 0 auto;
	padding: 60px 0;
	width: min(1181px, 90%);
	min-height: 340px;
	position: relative;
}

#index_news .index_cb_catch {
	width: 38.2%;
	padding: 0;
	text-align: left;
}

#index_news .index_cb_catch h2 {
	position: relative;
	color: #000000;
}

#index_news .index_cb_catch h2 span {
	font-weight: 500 !important;
}

#index_news .index_cb_button {
	width: 236px !important;
	height: 58px !important;
	border: 1px solid #000000;
	position: absolute;
	top: 210px;
	left: 0;
}

#index_news .index_cb_button a {
	display: flex;
	width: 100% !important;
	min-width: 100% !important;
	height: 100% !important;
	min-height: 100% !important;
	padding: 0 !important;
	font-size: 18px;
	justify-content: center;
	align-items: center;
}

#index_news .post_list {
	margin: 0;
	padding: 0;
	width: 61.8%;
}

#index_news .post_list .item {
	margin: 0;
	width: 100% !important;
	border: none;
}

#index_news .post_list .item a {
	display: flex;
	padding: 1em 0 0;
	width: 100% !important;
	height: auto;
	max-height: 80px;
	border-bottom: 1px solid var(--lilac-color);
	background: none;
}

#index_news .post_list .item:first-child a {
	padding-top: .5em;
}

#index_news .post_list .item a :is(p, h4) {
	min-height: 4em;
	font-size: 14px !important;
}

#index_news .post_list .item a p {
	padding: 0;
	width: 18%;
	line-height: 2;
}

#index_news .post_list .item a h4 {
	width: 82%;
}

#index_news .post_list .item a h4 span {
	padding: 0;
	width: 100%;
    font-family: "Zen Kaku Gothic New", sans-serif !important;
	line-height: 2;
}

/*
.frost_bg::before {
    background: rgba(255, 255, 255, .8) !important;
}
*/

#side_service_category_list .headline {
    background: #d19bc4 !important;
}
.service_post_list .title {
    color: #d19bc4 !important;
}
#archive_clinic .title {
    color: #d19bc4 !important;
}
#archive_column .category a:hover {
    background: #d19bc4 !important;
}
#column_post_image .category a:hover {
    background: #d19bc4 !important;
}
#column_post_title_area .title {
    color: #d19bc4 !important;
}
#related_post .headline {
    color: #d19bc4 !important;
}
.title {
    border-color: #d19bc4 !important;
}
.cf_catch .span {
    color: #d19bc4 !important;
}
.cf_content_list .headline{
    border-color: #d19bc4 !important;
}
.single_service_related_post h3 {
    color: #d19bc4 !important;
}
#side_clinic_list .headline {
    background: #d19bc4 !important;
}
#clinic_header_image .title {
    color: #d19bc4 !important;
}
#archive_column .category a {
    background: #d19bc4 !important;
}
.page_navi span.current {
    background-color: #d19bc4 !important;
}
#side_staff_list .headline {
    background: #d19bc4 !important;
}
#staff_header_image .title {
    color: #d19bc4 !important;
}

.single_service_related_post .animate_background img{
    background-size: contain !important;
}

スタイル属性 {
color: #000000;
}


/* ホバー時の背景重ね掛け（乗算） */
.index_box_content .box.active .image {
  position: relative;
  overflow: visible; /* ← TCDテーマで不足が起きる原因対策 */
}

.index_box_content .box.active .image::before {
  content: "";
  position: absolute;
  top: -2px;
  left: -80px;
  right: -2px;
  bottom: -2px;
  width: calc(100% + 60px); /* ← 左に広げたぶん補正 */
  background-color: #e7cef2;
  mix-blend-mode: multiply;
  opacity: 0;
  transition: opacity 0.25s ease;
  pointer-events: none;
}

.index_box_content .box.active:hover .image::before {
  opacity: 1;
}


@media screen and (min-width: 951px) {
.index_box_content {
  width: 95%;
  }
}

/* スマホ版だけ */
@media screen and (max-width: 750px) {

  .index_box_content.type2 .box {
    position: relative;
    overflow: hidden;
  }

  .index_box_content.type2 .box::after {
    content: "";
    position: absolute;
    inset: 0;
    background: #e7cef2; /* ← あなたが使いたい “薄い紫” */
    opacity: 0;
    mix-blend-mode: multiply; /* 画像を消さず、色だけ乗算される */
    transition: opacity 0.2s ease;
    z-index: 2;
  }

  /* hover（スマホならタップ時） */
  .index_box_content.type2 .box:hover::after {
    opacity: 1;
  }

  /* イラスト画像は上に置く */
  #index_box_content .image {
    position: relative;
    z-index: 3; /* ← 画像が必ず見える */
    width: 294px !important;
    height: 150px !important;
    margin-left: auto;
    flex-shrink: 0;
  }
/* ▼ 旧ホバー効果を完全に無効化する ▼ */
.index_box_content .box.active .image::before {
  content: none !important;
  display: none !important;
  opacity: 0 !important;
}
}


@media screen and (max-width: 1023px){
.index_box_content:is(.row1,.row2,.row3,.row4,.row5) .box .sub_title {
display: flex;
margin-top: 0;
line-height: 2;
}
.index_box_content:is(.row1,.row2,.row3,.row4,.row5) .title, .index_box_content:is(.row1,.row2,.row3,.row4,.row5) .box .sub_title {
position: relative;
}
}

.index_box_content {
    margin: 10px auto !important;
}

.index_box_content .box {
    height: 150px !important;
    margin: 5px auto !important;
}

#index_box_content .image {
  width: 294px !important;
  height: 150px !important;
  flex-shrink: 0;
  margin-left: auto;
}

.index_box_content.row1 .title,.index_box_content.row2 .title,.index_box_content.row3 .title,.index_box_content.row4 .title,.index_box_content.row5 .title {
  white-space: normal !important;
  overflow-wrap: break-word !important;
  word-break: break-word !important;
  font-size: 24px !important;
  line-height:1.6;
  padding-right:12vw !important;
}

.catch.frost_bg p {
    font-family: "Zen Kaku Gothic New", sans-serif !important;
	font-size: 18px !important;
}

#footer_menu ul {
	padding-top: 60px;
	position: relative;
}

#footer_menu ul::before {
	content: '';
	width: 176px;
	height: 44px;
	background: url(../images/logo_pure_w.png) no-repeat 50% 50%;
	background-size: cover;
	position: absolute;
	top: 0;
	left: 0;
	pointer-events: none;
}

#footer_menu ul li a {
	font-weight: 500;
}

#footer_social_link :is(.insta, .contact) a {
	width: auto !important;
	text-align: left;
}

#footer_social_link :is(.insta, .contact) a span {
	display: inline-block !Important;
	margin-right: .5em;
	padding-left: 1.5em;
	color: #ffffff;
	font-size: 12px;
	font-weight: 500;
	position: relative !Important;
}

#return_top a {
	background: #222222 !important;
}

.pc_only {
	display: block !important;
}

.pc_only_in {
	display: inline !important;
}

.sp_only {
	display: none !important;
}

.tb_only {
	display: none !important;
}

.grecaptcha-badge { visibility: hidden; }

@media (any-hover: hover) {
/*
	a:hover {
		color: #d19bc4 !important;
	}
*/

	#index_side_button a:hover {
		filter: brightness(110%);
	}

	#index_campaign1 .index_cb_button a:hover,
	.top_case .index_cb_button a:hover {
		background: #000000;
		color: #ffffff !important;
	}

	.top_contact ul.ul_contact li a:hover {
		background: #ffffff;
		color: #000000;
	}

	.top_contact ul.ul_contact li a:hover::before,
	.top_contact ul.ul_contact li a:hover::after {
		background: url(../images/icon_web_bk.svg) no-repeat 50% 50%;
		background-size: cover;
	}

	.top_contact ul.ul_contact li a:hover::after {
		background: url(../images/icon_blank_bk.svg) no-repeat 50% 50%;
		background-size: cover;
	}

	.top_contact ul.ul_contact li:last-child a:hover {
		border: 1px solid var(--purple-color);
		color: var(--purple-color);
	}

	.top_contact ul.ul_contact li:last-child a:hover::before {
		background: url(../images/icon_mail_pu.svg) no-repeat 50% 50%;
		background-size: cover;
	}

	.top_contact ul.ul_contact li:last-child a:hover::after {
		background: none;
		border-top: 3px solid var(--purple-color);
		border-right: 3px solid var(--purple-color);
	}

	.top_doctor ul li a:hover {
		background: #000000;
		color: #ffffff;
	}
}

@media screen and (min-width: 768px) and (max-width: 1250px) {
	.caption_inner :is(h2, p) {
		top: -.75em;
	}
	#header_slider_wrap {
		height: 480px !important;
	}
	#header_slider_wrap .caption .title {
		top: -40px !important;
	}
	#header_slider.header_para_slider .item .image {
		height: 480px !important;
	}
	.index_box_content .title {
		width: calc(300px - 2rem) !important;
	}	
}

@media screen and (min-width: 1035px) and (max-width: 1250px) {
	.index_box_content.row1 .title, .index_box_content.row2 .title, .index_box_content.row3 .title, .index_box_content.row4 .title, .index_box_content.row5 .title {
		padding-right: 80px !important;
	}	
}

@media screen and (min-width: 768px) and (max-width: 1350px) {
#header_slider.header_para_slider .item {
	width: 100% !important;
}

#header_slider.header_para_slider .item .image {
	width: 100% !important;
}
	.caption_inner {
		position: absolute;
		margin: 0 auto;
		bottom: 1rem;
		right: 0;
		left: 0;
	}

	.box .animate_background .image_wrap .image {
		background-position: 50% 50% !important;
	}

	.row1 .box1 .animate_background .image_wrap .image {
		background-position: 80% 50% !important;
	}

	.top_contact ul.ul_contact {
		padding: 40px 6% 50px;
	}

	.top_contact ul.ul_contact li a {
		font-size: 22px;
	}

	.top_flow ul li:last-child {
		padding: .75rem 2em .75rem 0;
	}

	.top_doctor ul li {
		width: 50%;
	}

	#index_news {
		padding: 40px 0 0 !important;
	}

	#index_news .index_cb_catch {
		width: 100%;
	}

	#index_news .post_list {
		width: 180% !important;
	}

	.page_case .tab_content ul li div {
		bottom: 2.6em;
	}

	#index_campaign1  .index_cb_catch {
		padding: 60px 0 35px !important;
	}

	#index_content .index_cb_catch {
		padding: 0 0 35px;
	}
}

@media screen and (max-width: 1023px) {
	.index_box_content:is(.row1,.row2,.row3,.row4,.row5) .box .sub_title {
		margin-top: 0;
	}

	.index_box_content:is(.row1,.row2,.row3,.row4,.row5) .box .title::after {
		font-size: 14px !important;
		position: absolute;
		top: 5.2rem !important;
		left: 0;
	}

	.top_case h2,
	.top_flow h2,
	.top_doctor h2 {
		font-size: 24px !important;
	}

	.top_flow ul li p {
		font-size: 14px;
		line-height: 1.85;
	}

	#index_news .post_list .item a p {
		padding: 0;
		width: 26%;
		line-height: 2;
	}

	#index_news .post_list .item a h4 {
		width: 74%;
	}

	#footer_button .button {
		width: 25% !important;
	}

	#footer_button .button a {
		padding: 0 !important;
		font-size: .875rem !important;
		font-weight: 500;
		line-height: 70px !important;
	}

	#footer_button .button3 {
		background: #06c755;
	}

	#footer_button .button3 a {
		color: #ffffff;
		position: relative;
	}

	#footer_button .button:last-child {
		border-left: 1px solid #049540;
	}

	#footer_button a::before {
		content: '';
		margin: 0 auto;
		width: 1.0625rem;
		height: .9375rem;
		background: url(../images/icon_web.svg) no-repeat 50% 50%;
		background-size: cover;
		position: absolute;
		top: 15%;
		right: 0;
		left: 0;
	}

	#footer_button .button2 a::before {
		width: 1.25rem;
		height: .9375rem;
		background: url(../images/icon_mail_bk.svg) no-repeat 50% 50%;
		background-size: cover;
		top:13%;
	}

	#footer_button .button3 a::before {
		width: calc(1.2rem*18/17);
		height: 1.2rem;
		background: url(../images/icon_line_w.svg) no-repeat 50% 50%;
		background-size: cover;
		top:10%;
	}
}

@media screen and (max-width: 767px) {
	#menu_button::before {
		content: '' !important;
		width: 28px !important;
		height: 18px !important;
		background: linear-gradient(to bottom, #000000 1px, transparent 1px, transparent 8px, #000000 8px, #000000 9px, transparent 9px, transparent 16px, #000000 16px, #000000 17px, transparent 17px);
	}

	/* ヘッダ */

	.sub-menu li:not(:last-child) {
		border-bottom: none !important;
	}

	#header_slider_wrap,
	#header_slider.header_para_slider .item {
		height: 480px !important;
	}

	.caption_inner .has_mobile_word::before {
		margin-top:-10px;
		width:65vw !important;
		margin-left:13vw;
	}

	.caption_inner h2 span {
		display:none;
	}

	.overlay.gradation {
		height: 60svh !important;
	}

	#header_slider,
	.slider-track,
	.slider-track-inner .item {
		height: 100svh !important;
	}

	.caption_inner :is(h2, p) {
		top: -2.75em;
	}

	#header_slider_wrap {
		text-align:center;
	}

	.index_box_content:is(.row1,.row2,.row3,.row4,.row5) .box .image {
		background-position: 70% 50% !important;
	}

	.index_box_content:is(.row1,.row2,.row3,.row4,.row5) .box .sub_title::before {
		position: absolute;
		top: 3.8rem;
		left: 0;
	}

	#index_campaign1 {
		margin-bottom: 46vw;
	}

	#index_campaign1::after {
		height: 46vw;
		background: url(../images/top_img04.webp) no-repeat 50% 50%;
		background-size: 150%;
		position: absolute;
		bottom: -46vw;
		left: 0;
	}

	#header_slider_wrap.animate .caption.para_slider_caption .title {
	    -webkit-animation: opacityAnimation 1s ease-out forwards 1s;
	    animation: opacityAnimation 1s ease-out forwards 1s;
	}

	#header_slider_wrap.animate .caption.para_slider_caption .sub_title {
	    -webkit-animation: opacityAnimation 1.5s ease-out forwards 1.5s;
	    animation: opacityAnimation 1.5s ease-out forwards 1.5s;
	}

	#index_campaign_slider_area .slick-track {
		min-height: 70.51vw;
	}

	h2..catch.rich_font.has_mobile_word {
		margin: 1.5em auto 1.5em;
	}

	h2.catch.rich_font.has_mobile_word::after,
	.top_case h2::after,
	.top_flow h2::after,
	.top_doctor h2::after,
	#index_news .index_cb_catch h2::after {
		width: 14.36vw;
		position: absolute;
		bottom: -.9em;
	}

	#index_campaign1 .index_cb_button a,
	.top_case .index_cb_button a {
		font-size: 14px;
	}

	.top_case {
		padding: 12.82vw 0;
		overflow-x: hidden;
	}

	.top_case ul.ul_case {
		display: flex;
		flex-wrap: nowrap;
		margin: 4.5rem auto 0;
		width: 95% !important;
		justify-content: normal;
		column-gap: 5% !important;
	}

	.top_case ul.ul_case li {
		margin: 0 2.5vw;
		font-size: .875rem;
	}

	.top_case ul.ul_case li img {
		display: block;
		margin: 0 0 .5em;
		width: 100% !important;
		z-index: 0;
	}

	.top_case ul.ul_case li div {
		width: 10.77vw;
		height: 7.69vw;
	}

	.page_case .tab_content ul li div {
		bottom: 2.6em;
	}

	.top_contact {
		padding: 10.25vw 0;
	}

	.top_contact p {
		margin: 0 auto .5em;
		font-size: 16px;
		line-height: 1.75 !important;
	}

	.top_contact ul.ul_contact {
		padding: 7.69vw 6.41vw 10.25vw;
		justify-content: center;
		position: relative;
		row-gap: .75rem;
	}

	.top_contact ul.ul_contact::before,
	.top_contact ul.ul_contact::after {
		width: 16.92vw;
		height: 16.92vw;
	}

	.top_contact ul.ul_contact li {
		width: 100%;
	}

	.top_contact ul.ul_contact li a {
		width: 100%;
		height: 17.95vw;
		font-size: 20px;
	}

	.top_contact ul.ul_contact li a::before,
	.top_contact ul.ul_contact li a::after {
		content: '';
		margin: auto 0;
		width: 4.87vw;
		height: 4.36vw;
		background: url(../images/icon_web.svg) no-repeat 50% 50%;
		background-size: cover;
		position: absolute;
		top: 0;
		bottom: 0;
		left: 12%;
	}

	.top_contact ul.ul_contact li a::after {
		width: 3.85vw;
		height: 3.33vw;
		background: url(../images/icon_blank.svg) no-repeat 50% 50%;
		background-size: cover;
		position: absolute;
		left: auto;
		right: 12%;
	}

	.top_contact ul.ul_contact li:last-child a::before {
		width: 6.15vw;
		height: 4.62vw;
		background: url(../images/icon_mail.svg) no-repeat 50% 50%;
		background-size: cover;
		position: absolute;
		left: 6%;
	}

	.top_contact ul.ul_contact li:last-child a::after {
		width: 3vw;
		height: 3vw;
		background: none;
		border-top: 3x solid #ffffff;
		border-right: 3px solid #ffffff;
		transform: rotate(45deg);
		position: absolute;
		left: auto;
		right: 8%;
	}

	.top_image01,
	.top_image02 {
		margin: 0;
		width: 100vw;
		height: 46.15vw;
		background: url(../images/top_img05.webp) no-repeat 50% 85%;
		background-size: 150%;
	}

	.top_image02 {
		background: url(../images/top_img06.webp) no-repeat 50% 50%;
		background-size: 120%;
	}

	.top_flow {
		padding: 10.25vw 0;
	}

	.top_flow ul {
		flex-wrap: wrap;
		margin: 7.69vw auto 0;
		padding: 0;
		column-gap: 0;
	}

	.top_flow ul li:first-child {
		padding: 5.12vw 5.12vw 0;
		width: 100%;
	}

	.top_flow ul li:last-child {
		padding: 1rem 7.69vw 7.69vw;
		width: 100%;
	}

	.top_flow ul li h4 {
		margin: 0 0 .5em;
		font-size: 24px;
	}

	.top_doctor {
		padding: 10.25vw 0;
	}

	.top_doctor ul {
		flex-wrap: wrap;
		margin: 4rem auto 0;
		justify-content: normal;
		row-gap: 1rem;
	}

	.top_doctor ul li {
		width: 100%;
		padding: 0 1.9rem 28.2vw;
	}

	.top_doctor ul li img {
		margin: 10.25vw auto .5rem;
		width: 45.12vw;
	}

	.top_doctor ul li h4 {
		margin: .1em 0 .75em;
		font-size: 22px;
	}

	.top_doctor ul li b {
		font-size: 14px;
	}

	.top_doctor ul li dl {
		display: flex;
		flex-wrap: wrap;
		margin: .5em 0 0;
		font-size: 14px;
		row-gap: .5em;
	}

	.top_doctor ul li dl dt {
		margin: 0;
		padding: 0;
		width: 22%;
		font-weight: 400;
		line-height: 1.75;
	}

	.top_doctor ul li dl dd {
		margin: 0;
		padding: 0;
		width: 78%;
		line-height: 1.75;
	}

	.top_doctor ul li a {
		width: 21vw;
		height: 7.43vw;
		font-size: 12px;
		bottom: 10.25vw;
	}

	#index_news {
		flex-wrap: wrap;
		padding: 10.25vw 0 !important;
	}

	#index_news .index_cb_catch {
		width: 100%;
		padding: 0;
		text-align: center;
	}

	#index_news .index_cb_catch h2::after {
		right: 0;
		left: 0;
	}

	#index_news .index_cb_button {
		margin: 0 auto;
		width: 39.5vw !important;
		height: 9.74vw !important;
		font-size: 11px;
		position: absolute;
		top: auto;
		bottom: 10.25vw;
		left: 0;
		right: 0;
	}

	#index_news .post_list {
		margin: 0 !important;
		padding: 0 !important;
		width: 100% !important;
	}

	#index_news .post_list .item {
		margin: 0;
		width: 100% !important;
		border: none;
	}

	#index_news .post_list .item a {
		display: flex;
		padding: 1em 0 0 !important;
		width: 100% !important;
	}

	#index_news .post_list .item:first-child a {
		margin-top: 4em;
		padding-top: .5em;
	}

	#index_news .post_list .item:last-child a {
		margin-bottom: 6em;
	}

	#index_news .post_list .item a :is(p, h4) {
		height: auto;
		min-height: 4.5em;
		font-size: 12px !important;
	}

	#index_news .post_list .item a h4 span {
		padding: 0;
		width: 100%;
		line-height: 1.5;
	    display: -webkit-box;
	    -webkit-box-orient: vertical;
	    -webkit-line-clamp: 3;
	    overflow: hidden;
	}

	.catch.frost_bg p {
		font-size: 14px !important;
	}

	#footer_button .button3 a span {
	display: none;
	}

	.pc_only,
	.pc_only_in {
		display: none !important;
	}

	.sp_only {
		display: block !important;
	}

	.tb_only {
		display: none !important;
	}
}

@media screen and (min-width: 1251px) {
#header_top_inner {
		height: 65px;
	}
#header_button .button a {
    height: 65px !important;
    padding-top: 7px !important;
	}
#header_button .button {
      vertical-align: middle !important;
	}
#header_logo img {
	width: auto;
	height: 50px;
	}
.index_box_content.row1 .title,.index_box_content.row2 .title,.index_box_content.row3 .title,.index_box_content.row4 .title,.index_box_content.row5 .title {
	padding-right:130px !important;
	}
}

.index_box_content.row1 .title,.index_box_content.row2 .title,.index_box_content.row3 .title,.index_box_content.row4 .title,.index_box_content.row5 .title {
	font-family: 'Noto Serif JP', serif !important;
	color:rgba(158,121,176,1) !important;
	font-weight:600px;
	}

@media screen and (max-width: 350px) {
	.caption_inner :is(h2, p) {
		font-size: 7.2vw !important;
		top: -2.5em;
	}

	.index_box_content:is(.row1,.row2,.row3,.row4,.row5) .box .title::after {
		top: 5.16rem;
	}
}

@media screen and (max-width: 1250px), 
       screen and (max-width: 767px), 
       screen and (max-width: 550px) {
    .service_post_list .image {
        height: auto !important; /* 全ての幅で比率維持を優先 */
    }
    #single_service_related_post .link.animate_background {
        height: auto !important;
    }
}

@media screen and (max-width: 550px) {
    /* 1. リストの並びを縦1列にして幅を100%に */
    .service_post_list {
        display: block !important;
    }

    .service_post_list li {
        width: 100% !important; /* 親要素の幅いっぱいにする */
        margin: 0 0 2em 0 !important;
    }

    /* 2. 画像の箱（wrap）の設定 */
    .service_post_list .image_wrap {
        width: 100% !important;
        height: auto !important; /* ←ここが重要：117px指定を上書きして解除 */
    }

    /* 3. 画像（background）の設定 */
    .service_post_list .image {
        width: 100% !important;
        height: auto !important; /* ←重要：固定高さを捨てて自動にする */
        
        /* 元画像 1250:450 の比率を強制的に守らせる */
        aspect-ratio: 1250 / 450; 
        
        /* 背景画像が箱の隅々まで行き渡るように設定 */
        background-size: cover !important; 
        background-position: center center !important;
    }

    /* 4. リンク要素の高さ制限も解除 */
    #single_service_related_post .link.animate_background {
        height: auto !important;
    }
}

/* --- フッター上の共通ボタン（よくある質問・コラム）専用の設定 --- */

/* 1. 高さを復活させる（元のデザインに合わせて 300px 前後に設定） */
#index_banner .link.animate_background {
    height: 300px !important; /* 元の高さに合わせて調整してください */
    display: block !important; /* flex解除：中の要素の重なりを維持するため */
    position: relative;
    overflow: hidden;
}

/* 2. 中の背景画像を枠いっぱいに広げる */
#index_banner .link.animate_background .image.normal_image {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* 3. モバイル（スマホ）時の高さ調整 */
@media screen and (max-width: 767px) {
    #index_banner .link.animate_background {
        height: 200px !important; /* スマホで見やすい高さに調整 */
    }
}

/* 4. 化粧品バナー側への干渉を完全に防ぐ（念押し） */
#single_service_related_post .link.animate_background {
    height: auto !important;
    display: flex !important;
    flex-direction: column;
}

.hd-contents .sub {
	text-align: center !important;
}

/* --- タブ切り替えの制御（8番〜15番を追加） --- */
#tab08:checked ~ #tab08_content,
#tab09:checked ~ #tab09_content,
#tab10:checked ~ #tab10_content,
#tab11:checked ~ #tab11_content,
#tab12:checked ~ #tab12_content,
#tab13:checked ~ #tab13_content,
#tab14:checked ~ #tab14_content,
#tab15:checked ~ #tab15_content {
    display: block !important;
}

/* --- タブボタンの見た目の調整（アクティブ時） --- */
#tab08:checked ~ [for="tab08"],
#tab09:checked ~ [for="tab09"],
#tab10:checked ~ [for="tab10"],
#tab11:checked ~ [for="tab11"],
#tab12:checked ~ [for="tab12"],
#tab13:checked ~ [for="tab13"],
#tab14:checked ~ [for="tab14"],
#tab15:checked ~ [for="tab15"] {
    /* ここに背景色や文字色の指定があるはずです。既存のtab01〜07の設定に合わせてください */
    background: #d19bc4; /* 例：テーマカラーのピンク */
    color: #fff;
}

/* タブ全体のコンテナ */
.tabs {
    display: flex !important;
    flex-wrap: wrap !important;
    border: none !important;
    padding: 0 !important;
    margin: 0 !important;
    width: 100% !important;
}

/* 各タブ（ラベル）の共通設定 */
.tabs label {
    box-sizing: border-box !important;
    margin: 0 !important;
    padding: 15px 10px !important;
    background-color: #fff;
    text-align: center;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    /* 上と左に線を引く */
    border-top: 1px solid #e0e0e0 !important;
    border-left: 1px solid #e0e0e0 !important;
    border-right: none !important;
    border-bottom: none !important;
}

/* PC版（3カラム） */
@media screen and (min-width: 768px) {
    .tabs label { width: 33.333% !important; }
    .tabs label:nth-of-type(3n) { border-right: 1px solid #e0e0e0 !important; }
    .tabs label:nth-last-of-type(-n+3) { border-bottom: 1px solid #e0e0e0 !important; }
    /* 3カラム時、最後が中途半端に終わる場合の右端処理（15個なら本来3nで足りますが念のため） */
    .tabs label:last-of-type { border-right: 1px solid #e0e0e0 !important; }
}

/* スマホ版（2カラム） */
@media screen and (max-width: 767px) {
    .tabs label { width: 50% !important; }
    /* 偶数番目に右線を引く */
    .tabs label:nth-of-type(2n) { border-right: 1px solid #e0e0e0 !important; }
    /* ★追加：最後が奇数で終わる場合でも、右端を閉じる */
    .tabs label:last-of-type { border-right: 1px solid #e0e0e0 !important; }
    
    /* 最後の2つに下線を引く */
    .tabs label:nth-last-of-type(-n+2) { border-bottom: 1px solid #e0e0e0 !important; }
}

/* 選択中のスタイル */
.tabs input:checked + label {
    background-color: #d19bc4 !important;
    color: #fff !important;
}