body {
	margin: 0;
	padding: 0;
	width: 100%;
	height: 100%;
	background: #ffffff;
	counter-reset: number1 number2 number3;
	color: var(--text-color);
	font-family: hiragino-kaku-gothic-pron, sans-serif;
	font-size: min(16px, 4.1vw);
	font-style: normal;
	font-weight: 300;
	font-feature-settings: 'palt';
	letter-spacing: .04em;
	line-height: 2;
	-webkit-text-size-adjust: 100%;
	scroll-behavior: smooth;
}

body.menu-open {
  overflow: hidden;
}

@font-face {
  font-family: 'Jun101';
  font-weight: 100;
  src: url('../fonts/Jun101.woff') format('woff');
  src: url('../fonts/Jun101.woff2') format('woff2');
}

@font-face {
  font-family: 'Jun201';
  font-weight: 300;
  src: url('../fonts/Jun201.woff') format('woff');
  src: url('../fonts/Jun201.woff2') format('woff2');
}

@font-face {
  font-family: 'Jun34';
  font-weight: 500;
  src: url('../fonts/Jun34.woff') format('woff');
  src: url('../fonts/Jun34.woff2') format('woff2');
}

@font-face {
  font-family: 'Jun501';
  font-weight: 700;
  src: url('../fonts/Jun501.woff') format('woff');
  src: url('../fonts/Jun501.woff2') format('woff2');
}

:root {
	--main-color: #E0EEF9;
	--liteblue-color: #F5F8FB;
	--blue-color31: #3190D6;
	--blue-color6c: #6CB7F1;
	--logo-color: #727171;
	--text-color: #3E4443;
	--pink-color: #D3427F;
	--yellow-color: #FFF500;
}


#nav a {
	display: flex;
	flex-wrap: wrap;
	margin: 0 auto;
	width: min(476px, 95vw);
	height: min(76px, 19.49vw);
	background: linear-gradient(90deg, var(--pink-color), var(--blue-color31));
	border-radius: min(48px, 10.26vw);
	color: #ffffff;
	font-size: min(18px, 4.1vw);
	font-weight: 600;
	text-align: center;
	line-height: 1.5;
	letter-spacing: .15em;
	justify-content: center;
	align-items: center;
	transition: .5s;
	position: fixed;
	bottom: 20px;
	right: 0;
	left: 0;
	z-index: 11;
}

#nav a::after {
	content: '';
	margin: auto 0;
	width: .6em;
	height: .6em;
	border-top: 2.5px solid #ffffff;
	border-right: 2.5px solid #ffffff;
	transform: rotate(45deg);
	transition: .5s;
	position: absolute;
	top: 0;
	bottom: 0;
	right: 1.75em;
}

#nav small {
	display: block;
	font-size: min(12px, 3.08vw);
}

#nav small span {
	font-size: min(16px, 4.1vw);
	font-weight: 300;
}
/*
#guideline {
	width: 1px;
	height: 100%;
	background: var(--pink-color);
	position: absolute;
	top: 0;
	left: calc(50% - .5px);
	opacity: .5;
	z-index: 10000;
}

#guideline::before,
#guideline::after {
	content: '';
	width: 1px;
	height: 100%;
	background: var(--pink-color);
	position: absolute;
	top: 0;
	left: -588px;
}

#guideline::after {
	left: 588px;
}
*/
h1 {
	display: flex;
	background: var(--blue-color31);
	color: #ffffff;
	font-size: min(16px, 4.1vw);
	font-weight: 600 !important;
	height: 40px;
	justify-content: center;
	align-items: center;
	position: relative;
	z-index: 10;
}

header {
	display: flex;
	flex-wrap: wrap;
	padding: 0 min(40px, 10.26vw);
	width: 100%;
	height: 60px;
	color: var(--logo-color);
	justify-content: space-between;
	align-items: center;
	pointer-events: none;
	position: sticky;
	top: 0;
	left: 0;
	z-index: 10;
}

header :is(a, .ham) {
  pointer-events: auto;
  cursor: pointer;
}

header h2 {
	display: flex;
	font-family: 'the-seasons', serif;
	font-weight: 700;
	font-size: min(28px, 4.62vw) !important;
	letter-spacing: .2em;
	align-items: center;
}

header h2 span {
	margin: 0 0 0 1em;
	font-size: 40%;
	font-weight: 400;
	letter-spacing: .24em;
}

.ham {
	display: block;
	margin: auto 0;
	width: min(37px, 9.5vw);
	height: min(37px, 9.5vw);
	background: var(--blue-color31);
	border-radius: 50%;
	position: absolute;
	top: 0;
	bottom: 0;
	right: min(40px, 5vw);
	cursor: pointer;
}

.ham_line {
	margin: auto 0;
	width: min(5px, 1.28vw);
	height: min(5px, 1.28vw);
	background: #ffffff;
	border-radius: 50%;
  transition: all .5s;
	position: absolute;
	top: 0;
	bottom: 0;
}

.ham_line1 {
	left: calc(23% - 2.5px);
/*	left: calc(23% - .64vw);*/
}

.ham_line2 {
	left: calc(50% - 2.5px);
/*	left: calc(50% - .64vw);*/
}

.ham_line3 {
	left: calc(77% - 2.5px);
/*	left: calc(77% - .64vw);*/
}

.clicked .ham_line1 {
		width: min(29px, 7.5vw);
		height: 1px;
		border-radius: 0;
    transform: rotate(150deg);
    top: 0%;
/*    left: 1vw;*/
		left: 5px;
}

.clicked .ham_line2 {
    width: 0;
    height: 0;
}

.clicked .ham_line3 {
		width: min(29px, 7.5vw);
		height: 1px;
		border-radius: 0;
    transform: rotate(-150deg);
    top: 0%;
/*    left: 1vw;*/
		left: 5px;
}

.menu {
	padding: 8rem 0 0;
    width: 410px;
    height: 100%;
    background: var(--main-color);
    opacity: 0;
    transition: all 0.5s ease-in-out;
    position: fixed;
    top: 0;
    right: -600px;
    z-index: 9;
}

.clicked .menu {
    opacity: 1;
    overflow-y: scroll;
    right: 0;
}

.menu.scroll_y {
	padding-top: calc(8rem - 40px);
}

.menu.scroll_y h2 {
	top: 6px;
}

.menu h2 {
	display: flex;
	margin: 0 0 0 40px;
	font-family: 'the-seasons', serif;
	font-weight: 700;
	font-size: 24px;
	letter-spacing: .2em;
	align-items: center;
	position: absolute;
	top: 46px;
	left: 0;
}

.menu h2 span {
	margin: 0 0 0 1em;
	font-size: 30%;
	font-weight: 400;
	letter-spacing: .24em;
}

.menu div {
	margin: 0 auto;
	padding: 0 min(40px, 5vw);
	text-align: left;
}

.menu .menu01 {
	padding-bottom: 2.5rem;
}

.menu .menu02 {
	padding-top: 1.5rem;
	padding-bottom: 8rem;
	background: #ffffff;
}

.menu div a {
	display: block;
	padding: 1rem 0;
	border-bottom: 1px solid #9CCFF5;
	font-family: hiragino-mincho-pron, serif;
	font-weight: 700;
	font-size: min(18px, 4.62vw);
	line-height: 1.35;
	text-align: left;
	transition: .3s;
}

.menu div a span {
	display: block;
	color: var(--blue-color31);
	font-family: 'arial', sans-serif;
	font-size: min(16px, 4.1vw);
}

section {
	overflow-x: hidden;
}

main {
	margin: -100px 0 0;
	width: 100%;
	height: 1218px;
	background: url(../images/bg_top.webp) no-repeat 50% -40px;
	background-size: cover;
	overflow: hidden;
	position: relative;
}

main::before,
main::after {
	content: '';
	width: 100%;
	height: 100%;
	background: var(--main-color);
	mix-blend-mode: multiply;
	opacity: .5;
	position: absolute;
	top: 0;
	left: 0;
}

main::after {
	height: 275px;
	mix-blend-mode: normal;
	opacity: 1;
	top: auto;
	bottom: 0;
}

main > h2 {
	width: min(590px, 100vw);
	color: #ffffff;
	font-family: hiragino-mincho-pron, serif;
	font-size: min(36.5px, 5.9vw);
	font-weight: 600;
	text-align: center;
	text-shadow: 0 0 .1em var(--blue-color31), 0 0 .2em var(--blue-color6c), 0 0 .3em var(--blue-color6c);
	letter-spacing: .08em;
	position: absolute;
	top: 178px;
	left: calc(50% - 835px);
	z-index: 4;
}

main > h2::after {
	content: '';
	width: min(590px, 90vw);
	height: min(276px, 42.1vw);
	background: url(../images/main_copy01.webp?ver=3.0) no-repeat 50% 50%;
	background-size: cover;
	position: absolute;
	top: 1.75em;
	left: 0;
}

main .main_girl {
	width: min(533px, 85.38vw);
	position: absolute;
	top: 192px;
	left: calc(50% - 264px);
	z-index: 2;
}

main .icon_open {
	width: min(138px, 22.56vw);
	position: absolute;
	top: 94px;
	left: calc(50% + 120px);
}

main > h3 {
	width: 86px;
	height: 448px;
	color: var(--blue-color31);
	font-family: hiragino-mincho-pron, serif;
	font-weight: 600;
	font-style: normal;
	font-size: min(28px, 5.9vw);
	line-height: 1;
  writing-mode: vertical-rl;
	-ms-writing-mode: tb-rl;
  text-orientation: upright;
  justify-items: center;
  position: absolute;
  top: 164px;
  right: calc(50% - 326px);
  z-index: 3;
}

main > h3 span {
	padding: .6em .25em .3em;
	background: rgba(255, 255, 255, .8);
	border-radius: .6rem;
	position: absolute;
}

main > h3 span:first-child {
	letter-spacing: .3em;
	top: 0;
	right: 0;
}

main > h3 span:last-child {
	font-size: min(32px, 6.79vw);
	letter-spacing: .2em;
	bottom: 0;
	left: 0;
}

main .logo_copy {
	position: absolute;
	top: 724px;
	left: calc(50% - 800px);
	z-index: 2;
}

main .logo_copy h4 {
	display: inline-block;
	font-family: 'the-seasons', serif;
	font-size: min(48px, 12.31vw);
	font-weight: 700;
	line-height: 1.5;
	letter-spacing: .2em;
}

main .logo_copy h4 span {
	display: block;
	margin: 0 auto;
	width: 100%;
	font-size: 30%;
	font-weight: 400;
	letter-spacing: .24em;
	text-align: center;
}

