@charset "utf-8";

@media screen and (min-width: 1200px) and (max-width: 1024px) {
	.kv-txt2 {
		left: -140px;
	}
	.kv-tx {
		right: -97px;
	}
	#top_concept .inner-sp .i04 {
		width: 121px;
	}

	#access .inner {
		width: auto;
		display: block;
	}
	#access .text {
		width: 40%;
		margin-left: 40px;
	}
	iframe {
		max-width: 390px;
	}
}

@media screen and (max-width: 1199px) {
	body {
		padding-top: 78px;
		-webkit-text-size-adjust: none;
		overflow-x: hidden;
	}

	p,
	li,
	td {
		font-size: 14px;
		line-height: 1.8em;
	}
	p {
		margin-bottom: 25px;
	}
	p.b {
		font-size: 18px;
	}
	.pcshow {
		display: none;
	}
	.spshow {
		display: block;
	}

	header {
		/* height: 78px; */
	}
	header .inner {
		width: 100%;
	}
	header .inner h1 {
		left: 24px;
		top: 20px;
	}
	header .inner h1 a img {
		width: 40px;
		height: auto;
	}
	.header-nav {
		display: none;
	}
	.header-logo {
		height: auto;
		margin: 0 auto;
		width: 141px;
		margin-top: 120px;
	}
	.menu_btn {
		display: flex;
		width: 100%;
		position: absolute;
		justify-content: center;
		align-items: center;
	}
	#visual img.fit {
		height: 100%;
	}

	#menu {
		overflow-y: scroll;
		pointer-events: none;
	}
	#menu .list {
		position: relative;
		display: flex;
		flex-wrap: wrap;
		width: 100%;
		padding: 130px 50px 0;
	}
	#menu .list .l1 {
		width: calc(50% - 10px);
		margin-right: 20px;
	}
	#menu .list .l2 {
		width: calc(50% - 10px);
	}
	#menu .list .l3 {
		width: 100%;
	}
	#menu .list .l4 {
		margin-top: 30px;
	}
	#menu .list ul > li span.eb {
		font-size: 17px;
	}
	#menu .list ul > li a span.j {
		font-size: 10px;
		margin-top: 10px;
	}
	#menu .list .l3 ul {
		display: flex;
		flex-wrap: wrap;
		justify-content: space-between;
	}
	#menu .list .l3 ul li {
		width: calc(50% - 10px);
		margin-bottom: 0;
	}

	#menu .list .l3 ul li a {
		display: block;
		text-align: center;
		height: 100px;
		padding: 50px 0 0;
	}

	#menu .list .l3 ul li a span.j {
		margin-top: 6px;
	}

	h2.midashi {
		font-size: 32px;
		padding-bottom: 20px;
	}

	a.btn {
		display: block;
		font-size: 15px;
		width: 190px;
		height: 50px;
		padding-top: 18px;
		margin: auto;
	}

	#flow h3 {
		margin-bottom: 100px;
	}
	.ja {
		font-size: 14px;
	}

	#visual {
		padding: 15px;
	}
	#visual .slide_sp {
		width: 100%;
		height: 100%;
	}
	#visual .logo img {
		width: 92px;
	}
	#visual .text {
		left: 35px;
		top: 50px;
		font-size: 10px;
		text-align: left;
		width: 50%;
	}
	.swiper-slide {
		width: 332px;
	}

	br.sp {
		display: inline !important;
	}
	br.pc,
	img.pc {
		display: none;
	}
	img.sp {
		display: inline-block;
	}

	.sa--left {
		transform: translate(20px, 0);
	}
	.sa--right {
		transform: translate(-20px, 0);
	}
	.sa--up {
		transform: translate(0, 20px);
	}
	.sa--down {
		transform: translate(0, -20px);
	}

	#top_concept .inner,
	#top_concept2 .inner,
	footer .flex {
		width: 100%;
	}
	#visual {
		background: none;
	}
	#visual .inner {
		width: 100%;
		min-height: 350px;
	}

	#flow .inner,
	#use .use-inner,
	#contact {
		max-width: 100%;
	}
	#use .use-inner {
		padding: 200px 40px 165px;
	}
	#use .ttl {
		font-size: 16px;
	}
	#access .inner {
		width: 100%;
		display: block;
	}
	#access .text {
		width: 100%;
		max-width: 500px;
		margin: 0 auto;
	}
	#visual .swiper-container {
		max-width: auto;
		width: 100%;
		min-height: 350px;
		margin: 0 auto;
		clip-path: inset(10px 20px round 110px 110px 0 0);
	}
	svg {
		max-width: 100%;
		width: 100%;
		height: auto;
	}

	.kv-txt-sp {
		width: auto;
		position: relative;
		margin: 34px 0 0;
		text-align: center;
	}
	.kv-txt-sp img {
		max-width: 480px;
		margin: 60px auto 30px;
		display: block;
	}
	.kv-insta {
		max-width: 105px;
	}
	.kv-txt-sp a img {
		width: 100%;
		max-width: 105px;
		height: auto;
		display: block;
		margin: 0 auto 40px;
	}
	.kv-txt-sp img.kv-txt2-sp {
		max-width: 250px;
	}
	.btn-line {
		letter-spacing: 0.2em;
	}
	.btn-line span {
		letter-spacing: 0.095em;
	}

	#visual #mask {
		position: absolute;
		right: 0;
		top: 329px;
		z-index: 100;
		left: 0;
		margin: 0 auto;
	}

	#top_concept .inner,
	#top_concept2 .inner {
		position: relative;
		width: 100%;
		min-height: auto;
		margin: 0 auto;
	}
	#top_concept h2,
	#top_concept2 .inner .t2 h2 {
		font-size: 18px;
		padding: 58px 34px 60px;
	}
	#top_concept .inner .i02 {
		position: relative;
		right: 0;
		left: 0;
		top: 0;
		width: 100%;
		height: auto;
	}
	#top_concept2 .sa--left {
		transform: none;
	}
	img.fit {
		width: auto;
		height: auto;
		object-fit: cover;
	}
	.inner-sp {
		position: relative;
		min-height: 277px;
		padding-bottom: 40px;
		display: flex;
		justify-content: center;
		flex-direction: row-reverse;
	}
	#top_concept .inner-sp .i03 {
		position: relative;
		margin: 20px;
		width: 40vw;
		max-width: 160px;
		height: auto;
	}

	#top_concept .inner-sp .i04 {
		position: relative;
		margin: 20px;
		width: 30vw;
		max-width: 160px;
		height: auto;
	}

	#top_concept2 .inner .i05 {
		position: relative;
		left: 0;
		right: 0;
		width: 100%;
		height: auto;
	}
	#top_concept2 .inner .t2 {
		position: relative;
		left: 0;
		right: 0;
		top: 0;
		width: 100%;
	}
	#top_concept .inner .t2 p,
	#top_concept2 .inner .t2 p {
		position: relative;
		padding: 0 34px;
		top: 0;
		width: 100%;
	}
	#top_concept2 .inner-sp .i06 {
		position: relative;
		margin: 20px;
		width: 30vw;
		max-width: 160px;
		height: auto;
		left: auto;
		top: auto;
	}
	#top_concept2 .inner-sp .i07 {
		position: relative;
		margin: 20px;
		width: 25vw;
		max-width: 136px;
		height: auto;
		right: auto;
		left: auto;
		top: auto;
	}

	#flow {
		padding: 100px 34px 50px;
		clip-path: inset(0 0 round 0 100px 0 0);
	}
	.flow-contents {
		width: 80%;
	}
	.attention {
		font-size: 12px;
	}
	.flex .box {
		width: 31%;
		text-align: center;
		padding: 80px 40px 70px;
		margin: 0 auto 35px;
	}
	#flow .line {
		margin-top: 0;
	}

	.step1 .bg-line {
		height: 80px;
	}
	img.line {
		max-width: 400px;
		z-index: 10;
		margin: 0 auto;
	}
	#flow .inner {
		padding-bottom: 0;
		max-width: 664px;
	}
	.step2 .bg-line {
		height: 80px;
	}
	.step3 .bg-line {
		height: 60px;
	}

	.step4 .bg-line {
		height: 130px;
	}
	#use {
		padding-bottom: 70px;
	}

	.flex .box {
		padding: 50px 30px 40px;
		margin: 0 auto 25px;
	}
	.flex .box img {
		height: 90px;
		margin-bottom: 20px;
	}
	#price .ja {
		padding-bottom: 20px;
	}

	#price .flex {
		display: block;
		max-width: 600px;
		margin: 0 auto;
	}
	.price-img {
		width: auto;
		margin: 0 34px;
		padding-bottom: 40px;
	}
	.btm-gray a {
		padding: 20px 30px;
		margin: 0 34px 96px;
		text-align: center;
	}
	.notes {
		padding: 50px 34px;
	}

	#insta .inner {
		width: 100%;
		max-width: 820px;
		max-width: auto;
		margin: 0 auto;
		padding: 98px 40px 50px;
		clip-path: inset(0 0 round 130px 130px 0 0);
	}
	.btm-kadomaru a {
		margin-top: 60px;
		margin-bottom: 80px;
	}
	.nami {
		top: -100px;
	}
	#access .ja {
		padding-bottom: 60px;
	}

	#access .slide {
		width: 100%;
		max-width: 500px;
		height: auto;
		margin: 0 auto;
	}
	#access .text h3 {
		margin-top: 100px;
	}
	#access .text dt {
		width: 100%;
		line-height: 1.5em;
		padding-bottom: 0;
	}
	#access .text dd {
		width: 100%;
		padding-bottom: 20px;
	}
	#access .text .map {
		position: relative;
		left: 0;
		right: 0;
		bottom: -30px;
		width: 100%;
		min-height: 253px;
		font-size: 0;
		filter: grayscale(100%);
		transition: all 0.4s ease;
		overflow: hidden;
	}
	#access .text .map iframe {
		width: 100%;
	}
	#contact {
		width: 100%;
		max-width: 707px;
		height: 56px;
		margin: 100px auto 100px;
		display: flex;
		justify-content: center;
		flex-wrap: wrap;
		align-items: center;
		line-height: 1.5em;
	}
	#contact .contact-ttl {
		width: 100%;
		max-width: 204px;
		margin: 0 auto 40px;
	}
	footer {
		padding-top: 10px;
	}
	footer a {
		display: block;
		font-size: 12px;
		margin: 10px auto 0;
		text-align: center;
		width: 100%;
	}
	footer .insta {
		display: none;
	}
	footer a.totop {
		width: 48px;
		height: 48px;
	}
	footer a.totop img {
		width: 22px;
	}
	.footer-link-sp {
		display: flex;
		justify-content: center;
		align-items: center;
		margin: 0 auto;
	}
	.footer-link-sp img {
		width: 22px;
		height: 22px;
		margin-right: 15px;
		margin-top: 0;
	}
	.footer-link-sp .privacy {
		border-left: 1px solid #fff;
		padding: 0 0 0 15px;
		margin-top: 10px;
		min-width: 146px;
	}
	.insta2 {
		margin-top: 10px;
		display: flex;
		align-items: center;
	}
	.contact-txt {
		font-size: 14px;
		width: 100%;
		text-align: center;
	}
	#access {
		padding-bottom: 70px;
	}

	#menu .list .l4 .contact-txt {
		font-size: 12px;
	}
	#top_calendar iframe {
		width: 100%;
		margin-bottom: 30px;
	}
}

