@charset "UTF-8";

/* ------------------------------------
	loading video
------------------------------------ */
.loading-video-area {
	width: 100%;
	height: 100vh;
	position: relative;
	overflow: hidden;
}
.loading-video-area > video {
	width: 100%;
	height: 100vh;
}

#loadingVideoSP {
	display: none;
}

@media screen and (max-width: 999px) {
	#loadingVideo {
		display: none;
	}
	#loadingVideoSP {
		display: block;
	}
}

#mainContent.is-hidden {
	display: none;
	opacity: 0;
}
#mainContent.is-show {
	display: flex;
	animation: fadeIn 2s ease-in-out forwards;
}

@keyframes fadeIn {
	0% {
		opacity: 0;
	}
	100% {
		opacity: 1;
	}
}
/* ------------------------------------
	top mv
------------------------------------ */
.top-mv {
	width: 100%;
	height: 100vh;
	position: fixed;
	z-index: 0;
	background-image: url(../img/top/top.jpg);
	background-repeat: no-repeat;
	background-size: cover;
	background-position: center;
	top: 0;
	left: 0;
	transition: opacity 1.5s ease-in-out;
	opacity: 1;
}
.top-mv.is-hidden {
	opacity: 0;
}

.top-mv-inner {
	width: 100%;
	height: 100%;
	position: relative;
}

.name-01,
.name-02 {
	position: absolute;
	top: 200px;
	writing-mode: vertical-rl;
	z-index: 10;
}
.name-01 {
	left: 80px;
}
.name-02 {
	right: 80px;
}
.name-01 .t01,
.name-02 .t01 {
	width: 36.5px;
	font-size: 23px;
	text-align: center;
	color: #ffffff;
	font-family: "Cinzel", serif;
	line-height: 1;
	display: flex;
	justify-content: center;
	align-items: center;
}
.name-01 .t01 {
	height: 195px;
	background-color: #6b5251;
}
.name-02 .t01 {
	height: 148px;
	background-color: #ac9a86;
}

.name-01 .t02,
.name-02 .t02 {
	margin-top: 60px;
	font-size: 43px;
	letter-spacing: 3px;
	font-family: "Cinzel", serif;
	line-height: 1;
	display: flex;
	justify-content: flex-start;
	align-items: center;
	width: 35px;
	height: 224px;
}
.name-01 .t02 {
	color: #d9c7b3;
}
.name-02 .t02 {
	color: #ac9a86;
}

.name-01 .t03,
.name-02 .t03 {
	margin-top: 60px;
	font-family: var(--font-noto);
}
.name-01 .t03 {
	color: #6b5251;
	font-size: 14px;
	letter-spacing: 0.15em;
}
.name-02 .t03 {
	color: #ffffff;
	font-size: 14px;
	letter-spacing: 0.15em;
	margin-top: 60px;
}

.name-01 .t04,
.name-02 .t04 {
	margin-top: 60px;
	color: #6b5251;
	font-size: 30px;
	letter-spacing: 2px;
	font-family: "Cinzel", serif;
}
.name-01 .t04 {
	color: #6b5251;
	letter-spacing: 0.15em;
}
.name-02 .t04 {
	color: #ffffff;
	letter-spacing: 0.15em;
}
.name-01 .t04 span,
.name-02 .t04 span {
	font-size: 16px;
}

.top-mv-logo {
	position: absolute;
	top: 16px;
	left: 40px;
	width: 130px;
	height: auto;
	display: flex;
	justify-content: center;
	align-items: center;
	overflow: hidden;
	aspect-ratio: 23 / 13;
	z-index: 50;
}
.img-bs {
	position: absolute;
	top: 30px;
	right: 30px;
	width: 250px;
	height: auto;
	aspect-ratio: 250 / 487;
	display: flex;
	justify-content: center;
	align-items: center;
	overflow: hidden;
	z-index: 0;
}

