@charset "UTF-8";

.topbar {
	display: flex;
	justify-content: space-between;
	align-items: center;
	background-color: var(--color-primary);
	color: #fff;
	font-size: var(--font-xxs);
	padding: 15px 20px;
	@media (min-width: 1120px) {
		
	}
}
header {
	background-color: transparent;
	>div {
		background-color: rgba(255,255,255, .9);
		box-shadow: none;
	}
}

/*
.top__mainvisual
---------------------------*/
.top__mainvisual {
	margin-top: 0;  /* 上の余白をなくす */
    padding-top: 0; 

	position: relative;
	padding-top: 90px;
	z-index: 2;
	background-image: url(../img/top/mv-bg.svg);
	background-position: left top;
	background-repeat: no-repeat;
	background-size: 120%;
	overflow: hidden;
	h1 {
		color: var(--color-primary);
		font-size: var(--font-l);
		font-weight: 600;
		line-height: 1.65;
	}
	.top__mainvisual--text {
		p {
			line-height: 1.8;
			padding-bottom: 25px;
		}
	}
	.top__mainvisual--image {
		position: relative;
		text-align: right;
		padding: 20px 0;
		margin-right: -4vw;
		img {
			width: 50%;
			border-bottom-left-radius: 20px;
		}
	}
	@media (min-width: 1120px) {
		display: flex;
		justify-content: space-between;
		align-items: center;
		background-position: left bottom;
		background-size: auto;
		padding-top: 0;
		height: 100vh;
		h1 {
			font-size: var(--font-3xl);
			letter-spacing: .1em;
			padding-bottom: 20px;
		}
		.top__mainvisual--text {
			position: relative;
			width: 48%;
			p {
				font-size: var(--font-l);
			}
		}
		.top__mainvisual--image {
			position: absolute;
			top: 0;
			bottom: 0;
			right: 0;
			width: 58%;
			background-image: url(../img/top/main-visual.jpg);
			background-position: center top;
			background-repeat: no-repeat;
			background-size: cover;
			padding: 0;
			margin: 0 0 80px;
			border-bottom-left-radius: 50px;
			img {
				display: none;
			}
		}
	}
}
.information {
	background-color: #fff;
	border: 1px solid var(--color-primary);
	padding: 15px 2vw;
	margin-bottom: 40px;
	dt {
		color: var(--color-primary);
		padding-bottom: .75em;
		font-weight: 600;
		font-size: var(--font-m);
	}
	dd {
		line-height: 2;
		+dd {
			padding-top: .5em;
		}
	}
	@media (min-width: 1120px) {
		padding: 30px;
		margin-bottom: 80px;
		dt {
			font-size: var(--font-xl);
		}
	}
}
.content {
	padding: 40px 0;
	h2 {
		font-size: var(--font-xl);
		color: var(--color-primary);
		font-weight: 500;
		letter-spacing: .1em;
		padding-bottom: 1em;
		span {
			display: block;
			font-size: var(--font-s);
			letter-spacing: .05em;
			line-height: 1.6;
			font-weight: 400;
			padding-top: .5em;
		}
		.en {
			display: block;
			font-family: var(--accent-font);
			font-size: var(--font-xs);
			color: var(--color-accent);
			padding: 0 0 .5em;
		}
	}
	p {
		line-height: 2;
		&+p {
			padding-top: 1em;
		}
	}
	.button {
		padding-top: 0;
	}
	@media (min-width: 1120px) {
		padding: 80px 0;
		h2 {
			font-size: var(--font-3xl);
			span {
				font-size: var(--font-xl);
				padding-top: .75em;
			}
			.en {
				font-size: var(--font-m);
				padding: 0 0 1em;
			}
		}
		p {
			line-height: 2;
		}
	}
}
.about {
	background-color: #fff;
	background-image: url(../img/common/bg-pattern.svg);
	background-position: left top;
	background-repeat: no-repeat;
	background-size: 120%;
	h2 {
		color: #fff;
	}
	>div {
		position: relative;
	}
	.about__text__area {
		width: 100%;
		position: relative;
		background-image: url(../img/top/about-bg.jpg);
		background-position: center center;
		background-size: cover;
		color: #fff;
		padding: 30px 4vw 30px 0;
		border-top-right-radius: 30px;
		border-bottom-right-radius: 30px;
		&:before {
			width: 50%;
			height: 100%;
			content: "";
			display: block;
			position: absolute;
			top: 0;
			bottom: 0;
			left: calc(50% - 50vw);
			margin: auto;
			background-color: var(--color-primary);
			/*margin-left: calc(50% - 50vw);*/
			z-index: 0;
		}
		>div {
			position: relative;
		}
		.button {
			margin: 10px 0;
		}
	}
	.about__text{
		position: relative;
		left: 10px;


	}
	.about__image {
		object-fit: contain;
		display: none;
		
	}
	
	@media (min-width: 1120px) {
		background-image: url(../img/common/bg-pattern02.svg);
		background-position: right top;
		background-size: auto;
		.about__text {
			width: 82%;
			padding: 80px 20% 80px 0;
			border-top-right-radius: 50px;
			border-bottom-right-radius: 50px;
			.button {
				margin: 20px 0;
			}
		}
		.about__image {
			object-fit: contain;
			display: block;
			width: 30%;
			position: absolute;
			max-height: 80%;
			top: 0;
			bottom: 0;
			right: -3%;
			margin: auto;
			filter: drop-shadow(3px 3px 3px rgba(0, 0, 0, 0.1));
		}
	}
}

