@charset "UTF-8";

/* -------------------------------------------------- */
/* RESET */
/* -------------------------------------------------- */
html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio,video {
	margin: 0;
	padding: 0;
	vertical-align: baseline;
	border: 0;
	font-size: 100%;
	font: inherit;
}

/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {
	display: block;
}

body {
	line-height: 1;
}

ol,
ul {
	list-style: none;
}

li {
	list-style-type: none;
}

blockquote,
q {
	quotes: none;
}

blockquote:before,
blockquote:after,
q:before,
q:after {
	content: "";
	content: none;
}

table {
	border-collapse: collapse;
	border-spacing: 0;
}

img {
	vertical-align: bottom;
}

textarea,
select,
option {
	font: inherit;
}

/* -------------------------------------------------- */
/* WP*/
/* -------------------------------------------------- */
/* 投稿の画像配置 */
.alignright { display: block; margin: 0 0 10px auto; }/* 配置位置 左 */
.alignleft { display: block; margin: 0 auto 10px 0; }/* 配置位置 右 */
.aligncenter { display: block; margin: 0 auto 10px; }/* 配置位置 中央 */
/* .alignright { float: right; padding: 0px 0 10px 10px; } *//* 後続のテキスト左回り込み */
/*.alignleft { float: left; padding: 0px 10px 10px 0; }*//* 後続テキスト右回り込み */

/* -------------------------------------------------- */
/* LINK */
/* -------------------------------------------------- */
a {
	transition: all 0.3s ease-in-out 0s;
}

a:link,
a:visited {
	text-decoration: none;
	color: inherit;
}

a:hover {
	text-decoration: none;
	color: #ae9b62;
}

a:active {
	text-decoration: none;
	color: #ae9b62;
}

/* -------------------------------------------------- */
/* COMMON */
/* -------------------------------------------------- */
html {
	font-size: 62.5%;
}


body {
	-webkit-text-size-adjust: 100%;
	/* WebKit系 (Safari, Chrome) */
	-webkit-font-smoothing: antialiased;
	/* Firefox (Mac) */
	-moz-osx-font-smoothing: grayscale;
	-webkit-font-feature-settings: "palt";
	-moz-font-feature-settings: "palt";
	font-feature-settings: "palt";
}

#container {
	position: relative;
	overflow-x: hidden;
	overflow-x: clip;
	background: #FBFAF8;
	font-size: 1.4rem;
	color: #444444;
	line-height: 1.5;
	font-family: var(--font-family-main);
	letter-spacing: 0.1em;
}

* {
	box-sizing: border-box;
	-webkit-box-sizing: border-box;
}


.brSp {
	display: none;
}

.brPc {
	display: inline-block;
}

.br-1025-1100 {
	display: none;
}

/* 1025〜1100pxの間だけ表示 */
@media screen and (min-width:1025px) and (max-width:1100px) {
	.br-1025-1100 {
		display: inline;
	}
}

.on {
	transition: all 0.3s;
}

.on:hover {
	opacity: 0.7;
}

span:not([class]) {
	display: inline-block;
}

.sansserif {
	font-family: var(--font-family-sub);
}


/* 画面非表示（スクリーンリーダー・SEO用） */
.is-visuallyHidden {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	border: 0;
}

:root {
	/* --color-gold: #B98E31;
	--color-black: #444444;
	--color-white: #FFFFFF;
	--color-gray: #999999;
	--color-border: #DDDCDC;
	--color-bg-box: #F4F2EF;
	--color-bg-pale: #EAE8E4;
	--color-gold-muted: #998A54;
	--color-gold-light: #AE9B62; */
	--font-family-main: "Noto Serif JP", serif;
	--font-family-sub: "Noto Sans JP", sans-serif;
	--font-family-en: 'Playfair Display', serif;
}


/* -------------------------------------------------- */
/* アニメーション　*/
/* -------------------------------------------------- */
.blur {
  filter: blur(20px);
  opacity: 0;
  transform: scale(1.05);
  transition: all 1s ease;
}

.blur.complete {
  filter: blur(0);
  opacity: 1;
  transform: scale(1);
}

.slideInText span.char {
  display: inline-block;
  opacity: 0;
  transform: translateX(-20px);
  transition: all 0.5s ease;
}

.slideInText.active span.char {
  opacity: 1;
  transform: translateX(0);
}

/* -------------------------------------------------- */
/* PC */
/* -------------------------------------------------- */

/* -------------------------------------------------- */
/* 共通パーツ */
/* -------------------------------------------------- */

/* .inner（共通インナー幅） */
.inner {
	width: 100%;
	max-width: 1240px;
	margin: 0 auto;
	padding: 0 20px;
}

/* .btn1（共通ボタン） */
.btn1 {
	width: min(100%, 300px);
	margin-inline: auto;
}

.btn1Link {
	width: 100%;
	padding: 15px 25px;
	position: relative;
	display: grid;
	place-items: center;
	background: transparent;
	color: #FFFFFF;
	text-decoration: none;
	cursor: pointer;
	overflow: hidden;
	isolation: isolate;
	transition: color 0.3s;
}

.btn1Link::before,
.btn1Link::after {
	position: absolute;
	inset: 0;
	content: "";
	transition: opacity 0.6s ease;
	z-index: -1;
}