.top-mv-scroll-img-area {
	width: 170px;
	position: absolute;
	bottom: 180px;
	left: 100px;
	display: flex;
	flex-flow: column;
	align-items: center;
	gap: 25px;
}
.top-mv-scroll-circle-box {
	width: 100%;
	display: flex;
	justify-content: center;
	align-items: center;
	position: relative;
}
.img-circle-star {
	position: absolute;
	width: 50px;
	height: auto;
	aspect-ratio: 1 / 1;
}
.top-mv-scroll-circle-box > div {
	width: 100%;
	display: flex;
	justify-content: center;
	align-items: center;
}
.top-mv-scroll-circle-box > div > img {
	animation: rotate360-nt 30s linear infinite;
}

.top-mv-arrow-down {
	width: 20px;
	height: auto;
	aspect-ratio: 2 / 5;
}

.top-mv-txt {
	position: absolute;
	bottom: 115px;
	right: 15%;
	font-size: 56px;
	color: #ffffff;
	font-family: "Zen Old Mincho", serif;
	font-weight: 400;
	font-style: normal;
}

.top-mv-bg-txt {
	position: absolute;
	bottom: 80px;
	left: 25%;
	font-size: 160px;
	line-height: 150px;
	color: #ce925d26;
	font-family: "Cinzel", serif;
}

@media screen and (max-width: 750px) {
	.top-mv {
		background-image: url("../img/top/top-sp.webp");
	}
	.top-mv-logo {
		top: 35px;
		left: 25px;
		width: 225px;
		height: auto;
		aspect-ratio: 6 / 1;
	}
	.img-bs {
		display: none;
	}
	.top-mv-scroll-img-area {
		width: 140px;
		bottom: 90px;
		left: 20px;
	}
	.top-mv-arrow-down {
		width: 15px;
		aspect-ratio: 15 / 26;
	}
	.top-mv-txt {
		font-size: 50px;
		color: #ffffff;
		font-family: "Zen Old Mincho", serif;
		font-weight: 100;
		font-style: normal;
		top: 34%;
		bottom: auto;
		right: 5%;
		line-height: 1.3;
		letter-spacing: 0.3rem;
		font-size: 35px;
		writing-mode: vertical-rl;
		text-shadow: 1px 2px 15px #000000c9;
	}
	.name-01 {
		top: 15%;
		left: 32%;
	}
	.name-02 {
		right: 25.5%;
		top: auto;
		bottom: 14%;
	}
	.name-01 .t01,
	.name-02 .t01 {
		height: 128px;
		width: 24.5px;
		font-size: 15px;
	}
	.name-01 .t02,
	.name-02 .t02 {
		font-size: 30px;
		width: 27px;
		height: 126px;
	}
	.top-mv-bg-txt {
		left: 25%;
		font-size: 160px;
		line-height: 150px;
		color: #ce925d26;
		font-family: "Cinzel", serif;
		top: 100px;
		bottom: auto;
		left: 0;
		font-size: 90px;
		line-height: 90px;
		writing-mode: vertical-rl;
	}
}

/*------------------------------------------------*/

@media screen and (max-width: 750px) and (max-height: 800px) {
	.name-01 {
		top: 15%;
		left: 35%;
		scale: 0.8;
	}
	.name-02 {
		top: auto;
		bottom: 7%;
		left: auto;
		right: 28%;
		scale: 0.8;
	}
}

@media screen and (max-width: 390px) {
	.name-01 {
		left: 32%;
	}
}

/* ------------------------------------
	welcome
------------------------------------ */
@keyframes img-wrap {
	0% {
		clip-path: circle(0 at 50% 50%);
		-webkit-clip-path: circle(0 at 50% 50%);
	}
	100% {
		clip-path: circle(100% at 50% 50%);
		-webkit-clip-path: circle(100% at 50% 50%);
	}
}

.sec-top-welcome {
	width: 100%;
	height: auto;
/*	background: #fff;*/
	aspect-ratio: 750 / 1691;
	position: relative;
	z-index: 0;
	display: flex;
	align-items: center;
	justify-content: center;
}
.sec-top-welcome::before {
	content: "";
	width: 100%;
	height: 100%;
	position: absolute;
	top: 0;
	left: 0;
	background-image: url("../img/top/welcome.webp");
	background-size: cover;
	background-repeat: no-repeat;
	z-index: 0;
	opacity: 0;
	transition: all 0.6s ease-in-out;
}
.sec-top-welcome.is-active::before {
	opacity: 1;
	animation: img-wrap 2s cubic-bezier(0.4, 0, 0.2, 1);
}
.top-welcome-txt {
	width: 350px;
	height: auto;
	background-image: url("../img/top/txt-welcome-brown.svg");
	background-size: contain;
	background-repeat: no-repeat;
	aspect-ratio: 2 / 3;
	position: absolute;
	z-index: 10;
	transition: all 0.6s ease-in-out;
}
.sec-top-welcome.is-active .top-welcome-txt {
	background-image: url("../img/top/txt-welcome-white.svg");
}

