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

@font-face {
	font-family: 'Avenir-UL';
	src: url('../fonts/AvenirNextCondensed-UltraLight.woff') format('woff');
}

@font-face {
	font-family: 'Avenir-UL2';
	src: url('../fonts/AvenirNextCondensed-UltraLight.woff2') format('woff2');
}

@font-face {
	font-family: 'Avenir-R';
	src: url('../fonts/AvenirNextCondensed-Regular.woff') format('woff');
}

@font-face {
	font-family: 'Avenir-R2';
	src: url('../fonts/AvenirNextCondensed-Regular.woff2') format('woff2');
}

*,
body,
html {
	margin: 0;
	padding: 0;
	color: var(--text-color);
	font-family: 'Noto Sans JP', sans-serif;
	font-size: min(20px, 3.846vw);
	font-weight: normal;
	font-feature-settings: 'palt';　
	letter-spacing: .04em;
	line-height: 2;
	scroll-behavior: smooth;
}

:root {
	--text-color: #4D5764;
	--blue-color40: #4080e9;
	--blue-color53: #5396FB;
	--water-color: #00AEEB;
	--gray-color: #f4f4f5;
	--pink-color: #cf5779;
	--red-color: #EF2C5B;
}

.white {
	color: #ffffff;
}

.b600 {
	font-weight: 600;
}

.b500 {
	font-weight: 500;
}

.lp_wrapper {
	margin: 0 auto;
	width: min(780px, 100vw);
	background: #ffffff;
	filter: drop-shadow(0 0 6px rgba(0, 0, 0, .1));
}

section {
	margin: 0 auto;
	padding: 0;
	width: 100%;
	position: relative;
}

h2 {
	margin: 0.25em auto .5em !important;
	font-family: 'Noto Serif JP', serif;
	font-size: 2.25rem !important;
	font-weight: 500 !important;
	text-align: center;
}

section > p {
	margin: 0 auto;
	width: 90%;
	letter-spacing: .06em;
	position: relative;
}

#btn_cv {
	margin: 0 auto;
	width: min(780px, 100vw) !important;
	position: fixed;
	bottom: 1rem;
	right: 0;
	left: 0;
	z-index: 10;
}

#btn_cv::before {
	content: '簡単！';
	display: block;
	padding: .75em 0 0;
	width: min(86px, 15vw);
	height: min(86px, 15vw);
	background: #ffffff;
	border: .15rem solid var(--red-color);
	border-radius: 50%;
	font-size: .75rem;
	font-weight: 900;
	text-align: center;
	position: absolute;
	top: -1.25rem;
	right: 6rem;
	z-index: 1;
}

#btn_cv::after {
	content: '入力1分';
	display: block;
	color: var(--red-color);
	width: min(86px, 15vw);
	font-size: .9rem;
	font-weight: 900;
	line-height: 1;
	text-align: center;
	position: absolute;
	top: .8rem;
	right: 6rem;
	z-index: 2;
}

.fuwafuwa {
	-webkit-animation-name:fuwafuwa;
	-webkit-animation-duration:2s;
	-webkit-animation-iteration-count:infinite;
	/*-webkit-animation-direction:alternate;*/
	-webkit-animation-timing-function:ease;

	-moz-animation-name:fuwafuwa;
	-moz-animation-duration:2s;
	-moz-animation-iteration-count:infinite;
	/*-moz-animation-direction:alternate;*/
	-moz-animation-timing-function:ease;
}
@-webkit-keyframes fuwafuwa {
	0% {-webkit-transform:translate(0, 0);}
	50% {-webkit-transform:translate(0, -.75rem);}
	100% {-webkit-transform:translate(0, 0);}
}
@-moz-keyframes fuwafuwa {
	0% {-moz-transform:translate(0, 0);}
	50% {-moz-transform:translate(0, -.75rem);}
	100% {-moz-transform:translate(0, 0);}
}

#mv01 {
	height: min(1280px, 164.1vw);
	background: url(../images/bg_mv01.webp) no-repeat 50% 0;
	background-size: cover;
	position: relative;
}

/*
#mv01 {
	height: min(1280px, 100svh);
	background: url(../images/bg_mv_woman.webp) no-repeat -200px -160px, url(../images/bg_mv00.webp) no-repeat 50% 0;
	background-size: 870px, cover;
	position: relative;
}
*/
#mv01 h1 {
	width: 40.38%;
	aspect-ratio: 315/457;
	background: url(../images/img_coolsculp00.webp) no-repeat 0 100%;
	background-size: 98%;
	position: absolute;
	top: 7.35rem;
	right: 5%;
}

#mv01 h1 :is(strong, small) {
	display: block;
	color: var(--blue-color40);
	font-size: 2rem;
	font-weight: 600;
	line-height: 1.25;
	text-align: right;
	letter-spacing: .06em;
	position: absolute;
	top: 1.1em;
	right: 0;
}

#mv01 h1 strong {
	-webkit-text-stroke: .4rem #ffffff;
	text-stroke: .4rem #ffffff;
	paint-order: stroke;
}

#mv01 h1 small {
	font-size: .625rem;
	top: 49%;
	right: 2%;
}

#mv01 h1 .osusume {
	display: block;
	width: 64.8%;
	aspect-ratio: 420/178;
	position: absolute;
	top: 0;
	left: 6%;
}

#mv01 .logo {
	width: 27%;
	position: absolute;
	top: 2rem;
	right: 5%;
}

#mv01 .logo::after {
	content: 'in NARA';
	padding: 0 .65em;
	background: var(--text-color);
	color: #ffffff;
	font-family: 'Noto Serif JP', serif;
	font-size: .9rem;
	line-height: 1.1;
	letter-spacing: .1em;
	position: absolute;
	top: 115%;
	right: 0;
}

#mv01 .logo img {
	display: block;
}

#mv01 ul {
	display: inline-flex;
	flex-wrap: wrap;
	width: 12em;
	font-size: 1.75rem;
	gap: .25em 0;
	position: absolute;
	top: 2rem;
	left: 5%;
}

#mv01 ul li {
	padding: 0 .5em;
	background: var(--blue-color40);
	color: #ffffff;
	font-family: 'Noto Serif JP', serif;
	font-size: inherit;
}