/* 通常時：先に表示されている背景 */
.btn1Link::before {
	background: linear-gradient(225deg, #434039 0%, #121212 99%);
	opacity: 1;
}

/* 下地：反転グラデ */
.btn1Link::after {
	background: linear-gradient(45deg, #434039 0%, #121212 99%);
	opacity: 1;
}

.btn1Link:hover::after {
	opacity: 0;
}

.btn1Txt {
	color: #FFFFFF;
	font-size: 1.8rem;
	font-weight: 500;
	line-height: 1.6;
	letter-spacing: 0.05em;
}

.btn1Icon {
	width: 24px;
	height: 24px;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: visible;
	position: absolute;
	right: 1.5rem;
	top: 50%;
	transform: translateY(-50%);
	border: 1px solid #E9DFB9;
	border-radius: 50%;
}

.btn1IconImg {
	width: 10px;
	height: auto;
	display: block;
	transform: translateY(-1px);
}


/* .btn2（共通ボタン） */
.btn2 {
	padding: 10px 15px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	position: relative;
	border: none;
	color: #FFFFFF;
	font-size: 1.4rem;
	text-decoration: none;
	cursor: pointer;
	overflow: hidden;
	isolation: isolate;
}

.btn2Txt {
	font-size: 1.4rem;
	letter-spacing: 0.075em;
	font-weight: 500;
	color: #FFFFFF;
}


.btn2::before,
.btn2::after {
	position: absolute;
	inset: 0;
	content: "";
	transition: opacity 0.6s ease;
	z-index: -1;
}

/* 通常時：先に表示されている背景 */
.btn2::before {
	background: linear-gradient(225deg, #434039 0%, #121212 99%);
	opacity: 1;
}

/* 下地：反転グラデ */
.btn2::after {
	background: linear-gradient(45deg, #434039 0%, #121212 99%);
	opacity: 1;
}

.btn2:hover::after {
	opacity: 0;
}

.btn2Icon {
	width: 20px;
	height: 20px;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: visible;
	position: absolute;
	right: 1.5rem;
	top: 50%;
	transform: translateY(-50%);
	border: 1px solid #E9DFB9;
	border-radius: 50%;
}

/* 中のアイコン画像（btn1と共通SVGを使用） */
.btn2Icon .btn1IconImg {
	width: 8px;
	height: auto;
	display: block;
}


/* .btn3（共通ボタン） */

.btn3 {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 20px;
	position: relative;
	color: #FFFFFF;
	text-decoration: none;
}


.btn3Txt {
	font-size: 1.8rem;
	font-weight: 500;
	letter-spacing: 0.075em;
	color: inherit;
}


.btn3Icon {
	width: 40px;
	height: 40px;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: visible;
	border-radius: 50%;
	background: #CDC68F;
}

/* btn3用アイコン画像 */
.btn3IconImg {
	width: 15px;
	height: auto;
	display: block;
}

/* タイトル */
/* -------------------------------------------------- */
/* commonTit01 */
.commonTit01 {
	margin-bottom: 30px;
	font-size: 3rem;
	font-weight: 600;
	letter-spacing: .05em;
	color: #998A54;
	text-align: center;
}

/* commonTit02 */
.commonTit02 {
	margin-bottom: 30px;
	font-size: 3rem;
	font-weight: 600;
	letter-spacing: .05em;
}

/* テキスト */
/* -------------------------------------------------- */
/* commonTxt01 */
.commonTxt01 {
	margin-bottom: 35px;
	font-size: 1.6rem;
	line-height: 2.125;
	font-family: var(--font-family-sub);
}

/* 注釈 */
/* -------------------------------------------------- */
/* commonNote01 */
.commonNote01 {
	display: block;
	padding-left: 1em;
	line-height: 2;
	text-indent: -1em;
	font-family: var(--font-family-sub);
}
.commonNote01.isSmall {
	font-size: 1.4rem;
}

/* リスト */
/* -------------------------------------------------- */
/* commonList01 */
.commonList01 {
	display: grid;
	grid-template-columns: 1fr;
	grid-gap: 2px;
}

.commonList01Item {
	padding-left: .7em;
	font-size: 1.6rem;
	line-height: 2;
	position: relative;
}
.commonList01Item::after {
	content: "";
	display: block;
	width: .2em;
	aspect-ratio: 1 / 1;
	border-radius: 50%;
	background: currentColor;
	position: absolute;
	top: 1em;
	left: 0;
}

/* .commonList02 */
.commonList02 {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	grid-gap: 25px 40px;
}

.commonList02Item {
	background: #fff;
	border: 1px solid #998a54;
	font-weight: 600;
	font-size: 2.2rem;
}

.commonList02Item a {
	min-height: 90px;
	height: 100%;
	padding: 10px 80px 10px 30px;
	display: flex;
	align-items: center;
	position: relative;
}
.commonList02Item a::after {
	content: "";
	display: block;
	width: 45px;
	height: 45px;
	border-radius: 50%;
	background: #444 url(../img/common/icon_clinic_arrow.svg) no-repeat center/22%;
	position: absolute;
	top: 0;
	bottom: 0;
	right: 25px;
	margin: auto;
}

/* テーブル */
/* -------------------------------------------------- */
.commonTable01 {
	width: 100%;
}

.commonTable01 th, .commonTable01 td {
	padding-block: 25px;
	border: 1px solid #cecbc8;
	text-align: left;
}

.commonTable01 th {
	width: 20%;
	min-width: 150px;
	padding-inline: 30px;
	background: #f1efec;
	font-size: 2rem;
	vertical-align: middle;
}

.commonTable01 td {
	padding-inline: 20px;
	background: #fff;
	font-size: 1.6rem;
	line-height: 2;
	font-family: var(--font-family-sub);
}

/* commonTable02 */
.commonTable02 {
	width: 100%;
}

.commonTable02 tr {
	border: 1px solid #888;
}

.commonTable02 th, .commonTable02 td {
	padding-block: 20px;
	text-align: left;
}

.commonTable02 th {
	width: 20%;
	min-width: 150px;
	padding-inline: 20px;
	background: #f6f5f0;
	font-weight: 600;
	font-size: 1.6rem;
	vertical-align: middle;
}

.commonTable02 td {
	padding-inline: 30px;
	background: #fff;
	font-size: 1.6rem;
	line-height: 2;
	font-family: var(--font-family-sub);
}

/* faq */
/* -------------------------------------------------- */
/* commonFaq01 */
.commonFaq01 {
	margin-bottom: 150px;
	font-weight: 600;
	font-size: 1.8rem;
}

.commonFaq01Tit,
.commonFaq01Content {
	position: relative;
}
.commonFaq01Tit::after,
.commonFaq01Content::after {
	display: block;
	height: 1em;
	line-height: 1;
	font-weight: 400;
	font-family: var(--font-family-en);
	position: absolute;
	left: 30px;
}

.commonFaq01Tit {
	cursor: pointer;
	min-height: 80px;
	display: flex;
	align-items: center;
	padding: 20px 100px 20px 70px;
	background: #eeede9;
}
.commonFaq01Tit::after {
	content: "Q";
	top: 0;
	bottom: 0;
	margin: auto;
}

/* 矢印 */
.commonFaq01Tit .btn {
	width: 45px;
	height: 45px;
	background: #fff;
	border-radius: 50%;
	position: absolute;
	top: 0;
	right: 20px;
	bottom: 0;
	margin: auto;
}
.commonFaq01Tit .btn::after {
	content: "";
	display: block;
	width: 8px;
	aspect-ratio: 1/1;
	border-right: 1px solid;
	border-bottom: 1px solid;
	transform: rotate(45deg);
	position: absolute;
	top: 40%;
	right: 0;
	left: 0;
	margin: auto;
	transition: all .3s;
}
.commonFaq01Tit.isOpen .btn::after {
	top: 47%;
	transform: rotate(45deg) scale(-1, -1);
}

.commonFaq01Content {
	display: none;
	padding: 30px 40px 30px 70px;
	background: #fff;
	border: 1px solid #eeede9;
}
.commonFaq01Content::after {
	content: "A";
	color: #d43232;
	font-size: 2rem;
	top: 33px;
}

.commonFaq01Content + .commonFaq01Tit {
	margin-top: 40px;
}

/* 動画リスト */
/* -------------------------------------------------- */
/* commonMovie01 */
.commonMovie01 {
	margin-bottom: 50px;
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	grid-gap: 10px;
}

.commonMovie01Item {
	overflow: hidden;
	width: 100%;
	aspect-ratio: 16/9;
	border-radius: 10px;
}

.commonMovie01Item iframe {
	width: 100%;
	height: 100%;
	display: block;
}

/* commonMovie02 */
.commonMovie02 {
	margin-bottom: 150px;
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	grid-gap: 24px;
}


.commonMovie02Img {
	width: 100%;
	aspect-ratio: 16/9;
	margin-bottom: 15px;
	overflow: hidden;
}

.commonMovie02Img img {
	width: 100%;
	height: 100%;
	display: block;
	transition: all 0.3s ease-in-out 0s;
}

.commonMovie02Item a:hover img {
	transform: scale(1.1);
}

.commonMovie02Date {
	font-size: 1.2rem;
}

.commonMovie02Tit {
	font-weight: 600;
	font-size: 1.6rem;
}

/* アフターケア */
/* -------------------------------------------------- */
.commonCare {
	margin-bottom: 60px;
	display: grid;
	grid-template-columns: 1fr max(570px, 50%);
	align-items: start;
	gap: 45px;
}

.commonCareImg img {
	width: 100%;
}

.commonCareTxtBox {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	grid-gap: 30px 20px;
}

.commonCareTxt {
	grid-column: span 2;
	font-size: 1.8rem;
}

/* 問い合わせ先カード */
.commonCareContact {
	display: flex;
	flex-wrap: wrap;
	gap: 5px 10px;
	padding: 25px 30px;
	border: 1px solid #dfd6c9;
	background: #fff;
}

.commonCareLogo {
	width: 100%;
	height: 42px;
	display: flex;
	align-items: center;
}

.commonCareLogo img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	object-position: left;
}

.commonCareLogo.isFukuoka img {
	max-height: 28px;
}

.commonCareClinic {
	font-weight: 600;
	font-size: 2.1rem;
}

.commonCareBtnWrap {
	display: flex;
	align-items: center;
	gap: 15px;
}

.commonCareBtn .icon {
	display: flex;
	justify-content: center;
	align-items: center;
}

.commonCareTel {
	width: 100%;
	display: flex;
	align-items: center;
	gap: 5px;
	color: #998a54;
	font-weight: 600;
	font-size: 2.4rem;
}

.commonCareTel .icon {
	width: 18px;
	aspect-ratio: 1/1;
	display: flex;
	justify-content: center;
	align-items: center;
}

.commonCareTime {
	width: 100%;
	font-size: 1.8rem;
	font-family: var(--font-family-sub);
}

.commonCareTime .small {
	font-size: .9em;
}

/* 施術一覧リスト */
/* -------------------------------------------------- */
.commonTreatment {
	display: grid;
	grid-template-columns: 1fr;
	grid-gap: 35px;
}

.commonTreatmentItem {
	background: #fff;
	border: 1px solid #998a54;
}

/* 大きい方のボタン */
.commonTreatmentItem > a {
	min-height: 110px;
	height: 100%;
	padding: 20px 100px 20px 30px;
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 10px;
	position: relative;
}
.commonTreatmentItem > a::after {
	content: "";
	display: block;
	width: 50px;
	height: 50px;
	border-radius: 50%;
	background: #444 url(../img/common/icon_clinic_arrow.svg) no-repeat center/22%;
	position: absolute;
	top: 0;
	bottom: 0;
	right: 30px;
	margin: auto;
}

.commonTreatmentTit {
	font-weight: 600;
	font-size: 2.2rem;
}

.commonTreatmentTxt {
	font-family: var(--font-family-sub);
	line-height: 1.6;
}

/* （サブリストがある場合の）大きい方のボタン */
.commonTreatmentItem:has(.commonTreatmentSub) > a {
	min-height: 85px;
	height: auto;
}

/* サブリスト */
.commonTreatmentSub {
	width: calc(100% - 50px);
	margin: 0 auto 25px;
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	grid-gap: 15px;
	font-family: var(--font-family-sub);
}

.commonTreatmentSubItem {
	font-size: 1.5rem;
	line-height: 1.3;
}

.commonTreatmentSubItem a {
	min-height: 50px;
	height: 100%;
	display: flex;
	align-items: center;
	padding: 5px 45px 5px 15px;
	background: #eeede9;
	position: relative;
}
.commonTreatmentSubItem a::after {
	content: "";
	display: block;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	background: #fff url(../img/common/icon_featured_title.svg) no-repeat center/40%;
	position: absolute;
	top: 0;
	bottom: 0;
	right: 13px;
	margin: auto;
}

.commonTreatmentSubItem .small {
	display: contents;
	font-size: .7em;
}

.commonTreatmentSubItem.isWide {
	grid-column: span 2;
}

/* PC時2列にするときは囲む */
.commonTreatmentWrap {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	grid-gap: 60px;
}

/* カード */
/* -------------------------------------------------- */
/* commonCard01 */
.commonCard01 {
	counter-reset: number;
	display: grid;
	grid-template-columns: 1fr;
	grid-gap: 35px;
}

.commonCard01Item {
	display: grid;
	grid-template-columns: 274px 1fr;
	grid-gap: 55px;
	padding-right: 30px;
	background: #fff;
	box-shadow: 0 0 10px rgba(0, 0, 0, .1);
}

.commonCard01Img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.commonCard01TxtBox {
	padding-block: 30px;
	align-self: center;
}

.commonCard01Tit {
	min-height: 60px;
	display: flex;
	align-items: center;
	margin-bottom: 20px;
	padding-left: 80px;
	font-weight: 600;
	font-size: 2.4rem;
	position: relative;
}
.commonCard01Tit::after {
	counter-increment: number;
	content: counter(number, decimal-leading-zero);
	width: 60px;
	height: 60px;
	display: flex;
	justify-content: center;
	align-items: center;
	border-radius: 50%;
	background: #ae9b62;
	color: #fff;
	font-weight: 400;
	font-size: 1.8rem;
	font-family: var(--font-family-en);
	position: absolute;
	top: 0;
	left: 0;
	bottom: 0;
	margin: auto;
}

.commonCard01Txt {
	font-size: 1.8rem;
	font-family: var(--font-family-sub);
}

/* .commonCard02 */
.commonCard02 {
	display: grid;
	grid-template-columns: 1fr;
	grid-gap: 50px;
}

.commonCard02Item {
	border: 1px solid #998a54;
}

.commonCard02Item a {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	grid-gap: 40px;
	padding: 30px 40px 30px 35px;
	background: #fff;
}

.commonCard02Img {
	width: 225px;
}

.commonCard02Img img {
	width: 100%;
}

.commonCard02TxtBox {
	flex: 1;
	padding-right: 100px;
	position: relative;
}
.commonCard02TxtBox::after {
	content: "";
	display: block;
	width: 50px;
	height: 50px;
	border-radius: 50%;
	background: #444 url(../img/common/icon_clinic_arrow.svg) no-repeat center/25%;
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	margin: auto;
}

.commonCard02Tit {
	margin-bottom: 10px;
	font-weight: 600;
	font-size: 2.2rem;
}

.commonCard02Txt {
	font-family: var(--font-family-sub);
}/* .commonCard03 */
.commonCard03 {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	grid-gap: 20px;
	margin-bottom: 100px;
}

.commonCard03Item a {
	display: block;
}

.commonCard03Img {
	margin-bottom: 10px;
}

.commonCard03Img img {
	width: 100%;
}

.commonCard03Tit {
	font-weight: 600;
	font-size: 1.7rem;
}

/* .cat（カテゴリラベル） */
.cat {
	width: fit-content;
	font-size: 1.5rem;
	font-weight: 500;
	font-family: var(--font-family-main);
	letter-spacing: 0.075em;
}


/* .related（共通リスト） */
.related {
	margin: 0 0 60px 0;
	padding: 0;
	display: grid;
	gap: 0 20px;
	grid-template-columns: repeat(4, 1fr);
	list-style: none;
}

.relatedItem a {
	display: block;
	text-decoration: none;
	color: #444444;
}

.relatedItem figure {
	margin: 0 0 15px;
	aspect-ratio: 14 / 11;
	overflow: hidden;
}

.relatedItem img {
	width: 100%;
	height: 100%;
	display: block;
	object-fit: cover;
	transition: transform 0.4s ease;
}

.relatedItem a:hover img {
	transform: scale(1.1);
}

.relatedItem p {
	margin: 0;
	font-size: 1.7rem;
	font-family: var(--font-family-main);
	font-weight: bold;
	color: #444444;
	line-height: 1.6;
}

/* .keyword（キーワード検索） */
.keyword {
	display: flex;
	align-items: center;
}

.keyword form {
	display: flex;
	align-items: center;
	border-bottom: 1px solid #444444;
}

.keywordInput {
	width: 20.5rem;
	padding: 0 5px 5px 0;
	border: none;
	background: transparent;
	font-size: 1.4rem;
}

.keywordInput::placeholder {
	color: #999999;
}

.keywordInput:focus {
	outline: none;
}

.keyword button {
	display: flex;
	align-items: center;
	justify-content: center;
	border: none;
	background: transparent;
	cursor: pointer;
}

.keywordIcon {
	width: 12px;
	display: flex;
	align-items: center;
	justify-content: center;
}

.keywordIcon img {
	width: 100%;
	object-fit: contain;
}

/* -------------------------------------------------- */
/* .tab1（タブ：tab1） */
/* -------------------------------------------------- */
.tab1Wrap {
	border-top: 1px solid #C9C2B1;
	border-left: 1px solid #C9C2B1;
	border-right: 1px solid #C9C2B1;
	margin-bottom: 20px;
}

.tab1Wrap .tab1 {
	width: 100%;
	display: grid;
	grid-template-columns: repeat(20, 1fr);
	/* 仮想20分割 */
	gap: 0;
}

/* 1行目（1〜5個）＝5列 */
.tab1Wrap .tab1>*:nth-child(-n+5) {
	grid-column: span 5;
	/* 20 ÷ 5 */
}

/* 2行目以降（6個目〜）＝4列 */
.tab1Wrap .tab1>*:nth-child(n+6) {
	grid-column: span 5;
	/* 20 ÷ 4 */
}

.tab1Wrap .tab1 {
	border-top: none;
}

.tab1Item {
	width: 100%;
	padding: 15px 5px;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	position: relative;
	overflow: hidden;
	border-bottom: 1px solid #C9C2B1;
	border-right: 1px solid #C9C2B1;
	background: #FFFFFF;
	color: #444444;
	font-size: 1.4rem;
	font-weight: 500;
	font-family: var(--font-family-main);
	text-align: center;
	cursor: pointer;
	transition: all 0.3s ease-in-out 0s;
	line-height: 1.2;
}

.tab1Item:nth-child(4n),
.tab1Item:last-child {
	border-right: none;
}

.tab1Item::after {
	width: 4px;
	height: 4px;
	position: absolute;
	bottom: 0.5rem;
	left: 50%;
	transform: translateX(-50%) scale(1);
	transform-origin: center center;
	background: #AE9B62;
	border-radius: 50%;
	content: "";
	transition: transform 0.5s;
}

.tab1Item:hover {
	color: #FFFFFF;
}

.tab1Item:hover::after {
	transform: translateX(-50%) scale(85);
}

.tab1ItemTxt {
	position: relative;
	z-index: 1;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
}

.tab1Item:last-child {
	border-right: none;
}


.tab1Item.active {
	background: #AE9B62;
	border-color: #AE9B62;
	color: #FFFFFF;
}

/* -------------------------------------------------- */
/* .tab2（タブ：キャンペーン等・区切り線スタイル） */
/* -------------------------------------------------- */
.tab2 {
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0;
	list-style: none;
}

.tab2Item {
	border-right: 1px solid #DDDCDC;
}

.tab2Item:last-child {
	border-right: none;
}

.tab2Btn {
	padding: 5px 20px;
	border: none;
	background: transparent;
	color: #444444;
	font-size: 1.4rem;
	letter-spacing: 0.075em;
	font-weight: 400;
	font-family: var(--font-family-main);
	cursor: pointer;
	transition: color 0.3s;
}

.tab2Item.active .tab2Btn {
	color: #998A54;
	font-weight: 500;
}

.tab2Btn:hover {
	color: #998A54;
}

.tab2Panel {
	display: none;
}

.tab2Panel.active {
	display: block;
}

/* -------------------------------------------------- */
/* タブ：tab3 */
/* -------------------------------------------------- */


.tab3 {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
}

.tab3Item {
	padding: 15px 20px;
	margin-bottom: -1px;
	border-top: 1px solid #EAE8E4;
	border-left: 1px solid #EAE8E4;
	border-right: 1px solid #EAE8E4;
	border-bottom: 1px solid #C9C2B1;
	background: #EAE8E4;
	color: #444444;
	font-family: var(--font-family-main);
	font-size: 1.6rem;
	letter-spacing: 0.075em;
	font-weight: 600;
	text-align: center;
	cursor: pointer;
	transition: all 0.3s ease-in-out 0s;
}

.tab3Item:not(.active):hover {
	background: #FFFFFF;
	border-left: 1px solid #FFFFFF;
	border-right: 1px solid #FFFFFF;
	border-top: 1px solid #FFFFFF;
}

.tab3Item.active {
	background: #FFFFFF;
	border-top: 1px solid #C9C2B1;
	border-left: 1px solid #C9C2B1;
	border-right: 1px solid #C9C2B1;
	border-bottom: 1px solid #FFF;
	color: #998A54;
}

.tab3Item.active:hover,
.tab3Item.active:active,
.tab3Item.active:focus,
.tab3Item.active:focus-visible {
	background: #FFFFFF;
}

.tab3Panel {
	display: none;
	background: #FFFFFF;
	padding: 30px 35px;
}

.tab3Panel.active {
	display: block;
}

.tab3PanelList {
	display: flex;
	flex-wrap: wrap;
	gap: 20px 30px;
	list-style: none;
}

.tab3PanelList li {
	font-size: 1.6rem;
	font-weight: 400;
	letter-spacing: 0.075em;
	line-height: 1.5;
	font-family: var(--font-family-sub);
}

.tab3PanelList a {
	color: #444444;
	transition: color 0.3s;
}

.tab3PanelList a:hover {
	color: #ae9b62;
}

/* -------------------------------------------------- */
/* #bc（パンくず） */
/* -------------------------------------------------- */

#bc {
	overflow-x: auto;
}

.bcList {
	padding-top: 20px;
	min-width: max-content;
	padding-bottom: 50px;
	display: flex;
	justify-content: flex-end;
	align-items: center;
	gap: 5px 10px;
	list-style: none;
	border-top: 1px solid #DED8C8;
	font-size: 1.6rem;
	font-weight: 400;
	letter-spacing: 0.075em;
	font-family: var(--font-family-sub);
}

.bcList li {
	flex-shrink: 0;
	color: #444444;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 5px;
}

.bcList li a {
	color: #998A54;
}

.bcList li::after {
	content: "";
	width: 20px;
	height: 1px;
	background: #999999;
	display: inline-block;
}


.bcList li:last-child::after {
	display: none;
}

.bcList a {
	color: inherit;
	transition: color 0.3s;
}

.bcList a:hover {
	color: #ae9b62;
}

/* -------------------------------------------------- */
/* .underFv */
/* -------------------------------------------------- */
.underFv {
	margin-top: -100px;
	padding-top: 100px;
	position: relative;
	background-color: #FBFAF8;
	color: #444444;
}

.underFv::before {
	width: 100%;
	height: 100%;
	position: absolute;
	top: 0;
	left: 0;
	background-image: url(../img/common/bg_page_fv.png);
	background-size: contain;
	background-position: top right;
	background-repeat: no-repeat;
	content: "";
}

.underFvInner {
	padding-bottom: 20px;
	min-height: 330px;
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 30px;
	position: relative;
	z-index: 1;
}

#underFvTit {
	font-size: 2.4rem;
	font-weight: 500;
	line-height: 1.5;
	letter-spacing: 0.05em;
	color: inherit;
}

#underFvTit .enTit {
	margin-bottom: 25px;
	display: block;
	font-size: 6.6rem;
	font-weight: 400;
	letter-spacing: 0.075em;
	line-height: 1;
	font-family: var(--font-family-en);
}