main .logo_copy h5 {
	margin: .5em 0 0;
	color: var(--blue-color31);
	font-size: min(18px, 3.59vw);
	font-weight: 600;
}

main .logo_copy p {
	margin: .5em 0 0;
	width: min(500px, 90vw);
	font-size: 14px;
	font-weight: 500;
	line-height: 1.6;
}

main .circle {
	aspect-ratio: 1 / 1;
	border-radius: 50%;
	background: #ffffff;
	filter: blur(3px);
	opacity: .8;
	position: absolute;
	z-index: 0;
}

main .circle01 {
	width: 982px;
	top: -352px;
	left: calc(50% - 1150px);
}

main .circle02 {
	width: 250px;
	top: -100px;
	left: calc(50% + 123px);
}

main .circle03 {
	width: 708px;
	top: 567px;
	left: calc(50% + 665px);
}

main .circle04 {
	width: 154px;
	top: 453px;
	left: calc(50% + 484px);
}

main .fig_flower01 {
	width: 87px;
	height: 129px;
	position: absolute;
	top: 127px;
	left: calc(50% + 364px);
}

main .fig_flower02 {
	width: min(78px, 12.31vw);
	height: min(165px, 26.15vw);
	transform: rotate(13.53deg);
	position: absolute;
	top: 385px;
	left: calc(50% + 384px);
}

main .fig_flower03 {
	width: min(58px, 8.97vw);
	height: min(108px, 16.92vw);
	transform: rotate(-26.41deg);
	position: absolute;
	top: 231px;
	left: calc(50% + 659px);
}

main .rectangle {
	width: 100%;
	height: min(416px, 87.69vw);
	background: #ffffff;
	filter: blur(2px);
	opacity: .7;
	position: absolute;
	top: 663px;
	left: 0;
	z-index: 1;
}

main h6,
#top_promise h5 {
	margin: 0 0 0 -50vw;
	padding: 0 0 0 .2em;
	width: 200vw;
	color: rgba(255, 255, 255, .5);
	font-family: 'the-seasons', serif;
	font-size: min(320px, 32vw);
	font-weight: 700;
	text-align: center;
	line-height: 1;
	letter-spacing: .2em;
	position: absolute;
	bottom: -.135em;
	left: 0;
	z-index: 1;
}

main .rectangle::after {
	content: '';
	width: 100%;
	height: 210px;
	background: linear-gradient(to bottom, #ffffff 0%, var(--main-color) 74%, var(--main-color) 100%);
	filter: none;
	position: absolute;
	top: 210px;
	left: 0;
	z-index: 2;
}

.campaign01,
.slick_camp01 {
	display: flex;
	flex-wrap: wrap;
	margin: 0 auto;
	width: 976px;
	height: 180px;
	background: #ffffff url(../images/fig_lpc.svg) no-repeat 99% 2px;
	background-size: 84px;
	border: 2px solid var(--blue-color31);
	border-radius: .6rem;
	box-shadow: 0 .25rem .25rem rgba(0, 0, 0, .15);
	position: relative;
}

.campaign01 {
	top: 967px;
	z-index: 2;
}

:is(.campaign01, .slick_camp01)::after {
	content: '※本キャンペーンは、予告なく変更または終了する場合がございますので、あらかじめご了承ください。';
	color: var(--text-color);
	font-size: min(10px, 2.56vw);
	text-align: right;
	position: absolute;
	right: 0;
	bottom: -3em;
}

:is(.campaign01, .slick_camp01) li:first-child {
	padding: 8px 0 8px 8px;
	width: 308px;
}

:is(.campaign01, .slick_camp01) li:first-child img {
	display: block;
	width: 300px;
	height: 160px;
	border-radius: .3rem;
	object-fit: cover;
}

:is(.campaign01, .slick_camp01) li:last-child {
	padding: 26px 40px 0 40px;
	width: min(664px, 90vw);
}

:is(.campaign01, .slick_camp01) li:last-child h2 {
	margin: 0 0 1em;
	color: var(--pink-color);
	font-size: min(21px, 4.62vw);
	font-weight: 600;
	line-height: 1.35;
	position: relative;
}

:is(.campaign01, .slick_camp01) li:last-child h2::after {
	content: '';
	width: min(520px, 80vw);
	height: 1px;
	background: var(--main-color);
	position: absolute;
	bottom: -.4em;
	left: 0;
}

:is(.campaign01, .slick_camp01) li:last-child h2 small {
	font-size: 76.19%;
	font-weight: 300;
}

:is(.campaign01, .slick_camp01) li:last-child p {
	font-size: 14px;
	line-height: 1.5;
}

main .main_news {
	padding: 2rem 2rem;
	width: 388px;
	height: 195px;
	background: rgba(224, 238, 249, .8);
	border-radius: .6rem;
	position: absolute;
	top: 732px;
	left: calc(50% + 412px);
	z-index: 2;
}

main .main_news ul {
	display: flex;
	flex-wrap: wrap;
}

main .main_news ul li {
	width: 100%;
}

main .main_news ul li:first-child {
	display: flex;
	padding: 0 0 .35em;
	border-bottom: 1px solid;
	justify-content: space-between;
	align-items: baseline;
}

main .main_news ul li > span {
	font-family: hiragino-mincho-pron, serif;
	font-weight: 600;
	font-style: normal;
}

main .main_news ul li time {
	font-size: 12px;
	font-weight: 600;
}

main .main_news ul li p {
	padding: 1.25em 0 0;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.85;
}

main .main_news ul li .top_link_right{
	position: absolute;
	bottom: 2rem;
	right: 2rem;
}

.top_link_right {
	display: flex;
	margin: 1em 0 0 auto;
	justify-content: flex-end;
}

.top_link_left {
	display: flex;
	margin: 3em 0 0;
	justify-content: flex-start;
}

.top_link_center {
	display: flex;
	margin: 3em 0 0;
	justify-content: center;
}

:is(.top_link_right, .top_link_center, .top_link_left) {
	position: relative;
	z-index: 3;
}

:is(.campaign01, .slick_camp01) > li:last-child a {
	margin-top: .5em;
}

:is(.top_link_right, .top_link_center, .top_link_left) span {
	padding: 0 2em .3em 0;
	border-bottom: 1px solid var(--blue-color6c);
	color: var(--blue-color31);
	font-family: inherit;
	font-size: min(12px, 3.08vw);
	font-weight: 600;
	position: relative;
}

:is(.top_link_right, .top_link_center, .top_link_left) span::before {
	content: '';
	width: 1.4em;
	height: 1.4em;
	background: var(--blue-color31);
	border-radius: 50%;
	position: absolute;
	top: .275em;
	right: 0;
}

:is(.top_link_right, .top_link_center, .top_link_left) span::after {
	content: '';
	width: .4em;
	height: .4em;
	border-top: 1px solid #ffffff;
	border-right: 1px solid #ffffff;
	transform: rotate(45deg);
	position: absolute;
	top: .77em;
	right: .55em;
}


#top_concept {
	padding: 60px 0;
	background: var(--main-color);
	position: relative;
	z-index: 0;
}

#top_concept::after {
	content: '';
	width: 100%;
	height: min(570px, 570px);
	/*
	background: url(../images/top_girl02.webp) no-repeat 96% 100%, url(../images/bg_concept.webp) no-repeat 50% 67%;
	background-size: 624px, 2200px;
	*/
	background: url(../images/bg_concept.webp) no-repeat 50% 67%;
	background-size: 2200px;

	position: absolute;
	top: 0;
	left: 0;
	z-index: -1;
}

#top_concept .cnt_concept {
	margin: 0 auto;
	padding: 50px 0;
	width: min(776px, 90vw);
	height: auto;
	background: rgba(255, 255, 255, .8);
	border-radius: 1.25rem;
	text-align: center;
	position: relative;
	z-index: 1;
}

:is(.top_h2_pink, .top_h2_blue) > h2 {
	color: var(--pink-color);
	font-family: 'arial', sans-serif;
	font-size: min(18px, 3.33vw);
	text-align: center;
	letter-spacing: .1em;
	opacity: .5;
	position: relative;
}

.top_h2_blue > h2 {
	color: var(--blue-color31);
}

:is(.top_h2_pink, .top_h2_blue) > h2::before,
:is(.top_h2_pink, .top_h2_blue) > h2::after {
	content: '';
	margin: auto;
	width: 1.11em;
	height: 1.11em;
	background: url(../images/icon_kome_p.svg) no-repeat 50% 50%;
	background-size: 100%;
	position: absolute;
	top: -.1em;
	right: 0;
	bottom: 0;
	left: -7.5em;
}

.top_h2_blue > h2::before,
.top_h2_blue > h2::after {
	background: url(../images/icon_kome_b.svg) no-repeat 50% 50%;
	background-size: 100%;
}

:is(.top_h2_pink, .top_h2_blue) > h2::after {
	right: -7.5em !important;
	left: 0;
}

.top_h2_bk > h2 {
	color: var(--text-color);
	opacity: 1;
}

.top_h2_bk > h2::before,
.top_h2_bk > h2::after {
	background: url(../images/icon_kome_bk.svg) no-repeat 50% 50%;
	background-size: 100%;
}

.top_h2_wide > h2::before {
	left: -9em;
}

.top_h2_wide > h2::after {
	right: -9em !important;
	left: 0;
}

.top_h2_narrow > h2::before {
	left: -4.5em;
}

.top_h2_narrow > h2::after {
	right: -4.5em !important;
	left: 0;
}

#top_concept .cnt_concept h3 {
	margin: .8em 0 0;
	font-family: hiragino-mincho-pron, serif;
	font-weight: 600;
	font-style: normal;
	font-size: min(44px, 8.72vw);
	line-height: 1.35;
	letter-spacing: .08em;
}

#top_concept .cnt_concept :is(h3, p) span {
	color: var(--pink-color);
}

#top_concept .cnt_concept h3 small {
	font-size: 77.27%;
}

#top_concept .cnt_concept h4 {
	margin: .75em 0 0;
	font-weight: 600;
	font-style: normal;
	font-size: 18px;
	line-height: 1.35;
}

#top_concept .cnt_concept p {
	margin: 2.5em 0 0;
	font-size: 14px;
	font-weight: 600;
	line-height: 2.85;
}

#top_concept .cnt_concept .txt_salon {
	display: block;
	width: 456px;
	position: absolute;
	top: 388px;
	right: -378px;
}

