@charset "utf-8";
@import url("https://fonts.googleapis.com/css2?family=Zen+Kaku+Gothic+Antique&Gothic+A1&display=swap");
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&family=Source+Sans+3:ital,wght@0,200..900;1,200..900&display=swap');
@import url("https://cdn.jsdelivr.net/npm/noto-sans-cjk-jp@1.0.1/index.min.css");

@font-face {
  font-family: 'M PLUS 1p';
  src: url('../font/M_PLUS_1p/MPLUS1p-Medium.woff2') format('woff2');
  font-display: swap;
}

@font-face {
  font-family: 'Yu Gothic';
  src: url('https://static.wfonts.com/data/2016/06/13/yu-gothic/yugothib.ttf') format('ttf');
  font-display: swap;
}

html {
	font-size: 10px;
	scroll-behavior: smooth;
}

body {
	color: #1A1A1A;
	word-break: break-all;
	text-size-adjust: 100%;
	-webkit-text-size-adjust: 100%;
	-moz-text-size-adjust: 100%;
	-ms-text-size-adjust: 100%;
	-o-text-size-adjust: 100%;
	font-family: "Zen Kaku Gothic Antique", sans-serif;
	font-weight: 600;
	font-style: normal;
	line-height: 1.8;
	overflow-x: hidden;
	font-size: max(1.6rem, 14px);
}

.text-center {
	text-align: center;
}

.d-inline {
	display: inline-block;
}

* {
	box-sizing: border-box;
	margin: 0;
	padding: 0;
}

*::after,
*::before {
	box-sizing: border-box;
}

img {
	max-width: 100%;
	height: auto;
}

main {
	display: block;
}

a {
	text-decoration: none;
	color: inherit
}

.clear {
	clear: both;
}

a[href^="tel:"] {
	cursor: default;
}

a[href^="tel:"]:hover {
	text-decoration: none;
}

br {
	font-size: 0;
}

.hv-o {
	transition: all 0.2s ease-in-out;
}

.hv-o:hover {
	opacity: .7;
}

.container {
	max-width: 120rem;
	width: calc(100% - 3rem);
	margin: 0 auto;
}

.row {
	display: flex;
	flex-wrap: wrap;
}

.col__12 {
	width: 100%;
}

.border__white {
	border: 0.2rem solid #fff;
}

.color__white {
	color: white;
}

.shadow_bg,
.bg_opacity,
.bg_opacity_before,
.gray_gradient,
.blue_gradient,
.button_bg {
	position: relative;
	display: block;
}

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

button {
	cursor: pointer;
	outline: none;
	border: none;
}

.scrolltop {
	display: none;
	justify-content: center;
	align-items: center;
	width: 100%;
	height: 100%;
	max-width: 5rem;
	max-height: 5rem;
	bottom: 7rem;
	right: 3rem;
	border-radius: 50%;
	background: linear-gradient(23deg, #02FFAE 0%, #04DCD1 33%, #06ADFF 100%);
	background-size: 100% 100%;
	background-position: left center;
	transition: all 0.3s ease-in-out;
	cursor: pointer;
	position: fixed;
	z-index: 100;
}

.scrolltop:hover {
	background-size: 200% 100%;
	background-position: right center;
	opacity: 0.9;
}

.scrolltop img {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%) rotate(-90deg);;
}

/* Btn Hamburger */
.btn-hamburger {
	display: none;
	position: relative;
	width: 4rem;
	height: 3.2rem;
	cursor: pointer;
}

@media screen and (max-width: 767px) {
  .btn-hamburger {
	height: 2.5rem;
  }
}

.btn-hamburger.is-show {
	display: flex;
}

.btn-hamburger span {
	position: absolute;
	left: 0;
	width: 100%;
	height: 4px;
	background: linear-gradient(90deg, #02FFAE 0%, #06ADFF 43%, #06ADFF 100%);
	border-radius: 10rem;
	transition: all 0.3s ease;
}

.btn-hamburger span:nth-child(1) {
	top: 0;
}

.btn-hamburger span:nth-child(2) {
	top: 50%;
	transform: translateY(-50%);
}

.btn-hamburger span:nth-child(3) {
	bottom: 0;
}

.btn-hamburger.is-active span:nth-child(1) {
	top: 50%;
    transform: translateY(-50%) rotate(45deg);
}

.btn-hamburger.is-active span:nth-child(2) {
	opacity: 0;
}

.btn-hamburger.is-active span:nth-child(3) {
	bottom: auto;
	top: 50%;
	transform: translateY(-50%) rotate(-45deg);
}
/* End Btn Hamburger */

.cs-fadein {
	opacity: 0;
	transform: translateY(60px);
	transition: opacity 1.4s cubic-bezier(0.22, 1, 0.36, 1), transform 1.4s cubic-bezier(0.22, 1, 0.36, 1);
	will-change: opacity, transform;
}

.cs-fadein.show {
	opacity: 1;
	transform: translateY(0);
}

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

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

	.row-un {
		display: flex;
		justify-content: space-between;
	}
}

@media screen and (min-width: 768px) {
	.view-sp {
		display: none !important;
	}
}

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

	body {
		line-height: 1.75;
	}

	.header__logo h1 {
		line-height: 1;
	}

	.scrolltop {
		right: 1.5rem;
		bottom: 6rem;
	}
}