/* --------------------------------------------------------------------------------------
   ヘッダー
--------------------------------------------------------------------------------------- */

header {
	position: relative;
	transition: all .2s ease-in-out;
	z-index: 100;
}

header.sticky {
	animation: header-sticky .2s cubic-bezier(0, .8, .56, 1) both;
	background-color: #fff;
	box-shadow: 0 2px 5px rgb(0,0,0,.1);
	height: 104px;
	left: 0;
	position: sticky;
	top: 0;
	width: 100%;
	z-index: 10000;
}

header.sticky nav { top: 15px; }

@keyframes header-sticky {
	0% { transform: translateY(-150px); }
	100% { transform: translateY(0); }
}

header nav {
	align-items: center;
	display: flex;
	justify-content: space-between;
	left: 0;
	padding: 0 25px;
	position: absolute;
	top: 40px;
	width: 100%;
}

header nav .gnavi {
	align-items: center;
	display: flex;
	justify-content: space-between;
	text-align: left;
	width: 900px;
}

header nav li > p a {
	display: block;
	font-weight: bold;
	overflow: inherit;
	position: relative;
	transition: all .3s ease-in-out;
}

header nav li > p a::before {
	background: url(../img/common/icon_navi_arrow.png) no-repeat;
	bottom: 30px;
	content: '';
	height: 31px;
	left: calc(50% - 29px);
	opacity: 0;
	position: absolute;
	transition: all .3s ease-in-out;
	visibility: hidden;
	width: 58px;
	z-index: -1000;
}

header nav li > p a::after {
	background-color: #1e4998;
	bottom: -10px;
	content: '';
	height: 2px;
	left: 50%;
	position: absolute;
	transition: all .3s ease-in-out;
	width: 0;
}