#top_concept .cnt_concept h5 {
	margin: 1.15em 0 0;
	font-family: 'the-seasons', serif;
	font-size: min(34px, 7.69vw);
	font-weight: 700;
	text-align: center;
	line-height: 1.5;
	letter-spacing: .2em;
	position: relative;
	z-index: 1;
}

#top_concept .cnt_concept h5 span {
	display: block;
	margin: 0 auto;
	width: 100%;
	font-size: 30%;
	font-weight: 400;
	letter-spacing: .24em;
	text-align: center;
}

#top_concept .top_gallery {
    display: flex;
    padding: 60px 0 0;
    overflow: hidden;
    justify-content: center;
}

#top_concept .top_gallery > ul {
	display: flex;
	margin: 0 40px 0 0;
	column-gap: 40px;
  animation: loop-slide 20s infinite linear 1s both;
}

@keyframes loop-slide {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-100%);
  }
}

#top_concept .top_gallery > ul li,
#top_concept .top_gallery > ul li img {
	width: 310px;
	height: 180px;
}

#top_concept .top_gallery > ul li img {
	max-width: initial !important;
	object-fit: cover;
}

#top_epix {
	padding: 60px 0 40px;
	background: url(../images/bg_epix01.webp) no-repeat 50% 50%;
	background-size: cover;
	position: relative;
}

#top_epix::before {
	content: '';
	width: 100%;
	height: 200px;
	background: linear-gradient(to bottom, var(--main-color) 10%, rgba(224, 238, 249, 0));
	position: absolute;
	top: 0;
	left: 0;
	z-index: 0;
}

#top_epix::after {
	content: '';
	width: 100%;
	height: 230px;
	background: linear-gradient(to bottom, rgba(255, 255, 255, 0), rgba(255, 255, 255, 1) 72%);
	position: absolute;
	bottom: 0;
	left: 0;
	z-index: 0;
}

#top_epix h2 {
	font-family: 'the-seasons', serif;
	font-size: 48px;
	font-weight: 700;
	text-align: center;
	line-height: 1.5;
	letter-spacing: .2em;
	position: relative;
	z-index: 1;
}

#top_epix h2 span {
	display: block;
	margin: 0 auto;
	width: 100%;
	font-size: 30%;
	font-weight: 400;
	letter-spacing: .24em;
	text-align: center;
}

#top_epix h3 {
	display: flex;
	flex-wrap: wrap;
	margin: 2rem auto 0;
	line-height: 1;
	text-align: center;
	justify-content: center;
	gap: 0 1em;
	position: relative;
}

#top_epix h3 span {
	display: inline-flex;
	padding: .35em .75em;
	background: var(--pink-color);
	color: #ffffff;
	font-family: hiragino-mincho-pron, serif;
	font-weight: 600;
	font-style: normal;
	font-size: 26px;
	justify-content: center;
	align-items: center;
}

#top_epix h3 b {
	display: block;
	width: 100%;
	font-size: min(10px, 2.56vw);
	position: absolute;
	bottom: -2em;
	right: -13em;
}

#top_epix .epix_staff {
	display: block;
	width: min(358px, 75.64vw);
	position: absolute;
	top: 272px;
	left: calc(50% + 126px);
	z-index: 1;
}

#top_epix .cnt_epix {
	margin: 90px auto 0;
	padding: 90px 0 0 65px;
	width: min(1176px, 90vw);
	height: 467px;
	background: rgba(255, 255, 255, .9);
	border-radius: .6rem;
	position: relative;
}

#top_epix .cnt_epix h4 {
	font-family: hiragino-mincho-pron, serif;
	font-weight: 300;
	font-style: normal;
	font-size: min(53px, 9.23vw);
	line-height: 1.15;
	letter-spacing: .04em;
	position: relative;
}

#top_epix .cnt_epix h4::before {
	content: '';
	width: 315px;
	height: 27px;
	background: url(../images/img_wave01.webp) no-repeat 50% 50%;
	background-size: cover;
	position: absolute;
	top: -30px;
	left: 5px;
}

#top_epix .cnt_epix h4 small {
	display: block;
	font-size: min(25px, 3.59vw);
}

#top_epix .cnt_epix h4 ruby {
	font-size: min(60px, 9.74vw);
	position: relative;
	top: .07em;
}

#top_epix .cnt_epix h4 ruby rt {
	font-size: min(14px, 2.82vw);
	text-align: center;
}

#top_epix .cnt_epix p {
	margin: 1em 0 0;
	width: 360px;
	font-size: min(14px, 2.56vw);
}

#top_epix .cnt_epix strong {
	font-size: min(10px, 2.05vw);
	letter-spacing: .04em;
	position: absolute;
	top: 390px;
	left: calc(50% + 84px);
	z-index: 2;
}

#top_epix .cnt_epix .epix_machine01 {
	display: block;
	margin: 0 auto;
	width: min(323px, 45.64vw);
	height: min(497px, 70.26vw);
	position: absolute;
	top: -45px;
	right: 0;
	left: 0;
	z-index: 2;
}

#top_epix .cnt_epix .epix_machine01::before,
#top_epix .cnt_epix .epix_machine01::after {
	content: '';
	width: 323px;
	height: 84px;
	position: absolute;
	bottom: -55px;
	left: 0;
}

#top_epix .cnt_epix .epix_machine01::before {
	background: linear-gradient(180deg, transparent 0%, #ffffff 100%);
	z-index: -1;
}

#top_epix .cnt_epix .epix_machine01::after {
	background: url(../images/img_epix01.webp) no-repeat 50% 100%;
	background-size: cover;
	transform: scaleY(-1);
	opacity: .6;
	z-index: -2;
}

#top_feature {
	padding: 80px 0;
	background: url(../images/bg_feature.webp) no-repeat 50% 0;
	background-size: cover;
	position: relative;
}

#top_feature::before {
	content: '';
	width: 100%;
	height: min(164px, 42vw);
	background: linear-gradient(to bottom, #ffffff, transparent);
	position: absolute;
	top: 0;
	left: 0;
}

#top_feature h3 {
	color: var(--blue-color31);
	font-family: hiragino-mincho-pron, serif;
	font-size: min(35px, 7.69vw);
	font-weight: 600;
	text-align: center;
	letter-spacing: .06em;
	position: relative;
}

#top_feature h3 small {
	display: block;
	color: var(--text-color);
	font-family: 'arial', sans-serif;
	font-size: min(14px, 3.08vw);
	font-weight: 600;
}

#top_feature h3::before {
	content: '';
	width: 113px;
	height: 60px;
	background: url(../images/txt_new01.svg) no-repeat 50% 50%;
	background-size: 100%;
	transform: rotate(-27deg);
	position: absolute;
	top: -16px;
	left: calc(50% - 228px);
}

#top_feature ul {
	display: flex;
	flex-wrap: wrap;
	margin: 60px auto 0;
	width: min(1176px, 90vw);
	justify-content: space-between;
	gap: 15.38vw 0;
}

#top_feature ul li {
	width: min(376px, 90vw);
}

#top_feature ul li h4 {
	color: var(--blue-color31);
	font-family: hiragino-mincho-pron, serif;
	font-size: 26px;
	font-weight: 600;
	line-height: 1.25;
	letter-spacing: .06em;
	text-align: center;
}

#top_feature ul li h4 small {
	font-size: 75%;
}

#top_feature ul li img {
	display: block;
	margin: 1.5rem auto 0;
	width: min(272px, 57.69vw);
	height: min(272px, 57.69vw);
	border-radius: 50%;
	object-fit: cover;
}

#top_feature ul li div {
	margin: -37px 0 0;
	padding: 1.5em 1.75em 0;
	height: 118px;
	background: #ffffff;
	border: 2px solid var(--blue-color31);
	border-radius: .6rem;
	font-size: min(14px, 3.08vw);
	font-weight: 600;
	line-height: 1.75;
	position: relative;
	z-index: 1;
}

#top_feature ul li:last-child div {
	letter-spacing: 0.01em;
}

#top_feature ul li div span {
	color: var(--pink-color);
}

#top_promise {
	padding: 80px 0;
	background: linear-gradient(to bottom, #ffffff 50%, var(--main-color) 50%);
	position: relative;
	overflow-y: hidden;
}

#top_promise > div {
	margin: 40px auto 0;
	width: min(1176px, 100vw);
	min-height: 674px;
	position: relative;
}

#top_promise > div .img_promise01 {
	width: min(671px, 100vw);
	height: min(384px, 62.82vw);
	object-fit: cover;
	position: relative;
}

#top_promise > div .img_promise01::before {
	content: '';
	width: min(252px, 41.03vw);
	height: min(96px, 15.63vw);
	background: url(../images/txt_promise01.svg) no-repeat 50% 50%;
	background-size: 100%;
	transform: rotate(-14deg);
	position: absolute;
	bottom: -18px;
	left: 160px;
}

#top_promise > div h3 {
	width: min(688px, 90vw);
	color: var(--blue-color31);
	font-family: hiragino-mincho-pron, serif;
	font-weight: 600;
	font-size: min(54px, 11.54vw);
	text-align: center;
	line-height: 1;
	position: absolute;
	top: 70px;
	right: 0;
}

#top_promise > div h3 small {
	color: var(--text-color);
	font-size: min(24px, 5.13vw);
	position: absolute;
	top: 20%;
	right: 17%;
}

#top_promise > div h3 strong {
	font-size: min(116px, 24.62vw);
	position: relative;
	top: .1em;
	left: .05em;
}

#top_promise > div > ul {
	display: flex;
	flex-wrap: wrap;
	width: min(688px, 90vw);
	position: absolute;
	bottom: 0;
	right: 0;
	gap: 5px;
	z-index: 2;
}

#top_promise > div > ul li {
	width: min(226px, 44.5vw);
	aspect-ratio: 1 / 1;
	background: #ffffff;
	border: 2px solid var(--blue-color31);
	border-radius: .6rem;
	position: relative;
}

#top_promise > div > ul li:first-child {
	position: absolute;
	left: -280px;
	bottom: 36px;
	transform: rotate(-22.6deg);
}

#top_promise > div > ul li::before {
	content: 'PROMISE';
	margin: 0 auto;
	width: 5.5em;
	border-bottom: 1px solid var(--blue-color31);
	color: #83BCE5;
	font-size: min(14px, 2.69vw);
	font-weight: 600;
	font-style: italic;
	line-height: 1.35;
	text-align: center;
	position: absolute;
	top: 26%;
	right: 0;
	left: 0;
}

#top_promise > div > ul li::after {
	counter-increment: number1 1;
	content: counter(number1);
	color: var(--main-color);
	font-family: hiragino-mincho-pron, serif;
	font-size: min(110px, 18.46vw);
	line-height: 1;
	position: absolute;
	bottom: -.135em;
	right: -.025em;
}