#underFvTit .font {
	font-family: var(--font-family-main);
}

#underFvTit span.isSmall::before {
	font-size: 6rem;
}

/* 募集要項タグ */
.underFvTag {
	width: fit-content;
	padding: 4px 30px;
	background: #fff;
	border: 1px solid #b6b3a3;
	font-size: 2.7rem;
}


/* -------------------------------------------------- */
/* .catBlock / .ctaBlock（無料カウンセリング・お問い合わせ） */
/* -------------------------------------------------- */
#cta {
	padding-bottom: 150px;
}

.catBlock {
	padding: 50px 45px;
	background-color: #FFFFFF;
	border: 1px solid #DFD6C9;
}

.ctaBlock {
	padding: 50px 45px;
	background-color: #FFFFFF;
	border: 1px solid #DFD6C9;
}

.contactTit {
	margin-bottom: 40px;
	font-size: 2.8rem;
	font-weight: 600;
	letter-spacing: 0.075em;
	color: #998A54;
	text-align: center;
}

.contactWrap {
	width: 900px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 0 55px;
}

.contactItem {
	display: flex;
	gap: 40px;
}

.contactPhoto {
	flex: 1 1 32%;
}

.contactPhoto img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.contactBox {
	flex: 1 1 auto;
	display: flex;
	flex-wrap: wrap;
	gap: 30px;
}

.contactLogo {
	width: 145px;
	padding-bottom: 20px;
	display: flex;
	align-items: center;
}

.contactLogo img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	object-position: left center;
}

.contactClinic {
	padding-bottom: 20px;
	font-size: 2.4rem;
	line-height: 1.2;
	font-weight: 600;
	letter-spacing: 0.05em;
	color: #444444;
}

.contactTel {
	display: flex;
	align-items: center;
	text-decoration: none;
	transition: color 0.3s, opacity 0.3s;
	gap: 5px;
}

.contactTel .icon {
	width: 17px;
	height: 17px;
	display: flex;
	align-items: center;
	justify-content: center;
}

.contactTel .icon img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.contactTel .text {
	color: #998A54;
	font-size: 2.2rem;
	font-weight: 600;
	line-height: 1.2;
}

.contactTel:hover {
	opacity: 0.8;
}

.contactTime {
	font-size: 1.7rem;
	font-weight: 500;
	line-height: 1.7;
	letter-spacing: 0.05em;
	color: #444444;
	font-family: var(--font-family-sub);
}

.contactBtnWrap {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.contactBtn {
	width: min(100%, 200px);
	min-height: 50px;
	padding: 5px 20px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	position: relative;
	color: #FFFFFF;
	text-decoration: none;
	overflow: hidden;
	isolation: isolate;
}

.contactBtn::before,
.contactBtn::after {
	position: absolute;
	inset: 0;
	content: "";
	transition: opacity 0.6s ease;
	z-index: -1;
}

/* 通常時：先に表示されている背景 */
.contactBtn::before {
	background: linear-gradient(225deg, #434039 0%, #121212 99%);
	opacity: 1;
}

/* 下地：反転グラデ */
.contactBtn::after {
	background: linear-gradient(45deg, #434039 0%, #121212 99%);
	opacity: 1;
}

.contactBtn:hover::after {
	opacity: 0;
}

.contactBtnIcon {
	display: flex;
	align-items: center;
}

.contactBtnIcon img {
	width: 20px;
	height: 20px;
	object-fit: contain;
}

.contactBtnTxt {
	flex: 0 0 auto;
	font-size: 1.5rem;
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: 0.075em;
	color: #FFFFFF;
}

.contactBtnArrowIcon {
	width: 24px;
	height: 24px;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: visible;
	border: 1px solid #E9DFD9;
	border-radius: 50%;
}

.contactBtnArrowIcon img {
	width: 11px;
	height: auto;
	display: block;
}

/* -------------------------------------------------- */
/* ページャー（#pagerWrap / #pager） */
/* -------------------------------------------------- */
#pagerWrap {
	margin-top: 70px;
}

#pager {
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 10px;
}

#pager .page-numbers {
	width: 6rem;
	height: 6rem;
	display: flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	background: #FFFFFF;
	border: 1px solid #AE9B62;
	border-radius: 50%;
	text-decoration: none;
	font-size: 1.6rem;
	font-weight: 600;
	color: #AE9B62;
	transition: all 0.3s ease-in-out 0s;
}

#pager a.page-numbers:hover {
	background: #AE9B62;
	color: #FFF;
}

#pager .page-numbers.current {
	background: #AE9B62;
	border-color: #AE9B62;
	color: #FFFFFF;
	cursor: default;
}

#pager .page-numbers.dots {
	width: auto;
	height: auto;
	min-width: auto;
	padding: 0 5px;
	background: transparent;
	border: none;
	font-size: 1.6rem;
	color: #AE9B62;
}

#pager .prev.page-numbers,
#pager .next.page-numbers {
	width: 6rem;
	height: 6rem;
	background: #FFFFFF;
	border: 1px solid #AE9B62;
	font-size: 0;
	transition: all 0.3s ease-in-out 0s;
}

#pager .prev.page-numbers:hover,
#pager .next.page-numbers:hover {
	background: #AE9B62;
	color: #FFF;
}


/* -------------------------------------------------- */
/* #commonClinic（共通クリニック紹介） */
/* -------------------------------------------------- */
#commonClinic {
	padding-block: 100px;
	background: #F4F2EF;
}

#clinicWrap {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 0 80px;
	min-width: 0;
}

#clinicWrap > * {
	min-width: 0;
}

.clinicLogo {
	width: 170px;
	height: 50px;
	margin-bottom: 20px;
	display: flex;
	align-items: center;
}

.clinicLogo img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	object-position: left center;
}

.clinicHeadBody {
	margin-bottom: 25px;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 50px;
}

.clinicPlace {
	font-size: 2.4rem;
	line-height: 1.2;
	font-weight: 600;
	letter-spacing: 0.05em;
	color: #444444;
}

.clinicHeadSns {
	display: flex;
	align-items: center;
	gap: 10px;
}

.clinicHeadSnsItemLink {
	width: 25px;
	height: 25px;
	display: block;
	display: grid;
	place-items: center;
}

.clinicHeadSnsItemLink img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	aspect-ratio: 1 / 1;
}

.clinicPhoto {
	width: 100%;
	margin-bottom: 25px;
	flex: 1 1 auto;
	aspect-ratio: 540 / 320;
}

.clinicPhoto img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.clinicName {
	margin-bottom: 20px;
	font-size: 2.2rem;
	line-height: 1.2;
	font-weight: 600;
	letter-spacing: 0.075em;
	color: inherit;
}

.clinicText {
	margin-bottom: 35px;
	font-size: 1.7rem;
	line-height: 1.5;
	font-weight: 500;
	letter-spacing: 0.075em;
	color: inherit;
}

.clinicTextLine {
	display: block;
}

.clinicBtnRow {
	min-height: 43px;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	align-content: flex-start;
	gap: 10px;
}

.clinicBtn {
	width: fit-content;
	min-width: 200px;
	height: 100%;
	padding: 15px 30px;
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	background: #FFFFFF;
	color: #444444;
	cursor: pointer;
	font-size: 1.5rem;
	font-weight: bold;
	transition: all 0.3s ease-in-out 0s;
}

.clinicIconBtn {
	width: fit-content;
	height: 100%;
	padding: 15px;
	font-weight: bold;
	display: flex;
	align-items: center;
	justify-content: center;
	background: #FFFFFF;
	cursor: pointer;
	transition: all 0.3s ease-in-out 0s;
}

.clinicBtn:hover,
.clinicIconBtn:hover {
	opacity: 0.7;
	color: #444444;
}

.clinicBtnIcon {
	width: 20px;
	display: grid;
	place-items: center;
}

.clinicBtnIcon img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.clinicBtnArrowIcon {
	width: 24px;
	height: 24px;
	right: 1rem;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: visible;
	background: #444444;
	border-radius: 50%;
}

/* クリニックボタン矢印アイコン画像 */
.clinicBtnArrowIconImg {
	width: 10px;
	height: auto;
	display: block;
	transform: translateY(-1px);
}

.clinicIconBtnIcon {
	width: 24px;
	display: grid;
	place-items: center;
}

