@charset "utf-8";

/*------------------------------------------------------

	グローバル

------------------------------------------------------*/

html { overscroll-behavior: none;}
body { min-width: 0px; font-size: 0.9em;}

.ta_right-s_center { text-align: center;}
.ta_left-s_center { text-align: center;}
.ta_center-s_left { text-align: left;}

.hidden_s { display: none !important;}

/* margin */
.mb40-20 { margin-bottom: 20px !important;}
.mb60-30, .mb50-30 { margin-bottom: 30px !important;}
.mb80-40 { margin-bottom: 40px !important;}
.mb100-60 { margin-bottom: 60px !important;}
.mb120-60 { margin-bottom: 60px !important;}
.mb160-80 { margin-bottom: 80px !important;}

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

body { padding-top: 50px;}
.header { min-width: initial; display: block; font-size: 1em;}
.header h1, .sp-navi .logo { padding: 0px 65px 0px 15px; line-height: 50px; width: auto;}
.header h1 img, .sp-navi .logo img { width: auto; max-height: 36px; vertical-align: middle;}


/* ------------------------
	グローバルナビ
------------------------ */

/* ハンバーガーメニュー */
.humberger {
	background: #fff;
	cursor: pointer;
	display: block;
	position: fixed;
	top: 5px;
	right: 5px;
	width: 40px;
	height: 40px;
	border-radius: 100%;
	z-index: 10000001;
}
.humberger span {
	background: #3772D3;
	position: absolute;
	left: 9px;
	width: 22px;
	height: 1px;
	transition: 0.4s;
}
.humberger span:nth-of-type(1) { top: 12px;}
.humberger span:nth-of-type(2) { top: 19px;}
.humberger span:nth-of-type(3) { top: 26px;}
.is-open .humberger { background: #3772D3;}
.is-open .humberger span { background: #fff;}
.is-open .humberger span:nth-of-type(1) { transform: translateY(7px) rotate(-45deg);}
.is-open .humberger span:nth-of-type(2) { opacity: 0;}
.is-open .humberger span:nth-of-type(3) { transform: translateY(-7px) rotate(45deg);}

/* ナビ本体 */
.sp-navi { -webkit-text-size-adjust: 100%;}
.sp-navi.is-open .sp-navi-inner {
	opacity: 1;
	visibility: visible;
	z-index: 10000000;
}
.sp-navi .sp-navi-inner {
  font-size: 1.1em;
	background: #F6F7F9;
	overflow-y: auto;
	opacity: 0;
	visibility: hidden;
	position: fixed;
	top: 0;
	left: 0px;
	height: 100%;
	width: 100%;
  padding-bottom: 15%;
	transition: .5s;
}

.sp-navi .navi-main > li { border-bottom: solid 1px #95989A; padding: 0.8em 2em;}
.sp-navi .aco { cursor: pointer; position: relative;}
.sp-navi .aco:after { content: ""; display: block; position: absolute; top: 1.6em; left: 6.5em; background: url("../images/common/sp_nav.svg") no-repeat center center; background-size: 100% auto; width: 0.85em; height: 0.5em;}
.sp-navi .aco:nth-child(3):after { left: 11.5em;}
.sp-navi .aco ul { display: none; padding-top: 0.3em;}
.sp-navi .aco ul li { position: relative; padding: 0.2em 0px 0.2em 2em; font-size: 0.9em;}
.sp-navi .aco ul li:before { content: ""; position: absolute; width: 0.7em; height: 1px; background: #3772D3; left: 0.5em; top: 50%;}

.sp-navi .btn_area a { display: inline-block; background: url("../images/common/ico_mail.svg") no-repeat 2.2em center #3772D3; background-size: 1.8em auto; color: #fff; padding: 1.1em 3em 1.1em 5em; margin-top: 1.5em;}


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

.footer .cta_box { padding: 50px 0;}
.footer .cta_box .text01 { font-size: 3.5em;}
.footer .cta_box .list01 { gap: 2em;}

.footer .bg01 .box01 { flex-flow: column; gap: 40px; margin-bottom: 0 !important;}

.footer_nav { flex-flow: column; gap: 0; border-top: solid 1px #fff; margin: 0 -15px; font-size: 1.2em !important;}
.footer_nav > ul { gap: 0;}
.footer_nav a { display: block; text-decoration: none !important; color: #fff !important;}

.footer_nav > ul > li { border-bottom: solid 1px #7EA4E2;}
.footer_nav > ul:last-of-type > li:last-of-type { border-bottom: none;}
.footer_nav > ul > li > a { padding: 0.7rem 1.3rem;}
.footer_nav a.parent { padding-bottom: 0.4rem !important;}
.footer_nav > ul > li li a { padding: 0.2rem 1.4rem;}
.footer_nav > ul > li li li a { padding-left: 2rem;}
.footer_nav > ul ul { padding-bottom: 0.5rem;}

.footer .copy { padding: 0.8em 0;}
.footer .copy .cont1200 { display: flex; align-items: center; justify-content: space-between; flex-flow: row-reverse;}


@media only screen and (max-width: 640px) {
  .footer .cta_box .list01 { flex-flow: column; align-items: center; gap: 1.5em;}
  .footer .cta_box .list01 li { width: 100%; max-width: 350px;  height: 140px;}
}


/*------------------------------------------------------

	トップページ

------------------------------------------------------*/

.mainimage video { width: 180%; margin-left: -40%;}
.mainimage .text01 { padding-right: 15%;}

.top_heading { font-size: min(7vw,2em);}

.top_bnr01 .box01 { flex-flow: column; gap: 30px; align-items: flex-start; padding: 2em;}
.top_bnr01 .box01:before { background: linear-gradient(to bottom, rgba(0,0,0,1) 0%, rgba(0,0,0,0) 100%); bottom: auto; height: 70%; width: 100%;}
.top_bnr01 .box_inner { max-width: initial;}
.top_bnr01 h2 { font-size: min(7vw,2em);}

.top_sec01 .box01 { flex-flow: column; gap: 30px; align-items: center; padding-bottom: 50px;}
.top_sec01 .box01:before { left: 90%; transform: none; top: -60px;}
.top_sec01 .box01 .box_inner { width: auto;}
.top_sec01 .box01 figure { margin: 0; width: auto;}

.top_sec01 .img02 { margin-bottom: -2.5%;}
.top_sec01 .box02 { padding: 40px 20px; gap: 40px;}
.top_sec01 .box02 .btn_area a { background-size: auto 100%; font-size: 1.5em; padding: 0;}
.top_sec01 .box02 section { max-width: 450px; margin: auto;}

.top_sec02 { padding: 50px 0;}
.top_sec02 .box01 { gap: 30px; padding: 0;}
.top_sec02 .main_box { width: auto; margin-bottom: 40px;}
.top_sec02 .img_box { display: flex; justify-content: center; gap: 6%; align-items: center;}
.top_sec02 .img_box .pos_ab { position: static;}

.top_sec03 .box01 .box_inner { width: 55%; padding: 7%;}
.top_sec03 .box01 .box_inner:after { width: 30px; right: -29px;}

.top_sec04 { padding: 20% 0;}
.top_sec04:before, .top_sec04:after { height: 13%;}

.top_bnr02 a { padding: 7%;}
.top_bnr02 .text01 { font-size: min(13vw,4em);}
.top_bnr02 .img01 img { width: 50px;}

.archive_list { gap: 50px 1.5em;}
.archive_list > li { width: calc((100% - 3em) / 3);}
.archive_list .ttl_box { background-size: 1.8em auto; padding-right: 2.3em;}

@media only screen and (max-width: 640px) {
  .top_bnr01 .box01 { background: url("../images/top/top_bnr01_bg_sp.jpg") no-repeat center top; background-size: cover;}
  .top_bnr01 .box01:before { display: none;}
  .top_bnr01 .box01 .box_inner { text-shadow: 1px 1px 5px #000;}

  .top_sec01 .box02 { flex-flow: column;}

  .top_sec03 .box01 { background-position: center bottom; background-size: 100% auto; padding-bottom: 40%;}
  .top_sec03 .box01 .box_inner { width: 100%; padding: 7%;}
  .top_sec03 .box01 .box_inner:after { width: 100%; right: 0; top: auto; bottom: -29px; height: 30px; clip-path: polygon(0 0,100% 0, 50% 100%);}

  .archive_list > li { width: calc((100% - 1.5em) / 2);}
}

@media only screen and (max-width: 380px) {
  .archive_list > li { width: 100%;}
}


/* ------------------------
	コンテンツ
------------------------ */

.heading_large { font-size: 2em;}

.privacy .box01 { padding: 1.5em;}


@media only screen and (max-width: 480px) {
}


/* ------------------------
	company
------------------------ */



/* ------------------------
	contact
------------------------ */



/* ------------------------
	news
------------------------ */

.news_archive .ttl_box { flex-flow: column; align-items: flex-start; gap: 30px;}
.news_archive .ttl_box .box02 { width: 100%; gap: 1em 2em; flex-wrap: wrap; justify-content: center;}
.news_archive .ttl_box .box02 dt { min-width: 8.5em;}
.news_archive .list01 { justify-content: center;}

.news_single { padding: 40px 5%;}
.news_head h1 { font-size: 2em;}

.blog_content h2 { font-size: 1.8em;}

@media only screen and (max-width: 640px) {
}