#top_promise > div > ul li > div {
	width: 100%;
	position: absolute;
	top: 40%;
	left: 0;
	z-index: 1;
}

#top_promise > div > ul li > div h4 {
	color: var(--pink-color);
	font-size: min(18px, 4.1vw);
	font-weight: 600;
	text-align: center;
}

#top_promise > div > ul li > div p {
	margin: .35em auto 0;
	width: 74%;
	font-size: min(14px, 3.08vw);
	font-weight: 600;
	line-height: 1.5;
}

#top_promise .epix_machine02 {
	width: min(186px, 37.95vw);
	height: min(286px, 58.21vw);
	object-fit: cover;
	position: absolute;
	top: 333px;
	left: 5px;
	z-index: 2;
}

#top_promise .epix_machine02::after {
	content: 'アイスSHR方式脱毛機「EPiX」';
	display: block;
	margin: 0 auto;
	width: 100%;
	font-size: min(10px, 2.56vw);
	text-align: center;
	position: absolute;
	bottom: -4em;
	right: 0;
	left: 0;
}

#top_camp {
	padding: 80px 0 50px;
	background: #ffffff;
}

#top_camp > h3 {
	margin: 2rem auto 0;
	width: min(1176px, 90vw);
	color: var(--blue-color31);
	font-size: min(40px, 8.72vw);
	font-weight: 700;
	letter-spacing: .1em;
	position: relative;
}

#top_camp > h3 small {
	font-size: min(18px, 4.62vw);
	font-weight: 600;
	letter-spacing: .06em;
	position: absolute;
	top: .75rem;
	left: 18.25rem;
}

#top_camp > h3 span {
	margin: 0 0 0 2em;
	color: var(--text-color);
	font-size: min(12px, 3.08vw);
	font-weight: 300;
	letter-spacing: .04em;
}

#top_camp > ul.slick01 {
	margin: 1rem 0 0 calc((100vw - 976px)/2);
	width: min(calc(976px + (100vw - 976px)/2), 90vw);
}

#top_camp > ul.slick01 li > div {
	padding: 0 40px 30px 0 !important;
}

.campaign01 > li:last-child > a,
#top_camp ul.slick_camp01 li > .top_link_right {
	position: absolute;
	right: 40px;
	bottom: 20px;
}

#top_camp .slick-prev {
	display: none;
}

:is(#top_voice, #top_column) :is(.slick-prev, .slick-next),
#top_camp .slick-next {
    font-size: 0;
    line-height: 0;
    position: absolute;
    top: 42%;
    display: block;
    width: 3.25rem;
    height: 3.25rem;
    padding: 0;
    cursor: pointer;
    border: 2px solid var(--main-color);
    border-radius: 50%;
    outline: none;
    background: rgba(255, 255, 255, .8);
    z-index: 1;
}

#top_voice :is(.slick-prev, .slick-next) {
	top: 90%;
}

#top_column :is(.slick-prev, .slick-next) {
	top: 50%;
}

#top_voice .slick-prev {
	left: -154px;
}

#top_voice .slick-next {
	left: -90px;
}

#top_voice :is(.slick-prev, .slick-next):hover,
#top_camp .slick-next:hover {
    background: rgba(255, 255, 255, 1);
}

#top_camp .slick-next {
    right: calc((100vw - 1046px)/2);
}

:is(#top_voice, #top_column) :is(.slick-prev, .slick-next)::before,
#top_camp .slick-next::before {
    content: '';
    margin: auto;
    width: .65rem;
    height: .65rem;
    border-top: 2px solid #3190D6;
    border-right: 2px solid #3190D6;
    transform: rotate(45deg);
    position: absolute;
    top: 2%;
    right: 0;
    bottom: 0;
    left: -10%;
}

:is(#top_voice, #top_column) .slick-prev::before {
	transform: rotate(-135deg);
	left: 10%;
}

#top_menu {
	padding: 80px 0;
	background: var(--main-color);
}

:is(#top_menu, #top_concern) > h3 {
	margin: 2.5rem 0 0;
	color: var(--blue-color31);
	font-family: hiragino-mincho-pron, serif;
	font-size: min(35px, 7.69vw);
	font-weight: 600;
	text-align: center;
	line-height: 1.65;
	letter-spacing: .08em;
	position: relative;
	z-index: 1;
}

:is(#top_menu, #top_concern) > h3 small {
	display: block;
	color: var(--text-color);
	font-size: min(28px, 6.67vw);
}

#top_menu > p {
	margin: 2.5em auto 4em;
	font-size: 14px;
	line-height: 1.5;
	text-align: center;
}

p.tax {
	margin: 0 auto 1em !important;
	width: min(1176px, 90vw) !important;
	font-size: min(10px, 2.56vw) !important;
	text-align: right !important;
}

.wrap_menu {
	margin: 0 auto;
	width: min(1176px, 100vw);
	padding: 20px 0;
	border-top: 1px dashed var(--text-color);
}

.wrap_menu:last-of-type {
	border-bottom: 1px dashed var(--text-color);
}

.wrap_menu > ul {
	display: flex;
	flex-wrap: wrap;
	margin: 0 auto;
	padding: 1rem 2rem;
	width: min(976px, 90vw);
	background: #ffffff;
	border-radius: .6rem;
	line-height: 3;
	justify-content: space-between;
}

.wrap_menu > ul > li:first-child {
	font-size: 18px;
	font-weight: 600;
}

.wrap_menu > ul > li:first-child span {
	font-weight: 300;
}

.wrap_menu > ul > li:last-child {
	width: 190px;
	font-size: min(16px, 4.1vw);
	font-weight: 600;
	text-align: right;
	position: relative;
}

.wrap_menu > ul > li:last-child span {
	display: block;
	width: 4em;
	text-align: right;
	position: absolute;
	left: 0;
}

.wrap_menu > ul > li:last-child strong {
	color: var(--pink-color);
}

#top_voice {
	padding: 80px 0 60px;
	background: repeating-linear-gradient(90deg, #f5faff, #f5faff 20px, #ffffff 20px, #ffffff 40px);
}

#top_voice .ul_voice {
	display: flex;
	margin: 3.5rem 0 0 calc((100vw - 1176px)/2);
	width: min(calc(1176px + (100vw - 1176px)/2), 95vw);
}

#top_voice .ul_voice > li:first-child {
	width: min(476px, 95vw);
}

#top_voice .ul_voice > li:first-child h3 {
	color: var(--blue-color31);
	font-size: min(40px, 9.74vw);
	font-weight: 700;
	letter-spacing: .1em;
}

#top_voice .ul_voice > li:first-child p {
	font-size: min(14px, 3.59vw);
	line-height: 1.5;
}

#top_voice .ul_voice > li:last-child {
	width: calc(100% - 476px);
}

#top_voice .ul_voice > li > ul li {
	padding: 0 20px 10px 0;
}

#top_voice .ul_voice > li > ul li div {
	padding: 2rem 2rem 0;
	width: min(300px, 76.92vw);
	height: min(360px, 92.31vw);
	background: #ffffff;
	border: 2px solid var(--blue-color31);
	border-radius: .6rem;
	box-shadow: 0 .25rem .25rem var(--main-color);
	position: relative;
}

#top_voice .ul_voice > li > ul li h4 {
	color: var(--pink-color);
	font-size: min(16px, 4.1vw);
}

#top_voice .ul_voice > li > ul li span {
	display: block;
	border-bottom: 1px solid var(--blue-color6c);
	color: #FFC300;
	font-size: min(14px, 3.59vw);
	line-height: 2.5;
}

#top_voice .ul_voice > li > ul li p {
	margin: 2.5em 0 0;
	font-size: min(14px, 3.59vw);
	line-height: 1.75;
}

#top_voice .ul_voice > li > ul li img {
	display: block;
	width: 92px;
	height: 92px;
	position: absolute;
	top: 18px;
	right: 18px;
}

#top_concern {
	padding: 80px 0 0;
	height: min(723px, 172.56vw);
	background: url(../images/bg_concern.webp) no-repeat 50% 0;
	background-size: cover;
	position: relative;
}

#top_concern > h3 span {
	font-size: 80%;
}

#top_concern > h3::after {
	content: '';
	margin: auto;
	width: min(420px, 90vw);
	height: 130px;
	background: #ffffff;
	border-radius: 50%;
	filter: blur(1rem);
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	z-index: -1;
}

#top_concern .girl04 {
	margin: 0 auto;
	width: min(425px, 90vw);
	height: min(306px, 74.36vw);
	object-fit: cover;
	object-position: 50% 0;
	position: absolute;
	bottom: 0;
	right: 30px;
	left: 0;
}

#top_concern > div {
	display: flex;
	flex-wrap: wrap;
	color: #ffffff;
	font-family: 'Jun34';
	font-size: min(21px, 4.36vw);
	line-height: 1.25;
	text-align: center;
	justify-content: center;
	align-items: center;
	position: absolute;
	z-index: 1;
}

.concern_txt01 {
	width: min(182px, 30.26vw);
	height: min(134px, 22.3vw);
	background: url(../images/bg_txt01.svg) no-repeat 50% 50%;
	background-size: 100%;
	bottom: 56px;
	right: calc(50% + 212px);
}

.concern_txt02 {
	width: min(232px, 38.97vw);
	height: min(135px, 22.82vw);
	background: url(../images/bg_txt02.svg) no-repeat 50% 50%;
	background-size: 100%;
	bottom: 259px;
	right: calc(50% + 104px);
}

.concern_txt03 {
	margin: 0 auto;
	width: min(198px, 33.33vw);
	height: min(108px, 17.95vw);
	background: url(../images/bg_txt03.svg) no-repeat 50% 50%;
	background-size: 100%;
	bottom: 341px;
	right: 0;
	left: 0;
}

.concern_txt04 {
	padding: .5em 0 0;
	width: min(254px, 42.56vw);
	height: min(142px, 23.85vw);
	background: url(../images/bg_txt04.svg) no-repeat 50% 50%;
	background-size: 100%;
	bottom: 240px;
	left: calc(50% + 109px);
}

.concern_txt05 {
	width: min(152px, 25.38vw);
	height: min(103px, 17.18vw);
	background: url(../images/bg_txt05.svg) no-repeat 50% 50%;
	background-size: 100%;
	bottom: 66px;
	left: calc(50% + 199px);
}

#top_solution {
	padding: 40px 0 60px;
	background: var(--blue-color31);
	position: relative;
}