.clinicIconBtnIcon img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.clinicSnsTit {
	margin-block: 35px 20px;
	display: flex;
	align-items: center;
	gap: 10px;
	line-height: 1.8;
	font-weight: 600;
	letter-spacing: 0.1em;
	color: inherit;
}

.clinicSnsTit .text {
	font-size: 1.7rem;
}

.clinicSnsTit .smallTxt {
	font-size: 1.3rem;
}

.clinicSnsTit .icon {
	width: 24px;
	display: grid;
	place-items: center;
}

.clinicSnsTit .icon img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.instagramList {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 10px;
}

.instagramItem a {
	display: block;
	aspect-ratio: 109 / 144;
	overflow: hidden;
}


.instagramItem img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: all 0.3s ease-in-out 0s;
}

.instagramItem a:hover img {
	transform: scale(1.1);
}



/* -------------------------------------------------- */
/* header */
/* -------------------------------------------------- */


#header {
	height: 100px;
	position: relative;
	z-index: 10;
}


#headerInner {
	width: 100%;
	height: 100%;
	margin: 0 auto;
	padding: 0 20px;
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	gap: 0 20px;
}

/* -------------------------------------------------- */
/* hamBurger */
/* -------------------------------------------------- */

.hamBurger {
	width: 55px;
	height: 30px;
	position: fixed;
	top: 35px;
	left: 20px;
	z-index: 110;
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 10px;
	cursor: pointer;
}

.hamBurger span {
	width: 100%;
	height: 1px;
	display: block;
	background: #444444;
	transition: transform 0.4s ease-in-out, opacity 0.4s ease-in-out, width 0.4s ease-in-out;
}

.hamBurger span:last-child {
	width: 35px;
	transition: all 0.1s ease-in-out 0s;
}

.hamBurger:hover span:last-child {
	width: 100%;
}

.hamBurger.isOpen span:first-child {
	transform: translateY(1.1rem) rotate(25deg);
}

.hamBurger.isOpen span:nth-child(2) {
	opacity: 0;
}

.hamBurger.isOpen span:last-child {
	width: 100%;
	transform: translateY(-1.1rem) rotate(-25deg);
}

#headerLogo {
	width: 200px;
	margin-inline: auto;
	aspect-ratio: 269 / 67;
	grid-column: 2;
}

#headerLogo img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}


#headerNav {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 10px;
	justify-self: end;
	grid-column: 3;
}

#headerNavList {
	display: flex;
	gap: 30px;
}


.headerNavLink {
	padding-block: 10px;
	font-size: 1.6rem;
	font-weight: 500;
}

/* -------------------------------------------------- */
/* title */
/* -------------------------------------------------- */


/* .tit1（見出し1：英字 ::before + 日本語） */

.tit1 {
	display: flex;
	flex-direction: column;
	gap: 5px;
	font-size: 2.2rem;
	letter-spacing: 0.05em;
	font-weight: 500;
}

.tit1::before {
	display: block;
	font-size: 5rem;
	font-weight: 400;
	letter-spacing: 0.05em;
	font-family: var(--font-family-en);
	content: attr(data-en);
	line-height: 1;
}

.tit2 {
	font-size: 3rem;
	font-weight: 500;
	letter-spacing: 0.075em;
	color: #998A54;
}

.tit3 {
	padding-bottom: 30px;
	font-size: 3rem;
	font-family: var(--font-family-main);
	font-weight: 500;
	color: #444444;
	letter-spacing: 0.08em;
	line-height: 1.4;
}

.txt3 {
	font-size: 2.6rem;
	line-height: 1.7;
	font-weight: 600;
	letter-spacing: 0.075em;
	color: #444444;
}

/* -------------------------------------------------- */
/* fixedCv */
/* -------------------------------------------------- */

#fixedCv {
	/* width: min(100%, 540px); */
	height: 70px;
	position: fixed;
	bottom: 0;
	right: 0;
	display: flex;
	align-items: center;
	z-index: 1000;
}

.fixedCvBtn {
	height: 100%;
	padding: 15px;
	display: flex;
	align-items: center;
	gap: 5px;
	text-decoration: none;
}

.fixedCvBtn .fixedCvTxt {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	color: #FFFFFF;
	text-align: center;
}

.fixedCvBtnChat {
	width: 300px;
	position: relative;
	overflow: hidden;
	isolation: isolate;
	background: transparent;
}

.fixedCvBtnChat::before,
.fixedCvBtnChat::after {
	position: absolute;
	inset: 0;
	content: "";
	transition: opacity 0.6s ease;
	z-index: -1;
}

