@charset "utf-8";
@media(max-width: 840px) {
		main.mainLock {
				position: fixed !important;
				width: 100%;
				height: 100vh;
				overflow: hidden;
		}
}
html.annouceOpen {
		overflow: hidden !important;
}
.top_overlay, .top_alertOverlay {
		position: fixed;
		top: 0;
		left: 0;
		width: 100%;
		height: 100vh;
		background: rgba(61, 58, 57, 0.8);
		mix-blend-mode: multiply;
		z-index: 8000;
		opacity: 0;
		transition: opacity 0.4s;
}
.top_alertOverlay {
		opacity: 1;
		cursor: pointer;
		display: none;
}
.top_announce {
		height: 100vh !important
}
.top_announce, .top_alert {
		background: #fff;
		width: 840px;
		height: 100vh;
		z-index: 9000;
		position: absolute;
		top: 0;
		left: calc(50vw - 420px);
		opacity: 0;
		transition: opacity 0.4s;
}
.top_alert {
		position: fixed;
		display: none;
		opacity: 1;
}
.top_announce_cont {
		height: calc(100vh - 100px);
		overflow: auto;
		padding-right: 30px;
}
.top_announce .announce_line {
		position: absolute;
		top: 40px;
		right: 32px;
		height: 40px;
		font-size: 15px;
		text-align: right;
}
.announce_text {
		padding-right: 60px;
}
.announce_text label {
		cursor: pointer;
		position: relative;
		z-index: 5;
		display: inline-block;
}
.announce_text label input[type="checkbox"] {
		position: absolute;
		top: 0;
		left: 0;
		opacity: 0;
		width: 24px;
		height: 24px
}
.announce_text label input[type="checkbox"] + span {
		position: relative;
		padding: 0 0 0 32px;
		cursor: pointer;
		display: inline-block;
}
.announce_text label input[type="checkbox"] + span::before {
		position: absolute;
		content: "";
		top: calc(50% - 12px);
		left: 0;
		width: 24px;
		height: 24px;
		background: #fff;
		box-sizing: border-box;
		border: 1px solid #3D3A39;
}
.announce_text label input[type="checkbox"]:checked + span::before {
		background: #3D3A39;
}
.announce_text label input[type="checkbox"]:checked + span::after {
		position: absolute;
		content: '';
		top: calc(50% - 7px);
		left: 4px;
		width: 15px;
		height: 6px;
		border-left: 3px solid #fff;
		border-bottom: 3px solid #fff;
		transform: rotate(-45deg);
}
.announce_line .announce_close {
		width: 40px;
		height: 40px;
		cursor: pointer;
		position: absolute;
		right: 0;
		top: -8px;
}
.top_alert .announce_line .announce_close {
		right: 32px;
		top: 32px;
}
@media(max-width: 767px) {
		.top_alert .announce_line .announce_close {
				right: 10px;
				top: 32px;
		}
}
.announce_close span {
		width: 40px;
		height: 40px;
		display: inline-block;
		cursor: pointer;
}
.announce_close span::before, .announce_close span::after {
		content: '';
		display: block;
		position: absolute;
		top: 50%;
		left: 8px;
		width: 24px;
		height: 1px;
		background: #222;
		pointer-events: none;
}
.announce_close span::before {
		transform: rotate(45deg)
}
.announce_close span::after {
		transform: rotate(-45deg)
}
.top_announce_inner {
		padding: 110px 40px 60px;
}
.top_announce_inner h1 {
		font-size: 22px;
		margin: 0 auto 20px;
		text-align: center;
		font-weight: 500;
}
.top_announce_inner p {
		font-size: 16px;
		line-height: 1.8;
		margin: 0 0 1em;
}
.official_link {
		padding: 1em 0 2em;
}
.official_link h5 {
		font-size: 17px;
		font-weight: 500;
		margin: 0 0 10px
}
.official_link ul {
		margin-left: 1em;
}
.official_link ul.first {
		margin-bottom: 2em;
}
.official_link ul li {
		position: relative;
		line-height: 1.4;
		margin: 0 0 10px;
		list-style: none;
		font-size: 16px;
}
.official_link ul li:last-child {
		margin-bottom: 0;
}
.official_link ul li::before {
		content: '・';
		display: block;
		position: absolute;
		top: 0;
		left: -1em;
}
.official_link ul li a {
		color: #3D3A39;
		text-decoration: underline;
		font-size: 14px;
		word-break: break-all;
}
@media (hover: hover) {
		.official_link ul li a:hover {
				color: #3D3A39;
				text-decoration: none;
		}
}
.bottom_alert ul {
		margin-left: 1em;
		list-style: none
}
.bottom_alert li {
		position: relative;
		line-height: 1.6;
		margin: 0 0 7px;
		font-size: 16px
}
.bottom_alert li span.icon_mark {
		display: block;
		position: absolute;
		top: 0;
		left: -1em;
}
.bottom_alert p {
		font-size: 16px;
		line-height: 1.8;
}
@media(max-width: 840px) {
		.top_announce, .top_alert {
				width: 700px;
				left: calc(50vw - 350px);
		}
}
@media(min-width: 768px) {
		.top_announce_inner h1 br {
				display: none;
		}
}
@media(max-width: 767px) {
		.top_announce_inner h1 {
				text-align: left;
				font-size: 16px;
				line-height: 1.6;
		}
		.top_announce .announce_line {
				right: 10px;
				top: 30px;
		}
		.announce_text {
				padding-right: 40px;
		}
		.top_announce, .top_alert {
				left: 20px;
				z-index: 9999;
				width: calc(100vw - 40px);
				height: 100vh;
		}
		.top_announce_inner {
				padding: 80px 10px 20px 15px;
		}
		.top_announce_inner p {
				font-size: 15px;
				line-height: 1.9;
		}
		.top_announce_cont {
				height: calc(100vh - 180px);
				padding-right: 5px;
		}
		.official_link ul li a {
				font-size: 13px;
				word-break: break-all;
		}
		.official_link ul li, .bottom_alert li, .bottom_alert p {
				font-size: 15px;
		}
}
@media(max-width: 375px) {
		.top_announce_inner {
				padding: 80px 15px 20px;
		}
}
.eng_section {
		border-top: 1px solid #3D3A39;
		padding-top: 30px;
		margin-top: 30px;
		padding-bottom: 100px;
}
.top_announce_cont h3.wp-block-heading {
		font-size: 110%;
		font-weight: 600;
		margin: 20px 0 10px;
}