#top_solution h2 {
	color: #ffffff;
	font-family: hiragino-mincho-pron, serif;
	font-size: 28px;
	font-weight: 600;
	text-align: center;
	letter-spacing: .08em;
}

#top_solution h2 strong {
	color: #FFF347;
	font-size: min(35px, 8.46vw);
}

#top_solution h2 span {
	padding-bottom: .5em;
	border-bottom: 1px solid;
}

#top_solution > img.pc_only {
	width: 147px;
	position: absolute;
	top: 70px;
	right: calc(50% + 202px);
}

#top_solution > ul {
	display: flex;
	flex-wrap: wrap;
	margin: 1.75rem auto 0;
	width: min(976px, 90vw);
	justify-content: center;
	gap: 5.13vw 12.75px;
}

#top_solution > ul li {
	padding: 80px 0 0;
	width: 185px;
	height: min(317px, 39.74vw);
	background: #ffffff;
	border-radius: .6rem;
	font-weight: 600;
	text-align: center;
	line-height: 1.25;
	position: relative;
}

#top_solution > ul li::before {
	counter-increment: number2 1;
	content: 'Point.'counter(number2);
	margin: 0 auto;
	padding: 0 0 .35em;
	width: 120px;
	border-bottom: 1px solid #CEEAFF;
	color: var(--blue-color31);
	font-size: min(12px, 2.82vw);
	text-align: center;
	position: absolute;
	top: 30px;
	right: 0;
	left: 0;
}

#top_solution > ul li small {
	font-size: min(16px, 3.59vw);
}

#top_solution > ul li small > span > span {
	display: inline-block;
	width: 111.11%;
	letter-spacing: 0;
	transform: scaleX(.9);
	transform-origin: top left;
}

#top_solution > ul li strong {
	display: block;
	margin: .35em 0 0;
	color: var(--blue-color31);
	font-family: hiragino-mincho-pron, serif;
	font-size: min(28px, 6.67vw);
}

#top_solution > ul li figure {
	display: flex;
	margin: 0 auto;
	width: min(74px, 17.44vw);
	height: min(74px, 17.44vw);
	border: 3px solid #CEEAFF;
	border-radius: 50%;
	justify-content: center;
	align-items: center;
	position: absolute;
	bottom: 30px;
	right: 0;
	left: 0;
}

#top_solution > ul li figure img {
	width: 60%;
}

#top_faq {
	padding: 80px 0;
}

:is(#top_faq, #top_column, #top_flow) h3 {
	margin: 2rem auto 0;
	color: var(--blue-color31);
	font-family: hiragino-mincho-pron, serif;
	font-size: min(35px, 8.97vw);
	font-weight: 600;
	text-align: center;
	letter-spacing: .08em;
}

:is(#top_faq, .plan) dl {
	margin: 3rem auto 0;
	width: min(1176px, 90vw);
	line-height: 1.5;
}

:is(#top_faq, .plan) dl + dl {
	margin-top: 2rem;
}

:is(#top_faq, .plan) dl dt {
	padding: .6rem 0 .6rem 148px;
	border-bottom: 1px solid;
	color: var(--blue-color31);
	font-size: 18px;
	font-weight: 600;
	position: relative;
}

:is(#top_faq, .plan) dl dd {
	margin: .6rem 0 0;
	padding: 2rem 0 2rem 148px;
	background: #CEEAFF;
	border-radius: .6rem;
	font-size: 14px;
	font-weight: 600;
	position: relative;
}

:is(#top_faq, .plan) dl :is(dt, dd)::before {
	content: 'Q';
	font-family: hiragino-mincho-pron, serif;
	font-size: 32px;
	font-weight: 300;
	position: absolute;
	top: -0.05em;
	left: 98px;
}

:is(#top_faq, .plan) dl dd::before {
	content: 'A';
	top: .6em;
}

#top_column {
	padding: 80px 0;
	background: var(--main-color);
}

#top_column > ul.slick03 {
	display: flex;
	margin: 1.75rem auto 8rem;
	width: min(976px, 100vw);
}

#top_column > ul.slick03 li div {
	margin: 0 23px 0 0;
	padding: 20px;
	width: 310px;
	height: 505px;
	background: #ffffff;
	border: 2px solid var(--blue-color31);
	border-radius: .6rem;
	position: relative;
}

#top_column > ul.slick03 li div img {
	aspect-ratio: 27 / 16;
	object-fit: cover;
	border-radius: .3rem;
}

#top_column > ul.slick03 li div h4 {
	margin: 1.75em 0 0;
	font-size: min(16px, 4.1vw);
	font-weight: 600;
	line-height: 1.25;
}

#top_column > ul.slick03 li div p {
	margin: 1em 0 0;
	font-size: 14px;
	line-height: 1.75;
}

#top_column > ul.slick03 li div > ul {
	display: flex;
	justify-content: space-between;
	margin: 1.5rem 0 1rem;
}

#top_column > ul.slick03 li div > ul li {
	display: flex;
	align-items: center;
}

#top_column > ul.slick03 li div > ul li span {
	margin: 0 .25em 0 0;
	padding: .25em 1.5em .25em 3em;
	background: var(--blue-color31) url(../images/icon_cat.svg) no-repeat min(10px, 2.56vw) 50%;
	background-size: min(10px, 2.56vw);
	border-radius: 2em;
	color: #ffffff;
	font-size: min(8px, 2.05vw);
	font-weight: 600;
}

#top_column > ul.slick03 li div > ul li time {
	color: var(--blue-color31);
	font-size: min(10px, 2.56vw);
	font-weight: 600;
	text-align: right;
}

#top_column > ul.slick03 li div > .top_link_right {
	position: absolute;
	bottom: min(20px, 5.13vw);
	right: min(20px, 5.13vw);
}

#top_column > ul.slick03 li div > .top_link_right span {
	font-size: min(8px, 2.05vw);
	border-bottom: none;
}

#top_column .slick-dots {
	bottom: -4rem;
}

#top_column .slick-dots li {
	margin: 0 .75rem;
}

#top_column .slick-dots li button {
    width: min(15px, 3.85vw);
    height: min(15px, 3.85vw);
    background: #ffffff;
    border: 1px solid var(--blue-color31);
    border-radius: 50%;
    opacity: 1;
}

#top_column .slick-dots li button::before {
    position: absolute;
    top: 0;
    left: 0;
    width: 15px;
    height: 15px;
    border: 1px solid var(--blue-color31);
    border-radius: 50%;
    content: '';
    background: #ffffff;
}

#top_column .slick-dots li.slick-active button::before {
		background: var(--blue-color31);
    opacity: 1;
}

#top_flow {
	padding: 80px 0;
	background: #F5F8FB;
}

#top_flow .flow_wrap {
	margin: 0 auto;
	width: min(1024px, 90vw);
}

#top_flow .flow_wrap > h4 {
	margin: 1em 0 2.25em;
	color: var(--blue-color31);
	font-size: min(22px, 5.64vw);
	font-weight: 600;
}

#top_flow .flow_wrap > ul {
	display: flex;
	flex-wrap: wrap;
	position: relative;
}

#top_flow .flow_wrap > ul + h4 {
	margin-top: 2.5em;
}

#top_flow .flow_wrap > ul:first-of-type::after {
	content: '';
	width: min(1176px, 100vw);
	height: 1px;
	background: linear-gradient(90deg, var(--text-color), var(--text-color) 50%, transparent 50%, transparent);
	background-size: 3px;
	position: absolute;
	bottom: 0;
	left: -76px;
}

#top_flow .flow_wrap > ul > li:nth-child(2n+1) {
	padding: 0 60px 0 100px;
	width: min(724px, 90vw);
	position: relative;
}

#top_flow .flow_wrap > ul > li:nth-child(2n) {
	padding: 0 0 min(60px, 15.38vw);
	width: 300px;
}

.li_vertically {
	padding-bottom: 270px !important;
	position: relative;
}

.li_vertically > ul {
	display: flex;
	flex-wrap: wrap;
	padding: 0 40px;
	width: min(824px, 90vw);
	height: 160px;
	background: #ffffff;
	border: 3px solid var(--blue-color31);
	border-radius: .6rem;
	position: absolute;
	bottom: 60px;
	right: 100px;
}

.li_vertically > ul li {
	padding: 20px 0 0;
	width: 50%;
}

.li_vertically > ul li h6 {
	color: var(--blue-color31);
	font-size: 18px;
	font-weight: 600;
}

.li_vertically > ul li p {
	padding-left: 1.125rem;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.5;
}

.li_vertically2 {
	padding-bottom: 60px !important;
}


#top_flow .flow_wrap > ul li strong {
	height: 100%;
	background: radial-gradient(circle, #D9D9D9, #D9D9D9 33%, transparent 33%, transparent) repeat-y 50% 0;
	background-size: .375rem .75rem;
	color: var(--blue-color31);
	font-family: hiragino-mincho-pron, serif;
	font-size: min(46px, 11.79vw);
	font-weight: 600;
	line-height: 1;
	position: absolute;
	top: 0;
	left: 0;
	z-index: 1;
}

.no_line {
	background: none !important;
}

.no_line::before,
.no_line::after {
	content: none !important;
}

#top_flow .flow_wrap > ul li strong::before,
#top_flow .flow_wrap > ul li strong::after {
	content: '';
	width: 100%;
	height: 1.1em;
	background: #F5F8FB;
	position: absolute;
	top: 0;
	left: 0;
	z-index: -1;
}

#top_flow .flow_wrap > ul li strong::after {
	height: .25em;
	top: auto;
	bottom: 0;
}

#top_flow .flow_wrap > ul li > h5 {
	padding: .65em 0 1em;
	font-size: 18px;
	font-weight: 600;
	line-height: 1.25;
}

#top_flow .flow_wrap > ul li > h6 {
	margin: 1.5em 0 .5em;
	color: var(--blue-color31);
	font-size: min(16px, 4.1vw);
	font-weight: 600;
	line-height: 1.25;
}

#top_flow .flow_wrap > ul li > p + h6 {
	margin-top: 2.5em;
}

#top_flow .flow_wrap > ul li > p {
	font-size: 14px;
	line-height: 1.75;
}

#top_flow .flow_wrap > ul:last-of-type li:last-child {
	padding: 0;
}

#top_salon {
	padding: 80px 0 0;
	height: 700px;
	background: url(../images/bg_topsalon.webp) no-repeat 50% 50%;
	background-size: cover;
	overflow-y: hidden;
}