/* ------------------------------------
	news
------------------------------------ */
.sec-top-news {
	width: 100%;
	position: relative;
	z-index: 20;
	height: auto;
	min-height: 500px;
	background: #f7f5f3;
	padding: 0 50px;
	padding-top: 200px;
	padding-bottom: 50px;
}
.sec-top-news::before {
	content: "";
	width: 100%;
	position: absolute;
	z-index: 20;
	height: 50px;
	background: #f7f5f3;
	border-radius: 50px 50px 0 0;
	bottom: 100%;
	left: 0;
	right: 0;
	margin: 0 auto;
}
.sec-top-news .circle-ttl-box {
	position: absolute;
	z-index: 10;
	top: -250px;
	left: 0;
	right: 0;
	margin: 0 auto;
	z-index: 30;
}
.top-news-note {
	width: 100%;
	margin-bottom: 25px;
	text-align: center;
	color: #6b5251;
	font-family: "Zen Old Mincho", serif;
	font-size: 17px;
	line-height: 1.8;
}
.top-news-btns {
	width: 100%;
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 30px;
}
.top-news-btns > a {
	width: 100%;
	transition: all ease 0.33s;
}
.top-news-btns > a:hover {
	opacity: 0.5;
}

/* ------------------------------------
	specialist
------------------------------------ */
.sec-top-specialist {
	width: 100%;
	padding: 0 50px;
	padding-bottom: 120px;
	padding-top: 0;
	background: #f7f5f3;
	position: relative;
	overflow: hidden;
}
.specialist-cont {
	width: 100%;
	display: flex;
	flex-flow: column;
	align-items: center;
	gap: 30px;
	position: relative;
	z-index: 10;
}
.specialist-bg-circle {
	position: absolute;
	top: 50px;
	left: 0;
	right: 0;
	margin: 0 auto;
	width: 100%;
	height: auto;
	display: flex;
	justify-content: center;
	align-items: center;
	z-index: 0;
}
.specialist-bg-circle .circle-text {
	animation: circle-txt-rotation-rtol 100s linear infinite;
	width: 470px;
}
.specialist-bg-circle .circle-text--text {
	fill: #fff;
	font-size: 0.8em;
	letter-spacing: 0.05em;
}
.specialist-ttl {
	font-size: 27px;
	color: #6b5251;
	font-family: var(--font-base);
	text-align: center;
}
.specialist-ttl > span {
	font-size: 16px;
	letter-spacing: 3px;
}
.specialist-bnrs {
	width: 100%;
	display: flex;
	flex-flow: column;
	align-items: center;
	gap: 25px;
	position: relative;
	z-index: 20;
	max-width: 350px;
}
.specialist-bnrs > a {
	width: 100%;
}

/* ------------------------------------
	doctors title
------------------------------------ */
.sec-top-doctors-title {
	width: 100%;
	min-height: 678px;
	position: relative;
	background-image: url("../img/top/bg-aesthetic.webp");
	background-position: top;
	background-size: cover;
	background-repeat: no-repeat;
	padding-top: 152px;
	padding-bottom: 68px;
}
.top-doctors-title-cont {
	width: 100%;
	display: flex;
	flex-flow: column;
	margin: 0 auto;
	gap: 36px;
	align-items: center;
	position: relative;
}

.top-doctors-title-txt-box {
 display: flex;
 flex-flow: column;
 writing-mode: vertical-rl;
 margin: 0 auto;
 justify-content: center;
 gap: 23px;
 font-family: var(--font-base);
 color: #6b5251;
}

.top-doctors-title-txt-box > p {
 font-size: 53px;
 letter-spacing: 0.14em;
}

