/* CSS Document */
body {
	background: #000;
	color: #232323;
}
header, main, footer {
	margin: 0 auto;
	max-width: 1023px;
	width: 100%;
}
/************/
/** header **/
/************/
header {
	height: 60px;
	position: relative;
}
header .logo img {
	height: 60px;
}
header .nav {
	position: absolute;
	right: 0;
	top: 0;
}
header .nav .drawer_hidden {
	display: none;
}
header .nav .drawer_open {
	align-items: center;
	cursor: pointer;
	display: flex;
	height: 60px;
	justify-content: center;
	position: relative;
	width: 60px;
	z-index: 100;
}
header .nav .drawer_open span, header .nav .drawer_open span:before, header .nav .drawer_open span:after {
	background: #fff;
	border-radius: 3px;
	content: '';
	display: block;
	height: 3px;
	position: absolute;
	transition: .5s;
	width: 25px;
}
header .nav .drawer_open span:before {
	bottom: 8px;
}
header .nav .drawer_open span:after {
	top: 8px;
}
header .nav #drawer_input:checked ~ .drawer_open span {
	background: rgba(255, 255, 255, 0);
}
header .nav #drawer_input:checked ~ .drawer_open span::before {
	bottom: 0;
	transform: rotate(45deg);
}
header .nav #drawer_input:checked ~ .drawer_open span::after {
	top: 0;
	transform: rotate(-45deg);
}
header .nav #drawer_input:checked ~ .nav_content {
	left: 0;
}
header .nav .nav_content {
	align-items: center;
	background-color: rgba(0,0,0,0.7);
	display: flex;
	height: 100%;
	justify-content: center;
	left: 100%;
	position: fixed;
	top: 0;
	transition: .5s;
	width: 100%;
	z-index: 99;
}
.nav_content ul {
	display: flex;
	flex-wrap: wrap;
	list-style: none;
	margin: 0 auto;
	padding: 0;
	width: 90%;
}
.nav_content ul li {
	margin: 0.2em 0;
	padding: 0.8em;
	text-align: center;
	width: calc(100% / 2);
}
 @media screen and (min-width: 768px) {
.nav_content ul li {
	width: calc(100% / 3);
}
}
.nav_content ul li a {
	background: rgba(0,0,0,0.8);
	border-radius: 100vw;
	color: rgb(74,234,220);
	display: inline-block;
	font-weight: 700;
	padding: 0.8rem;
	position: relative;
	text-decoration: none;
	width: 100%;
}
.nav_content ul li a:hover {
	background: rgba(255, 255, 255,0.3);
	border-radius: 100vw;
	color: #fff;
	transition: .3s;
}
.nav_content ul li a::before {
	background: linear-gradient(135deg, rgb(74,234,220) 0%, rgb(151,120,209) 20%, rgb(207,42,186) 40%, rgb(238,44,130) 60%, rgb(251,105,98) 80%, rgb(254,248,76) 100%) border-box border-box;
	-webkit-mask: linear-gradient(#fff 0 0) padding-box, linear-gradient(#fff 0 0) border-box;
	-webkit-mask-composite: destination-out;
	border-radius: 100vw;
	border: 2px solid transparent;
	bottom: 0;
	content: "";
	left: 0;
	mask: linear-gradient(#fff 0 0) padding-box, linear-gradient(#fff 0 0) border-box;
	mask-composite: exclude;
	position: absolute;
	right: 0;
	top: 0;
}
/************/
/**  main  **/
/************/
main section {
	align-items: center;
	justify-content: center;
}
/*outline*/
main section.outline {
	display: flex;
	height: calc(100vh - 60px);
	position: relative;
}
main section.outline picture {
	position: absolute;
	top: 0;
}
main section.outline picture img {
	height: calc(100vh - 60px);
	object-fit: cover;
	overflow: hidden;
	width: 100vw;
}
main section.outline .imagefilter {
	height: calc(100vh - 60px);
	position: absolute;
	width: 100%;
	z-index: 1;
}
main section.outline .content {
	color: #cdcdcd;
	padding: 2rem;
	z-index: 9;
}
main section.outline .content h1 {
	font-size: clamp(4.3rem, calc(1.25vw + 4.0rem), 3.7rem);
	line-height: 1;
	margin-top: -4.5rem;
}
main section.outline .content p {
	color: #fff;
	margin-top: 1rem;
	text-shadow: 2px 2px 2px #000;
}
/*summary*/
main section.summary {
	display: flex;
	height: 100vh;
}
main section.summary div {
	width: 80%;
}
main section.summary picture.eventlogo {
	margin: 0 auto;
	width: 60%;
}
main section.summary div.brandlogo {
	width: 100%;
}
main section.summary div.brandlogo ul {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	list-style: none;
	margin: 0 auto;
	padding: 0;
	width: 100%
}
main section.summary div.brandlogo ul li {
	padding: 0 2px 2em;
}
 @media screen and (min-width: 768px) {
main section.summary div.brandlogo ul {
	width: 80%;
}
main section.summary div.brandlogo ul li {
	padding: 0 8px 2em;
}
}
main section.summary div.brandlogo ul li.oz {
	width: 33%
}
main section.summary div.brandlogo ul li.sparco {
	width: 42%
}
main section.summary div.brandlogo ul li.msw {
	width: 25%
}
main section.summary div p {
	line-height: 2;
	text-align: justify;
}
/*images*/
main section.images {
	background: #565656;
}
main section.images ul {
	display: flex;
	flex-wrap: wrap;
	list-style: none;
	margin: 0;
	padding: 0;
}
main section.images ul li {
	position: relative;
	width: calc(100% / 3);
}
main section.images ul li:before {
	content: "";
	display: block;
	padding-top: 100%;
}
main section.images ul li a:hover img {
	opacity: .5;
}
main section.images ul li img {
	bottom: 0;
	height: 100%;
	left: 0;
	margin: auto;
	object-fit: cover;
	position: absolute;
	right: 0;
	top: 0;
	width: 100%;
}
/*lightbox2*/
.lb-nav a.lb-prev, .lb-nav a.lb-next {
	background-size: 24px !important;
}
/*拡張*/
aside {
	position: absolute;
	right: 0;
	top: calc(100vh - 4.4em);
	z-index: 80;
}
aside a {
	background: #F00;
	border-radius: 100vh 0 0 100vh;
	color: #FFF;
	display: block;
	font-weight: 700;
	padding: 0.5em 1.4em;
	text-align: center;
	text-decoration: none;
	line-height: 1.4;
}
aside a:hover {
	background: #c00;
}
/************/
/** footer **/
/************/
footer {
	background: #000;
	color: #999;
	text-align: center;
}
footer .copyright {
	padding: 2em 0;
}
 @media screen and (min-width: 1024px) {
body {
	display: flex;
}
header, main, footer {
	max-width: inherit;
}
/******************************/
/** header min-width:1024px  **/
/******************************/
header {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	height: 100vh;
	justify-content: center;
	position: fixed;
	width: 48%;
}
header .logo {
	align-items: center;
	display: flex;
	justify-content: center;
	margin-bottom: 2rem;
}
header .logo img {
	height: 90px;
}
header .nav {
	position: initial;
}
header .nav .drawer_open {
	display: none;
}
header .nav .nav_content {
	background: inherit;
	position: initial;
}
/******************************/
/**  main  min-width:1024px  **/
/******************************/
main {
	margin: 0 0 0 48%;
	width: 42%;
}
main section.outline, main section.outline picture img, main section.outline .imagefilter {
	height: 100vh;
}
main section.outline .content h1 {
	line-height: 1.6;
}
aside {
	top: 5em;
}
/******************************/
/** footer min-width:1024px  **/
/******************************/
footer {
	text-align: left;
	width: 10%;
}
footer div {
	position: fixed;
	right: 5em;
}
footer .copyright {
	bottom: 0;
	display: block;
	padding: 1em 0;
	position: fixed;
	transform: rotate(-90deg);
	transform-origin: top left;
	width: 100vh;
}
}
