@charset "UTF-8";
/*
// ナビゲーションアイコン
*/
.nav_ico{
	position: absolute;
	top: 0;
	right: 0;
	background-color: rgb(var(--color_main));
	width: 55px;
	height: 55px;
}
.nav_ico img{
	display: block;
	width: 17px;
	height: auto;
	margin: 0 auto;
	padding: 10px 0 0;
}
.nav_ico p{
	text-align: center;
	margin: 3px 0 0;
	font-size: .625rem;
	letter-spacing: 0.075em;
	color: #fff;
}
@media screen and (min-width: 769px) { /* PC用 メディアクエリー */
	/* ナビゲーションアイコン PC */
	.nav_ico{
		width: 70px;
		height: 70px;
	}
	.nav_ico:hover{
		opacity: 0.8;
	}
	.nav_ico img{
		width: 28px;
		padding: 13px 0 0;
	}
	.nav_ico p{
		margin: 5px 0 0;
		font-size: .75rem;
		line-height: 1;
	}
}


/*
// ナビゲーションリンク
*/
.page_link{
	flex-direction: column;
	gap: 15px 0;
	padding: 0 4%;
}
.page_link li{
	border-left: solid 2px #fff;
	max-width: calc(100% - 100px);
	font-size: .75rem;
	line-height: 1.5;
}
.page_link li a{
	display: block;
	width: max-content;
	max-width: 100%;
	padding: 5px 0 5px 10px;
}
.page_link li .en{
	display: block;
	width: max-content;
	font-size: .75rem;
}

.site_link{
	justify-content: space-between;
	gap: 10px 3.8%;
	padding: 0 4%;
	margin-top: 20px;
}
.site_link li{
	width: calc((100% - 3.8%) / 2);
	margin: 0;
}
.site_link a{
	display: flex;
	justify-content: center;
	align-items: center;
	text-align: center;
	background-color: #fff;
	width: 100%;
	height: 100%;
	border-radius: 10px;
	padding: 8px 10px;
	font-size: .75rem;
	font-weight: 700;
	line-height: 1.4;
	color: rgb(var(--color_main));

	overflow-wrap: anywhere; /* 収まらない場合に折り返す */
	word-break: keep-all; /* 単語の分割指定 */
	line-break: strict; /* 禁則処理を厳格に適用 */
}
.site_link .entry{}
.site_link .cp{}
@media screen and (min-width: 769px) { /* PC用 メディアクエリー */
	/* ナビゲーションリンク PC */
	.page_link{
		justify-content: flex-start;
		gap: 30px 50px;
		width: 640px;
		height: 170px;
		padding: 15px 0 0;
		margin: 0;
	}
	.page_link li{
		max-width: auto;
		font-size: 1rem;
	}
	.page_link li:hover{
		border-color: #ffff48;
	}
	.page_link li:hover a{
		color: #ffff48;
	}
	/* .page_link li a{
		position: relative;
		display: inline-block;
		height: 100%;
		padding-right: 15px;
		overflow: hidden;
		z-index: 0;
		transition: color 0.35s ease;
	}
	.page_link li a::before{
		content: "";
		position: absolute;
		inset: 0;
		left: 3px;
		background-color: #fff;
		border-radius: 0 10px 10px 0;
		transform: scaleX(0);
		transform-origin: left center;
		transition: transform 0.35s ease;
		z-index: -1;
	}
	.page_link li a:hover::before{
		transform: scaleX(1);
	}
	.page_link li a:hover{
		color: rgb(var(--color_main));
	} */
	.page_link li .en{
		font-size: .9375rem;
	}

	.site_link{
		gap: 0;
		padding: 0;
		margin-top: 40px;
	}
	.site_link li{
		width: max-content;
		margin: 0 15px 0 0;
	}
	.site_link a{
		width: 100%;
		height: 100%;
		border-radius: 10px;
		padding: 3px 24px;
		font-size: 1rem;
	}
	.site_link a:hover{
		background-color: rgba(255,255,255,0.9);
	}
	.site_link .ig{
		width: 46px !important;
		height: 46px;
		margin: 0 0 0 auto;
	}
	.site_link .ig a{
		border-radius: 50% !important;
		width: 100%;
		height: 100%;
		padding: 0 !important;
	}
	.site_link .ig img{
		width: 26px;
		height: auto;
	}
}