.top-doctors-title-txt-box > p > span.back-c {
 color: #fff;
 position: relative;
	opacity: 0;
	transition: opacity 0.5s ease-in-out;
}

.top-doctors-title-txt-box > p > span.back-c::before {
	content: "";
	position: absolute;
	width: 100%;
	background-color: #6b5251;
 left: 4px;
}
.top-doctors-title-txt-box > p > span.back-c.visible {
	opacity: 1;
}
.top-doctors-title-txt-box > p > span.back-c.visible::before {
	animation: expand-bg 1s ease-in-out forwards;
}
.top-doctors-title-txt-box > p > span.back-c > span {
	position: relative;
	transition: all 0.5s ease-in-out;
}

.top-doctors-title-txt-box > p > span.back-c.visible > span {
	opacity: 1;
	height: auto;
	padding: 5px;
 line-height: 1;
}

.top-doctors-title-txt-box > span {
	font-size: 24px;
	letter-spacing: 0.2em;
}

@keyframes expand-bg {
	0% {
		height: 0;
		top: 50%;
	}
	100% {
		height: 100%;
		top: 0;
	}
}

.top-doctors-title-desc-box {
	width: 100%;
	display: flex;
	flex-flow: column;
	align-items: center;
	gap: 20px;
}
.tdt-badges {
	width: 100%;
	display: flex;
	flex-flow: column;
	align-items: center;
	gap: 10px;
}
.tdt-badges > span {
	background-color: #f8f8f5;
	border: 1px solid #6b5251;
	font-size: 30px;
	padding: 0;
	text-align: center;
	max-width: 300px;
	width: 100%;
	margin: auto;
	color: #6b5251;
}
.tdt-txt {
	width: 100%;
	text-align: center;
	font-size: 20px;
	color: #474747;
}

/* ------------------------------------
	doctors
------------------------------------ */
.sec-top-doctors {
	width: 100%;
	position: relative;
	background: #fff;
}
.doctors-cover {
	width: 100%;
	height: auto;
	aspect-ratio: 5 / 8;
	position: absolute;
	top: 0;
	left: 0;
	z-index: 10;
	background-image: url(../img/top/bg-doctors.webp);
	background-size: cover;
	opacity: 1;
	transition: all 2s ease-out;
}
.sec-top-doctors.is-active .doctors-cover {
	opacity: 0;
}

.doctors-cont {
	width: 100%;
	height: auto;
	display: flex;
	flex-flow: column;
	align-items: center;
	gap: 60px;
	aspect-ratio: 5 / 8;
	position: relative;
	z-index: 0;
	overflow: hidden;
	opacity: 0;
	filter: blur(5px);
	transition: all 2s ease-out;
}