#mv01 ul li:nth-child(2) {
	background: var(--water-color);
}

#mv01 .main01 {
	width: 92.3%;
	position: absolute;
	bottom: 80px;
	right: 5%;
}

#mv01 .main01 img {
	display: block;
	width: 100%;
}

#mv01 .main01 p {
	display: flex;
	flex-wrap: wrap;
	margin: 1.5em 0 0;
	font-size: .6rem;
	line-height: 1.5;
	text-align: right;
	justify-content: flex-end;
}

#mv01-2 {
	aspect-ratio: 780/1083;
	background: url(../images/bg_mv01-2.webp) no-repeat 50% 0;
	background-size: cover;
	position: relative;
}

#mv01-2 .img_woman {
	width: 22%;
	aspect-ratio: 172/313;
	position: absolute;
	top: 9.6%;
	right: 4%;
}

#mv01-2 h2 {
	margin: 0 auto;
	width: 100%;
	color: #ffffff;
	font-size: 2.1rem !important;
	font-weight: 400 !important;
	line-height: 1;
	position: absolute;
	top: 12%;
	right: 0;
	left: 0;
}

#mv01-2 h2::after {
	content: '';
	width: 68.6%;
	aspect-ratio: 107/63;
	background: url(../images/copy_mv01-2.webp) no-repeat 50% 50%;
	background-size: cover;
	position: absolute;
	top: -125%;
	left: 5%;
}

#mv01-2 h3 {
	display: flex;
	padding: 0 .5em 0 0;
	width: 100%;
	height: min(120px, 15.38vw);
	background: var(--blue-color40);
	color: #ffffff;
	font-family: 'Noto Serif JP', serif;
	font-size: 3rem !important;
	font-weight: 600;
	letter-spacing: .06em;
	justify-content: flex-end;
	align-items: baseline;
	position: absolute;
	top: 38%;
	left: 0;
}

#mv01-2 h3 span {
	color: inherit;
	font-family: inherit;
	font-size: 90%;
	font-weight: inherit;
	letter-spacing: .06em;
	position: relative;
}

#mv01-2 h4 {
	color: var(--blue-color40);
	font-size: .9rem;
	font-weight: 600;
	line-height: 1.35;
	text-align: right;
	position: absolute;
	top: 61%;
	right: 5%;
	z-index: 2;
}

#mv01-2 h5 {
	display: flex;
	padding: .45em 0 .5em;
	width: 7em;
	border: 1px solid;
	color: var(--blue-color40);
	font-size: 1.2rem;
	font-weight: 600;
	line-height: 1;
	justify-content: center;
	align-items: center;
	position: absolute;
	top: 67%;
	right: 5%;
	z-index: 2;
}

#mv01-2 .cool_sculp {
	width: 95.13%;
	position: absolute;
	right: 4%;
	bottom: 8.86%;
	z-index: 1;
}

#mv01-2 ul {
	display: flex;
	width: 70%;
	justify-content: space-between;
	position: absolute;
	bottom: 7.66%;
	right: 5%;
	z-index: 2;
}

#mv01-2 ul li {
	display: flex;
	flex-wrap: wrap;
	width: 32%;
	aspect-ratio: 1/1;
	background: rgba(152, 129, 0, .9) url(../images/bg_copy-mv01-2.webp) no-repeat; 50% 50%;
	background-size: cover;
	border-radius: 50%;
	justify-content: center;
	align-items: center;
}

#mv01-2 ul li :is(p, p small) {
	color: #ffffff;
	font-family: 'Noto Serif JP', serif;
	font-size: 1.3rem;
	font-weight: 600;
	line-height: 1.25;
	text-align: center;
}

#mv01-2 ul li p small {
	font-size: 80% !important;
}

#mv01-2 > p {
	width: 90%;
	font-size: .9rem;
	line-height: 1.5;
	text-align: right;
	position: absolute;
	bottom: 3.6%;
	left: 5%;
}

#about_cs {
	padding: 8rem 0 5rem;
	background: url(../images/bg_aboutcs01.webp) no-repeat 50% 0;
	background-size: cover;
}

#about_cs h2 {
	color: #ffffff;
	font-size: 2.75rem !important;
	line-height: 1.25 !important;
	position: relative;
}

#about_cs h2 small {
	display: block;
	color: inherit;
	font-family: inherit;
	font-size: 47%;
	line-height: inherit;
}

#about_cs h2::before {
	content: '';
	width: 2.625rem;
	height: 2.55rem;
	background: url(../images/icon_attention.webp) no-repeat 50% 50%;
	background-size: cover;
	position: absolute;
	top: -.15em;
	left: 19%;
}

#about_cs p {
	color: #ffffff;
}

#about_cs figure {
	display: block;
	margin: 1rem auto;
	width: 90%;
	position: relative;
	z-index: 1;
}

#about_cs figure::before {
	content: '';
	width: 10rem;
	aspect-ratio: 330/536;
	background: url(../images/img_aboutcs02.webp) no-repeat 50% 50%;
	background-size: cover;
	position: absolute;
	top: -12.5rem;
	right: -.5rem;
	z-index: -1;
}

#monitor {
	padding: 3rem 0 4rem;
	background: #D9EBFF;
}

#monitor h2 {
	margin: 0 0 .5em !important;
}

#monitor img {
	display: block;
	margin: 0 auto;
	padding: 0 0 3rem;
	width: 90%;
	background: #ffffff;
	border-radius: 1rem;
	filter: drop-shadow(.2rem .2rem .2rem rgba(0, 0, 0, .25));
}

#repeat {
	padding: 5rem 0 0;
}

#repeat h2 {
	margin: 0 !important;
	line-height: 1.65 !important;
}

#repeat h2 :is(strong, strong span) {
	color: var(--red-color);
	font-family: inherit;
	font-size: inherit;
	font-weight: 600;
	position: relative;
	line-height: inherit;
}

#repeat h2.h2_l02 {
	margin-bottom: .5em !important;
	font-size: 2.75rem !important;
}


