@charset "utf-8";
body {
		background-color: #ddd;
		font-family: YakuHanJP, "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
		overflow: hidden;
}
.fv {
		position: relative;
}
.fv .fv_bg-1, .fv .fv_bg-2 {
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 120vh;
		background-size: 100%;
		background-repeat: no-repeat;
		background-position: center top;
		pointer-events: none;
		z-index: -1;
}
.fv .fv_bg-1 {
		background-image: url("../png/fv_bg_mid-1.png");
		top: -100px;
		left: 100px;
		transition: all 1s cubic-bezier(0.16, 1, 0.3, 1);
}
.fv .fv_bg-2 {
		background-image: url("../png/fv_bg_mid-2.png");
		top: 100px;
		left: -100px;
		transition: all 1.8s cubic-bezier(0.16, 1, 0.3, 1);
}
.fv.isStart .fv_bg-1, .fv.isStart .fv_bg-2 {
		top: 0;
		left: 0;
}
.loading_base {
		position: fixed;
		top: 0;
		left: 0;
		width: 100%;
		height: 100vh;
		z-index: 5000;
		background: #fff;
}
.loading_logo {
		width: 200px;
		margin: auto;
		position: absolute;
		top: calc(50% - 100px);
		left: 0;
		right: 0;
		bottom: 0;
		z-index: 10;
}
.fv {
		aspect-ratio: 10 / 5.5;
		box-sizing: border-box;
}
.fv::before {
		content: '';
		display: block;
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		aspect-ratio: 10 / 5.5;
		background-image: url("../png/fv_logo_mid.png");
		background-repeat: no-repeat;
		background-position: left bottom;
		background-size: 100%;
		opacity: 0;
		transition: opacity 0.8s;
		transition-delay: 0.5s
}
.fv.isStart::before {
		opacity: 1
}
.fv_inner {
		height: 100%;
		background-repeat: no-repeat;
		background-position: 0 0;
		background-size: 100%;
		background-image: url("../png/fv_radius_mid.png");
		transform-origin: center bottom;
		transition: transform 1.5s cubic-bezier(0.16, 1, 0.3, 1), opacity 1.2s;
		transform: rotate(-20deg);
		opacity: 0;
		position: relative;
}
.isStart .fv_inner {
		transform: rotate(0deg);
		opacity: 1;
}
@media(min-width: 1800px) {
		.fv .fv_bg-1 {
				background-image: url("../png/fv_bg_pc-1.png");
		}
		.fv .fv_bg-2 {
				background-image: url("../png/fv_bg_pc-2.png");
		}
		.fv {
				aspect-ratio: 10 / 4.5;
		}
		.fv::before {
				background-image: url("../png/fv_logo_pc.png");
				aspect-ratio: 10 / 4.5;
		}
		.fv_inner {
				background-image: url("../png/fv_radius_pc.png")
		}
}
@media(max-width: 767px) {
		.fv .fv_bg-1, .fv .fv_bg-2 {
				transform: scale(1.3);
		}
		.fv .fv_bg-1 {
				background-image: url("../png/fv_bg_sp-1.png");
				top: -10vw;
				left: 10vw
		}
		.fv .fv_bg-2 {
				background-image: url("../png/fv_bg_sp-2.png");
				top: 10vw;
				left: -10vw
		}
		.loading_logo {
				width: 100px;
				margin: auto;
				top: calc(50% - 50px);
		}
		.fv {
				aspect-ratio: 10 / 13.4;
		}
		.fv::before {
				background-image: url("../png/fv_logo_sp.png");
				background-position: 0 0;
				height: 100%;
				aspect-ratio: inset;
		}
		.fv_inner {
				background-image: url("../png/fv_radius_sp.png");
				display: flex;
				align-items: flex-end
		}
		.fv_inner .fv_adjust {
				height: 50px;
				width: 100%;
		}
}
/* ============== */
.ex_section {
		padding: 0px 0 230px;
		position: relative;
		background: linear-gradient(180deg, rgba(9, 77, 164, 1) 0%, rgba(9, 77, 164, 1) 10%, rgba(220, 221, 221, 1) 100%);
		color: #fff;
		margin-top: 200px;
}
.ex_section::before {
		content: '';
		display: block;
		position: absolute;
		top: -200px;
		left: 0;
		width: 100%;
		height: 210px;
		background-repeat: no-repeat;
		background-position: center 0;
		background-size: 3000px;
		background-image: url("../png/about_bg2_pc.png");
}
.ex_section:after {
		content: '';
		display: block;
		position: absolute;
		top: -3px;
		left: 0;
		width: 100%;
		height: 4px;
		background: #004ea2;
}
@media(max-width: 1600px) {
		.ex_section::before {
				top: -149px;
				height: 150px;
				background-size: 1600px;
		}
}
@media(min-width: 768px) {
		.fv_adjust, .ex_section_upper {
				display: none;
		}
}
.exhibition_inner {
		max-width: 1070px;
		margin-left: auto;
		margin-right: auto;
		padding: 0 40px;
		position: relative;
		z-index: 5;
}
.exhibition_inner.upper {
		margin: 0 auto 35px;
		transform: translateY(-50px)
}
.exhibition_inner.bottom {
		display: flex;
		margin-bottom: 130px;
}
.exhibidion_inner_left {
		width: 408px;
		margin-right: 110px;
}
.exhibidion_inner_left_logo img {
		width: 100%;
		height: auto;
}
.exhibition_inner_right {
		flex: 1;
}
.exhibition_inner_right p {
		font-size: clamp(1.125rem, 0.546vw + 0.863rem, 1.375rem);
		line-height: 2.0;
		margin-block: calc((1em - 1lh) / 2);
}
@media(max-width: 1600px) {
		.exhibition_inner.upper {
				margin: 0 auto 50px;
				transform: translateY(0px)
		}
}
@media(max-width: 1200px) {
		.exhibidion_inner_left {
				width: 320px;
				margin-right: 80px;
		}
}
@media(max-width: 767px) {
		.exhibition_inner {
				padding: 0 20px;
				display: block !important
		}
		.exhibition_inner.upper {
				padding: calc(10vw + 35px) 20px 0;
				transform: translateY(-50px);
				margin-bottom: -50px;
		}
		.exhibidion_inner_left {
				margin: 0;
		}
		.exhibition_inner .section_title {
				margin-bottom: 35px;
		}
		.exhibition_inner.bottom .exhibidion_inner_left {
				max-width: 240px;
				margin: 0 auto 35px;
		}
		.exhibition_inner_right p {
				font-size: 16px;
				line-height: 2.0;
		}
		.exhibition_inner.bottom {
				margin-bottom: 35px;
		}
}
/* =============== */
.about_inner {
		max-width: 1070px;
		margin: 0 auto 0px;
		display: flex;
		padding: 0 40px;
		position: relative;
		z-index: 5;
}
.about_inner_left {
		width: 310px;
}
.about_inner_right {
		flex: 1
}
.about_inner_right p {
		font-size: 22px;
		font-size: clamp(1rem, 0.893vw + 0.571rem, 1.375rem);
		line-height: 2.2;
		margin: 2em 0 0;
		letter-spacing: 0.03em;
}
.about_inner_right p:first-child {
		margin-block: calc((1em - 1lh) / 2);
}
.section_title {
		display: flex;
		flex-direction: column-reverse;
}
.section_title .en {
		width: 385px;
		margin: 0 0 20px;
}
@media(max-width: 1500px) {
		.ex_section {
				padding-bottom: 180px;
		}
}
@media(max-width: 840px) {
		.about_inner_left {
				width: 250px;
		}
		.section_title .en {
				width: 250px;
		}
}
@media(max-width: 767px) {
		.ex_section {
				padding-top: 0;
				margin-top: 0;
				padding-bottom: 0;
				background: linear-gradient(180deg, rgba(9, 77, 164, 1) 0%, rgba(9, 77, 164, 1) 60%, rgba(220, 221, 221, 1) 100%);
		}
		.ex_section_upper {
				width: 100%;
				height: 10vw;
				background-size: 100%;
				background-image: url("../png/about_bg2_sp.png");
				background-repeat: no-repeat;
				margin-bottom: -2px;
		}
		.ex_section::before, .ex_section::after {
				display: none;
		}
		.about_inner {
				display: block;
				padding: calc(10vw + 75px) 20px 0;
		}
		.about_inner_left {
				width: auto;
				margin: 0 0 50px
		}
		.about_inner_right p {
				line-height: 2.0;
				font-size: 16px;
				margin: 1.5em 0 0;
		}
		.about_inner_right p br {
				display: none;
		}
		.section_title .en {
				width: 215px;
				margin-bottom: 10px;
		}
}
/* =============== */
.section_title .en img {
		width: 100%;
		height: auto;
}
.section_title h2 {
		font-size: 16px;
		font-weight: 500;
}
/* =============== */
.about_section {
		position: relative;
}
.about_section::before {
		content: '';
		display: block;
		position: absolute;
		top: -250px;
		left: 0;
		width: 100%;
		height: 1560px;
		background-repeat: no-repeat;
		background-position: center top;
		background-size: 3000px;
		background-image: url("../png/top_about_bg_pc.png");
		pointer-events: none;
}
@media(max-width: 767px) {
		.about_section::before {
				top: 13vw;
				left: 0;
				height: 110vw;
				background-position: right top;
				background-size: 100%;
				background-image: url("../png/top_about_bg_sp.png");
		}
}
.exhibition_photo_wrap {
		position: relative;
}
.exhibition_photo_wrap::before {
		content: '';
		display: block;
		position: absolute;
		top: 0;
		left: 0;
		width: calc(calc(calc(100% - 1000px) * 0.5) + 700px);
		aspect-ratio: 10 / 6;
		max-height: 700px;
		background: url("../jpg/period_img.jpg") no-repeat right center;
		background-size: cover;
		border-radius: 0 40px 40px 0;
}
.exhibition_photo {
		position: relative;
		max-width: 1000px;
		margin: 0 auto;
		height: 600px;
}
.exhibition_photo .period_col {
		position: absolute;
		bottom: -125px;
		right: -110px;
		width: 580px;
		height: 580px;
		z-index: 10;
		display: flex;
		justify-content: center;
		align-items: center
}
.period_col::before {
		content: '';
		display: block;
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		border-radius: 50%;
		background: linear-gradient(135deg, rgba(13, 77, 162, 1) 40%, rgba(113, 147, 191, 1) 100%);
		transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
		transform: scale(0);
}
.period_col.isOpen::before {
		transform: scale(1);
}
.period_col_inner {
		z-index: 5;
		position: relative;
		color: #fff;
}
.period_hd {
		width: 320px;
		margin: 0 auto 30px;
}
.period_gr dl {
		display: flex;
		margin: 0 0 10px;
		line-height: 1.8;
		font-size: 18px;
}
.period_gr dl:last-child {
		margin-bottom: 15px;
}
.period_gr dl dt {
		width: 4.2em;
		margin-right: 1em;
		display: flex;
		justify-content: space-between;
}
.period_gr dl dd {
		flex: 1
}
.period_notes_wrap {
		display: flex;
		justify-content: center;
}
.period_address {
		font-size: 90%;
		padding-top: 5px;
}
.googlemap {
		font-size: 90%;
		margin-top: 5px;
		font-family: 'Roboto', sans-serif;
		font-weight: 500;
}
.googlemap a {
		color: #ddd;
		text-decoration: underline;
		padding-left: 20px;
		position: relative;
}
.googlemap a::before {
		content: '';
		display: block;
		position: absolute;
		top: calc(50% - 7px);
		left: 0;
		width: 14px;
		height: 14px;
		background-repeat: no-repeat;
		background-position: 0 0;
		background-size: 14px;
		background-image: url("../svg/icon_blank_wht-2.svg")
}
@media (hover: hover) {
		.googlemap a:hover {
				text-decoration: none;
		}
}
.period_notes {
		margin-left: 1em;
		text-align: center;
		line-height: 1.8;
		font-size: 90%;
		position: relative;
}
.period_notes p span {
		position: absolute;
		top: 0;
		left: -1em;
		display: block;
}
@media(max-width: 1440px) {
		.exhibition_photo {
				height: 600px;
		}
		.exhibition_photo_wrap::before {
				width: calc(100vw - 400px);
				aspect-ratio: inset;
				max-height: inherit;
				height: 600px;
				border-radius: 0 40px 40px 0;
		}
		.exhibition_photo .period_col {
				bottom: -120px;
				right: -100px;
				width: 600px;
				height: 600px;
		}
		.exhibition_photo {
				max-width: inherit;
				width: 100%;
		}
		.exhibition_photo .period_col {
				right: -40px
		}
}
@media(max-width: 767px) {
		.exhibition_section {
				padding-top: calc(10vw + 75px);
		}
		.exhibition_section::before {
				top: 0vw;
				left: 0;
				width: 100%;
				height: 97vw;
				background-position: right top;
				background-size: 100%;
				background-image: url("../png/top_about_bg_sp.png");
		}
		.exhibition_sb {
				font-size: 24px;
				margin: 0 0 25px;
		}
		.exhibition_lead {
				margin-bottom: 40px;
		}
		.exhibition_photo {
				height: inherit
		}
		.exhibition_photo_wrap::before {
				position: static;
				width: 100%;
				height: 56vw;
				border-radius: 0;
				background: url("../jpg/period_img_sp.jpg") no-repeat 0 0;
				background-size: cover;
		}
		.exhibition_photo .period_col {
				position: static;
				bottom: inherit;
				right: inherit;
				width: 100%;
				height: auto;
				border-radius: 0;
				background: url("../png/period_col_bg_sp.png") no-repeat center bottom;
				background-size: 100%;
				box-sizing: border-box;
				padding: 45px 20px 50px;
		}
		.period_col::before {
				display: none;
		}
		.period_gr dl {
				font-size: 15px;
		}
}
/* =============== */
.about_kai_section {
		padding: 180px 40px 160px;
}
.about_kai_inner {
		max-width: 800px;
		margin: 0 auto;
		border-top: 1px solid #094da4;
		border-bottom: 1px solid #094da4;
		padding: 30px 0;
		position: relative;
		z-index: 5
}
.about_kai_inner h4 {
		font-size: clamp(1.25rem, 0.546vw + 0.988rem, 1.5rem);
		font-weight: 500;
		margin: 0 0 25px;
}
.about_kai_inner p {
		line-height: 2.2;
		margin: 0 0 2em
}
.about_kai_inner p:last-child {
		margin-bottom: 0;
}
@media(max-width: 840px) {
		.about_kai_inner p {
				font-size: 15px;
		}
}
@media(max-width: 767px) {
		.about_kai_section {
				padding: 35px 20px 0;
				margin-bottom: 0;
		}
		.about_kai_inner h4 {
				font-size: 20px;
				margin: 0 0 20px;
		}
		.about_kai_inner p {
				font-size: 15px;
				margin: 0 0 1.5em
		}
		.about_kai_inner p:last-child {
				margin-bottom: 0;
		}
}
/* =============== */
.products_section {
		padding-bottom: 50px;
		position: relative;
		background: linear-gradient(180deg, rgba(220, 221, 221, 1) 10%, rgba(20, 84, 167, 1) 60%, rgba(9, 77, 164, 1) 100%);
}
.product_inner {
		max-width: 1070px;
		margin: 0 auto 30px;
		padding: 0 40px;
		display: flex;
		justify-content: space-between;
		align-items: center;
		z-index: 5;
		position: relative;
}
@media(max-width: 767px) {
		.products_section {
				padding-top: calc(10vw + 75px);
		}
		.product_inner {
				margin: 0 auto 30px;
				padding: 0 20px;
				display: block;
		}
		.product_inner .section_title {
				width: 215px;
				margin-left: auto;
				margin-right: auto;
				text-align: center;
		}
}