#top_salon > ul {
	display: flex;
	flex-wrap: wrap;
	margin: 3.25rem auto 0;
	width: min(1176px, 100vw);
	gap: 0 24px;
}

#top_salon > ul > li {
	width: min(576px, 100vw);
	height: 312px;
	line-height: 1.5;
	position: relative;
}

#top_salon > ul > li > h3 {
	padding: 2px 0 0;
	background: var(--blue-color31);
	color: #ffffff;
	font-size: min(22px, 5.64vw);
	text-align: center;
}

#top_salon > ul > li > h4 {
	margin: 1.75em 0 0;
	font-size: min(20px, 4.62vw);
	font-weight: 600;
	line-height: 1.65;
	letter-spacing: .08em;
}

#top_salon > ul > li > h4 strong {
	font-size: min(30px, 7.69vw);
}

#top_salon > ul > li > address {
	display: block;
	margin: 1.15em 0 0;
}

#top_salon > ul > li > a {
	display: block;
	margin: 1.15em 0 0;
	color: var(--blue-color31);
	font-size: min(28px,7.13vw);
	font-weight: 600;
}

#top_salon > ul > li > time {
	display: block;
	margin: .25em 0 0;
	font-size: min(13px, 3.08vw);
}

#top_salon > ul > li > .icon_insta {
	display: flex;
	width: min(50px, 12.82vw);
	height: min(50px, 12.82vw);
	background: var(--blue-color31);
	border-radius: 50%;
	justify-content: center;
	align-items: center;
}

#top_salon > ul > li > .icon_insta img {
	display: block;
	width: 60%;
}

#top_salon > ul > li > ul {
	display: flex;
	gap: min(25px, 6.41vw);
	position: absolute;
	bottom: -150px;
	right: -150px;
}

#top_salon > ul > li > ul li {
	width: min(50px, 12.82vw);
	height: min(50px, 12.82vw);
}

#top_salon > ul > li > ul li a {
	display: flex;
	width: 100%;
	height: 100%;
	background: var(--blue-color31);
	border-radius: 50%;
	justify-content: center;
	align-items: center;
}

#top_salon > ul > li > ul li a img {
	display: block;
	width: 60%;
}

#top_salon > ul > li > ul li a img.logo_x {
	height: 50%;
}

#top_salon > ul > li > ul li a img.logo_tiktok {
	width: 50%;
}


footer > ul {
	display: flex;
	flex-wrap: wrap;
	height: 440px;
	background: var(--blue-color31);
}

footer > ul > li {
	display: flex;
	flex-wrap: wrap;
	width: 50%;
	color: #ffffff;
	align-items: center;
}

footer > ul > li:first-child {
	padding: 0 0 100px calc(50vw - 588px);
}

footer > ul > li div h2 {
    display: inline-block;
    font-family: 'the-seasons', serif;
    font-size: 48px;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: .2em;
}

footer > ul > li div h2 span {
    display: block;
    margin: 0 auto;
    width: 100%;
    font-size: 30%;
    font-weight: 400;
    letter-spacing: .24em;
    text-align: center;
}

footer > ul > li div p {
	margin: 2em 0 0;
	font-size: 14px;
	line-height: 1.75;
}

footer > ul > li div p strong {
	font-weight: 600;
}

footer > ul > li div h3 {
		margin: 1.5em 0 .75em;
	  font-family: 'the-seasons', serif;
    font-size: min(22px, 5.64vw);
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: .1em;
}

footer > ul > li div > a {
	  font-family: 'the-seasons', serif;
    font-weight: 700;
}

footer > ul > li:last-child {
	background: url(../images/bg_footer01.webp) no-repeat 50% 75%;
	background-size: cover;
}

footer > ol {
	display: flex;
	flex-wrap: wrap;
	margin: 2em 0 0;
	justify-content: center;
	gap: 0 2em;
}

footer > ol li {
	font-size: 14px;
	font-weight: 600;
}


footer .copy {
	margin: 3em auto 9em;
	font-family: 'the-seasons', serif;
	font-size: 14px;
	font-weight: 700;
	text-align: center;
	letter-spacing: .1em;
}

.pc_only {
	display: initial !important;
}

.sp_only {
	display: none !important;
}

.tb_only {
	display: none !important;
}


@media (any-hover: hover) {
/*
	.menu div a:hover {
		background: rgba(255, 255, 255, .5);
	}
*/
	#nav a:hover {
			filter: brightness(125%);	
	}

	#nav a:hover::after {
		right: 1.25em;
	}

}


@media (1176px <= width <= 1600px) {

	main > h2 {
		width: 35.75vw;
		font-size: 2.25vw;
		top: 11.25vw;
		left: 40px;
	}

	main > h2::after {
		width: 35.75vw;
		height: 16.74vw;
	}

	main .logo_copy {
		left: 40px;
	}

	main .main_news {
		top: 732px;
		left: auto;
		right: 40px;
	}

}

@media (1024px <= width <= 1600px) {

	.li_vertically > ul {
		height: 160px !important;
	}

}

@media (768px <= width <= 1175px) {

	ul#g_menu {
		transform: scale(.8);
		transform-origin: top right;
		top: 90px;
		right: 0;
		border-radius: .6rem 0 0 .6rem;
	}

	header {
		flex-wrap: nowrap;
		padding: 0 2.5vw;
	}

	header h2 {
		flex-wrap: wrap;
		width: 6em;
		line-height: 1.25;
	}

	header h2 span {
		display: block;
		margin: 0;
		width: 100%;
		white-space: nowrap;
		text-align: center;
		letter-spacing: .15em;
		order: -1;
	}

	header ul {
		gap: 0 1em;
	}

	main > h2 {
		width: 45vw;
		font-size: 2.9vw;
		top: 14vw;
		left: 20px;
	}

	main > h2::after {
		width: 45vw;
		height: 21.07vw;
	}

	main > h3 {
		right: 14vw;
	}

	main .icon_open {
		left: auto;
		right: 20vw;
	}

	main .main_girl {
		left: auto;
		right: 16vw;
	}

	main .logo_copy {
		width: 53vw;
		left: 30px;
	}

	main .logo_copy h5 {
		font-size: 17px;
		letter-spacing: .02em;
	}

	main .logo_copy p {
		width: 100%;
		font-size: 13px;
	}

	main .main_news {
		padding: 1rem;
		width: 36vw;
		top: 732px;
		left: auto;
		right: 30px;
	}

	main .main_news ul li .top_link_right{
		bottom: 1rem;
		right: 1rem;
	}

	.campaign01, .slick_camp01 {
		width: 95vw;
	}

	:is(.campaign01, .slick_camp01) li:first-child {
		width: 30%;
	}

	:is(.campaign01, .slick_camp01) li:last-child {
		padding: 20px 20px 0 20px;
		width: 70%;
	}

	:is(.campaign01, .slick_camp01) li:last-child p {
		font-size: 14px;
	}

	#top_epix .cnt_epix {
		padding: 90px 0 0 30px;
	}

	#top_epix .cnt_epix p {
		width: 32vw;
	}

	#top_epix .cnt_epix .top_link_left {
		margin-top: 1.5rem;
	}

	#top_epix .cnt_epix .epix_machine01 {
		margin: 0;
		left: 30vw;
		right: auto;
	}

	#top_epix .cnt_epix strong {
		top: 435px;
		left: 21vw;
	}

	#top_epix .epix_staff {
		left: 60vw;
	}

	#top_feature ul {
		width: 95vw;
	}

	#top_feature ul li h4 {
		font-size: 20px;
	}

	#top_feature ul li:last-child h4 {
		letter-spacing: .02em;
	}

	#top_feature ul li:first-child h4 small {
		font-size: 50%;
		letter-spacing: .02em;
	}

	#top_feature ul li {
		width: 32%;
	}

	#top_feature ul li img {
		width: 72%;
		height: auto;
		aspect-ratio: 1 / 1 !important;
	}

	#top_feature ul li div {
		margin-top: -24px;
		padding: .75em 1em;
		font-size: 13px;
		line-height: 1.5;
	}

	#top_feature ul li:not(:first-child) div br {
		display: none;
	}

	#top_promise > div h3 {
		width: auto;
		right: 2.5vw;
	}

	#top_promise > div h3 small {
		right: 1.5%;
	}

	#top_promise > div > ul {
		width: 65vw;
		right: 2.5vw;
		justify-content: space-between;
		gap: .6vw 0;
	}

	#top_promise > div > ul li {
		width: 32.5%;
	}

	#top_promise > div > ul li > div h4 {
		letter-spacing: .02em;
	}

	#top_promise > div > ul li:first-child {
		left: -25vw;
		bottom: 0;
	}

	#top_promise > div > ul li:last-child > div h4 {
		transform: scaleX(.85);
		transform-origin: top left;
		width: 117.6%;
	}

	#top_promise .epix_machine02 {
		top: 150px;
	}

	#top_promise .epix_machine02::after {
		bottom: -2.5em;
	}

	#top_promise > div .img_promise01::before {
		bottom: 58px;
		z-index: 3;
	}

	#top_camp > ul.slick01 {
		margin: 1rem auto 0;
		width: 95vw;
	}

	#top_camp .slick-next {
		right: -2vw;
	}

	#top_voice .ul_voice {
		width: 100vw;
		margin: 3.5rem 0 0;
	}

	#top_voice .ul_voice > li:first-child {
		padding: 0 0 0 5vw;
		width: 53%;
	}

	#top_voice .ul_voice > li:last-child {
		width: 47%;
	}

	#top_column > ul.slick03 {
		width: 95vw;
	}

	.li_vertically {
		padding-bottom: 320px !important;
	}

	.li_vertically > ul {
		width: calc(90vw - 70px);
		height: 180px;
		padding: 0 20px;
		bottom: 40px;
		right: 0;
		gap: 1rem;
	}

	.li_vertically > ul li {
		width: calc(50% - .5rem);
	}

	#top_flow .flow_wrap > ul > li:nth-child(2n+1) {
		padding: 0 20px 0 70px;
		width: calc(100% - 200px);
	}

	#top_flow .flow_wrap > ul > li:nth-child(2n) {
		width: 200px;
	}

	#top_flow .flow_wrap > ul:first-of-type::after {
		left: -5vw;
	}

	#top_salon > ul {
		gap: 0;
	}

	#top_salon > ul > li {
		width: 50%;
	}

	#top_salon > ul > li > h4 {
		margin: 1em 0 0;
	}

	#top_salon > ul > li > :is(h4, address, a, time) {
		padding: 0 2.5vw;
	}

	#top_salon > ul > li > a {
		margin: .75em 0 0;
	}

	#top_salon > ul > li > time {
		font-size: 12px;
	}

	#top_salon > ul > li > .icon_insta {
		padding: 0;
		margin-left: 2.5vw;
	}

	#top_salon > ul > li br {
		display: initial !important;
	}

	footer > ul > li {
		padding: 0 2.5vw 100px !important;
	}

	footer > ul > li br {
		display: initial !important;
	}


	.tb_only {
		display: initial !important;
	}


}



