@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;}
.ta_left-s_right { text-align: right;}

.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;}

.mt100-40, .mt80-40 { margin-top: 40px !important;}

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

.header, .sp-navi .logo { display: block; background: #fff; padding: 0 120px 0 1em; font-size: 1em; height: auto;}
.header h1 a, .sp-navi .logo a { height: 50px; padding: 0; line-height: 50px; display: block;}
.header h1 img, .sp-navi .logo img { width: auto; vertical-align: middle; max-height: 35px;}

.lang_btn dt { position: absolute; top: 7px; right: 60px; border: solid 1px #1E3255; border-radius: 5px; line-height: 34px; width: 50px; text-align: center; padding-right: 10px; cursor: pointer; z-index: 99999}
.lang_btn dt:after {
	content: "";
	position: absolute;
	width: 0;
	height: 0;
	border-style: solid;
	border-width: 5px 3.5px 0 3.5px;
	border-color: #1E3255 transparent transparent transparent;
	top: 50%;
	right: 8px;
	transform: translateY(-50%);
}
.lang_btn dd { position: absolute; left: 20px; right: 20px; top: 58px; border-radius: 5px; overflow: hidden; background: #fff; display: none; z-index: 9999; border: solid 1px #1E3255;}
.lang_btn dd li:first-child { border-bottom: solid 1px #1E3255;}
.lang_btn dd a, .lang_btn dd span { display: block; padding: 8px 20px; color: #1E3255;}
.lang_btn dd span, .lang_btn dd a:hover { background: linear-gradient(to right, #0080D9, #00B4ED); color: #fff;}

.clone-nav { display: none;}

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

/* ハンバーガーメニュー */
.humberger {
	background: linear-gradient(to right, #00B4ED 0%, #0080D9 50%, #013993 100%);
	cursor: pointer;
	display: block;
	position: fixed;
	top: 5px;
	right: 5px;
	width: 40px;
	height: 40px;
	border-radius: 100%;
	z-index: 10000001;
}
.humberger span {
	background: #fff;
	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 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 {
	background: #F0F8FF;
	overflow-y: auto;
	opacity: 0;
	visibility: hidden;
	position: fixed;
	top: 0;
	left: 0px;
	height: 100%;
	width: 100%;
	transition: .5s;
}

.sp-navi .box_inner { padding: 1em 2em 3em; font-size: min(5.5vw,1.5em);}
.sp-navi .navi-main > li { border-bottom: solid 1px #A8AFBB; padding: 0.8em 0;}
.sp-navi a { font-weight: bold; color: #1E3255;}
.sp-navi .aco { cursor: pointer; position: relative;}
.sp-navi .aco:after { content: ""; display: block; position: absolute; top: 1.2em; left: 4.5em; width: 1em; height: 1em; background: url("../images/common/ico_plus.svg") no-repeat center center; background-size: 100% auto; color: #1E3255;}
.sp-navi .aco.open:after { background-image: url("../images/common/ico_minus.svg");}
.sp-navi .aco ul { display: none; padding-top: 0.3em;}
.sp-navi .aco ul li { position: relative; padding: 0 0 0.1em 1.8em; font-size: 0.85em;}
.sp-navi .aco ul li:before { content: ""; position: absolute; width: 0.7em; height: 1px; background: #AF1F24; left: 0.5em; top: 50%;}
.sp-navi .aco ul li:before {
  content: "";
  position: absolute;
  width: 0.7em;
  height: 0.7em;
  top: 0.6em;
  left: 0.6em;
  border-radius: 100%;
  padding: 2px; /* ボーダーの太さ */
  background: linear-gradient(to right, #00B4ED, #013690);
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
}

.sp-navi a.link { background-image: url("../images/common/ico_link_blue.svg");}
.sp-navi .btn_area a { font-size: 1.15em;}



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

.footer .movie_wrap02 figure { height: 50%; display: flex; justify-content: center; align-items: center; position: absolute; bottom: 50%;}
.footer .movie_wrap02 figure img { vertical-align: middle;}

.footer .bg01 { flex-wrap: wrap; padding: 60px 10px; gap: 30px;}
.footer .bg01 .box01 { gap: 1.5em;}

.footer .bg02 { padding: 50px 0px 50px 120px; clip-path: polygon(130px 0, 100% 0, 100% 100%, 0 100%);}

.footer .bg03 { display: block; padding-bottom: 20px;}
.footer .bg03 .box02 { display: block; width: auto;}
.footer .bg03 .list01 { justify-content: center; gap: 2em; flex-flow: row;}
.footer .bg03 .text_box { justify-content: center; gap: 1.5em 2em; margin-bottom: 30px; flex-flow: row; align-items: flex-end;}
.footer .bg03 .box01 { display: table; margin: auto; font-size: min(4.5vw,1em)}

@media only screen and (max-width: 640px) {
  .footer .bg01 .box01 { width: 100%; justify-content: center; font-size: min(2.85vw, 1em);}

  .footer_nav { flex-wrap: wrap; gap: 1.5em; font-size: min(4.5vw,1em);}
  .footer_nav > li { width: calc((100% - 3em) / 3);}
  .footer .bg02 .btn_area { gap: 2em; margin-top: 30px;}
}

@media only screen and (max-width: 480px) {
  .footer_nav > li { width: calc((100% - 1.5em) / 2);}
  .footer_nav > li:nth-child(1) { width: 100%;}

  .footer .bg03 .text_box { flex-direction: column-reverse;}
  .footer .bg03 .text_box > * { margin: auto;}
}


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

	トップページ

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

.top_contents { margin-top: 130vh;}
.video_wrap .text_box { font-size: min(10vw,7em);}

.top_sec01 .box01 { display: block; padding-top: 60px;}
.top_sec01 .box01 .box_inner { width: auto;}
.top_sec01 .box01 .img_box { width: calc(100% + 15px); margin: -25% -15px -15% 0;}
.top_sec01 .box01 .img_box img { width: 100%;}
.top_sec01 h2 { font-size: min(9vw,3.35em);}
.top_sec01 .img_box .pos_ab { width: 24%;}
.top_sec01 .il01 { top: 18%; left: 38%;}
.top_sec01 .il02 { left: auto; right: 5%;}
.top_sec01 .il03 { bottom: 19%; left: auto; right: 14%;}
.top_sec01 .il04 { bottom: 12%; left: 23%;}
.top_sec01 .il05 { top: 45%; left: 3%;}
.coil01 { bottom: 40%; width: 160%;}
.coil01 img { max-width: 100%;}
.text_anime p { font-size: 3.5em;}

.top_en_ttl { font-size: 3em;}

.top_sec02 .box01 { display: block;}
.top_sec02 .box01 .ttl_box { width: auto; margin-bottom: 30px;}
.top_sec02 .box01 .box_inner { width: auto;}

.top_sec02 section { display: block;}
.top_sec02 section > figure { width: auto; margin: 0 5% 0px -15px;}
.top_sec02 section > figure img { float: none;}
.top_sec02 section .box_inner { width: auto; padding: 60px 0px 45px 30px; margin-top: -20px;}
.top_sec02 section .box_inner:before { left: -20px; clip-path: polygon(40px 0, 100% 0, 100% 100%, 0 100%);}
.top_sec02 section h3 { font-size: min(7vw,2.5em);}

.top_sec03 { padding: 50px 0px;}
.top_sec03 .top_en_ttl { font-size: min(9vw,3em);}
.top_sec03 .list01 p { font-size: 1.25em;}

.top_rec_btn .text_box { top: 30%; font-size: min(3.5vw,1em)}

.top_sec04 { padding-top: 50px;}
.top_sec04 .box01 { display: block;}
.top_sec04 .box01 .btn_area { width: auto; margin: 30px 0px;}
.top_sec04 .box_inner { padding: 10px 0px 30px 20px; width: auto;}
.top_sec04 dl { font-size: min(3.5vw,1em);}
.top_sec04 dt, .news_archive dt { flex: 0 0 7em;}


@media only screen and (max-width: 640px) {
  .top_sec03 .list01 li { width: calc(96% / 2); font-size: min(3.2vw,1em);}

  .top_rec_btn img { width: 150%; max-width: initial; margin-left: -25%;}
  .top_rec_btn h2 { margin-top: -0.5em;}
}


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

	下層ページ

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

.pagettl { min-height: initial; padding: 8% 0px 15%; background-position: -100px bottom; margin-top: 50px;}
.pagettl .en_ttl { font-size: min(2.5em);}

.heading_large { font-size: 2em;}
.heading_middle { font-size: 1.8em;}

.heading_back { min-width: initial; font-size: min(6vw,1.8em); margin-right: -15px;}

.link_pad { padding-top: 50px; margin-top: -50px;}


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

.com_sec01 { background-size: 0, 100% auto;}
.com_sec01 section { flex-flow: column-reverse !important;}
.com_sec01 section .box_inner { width: 100%; max-width: 700px; margin: auto;}
.com_sec01 section > figure { width: auto; margin: 0px -15px 30px !important;}

.com_sec01 .btn_area ul { padding: 0px 20px; gap: 40px 20px;}
.com_sec01 .btn_area li { width: calc((100% - 20px) / 2);}
.com_sec01 .btn_area .text_area { font-size: min(4vw,1.6em);}


/* ------------------------
	message
------------------------ */

.mes_sec01 .ttl_box { padding: 2em 0px; font-size: min(5vw,2.5em);}
.mes_sec01 .ttl_box:before { width: 100vw;}
.mes_sec01 .ttl_box .img01 { width: 30%; top: 4em; right: -10%;}
.mes_sec01 .ttl_box .text01 { font-size: 0.7em;}

.mes_sec01 .text02 { font-size: min(3.2vw,2.25em);}

.mes_sec01 .box01 { display: block;}
.mes_sec01 .box01 .box_inner { width: auto;}
.mes_sec01 .box01 > figure { width: auto; margin: 30px -15px 0px;}
.mes_sec01 .box01 .name img { width: auto; height: 3em;}

@media only screen and (max-width: 640px) {
  .mes_sec01 .text02 { font-size: min(3.8vw,2.25em);}
}


/* ------------------------
	outline
------------------------ */

.head_box { display: block;}
.head_box h3.heading_large { width: auto; font-size: 2em; margin-bottom: 40px; padding: 0.7em 0px 0.7em 1em !important;}
.head_box h3:before { width: 0.5em; height: 100%; left: -15px;}
.head_box .box_inner { width: auto;}

.table_border { font-size: min(3.3vw,1em)}
.table_border tbody th, .table_border tbody td { padding: 1em 0px;}

.out_sec01 .table_border th { width: 11em; padding-left: 0.5em;}

.out_sec02 .head_box h3.heading_large { margin-bottom: 10px;}
.out_sec02 .table_border thead .back_blue { width: 9.5em;}
.out_sec02 .table_border tbody th:first-of-type:not(:last-of-type) { width: 5em; padding-left: 0.5em;}
.out_sec02 .table_border tbody th:last-of-type { width: 3.5em;}
.out_sec02 .table_border tbody td:not(:last-child) { padding-right: 1em;}

.out_sec03 tbody th { width: 12em; padding-left: 0.5em;}


/* ------------------------
	csr
------------------------ */

.csr_sec, .csr_sec02 { padding: 0px;}

@media only screen and (max-width: 640px) {
  .csr_nav li { width: calc(95% / 2);}
  .csr_nav a { font-size: min(3vw,1.45em);}
}

@media only screen and (max-width: 380px) {
  .csr_nav li { width: 100%; max-width: 300px; margin: auto;}
  .csr_nav a { font-size: min(5vw,1.45em);}
}


/* ------------------------
	csr - under
------------------------ */

.head_box.w100 h3.heading_large { font-size: 2em;}

.csr_dl { margin-left: 2em;}


/* ------------------------
	group
------------------------ */

.group_sec01 .box01 { display: block;}
.group_sec01 .box01 > figure { margin: 25px 0px;}
.group_sec01 .box02 { width: auto; max-width: 580px;}
.group_sec01 .box03 { font-size: min(2vw,1em);}
.group_sec01 .box03 th { width: 8em;}

.group_sec02 .box01 { margin: -20px 0px 0px;}

@media only screen and (max-width: 640px) {
  .group_sec01 .box01 { font-size: min(3.8vw,1em);}
  .group_sec01 .box03 { display: block; font-size: 1em;}
  .group_sec01 .box03 > div { width: auto;}
  .group_sec01 .table_border { font-size: min(3.7vw,1em);}
  .group_sec01 .box03 th { width: 10em;}
  .group_sec01 .box03 th .hidden_l { display: none !important;}
  .group_sec01 .show_sp { display: inline;}
}


/* ------------------------
	iso
------------------------ */

.iso_sec01.csr_sec { padding: 0px 15px;}
.iso_sec01 .head_box .box_inner { margin-top: -20px;}


/* ------------------------
	public
------------------------ */

.public_sec .head_box h3.heading_large { width: auto; margin-bottom: 30px;}
.public_sec .head_box .box_inner { width: auto;}

.public_sec dl { padding-left: 0.5em; flex-wrap: wrap;}


/* ------------------------
	business
------------------------ */

.bus_mainimage.business .cont1200 { align-items: flex-end; gap: 3%; font-size: min(0.8em,2.5vw,0.85em);}
.bus_mainimage.business figure { width: 18%;}
.bus_mainimage.business .box_inner { margin-top: -2em; padding-bottom: 2em;}

.pagination { gap: 1em; margin-top: 1.3em;}
.dot { width: 1em; height: 1em;}

.bus_sec01 .box01 { display: block;}
.bus_sec01 .box01 .box_inner { width: auto;}
.bus_sec01 .box01 > figure { width: auto; margin: 30px 0 0;}
.bus_sec01 .box01 h3 { font-size: min(4.8vw,2em);}

.bus_heading { font-size: 2em; padding: 1em 0; width: 7.5em;}
.bus_heading:before { width: calc(8em + 15px); clip-path: polygon(0 0, 100% 0, calc(100% - 1.5em) 100%, 0 100%);}

.bus_sec02 .box01 { padding-top: 50px;}
.bus_sec02 .box01:before { width: 70%; left: 30%; clip-path: polygon(32em 0, 100% 0, 100% 100%, 0 100%);}
.bus_sec02 section { display: block;}
.bus_sec02 section > figure { width: auto; margin-top: 25px;}

.bus_sec03 .box01, .bus_sec04 .box01 { display: block; margin-top: 30px;}
.bus_sec03 .box01 > div, .bus_sec04 .box01 > div { max-width: initial;}
.bus_sec03 h4.fo18, .bus_sec04 h4.fo18 { font-size: min(7vw,1.6em) !important;}

.bus_sec04 .list01.fo175 { gap: 20px; font-size: min(4.5vw,1.25em) !important;}

.bus_sec05 { border: solid 10px #00AFEC; background-size: auto 15%; padding: 40px 5px;}
.bus_sec05:before { height: 15%; right: -10px; bottom: -10px;}
.bus_sec05 .box01 { display: block; padding: 20px 20px 25px;}
.bus_sec05 .box01 > figure { width: auto; margin-top: 20px;}
.bus_sec05 .list01 { flex-wrap: wrap; justify-content: center;}
.bus_sec05 .list01 li { width: calc((100% - 8px) / 3); max-width: 180px;}

@media only screen and (max-width: 640px) {
  .bus_sec05 .ttl_box { flex-wrap: wrap; justify-content: center; gap: 0.5em;}
  .bus_sec05 .ttl_box h3 { padding: 0 10%;}
}

@media only screen and (max-width: 480px) {
  .bus_sec04 .list01.fo175 { flex-wrap: wrap; justify-content: center;}
  .bus_sec04 .list01.fo175 li { width: calc((100% - 20px) / 2)}
}

/* ------------------------
	slit
------------------------ */

.bus_mainimage:before { height: 400%;}
.bus_mainimage h2 { font-size: min(7.2vw,2em); padding: 0.5em 15px 1em;}

.bus_bg01 { padding-top: 60px;}
.bus_bg01:before { height: 280px; left: 30%;}
.bus_bg01 h3 { font-size: min(6.5vw,1.8em);}

.slit_sec01 .list01 { justify-content: center; column-gap: 5%;}
.slit_sec01 .list01 li { width: calc(95% / 2); max-width: 360px;}
.slit_sec01 .fo_grad.fo15 { font-size: min(6vw,1.4em) !important;}

.bus_bg02 { padding: 5em 0px; font-size: min(3.5vw,1em);}
.bus_bg02 .ripple_btn a { font-size: 1rem;}

.bus_bg02 h3 { font-size: 2.2em;}
.bus_bg02 h3 span { font-size: 0.5em;}

.slit_sec02 .text01.fo18 { font-size: min(5.5vw,1.6em) !important;}
.slit_sec02 .list01 { gap: 1em;}

.slit_sec02 .box02 { flex-flow: column; gap: 20px;}
.slit_sec02 .box02 section { width: auto; padding: 20px;}

@media only screen and (max-width: 640px) {
  .slit_sec01 .list01 li { width: 100%; max-width: 360px;}
}


/* ------------------------
	press
------------------------ */

.press_img_list { gap: 4%;}

.press_sec02 .back_blue02 { padding: 60px 0px;}
.press_sec02 .text01.fo17 { font-size: min(6vw,1.7em) !important;}

.press_sec03 section { padding-left: 4.2em;}
.press_sec03 .num { font-size: 1.8em;}
.press_sec03 h4.fo17 { font-size: min(5.5vw,1.55em) !important;}



/* ------------------------
	equipment
------------------------ */

.table_border02 th, .table_border02 td { padding: 1em 0.5em;}
.table_border02 thead th { padding: 0.7em 0.5em;}

.eq_list { gap: 40px 5%; font-size: min(2.3vw,1em);}
.eq_list li { width: calc(95% / 2);}


/* ------------------------
	privacy
------------------------ */

.link_btn a { font-size: min(4.5vw,1.1em); padding: 0.7em 2.5em 0.7em 1.5em;}

.privacy_sec01 .btn_area { margin-left: 0px;}
.privacy_sec01 .text_pad { margin-left: 1.5em;}

.privacy_sec01 .table_border th { padding-left: 0.5em; padding-right: 0.5em; width: 18em;}

@media only screen and (max-width: 640px) {
  .privacy_sec01 .table_border, .privacy_sec01 .table_border tbody, .privacy_sec01 .table_border tr, .privacy_sec01 .table_border th, .privacy_sec01 .table_border td { display: block; width: 100%; font-size: 1em;}
  .privacy_sec01 .table_border { margin-left: -1.5em; width: calc(100% + 1.5em); border-top: solid 1px #ccc;}
  .privacy_sec01 .table_border th { background: #F0F8FF; border-bottom: solid 1px #ccc; padding: 0.7em 1em;}
  .privacy_sec01 .table_border td { padding-left: 1em;}
}


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

.con_sec01 .tel { justify-content: center;}

.con_sec02 { padding: 50px 0px;}
.con_sec02 h2.heading_large { font-size: min(7vw,2em);}


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

.news_head h1 { font-size: 2em;}

.pager { font-size: min(2.7vw,0.9em);}