/* `.btn1Link` と同じ：通常時に見せたい面 */
.fixedCvBtnChat::after {
	background: linear-gradient(45deg, #434039 0%, #121212 99%);
	opacity: 1;
}

/* 反転面（下地） */
.fixedCvBtnChat::before {
	background: linear-gradient(225deg, #434039 0%, #121212 99%);
	opacity: 1;
}

.fixedCvBtnChat:hover::after {
	opacity: 0;
}

.fixedCvBtnReserve {
	width: 250px;
	position: relative;
	overflow: hidden;
	isolation: isolate;
	background: transparent;
}

.fixedCvBtnReserve::before,
.fixedCvBtnReserve::after {
	position: absolute;
	inset: 0;
	content: "";
	transition: opacity 0.6s ease;
	z-index: -1;
}

/* 通常時：先に表示されている背景 */
.fixedCvBtnReserve::after {
	background: linear-gradient(159deg, #C3A86C 0%, #9B8449 99%);
	opacity: 1;
}

/* 下地：反転グラデ */
.fixedCvBtnReserve::before {
	background: linear-gradient(-21deg, #C3A86C 0%, #9B8449 99%);
	opacity: 1;
}

.fixedCvBtnReserve:hover::after {
	opacity: 0;
}

.fixedCvIcon {
	width: 30px;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #FFFFFF;
}

.fixedCvIcon img {
	width: 100%;
	object-fit: contain;
}


.fixedCvSub {
	width: 100%;
	font-size: 1.2rem;
	line-height: 1.5;
	letter-spacing: 0.05em;
}

.fixedCvMain {
	width: 100%;
	font-size: 1.7rem;
	font-weight: 600;
}

/* -------------------------------------------------- */
/* reservePopup */
/* -------------------------------------------------- */
.reservePopup {
	padding: 100px 125px;
	position: relative;
	background: #f9f8f4;
	font-family: var(--font-family-main);
}

/* 閉じるボタン（コンテンツ内に配置してアニメーションと同期） */
.reservePopupClose {
	width: 5.5rem;
	height: 2.5rem;
	padding: 0;
	position: absolute;
	top: 2rem;
	left: 2rem;
	border: none;
	background: transparent;
	font-size: 0;
	line-height: 0;
	color: transparent;
	text-shadow: none;
	cursor: pointer;
}

.reservePopupClose::before,
.reservePopupClose::after {
	width: 5.5rem;
	height: 1px;
	position: absolute;
	left: 50%;
	top: 50%;
	transform-origin: center;
	background: #444444;
	content: "";
}

.reservePopupClose::before {
	transform: translate(-50%, -50%) rotate(25deg);
}

.reservePopupClose::after {
	transform: translate(-50%, -50%) rotate(-25deg);
}

.reservePopupInner {
	display: flex;
	gap: 100px;
	justify-content: center;
}

.reservePopupCol {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: flex-end;
	gap: 20px;
}

.reservePopupLogo {
	width: 145px;
	aspect-ratio: 145 / 34;
}



.reservePopupLogo img {
	width: 100%;
	object-fit: contain;
}

.reservePopupClinic {
	font-size: 2.6rem;
	font-weight: 600;
	line-height: 1;
	letter-spacing: 0.05em;
	color: inherit;
}


.reservePopupTel {
	display: flex;
	align-items: center;
	gap: 5px;
	color: #998A54;
	font-size: 3rem;
	font-weight: 500;
	line-height: 1.2;
	text-decoration: none;
	transition: color 0.3s;
	transition: color 0.3s;
}

.reservePopupTel .icon {
	width: 25px;
	display: grid;
	place-items: center;
}

.reservePopupTel .icon svg {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.reservePopupTel a:hover {
	color: #444444;
}

.reservePopupTime {
	font-size: 1.8rem;
	line-height: 1.7;
	letter-spacing: 0.05em;
	color: inherit;
}

.reservePopupBtns {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.reservePopupBtn {
	width: 250px;
	min-height: 65px;
	padding: 10px 10px;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	position: relative;
	background-image: url(../img/common/bg_btn_black.png);
	background-size: 100% 100%;
	background-position: center;
	background-repeat: no-repeat;
	color: #FFFFFF;
	text-decoration: none;
	transition: opacity 0.3s;
}

.reservePopupBtn:hover {
	color: #FFFFFF;
	opacity: 0.9;
}

.reservePopupBtnIcon {
	display: flex;
	align-items: center;
}

.reservePopupBtnIcon img {
	width: 25px;
	height: 25px;
	object-fit: contain;
}

.reservePopupBtnTxt {
	flex: 0 0 auto;
	font-size: 1.9rem;
	font-weight: 500;
	line-height: 1.2;
	letter-spacing: 0.075em;
	color: #FFFFFF;
}

.reservePopupTxt {
	width: fit-content;
	padding: 25px;
	position: absolute;
	top: 0;
	right: 0;
}

.reservePopupTxtLink {
	display: flex;
	align-items: center;
	gap: 5px;
	text-decoration: none;
	color: #444444;
	font-size: 1.6rem;
	font-weight: 500;
	line-height: 1.2;
	letter-spacing: 0.05em;
	transition: all 0.3s;
}

.reservePopupTxtIcon {
	width: 30px;
	height: 20px;
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
}

.reservePopupTxtIconImg {
	width: 14px;
	height: auto;
	display: block;
}

.reservePopupTxtLink:hover {
	color: #ae9b62;
}





/* Lity */
html.lity-active {
	overflow: hidden;
}

html.lity-active body {
	width: 100%;
	overflow: hidden;
	position: fixed;
}

/* -------------------------------------------------- */
/* Lity */
/* -------------------------------------------------- */
.lity {
	min-height: 100vh;
	min-height: 100dvh;
	background: rgba(0, 0, 0, 0.5);
}

/* reservePopup はコンテンツ内の reservePopupClose を使用（アニメーション同期のため） */
.lity-inline .lity-close {
	display: none !important;
}

.lity .lity-close {
	width: 5.5rem;
	height: 2.5rem;
	padding: 0;
	position: absolute;
	top: -5rem;
	left: 0;
	right: auto;
	border: none;
	background: transparent;
	font-size: 0;
	line-height: 0;
	color: transparent;
	text-shadow: none;
}

.lity .lity-close::before,
.lity .lity-close::after {
	width: 5.5rem;
	height: 1px;
	position: absolute;
	left: 50%;
	top: 50%;
	transform-origin: center;
	background: #FFFFFF;
	content: "";
}

.lity .lity-close::before {
	transform: translate(-50%, -50%) rotate(45deg);
}

.lity .lity-close::after {
	transform: translate(-50%, -50%) rotate(-45deg);
}

/* .lity-container {
	width: min(100%, 1015px);
} */

.lity-image img {
	max-width: 750px;
}

/* -------------------------------------------------- */
/* #menu（ドロワー） */
/* -------------------------------------------------- */

body.drawer-open {
	overflow: hidden;
	scrollbar-gutter: stable;
}

#menu.isScrollable .drawerBtn {
	padding-bottom: 40px;
}

.drawer {
	height: 100svh;
	max-height: 100svh;
	padding: 0;
	position: fixed;
	top: 0;
	left: 0;
	z-index: 100;
	background: #f9f8f4;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: opacity 0.3s, visibility 0.3s;
}

.drawer.isOpen {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}


.drawer.isOpen::-webkit-scrollbar {
	display: none;
}

#container.isMenuOpen {
	overflow: hidden;
}

.drawerOverlay {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	display: none;
	z-index: 99;
	background: rgba(0, 0, 0, 0.5);
	cursor: pointer;
	pointer-events: none;
	transition: opacity 0.3s;
}

body.drawer-open .drawerOverlay {
	display: block;
	pointer-events: auto;
}

body.drawer-open #headerLogo,
body.drawer-open #headerNav {
	pointer-events: none;
}

#container.isMenuOpen #header {
	z-index: 100;
}

#container.isMenuOpen #fixedCv {
	z-index: 99;
}

.drawerInner {
	width: 100%;
	height: 100%;
	max-width: 1320px;
	margin-inline: auto;
	display: flex;
	flex-direction: column;
	box-sizing: border-box;
}

.drawerCols {
	display: flex;
	align-items: stretch;
	flex: 1;
}

.drawerCol {
	width: calc(1000px / 4);
	display: none;
	border-left: 1px solid rgba(34, 34, 34, 0.15);
	overflow: auto;
}

.drawerCol:first-child {
	display: flex;
	flex-direction: column;
	border-left: none;
}

.drawerCol.isActive {
	display: block;
	height: 100vh;
}

.drawerList {
	padding-top: 100px;
	padding-bottom: 50px;
}

.drawerItem {
	font-size: 1.4rem;
	font-weight: 400;
	line-height: 1.4;
	color: #444444;
}

.drawerItem .small {
	font-size: 1.2rem;
}

.drawerItemSub {
	font-size: 1.4rem;
	font-weight: 400;
}

.drawerLink,
.drawerButton {
	width: 100%;
	padding: 10px 12% 10px 6%;
	position: relative;
	display: block;
	font-size: inherit;
	font-weight: inherit;
	line-height: inherit;
	font-family: var(--font-family-main);
	text-align: left;
	color: #444444;
	border: none;
	background: transparent;
	cursor: pointer;
	transition: all 0.3s ease-in-out 0s;
}

.drawerLink::before {
	width: 0.8rem;
	height: 0.8rem;
	margin: auto 0;
	position: absolute;
	top: 0;
	bottom: 0;
	right: 2.2rem;
	transform: rotate(45deg);
	border-top: 1px solid currentColor;
	border-right: 1px solid currentColor;
	content: "";
}

.drawerItemChildren .drawerButton::before,
.drawerItemChildren .drawerButton::after {
	position: absolute;
	top: 50%;
	right: 2rem;
	background: currentColor;
	content: "";
}

.drawerItemChildren .drawerButton::before {
	width: 1.1rem;
	height: 1px;
	transform: translateY(-50%);
}

.drawerItemChildren .drawerButton::after {
	width: 1px;
	height: 1.1rem;
	right: calc(2rem + 0.5rem);
	transform: translateY(-50%);
}

.drawerItemChildren .drawerButton.isOpen::after {
	display: none;
}

.drawerColFourth .drawerLink,
.drawerColFourth .drawerButton {
	font-size: 1.4rem;
	font-weight: 400;
	line-height: 1.4;
}

.drawerColFourth .drawerItem+.drawerItem {
	border-top: none;
}

.drawerLink:hover,
.drawerButton:hover {
	background: #f8f5ed;
	color: #998A54;
}

.drawerLink:hover::before {
	border-color: currentColor;
}

.drawerButton.isOpen {
	background: #f8f5ed;
	color: #998A54;
}

.drawerButton.isOpen::before,
.drawerButton.isOpen::after {
	background: currentColor;
}

.drawerBtn {
	width: 86%;
	margin: 0 auto;
}

.drawerBtnLink {
	padding: 15px;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 20px;
	position: relative;
	overflow: hidden;
	isolation: isolate;
	color: #FFFFFF;
	text-decoration: none;
	letter-spacing: 0.05em;
}

.calendarIcon {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: 5px;
}

.calendarIcon::before {
	content: "";
	width: 26px;
	height: 23px;
	background: url(../img/common/icon_calendar.svg) 0 0 no-repeat;
	background-size: contain;
	display: inline-block;
}

.drawerBtnLink::before,
.drawerBtnLink::after {
	position: absolute;
	inset: 0;
	content: "";
	transition: opacity 0.6s ease;
	z-index: -1;
}

.drawerBtnLink::after {
	background: linear-gradient(159deg, #C3A86C 0%, #9B8449 99%);
	opacity: 1;
}

.drawerBtnLink::before {
	background: linear-gradient(-21deg, #C3A86C 0%, #9B8449 99%);
	opacity: 1;
}

.drawerBtnLink:hover::after {
	opacity: 0;
}

.drawerBtnLink .btnText {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 5px;
	color: #FFFFFF;
}

.drawerBtnLink .btnText .small {
	font-size: 1rem;
	font-weight: 500;
	line-height: 1.7;
	letter-spacing: 0.1em;
}

.drawerBtnLink .btnText .large {
	font-size: 1.8rem;
	font-weight: bold;
	line-height: 1.2;
	letter-spacing: 0.1em;
}

.drawerBtnLink .btnIcon {
	width: 30px;
	height: 30px;
	display: flex;
	align-items: center;
	justify-content: center;
	border: 1px solid #FFFFFF;
	border-radius: 50%;
	overflow: visible;
}

/* ドロワー内予約ボタン矢印アイコン画像 */
.drawerBtnArrowIconImg {
	width: 12px;
	height: auto;
	display: block;
}

@media screen and (min-width: 1025px) {
	.drawerBack {
		display: none;
	}
}	

@media screen and (max-width: 1024px) {

	/* hamBurger */
	.hamBurger {
		width: 40px;
		height: 40px;
		gap: 6px;
		top: 20px;
		left: 5%;
		justify-content: center;
	}

	.hamBurger span {
		width: 4rem;
		height: 1px;
	}

	.hamBurger span:last-child {
		width: 3.2rem;
		margin-right: auto;
	}

	.hamBurger.isOpen span:first-child {
		transform: translateY(0.7rem) rotate(25deg);
	}

	.hamBurger.isOpen span:nth-child(2) {
		opacity: 0;
	}

	.hamBurger.isOpen span:last-child {
		width: 4rem;
		transform: translateY(-0.7rem) rotate(-25deg);
	}

	/* #menu（ドロワー） */
	.drawer {
		width: 100%;
		height: 100svh;
		padding: 0 5% 0;
		overflow: hidden;
		background: #F4F1E7;
	}

	/* SP：ドロワーを閉じている間はドロワー本体とオーバーレイを完全に無効化 */
	body:not(.drawer-open) .drawer,
	body:not(.drawer-open) .drawerOverlay {
		display: none !important;
		pointer-events: none !important;
	}

	body.drawer-open .drawer,
	body.drawer-open .drawerOverlay {
		display: block;
		pointer-events: auto;
	}

	.drawerInner {
		height: 100%;
		padding-left: 0;
	}

	.drawerCols {
		width: 100%;
		height: 100%;
		min-width: 100%;
		position: relative;
		display: block;
		overflow: hidden;
	}

	.drawerCol {
		width: 100%;
		min-width: 100%;
		height: 100%;
		position: absolute;
		top: 0;
		left: 0;
		display: block;
		background: #F4F1E7;
		border-left: none;
		overflow-y: auto;
		pointer-events: none;
		opacity: 0;
		visibility: hidden;
		transform: translateY(1rem);
		transition: opacity 0.4s ease, transform 0.4s ease, visibility 0.4s ease;
	}

	.drawerCol:first-child {
		opacity: 1;
		visibility: visible;
		transform: translateY(0);
		pointer-events: auto;
	}

	.drawerCol.isActive {
		opacity: 1;
		visibility: visible;
		transform: translateY(0);
		pointer-events: auto;
	}

	.drawerList {
		padding-top: 70px;
	}

	.drawerLink,
	.drawerButton {
		width: 100%;
		min-height: 4.8rem;
		padding: 20px 36px 20px 0;
		display: flex;
		align-items: center;
	}

	.drawerCol:first-child .drawerLink,
	.drawerCol:first-child .drawerButton {
		padding-left: 0;
	}

	.drawerCol:not(:first-child) .drawerLink,
	.drawerCol:not(:first-child) .drawerButton {
		padding-left: 0;
	}

	.drawerItemSub .drawerLink,
	.drawerItemSub .drawerButton {
		padding-left: 10px;
		font-size: 1.35rem;
		font-weight: 400;
	}

	.drawerCol:not(:first-child) .drawerItemSub .drawerLink,
	.drawerCol:not(:first-child) .drawerItemSub .drawerButton {
		padding-left: 30px;
		font-size: 1.35rem;
		font-weight: 400;
	}

	.drawerLink::before {
		right: 1rem;
	}

	.drawerItemChildren .drawerButton::before,
	.drawerItemChildren .drawerButton::after {
		right: 0.5rem;
	}

	.drawerItemChildren .drawerButton::after {
		right: calc(0.4rem + 0.6rem);
	}


	.drawerBack {
		width: 100%;
		padding: 18px 0 18px 20px;
		position: relative;
		display: flex;
		align-items: center;
		font-size: 1.5rem;
		font-family: var(--font-family-main);
		color: #998A54;
		border: none;
		background: transparent;
		cursor: pointer;
	}

	.drawerBack::before {
		width: 0.8rem;
		height: 0.8rem;
		position: absolute;
		top: 50%;
		left: 0.1rem;
		transform: translateY(-50%) rotate(-135deg);
		border-top: 1px solid currentColor;
		border-right: 1px solid currentColor;
		content: "";
	}

	.drawerBtn {
		width: 100%;
		max-width: 30rem;
		margin: 25px auto 0;
		padding: 0 0 40px 0;
	}

	.drawerBtnLink .btnText .small {
		font-size: 0.85rem;
	}

	.drawerBtnLink .btnText .large {
		font-size: 1.5rem;
	}
}

/* -------------------------------------------------- */
/* footer */
/* -------------------------------------------------- */
#footer {
	padding: 100px 0 0;
	background: #f9f8f4;
}

#footer .inner {
	padding-bottom: 100px;
}

#footerNavList1 {
	padding-bottom: 20px;
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	border-bottom: 1px solid #E6E1CC;
}

.footerNavTit {
	width: 100%;
	padding: 0 25px 0 0;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 5px;
	border: none;
	background: transparent;
	font-size: 1.8rem;
	font-weight: 500;
	font-family: var(--font-family-main);
	letter-spacing: 0.01em;
	color: #998A54;
	text-align: left;
	cursor: pointer;
	position: relative;
}

#footerNavList1 li:last-child .footerNavTit {
	padding-right: 0;
}

.footerNavTitText {
	flex: 1;
	color: #444444;
	transition: all 0.3s ease-in-out 0s;
}

.footerNavTit:hover .footerNavTitText {
	color: #998A54;
}

.footerNavItem.isOpen .footerNavTitText {
	color: #998A54;
}

.footerNavTit::before,
.footerNavTit::after {
	content: "";
	position: absolute;
	background: #998A54;
	transition: transform 0.3s, opacity 0.3s;
}

.footerNavTit::before {
	width: 1.5rem;
	height: 1px;
	top: 50%;
	right: 2.75rem;
	transform: translateY(-50%);
}

.footerNavTit::after {
	width: 1px;
	height: 1.5rem;
	top: 50%;
	right: 3.45rem;
	transform: translateY(-50%);
}

.footerNavItem.isOpen .footerNavTit::after {
	transform: translateY(-50%) rotate(90deg);
	opacity: 0;
}

.footerNavBody {
	padding: 0 0 15px;
	display: none;
}

.footerNavBody.isOpen {
	display: block;
}

.footerNavChild {
	list-style: none;
}

.footerNavChild .small {
	font-size: 1.3rem;
	font-weight: 600;
	line-height: 2;
	letter-spacing: 0.05em;
}

.footerNavChild>li {
	padding-block: 25px;
	margin-right: 25px;
	border-bottom: 1px solid #DDDCDC;
	font-size: 1.6rem;
}

.footerNavChild>li:not(:has(.footerNavGrandchild)) {
	padding-bottom: 25px;
	margin-right: 25px;
	border-bottom: 1px solid #DDDCDC;
}

.footerNavChild>li:last-child{
	border-bottom: none;
}

.footerNavChild a {
	color: #444444;
	transition: color 0.3s;
}

.footerNavChild a:hover {
	color: #998A54;
}

.footerNavGrandchild {
	margin-top: 10px;
	padding-left: 15px;
	display: flex;
	flex-direction: column;
	gap: 5px;
	list-style: none;
}


.footerNavGrandchild li {
	margin-bottom: 5px;
	font-size: 1.4rem;
	line-height: 1.5;
	letter-spacing: 0.05em;
}

.footerNavGrandchild li a {
	position: relative;
	transition: color 0.3s;
}

.footerNavGrandchild li a::before {
	width: 0.8rem;
	height: 1px;
	position: absolute;
	top: 50%;
	left: -1.2rem;
	transform: translateY(-50%);
	display: block;
	background: #444444;
	content: "";
}

#footerNavList2 {
	padding: 0;
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	list-style: none;
}

#footerNavList2 li {
	list-style: none;
	border-bottom: 1px solid #E6E1CC;
	font-size: 1.8rem;
	font-weight: 500;
	line-height: 1.2;
	letter-spacing: 0.075em;
}

@media screen and (min-width: 768px) {
	#container.is-active #footerNavList2 li {
		border-top: 1px solid #E6E1CC;
	}

}

#footerNavList2 li a {
	padding: 35px 0;
	margin-left: 15px;
	display: block;
	position: relative;
	color: #444444;
	transition: color 0.3s;
}