@media (width <= 767px) {

/*
	div {
		padding: 0;
		justify-content: center;
	}
*/

	h1 {
		height: 10.26vw;
		letter-spacing: .02em;
	}

	header {
		padding: 0 5vw;
		height: 19.23vw !important;
		position: sticky;
		top: 0;
		left: 0;
		z-index: 10;
	}

	header ul {
		display: none;
	}

	.menu {
    width: 100vw;
	}

	.menu.scroll_y {
		padding-top: calc(8rem - 10.26vw);
	}

	.menu h2 {
		display: none;
	}

	#nav {
		bottom: 2.5vw;
	}

	ul#g_menu {
		display: none;
		padding: 0;
		width: 95vw;
		height: 20.51vw;
		background: rgba(255, 255, 255, .9);
		justify-content: center;
		align-items: center;
		gap: 0 .25em;
		opacity: 1;
		transition: .3s;
		top: auto;
		bottom: 2.5vw;
		right: auto;
		left: 2.5vw;
	}

	.appear {
		bottom: 2.5vw !important;
		opacity: 1 !important;
	}

	ul#g_menu li {
		width: auto;
		height: 15.38vw;
		color: var(--blue-color6c);
		font-size: 3.59vw;
		align-items: center;
	}

	ul#g_menu li:nth-child(-n+2) a {
		display: flex;
		margin: 0;
		width: auto;
		height: 100%;
		align-items: center;
	}

	ul#g_menu li img.icon_www {
		display: inline-flex;
		margin: 0 .25em 0 0;
		width: 12.05vw;
	}

	ul#g_menu li img.icon_line {
		display: inline-flex;
		margin: 0 .25em 0 0;
		width: 14.38vw;
	}

	ul#g_menu li span {
		display: inline-flex;
		align-items: center;
		height: 15.38vw;
	}

	ul#g_menu li:last-child a {
		display: flex;
		flex-wrap: wrap;
		margin: 0 0 0 .5em;
		width: auto;
		justify-content: space-between;
	}

	ul#g_menu li:last-child a img {
		display: block;
		margin: 0;
		width: 6.25vw;
	}



	/* mainSP */
	main {
		margin: -29.49vw 0 0;
		height: 209.72svh;
/*		height: 453.85vw;*/
		background: url(../images/bg_top.webp) no-repeat 8% 10.26vw;
		background-size: 318.97vw;
	}

	main .circle01 {
		width: 102.56vw;
		top: -26.92vw;
		left: -78.21vw;
	}

	main .circle02 {
		width: 38.46vw;
		top: 94.87vw;
		left: -17.69vw;
	}

	main :is(.circle03, .circle04) {
		display: none;
	}

	main > h2 {
		top: 57.11svh;
/*		top: 123.59vw;*/
		left: 0;
		letter-spacing: .04em;
	}

	main > h2::after {
		left: 5vw;
	}

	main > h3 {
		width: 17.95vw;
		height: 94.36vw;
		top: 12svh;
/*	  top: 28.97vw;*/
	  right: 5vw;
	}

	main > h3 span:first-child {
		letter-spacing: .2svh;
	}

	main > h3 span:last-child {
		letter-spacing: .3svh;
		bottom: auto;
		top: 5svh;
	}

	main .fig_flower02 {
		top: 95vw;
		left: 6vw;
	}

	main .fig_flower03 {
		top: 29vw;
		left: 12vw;
	}

	main .main_girl {
		top: 16.47svh;
		left: 2.3vw;
	}

	main .main_copy {
		width: 90vw;
		top: 64svh;
/*		top: 133.08vw;*/
		left: 5vw;
	}

	main .main_news {
		margin: 0 auto;
		padding: 2rem 1rem;
		width: 90vw;
		height: 49.74vw;
		top: 82.23svh;
/*		top: 177.95vw;*/
		right: 0;
		left: 0;
	}

	main .main_news ul li time {
		font-size: 3.08vw;
	}

	main .main_news ul li p {
		font-size: 3.59vw;
	}

	main .main_news ul li .top_link_right{
		position: absolute;
		bottom: 2rem;
		right: 1rem;
	}


@media (height <= 700px) {

	header {
		height: 15.38vw !important;
	}

	main {
		margin: -25.64vw 0 0;
		height: 260svh;
	}

	main > h2 {
		top: 58.25svh;
	}

	main > h2::after {
		top: 1.5em;
	}

	main .main_girl {
		top: 12svh;
		left: 2.3vw;
	}

	main .icon_open {
		top: 13svh !important;
		left: 6vw !important;
		transform: rotate(-45deg);
	}

  main .fig_flower02 {
    top: 67vw;
    left: 6vw;
  }

	main .fig_flower03 {
		display: none;
	}

	main .main_news {
		top: 92svh;
	}

	main .logo_copy {
		top: 126svh !important;
	}

	main .campaign01 {
		top: 166svh !important;
	}

}
/* 高さ700px設定ここまで */

	main .icon_open {
		top: 8.77svh;
		left: 60vw;
	}

	main .rectangle {
		top: 117.69vw;
	}

	main .rectangle::after {
		height: 304.36vw;
		background: linear-gradient(to bottom, #ffffff 0%, #ffffff 50%, var(--main-color) 74%, var(--main-color) 100%);
		top: 32.31vw;
	}

	main .logo_copy {
		width: 90vw;
		top: 109svh;
/*		top: 236vw;*/
		left: 5vw;
	}

	main .logo_copy h4 {
		display: block;
		text-align: center;
	}

	main .logo_copy h5 {
		text-align: center;
	}

	main .logo_copy p {
		font-size: 3.59vw;
	}

	main h6,
	#top_promise h5 {
		margin: 0 0 0 -7.5vw;
	}

	.campaign01,
	.slick_camp01 {
		width: 90vw;
		height: 126.4vw;
		background: #ffffff url(../images/fig_lpc.svg) no-repeat 2% 97%;
		background-size: 21.54vw;
	}

	.campaign01 {
		height: ;
		top: 139.45svh;
/*		top: 301.79vw;*/
	}

	:is(.campaign01, .slick_camp01)::after {
		content: '※本キャンペーンは、予告なく変更または終了する場合がございますので、\Aあらかじめご了承ください。' !important;
		line-height: 1.25;
		white-space: pre;
		bottom: -4em;
	}

	:is(.campaign01, .slick_camp01) li:first-child {
		padding: 2.5vw 2.5vw 0 2.5vw !important;
		width: 90vw;
		height: 47.83vw;
	}

	:is(.campaign01, .slick_camp01) li:first-child img {
		width: 85vw;
		height: 45.33vw;
	}

	:is(.campaign01, .slick_camp01) li:last-child {
		padding: 7.5vw 5vw 5vw 5vw;
		height: 81vw;
	}

	:is(.campaign01, .slick_camp01) li:last-child h2 {
		margin: 0 0 1.75em;
	}

	:is(.campaign01, .slick_camp01) li:last-child h2::after {
		bottom: -.75em;
	}

	:is(.campaign01, .slick_camp01) li:last-child h2 span {
		display: block;
		margin: .25em 0 0;
		width: 107.53%;
	  transform: scaleX(0.93);
	  transform-origin: top left;
	}

	:is(.campaign01, .slick_camp01) li:last-child p {
		font-size: 3.59vw;
	}

	:is(.campaign01, .slick_camp01) li:last-child .top_link_right {
		position: absolute;
		bottom: 7.5vw;
		right: 5vw;
	}

	#top_concept {
		padding: 20.51vw 0 15.38vw;
	}

	#top_concept .cnt_concept {
		padding: 15.38vw 0;
	}

	#top_concept .cnt_concept h4 {
		margin: 1em 0 0;
		font-size: 4.62vw;
	}

	#top_concept .cnt_concept p {
		margin: 2em 0 0;
		padding: 0 5vw;
		font-size: 3.59vw;
		line-height: 2.25;
	}

	#top_concept .top_gallery {
    padding: 10.26vw 0 0;
  }

	#top_concept .top_gallery > ul {
		margin: 0 5.13vw 0 0;
		column-gap: 5.13vw;
	}

	#top_concept .top_gallery > ul li,
	#top_concept .top_gallery > ul li img {
		width: 41.03vw;
		height: 23.85vw;
	}

	#top_epix {
		padding: 15.38vw 0 10.26vw;
		background: url(../images/bg_epix01.webp) no-repeat 38.5% 5vw;
		background-size: 364vw;
	}

	#top_epix::before {
		height: 51.29vw;
	}

	#top_epix h2 {
		font-size: 12.31vw;
	}

	#top_epix h3 {
		margin: 1rem 0 0 5vw;
		width: 50vw;
		justify-content: flex-start;
		gap: .5em 0;
	}

	#top_epix h3 span {
		font-size: 6.67vw;
	}

	#top_epix h3 b {
		text-align: left;
		right: auto;
		left: 0;
	}

	#top_epix .cnt_epix h4::before {
		width: 44.1vw;
		height: 3.85vw;
		top: -3.85vw;
		left: 0;
	}

	#top_epix .cnt_epix {
		margin: 33.85vw auto 0;
		padding: 10.26vw 5vw 0 40.51vw;
		height: 79.49vw;
		box-shadow: 0 .25rem .25rem rgba(0, 0, 0, .1);
		z-index: 1;
	}

	#top_epix .cnt_epix p {
		margin: 1em 0 0;
		width: auto;
	}

	#top_epix .cnt_epix strong {
		top: auto;
		bottom: 12vw;
		left: 7vw;
	}

	#top_epix .cnt_epix .top_link_left {
		justify-content: flex-end;
		position: absolute;
		bottom: 7.5vw;
		right: 5vw;
	}

	#top_epix .epix_staff {
		top: 53.08vw;
		left: auto;
		right: 0;
	}

	#top_epix .cnt_epix .epix_machine01 {
		margin: 0;
		top: -14.1vw;
		right: auto;
		left: -1vw;
	}

	#top_epix .cnt_epix .epix_machine01::before,
	#top_epix .cnt_epix .epix_machine01::after {
		width: 45.64vw;
		height: 21.54vw;
		bottom: -18.4vw;
	}

	#top_epix::after {
		height: 76.41vw;
	}

	#top_feature {
		padding: 15.38vw 0;
	}

	#top_feature h3::before {
		width: 24.87vw;
		height: 13.08vw;
		top: -8vw;
		left: 5vw;
	}

	#top_feature ul {
		margin: 17.95vw auto 0;
	}

	#top_feature ul li h4 {
		font-size: 6.67vw;

	}

	#top_feature ul li div {
	    margin: -8.97vw 0 0;
	    padding: 1.5em 1.5em;
	    height: auto;
  }

	#top_feature ul li img {
		margin-top: .75rem;
	}

	#top_promise {
		padding: 15.38vw 0 23.08vw;
    background: linear-gradient(to bottom, #ffffff 38%, var(--main-color) 38%)
	}

	#top_promise .epix_machine02 {
	    top: 62.56vw;
	    left: 0;
	}

	#top_promise .epix_machine02::after {
		letter-spacing: .02em;
		bottom: -3em;
		left: 5vw;
	}

	#top_promise > div {
		margin-top: 10.26vw;
		min-height: auto;
		height: 273.59vw;
	}

	#top_promise > div .img_promise01::before {
		bottom: 4vw;
		left: 3vw;
	}

	#top_promise > div h3 {
		top: 52vw;
		right: -7vw;
	}

	#top_promise > div > ul {
	    gap: 1vw;
	    right: 5vw;
	}

	#top_promise > div > ul li:first-child {
	    position: absolute;
	    left: auto;
	    right: 8vw;
	    bottom: auto;
	    top: -54vw;
	    transform: rotate(-15deg);
	}

	#top_camp {
		padding: 15.38vw 0 10.26vw;
	}

	#top_camp > h3 :is(small, span) {
		display: block;
		margin: 0;
		line-height: 1.75;
		position: relative;
		top: 0;
		left: 0;
	}

	#top_camp > ul.slick01 {
		margin: 3rem 0 0 5vw;
	}

	#top_camp > ul.slick01 li > div {
		padding: 0 5.13vw 10.26vw !important;
	}

	.campaign01 > li:last-child a,
	#top_camp ul.slick_camp01 li > .top_link_right {
		right: 5vw;
		bottom: 7.69vw;
	}

	#top_voice :is(.slick-prev, .slick-next),
	#top_camp .slick-next {
		top: 45%;
		right: -4vw;
	}

	#top_menu {
		padding: 15.38vw 0;
	}

	#top_menu > p {
		margin: 2.5em 5vw 4em;
		font-size:  3.59vw;
		line-height: 1.75;
		text-align: left;
	}

	.wrap_menu {
		padding: 8.57vw 0;
	}

	.wrap_menu > ul > li {
		width: 100% !important;
	}

	.wrap_menu > ul > li:first-child {
		font-size: 4.62vw
	}

	.wrap_menu > ul > li > ul > li {
		display: flex;
		justify-content: space-between;
	}

	.wrap_menu > ul > li:last-child span {
		display: inline;
		width: auto;
		position: relative;
	}


	#top_voice {
		padding: 15.38vw 0 53.85vw;
		position: relative;
	}

	#top_voice .ul_voice {
		flex-wrap: wrap;
		margin: 2rem 0 0 5vw;
		row-gap: 17.95vw;
	}

	#top_voice .ul_voice > li:last-child {
		width: 95vw;
	}

	#top_voice .ul_voice > li > ul li {
		padding: 0 5vw 2.56vw 0;
	}

	#top_voice .ul_voice > li > ul li img {
		width: 23.59vw;
		height: 23.59vw;
		top: 4.62vw;
		right: 4.62vw;
	}

	#top_voice .top_link_left {
		margin: 0 auto;
		justify-content: center;
		position: absolute;
		bottom: 15.38vw;
		right: 0;
		left: 0;
	}

	#top_voice .slick-next {
		top: 112%;
		left: auto;
		right: 5vw;
	}

	#top_voice .slick-prev {
		top: 112%;
		left: auto;
		right: 20.5vw;
	}

	#top_concern {
		padding: 15.38vw 0 0;
		background: url(../images/bg_concern.webp) no-repeat 50% 0;
		background-size: 300vw;
	}

	#top_concern > h3 {
		font-size: 8.97vw;
	}

	#top_concern > h3 small {
		font-size: 7.18vw;
	}

	#top_concern > h3::after {
		height: 43.85vw;
	}

	#top_concern .girl04 {
		right: 0;
	}

	.concern_txt01 {
		bottom: 34.6vw;
		right: auto;
		left: 5vw;
	}

	.concern_txt02 {
		bottom: 63.333vw;
		right: auto;
		left: 5vw;
	}

	.concern_txt03 {
		padding: .5em 0 0;
		bottom: 85.9vw;
	}

	.concern_txt04 {
		padding: .25em 0 0;
		bottom: 67.18vw;
		left: auto;
		right: 1vw;
	}

	.concern_txt05 {
		bottom: 39.74vw;
		left: auto;
		right: 5vw;
	}

	#top_solution {
		padding: 15.38vw 0;
	}

	#top_solution h2 {
		font-size: 7.18vw;
		letter-spacing: .03em;
	}

	#top_solution > img.sp_only {
		width: 15.9vw;
		position: absolute;
		top: 10.26vw;
		left: 9.23vw;
	}

	#top_solution > ul li {
		padding: 15.38vw 0 0 25.13vw;
		width: 100%;
		text-align: left;
	}

