@charset "UTF-8";
/*============================
	html5 reset style
============================*/
html,body,div,span,object,iframe,
h1,h2,h3,h4,h5,h6,p,pre,address,code,
a,em,img,
small,strong,sub,sup,var,b,i,
dl,dt,dd,ol,ul,li,
fieldset,form,label,legend,
table,caption,tbody,tfoot,thead,tr,th,td,
article,aside,canvas,figcaption,figure,
footer,header,menu,nav,main,section,
input,mark,audio,video,
time,mark,audio,video {
margin:0;
padding:0;
border:0;
outline:0;
font-size:100%;
vertical-align:baseline;
background:transparent;
}
body {
line-height:1;
}
article,aside,figcaption,figure,
footer,header,menu,nav,section {
display:block;
}
ul {
list-style:none;
}
a {
text-decoration: none;
}
img {
vertical-align:top;
}
em {
font-style:normal;
}
table {
border-collapse:collapse;
border-spacing:0;
}
input,select {
vertical-align:middle;
}
input,select,textarea,button {
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
font:inherit;
border:0;
border-radius: 0;
box-shadow:none;
}
input:focus,select:focus,textarea:focus,button:focus {
outline:0;
box-shadow: none;
}
textarea {
resize: none;
}
label {
cursor: pointer;
}
/*----------------------------
	base layout
-----------------------------*/
html {
	-webkit-text-size-adjust: 100%;
	font-family: var(--roboto);
	font-size: calc(100 / 1280 * 1vw);
	color: var(--main-color);
}
body {
	font-size: var(--fs-16);
}
/*----------------------------
	header
-----------------------------*/
.header {
	width: 100%;
	display: flex;
	z-index: 100;
	justify-content: space-between;
	align-items: flex-end;
	position: fixed;
	top: 0;
	left: 0;
	background-color: rgba(255, 255, 255, .9);
	padding: 8rem 176rem 9rem 66rem;
	box-sizing: border-box;
	font-family: var(--biz);
	font-weight: bold;
}
.sitetitle img {
	width: 108rem;
	height: auto;
}
.nav {
	margin-left: auto;
	margin-bottom: 7rem;
}
.list--nav {
	display: flex;
	gap: 8rem;
	font-size: var(--fs-14);
	line-height: 2;
	letter-spacing: 0.04em;
}
.link--nav {
	color: var(--main-color);
	padding: 0 16rem;
}
.link--navy {
	font-size: var(--fs-14);
	position: absolute;
	background-color: var(--main-color);
	color: var(--white);
	width: 111rem;
	height: 111rem;
	display: flex;
	gap: 8px;
	align-items: center;
	justify-content: center;
	flex-direction: column;
	line-height: 1;
	letter-spacing: 0.06em;
	top: 0;
	right: 0;
}
.link--navy span {
	font-size: var(--fs-12);
	letter-spacing: 0.04em;
}
.navlinks {
	display: none;
}
.menu__outer {
	display: none;
}
/*----------------------------
	contents
-----------------------------*/
.sec__title__outer {
	margin-left: 176rem;
	margin-bottom: 128rem;
}
.sec__title {
	font-family: var(--tektur);
	font-size: var(--fs-40);
	font-weight: normal;
	line-height: 1;
	letter-spacing: 0.04em;
	margin-bottom: 8rem;
}
.sec__title--sub {
	font-family: var(--biz);
	font-size: var(--fs-14);
	font-weight: bold;
	line-height: 1;
	letter-spacing: 0.01rem;
}
/*----------------------------
	banner
-----------------------------*/
.banner__title {
	font-size: var(--fs-32);
	line-height: 2;
	letter-spacing: 0.14em;
	text-align: center;
	box-sizing: border-box;
	max-width: max-content;
	margin: 0 auto 80rem;
}
.banner__outer {
	display: flex;
	align-items: center;
	gap: 32rem;
	padding: 0 80rem;
}
.banner__outer .text {
	font-weight: bold;
	line-height: 2;
	letter-spacing: 0.14em;
	margin-bottom: 25rem;
}
.banner {
	width: 544rem;
}
.banner__text {
	line-height: 2;
	letter-spacing: 0.14em;
	font-weight: bold;
	margin-bottom: 32rem;
	padding-left: 25rem;
	position: relative;
}
.banner__text::before {
	content: "";
	width: 2rem;
	height: 43rem;
	background-color: var(--accent-color);
	transform: rotate(-24deg);
	position: absolute;
	top: 0;
	left: 0;
}
.banner__text em {
	font-size: var(--fs-24);
	color: var(--accent-color);
}
.banner .link {
	display: block;
	margin: auto;
	max-width: max-content;
}
.img--banner {
	width: 416rem;
	height: auto;
}
/*----------------------------
	totop
-----------------------------*/
.totop {
	background-color: var(--white);
	border: solid 1px var(--accent-color);
	width: 80rem;
	height: 80rem;
	border-radius: 50%;
	display: flex;
	justify-content: center;
	align-items: center;
	position: fixed;
	right: 10rem;
	bottom: 10rem;
	opacity: 0;
	visibility: hidden;
	transform: translateY(10rem);
	transition: .4s;
	z-index: 10;
}
.totop.is--show {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}
.totop img {
	width: 23rem;
	height: auto;
}
/*----------------------------
	footer
-----------------------------*/
.footer {
	background-color: var(--main-color);
	color: var(--white);
	padding-top: 72rem;
}
.footer__contents {
	padding-left: 72rem;
	padding-right: 79rem;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
}
.footer__logo {
	margin-bottom: 32rem;
}
.footer__logo .tektur {
	font-family: var(--tektur);
	font-weight: normal;
	font-size: var(--fs-28);
	letter-spacing: 0.14em;
	margin-bottom: 10rem;
}
.footer__logo .text {
	font-size: var(--fs-14);
	letter-spacing: 0.14em;
	font-weight: bold;
	margin-bottom: 8rem;
}
.footer__logo .logo {
	display: block;
	margin: 32rem auto;
}
.footer__lists {
	margin-bottom: 65rem;
	display: flex;
	gap: 54rem 0;
	flex-wrap: wrap;
	justify-content: space-between;
	width: 820rem;
	font-family: var(--biz);
	font-size: var(--fs-14);
	line-height: 2;
	letter-spacing: 0.04em;
}
.list--footer {
	display: flex;
	gap: 8rem;
	margin-left: auto;
}
.link--footer {
	color: var(--white);
	padding: 0 16rem;
	box-sizing: border-box;
	transition: .4s;
	border-radius: 28rem;
	display: block;
}
.link--footer:hover {
	background-color: var(--white);
	color: var(--main-color);
}
.list--footersub {
	margin-top: 19rem;
}
.list--footersub__item + .list--footersub__item {
	margin-top: 16rem;
}
.link--footersub {
	color: var(--white);
	padding: 0 16rem;
	display: block;
	transition: .4s;
}
.link--footersub:hover,
.link--white:hover {
	opacity: .6;
}
.link--footersub::before,
.link--white::before {
	content: "- ";
}
.list--policy {
	margin-left: auto;
}
.link--white {
	background-color: var(--white);
	color: var(--main-color);
	display: block;
	padding: 0 8rem;
	transition: .4s;
}
.list--policy__item + .list--policy__item {
	margin-top: 24rem;
}
.list--links {
	width: 100%;
	display: flex;
	gap: 32rem;
	justify-content: flex-end;
	align-items: flex-end;
}
.img--note {
	width: 106rem;
	height: auto;
}
.img--instagram {
	width: 40rem;
	height: auto;
}
.img--bn {
	width: 270rem;
	height: auto;
}
.copyright__outer {
	background-color: var(--accent-color);
	text-align: center;
	font-size: var(--fs-14);
	padding: 9rem;
	box-sizing: border-box;
	width: 100%;
}
/*----------------------------
	media query
-----------------------------*/
@media screen and (max-width: 960px){
	.footer__lists {
		width: 100%;
	}
}
@media screen and (max-width: 768px){
	html {
		font-size: calc(100 / 390 * 1vw);
	}
	/* header */
	.header {
		padding: 0 0 0 5rem;
		padding-right: 0;
		align-items: center;
	}
	.is--active.header::before {
		content: "";
		background-color: var(--white);
		width: 100%;
		min-height: 100vh;
		position: fixed;
		top: 0;
		bottom: 0;
		left: 0;
		right: 0;
		margin: auto;
	}
	.sitetitle {
		position: relative;
		z-index: 1;
	}
	.sitetitle img {
		width: 72rem;
	}
	.nav {
		position: fixed;
		background-color: var(--main-color);
		width: 89.743%;
		left: 0;
		right: 0;
		top: 88rem;
		margin: auto;
		border-radius: 10rem 10rem 0 0;
		opacity: 0;
		visibility: hidden;
		transition: .4s;
		padding: 55rem 40rem 54rem;
		box-sizing: border-box;
		max-height: calc(100vh - 88rem);
		overflow-y: auto;
	}
	.is--active .nav {
		opacity: 1;
		visibility: visible;
	}
	.list--nav {
		font-size: var(--fs-20);
		flex-direction: column;
		margin-bottom: 40rem;
		gap: 29rem;
		text-align: center;
	}
	.link--nav {
		color: var(--white);
	}
	.link--navy {
		background-color: var(--white);
		color: var(--main-color);
		position: static;
		margin: 0 auto 40rem;
	}
	.navlinks {
		display: block;
	}
	.list--nav--policy {
		margin-bottom: 80rem;
	}
	.list--nav--policy__item + .list--nav--policy__item {
		margin-top: 32rem;
	}
	.link--white--nav {
		background-color: var(--white);
		color: var(--main-color);
		font-size: var(--fs-14);
		letter-spacing: .04em;
		display: block;
		line-height: 2;
		padding: 0 8rem;
		max-width: max-content;
		margin: auto;
	}
	.link--white--nav::before {
		content: "- ";
	}
	.list--nav--sns {
		display: flex;
		justify-content: center;
		gap: 32rem;
		margin-bottom: 48rem;
	}
	.link--bn {
		display: block;
		margin-bottom: 46rem;
	}
	.link--bn.mb--80 {
		margin-bottom: 80rem;
	}
	.link--bn img {
		width: 270rem;
		height: auto;
	}
	.header .footer__logo {
		color: var(--white);
		margin-bottom: 0;
	}
	.menu__outer {
		display: block;
		background-color: var(--main-color);
		width: 60rem;
		height: 60rem;
		position: relative;
	}
	.menu,.menu::before,.menu::after {
		width: 18rem;
		height: 2rem;
		background-color: var(--white);
		border-radius: 2rem;
		display: block;
		position: absolute;
		left: 0;
		right: 0;
		margin: auto;
		transition: .3s;
	}
	.menu {
		font-size: 0;
		top: 0;
		bottom: 0;
	}
	.menu::before,.menu::after {
		content: "";
	}
	.menu::before {
		top: -9rem;
	}
	.menu::after {
		bottom: -9rem;
	}
	.is--active .menu {
		background-color: transparent;
	}
	.is--active .menu::before {
		width: 25rem;
		top: 0;
		bottom: 0;
		left: -3.5rem;
		transform: rotate(45deg);
	}
	.is--active .menu::after {
		width: 25rem;
		top: 0;
		bottom: 0;
		left: -3.5rem;
		transform: rotate(-45deg);
	}
	/* contents */
	.sec__title__outer {
		margin-left: 20rem;
		margin-bottom: 80rem;
	}
	/* banner */
	.banner__title {
		font-size: var(--fs-20);
	}
	.banner__outer {
		flex-direction: column;
		gap: 60rem;
		padding: 0 20rem;
		box-sizing: border-box;
		margin: auto;
	}
	.banner__outer > div {
		width: 100%;
		margin-right: auto;
		font-size: var(--fs-14);
	}
	.banner__text em {
		font-size: var(--fs-20);
	}
	.img--banner {
		width: 100%;
	}
	/* footer */
	.footer__contents {
		padding: 0 20rem;
		flex-direction: column-reverse;
	}
	.footer__lists {
		flex-direction: column;
		gap: 24rem 0;
		margin-bottom: 80rem;
	}
	.list--footer {
		flex-direction: column;
		margin-left: 0;
	}
	.link--footer,.link--footersub {
		padding: 0;
	}
	.link--footer:hover {
		background-color: transparent;
		color: var(--white);
	}
	.list--policy {
		margin-left: 0;
	}
	.link--white {
		max-width: max-content;
	}
	.link--footersub:hover,
	.link--white:hover {
		opacity: 1;
	}
	.list--links {
		display: none;
	}
	.footer__logo {
		text-align: center;
		margin-bottom: 72rem;
	}
	.footer__logo .logo {
		width: 165rem;
		min-width: 165px;
	}
}