#footerNavList2 li a:hover {
	color: #998A54;
}

#footerNavList2 li a::before {
	width: 3px;
	height: 3px;
	position: absolute;
	top: 50%;
	left: -1.2rem;
	transform: translateY(-50%);
	display: block;
	background: #998A54;
	content: "";
}

#footerNavList3 {
	margin-top: 25px;
	display: grid;
	grid-template-columns: repeat(4, 1fr);
}

.footerDetailList li {
	list-style: none;
	font-size: 1.6rem;
	font-weight: 500;
	line-height: 1.2;
	letter-spacing: 0.075em;
}

.footerDetailList li a {
	padding: 10px;
	display: block;
	color: #444444;
	transition: color 0.3s;
}

.footerDetailList li span {
	padding: 10px;
	display: block;
}

.footerDetailList li a:hover {
	color: #998A54;
}


.footerDetailListChild {
	margin-left: 20px;
}

.footerDetailListChild li {
	list-style: none;
	font-size: 1.4rem;
	line-height: 1.5;
	letter-spacing: 0.05em;
}

.footerDetailListChild li a {
	padding-block: 10px;
	display: block;
	position: relative;
	color: #444444;
	transition: color 0.3s;
}

.footerDetailListChild li a::before {
	width: 0.8rem;
	height: 1px;
	position: absolute;
	top: 50%;
	left: -0.8rem;
	transform: translateY(-50%);
	display: block;
	background: #444444;
	content: "";
}

#footerSns{
	padding: 100px 0 0;
	position: relative;
	background: #FAF8EF;
}

#pagetopBtn {
	width: 100px;
	display: grid;
	place-items: center;
	position: absolute;
	bottom: 100px;
	right: 45px;
}

#pagetopBtn img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

#footerSnsTit {
	margin: 0 0 20px;
	font-size: 2rem;
	font-weight: 600;
	color: #444444;
}

#footerSnsRow {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 0;
	align-items: center;
}

.footerSnsCell {
	padding: 15px 0;
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 10px;
	border-bottom: 1px solid #cbcbcb;
}

.footerSnsItem {
	display: inline-flex;
	align-items: center;
	gap: 35px;
}

.footerSnsItemSub {
	display: inline-flex;
	align-items: center;
}

.footerSnsName {
	min-width: 5em;
	font-size: 1.6rem;
	font-weight: bold;
	color: #444444;
}

.footerSnsIcons {
	display: inline-flex;
	align-items: center;
	gap: 10px;
}

.footerSnsIcon {
	display: flex;
	align-items: center;
	line-height: 1;
}

.footerSnsIcon img,
.footerSnsIcon svg {
	width: 20px;
	height: 20px;
	flex-shrink: 0;
	display: block;
	transition: opacity 0.3s;
}

.footerSnsIcon img {
	object-fit: contain;
}

.footerSnsIcon:hover img,
.footerSnsIcon:hover svg {
	opacity: 0.7;
}

#footerBottom {
	padding: 50px 20px 100px;
	background: #FBFAF8;
	text-align: center;
}

#footerLanguages {
	margin-bottom: 40px;
}

#footerLangList {
	padding: 0;
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: 15px 20px;
	list-style: none;
}

#footerLangList a {
	font-size: 1.4rem;
	color: #444444;
	transition: color 0.3s;
}

#footerLangList a:hover {
	color: #ae9b62;
}

#copyright {
	font-size: 1.2rem;
	color: rgba(34, 34, 34, 0.8);
}



/* ================================================== */
/* caseSlider（共通コンポーネント）                   */
/* ================================================== */

/* 症例パネル：display ではなく visibility + opacity で切り替え（Swiper が安定） */
.caseSliderPanel {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	z-index: 0;
	visibility: hidden;
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.25s ease;
}

.caseSliderPanel.active {
	position: relative;
	z-index: 1;
	visibility: visible;
	opacity: 1;
	pointer-events: auto;
}

.caseSlider {
	width: 100%;
	position: relative;
	overflow: visible;
}

.caseSlider .swiper-wrapper {
	display: flex;
	align-items: stretch;
	justify-content: flex-start;
}

.caseSlider .swiper-slide {
	width: 300px;
	height: auto;
	flex-shrink: 0;
}

.caseSliderCard {
	height: 100%;
	display: block;
	background: #FFFFFF;
	box-shadow: 0 0 1rem 0 rgba(0, 0, 0, 0.07);
	text-decoration: none;
	color: inherit;
}

.caseSliderCardImg {
	margin-bottom: 10px;
	position: relative;
	overflow: hidden;
	aspect-ratio: 1165/825;
}

.caseSliderCardImg figure,
.caseSliderCardImg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.4s ease;
}

.caseSliderCard:hover .caseSliderCardImg img {
	transform: scale(1.1);
}

.caseSliderCardBadge {
	padding: 5px 10px;
	position: absolute;
	top: 0;
	right: 0;
	background-color: #222222;
	color: #FFFFFF;
	font-size: 1.2rem;
	display: flex;
	align-items: center;
	gap: 10px;
}

.caseSliderCardBody {
	padding: 25px 20px;
}

.caseSliderCardDate {
	margin-bottom: 5px;
	display: block;
	font-size: 1.2rem;
	color: #444444;
}

.caseSliderCardTit {
	margin-bottom: 15px;
	font-size: 1.6rem;
	font-weight: 500;
	line-height: 1.5;
	letter-spacing: 0.075em;
}

.caseSliderCardTxt {
	margin-bottom: 10px;
	font-size: 1.2rem;
	color: #444444;
	line-height: 1.5;
}

.caseSliderCardTxt pre {
	white-space: wrap;
}

.caseSliderCardTags {
	padding: 10px 15px;
	background: #F3F0E5;
	color: #444444;
	font-size: 1.2rem;
	font-weight: 500;
	line-height: 1.5;
	letter-spacing: 0.075em;
}

.caseSliderCardTag {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
}

/* casesContentInner / caseSliderArea（症例スライダー共通） */
.casesContentInner {
	min-height: 320px;
	position: relative;
	overflow: visible;
}

.casesContentInner .caseSliderPanelsWrap {
	min-height: 320px;
	position: relative;
}

.caseSliderArea {
	position: relative;
	min-height: 300px;
}

.caseSlider .swiper-pagination {
	bottom: -40px;
}

.is-few-slides .swiper-wrapper {
	justify-content: center;
}

.noCases {
	position: absolute;
	top: 50%;
	left: 50%;
	-webkit-transform: translate(-50%, -50%);
	transform: translate(-50%, -50%);
	font-size: 2rem;
}

/* PC：slidesPerView:auto 用のスライド幅、ナビボタン位置 */
@media screen and (min-width: 1025px) {
	#js-topCases .caseSlider .swiper-slide {
		width: 280px;
	}
}

/* TAB：ナビは左右に余白のみ */
@media screen and (min-width: 768px) and (max-width: 1024px) {
	.caseSliderNav {
		padding: 0 20px;
	}
}

/* -------------------------------------------------- */
/* Swiper共通スタイル */
/* -------------------------------------------------- */

.swiperBtnPrev{
	width: 70px;
	height: 70px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: #FFFFFF;
	border: 1px solid #C9C2B1;
	cursor: pointer;
	position: absolute;
	top: 50%;
	left: 10%;
	z-index: 4;
	-webkit-transform: translate(0, -50%);
	transform: translate(0, -50%);
}

.swiperBtnNext {
	width: 70px;
	height: 70px;
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 4;
	border-radius: 50%;
	background: #FFFFFF;
	border: 1px solid #C9C2B1;
	cursor: pointer;
	position: absolute;
	top: 50%;
	right: 10%;
	-webkit-transform: translate(0, -50%);
	transform: translate(0, -50%);
}

.swiperBtnPrevIcon,
.swiperBtnNextIcon {
	width: 48px;
	height: 48px;
	display: flex;
	align-items: center;
	justify-content: center;
}

/* 画像アイコン用 */
.swiperBtnIconImg {
	width: 24px;
	height: auto;
	display: block;
}

/* Swiperスクロールバー（共通） */
.topBannerScrollbarWrap,
.caseSliderScrollbarWrap {
	margin-top: 30px;
	padding: 0 20px;
	display: flex;
	justify-content: center;
}

.topBannerScrollbarWrap .topBannerScrollbar,
.topBannerScrollbarWrap .swiper-scrollbar,
.caseSliderScrollbarWrap .caseSliderScrollbar,
.caseSliderScrollbarWrap .swiper-scrollbar {
	width: 600px;
	height: 4px;
	position: relative;
	left: auto;
	bottom: auto;
}

/* Swiper pagination（FV等で使用） */
/* .swiper-pagination-fraction,
.swiper-pagination-custom,
.swiper-horizontal>.swiper-pagination-bullets,
.swiper-pagination-bullets.swiper-pagination-horizontal {
	width: 200px;
	position: absolute;
	bottom: 2rem;
	left: 5%;
} */

.fvPagination {
	padding: 0 5%;
	margin-bottom: 10px;
	display: flex;
	align-items: center;
	justify-content: flex-start;
	gap: 28px;
}

.fvPagination .swiper-pagination-bullet {
	width: 10px;
	height: 10px;
	margin: 0;
	position: relative;
	box-sizing: border-box;
	background: transparent;
	border: 1px solid #EEEDE6;
	border-radius: 50%;
	opacity: 1;
}

.fvPagination .swiper-pagination-bullet::after {
	width: 2rem;
	height: 1px;
	position: absolute;
	top: 50%;
	left: calc(100% + 0.8rem);
	transform: translateY(-50%);
	background: #EEEDE6;
	content: "";
}

.fvPagination .swiper-pagination-bullet:last-child::after {
	display: none;
}

.fvPagination .swiper-pagination-bullet-active {
	background: transparent;
	border-color: #ae9b62;
}

/* Swiper共通：SP */
@media screen and (max-width: 767px) {

	.swiperBtnNext {
		width: 40px;
		height: 40px;
		border: 1px solid #C9C2B1;
		right: 4%;
		opacity: 0.7;
	}

	.swiperBtnPrev {
		width: 40px;
		height: 40px;
		border: 1px solid #C9C2B1;
		left: 4%;
		opacity: 0.7;
	}

	.swiperBtnIconImg {
		width: 15px;
		height: auto;
		display: block;
	}
}

/* -------------------------------------------------- */
/* campaignSlider（共通パーツ） */
/* -------------------------------------------------- */
.campaignSlider {
	margin: 0 auto;
	position: relative;
}

.campaignSlider .swiperBtnWrap {
	width: calc(100% + 70px);
	padding: 0;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	display: flex;
	align-items: center;
	justify-content: space-between;
	pointer-events: none;
}

.campaignSlider .swiperBtnPrev,
.campaignSlider .swiperBtnNext {
	border: 1px solid #C9C2B1;
	pointer-events: auto;
}

.campaignSliderPanel {
	display: none;
}

.campaignSliderPanel.isActive {
	display: block;
}

.campaignSliderSwiper {
	position: relative;
	overflow: visible;
}

.campaignSliderSwiper .swiper-wrapper {
	align-items: stretch;
}

.campaignSliderSwiper .swiper-slide {
	height: 430px;
	width: 400px;
}

.campaignSliderCard {
	height: 100%;
	display: block;
	text-decoration: none;
	color: inherit;
}

.campaignSliderCard a {
	transition: all 0.3s ease-in-out 0s;
}

.campaignSliderCard a:hover {
	opacity: 0.7;
}

.campaignSliderCardImg {
	padding-top: 30px;
	position: relative;
	overflow: hidden;
	width: 100%;
	height: 100%;
}

.campaignSliderCardImg img {
	width: 100%;
	height: 100%;
	display: block;
	object-fit: contain;
}

.campaignSliderCardTab {
	display: flex;
	flex-wrap: wrap;
	position: absolute;
	top: 0;
	left: 0;
	font-weight: 600;
	letter-spacing: 0.075em;
}

.campaignSliderTag {
	width: max-content;
	padding: 2px 10px;
	background-color: #FFFFFF;
	border: 1px solid #ae9b62;
	color: #ae9b62;
	font-size: 1.2rem;
	font-weight: 400;
	position: absolute;
	top: 0px;
	left: 0;
	display: block;
}

#campaign .swiper-pagination {
	bottom: -40px;
}

.swiper-pagination-bullet-active {
	background: #AE9B62;
}

/* campaignSlider：レスポンシブ */
@media screen and (min-width: 768px) and (max-width: 1024px) {
	.campaignSlider .swiperBtnWrap {
		width: 100%;
		padding-inline: 20px;
	}
}