#mv01-2 h3 span::before,
#repeat h2 strong span::before {
	content: '';
	margin: 0 auto;
	width: .2em;
	height: .2em;
	background: var(--red-color);
	border-radius: 50%;
	position: absolute;
	top: -.08em;
	right: 0;
	left: 0;
}

#mv01-2 h3 span::before {
	background: #ffffff;
	top: .2em;
}

#repeat .your_problem {
	margin: 0;
	padding: 5rem 0 0;
	aspect-ratio: 780/1530;
	background: url(../images/bg_repeat02.webp) no-repeat 50% 100%;
	background-size: cover;
}

#repeat .your_problem h3 {
	color: #ffffff;
	font-family: 'Avenir-UL2', sans-serif;
	font-size: 2.75rem;
	text-align: center;
	letter-spacing: .1em;
}

#repeat .your_problem .problem {
	display: flex;
	flex-wrap: wrap;
	width: 12rem;
	height: 12rem;
	background: #ffffff;
	border-radius: 50%;
	font-family: 'Noto Serif JP', serif;
	font-size: 1.75rem;
	font-weight: 600;
	text-align: center;
	line-height: 1.35;
	justify-content: center;
	align-items: center;
	box-shadow: 0 0 .3rem .2rem #dadada inset;
	position: absolute;
	top: 38%;
	left: 5%;
}

#repeat .your_problem .problem::before {
	content: '';
	margin: auto;
	width: 90%;
	height: 90%;
	border: 1px solid var(--text-color);
	border-radius: 50%;
	position: absolute;
	top: 0;
	bottom: 0;
	right: 0;
	left: 0;
}

#repeat .your_problem .problem02 {
	line-height: 1.6;
	top: 52.5%;
}

#repeat .your_problem .problem03 {
	line-height: 1.6;
	top: 67%;
}

#repeat .your_problem :is(.problem04, .problem05, .problem06) {
	line-height: 1.6;
	top: 28%;
	left: auto;
	right: 5%;
}

#repeat .your_problem .problem05 {
	top: 42.5%;
}

#repeat .your_problem .problem06 {
	top: 57%;
}

#repeat .your_problem .problem :is(div, strong, small) {
	font-family: inherit;
	font-size: inherit;
	font-weight: inherit;
	line-height: inherit;
}

#repeat .your_problem .problem small {
	font-size: 85.7%;
}

#repeat .your_problem .problem strong {
	color: var(--red-color);
}

#repeat .your_problem p {
	padding: .75em 7em .75em 2em;
	width: 90%;
	background: linear-gradient(to bottom, #ffffff .5rem, var(--text-color) .5rem, var(--text-color) calc(.5rem + 1px), #ffffff calc(.5rem + 1px), #ffffff calc(100% - .5rem), var(--text-color) calc(100% - .5rem), var(--text-color) calc(100% - .5rem + 1px), #ffffff calc(100% - .5rem + 1px));
	border-top: 1px solid var(--text-color);
	border-bottom: 1px solid var(--text-color);
	font-size: 1.25rem;
	line-height: 1.65;
	filter: drop-shadow(.4rem .4rem 0 var(--text-color));
	position: absolute;
	bottom: 4rem;
	left: 5%;
}

#repeat .your_problem p strong {
	color: var(--red-color);
	font-size: inherit;
	line-height: inherit;
}

#repeat .your_problem img {
	margin: 0 auto;
	width: 12.7rem;
	aspect-ratio: 254/69;
	filter: none;
	position: absolute;
	bottom: 13.5rem;
	right: 0;
	left: 0;
	z-index: 2;
}

#repeat .your_problem img:nth-of-type(2) {
	width: 9.35rem;
	aspect-ratio: 374/550;
	position: absolute;
	bottom: 4rem;
	right: 8%;
	left: auto;
}

#trouble {
	padding: 10rem 0 5rem;
	background: url(../images/bg_trouble01.webp) no-repeat 50% 0;
	background-size: cover;
	z-index: 1;
}

#trouble .small_tit {
	margin: 0 auto 7rem;
	font-family: 'Avenir-R2', sans-serif;
	font-size: 1.75rem;
	text-align: center;
	line-height: 1;
	letter-spacing: .06em;
	position: relative;
}

#trouble .small_tit::after {
	content: '';
	margin: 0 auto;
	width: 2.2rem;
	height: 3.95rem;
	background: url(../images/icon_thunder.svg) no-repeat 50% 50%;
	background-size: cover;
	position: absolute;
	bottom: -5.25rem;
	right: 0;
	left: 0;
}

#trouble :is(h2, h3) {
	display: flex;
	padding: .1em 0 .3em !important;
	width: 90%;
	background: #ffffff;
	font-family: unset;
	line-height: 1 !important;
	font-weight: 600 !important;
	justify-content: center;
	align-items: baseline;
}

#trouble h2 {
	margin: 0 auto .75rem !important;
	font-size: 1.75rem !important;
	letter-spacing: .02em;
	position: relative;
}

#trouble h2::before {
	content: '';
	width: min(184px, 23.6vw);
	aspect-ratio: 184/248;
	background: url(../images/img_trouble00.webp) no-repeat 50% 50%;
	background-size: cover;
	position: absolute;
	top: max(-248px, -31.79vw);
	left: 5%;
}

#trouble h2 strong {
	color: var(--red-color);
	font-family: inherit;
	font-size: 138%;
	font-weight: inherit;
	line-height: inherit;
}

#trouble h2 strong small {
	color: inherit;
	font-size: 1.75rem;
	font-weight: inherit;
	line-height: inherit;
}

#trouble h3 {
	margin: 0 auto 1.25em !important;
	color: var(--red-color);
	font-family: 'Noto Serif JP', serif;
	font-size: 3rem;
	letter-spacing: -.03em;
}

#trouble h3 :is(strong, span) {
	font-family: inherit;
	font-size: 117%;
	font-weight: inherit;
	line-height: inherit;
}

#trouble h3 span {
	color: inherit;
	font-size: 138%;
}

#trouble ul {
	display: flex;
	flex-wrap: wrap;
	margin: 0 auto;
	width: 90%;
	gap: 3rem 0;
}

#trouble ul li {
	padding: 2rem 5% 3rem;
	background: #ffffff;
	border-radius: 7rem 0 0 0;
	position: relative;
}