@media screen and (max-width: 799px) {
	#top_news {
		width: 100%;
		margin: 100px auto;
	}
	#top_news dl {
		display: block;
		border-top: 1px solid #ddd;
	}
	#top_news dl dt,
	#top_news dl dd {
		padding-left: 1em;
		padding-right: 1em;
	}
	#top_news dl dt {
		border-bottom: none;
		padding-bottom: 0;
	}
	#top_news dl dd {
		border-bottom: 1px solid #ddd;
		padding-bottom: 10px;
		margin-top: 0;
	}
	#top_news dl dt {
		display: block;
		width: 100%;
	}
	#top_news dl dd {
		width: 100%;
	}
}

@media screen and (max-width: 430px) {
	#visual .swiper-container {
		height: 350px;
	}
	#visual #mask {
		top: 285px;
	}
	.step1 .bg-line {
		height: 150px;
	}
	.step2 .bg-line {
		height: 100px;
	}
	.step3 .bg-line {
		height: 180px;
	}
	.step4 .bg-line {
		height: 180px;
	}
	#use .ttl {
		font-size: 20px;
	}
	.nami {
		top: -40px;
	}
	#use .use-inner {
		background: url(../img/bg-smoke-sp.jpg) no-repeat top center;
		padding: 100px 20px 0;
		max-width: 420px;
	}
	#use p {
		font-size: 13px;
	}
	.flex .box {
		width: 82%;
		text-align: center;
		margin: 0 auto 35px;
	}
	#insta .insta-list {
		margin: 50px auto 0;
		grid-template-columns: repeat(2, 1fr);
		column-gap: 20px;
		row-gap: 13px;
	}
}