@media screen and (max-width: 767px) {
	.campaignSlider .swiperBtnWrap {
		width: 100%;
		padding-inline: 20px;
	}
}

/* campaignセクション（共通パーツ） */
#campaign {
	padding-bottom: 190px;
}

.campaignHead {
	width: 100%;
	margin-inline: auto;
	margin-bottom: 40px;
	display: flex;
	justify-content: space-between;
	align-items: center;
}

.campaignHead .tit3 {
	padding-bottom: 0;
}

/* campaignHead：レスポンシブ */
@media screen and (min-width: 768px) and (max-width: 1024px) {
	.campaignHead {
		flex-direction: column;
		align-items: flex-start;
		padding-inline: 20px;
	}

	.campaignContent {
		align-self: flex-end;
	}
}

@media screen and (max-width: 767px) {

	#campaign .campaignSlider {
		margin-inline: -20px;
	}

	.campaignHead {
		margin-bottom: 20px;
		flex-direction: column;
		align-items: flex-start;
		gap: 10px;
	}

	.campaignTit {
		font-size: 2rem;
	}

	.campaignContent {
		align-self: flex-end;
	}
}



/* -------------------------------------------------- */
/* TAB&SP */
/* -------------------------------------------------- */
@media screen and (max-width: 1024px) {
	/* -------------------------------------------------- */
	/* 共通パーツ */
	/* -------------------------------------------------- */
	.inner {
		width: 100%;
		margin: 0 auto;
		padding: 0 5%;
	}

	/* タイトル */
	/* -------------------------------------------------- */
	/* commonTit01 */
	.commonTit01 {
		margin-bottom: 20px;
		font-size: 2.2rem;
	}

	/* commonTit02 */
	.commonTit02 {
		margin-bottom: 20px;
		font-size: 2.2rem;
	}

	/* テキスト */
	/* -------------------------------------------------- */
	/* commonTxt01 */
	.commonTxt01 {
		margin-bottom: 30px;
		font-size: 1.5rem;
		line-height: 2;
	}

	/* 注釈 */
	/* -------------------------------------------------- */
	/* commonNote01 */
	.commonNote01 {
		font-size: 1.4rem;
	}
	.commonNote01.isSmall {
		font-size: 1.2rem;
	}

	/* リスト */
	/* -------------------------------------------------- */
	/* commonList01 */
	.commonList01Item {
		font-size: 1.4rem;
	}

	/* .commonList02 */
	.commonList02 {
		grid-gap: 10px;
	}

	.commonList02Item {
		font-size: 1.4rem;
	}

	.commonList02Item a {
		min-height: 60px;
		padding: 7px 45px 7px 15px;
	}
	.commonList02Item a::after {
		width: 30px;
		height: 30px;
		right: 10px;
	}

	/* テーブル */
	/* -------------------------------------------------- */
	/* commonTable01 */
	.commonTable01 th, .commonTable01 td {
		padding: 15px;
	}

	.commonTable01 th {
		font-size: 1.4rem;
	}

	.commonTable01 td {
		font-size: 1.2rem;
	}

	/* commonTable02 */
	.commonTable02 th, .commonTable02 td {
		padding: 15px;
	}

	.commonTable02 th {
		font-size: 1.4rem;
	}

	.commonTable02 td {
		font-size: 1.2rem;
	}

	/* faq */
	/* -------------------------------------------------- */
	/* commonFaq01 */
	.commonFaq01 {
		margin-bottom: 80px;
		font-size: 1.5rem;
	}

	.commonFaq01Tit::after,
	.commonFaq01Content::after {
		left: 20px;
	}

	.commonFaq01Tit {
		min-height: 60px;
		padding: 15px 60px 15px 50px;
	}

	/* 矢印 */
	.commonFaq01Tit .btn {
		width: 35px;
		height: 35px;
		right: 15px;
	}
	.commonFaq01Tit .btn::after {
		top: 35%;
	}

	.commonFaq01Content {
		padding: 20px 20px 20px 50px;
	}
	.commonFaq01Content::after {
		font-size: 1.6rem;
		top: 24px;
	}

	.commonFaq01Content + .commonFaq01Tit {
		margin-top: 20px;
	}

	/* 動画リスト */
	/* -------------------------------------------------- */
	/* commonMovie01 */
	.commonMovie01 {
		grid-template-columns: repeat(2, 1fr);
		grid-gap: 15px;
	}

	/* commonMovie02 */
	.commonMovie02 {
		margin-bottom: 80px;
		grid-template-columns: repeat(2, 1fr);
		grid-gap: 30px 15px;
	}
	.commonMovie02Tit {
		font-size: 1.5rem;
	}

	/* アフターケア */
	/* -------------------------------------------------- */
	.commonCare {
		grid-template-columns: 1fr;
		grid-gap: 30px;
	}

	.commonCareTxt {
		font-size: 1.5rem;
	}

	/* 施術一覧リスト */
	/* -------------------------------------------------- */
	.commonTreatment {
		grid-gap: 20px;
	}

	/* 大きい方のボタン */
	.commonTreatmentItem > a {
		min-height: 90px;
		height: auto;
		padding: 15px 60px 15px 15px;
	}
	.commonTreatmentItem > a::after {
		width: 33px;
		height: 33px;
		right: 15px;
	}

	.commonTreatmentTit {
		font-size: 1.8rem;
	}

	/* （サブリストがある場合の）大きい方のボタン */
	.commonTreatmentItem:has(.commonTreatmentSub) > a {
		min-height: 70px;
	}

	/* サブリスト */
	.commonTreatmentSub {
		width: calc(100% - 30px);
		margin-bottom: 15px;
		grid-gap: 10px;
	}

	.commonTreatmentSubItem {
		font-size: 1.3rem;
	}

	.commonTreatmentSubItem a {
		padding: 8px 35px 8px 15px;
	}
	.commonTreatmentSubItem a::after {
		width: 22px;
		height: 22px;
		right: 10px;
	}

	.commonTreatmentWrap {
		grid-template-columns: 1fr;
		grid-gap: 20px;
	}

	/* カード */
	/* -------------------------------------------------- */
	/* commonCard01 */
	.commonCard01 {
		grid-template-columns: 1fr;
		grid-gap: 30px;
	}

	.commonCard01Item {
		grid-template-columns: 1fr;
		grid-gap: 0;
		padding-right: 0;
	}

	.commonCard01Img img {
		height: auto;
		object-fit: fill;
	}

	.commonCard01TxtBox {
		padding: max(20px, 5%);
	}

	.commonCard01Tit {
		min-height: 45px;
		padding-left: 60px;
		font-size: 1.8rem;
	}
	.commonCard01Tit::after {
		width: 45px;
		height: 45px;
	}

	.commonCard01Txt {
		font-size: 1.5rem;
	}

	/* .commonCard02 */
	.commonCard02Item a {
		padding: max(20px, 5%);
	}

	.commonCard02TxtBox {
		padding-right: 50px;
	}
	.commonCard02TxtBox::after {
		width: 35px;
		height: 35px;
	}

	.commonCard02Tit {
		font-size: 2rem;
	}

	/* .commonCard03 */
	.commonCard03 {
		grid-template-columns: repeat(2, 1fr);
		grid-gap: 30px 15px;
		margin-bottom: 80px;
	}

	.commonCard03Tit {
		font-size: 1.4rem;
	}

	/* header */
	/* -------------------------------------------------- */
	#headerNav {
		display: none;
	}

	.hamBurger {
		display: flex;
		justify-self: start;
	}

	#headerInner {
		padding: 0 5%;
	}

	/* title */
	/* -------------------------------------------------- */
	/* btn */
	.btn1Txt {
		font-size: 1.4rem;
	}

	/* cat */
	.cat {
		font-size: 1.4rem;
	}

	/* スライダー */
	/* -------------------------------------------------- */
	#campaign {
		padding: 0 0 100px;
	}

	/* CTA */
	/* ----------------------------------- */
	#cta {
		padding-bottom: 100px;
	}

	.contactTit {
		font-size: 2.5rem;
	}

}


/* -------------------------------------------------- */
/* TAB(調整) */
/* -------------------------------------------------- */
@media screen and (min-width: 768px) and (max-width: 1024px) {
	#header {
		height: 70px;
	}

	#headerLogo {
		width: 180px;
	}

	.hamBurger {
		top: calc((70px - 35px) / 2);
	}

	.drawerColFourth .drawerLink, .drawerColFourth .drawerButton {
		font-size: 1.8rem;
		font-weight: 400;
		line-height: 1.4;
	}

	.drawerItem {
		font-size: 1.8rem;
	}

	.drawerBack {
		font-size: 1.8rem;
	}

	.drawerItem .small {
		font-size: 1.8rem;
	}

	/* #commonClinic */
	#clinicWrap {
		grid-template-columns: 1fr;
		gap: 50px;
	}

	.clinicPhoto {
		max-width: 100%;
	}

	/* .catBlock */
	.contactWrap {
		width: 100%;
		grid-template-columns: 1fr;
		place-items: center;
		gap: 50px;
	}

	.contactPhoto {
		max-width: 280px;
		flex: 1 1 auto;
	}

	/*フッター*/
	#footer #footerNavList1 {
		grid-template-columns: repeat(2, 1fr);
		gap: 25px 0;
	}

	#footer #footerNavList2 {
		grid-template-columns: repeat(2, 1fr);
	}

	#footer #footerNavList3 {
		grid-template-columns: repeat(2, 1fr);
		gap: 25px 0;
	}

	#footer .footerNavTit[aria-controls="footerAcc2"] {
		padding-right: 0;
	}

	#footerSnsRow {
		grid-template-columns: repeat(2, 1fr);
	}

	.footerSnsCell {
		align-items: flex-start;
		gap: 15px;
	}

	.footerSnsItemSub {
		gap: 35px;
	}

}

/* -------------------------------------------------- */
/* PC：footerNavTit フォントサイズ可変（コスメ・サプリ・ダイエット等の重なり防止） */
/* -------------------------------------------------- */
@media screen and (min-width: 1025px) and (max-width: 1180px) {
	.footerNavTit {
		font-size: clamp(14px, calc(-12.45px + 2.58vw), 18px);
	}
}