#trouble ul li:nth-child(2) {
	border-radius: 0 7rem 0 0;
}

#trouble ul li::before {
	content: '';
	width: 38.5%;
	aspect-ratio: 270/232;
	background: url(../images/img_trouble01.webp) no-repeat 50% 50%;
	background-size: cover;
	position: absolute;
	top: 0;
	right: 0;
	z-index: 0;
}

#trouble ul li:nth-child(2)::before {
	background: url(../images/img_trouble02.webp) no-repeat 50% 50%;
	background-size: cover;
	position: absolute;
	top: 0;
	right: auto;
	left: 0;
}

#trouble ul li:nth-child(3)::before {
	background: url(../images/img_trouble03.webp) no-repeat 50% 50%;
	background-size: cover;
}

#trouble ul li:nth-child(2) > div {
	float: right;
}

#trouble ul li :is(code, code small) {
	color: #CBCFD5;
	font-family: 'Noto Serif JP', serif;
	font-size: 5.25rem;
	line-height: 1;
	letter-spacing: .06em;
	position: relative;
}

#trouble ul li code::after {
	content: '';
	width: 100%;
	height: 1px;
	border-bottom: .25rem dotted;
	position: absolute;
	bottom: .125em;
	left: 0;
}

#trouble ul li code::before {
	content: 'Trouble';
	font-size: 16%;
	letter-spacing: .03em;
	position: absolute;
	top: 4.75em;
	left: 1.75em;
}


#trouble ul li code small {
	margin-right: .2em;
	font-size: 38%;
}

#trouble ul li h4 {
	margin: 0 0 .25em;
	font-family: 'Noto Serif JP', serif;
	font-size: 2.7rem;
	font-weight: 600;
}

#trouble ul li p {
	letter-spacing: .06em;
	clear: both;
}

#trouble ul li p strong {
	color: var(--red-color);
}

#point {
	display: flex;
	height: min(370px, 60vw);
	background: var(--blue-color53) url(../images/bg_point01.webp) no-repeat 92% 100%;
	background-size: 27%;
	justify-content: center;
	align-items: center;
}

#point h4 {
	color: #ffffff;
	font-family: 'Avenir-R2', sans-serif;
	font-size: 1.75rem;
	line-height: 1;
	position: relative;
	top: -.5em;
}

#point h4::after {
	content: '';
	margin: 0 auto;
	width: min(94px, 12.05vw);
	aspect-ratio: 50/53;
	background: url(../images/icon_light_w.svg) no-repeat 50% 50%;
	background-size: cover;
	position: absolute;
	bottom: -3.5em;
	right: 0;
	left: 0;
}

#three_points {
	padding-bottom: 5rem;
	background: var(--blue-color53);
}

#three_points ul {
	display: flex;
	flex-wrap: wrap;
	margin: 0 auto;
	width: 90%;
	gap: 3rem 0;
}

#three_points ul li {
	padding: 0 5% 4rem;
	background: #ffffff;
	border-radius: 2em;
}

#three_points ul li code {
	display: block;
	margin: 0;
	color: var(--blue-color40);
	font-size: 5rem;
	font-family: 'Noto Serif JP', serif;
	font-weight: 400;
}

#three_points ul li code small {
	margin-right: .25em;
	color: inherit;
	font-size: 1.6rem;
	font-family: inherit;
	font-weight: 400;
	letter-spacing: .06em;
	position: relative;
}

#three_points ul li code small::before {
	content: '';
	margin: 0 auto;
	width: 2.5rem;
	aspect-ratio: 50/53;
	background: url(../images/icon_light.svg) no-repeat 50% 50%;
	background-size: cover;
	position: absolute;
	top: -1.5em;
	right: 0;
	left: 0;
}

#three_points ul li :is(h3, h4),
#three_points ul li h3 span {
	margin: .25em 0 .5em;
	font-family: 'Noto Serif JP', serif;
	font-size: 2.5rem;
	font-weight: 600;
	line-height: 1.35;
	position: relative;
	z-index: 1;
}

#three_points ul li h4 {
	margin: 0 0 .5em;
	font-size: 1.75rem;
}

#three_points ul li h3::after {
	content: '';
	width: 100%;
	aspect-ratio: 620/84;
	background: url(../images/logo_water.svg) no-repeat 50% 50%;
	background-size: 100%;
	position: absolute;
	top: -1em;
	left: 0;
	z-index: -1;
}

#three_points ul li h3 span {
	letter-spacing: -.25em;
}

#three_points ul li :is(p, p u, p strong) {
	letter-spacing: .06em;
}

#three_points ul li p u {
	font-weight: 600;
	text-decoration: none;
	background: linear-gradient(to bottom, transparent 60%, #FFFF34 60%);
}

#three_points ul li:first-child img {
	margin: 4em 0 1.5em;
}

#three_points ul li p strong {
	display: block;
	margin: 2em 0 3em;
}

#three_points ul li:nth-child(3) img {
	margin: 2em 0 0;
	aspect-ratio: 3/2;
	object-fit: cover;
}

#mv02 {
	height: min(1014px, 130vw);
	background: url(../images/bg_mv02.webp) no-repeat 50% 50%;
	background-size: cover;
	position: relative;
}

#mv02 .logo {
	width: 27%;
	position: absolute;
	top: 3rem;
	left: 5%;
}

#mv02 .copy_mv02 {
	width: 94.29%;
	position: absolute;
	bottom: 1rem;
	left: .9%;
}

#mv02 ul {
	display: inline-flex;
	flex-wrap: wrap;
	width: 18em;
	gap: .5em 0;
	position: absolute;
	top: 3rem;
	right: 1rem;
}

#mv02 ul li {
	padding: 0 .5em;
	background: var(--blue-color40);
	color: #ffffff;
	font-family: 'Noto Serif JP', serif;
	font-size: 1.5rem;
	font-weight: 600;
	line-height: 2.2;
	letter-spacing: .1em;
}

#mv02 ul li:nth-child(2) {
	background: var(--water-color);
}

#cool_sculp {
	height: min(208px, 26.67vw);
	background: linear-gradient(to bottom, var(--blue-color40) 16.8%, #ffffff 16.8%);
	position: relative;
}