.sec-top-doctors.is-active .doctors-cont {
	opacity: 1;
	filter: blur(0);
	aspect-ratio: auto;
	z-index: 10;
}
.doctors-profile-area {
	width: 100%;
	height: auto;
	display: flex;
	flex-flow: column;
	align-items: center;
	gap: 67px;
}
.doctors-profile {
	width: 100%;
	height: auto;
	display: flex;
	flex-flow: column;
	align-items: center;
}
.doctors-message-box {
	width: 100%;
	height: auto;
	background-size: contain;
	background-position: center;
	background-repeat: no-repeat;
	aspect-ratio: 750 / 1013;
	overflow: hidden;
	position: relative;
}
.dp-hidetada .doctors-message-box {
	background-image: url(../img/top/bg-hidetada.webp);
}
.dp-shuichi .doctors-message-box {
	background-image: url(../img/top/bg-shuichi.webp);
}
.dp-kaori .doctors-message-box {
	background-image: url(../img/top/bg-kaori.webp);
}
.doctors-message-box > img {
	position: absolute;
	bottom: 0;
	width: 400px;
}
.dp-hidetada .doctors-message-box > img {
	left: 0;
}
.dp-shuichi .doctors-message-box > img {
	right: 0;
}
.dp-kaori .doctors-message-box > img {
	right: 0;
}
.doctors-message-copy {
	color: #474747;
	position: absolute;
	font-size: 30px;
	top: 0;
	line-height: 1.8;
	letter-spacing: 0.2em;
	padding-top: 57px;
	writing-mode: vertical-rl;
	z-index: 20;
}
.dp-hidetada .doctors-message-copy {
	right: 50px;
	padding-left: 48px;
}
.dp-shuichi .doctors-message-copy {
	left: 50px;
	padding-right: 48px;
}
.dp-kaori .doctors-message-copy {
	left: 10px;
	padding-right: 48px;
}
.doctors-message-copy::before {
	content: "";
	background-size: contain;
	width: 100%;
	display: flex;
	height: 100%;
	position: absolute;
	background-repeat: no-repeat;
	top: 0;
}
.dp-hidetada .doctors-message-copy::before {
	background-image: url(../img/top/txt-message-right.svg);
	left: 0;
	background-position: top left;
}
.dp-shuichi .doctors-message-copy::before {
	background-image: url(../img/top/txt-message-left.svg);
	right: 0;
	background-position: top right;
}
.dp-kaori .doctors-message-copy::before {
	background-image: url(../img/top/txt-message-left.svg);
	right: 0;
	background-position: top right;
}
.doctors-info-area {
	width: 100%;
	padding: 50px 0;
	display: flex;
	flex-flow: column;
	align-items: center;
	gap: 36px;
	position: relative;
	overflow: hidden;
}
.doctors-info-v-txt {
	writing-mode: vertical-rl;
	color: #edebe7;
	font-size: 30px;
	position: absolute;
	text-align: left;
	top: 50px;
	right: 30px;
	letter-spacing: 0.2em;
	display: flex;
	flex-flow: column;
	z-index: 0;
}
.doctors-name-ttl {
	width: 100%;
	display: flex;
	flex-flow: column;
	align-items: center;
	text-align: center;
	gap: 5px;
	color: #6b5251;
}
.doctors-name-ttl > span {
	width: 100%;
	font-family: var(--font-noto);
	letter-spacing: 0.2em;
	font-size: 16px;
	line-height: 2;
}
.doctors-name-ttl > p {
	font-size: 42px;
}
/* ------------------------------------
	Beautiful Skin Life
------------------------------------ */
.sec-bsl {
	width: 100%;
	height: auto;
	position: relative;
	z-index: 10;
	background: #fff;
	display: flex;
	flex-flow: column;
	justify-content: space-between;
	padding-top: 76px;
	overflow: hidden;
}
.bsl-b-box {
	width: 100%;
	display: flex;
	align-items: center;
	position: relative;
	z-index: 10;
}
.img-beautiful {
	width: 374px;
	height: auto;
	opacity: 0;
	transition: transform 1s ease-out, opacity 1s ease-out;
}
.txt-beautiful {
	width: 48px;
	height: auto;
	position: absolute;
	top: -76px;
	right: 30px;
}
.bsl-s-box {
	width: 100%;
	height: 108px;
	display: flex;
	align-items: center;
	position: relative;
	justify-content: flex-end;
	z-index: 0;
}
.txt-skin {
	width: 175px;
	position: absolute;
	left: 30px;
}
.img-skin {
	width: 248px;
	height: auto;
	opacity: 0;
	transition: transform 1s ease-out, opacity 1s ease-out;
}
.bsl-l-box {
	width: 100%;
	height: 169px;
	display: flex;
	align-items: center;
	position: relative;
	justify-content: flex-start;
	z-index: 10;
}
.img-life {
	width: 269px;
	height: auto;
	opacity: 0;
	transition: transform 1s ease-out, opacity 1s ease-out;
}
.txt-life {
	width: 166px;
	position: absolute;
	right: 42px;
	bottom: 16px;
}