/* -------------------------------------------------- */
/* SP(調整) */
/* -------------------------------------------------- */
@media screen and (max-width: 767px) {

	.txt3 {
		font-size: 1.6rem;
	}

	.brSp {
		display: inline-block;
	}

	.brPc {
		display: none;
	}

	/* -------------------------------------------------- */
	/* 共通パーツ */
	/* -------------------------------------------------- */
	/* テーブル */
	/* -------------------------------------------------- */
	/* commonTable01 */
	.commonTable01 {
		border-bottom: 1px solid #cecbc8;
	}

	.commonTable01 th, .commonTable01 td {
		display: block;
		width: 100%;
		border-bottom: none;
	}

	/* commonTable02 */
	.commonTable02 th, .commonTable02 td {
		display: block;
		width: 100%;
	}

	.commonCard02Item a {
		flex-direction: column;
		gap: 10px;
		padding: max(20px, 5%);
	}

	.commonCard02Img {
		width: 100%;
	}

	.commonCard02TxtBox {
		padding-right: 0;
		padding-bottom: 50px;
	}

	.commonCard02TxtBox::after {
		position: absolute;
		top: auto;
		right: auto;
		bottom: 0%;
		left: 50%;
		-webkit-transform: translate(-50%, 0);
		transform: translate(-50%, 0);
		margin: 0;
	}

	/* 動画リスト */
	/* -------------------------------------------------- */
	/* commonMovie01 */
	.commonMovie01 {
		grid-template-columns: 1fr;
	}

	/* commonMovie02 */
	/* .commonMovie02 {
		grid-template-columns: 1fr;
		grid-gap: 20px;
	} */

	/* アフターケア */
	/* -------------------------------------------------- */
	.commonCareTxtBox {
		grid-template-columns: 1fr;
		grid-gap: 20px;
	}

	.commonCareTxt {
		grid-column: span 1;
	}

	/* 問い合わせ先カード */
	.commonCareContact {
		justify-content: center;
		padding: 20px;
		gap: 10px;
	}

	.commonCareLogo img {
		object-position: center;
	}

	.commonCareTel {
		justify-content: center;
	}

	.commonCareTime {
		font-size: 1.6rem;
		text-align: center;
	}

	.related {
		grid-template-columns: repeat(2, 1fr);
		gap: 20px;
	}

	.relatedItem figure {
		margin: 0 0 10px;
	}

	.relatedItem p {
		font-size: 1.4rem;
	}

	/* header */
	#header {
		height: 60px;
	}
	.hamBurger {
		top: 10px;
	}

	#container {
		padding-top: 0;
	}

	#headerInner {
		padding: 0 5%;
	}

	#headerLogo {
		width: 160px;
	}

	/* .underFv（下層FV） */
	.underFv {
		margin-top: -60px;
		padding-top: 60px;
	}

	.underFvInner {
		padding-block: 20px 30px;
		min-height: 200px;
		gap: 20px;
	}

	#underFvTit {
		font-size: 1.4rem;
	}

	#underFvTit span.enTit {
		margin-bottom: 20px;
	}

	#underFvTit span.enTit,
	#underFvTit span.enTit.isSmall::before {
		font-size: min(9vw, 5rem);
	}

	/* 募集要項タグ */
	.underFvTag {
		padding: 2px 15px;
		font-size: 2rem;
	}


	/* Lity / 予約ポップアップ */

	.lity {
		min-height: auto;
	}

	.lity-wrap {
		padding: 60px 0 20px;
		overflow-y: auto;
		display: block;
		-webkit-overflow-scrolling: touch;
	}

	.lity-wrap::before {
		display: none;
	}

	.lity-container {
		max-height: none;
		display: block;
		vertical-align: top;
	}

	.reservePopup {
		padding: 100px 15px;
	}

	.reservePopupClose {
		width: 4rem;
		top: 1.5rem;
		left: 1.5rem;
	}

	.reservePopupClose::before,
	.reservePopupClose::after {
		width: 4rem;
	}

	.reservePopupInner {
		flex-direction: column;
		gap: 60px;
	}

	.lity .lity-close {
		width: 3rem;
		top: 1.5rem;
		left: 1.5rem;
	}

	.lity .lity-close::before,
	.lity .lity-close::after {
		width: 3rem;
	}

	.fixedCvIcon {
		width: 2.5rem;
	}

	.fixedCvSub {
		font-size: 0.85rem;
	}

	.fixedCvMain {
		font-size: 1.25rem;
	}

	.fixedCvBtn {
		padding: 10px;
		justify-content: center;
	}


	/* #footer */

	#footerNavList1 {
		padding: 0;
		grid-template-columns: 1fr;
		border-bottom: none;
	}

	.footerNavTit {
		padding-block: 20px;
		padding-right: 0;
		border-bottom: 1px solid #DDDCDC;
		font-size: 1.5rem;
	}

	.footerNavTit::before {
		right: 0;
	}

	.footerNavTit::after {
		right: 0.75rem;
	}

	.footerNavChild>li {
		padding-block: 15px;
		margin-inline: 20px;
		font-size: 1.4rem;
	}


	.footerNavChild>li:not(:has(.footerNavGrandchild)) {
		padding-block: 15px;
		margin-inline: 20px;
	}

	.footerNavGrandchild {
		font-size: 1.2rem;
	}


	.footerNavTitText {
		width: fit-content;
	}

	#footerNavList2 {
		grid-template-columns: 1fr;
	}

	#footerNavList2 li a {
		padding-block: 20px;
		font-size: 1.5rem;
	}

	#footerNavList3 {
		display: flex;
		flex-wrap: wrap;
		align-items: flex-start;
		gap: 0 20px;
	}

	#footerNavList3 .footerDetailList {
		width: calc(50% - 10px);
	}

	#footerNavList3 .footerDetailList:nth-child(1) {
		order: 1;
	}

	#footerNavList3 .footerDetailList:nth-child(2) {
		order: 3;
	}

	#footerNavList3 .footerDetailList:nth-child(3) {
		order: 2;
	}

	#footerNavList3 .footerDetailList:nth-child(4) {
		order: 4;
	}

	.footerDetailList li {
		font-size: 1.25rem;
	}

	.footerDetailListChild {
		margin-left: 1em;
	}

	.footerDetailListChild li {
		margin-left: 10px;
		font-size: 1.1rem;
	}

	.footerDetailListChild li a {
		padding-block: 5px;
	}

	.footerDetailListChild li a::before {
		width: 1rem;
		left: -0.8rem;
	}

	#footerSnsRows {
		padding: 0;
		border-bottom: none;
	}

	#footerSnsRow {
		padding: 0;
		grid-template-columns: 1fr;
		gap: 0;
	}

	.footerSnsCell {
		padding-block: 15px;
	}

	.footerSnsName {
		font-size: 1.2rem;
	}

	#footerLangList a {
		font-size: 1.1rem;
	}

	.footerCopyright {
		font-size: 0.85rem;
	}

	/* #bc（パンくず） */
	.bcList {
		font-size: 1.2rem;
	}

	/* tit */
	.tit1 {
		gap: 0;
		font-size: 1.6rem;
	}

	.tit1::before {
		font-size: 3.5rem;
	}


	.tit2 {
		font-size: 1.8rem;
	}

	.tit3 {
		font-size: 2rem;
	}

	.tab1Wrap {
		display: grid;
		grid-template-columns: repeat(3, 1fr);
	}

	/* 1行目（1〜5個）＝5列 */
	.tab1Wrap .tab1>*:nth-child(-n+5) {
		grid-column: span 1;
		/* 20 ÷ 5 */
	}

	/* 2行目以降（6個目〜）＝4列 */
	.tab1Wrap .tab1>*:nth-child(n+6) {
		grid-column: span 1;
		/* 20 ÷ 4 */
	}

	.tab1Wrap .tab1 {
		display: contents;
	}

	.tab1Wrap .tab1Item {
		width: auto;
		min-width: 0;
		font-size: 1.2rem;
		padding: 10px 0;
		border-bottom: 1px solid #C9C2B1;
	}

	.tab1Wrap .smallTxt {
		font-size: 1rem;
	}

	.tab1Item:nth-child(5n) {
		border-right: 1px solid #C9C2B1;
	}

	.tab1Item:last-child {
		border-right: none;
	}

	.tab1Wrap .tab1Item::after {
		width: 3px;
		height: 3px;
		bottom: 0.4rem;
	}

	/* tab2 */
	.tab2Btn {
		font-size: 1.2rem;
	}


	/* .tab3 */
	.tab3Panel {
		padding: 20px;
	}
	
	.tab3PanelList {
		gap: 8px 20px;
	}

	.tab3PanelList a {
		font-size: 1.4rem;
	}

	.tab3Item {
		padding: 10px;
		font-size: 1.3rem;
	}


	/* #commonClinic */

	.clinicLogo {
		width: 140px;
	}

	.clinicHeadBody {
		margin-bottom: 10px;
	}

	.clinicPlace {
		font-size: 1.8rem;
	}

	.clinicHeadSnsItem {
		width: 20px;
		height: 20px;
	}

	.clinicName {
		font-size: 1.8rem;
	}

	.clinicText {
		margin-bottom: 10px;
		font-size: 1.4rem;
	}

	.clinicBtnRow {
		height: auto;
		min-height: 43px;
		flex-wrap: wrap;
		align-content: flex-start;
	}

	.clinicBtnRow .clinicBtn,
	.clinicBtnRow .clinicIconBtn {
		height: 43px;
		flex-shrink: 0;
	}

	.clinicSnsTit {
		margin-block: 20px 10px;
	}

	/* #commonClinic */
	#clinicWrap {
		grid-template-columns: 1fr;
		gap: 50px;
	}

	.clinicPhoto {
		max-width: 100%;
	}

	.clinicSnsList {
		display: grid;
		grid-template-columns: repeat(3, 1fr);
	}

	.clinicBtnRow {
		gap: 5px;
	}

	.clinicBtn {
		min-width: auto;
		font-size: 1.4rem;
		padding: 10px;
	}

	.clinicBtnArrowIcon {
		width: 18px;
		height: 18px;
	}

	/* .catBlock */
	.contactWrap {
		width: 100%;
		grid-template-columns: 1fr;
		gap: 50px;
	}

	.contactPhoto {
		max-width: 350px;
		flex: 1 1 auto;
	}



	/* .catBlock */
	.catBlock {
		margin-top: 50px;
		padding: 30px 20px;
	}

	.ctaBlock {
		padding: 30px 20px;
	}

	.contactTit {
		margin-bottom: 40px;
		font-size: 2rem;
	}

	.contactWrap {
		grid-template-columns: 1fr;
		gap: 50px;
	}

	.contactBox {
		gap: 20px;
		flex-direction: column;
	}

	.contactItem {
		gap: 20px;
	}

	.contactClinic {
		font-size: 1.8rem;
		padding-bottom: 10px;
	}

	.contactTel .text {
		font-size: 2.4rem;
	}

	.contactTel .icon {
		width: 20px;
		height: 20px;
	}

	.contactTime {
		font-size: 1.4rem;
	}

	.contactPhoto {
		max-width: 100%;
		flex: 1 1 auto;
		aspect-ratio: 375 / 250;
	}

	.contactBtn {
		width: 100%;
		margin-inline: auto;
	}

	.contactTel:hover {
		opacity: 1;
	}

	.contactBtn:hover::after {
		opacity: 1;
	}

	.contactLogo {
		padding-bottom: 10px;
	}

	/* ページャー（SP） */
	#pagerWrap {
		margin-top: 35px;
	}

	#pager {
		gap: 5px;
	}

	#pager .page-numbers:not(.prev):not(.next):not(.dots) {
		width: 4rem;
		height: 4rem;
		font-size: 1.4rem;
	}

	#pager .prev.page-numbers,
	#pager .next.page-numbers {
		width: 4rem;
		height: 4rem;
	}

	#pager .prev.page-numbers::before,
	#pager .next.page-numbers::before {
		width: 1.2rem;
		margin-left: -6px;
	}

	#pager .prev.page-numbers::after {
		left: calc(50% - 0.6rem);
	}

	#pager .next.page-numbers::after {
		right: calc(50% - 0.6rem);
	}

	/* #pagetopBtn */
	#pagetopBtn {
		width: 50px;
		height: 50px;
		bottom: 2rem;
		right: 2rem;
	}


	/* btn3 */
	.btn3 {
		gap: 10px;
	}

	.btn3Txt {
		font-size: 1.4rem;
	}

	.btn3Icon {
		width: 30px;
		height: 30px;
	}

	.btn3IconImg {
		width: 10px;
	}

	.btn3Icon span {
		width: 0.8rem;
		height: 1px;
	}

	.btn3Icon span::before {
		width: 2px;
		height: 1px;
	}

	/* キャンペーンスライダー */
	/* ----------------------------------- */
	.campaignSliderSwiper .swiper-slide {
		height: calc(70vw + 70px);
		width: 70%;
		text-align: center;
	}

	.is-few-slides .swiper-wrapper {
		justify-content: flex-start;
	}

	#campaign {
		padding: 70px 0;
	}


}

@media screen and (max-width: 374px) {
	html {
		font-size: 2.667vw;
	}

}

/* -------------------------------------------------- */
/* hover無効化（ホバーできない端末 = タッチデバイス） */
/* -------------------------------------------------- */
@media (hover: none) {
	.btn2:hover::after {
		opacity: 1;
	}

	.fixedCvBtnReserve:hover::after {
		opacity: 1;
	}

	#pager a.page-numbers:hover {
		opacity: 1;
	}

	.reservePopupBtn:hover {
		opacity: 1;
	}

	.bcList a:hover {
		color: inherit;
	}

	.clinicBtn:hover {
		opacity: 1;
	}

	#container:not(.isMenuOpen) a:hover,
	#container:not(.isMenuOpen) a:active {
		color: inherit;
		text-decoration: none;
	}

	.on:hover {
		opacity: 1;
	}

	/* ドロワー開時のみhover有効 */
	#container.isMenuOpen .drawerLink:hover,
	#container.isMenuOpen .drawerParentLink:hover,
	#container.isMenuOpen .drawerGrandchildItem>a:hover {
		background: #F4F1E7;
		color: #ae9b62;
	}

	#container.isMenuOpen .drawerLink:hover::before,
	#container.isMenuOpen .drawerParentLink:hover::before,
	#container.isMenuOpen .drawerGrandchildItem>a:hover::before {
		border-color: #ae9b62;
	}

}

/* -------------------------------------------------- */
/* hover */
/* -------------------------------------------------- */
@media (hover: hover) {
	/* .commonCard02 */
	.commonCard02Img {
		overflow: hidden;
	}

	.commonCard02Img img {
		transition: transform .4s ease;
	}

	.commonCard02TxtBox::after {
		transition: all .3s;
	}

	.commonCard02Item a:hover .commonCard02Img img {
		transform: scale(1.1);
	}
	.commonCard02Item a:hover .commonCard02TxtBox::after {
		background-color: #998a54;
	}

	/* .commonCard03 */
	.commonCard03Img {
		overflow: hidden;
	}

	.commonCard03Img img {
		transition: transform .4s ease;
	}

	.commonCard03Item a:hover .commonCard03Img img {
		transform: scale(1.1);
	}
}