#cool_sculp img {
	width: 92%;
	position: absolute;
	bottom: 6.5%;
	left: 4%;
}

#inquiry {
	margin: 0 auto;
	padding: 3em 0 2.5em;
	background: linear-gradient(to bottom, #5ac056, #17a93a);
	text-align: center;
	position: relative;
}

#inquiry p {
	color: #ffffff;
	font-family: 'Noto Serif JP', serif;
	font-size: 2rem;
	font-weight: 600;
	line-height: 1.35;
	position: relative;
}

#inquiry p span{
	font-size: 1rem;
	font-family: inherit;
	font-weight: inherit;
	color: inherit;
	display: inline-block;
	margin-bottom: 4px;
}

#inquiry p::before,
#inquiry p::after {
	content: '';
	width: 1px;
	height: 2em;
	background: #ffffff;
	transform: skew(40deg);
	position: absolute;
	bottom: .2em;
	left: 2em;
}

#inquiry p::after {
	transform: skew(-40deg);
	left: auto;
	right: 2em;
}

:is(#btn_cv, #inquiry) a {
	display: flex;
	flex-wrap: wrap;
	margin: 1em auto .75em;
	padding: .5em 0;
	width: 90%;
	background: #ffffff;
	border-radius: 2em;
	/* color: var(--blue-color40); */
	color: #17a93a;
	font-family: 'Noto Serif JP', serif;
	font-size: 1.5rem;
	font-weight: 600;
	line-height: 1.35;
	justify-content: center;
	align-items: center;
	/* filter: drop-shadow(0 0 6px var(--blue-color40)); */
	position: relative;
}

#btn_cv a {
	margin: 0 auto;
	background: linear-gradient(to bottom, #5ac056, #17a93a);
	border: .2rem solid #ffffff;
	color: #ffffff;
}

:is(#btn_cv, #inquiry) a::before {
	display: none;
	content: '';
	margin: auto 0;
	width: 1.2em;
	height: 1.2em;
	background: #ffffff;
	border: 1px solid var(--blue-color40);
	border-radius: 50%;
	position: absolute;
	top: 0;
	bottom: 0;
	right: 1.35em;
}

:is(#btn_cv, #inquiry) a::after {
	display: none;
	content: '';
	margin: auto 0;
	width: .7em;
	height: .5em;
	clip-path: polygon(0 0, 100% 0%, 50% 100%);
	background: var(--blue-color40);
	position: absolute;
	top: .06em;
	bottom: 0;
	right: 1.6em;
}

:is(#btn_cv, #inquiry) a span {
	display: block;
	width: 100%;
	color: inherit;
	font-family: inherit;
	font-size: 1.75rem;
	font-weight: inherit;
	line-height: inherit;
	text-align: center;
}

#inquiry small {
	display: block;
	color: #ffffff;
	font-family: 'Avenir-R2', sans-serif;
	font-size: .8rem;
	letter-spacing: .2em;
}

#flow,
#res_form {
	padding: 5rem 0 5rem;
	background: var(--gray-color);
	z-index: 2;
}

#flow ul {
	display: flex;
	flex-wrap: wrap;
	margin: 0 auto;
	width: 90%;
	gap: 1rem 0;
}

#flow ul:first-of-type {
	margin-top: 3rem;
}

#flow ul:nth-of-type(4) {
	margin-bottom: 4rem;
}

#flow ul li h3 {
	margin: 0;
	padding: 0 0 0 2.5em;
	font-family: 'Noto Serif JP', serif;
	font-size: 2rem;
	font-weight: 600;
	position: relative;
}

#flow ul:nth-of-type(4) li h3 {
	letter-spacing: -.06em;
}

#flow ul li h3::before {
	content: 'STEP';
	display: inline-block;
	padding: .1em 0 0;
	width: 4rem;
	height: 4rem;
	background: #ffffff;
	border: 1px solid var(--text-color);
	border-radius: 50%;
	font-family: 'Noto Serif JP', serif;
	font-style: normal;
	font-size: .8rem;
	font-weight: 300;
	text-align: center;
	letter-spacing: .04em !important;
	position: absolute;
	top: 0;
	left: 0;
}

#flow ul li h3::after {
	content: '01';
	padding: 0;
	width: 4rem;
	font-size: 2.25rem;
	font-weight: 300;
	text-align: center;
	letter-spacing: .04em !important;
	position: absolute;
	top: 0;
	left: 0;
}

#flow ul:nth-of-type(2) li h3::after {
	content: '02';
}

#flow ul:nth-of-type(3) li h3::after {
	content: '03';
}

#flow ul:nth-of-type(4) li h3::after {
	content: '04';
}

#flow ul li img {
	display: block;
	width: 100%;
	aspect-ratio: 70/32;
	border: 1px solid var(--text-color);
	object-fit: cover;
}

:is(#mv01-2, #flow) .flow_arrow {
	margin: .5rem auto 2rem;
	width: min(110px, 16vw);
	height: min(110px, 16vw);
	transform: skew(18deg, 18deg);
	rotate: -45deg;
	border-left: 1px solid var(--text-color);
	border-bottom: 1px solid var(--text-color);
}

#mv01-2 .flow_arrow {
	margin: 0 auto;
	padding: 0;
	border-color: #ffffff;
	position: absolute;
	top: -1%;
	right: 0;
	left: 0;
}

#clinics {
	padding: 4rem 0 5rem;
	background: var(--blue-color53);
}

#trouble::before,
:is(#trouble, .l_inq, #flow, #clinics)::after {
	content: '';
	margin: 0 auto;
	width: 1px;
	height: 8.45rem;
	background: var(--gray-color);
	position: absolute;
	bottom: -6rem;
	right: 0;
	left: 0;
	z-index: 2;
}

#trouble::before,
:is(#trouble, .l_inq, #flow)::after {
	background: var(--text-color);
	z-index: 1;
}

#trouble::before {
	bottom: auto;
	top: 0;
}

#trouble::after {
	bottom: -5rem;
}

.l_inq::after {
	bottom: -8.45rem !important;
}