/* ------------------------------------
	Menu
------------------------------------ */
.sec-top-menu {
	width: 100%;
	background: #fff;
	padding-top: 250px;
	position: relative;
	z-index: 20;
}
.sec-top-menu-inner {
	width: 100%;
	background: #dec6b5;
	position: relative;
	padding-top: 220px;
}
.sec-top-menu-inner::before {
	content: "";
	width: 100%;
	position: absolute;
	z-index: 20;
	height: 50px;
	background: #dec6b5;
	border-radius: 50px 50px 0 0;
	bottom: 100%;
	left: 0;
	right: 0;
	margin: 0 auto;
}
.sec-top-menu .circle-ttl-box {
	position: absolute;
	top: -180px;
	left: 0;
	right: 0;
	margin: 0 auto;
	z-index: 30;
}
.top-menu-area {
	width: 100%;
	display: flex;
	flex-flow: column;
	position: relative;
	overflow: hidden;
}
.top-menu-group {
	width: 100%;
	display: flex;
	padding: 45px 0;
	gap: 60px;
	align-items: center;
	justify-content: flex-start;
}
.top-menu-group:nth-of-type(even) {
	justify-content: flex-end;
	background-image: url("../img/top/bg-menu.webp");
	background-repeat: no-repeat;
	background-size: cover;
	background-position: center;
}
.top-menu-group > .tmg-img-box {
	width: 230px;
	display: flex;
	justify-content: center;
	align-items: center;
	flex-shrink: 0;
	position: relative;
}
.top-menu-group > .tmg-img-box > p {
	position: absolute;
	color: #fff;
	text-align: left;
	font-size: 57px;
	bottom: 10px;
	left: 10px;
	width: max-content;
	letter-spacing: 0.1em;
	line-height: 1.1em;
	font-weight: 500;
}
.top-menu-group:nth-of-type(1) > .tmg-img-box > p {
	letter-spacing: -0.15em;
	font-size: 52px;
}
.top-menu-group > .tmg-img-box > figure {
	width: 100%;
	display: flex;
	justify-content: center;
	align-items: center;
	overflow: hidden;
}
.top-menu-group .sub-menu-list {
	padding-left: 0;
	font-size: 18px;
	color: #6b5251;
}
.top-menu-group .sub-menu-list > a {
	max-width: none;
}

/* ------------------------------------
	Case
------------------------------------ */
.sec-top-case {
	width: 100%;
	background: #dec6b5;
	padding-top: 200px;
	position: relative;
	z-index: 20;
}
.sec-top-case-inner {
	width: 100%;
	background: #fff;
	position: relative;
	padding-top: 280px;
	padding-bottom: 100px;
}
.sec-top-case-inner::before {
	content: "";
	width: 100%;
	position: absolute;
	z-index: 20;
	height: 50px;
	background: #fff;
	border-radius: 50px 50px 0 0;
	bottom: 100%;
	left: 0;
	right: 0;
	margin: 0 auto;
}
.sec-top-case .circle-ttl-box {
	position: absolute;
	top: -180px;
	left: 0;
	right: 0;
	margin: 0 auto;
	z-index: 30;
}
.top-case-area-wrapper {
	width: 100%;
	display: flex;
	flex-flow: column;
	align-items: center;
	gap: 100px;
	position: relative;
}
.top-case-area {
	width: 100%;
	display: flex;
	flex-flow: column;
	position: relative;
	overflow: hidden;
	gap: 45px;
	align-items: center;
}
.icon-ttl-box {
	width: 100%;
	display: flex;
	flex-flow: column;
	align-items: center;
	position: relative;
	color: #6b5251;
	text-align: center;
}
.icon-ttl-box::before {
	content: "";
	display: block;
	background-size: cover;
	width: 50px;
	height: 50px;
	margin: 0 auto 10px;
}
.top-case-hyaluronic .icon-ttl-box::before {
	background-image: url("../img/top/icon-hyaluronic.svg");
}
.top-case-liftup .icon-ttl-box::before {
	background-image: url("../img/top/icon-liftup.svg");
	height: 60px;
}
.icon-ttl-box > h3 {
	font-size: 36px;
	font-weight: 400;
	padding-bottom: 10px;
	margin-bottom: 15px;
	position: relative;
}
.icon-ttl-box > h3::after {
	content: "";
	width: 50px;
	display: block;
	height: 1px;
	background-color: #6b5251;
	left: 0;
	right: 0;
	margin: 0 auto;
	position: absolute;
	bottom: 0;
}
.icon-ttl-box > span {
	font-family: var(--font-josefin);
	font-weight: 300;
	font-size: 18px;
	letter-spacing: 0.1em;
}
.bnr-case-box {
	width: 100%;
	display: flex;
	justify-content: center;
	align-items: center;
	max-width: 365px;
	overflow: hidden;
}
.top-case-slider-area {
	width: 100%;
}
/* ------------------------------------
	Voice
------------------------------------ */
.sec-top-voice {
	width: 100%;
	position: relative;
	padding-top: 160px;
	padding-bottom: 50px;
	background: #fff;
}
.sec-top-voice > .loop-txt-box {
	top: 80px;
	height: 60px;
}
.top-voice-cont {
	position: relative;
	width: 100%;
	display: flex;
	flex-flow: column;
}
.top-voice-cont .loop-txt-box {
	position: relative;
	top: auto;
	margin-top: 30px;
	height: 60px;
}
.top-voice-main-area {
	width: 100%;
	display: flex;
	overflow: hidden;
	height: 560px;
	background-color: #eed6cc;
	border-radius: 0 100px 0 0;
}
.top-voice-instagram-loop-box {
	width: 250px;
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 17px;
	position: relative;
	overflow: hidden;
	left: -20px;
}
.top-voice-instagram-loop-box > div {
	width: 100%;
}
.tvi-loop-imgs {
	width: 100%;
	display: flex;
	flex-flow: column;
	gap: 16px;
	overflow: hidden;
}
.tvi-loop-up .tvi-loop-imgs {
	animation: loop-up 30s infinite linear 1s both;
}
.tvi-loop-down .tvi-loop-imgs {
	animation: loop-down 30s infinite linear 1s both;
}