.news {
	padding-bottom: 0;
	.inner {
		>div {
			text-align: center;
			background-color: #fff;
			padding: 30px 4vw;
		}
	}
	.news__tab {
		display: flex;
		width: 100%;
		border-bottom: 1px solid var(--color-border-1);
		cursor: pointer;
		margin-bottom: 10px;
		li {
			width: calc(100% / 4);
			list-style: none;
			color: var(--color-primary);
			font-size: 16px;
			padding: 15px 0;
			text-align: center;
			&.active {
				font-weight: 600;
				border-bottom: 2px solid var(--color-primary);
			}
			@media (max-width: 330px) {
				font-size: var(--font-xs);
			}
		}
	}
	.news__panel {
		padding-bottom: 30px;
		>div {
			display: none;
			text-align: center;
			&.active {
				display: block;
			}
		}
		li {
			text-align: left;
			padding: 15px 0;
			border-bottom: 1px solid var(--color-border-2);
			div {
				&+div {
					padding-top: 10px;
				}
				p {
					display: inline-block;
					padding: 0;
				}
			}
		}
		.news__panel--category {
			line-height: 1;
			text-align: center;
			font-size: var(--font-s);
			color: var(--color-primary);
			min-width: 100px;
			padding: 5px;
			background-color: #fff;
			border: 1px solid var(--color-primary);
			border-radius: 50px;
			margin-left: 15px;
		}
	}
	@media (min-width: 1120px) {
		.inner {
			>div {
				padding: 80px 4vw;
			}
		}
		.news__tab {
			li {
				font-size: var(--font-l);
			}
		}
		.news__panel {
			padding-bottom: 50px;
			li {
				padding: 30px 0;
				a {
					display: flex;
					
				}
				div {
					width: 240px;
					&+div {
						width: calc(100% - 240px);
						padding-top: 0;
					}
				}
			}
			.news__panel--category {
				margin-left: 20px;
			}
		}
	}
}
.content__link {
	>div {
		position: relative;
		background-image: url(../img/top/btn-bg01.jpg);
		background-size: cover;
		color: #fff;
		overflow: hidden;
		border-radius: 10px;
		transition: opacity 0.2s ease-out;
		backface-visibility: hidden;
		zoom: 1;
		min-height: 220px;
		&:hover {
			opacity: 0.8;
		}
		&+div {
			margin-top: 20px;
		}
		&:after {
			content: "";
			display: block;
			width: 200px;
			height: 200px;
			background-image: url(../img/top/btn-bg.svg);
			background-size: cover;
			position: absolute;
			top: -100px;
			right: -50px;
			opacity: .5;
		}
		a {
			display: flex;        
            align-items: center; 

			position: relative;
			/*display: inline-block;*/
			width: 100%;
			height: 100%;
			text-decoration: none;
			padding: 50px;
			&:after,
			&:before {
				content: "";
				position: absolute;
				top: 0;
				bottom: 0;
				margin: auto;
			}
			&:after {
				right: 20px;
				display: inline-block;
				width: 36px;
				height: 36px;
				background-color: rgba(225,225,225,.95);
				border-radius: 50px;
			}
			&:before {
				right: 35px;
				width: 8px;
				height: 8px;
				border: 0px;
				border-top: solid 1px var(--color-primary);
				border-right: solid 1px var(--color-primary);
				transform: rotate(45deg);
				z-index: 1;
			}
		}
		&:nth-of-type(2) {
			background-image: url(../img/top/btn-bg02.jpg);
			&:after {
				top: -40px;
				right: -60px;
			}
		}
		&:nth-of-type(3) {
			background-image: url(../img/top/btn-bg03.jpg);
			&:after {
				top: 50px;
				right: 0;
				left: 0;
				margin: auto;
			}
		}
		dl {
			width: 85%;
			dt {
				font-size: var(--font-l);
				font-weight: 600;
				letter-spacing: .1em;
				padding-bottom: .5em;
			}
			dd {
				line-height: 1.75;
			}
		}
	}
	@media (min-width: 1120px) {
		>div {
			min-height: 220px;
			border-radius: 20px;
			&+div {
				margin-top: 50px;
			}
			&:after {
				content: "";
				width: 600px;
				height: 600px;
				top: -420px;
				right: -50px;
			}
			&:nth-of-type(2) {
				&:after {
					top: -80px;
					right: -220px;
				}
			}
			&:nth-of-type(3) {
				&:after {
					top: 50px;
					right: 0;
					left: 0;
					margin: auto;
				}
			}
			a {
				display: flex;        
            	align-items: center;  

				padding: 50px;
				&:after {
					right: 60px;
					width: 50px;
					height: 50px;
				}
				&:before {
					right: 82px;
					width: 10px;
					height: 10px;
				}
			}
			dl {
				width: 45%;
				dt {
					font-size: var(--font-xl);
					padding-bottom: .75em;
				}
				dd {
					line-height: 2;
				}
			}
		}

	}
}