.ul_clinic {
	display: flex;
	flex-wrap: wrap;
	margin: 0 auto;
	padding: 0;
	width: 90%;
	gap: 1.5rem 0;
}

.ul_clinic li {
	display: flex;
	flex-wrap: wrap;
	padding: 0 0 0 2rem;
	width: 50%;
	height: 15rem;
	background: #ffffff;
	border-radius: 2.5rem 0 0 2.5rem;
	align-items: center;
}

.ul_clinic li > div {
	font-family: 'Noto Serif JP', serif;
}

.ul_clinic li h3 {
	display: inline-block;
	padding: 1em 0 0;
	width: auto;
	font-family: inherit;
	font-size: 1.5rem;
	font-weight: 600;
	text-align: center;
	letter-spacing: 0;
	position: relative;
}

.ul_clinic li:nth-child(3) h3 {
	padding: 1em 2em 0;
}

.ul_clinic li h3 small {
	margin: 0 auto;
	font-family: inherit;
	font-size: 70%;
	text-align: center;
	white-space: nowrap;
	position: absolute;
	top: 0;
	right: 0;
	left: 0;
}

.ul_clinic li :is(a, time, address) {
	display: block;
	padding: 0 0 0 1.2rem;
	font-family: inherit;
	font-size: 1.25rem;
	line-height: 1.5;
	position: relative;
}

.ul_clinic li a {
	margin: .25em 0 0;
	color: var(--blue-color40);
	font-weight: 600;
}

.ul_clinic li :is(a, time, address)::before {
	content: '';
	width: .8em;
	height: 1em;
	background: url(../images/icon_tel.svg) no-repeat 50% 50%;
	background-size: cover;
	position: absolute;
	top: .35em;
	left: 0;
}

.ul_clinic li time::before {
	width: .9em;
	height: .9em;
	background: url(../images/icon_time.svg) no-repeat 50% 50%;
	background-size: cover;
}

.ul_clinic li address::before {
	width: 1em;
	height: 1.555em;
	background: url(../images/icon_location.svg) no-repeat 50% 50%;
	background-size: cover;
	left: .1em;
}

.ul_clinic li time {
	margin: .25em 0 .5em;
	font-size: 1rem;
}

.ul_clinic li address {
	font-size: .75rem;
}

.ul_clinic li:nth-child(2n) {
	padding: 0 2rem 0 0;
	border-radius: 0 2.5rem 2.5rem 0;
}

:is(#flow, #clinics, #res_form)::before {
	content: 'Reservation Form';
	margin: 0 auto;
	font-family: 'Avenir-R2', sans-serif;
	font-size: 1.75rem;
	text-align: center;
	letter-spacing: .06em;
	position: absolute;
	top: -2em;
	right: 0;
	left: 0;
}

#flow::before {
	content: 'Flow';
}

#clinics::before {
	content: 'Clinic';
	color: #ffffff;
}

:is(#flow, #clinics, #res_form) h2::before {
	content: '';
	margin: 0 auto;
	width: 1em;
	height: 1.5em;
	background: url(../images/icon_form.svg) no-repeat 50% 50%;
	background-size: cover;
	position: absolute;
	top: 0.2rem;
	right: 0;
	left: 0;
}

#clinics h2::before {
	width: 1.32em;
	height: 1.2em;
	background: url(../images/icon_clinic.svg) no-repeat 50% 50%;
	background-size: cover;
}

#flow h2::before {
	width: 1.46em;
	height: 1.4em;
	background: url(../images/icon_flow.svg) no-repeat 50% 50%;
	background-size: cover;
}

.res_today {
	margin: 2em auto 0;
	padding: 1.5em 2em;
	background: #ffffff;
	font-size: .875rem;
}

.res_today strong {
	display: block;
	margin: 1em 0 0;
	padding: 0 0 0 1em;
	font-size: inherit;
	color: var(--pink-color);
}

.res_today strong a {
	font-size: inherit;
	font-weight: inherit;
}

.wave01 {
	margin: 0 auto;
	width: 100%;
	background-color: var(--gray-color); /* 上部背景色 */
	position: relative;
}

.wave03 {
	padding-top: 2.45rem;
	background: #ffffff;
}

.wave01 svg {
	display: block;
	background-color: var(--blue-color53); /* 下部背景色 */
}

.wave02 svg {
	background-color: var(--gray-color); /* 下部背景色 */
}

.wave03 svg {
	background-color: #ffffff; /* 下部背景色 */
}

.wave04 {
	padding: min(570px, 92vw) 0 0;
	background: url(../images/bg_threepoints01.webp) no-repeat 50% 0;
	background-size: cover;
}

.wave04 svg {
	background-color: transparent;
}

/* つのポイント */
.wave04 p {
	padding: 1.25em 0 0;
	background: #ffffff;
	color:var(--blue-color40);
	font-family: 'Noto Serif JP', serif;
	font-size: 4rem;
	-ms-writing-mode: tb-rl;
	writing-mode: vertical-rl;
	text-orientation: upright;
	line-height: 1;
	letter-spacing: 0;
	position: absolute;
	top: 3rem;
	right: 25%;
}

/* ３ */
.wave04 p span {
	visibility: hidden;
}

.wave04 p:nth-of-type(1)::before {
	content: '3';
	font-size: 7rem;
	position: absolute;
	top: -.1em;
	left: -.2em;
}

/* ピュアクリニックの */
.wave04 p:nth-of-type(2) {
	padding: 0;
	font-size: 2.7rem;
	letter-spacing: .125em;
	right: 15%;
}

/* 理想の体を叶える */
.wave04 p:nth-of-type(3) {
	padding: 0;
	background: var(--blue-color40);
	color: #ffffff;
	font-size: 2.7rem;
	letter-spacing: .2em;
	right: 5%;
}

.wave04 > img {
	width: 27%;
	position: absolute;
	top: 3rem;
	left: 5%;
}


form {
	position: relative;
}

.form_contact {
	margin: 0 auto;
	padding: 1em 5%;
	width: 100%;
}

.form_contact h5 {
	margin: 1em auto 2em;
	padding: 0 0 .5em;
	border-bottom: 3px solid var(--pink-color);
	color: var(--pink-color);
	font-size: 1.75rem;
	font-weight: 600;
	text-align: center;
	position: relative;
}