@keyframes loop-up {
	from {
		transform: translateY(-50%);
	}
	to {
		transform: translateY(0);
	}
}

@keyframes loop-down {
	from {
		transform: translateY(0);
	}
	to {
		transform: translateY(-50%);
	}
}

.top-voice-good-box {
	width: 245px;
	padding-right: 30px;
	padding-left: 10px;
	padding-top: 140px;
	display: flex;
	flex-flow: column;
	position: relative;
	overflow: hidden;
}
.txt-users-voice {
	align-items: center;
	display: flex;
	top: 50%;
	transform: translateY(-50%);
	position: absolute;
	left: 0;
	width: 58px;
	z-index: 0;
}
.txt-good-area {
	width: 100%;
	display: flex;
	flex-flow: column;
	align-items: center;
	position: relative;
	z-index: 10;
}
.top-voice-badge-good {
	width: 86px;
	margin: 0 auto 23px;
}
.txt-good-area > p {
	text-align: center;
	font-size: 22px;
	font-weight: 400;
	color: #6b5251;
}
.top-voice-score {
	background-color: #6b5251;
	color: #fff;
	display: inline-block;
	font-family: var(--font-zom);
	font-size: 31px;
	line-height: 1;
	padding: 0 7px;
	padding-bottom: 7px;
	margin-top: 10px;
	margin-bottom: 10px;
}
.top-voice-score > span {
	font-family: unset !important;
}
.top-voice-score > span > span {
	font-size: 71px;
	font-family: var(--font-zom) !important;
}
.top-voice-icon-stars {
	width: 120px;
	margin-top: 25px;
}

@media screen and (max-width: 750px) {
	.top-voice-score > span {
		font-size: 50px;
	}
}