header nav .nav-current > p a,
header nav .nav-open > p a { color: #1e4998; }

header nav .nav-current > p a::after,
header nav .nav-open > p a::after {
	display: block;
	left: 0;
	width: 100%;
}

header nav .nav-current > p a,
header nav .nav-current > p a::after { transition: none; }

header nav li .popup-menu {
	opacity: 0;
	transition: all .2s ease-in-out;
	visibility: hidden;
	z-index: -10000;
}

header nav .nav-open > p a::before {
	bottom: -51px;
	opacity: 1;
	visibility: inherit;
	z-index: 2;
}

header nav .nav-open .popup-menu {
	opacity: 1;
	visibility: inherit;
	z-index: 1;
}

header nav li .popup-menu section {
	align-items: center;
	background-color: #fff;
	box-shadow: 0 0 10px rgb(0,0,0,.15);
	display: flex;
	justify-content: space-between;
	left: 0;
	margin: auto;
	max-width: 1180px;
	padding: 55px 110px 55px 0;
	position: absolute;
	right: 0;
	top: 20px;
	transition: all .3s ease-in-out;
	width: 100%;
}

header nav .nav-open .popup-menu section { top: 100px; }

header nav li .popup-menu h2 {
	color: #1e4998;
	font-size: 3.6rem;
	font-weight: bold;
	letter-spacing: 2px;
	text-align: center;
	width: 32%;
}

header nav li .popup-menu div {
	border-left: 1px solid #b5b5b5;
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	padding-left: 120px;
	width: 68%;
}

header nav li .popup-menu div .post-list.news_list {
	margin-left: -90px;
	width: 100vw;
}

header nav li .popup-menu div .post-list.news_list li {
	width: 110%;
}

header nav li .popup-menu div .post-list.news_list li a {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
}

header nav li .popup-menu div .post-list.news_list li:first-child a { padding-top: 0; }

header nav li .popup-menu div .post-list.news_list li span {
	margin-right: 10px;
	min-width: 90px;
}

header nav li .popup-menu div .post-list.news_list li p {
	font-size: 1.4rem;
	letter-spacing: 0;
}

header nav li .popup-menu div > p { width: 47%; }

header nav li .popup-menu div > p a {
	border-bottom: 1px solid #b5b5b5;
	display: block;
	font-weight: bold;
	overflow: inherit;
	padding: 30px 0 30px 60px;
	position: relative;
	transition: all .3s ease-in-out;
}

header nav li .popup-menu div > p a::before {
	background-position: center center;
	background-repeat: no-repeat;
	background-size: contain;
	content: '';
	display: block;
	height: 47px;
	image-rendering: -webkit-optimize-contrast;
	left: -8px;
	position: absolute;
	top: calc(50% - 23.5px);
	width: 49px;
}

header nav li .popup-menu div .nav-company-message a::before { background-image: url(../img/common/icon_company_message.svg); }
header nav li .popup-menu div .nav-strategy a::before { background-image: url(../img/common/icon_strategy.svg); }
header nav li .popup-menu div .nav-mission a::before { background-image: url(../img/common/icon_mission.svg); }
header nav li .popup-menu div .nav-profile a::before { background-image: url(../img/common/icon_profile.svg); }
header nav li .popup-menu div .nav-history a::before { background-image: url(../img/common/icon_history.svg); }
header nav li .popup-menu div .nav-officer a::before { background-image: url(../img/common/icon_officer.svg); }
header nav li .popup-menu div .nav-access a::before { background-image: url(../img/common/icon_access.svg); }

header nav li .popup-menu div .nav-individual a::before { background-image: url(../img/common/icon_individual.svg); }
header nav li .popup-menu div .nav-library a::before { background-image: url(../img/common/icon_library.svg); }
header nav li .popup-menu div .nav-news a::before { background-image: url(../img/common/icon_news.svg); }
header nav li .popup-menu div .nav-highlight a::before { background-image: url(../img/common/icon_highlight.svg); }
header nav li .popup-menu div .nav-calendar a::before { background-image: url(../img/common/icon_calendar.svg); }
header nav li .popup-menu div .nav-stock a::before { background-image: url(../img/common/icon_stock.svg); }
header nav li .popup-menu div .nav-governance a::before { background-image: url(../img/common/icon_governance.svg); }
header nav li .popup-menu div .nav-public a::before { background-image: url(../img/common/icon_public.svg); }
header nav li .popup-menu div .nav-disclosure a::before { background-image: url(../img/common/icon_disclosure.svg); }
header nav li .popup-menu div .nav-icon_environment a::before { background-image: url(../img/common/icon_environment.svg); }


header nav li .popup-menu div > p a::after  {
	background:
		linear-gradient(to bottom left, rgba(255,255,255,0) 50%, #1e4998 50.5%) no-repeat top left/100% 50%,
		linear-gradient(to top left, rgba(255,255,255,0) 50%, #1e4998 50.5%) no-repeat bottom right/100% 50%;
	content: '';
	display: block;
	height: 12px;
	position: absolute;
	right: 0;
	top: calc(50% - 4px);
	width: 6px;
}

header nav .nav-contact a {
	width: 250px;
}

header nav .nav-contact a::before {
	background: url(../img/common/icon_mail.png) no-repeat;
	content: '';
	display: block;
	height: 18px;
	left: 32px;
	position: absolute;
	transition: all .3s ease-in-out;
	width: 26px;
}

header nav li .popup-menu div .more {
	display: block;
	position: relative;
	right: -70px;
	text-align: right;
	width: 100%;
}

header nav li .popup-menu div .more span {
	display: inline-block;
	font-size: 1.4rem;
	position: relative;
}

header nav li .popup-menu div .more span::after{
	border-right: 2px solid #1e4998;
	border-top: 2px solid #1e4998;
	content: '';
	display: block;
	height: 7px;
	left: -21px;
	position: absolute;
	top: calc(50% - 4px);
	transform: rotate(45deg);
	width: 7px;
}

/* --------------------------------------------------------------------------------------
   共通部分
--------------------------------------------------------------------------------------- */

.box {
	margin-left: auto;
	margin-right: auto;
	position: relative;
	text-align: left;
	width: 1100px;
}

.over { transition: all .3s ease-in-out; }

main { margin-top: 100px; }

.sp { display: none; }

#key-anim {
	background-color: #000;
	left: 0;
	max-width: 100vw;
	overflow: hidden;
	position: fixed;
	top: 0;
	transition: all 1s ease-in-out;
	width: 100%;
}

.head-ttl {
	font-size: 4rem;
	font-weight: bold;
	margin-bottom: 60px;
	text-align: center;
}

.banner a,
.banner input[type='submit'] {
	align-items: center;
	background-color: #1e4998;
	border: 2px solid #1e4998;
	border-radius: 55px 55px 0 55px;
	color: #fff;
	cursor: pointer;
	display: flex;
	font-weight: bold;
	height: 72px;
	justify-content: center;
	letter-spacing: 2px;
	margin: auto;
	position: relative;
	transition: all .3s ease-in-out;
	width: 300px;
}

.submit .banner {
	display: inline-block;
	margin-left: 40px;
	position: relative;
}

.submit .banner:first-child { margin-left: 0; }

.banner a::after,
.submit .banner::after {
	background: linear-gradient(to bottom right, rgba(255,255,255,0) 50%, #fff 50.5%) no-repeat top left/100% 100%;
	bottom: 8px;
	content: '';
	display: block;
	height: 8px;
	position: absolute;
	right: 8px;
	transition: all .3s ease-in-out;
	width: 8px;
}

/* --------------------------------------------------------------
   バナーリスト共通デザイン TOP, IR情報, 個人投資家の皆様へ　※アイコン付きverはir.cssに記述
----------------------------------------------------------------- */
.banner-list {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}

.banner-list li {
	background-color: #fff;
	border-radius: 0 20px 0 0;
	box-shadow: 0 0 10px rgb(0,0,0,.15);
	display: flex;
	font-weight: bold;
	transition: all .3s ease-in-out;
	width: 530px;
}

.banner-list li:first-child{ margin-top: 0; }

.banner-list li a{
	padding:35px 0;
	text-align:left;
}

.banner-list li a {
	align-items: center;
	background-color: #fff;
	border-radius: 0 20px 0 0;
	display: flex;
	flex-wrap: wrap;
	font-size: 2.8rem;
	justify-content: center;
	letter-spacing: 1px;
	line-height: 1.5;
	padding: 50px 0;
	position: relative;
	transition: all .3s ease-in-out;
	width: 100%;
}

.banner-list li a::before {
	content: '';
	display: block;
	margin-right: 50px;
}

.banner-list li a::after  {
	background: linear-gradient(to bottom right, rgba(255,255,255,0) 50%, #1e4998 50.5%) no-repeat top left / 100% 100%;
	bottom: 8px;
	content: '';
	display: block;
	height: 8px;
	position: absolute;
	right: 8px;
	transition: all .3s ease-in-out;
	width: 8px;
}

.banner-list li a span b {
	display: block;
	font-size: 40%;
	font-weight: normal;
	margin-top: 16px;
}

.banner-list .blank a::after {
	background: url(../img/common/icon_blank.png) no-repeat;
	bottom: 8px;
	content: '';
	display: block;
	height: 22px;
	position: absolute;
	right: 8px;
	width: 22px;
}

.dl-btn { text-align: center; }

.dl-btn a {
	background: #fff url(../img/common/icon_dl.png) no-repeat 90% center;
	border-radius: 0 20px 0 0;
	box-shadow: 0 0 10px rgba(0,0,0,.15);
	display: inline-block;
	font-weight: bold;
	min-width: 300px;
	padding: 24px 0;
	vertical-align: middle;
}

.head-sub {
	font-size: 2.8rem;
	font-weight: bold;
	margin-bottom: 30px;
	padding-bottom: 20px;
	position: relative;
}

.head-sub::before {
	background-color: #1e4998;
	bottom: 0;
	content: '';
	display: block;
	height: 2px;
	left: 0;
	position: absolute;
	width: 30px;
}

.head-sub::after {
	background-color: #b5b5b5;
	bottom: 0;
	content: '';
	display: block;
	height: 2px;
	left: 30px;
	position: absolute;
	width: calc(100% - 30px);
}

.sec-column:first-child { margin-top: 0; }
.sec-column { margin-top: 60px; }

.column-2 {
	display: flex;
	justify-content: space-between;
	margin-bottom: 100px;
}

.column-2 .sec { width: 770px; }

.fade-top,
.fade-bottom,
.slide-left,
.slide-right { opacity: 0; }

.fade-top-animate,
.fade-bottom-animate { animation: fade-animate .8s cubic-bezier(0, .8, .56, 1) both; }

.slide-left { transform: translateX(-50px);}
.slide-right { transform: translateX(50px);}

.slide-left-animate,
.slide-right-animate { animation: slide-animate .8s cubic-bezier(0, .8, .56, 1) both; }

.cc_link,.word_link {
	text-decoration: underline;
	transition: all .3s ease-in-out;
}

.cc_link::after {
	content: url(../img/common/icon_cclink.svg);
	display: inline-block;
	padding: 0 4px;
	transition: all .3s ease-in-out;
	width: 14px;
}

.cc_link:hover,.word_link:hover,
.cc_link:hover::after { opacity: .6; }

@keyframes fade-animate {
	0% {
		opacity: 0;
		transform: translateY(50px);
	}

	100% {
		opacity: 1;
		transform: translateY(0);
	}
}

@keyframes slide-animate {
	0% { opacity: 0; }
	100% {
		opacity: 1;
		transform: translateX(0);
	}
}

/* --------------------------------------------------------------------------------------
   キービジュアル下層
--------------------------------------------------------------------------------------- */

.key-sub { background-color: #f7f7f7; }

.key-sub .box {
	align-items: center;
	display: flex;
	min-height: 410px;
}

.key-sub h2 {
	font-size: 5rem;
	font-weight: bold;
	position: relative;
}

.key-sub h2::before {
	background-color: #111f31;
	content: '';
	display: block;
	height: 1px;
	left: -66px;
	position: absolute;
	top: 50%;
	width: 30px;
}

.key-sub ul {
	bottom: 40px;
	display: flex;
	position: absolute;
}

.key-sub li {
	font-size: 1.2rem;
	font-weight: bold;
	margin-left: 40px;
	position: relative;
}

.key-sub li::before {
	background-color: #111f31;
	content: '';
	display: block;
	height: 1px;
	left: -25px;
	position: absolute;
	top: 50%;
	width: 10px;
}

.key-sub li:first-child { margin-left: 0; }
.key-sub li:first-child::before { display: none; }

.key-sub li a {
	display: block;
	font-weight: normal;
}

.side { width: 280px; }

.side .main-menu li a.level3, .side .main-menu li span.nolink {
	border-top: 1px solid #b5b5b5;
	display: block;
	font-weight: bold;
	overflow: hidden;
	padding: 20px 15px;
	position: relative;
}

.side .main-menu li a.level4 {
	display: block;
	overflow: hidden;
	padding: 10px 30px;
	position: relative;
}

.side .main-menu { border-bottom: 1px solid #b5b5b5; }

.side .main-menu li a::after {
	background:
		linear-gradient(to bottom left, rgba(255,255,255,0) 50%, #1e4998 50.5%) no-repeat top left/100% 50%,
		linear-gradient(to top left, rgba(255,255,255,0) 50%, #1e4998 50.5%) no-repeat bottom right/100% 50%;
	content: '';
	display: block;
	height: 12px;
	position: absolute;
	right: 0;
	top: calc(50% - 4px);
	width: 6px;
}

.side article { margin-top: 60px; }

.side article h2 {
	background-color: #1e4998;
	border-radius: 20px 20px 0 0;
	color: #fff;
	font-size: 2rem;
	font-weight: bold;
	padding: 20px;
	text-align: center;
}

.side article > div {
	background-color: #dde5f0;
	padding: 24px 20px;
}

.side article > div ul {
	background-color: transparent;
	display: block;
	margin-bottom: 24px;
	padding: 0;
}

.side article > div li {
	margin-top: 10px;
	width: auto;
}

.side article > div li a {
	display: block;
	font-size: 1.4rem;
	overflow: initial;
	padding-left: 20px;
	position: relative;
}

.side article > div li a::before {
	border-bottom: 2px solid #1e4998;
	border-right: 2px solid #1e4998;
	content: '';
	display: inline-block;
	height: 6px;
	left: 0;
	position: absolute;
	top: 11px;
	transform: rotate(-45deg);
	width: 6px;
}

.side article > div li a::after {
	background: url(../img/common/icon_file.png) no-repeat center top / cover;
	content: '';
	display: inline-block;
	height: 13px;
	margin-left: 10px;
	margin-top: -3px;
	vertical-align: middle;
	width: 11px;
}

.side article > div li:first-child { margin-top: 0; }

.side article > div .dl-btn a {
	background-position: 95% center;
	display: block;
	margin-left: -8px;
	min-width: inherit;
	padding-left: 23px;
	text-align: left;
	width: 107%;
}

.side .main-menu .active a { color: #1e4998; }

.side .logmi{ width: 230px; }

/* --------------------------------------------------------------------------------------
   ニュースリスト
--------------------------------------------------------------------------------------- */

.list-design li a {
	border-bottom: 1px solid #b5b5b5;
	display: block;
	font-size: 1.4rem;
	overflow: hidden;
	padding: 20px 0;
	position: relative;
	transition: all .3s ease-in-out;
}

.list-design li a::after {
	background:
		linear-gradient(to bottom left, rgba(255,255,255,0) 50%, #1e4998 50.5%) no-repeat top left/100% 50%,
		linear-gradient(to top left, rgba(255,255,255,0) 50%, #1e4998 50.5%) no-repeat bottom right/100% 50%;
	content: '';
	display: block;
	height: 12px;
	position: absolute;
	right: 0;
	top: calc(50% - 4px);
	width: 6px;
}

.list-design li:first-child a { border-top: 1px solid #b5b5b5; }

.list-design li a time {
	float: left;
	width: 70px;
}

.list-design li a span {
	background-color: #1e4998;
	border-radius: 100vw;
	color: #fff;
	float: left;
	font-size: 1.2rem;
	margin: 0 20px;
	min-width: 93px;
	padding: 0 15px;
	text-align: center;
}

.list-design li a p {
	float: left;
	width: 830px;
}

/* --------------------------------------------------------------------------------------
   IRリスト
--------------------------------------------------------------------------------------- */

.category { text-align: right; }

.category .select-menu {
	display: inline-block;
	text-align: left;
}

.category dl {
	border: 1px solid #1e4998;
	color: #1e4998;
	cursor: pointer;
	min-width: 102px;
	outline: none;
	position: relative;
}

.category dl::before {
	border-left: 5px solid transparent;
	border-right: 5px solid transparent;
	border-top: 6px solid #1e4998;
	content: '';
	height: 0;
	pointer-events: none;
	position: absolute;
	right: 10px;
	top: 13px;
	width: 0;
}

.category dt,
.category dl a {
	color: #1e4998;
	display: block;
	font-weight: bold;
	padding: 3px 28px 3px 16px;
}

.category dd {
	background-color: #fff;
	border-bottom: 1px solid #1e4998;
	border-left: 1px solid #1e4998;
	border-right: 1px solid #1e4998;
	display: none;
	left: -1px;
	position: absolute;
	width: calc(100% + 2px);
}

.category ul {
	display: flex;
	margin-left: -10px;
	margin-top: 30px;
}

.category li {
	margin-left: 10px;
	min-height: 24px;
	min-width: 120px;
	width: 100%;
}

.category li a {
	border: 1px solid #1e4998;
	color: #1e4998;
	display: flex;
	font-size: 1.4rem;
	font-weight: bold;
	justify-content: center;
	padding: 8px 10px;
	text-align: center;
}

.category .current a {
	background-color: #1e4998;
	color: #fff;
}

.post-list {
	border-top: 2px solid #b5b5b5;
	margin-top: 30px;
}

.post-list li { border-top: 1px solid #b5b5b5; }

header .post-list li:first-child { border-top: none; }

.post-list li a {
	display: block;
	padding: 20px 20px 20px 0;
	transition: all .3s ease-in-out;
}

.post-list li time,
.post-head time {
	display: inline-block;
	font-size: 1.4rem;
	width: 120px;
}

.post-list li span,
.post-head span {
	border: 1px solid #1e4998;
	border-radius: 100vw;
	color: #1e4998;
	display: inline-block;
	font-size: 1.2rem;
	justify-content: center;
	margin-right: 4px;
	padding: 1px 10px;
	text-align: center;
}

.post-list li p { margin-top: 6px; }

.post-list.news_list {
	border-top: none;
	display: block;
	margin-top: 0;
}

.post-list.news_list li span,
.post-head span { min-width: 120px; }

.post-list.news_list li .tag-futureshop,
.post-head .tag-futureshop {
	border-color: #db7a69;
	color: #db7a69;
}

.post-list.news_list li .tag-tradesafe,
.post-head .tag-tradesafe {
	border-color: #e0964c;
	color: #e0964c;
}

.post-list.news_list li .tag-softel,
.post-head .tag-softel {
	border-color: #3579c4;
	color: #3579c4;
}

.post-list.news_list li .tag-release,
.post-head .tag-release {
	border-color: #1e4998;
	color: #1e4998;
}


/* --------------------------------------------------------------------------------------
   フッター
--------------------------------------------------------------------------------------- */

footer {
	background-color: #fff;
	box-shadow: 0 -4px 10px rgba(0,0,0,.05);
	position: relative;
	z-index: 1;
}

footer .nav {
	display: flex;
	justify-content: space-between;
	padding-top: 80px;
}

footer .nav nav {
	display: flex;
	justify-content: space-between;
	width: 760px;
}

footer .nav nav dt {
	font-weight: bold;
	margin-top: 16px;
}

footer .nav nav dt:first-child,
footer .nav nav li:first-child { margin-top: 0; }

footer .nav nav dd {
	display: flex;
	justify-content: space-between;
	margin-top: 16px;
}

footer .nav nav ul { margin-left: 20px; }
footer .nav nav ul:first-child { margin-left: 0; }


footer .nav nav li {
	font-size: 1.4rem;
	margin-top: 6px;
}

footer .copy {
	background-color: #111f31;
	color: #fff;
	margin-top: 70px;
	padding: 20px 0;
}

footer .copy .box {
	align-items: center;
	display: flex;
	font-size: 1.2rem;
	justify-content: space-between;
}

footer .copy ul { display: flex; }

footer .copy li {
	border-left: 1px solid #fff;
	line-height: 1;
	margin-left: 8px;
	padding-left: 8px;
}

footer .copy li:first-child {
	border-left: none;
	margin-left: 0;
	padding-left: 0;
}

footer .copy li a { color: #fff; }

footer .copy small { letter-spacing: 1px; }

/* --------------------------------------------------------------------------------------
   ios用のリンク対策
--------------------------------------------------------------------------------------- */

@media (min-width: 980px) {

	header nav .nav-contact a:hover::before { background: url(../img/common/icon_mail_blue.png) no-repeat; }

	header nav li > p a:hover {
		color: #1e4998;
		text-decoration: none;
	}

	header nav li > p a:hover::after {
		display: block;
		left: 0;
		width: 100%;
	}

	.over:hover,
	header nav li .popup-menu div > p a:hover,
	.list-design li a:hover,
	.post-list li a:hover {
		opacity: .6;
		text-decoration: none;
	}

	.banner-list li:hover { box-shadow: 0 10px 30px rgb(0,0,0,.25); }
	.banner-list li:hover a { text-decoration: none; }

	.side .main-menu li a:hover {
		color: #1e4998;
		text-decoration: none;
		transition: all .3s ease-in-out;
	}

	.category li a:hover {
		background-color: #1e4998;
		color: #fff;
		text-decoration: none;
		transition: all .3s ease-in-out;
	}

	.category dl a:hover {
		background-color: #1e4998;
		color: #fff;
		text-decoration: none;
		transition: all .3s ease-in-out;
	}

	.banner a:hover,
	.submit .banner input[type='submit']:hover {
		background-color: #fff;
		border-color: #1e4998;
		color: #1e4998;
		text-decoration: none;
	}

	.banner a:hover::after,
	.submit .banner:hover::after { background: linear-gradient(to bottom right, rgba(255,255,255,0) 50%, #1e4998 50.5%) no-repeat top left/100% 100%; }
}

/* --------------------------------------------------------------------------------------
   スマホ
--------------------------------------------------------------------------------------- */

/* ------- 2024/10/08 @media (max-width: 820px)を変更　------- */
@media (max-width: 760px) {

	.box { width: auto; }

	.pc { display: none; }

	.sp { display: block; }

	header {
		left: 0;
		top: 0;
	}

	header nav {
		display: block;
		left: 0;
		padding: 0;
		top: 5.333vw;
		width: auto;
	}

	header nav h1 {
		left: 5.333vw;
		position: relative;
		width: 47.867vw;
	}

	header nav .gnavi {
		background-color: rgba(30,73,152,.86);
		display: block;
		height: 100vh;
		left: 0;
		opacity: 0;
		padding: 29.333vw 5.333vw 0;
		position: fixed;
		top: 0;
		transition: all .3s ease-in-out;
		visibility: hidden;
		width: 100%;
		z-index: -10000;
	}

	header nav .gnavi.open {
		opacity: 1;
		overflow-y: scroll;
		visibility: inherit;
		z-index: 1000;
	}

	header nav .gnavi::before {
		background: url(../img/common/logo_white.svg) no-repeat top left / contain;
		content: '';
		display: block;
		height: 14.133vw;
		position: absolute;
		top: 5.333vw;
		width: 47.867vw;
	}

	header nav .gnavi::after {
		background-color: #fff;
		content: '';
		display: block;
		height: 18.667vw;
		position: fixed;
		right: 0;
		top: 0;
		width: 18.667vw;
	}

	header nav li > p a,
	header nav .nav-contact a {
		border-top: 1px solid #d2d2d2;
		color: #fff;
		display: block;
		font-size: 4.267vw;
		letter-spacing: 2px;
		padding: 4vw 0;
		text-align: left;
	}

	header nav li > p a::after,
	header nav .nav-contact a::after {
		background:
			linear-gradient(to bottom left, rgba(255,255,255,0) 50%, #fff 50.5%) no-repeat top left/100% 50%,
			linear-gradient(to top left, rgba(255,255,255,0) 50%, #fff 50.5%) no-repeat bottom right/100% 50%;
		bottom: auto;
		height: 12px;
		left: auto !important;
		right: 0 !important;
		top: calc(50% - 1.6vw);
		transition: all .3s ease-in-out !important;
		width: 6px !important;
	}

	header nav .nav-contact a {
		background-color: transparent;
		border-bottom: 1px solid #d2d2d2;
		border-left: none;
		border-radius: 0;
		border-right: none;
		height: auto;
		width: auto;
	}

	header nav .nav-contact a::before { display: none; }

	header nav .nav-current > p a,
	header nav .nav-open > p a { color: #fff; }

	header nav li .popup-menu {
		display: none;
		opacity: 1;
		visibility: inherit;
		z-index: 1;
	}

	header nav li .popup-menu section {
		background-color: transparent;
		box-shadow: none;
		display: block;
		margin-left: 0;
		padding: 0;
		position: relative;
		top: auto;
		width: auto;
	}

	header nav li .popup-menu h2 { display: none; }

	header nav li .popup-menu div {
		border: none;
		display: block;
		padding: 0;
		width: auto;
	}

	header nav li .popup-menu div > p { width: auto; }

	header nav li .popup-menu div > .sp a {	padding-left: 4.8vw; }

	header nav li .popup-menu div > p a {
		color: #fff;
		font-size: 4.267vw;
		padding: 4vw 8.8vw 4vw 4.8vw;
		text-align: left;
	}

	header nav li .popup-menu div > p:last-child a { border-bottom: none; }
	header nav li .popup-menu div > p:first-child a { border-top: 1px solid #b5b5b5; }

	header nav li .popup-menu div > p a::before {
		display: none;
		height: 8vw;
		left: 4vw;
		top: calc(50% - 4vw);
		width: 8vw;
	}

	header nav li .popup-menu div > p a::after {
		background:
			linear-gradient(to bottom left, rgba(255,255,255,0) 50%, #fff 50.5%) no-repeat top left/100% 50%,
			linear-gradient(to top left, rgba(255,255,255,0) 50%, #fff 50.5%) no-repeat bottom right/100% 50%;
		right: 4vw;
	}

	header nav .nav-open > p a::before { display: none; }

	header nav .nav-open > p a::after {
		margin-right: 1px;
		transform: rotate(90deg);
	}

	header.sticky { height: 18.667vw; }

	header.sticky nav { top: 5.333vw; }

	header nav li > p a::before { display: none; }

	header nav li .popup-menu div .post-list.news_list {
		margin-left: 0;
		width: auto;
	}

	header nav li .popup-menu div .post-list.news_list li { width: auto; }

	header nav li .popup-menu div .post-list.news_list li .tag-release,
	header nav li .popup-menu div .post-list.news_list li span {
		border-color: #fff;
		color: #fff;
	}

	header nav li .popup-menu div .post-list.news_list li a {
		color: #fff;
		display: block;
		padding: 2.667vw;
	}

	header nav li .popup-menu div .post-list.news_list li:first-child a { padding-top: 2.667vw; }

	header nav li .popup-menu div .post-list.news_list li p { padding: 0; }

	header nav li .popup-menu div .more {
		padding-bottom: 2vw;
		padding-right: 2.667vw;
		right: 0;
		width: auto;
	}

	header nav li .popup-menu div .more a { color: #fff; }

	header nav li .popup-menu div .more span::after {
		border-right: 2px solid #fff;
		border-top: 2px solid #fff;
	}

	.panel-btn {
		background-color: transparent;
		cursor: pointer;
		height: 6.933vw;
		position: absolute;
		right: 5.333vw;
		top: 5.333vw;
		transition: all .3s ease-in-out;
		width: 8.533vw;
		z-index: 10001;
	}

	.panel-btn.close { position: fixed; }

	.panel-btn-icon {
		background: #111f31;
		display: block;
		height: 2px;
		left: 0;
		position: absolute;
		top: 0;
		transition: all .3s ease-in-out;
		width: 100%;
	}

	.panel-btn-icon::before,
	.panel-btn-icon::after {
		background: #111f31;
		content: '';
		display: block;
		height: 2px;
		left: 0;
		position: absolute;
		top: 50%;
		transition: all .3s ease-in-out;
		width: 100%;
	}

	.panel-btn-icon::before { margin-top: 2.667vw; }
	.panel-btn-icon::after { margin-top: 5.867vw; }

	.close .panel-btn-icon { background: transparent; }

	.close .panel-btn-icon::before,
	.close .panel-btn-icon::after {
		background-color: #111f31;
		margin-top: 10px;
		width: 100%;
	}

	.close .panel-btn-icon::before { transform: rotate(-45deg); }

	.close .panel-btn-icon::after { transform: rotate(-135deg); }

	header nav .nav-open .popup-menu section { top: 0; }

	.key-sub .box {
		min-height: 85.333vw;
		width: auto;
	}

	.key-sub h2 {
		font-size: 8vw;
		margin-left: 17.333vw;
	}

	.key-sub h2::before {
		left: -10.667vw;
		width: 8vw;
	}

	.key-sub ul {
		bottom: 4vw;
		left: 5.333vw;
		width: 89%;
	}

	.key-sub li {
		font-size: 2.667vw;
		margin-left: 8vw;
	}

	.key-sub li a { white-space: nowrap; }

	.key-sub li::before {
		left: -5.333vw;
		width: 2.133vw;
	}

	.key-sub li:last-child span {
		display: inline-block;
		max-height: 4vw;
		overflow: hidden;
	}

	main { margin-top: 0; }

	.dl-btn a {
		font-size: 4.267vw;
		width: 100%;
	}

	.head-ttl {
		font-size: 8vw;
		margin-bottom: 8vw;
	}

	.list-design li a {
		font-size: 3.733vw;
		padding: 4vw 0;
	}

	.list-design li a time { width: 22.67vw; }

	.list-design li a span {
		font-size: 3.2vw;
		min-width: 32vw;
		padding: 0;
	}

	.list-design li a p {
		clear: both;
		float: none;
		padding-right: 6.667vw;
		width: auto;
	}

	.banner a {
		font-size: 4.267vw;
		height: 17.333vw;
		width: 72vw;
	}
	/* --------------------------------------------------------------
	バナーリスト共通デザイン スマホver TOP, IR情報, 個人投資家の皆様へ　※アイコン付きverはir.cssに記述
	----------------------------------------------------------------- */
	.banner-list li{ margin-top: 5.333vw; }
	.banner-list li a {
		font-size: 5.333vw;
		justify-content: flex-start;
		padding: 8vw 6.667vw;
	}
	.banner-list .blank a::after {
		background-size: contain;
		bottom: 1.067vw;
		height: 5.6vw;
		right: 1.067vw;
		width: 5.6vw;
	}

	.category ul {
		flex-wrap: wrap;
		margin-left: -1px;
		margin-top: 4vw;
	}

	.category li {
		margin-left: -1px;
		margin-top: -1px;
		min-width: inherit;
		white-space: nowrap;
		width: 33.333333%;
	}

/* ----------------------------------
	20240823 加筆
----------------------------------　*/
	.category dt,
	.category dl a {
		padding: 3px 40px 3px 25px;
	}

	.category dl::before {
		top:16px;
	}

	.post-list { margin-top: 6.667vw; }

	.post-list li a { padding: 5.333vw 0; }

	.post-list li time,
	.post-head time {
		font-size: 3.2vw;
		width: 25%;
	}

	.post-list li span,
	.post-head span {
		font-size: 2.4vw;
		margin-right: .2vw !important;
		min-width: 21vw !important;
	}

	.post-list li p {
		font-size: 3.733vw;
		margin-top: 1.333vw;
		padding-right: 5vw;
	}

	.column-2 {
		display: block;
		margin-bottom: 0;
	}

	.column-2 .sec {
		margin: 9.333vw 5.333vw auto;
		width: auto;
	}

	.sec-column { margin-top: 10.667vw; }

	.head-sub {
		font-size: 6.4vw;
		margin-bottom: 4.333vw;
		padding-bottom: 3vw;
		line-height: 9vw;
	}

	.side {
		margin-top: 5vw;
		width: auto;
	}

	.side .main-menu {
		border-top: 2px solid #b5b5b5;
		padding: 0 5.333vw;
	}

	.side .main-menu li:first-child a { border-top: none; }

	.side .main-menu li a { padding: 4vw 0; }

	.side article { margin-top: 12vw; }

	.side article h2 {
		border-radius: 0;
		font-size: 5.333vw;
		padding: 5.333vw 0;
	}

	.side article > div { padding: 8.667vw 5.333vw; }

	.side article > div ul { margin-bottom: 5.333vw; }

	.side article > div li a {
		font-size: 3.733vw;
		width: auto;
	}

	.side article .dl-btn { margin: 0; }

	.side article > div .dl-btn a {
		margin-left: 0;
		padding-left: 0;
		text-align: center;
		width: auto;
	}

	footer { margin-top: 13.333vw; }

	footer .nav {
		display: block;
		padding-top: 13.333vw;
		width: auto;
	}

	footer .nav .logo { text-align: center; }

	footer .nav .logo img { width: 47.867vw; }

	footer .nav nav {
		border-top: 1px solid #b5b5b5;
		display: block;
		margin: 8vw 5.333vw 0;
		overflow: hidden;
		position: relative;
		width: auto;
	}

	footer .nav nav dl { width: 47%; }

	footer .nav nav dl:last-child {
		position: absolute;
		right: 0;
		top: 0;
	}

	footer .nav nav dt { margin-top: 0; }

	footer .nav nav dt a {
		border-bottom: 1px solid #b5b5b5;
		display: block;
		padding: 4vw 0;
		position: relative;
	}

	footer .nav nav dt a::after {
		background:
			linear-gradient(to bottom left, rgba(255,255,255,0) 50%, #1e4998 50.5%) no-repeat top left/100% 50%,
			linear-gradient(to top left, rgba(255,255,255,0) 50%, #1e4998 50.5%) no-repeat bottom right/100% 50%;
		content: '';
		display: block;
		height: 12px;
		position: absolute;
		right: 0;
		top: calc(50% - 4px);
		width: 6px;
	}

	footer .nav nav dd { display: none; }

	footer .copy {
		margin-top: 10.667vw;
		padding: 6.667vw 0;
	}

	footer .copy .box {
		display: block;
		font-size: 3.2vw;
		text-align: center;
		width: auto;
	}

	footer .copy ul { justify-content: center; }

	footer .copy small {
		display: block;
		margin-top: 6.667vw;
	}

}