.form_contact h5::after {
	content: '';
	margin: 0 auto;
	width: 1em;
	height: 1em;
	background: #ffffff;
	border-right: 3px solid var(--pink-color);
	border-bottom: 3px solid var(--pink-color);
	transform: rotate(45deg);
	position: absolute;
	bottom: -.6em;
	right: 0;
	left: 0;
}

.form_contact dl {
	display: flex;
	flex-wrap: wrap;
	margin-bottom: 1.5em;
	gap: .75em 0;
}

.form_contact dl :is(dt, dd) {
	width: 100%;
	line-height: 1.75;
}


.form_contact .btn_wrap {
	margin: 3em auto 2em;
	height: 3em;
	border: 3px solid;
	border-radius: 1.75em;
	font-family: 'Noto Serif JP', serif;
	font-size: 1.75rem;
	font-weight: 600;
	text-align: center;
	position: relative;
}

.form_contact .btn_wrap::before {
	content: '';
	margin: auto 0;
	width: 1em;
	height: 1em;
	border: 1px solid;
	border-radius: 50%;
	position: absolute;
	top: 0;
	bottom: 0;
	right: 1.25em;
}

.form_contact .btn_wrap::after {
	content: '';
	margin: auto 0;
	width: .4em;
	height: .5em;
	background: var(--text-color);
	clip-path: polygon(0 0, 0% 100%, 100% 50%);
	position: absolute;
	top: 0;
	bottom: 0;
	right: 1.5em;
}


.form_contact input[type="submit"] {
	display: block;
	width: 100%;
	height: 100%;
}

.wpcf7-response-output {
	margin: 0 auto !important;
	padding: .5em 1em !important;
	width: 100%;
	background: #ff0000;
	border: none !important;
	color: #ffffff;
	position: absolute;
	bottom: 0;
	right: 0;
	left: 0;
}

.flatpickr-calendar span,
.flatpickr-month {
	font-size: 1rem !important;
}

.note {
	margin: 0 auto;
	padding: 0 5% 6rem;
	width: 100%;
}

.note h6 {
	margin: 1em 0 0;
	font-weight: 600;
}

section.faq{
	background: #d9ebff;
	padding: 6rem 5% 3rem 5%;
}

.faq-title{
	width: 60%;
	margin: 0 auto 3rem auto;
	display: block;
}

.faq-item {
	overflow: hidden;
	border-radius: 0.5rem;
	margin-top: 1.2rem;
}
.faq-item:first {
	margin-top: 0;
}

.faq-item .question {
	color: #ffffff;
	background: var(--blue-color53);
	font-weight: bold;
	position: relative;
	padding: 0.5rem 2.5rem;
	font-size: 1.1rem;
}
.faq-item .question::before {
	position: absolute;
	content: "";
	top: 50%;
	left: 0.7rem;
	transform: translateY(-50%);
	width: 1.5rem;
	height: 1.3rem;
	display: block;
	background-image: url(../images/icon-q.png);
	background-size: contain;
	background-repeat: no-repeat;
}
.faq-item .question::after {
	position: absolute;
	content: "+";
	top: 50%;
	right: 1rem;
	transform: translateY(-50%);
	font-size: 1.1rem;
	color: #ffffff;
}
.faq-item .question.open::after{
	content: "-";
}
.faq-item .answer {
	display: none;
	background: #ffffff;
	padding: 0.5rem 0.8rem;
}



footer {
	margin: 0 auto;
	padding: 6rem 0 0;
	width: 100%;
	height: min(480px, 60vw);
	background: var(--blue-color53);
	color: #ffffff;
	font-size: .6rem;
	text-align: center;
}

footer img {
	display: block;
	margin: 0 auto 2em;
	padding: 0;
	width: 27%;
}

.pc_only {
	display: unset;
}

.sp_only {
	display: none;
}