/* ------------------------------------
	Flow
------------------------------------ */
.sec-top-flow {
	width: 100%;
	position: relative;
	background: #fff;
	padding-top: 120px;
	overflow: hidden;
}
.sec-top-flow .circle-ttl-box {
	position: absolute;
	top: -120px;
	left: 0;
	right: 0;
	z-index: 30;
}
.sec-top-flow-inner {
	width: 100%;
	position: relative;
}
/* ------------------------------------
	Access
------------------------------------ */
.sec-top-access {
	width: 100%;
	position: relative;
	background: #f7f5f3;
	padding-top: 150px;
	overflow: hidden;
}
.sec-top-access-inner {
	width: 100%;
	background: #fff;
	position: relative;
	padding-top: 280px;
	padding-bottom: 70px;
}
.sec-top-access-inner::before {
	content: "";
	width: 100%;
	position: absolute;
	z-index: 20;
	height: 50px;
	background: #fff;
	border-radius: 50px 50px 0 0;
	bottom: 100%;
	left: 0;
	right: 0;
	margin: 0 auto;
}
.sec-top-access .circle-ttl-box {
	position: absolute;
	top: -150px;
	left: 0;
	right: 0;
	margin: 0 auto;
	z-index: 30;
}
.top-access-note {
	width: 100%;
	text-align: center;
	margin-bottom: 40px;
	font-size: 18px;
	color: #6b5251;
}
.top-access-map-area {
	width: 100%;
	display: flex;
	flex-flow: column;
	gap: 80px;
	align-items: center;
}
.top-access-map-group {
	width: 100%;
	display: flex;
	flex-flow: column;
	gap: 30px;
	align-items: center;
}
.map-wrapper {
	width: 100%;
	height: auto;
	display: flex;
	justify-content: center;
	align-items: center;
	overflow: hidden;
	aspect-ratio: 750 / 366;
}
.map-wrapper > iframe {
	width: 100%;
	height: 100%;
}
.map-info-box {
	width: 100%;
	display: flex;
	align-items: flex-start;
	gap: 35px;
}
.place-bnr {
	width: 66px;
	height: auto;
	flex-shrink: 0;
	display: flex;
	justify-content: center;
	align-items: center;
}
.place-bnr > img {
	width: 100%;
	object-fit: contain;
}
.map-info-details {
	width: 100%;
	display: flex;
	flex-flow: column;
	gap: 18px;
	letter-spacing: 0.1em;
}
.map-info-details > dl {
	width: 100%;
	display: flex;
	align-items: baseline;
	gap: 15px;
	color: #6b5251;
	font-family: var(--font-noto);
	font-weight: 300;
}
.map-info-details > dl > dt {
	width: 80px;
	flex-shrink: 0;
}
.map-info-details > dl > dd {
	width: 100%;
	padding-left: 10px;
	border-left: 1px solid;
}
.map-info-details dd a {
	text-decoration: underline;
}
.slick-slide {
  opacity: .4;
  transition: opacity .5s;
}
.slick-center {
  opacity: 1;
}
/* =========================
   Case Tabs: 2列・角丸ボタン
   ========================= */
.case-tabs-area{
  --tab-bg: #ECE7E2;
  --tab-text: #6b5251;
  --tab-border: #E5E7EB;
  --tab-hover-bg: #eed6cc;
  --tab-active-bg: #6b5251;
  --tab-active-text: #fff;
  --tab-radius: 5px;
}

.case-tabs {
	margin-bottom: 30px;
	padding: 0 30px;
}

.case-tabs__list{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr)); /* 常に2列 */
  gap: 12px;              /* ボタン間余白 */
  margin: 0;
  padding: 0;
  list-style: none;
}

.case-tabs__list li{ margin: 0; }

.case-tab{
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;

  padding: 12px 16px;
  border-radius: var(--tab-radius);
  border: 1px solid var(--tab-border);
  background: var(--tab-bg);
  color: var(--tab-text);
  font-size: 14px;
  line-height: 1.2;
  letter-spacing: .02em;
  cursor: pointer;

  box-shadow: var(--tab-shadow);
  transition: background .2s, color .2s, border-color .2s, box-shadow .2s, transform .05s;
  -webkit-appearance: none;
  appearance: none;
  background-clip: padding-box;
  -webkit-tap-highlight-color: transparent;
}

.case-tab:hover{ background: var(--tab-hover-bg); }
.case-tab:active{ transform: translateY(1px); }
.case-tab:focus-visible{ outline: 2px solid #2563EB; outline-offset: 2px; }

.case-tab.is-active,
.case-tab[aria-selected="true"]{
  background: var(--tab-active-bg);
  color: var(--tab-active-text);
  border-color: var(--tab-active-bg);
}

/* 読み込み中の見た目を少しだけ（任意） */
.case-tabs-area.is-loading .case-tab{
  pointer-events: none;
  opacity: .7;
}

.case_link_btn {
	display: inline-block;
	margin-top: 30px;
	padding: 5px 30px;
	background-color: #988685;
	border-radius: 30px;
	color: #ffffff;
}