#top_solution > ul li small > span {
	display: inline-block;
	width: 111.11%;
	letter-spacing: 0;
	transform: scaleX(.9);
	transform-origin: top left;
}

#top_solution > ul li small > span > span {
	display: inline;
}

	#top_solution > ul li::before {
	    margin: 0;
	    padding: 0 0 .35em;
	    width: 80vw;
	    text-align: left;
	    position: absolute;
	    top: 6.15vw;
	    right: auto;
	    left: 5vw;
	}

	#top_solution > ul li figure {
	    margin: 0;
	    bottom: auto;
	    right: auto;
	    top: 15.38vw;
	    left: 5.13vw;
	}

	#top_faq {
		padding: 15.38vw 0;
	}

	:is(#top_faq, .plan) dl {
		margin: 2rem auto 0;
	}

	:is(#top_faq, .plan) dl + dl {
		margin-top: 1rem;
	}

	:is(#top_faq, .plan) dl dt {
		padding: .6rem 0 .6rem 15.38vw;
		font-size: 4.62vw;
	}

	:is(#top_faq, .plan) dl dd {
		padding: 1.5rem 1rem 1.25rem 15.38vw;
		font-size: 3.59vw;
	}

	:is(#top_faq, .plan) dl :is(dt, dd)::before {
		font-size: 8.21vw;
		left: 5.13vw;
	}

	:is(#top_faq, .plan) dl dd::before {
		top: .3em;
	}

	#top_column {
		padding: 15.38vw 0;
	}

	#top_column > ul.slick03 {
	    margin: 1.5rem auto 7rem;
	}

	#top_column > ul.slick03 li div {
		margin: 0 2.5vw;
		padding: 5vw;
		width: 80vw;
		height: 129.49vw;
	}

	#top_column > ul.slick03 li div p {
		font-size: 3.59vw;
	}

	#top_column .slick-dots li button::before {
	    width: 3.85vw;
	    height: 3.85vw;
	}

	#top_flow {
		padding: 15.38vw 0 20.51vw;
	}

	#top_column .slick-prev {
		top: 49%;
		right: auto;
		left: 1vw;
	}

	#top_column .slick-next {
		top: 49%;
		right: 1vw;
	}

	#top_flow .flow_wrap > h4 {
		margin: 2em 0 2.25em;
		text-align: center;
	}

	#top_flow .flow_wrap > ul li > h5 {
		font-size: 4.62vw;
	}

	#top_flow .flow_wrap > ul > li:nth-child(2n+1) {
		padding: 0 0 7.69vw 16.9vw;

	}

	#top_flow .flow_wrap > ul > li:nth-child(2n) {
		width: 90vw;
	}

	.li_vertically {
		padding-bottom: 0 !important;
	}

	.li_vertically > ul {
		margin: 10.26vw auto 15.38vw;
		padding: 0 5.13vw 5.13vw;
		height: auto;
		position: relative;
		bottom: auto;
		right: auto;
	}

	.li_vertically > ul li {
		padding: 5.13vw 0 0;
		width: 100% !important;
	}

	.li_vertically > ul li h6 {
		font-size: 4.62vw;
	}

	.li_vertically > ul li p {
		font-size: 3.59vw;
	}

	#top_flow .flow_wrap > ul:first-of-type::after {
		left: -5vw;
	}

	#top_flow .flow_wrap > ul li > p {
		font-size: 3.59vw;
	}

	#top_salon {
		padding: 15.38vw 0;
		height: auto;
		background: url(../images/bg_topsalon.webp) no-repeat 40% 50%;
		background-size: cover;
	}

	#top_salon > ul {
		gap: 0;
	}

	#top_salon > ul > li {
		height: auto;
	}

	#top_salon > ul > li:first-child {
/*		padding: 0 5vw 38.46vw; インスタ一覧が入る場合*/
		padding: 0 5vw 15.38vw;
	}

	#top_salon > ul > li > a {
		margin: .75em 0 0;
	}

	#top_salon > ul > li > ul {
			margin: 0 auto;
			justify-content: center;
	    bottom: 15.38vw;
	    right: 0;
	    left: 0;
	}

	#top_salon > ul > li:last-child {
		height: 54.87vw;
	}

	footer > ul {
		height: 200vw;
	}

	footer > ul > li {
		width: 100% !important;
		height: 100vw;
	}

	footer > ul > li:first-child {
		padding: 0 5vw 10.26vw;
	}

	footer > ul > li div h2 {
	    font-size: 12.31vw;
	}

	footer > ul > li div p {
		font-size:  3.09vw;
	}

	footer > ul > li div > a {
		line-height: 2.5;
	}

	footer > ul > li:last-child {
		height: 100vw;
		background: url(../images/bg_footer01.webp) no-repeat 15% 50%;
		background-size: cover;
	}

	footer > ol {
	    margin: 2em auto 0;
	    width: 90vw;
	    justify-content: left;
	    gap: .5em 2em;
	}

	footer > ol li {
		width: 100%;
		font-size: 3.59vw;
	}

	footer .copy {
		margin-bottom: 9em;
		font-size: 3.59vw;
	}



	.pc_only {
		display: none !important;
	}

	.sp_only {
		display: initial !important;
	}

	.tb_only {
		display: none !important;
	}



}