@media (width < 780px) {
/*
#mv01 {
	background: url(../images/bg_mv_woman.webp) no-repeat -25.64vw -20.51vw, url(../images/bg_mv00.webp) no-repeat 50% 0;
	background-size: 111.54vw, cover;
}
*/

	#btn_cv::before {
		padding: .325em 0 0;
		font-size: .9rem;
		top: -1.5rem;
		right: 3.75rem;
	}

	#btn_cv::after {
		top: .425rem;
		right: 3.75rem;
	}

	#mv01 h1 {
		top: 5rem;
	}

	#mv01 h1 :is(strong, small) {
		font-size: 1.375rem;
		letter-spacing: 0;
	}

	#mv01 h1 small {
		font-size: .625rem;
		line-height: 1.1;
		top: 49%;
		right: 2%;
	}

	#mv01 .logo {
		width: 36%;
		top: 1.5rem;
	}

	#mv01 ul {
		font-size: 1.25rem;
		top: 1.5rem;
		gap: .25em 0;
	}

	#mv01 .main01 {
		bottom: 4%;
	}

	#mv01-2 .flow_arrow {
		top: -2%;
	}

	#mv01-2 .img_woman {
		width: 22%;
		top: 11.5%;
		right: 1%;
	}

	#mv01-2 h2 {
		font-size: 1.75rem !important;
		top: 11%;
	}


	#mv01-2 h2::after {
		content: '';
		width: 75%;
		background: url(../images/copy_mv01-2_sp.webp) no-repeat 50% 50%;
		background-size: cover;
		top: -115%;
		left: 1%;
	}

	#mv01-2 h3 {
		font-size: 2rem !important;
		top: 40%;
	}

	#mv01-2 h4 {
		line-height: 1.2;
		-webkit-text-stroke: .3em #c2e3ff;
		text-stroke: .3em #c2e3ff;
		paint-order: stroke;
		top: 62.5%;
	}

	#mv01-2 h5 {
		padding: .2em 0 .32em;
		font-size: 1.2rem;
		top: 69.5%;
	}

	#mv01-2 .cool_sculp {
		bottom: 7%;
	}

	#mv01-2 ul {
		width: 80%;
		bottom: 5%;
	}

	#mv01-2 ul li :is(p, p small) {
		font-size: 1.2rem;
		letter-spacing: 0;
	}

	#mv01-2 ul li p small {
		font-size: 80% !important;
	}

	#mv01-2 p {
		font-size: .7rem;
		bottom: .5em;
	}

	#about_cs {
		padding: 5rem 0 5rem;
	}

	#about_cs h2 {
		font-size: 2.25rem !important;
		right: .5em;
	}

	#about_cs h2::before {
		content: '';
		width: 2.625rem;
		height: 2.55rem;
		background: url(../images/icon_attention.webp) no-repeat 50% 50%;
		background-size: cover;
		position: absolute;
		top: -.2em;
		left: 11%;
	}

	#about_cs figure::before {
		width: 8rem;
		top: -10rem;
		right: -3.5%;
	}

	#monitor h2 {
		font-size: 1.75rem !important;
	}

	#repeat {
		padding: 4rem 0 0;
	}

	#repeat h2 {
		font-size: 2rem !important;
		line-height: 1.65 !important;
	}

	#repeat h2.h2_l02 {
		margin-bottom: .5em !important;
		font-size: 2.15rem !important;
		letter-spacing: 0;
	}

	#repeat h2 strong span::before {
		content: '';
		margin: 0 auto;
		width: .2em;
		height: .2em;
		background: var(--red-color);
		border-radius: 50%;
		position: absolute;
		top: 0;
		right: 0;
		left: 0;
	}

	#repeat .your_problem {
		padding: 3.5rem 0 0;
	}

	#repeat .your_problem h3 {
		font-size: 2rem;
		letter-spacing: .1em;
	}

	#repeat .your_problem .problem {
		width: 7.74rem;
		height: 7.74rem;
		font-size: 1.125rem;
		box-shadow: 0 0 .2rem .1rem #dadada inset;
		top: 38%;
		left: 5%;
	}

	#repeat .your_problem .problem02 {
		top: 51%;
	}

	#repeat .your_problem .problem03 {
		top: 64%;
	}

	#repeat .your_problem .problem04 {
		top: 32%;
		right: 5%;
		left: auto;
	}

	#repeat .your_problem .problem05 {
		top: 45%;
		right: 5%;
		left: auto;
	}

	#repeat .your_problem .problem06 {
		top: 58%;
		right: 5%;
		left: auto;
	}

	#repeat .your_problem p {
		padding: .75em 6em .75em 1.5em;
		font-size: 1rem;
		bottom: 3rem;
	}

	#repeat .your_problem img {
		width: 10rem;
		bottom: 12rem;
		right: 0;
		left: 0;
	}

	#repeat .your_problem img:nth-of-type(2) {
		width: 8rem;
		aspect-ratio: 374/550;
		bottom: 3rem;
		right: 1%;
		left: auto;
	}


	#trouble h2 {
		font-size: 1.15rem !important;
		letter-spacing: 0;
	}

	#trouble h2 strong small {
		font-size: 1.25rem;
	}

	#trouble h3 {
		font-size: 2rem;
		letter-spacing: -.06em;
	}

	#trouble ul li {
		padding: 1rem 5% 3rem;
		border-radius: 5rem 0 0 0;
	}

	#trouble ul li :is(code, code small) {
		font-size: 3.75rem;
	}

	#trouble ul li code small {
		font-size: 38%;
	}

	#trouble ul li h4 {
		margin: -.15em 0 .25em;
		font-size: 2rem;
	}

	#trouble::after {
		bottom: -5rem;
	}

	#point {
		background: var(--blue-color53) url(../images/bg_point01.webp) no-repeat 100% 135%;
		background-size: 36%;
	}

	#point h4::after {
		bottom: -2.5em;
	}

	/* つのポイント */
	.wave04 p {
		padding: 1.2em 0 0;
		font-size: 3.5rem;
		top: 2rem;
		right: 27%;
	}

	/* 3 */
	.wave04 p:nth-of-type(1)::before {
		font-size: 6rem;
	}

	/* ピュアクリニックの */
	.wave04 p:nth-of-type(2) {
		font-size: 2.25rem;
		right: 16%;
	}

	/* 理想の体を叶える */
	.wave04 p:nth-of-type(3) {
		font-size: 2.25rem;
	}

	.wave04 > img {
		top: 2rem;
	}

	#three_points ul li h3,
	#three_points ul li h3 span {
		margin: -.25em 0 .5em;
		font-size: 1.75rem;
	}

	#three_points ul li h4 {
		font-size: 1.4rem;
	}

	#mv02 .logo {
		top: 2rem;
	}

	#mv02 ul {
		width: 12em;
		gap: .3em 0;
		top: 2rem;
		right: .75rem;
	}

	#mv02 ul li {
		font-size: 1rem;
	}

	#inquiry p {
		font-size: 1.5rem;
	}

	:is(#btn_cv, #inquiry) a {
		font-size: 1.2rem;
	}

	:is(#btn_cv, #inquiry) a span {
		font-size: 1.35rem;
	}

	#inquiry p::before {
		left: 1.2em;
	}

	#inquiry p::after {
		right: 1.2em;
	}

	:is(.l_inq, #flow, #clinics)::after {
		height: 6rem;
		bottom: -4rem;
	}

	.l_inq::after {
		bottom: -6rem !important;
	}

	#flow ul:nth-of-type(4) {
		margin-bottom: 0;
	}

	#flow ul li h3 {
		padding: 0 0 0 2.35em;
		font-size: 1.5rem;
	}

	#flow ul li h3::before {
		padding: .05em 0 0;
		width: 3rem;
		height: 3rem;
		font-size: .6rem;
	}

	#flow ul li h3::after {
		width: 3rem;
		font-size: 1.75rem;
	}

	.ul_clinic li {
		padding: 0 0 0 1.2rem;
		width: 58%;
		height: 14rem;
	}

	.ul_clinic li:nth-child(2n) {
		padding: 0 1.25rem 0 0;
		width: 42%;
	}

	.ul_clinic li h3 {
		font-size: 1.25rem;
	}

	.wave03 {
		padding-top: 2.5rem;
	}


	.pc_only {
		display: none;
	}

	.sp_only {
		display: unset;
	}
}