/*
// グローバルメニュー
*/
.menu {
	display: none;
	/* display: block; */
	align-items: center;
	position: fixed;
	top: 0;
	left: 0;
	background-color: rgb(var(--color_main));
	width: 100vw;
	height: 100dvh;
	color: #fff;
	z-index: 9998;
	opacity: 0;
	overflow-y: auto;
}
.menu.js-open {
	display: block;
	opacity: 1;
	animation: menuFadeIn 0.5s ease forwards;
}
@keyframes menuFadeIn {
	0% {
		opacity: 0;
	}
	100% {
		opacity: 1;
	}
}
.menu .head {
	position: fixed;
	top: 0;
	left: 0;
	background-color: rgba(var(--color_main), 0.8);
	width: 100%;
	height: 55px;
	padding: 0;
}
.menu .head .head_inner{
	position: relative;
	box-sizing: border-box;
	width: 100%;
	padding: 17px 0 0 10px;
	margin: 0;
}
.menu .head .osd_logo{
	width: max-content;
	height: 20px;
	margin: 0;
}
.menu .head .osd_logo img{
	width: auto;
	height: 100%;
	vertical-align: baseline;
}

.menu .inner{
	padding: 0 4%;
	margin-top: 80px;
}
.menu .nav_wrap{}
.menu .nav_wrap .page_link{
	width: 100%;
	margin-bottom: 0;
	padding: 0;
}
.menu .nav_wrap .page_link li{
	width: 100%;
}
.menu .nav_wrap .site_link{
	justify-content: space-between;
	gap: 0;
	width: 100%;
	margin: 35px auto 0;
	padding: 0;
}
.menu .nav_wrap .site_link li{
	width: calc((100% - 10px) / 2);
}
@media screen and (min-width: 769px) { /* PC用 メディアクエリー */
	/*グローバルメニュー PC*/
	.menu{
		width: 100%;
		height: auto;
		overflow: hidden;
	}
	.menu .head {
		height: 70px;
	}
	.menu .head .head_inner{
		max-width: 100%;
		padding: 20px 0 0 20px;
	}
	.menu .head .osd_logo{
		height: 28px;
		margin: 0;
	}

	.menu .inner{
		padding: 0 4%;
		margin-top: 80px;
		max-width: 100%;
	}
	.menu .nav_wrap{
		justify-content: space-between;
		align-items: flex-start;
		gap: 30px 20px;
		max-width: 100%;
		margin-bottom: 0;
		padding: 30px 0 60px;
	}
	.menu .nav_wrap .page_link{
		gap: 30px 10px;
		width: 640px;
		height: 170px;
		margin-bottom: 0;
		padding: 0;
	}
	.menu .nav_wrap .page_link li{
		width: max-content;
	}
	.menu .nav_wrap .site_link{
		flex-direction: column;
		gap: 10px 20px;
		width: max-content;
		margin: 0;
		padding: 0;
	}
	.menu .nav_wrap .site_link li{
		width: max-content;
		margin: 0 0 0 auto;
	}
	.menu .nav_wrap .site_link li a{
		padding: 10px 20px;
	}
}
@media screen and (min-width: 520px) and (max-width: 1120px) { /* Tablet用 メディアクエリー */
	/* グローバルメニュー TAB */
	.menu .nav_wrap .site_link{
		flex-direction: inherit;
	}
}


/*
// ハンバーガーボタン
*/
.menu_wrap {
	position: absolute;
	top: 0;
	right: 0;
	/* background-color: #eee; */
	box-sizing: border-box;
	width: 36px;
	height: 60px;
	padding: 20px 0 0 0;
	z-index: 9999;
}
.menu_toggle {
	/* imputボタン */
	display: none;
}

/* ボタン */
.menu_icon {
	display: block;
	width: 36px;
	height: 22px;
	cursor: pointer;
	position: relative;
}
.menu_icon span {
	display: block;
	width: 100%;
	height: 2px;
	background-color: rgb(var(--color_main));
	border-radius: 2px;
	margin-bottom: 5px;
	transition: all 0.3s;
}

/* ボタンオープン */
.menu_toggle:checked + .menu_icon span:nth-child(1) {
	transform: rotate(45deg);
	top: 9px;
	position: absolute;
}
.menu_toggle:checked + .menu_icon span:nth-child(2) {
	opacity: 0;
}
.menu_toggle:checked + .menu_icon span:nth-child(3) {
	transform: rotate(-45deg);
	top: 9px;
	position: absolute;
}
@media screen and (min-width: 769px) { /* PC用 メディアクエリー */
	.menu_wrap {
		width: 50px;
		padding: 20px 0 0 0;
	}
	/* ボタン */
	.menu_icon {
		width: 50px;
	}
}



