@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 5%;}
.top_sec01 .box02 .btn_area a { background-size: auto 100%; font-size: 1.5em; padding: 0;}
.top_sec01 .box02 section { width: calc(95% / 2);}

.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_sec01 .box02 section { width: 100%; max-width: 450px; margin: auto;}

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


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

.pagettl { padding: 1.3em 0;}

.heading_large { font-size: min(7vw,2em);}
.heading_btmline { font-size: min(6vw,1.6em);}
.heading_topline { line-height: 1.5; font-size: min(7vw,2em);}

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

.privacy .box01 { padding: 1.5em;}

.table_bordered th { padding-left: 1em;}


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

.com_sec01 .box01 { flex-flow: column; gap: 30px;}
.com_sec01 .box01 .box_inner { width: 100%;}

.com_sec02 th { width: 8em;}

.com_sec03 .map iframe { height: 250px;}
.com_sec03 th { width: 11em;}

.com_sec04 .text01 { font-size: min(6vw,1.85em);}
.com_sec04 .box01 { flex-flow: column; gap: 20px;}
.com_sec04 .box01 section { width: 100%; padding: 10px;}
.com_sec04 .box01 section:not(:last-child) { border-right: none; border-bottom: solid 1px #C5C5C5;}
.com_sec04 .list01 { display: flex; flex-flow: column; align-items: center;}
.com_sec04 .list01 li.mb30:not(:last-child) { margin-bottom: 1em !important;}

.com_sec05:before { content: ""; position: absolute; z-index: -1; width: 2px; top: -120px; height: calc(120px + 4em); left: 50%; transform: translateX(-50%); box-shadow: 0 0 20px rgba(0,157,255,1); background: linear-gradient( to bottom, rgba(255,255,255,1) 0, rgba(255,255,255,1) calc(100% - 40px), rgba(255,255,255,0) 100%);}

.com_sec06:before { content: ""; position: absolute; z-index: -1; width: 2px; top: 0; bottom: -160px; left: 50%; transform: translateX(-50%); box-shadow: 0 0 20px rgba(0,157,255,1); background: linear-gradient( to bottom, rgba(255,255,255,1) 0, rgba(255,255,255,1) calc(100% - 40px), rgba(255,255,255,0) 100%);}

@media only screen and (max-width: 640px) {
  .com_sec02 table, .com_sec02 tbody, .com_sec02 tr, .com_sec02 th, .com_sec02 td,
  .com_sec03 table, .com_sec03 tbody, .com_sec03 tr, .com_sec03 th, .com_sec03 td { display: block; width: 100%;}
  .com_sec02 th, .com_sec03 th { padding-bottom: 0;}
  .com_sec02 th { margin-bottom: -0.5em;}
}


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

.bus_sec01 section { flex-flow: column !important; gap: 30px;}
.bus_sec01 section .box_inner { width: 100%;}
.bus_sec01 h4.fo16 { font-size: min(6.5vw,1.6em) !important;}

.bus_sec02 .text01.fo16 { font-size: min(6vw,1.6em) !important;}

@media only screen and (max-width: 640px) {
  .bus_sec01 .box01 { padding: 30px 20px;}
  .bus_sec01 .box01 .list01 { flex-wrap: wrap;}
  .bus_sec01 .box01 .list01 li { width: 47%;}

  .bus_sec02 .list01 { flex-flow: column;}
  .bus_sec02 .list01 li { padding: 25px 20px; max-width: 540px; margin: auto;}
}

@media only screen and (max-width: 400px) {
  .bus_sec01 .box01 .list01 { gap: 20px;}
  .bus_sec01 .box01 .list01 li { width: 90%;}
}


/* ------------------------
	laser_solder
------------------------ */

.ls_sec01 .text01 { font-size: min(20vw,10em); line-height: 1.1; margin-bottom: -0.3em;}
.ls_sec01 .box01 { padding: 45px 5%;}
.ls_sec01 .box02 { flex-flow: column;}
.ls_sec01 .box02 section:nth-child(1) { padding: 0 0 30px; border-right: none; border-bottom: solid 1px #E4E8EA;}
.ls_sec01 .box02 section:nth-child(2) { padding: 30px 0 0;}
.ls_sec01 .list01 { gap: 1em;}

.ls_sec02 section { flex-flow: column; border-left: none; border-top: solid 10px #3772D3;}
.ls_sec02 section .box_inner { width: 100%; padding: 20px 20px 30px;}
.ls_sec02 h3.fo16 { font-size: min(5.8vw,1.6em) !important;}

.ls_sec03 .logo_box { padding: 2em 2.5em 2em; margin-top: -3em; font-size: min(2.8vw,1em);}
.ls_sec03 .logo_box figure { padding: 0 10%;}
.ls_sec03 .box01 { padding: 90px 20px 40px;}

@media only screen and (max-width: 640px) {
  .ls_sec03 .box01 { padding: 18vw 20px 20px;}
  .ls_sec03 .box02 { flex-flow: column;}
  .ls_sec03 .box02 figure { width: auto; padding: 0 15% 0 25%;}
  .ls_sec03 .list01 { display: flex; justify-content: space-between; gap: 4%;}
}


/* ------------------------
	laser_welding
------------------------ */

.wel_sec01 section { flex-flow: column; gap: 30px;}
.wel_sec01 .box_inner { width: 100%;}

.wel_sec02:before, .wel_sec02:after { height: 50px;}
.wel_sec02 .back_blue { padding: 30px 0;}
.wel_sec02 h3 { font-size: 2.5em;}
.wel_sec02 h4 { font-size: min(7.5vw,2em);}
.wel_sec02 .list01 { display: flex; gap: 20px;}
.wel_sec02 hr { border-color: #fff;}

.wel_sec02 .sec02 figure { padding: 0 25%;}

.faq_dl dd { padding-top: 0.4em;}

@media only screen and (max-width: 480px) {
  .wel_sec02 .sec02 dl { flex-flow: column; align-items: flex-start;}
  .wel_sec02 .sec02 dd { padding: 0.5em 0 0; border: none;}
}


/* ------------------------
	typem
------------------------ */

.laser_wrap { flex-flow: column; gap: 60px; padding-bottom: 60px;}
.laser_wrap .page_nav { width: auto; position: static; align-self: center;}
.laser_wrap .page_nav ul { display: flex; flex-wrap: wrap; gap: 0.5em 1em; font-size: min(1.8vw,1em);}
.laser_wrap .page_nav li { width: calc((100% - 2em) / 3);}
.laser_wrap .page_nav a { display: block; color: #000 !important; border: solid 1px #45474F; background: url("../images/common/sp_nav.svg") no-repeat calc(100% - 0.6em) center; background-size: 0.75em auto; padding: 0.2em 2em 0.2em 0.8em;}
.laser_wrap .page_nav .active a:before { display: none;}

.typem .laser_main section { padding-bottom: 30px;}
.typem #sec03 .box01, .types #sec04 .box01, .rental #sec03 .box01 { gap: 20px; align-items: flex-start; padding: 30px 15px;}
.typem #sec03 .box01 .num, .types #sec04 .box01 .num, .rental #sec03 .box01 .num { font-size: min(10vw,3em); width: 1.3em;}
.typem #sec03 .box01 .fo16, .types #sec04 .box01 .fo16, .rental #sec03 .box01 .fo16 { font-size: min(5.5vw,1.6em) !important;}

.typem #sec04 .table_bordered th { width: 13.5em;}

.laser_bnr { flex-flow: column; font-size: min(4vw,1em);}

@media only screen and (max-width: 640px) {
  .laser_wrap .page_nav ul { font-size: min(2.6vw,1em);}
  .laser_wrap .page_nav li { width: calc((100% - 1em) / 2);}

  .typem #sec04 table, .typem #sec04 tbody, .typem #sec04 tr, .typem #sec04 th, .typem #sec04 td { display: block; width: 100%;}
  .typem #sec04 th { padding-bottom: 0; margin-bottom: -0.5em;}
  .typem #sec04 td { padding: 1em 0;}

  .typem #sec05 .list01 { flex-flow: column;}
  .typem #sec05 .list01 li { width: 100%; max-width: 420px; margin: auto;}
}

@media only screen and (max-width: 380px) {
  .laser_wrap .page_nav ul { font-size: 1em;}
  .laser_wrap .page_nav li { width: 100%; max-width: 270px; margin: auto;}
}


/* ------------------------
	types
------------------------ */

.types #sec01 .text01 { font-size: min(5vw,1.6em) !important; padding-left: 1.5em;}

.types #sec03 .box01 { padding: 30px 7%;}
.types #sec03 .box01 .box_inner { width: 68%;}

.types #sec03 .box02 { padding: 30px;}

@media only screen and (max-width: 640px) {
  .types #sec01 .box01 { padding: 30px 20px; font-size: 1.15em !important;}

  .types #sec02 .box01 { flex-flow: column; padding: 30px 6%;}
  .types #sec02 .box01 .fo16 { text-align: center;}

  .types #sec03 .box01 { padding: 30px 7%; flex-flow: column;}
  .types #sec03 .box01 .box_inner { width: auto;}
  .types #sec03 .btn_area { text-align: center;}
  .types #sec03 .btn_area a { padding: 1.2em 4em;}
  .types #sec03 .list01 { flex-flow: column;}
  
  .flow_box { gap: 7%;}
  .flow_box figure { width: 40%;}
}


/* ------------------------
	rental
------------------------ */

.rental #sec03 .img01 { padding: 0 20%;}

.rental #sec07 .box01 { padding: 20px;}

@media only screen and (max-width: 768px) {
  .rental #sec02 .box01 { flex-flow: column;}
  .rental #sec02 .box01 .back_gray { width: 100%; padding: 30px 6%;}
  .rental #sec02 .box01 h4 { background-position: left 0.5em; background-size: 1.2em auto; padding-left: 1.6em; font-size: min(6.3vw,1.6em) !important;}
  .rental #sec02 .list01 li { width: 47%;}
}

@media only screen and (max-width: 640px) {
  .rental #sec02 .list01 { flex-wrap: wrap;}

  .rental #sec05 .box01 { flex-flow: column;}
  .rental #sec05 .box01 .box_inner { width: 100%;}
}

@media only screen and (max-width: 480px) {
  .rental #sec06 .flow_box { flex-flow: column; gap: 20px;}
  .rental #sec06 .flow_box figure { width: auto;}
}


/* ------------------------
	technology_cases
------------------------ */

.tc_sec01 .list01 li { height: 15em; padding-bottom: 4em;}

.tc_sec01.pl_sec01 .list01 { gap: 20px;}
.tc_sec01.pl_sec01 .list01 li { width: calc((100% - 20px) / 2); height: 35vw !important;}
.tc_sec01.pl_sec01 .list01 img { width: 100%; height: 100%; object-fit: cover;}
.pl_sec01 .list01 .fo_mont { margin: 0.2em 0 -1.2em; font-size: 0.9em !important;}

@media only screen and (max-width: 640px) {
  .tc_sec01 .list01 li { width: 100% !important; max-width: 580px; margin: auto; height: 13em; padding-bottom: 5em;}
}


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

.con_sec01 .box01 { padding: 40px 20px;}
.con_sec01 .list01 { font-size: min(1.8vw,1em);}

@media only screen and (max-width: 640px) {
  .con_sec01 .list01 { flex-flow: column; align-items: center; font-size: min(3.5vw,1em);}
  .con_sec01 .list01 .btn_wrap { height: auto;}
  .con_sec01 .list01 .btn_wrap a { margin: -0.2rem 0;}
  
  .contact_sec dl { flex-flow: column; align-items: flex-start;}
	.contact_sec dt { text-align: left; width: auto;}
  .contact_sec dt br { display: none;}
  .contact_sec dt .hissu { margin-left: 0.5em;}
  .contact_sec dd { width: 100%;}
}


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

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

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


.pro_wrap .heading_btmline span:last-child { border: none;}

.pro_list li { width: calc((100% - 50px) / 3);}

.pro_head h1 { font-size: min(7vw,1.8em);}

@media only screen and (max-width: 640px) {
  .cases_archive { flex-flow: column; gap: 30px; width: 100%; max-width: 450px; margin: auto;}
  .cases_archive figure { width: 100%;}
  .cases_archive .box_inner { width: 100%;}

  .pro_list li { width: calc((100% - 25px) / 2);}

  .pro_head .box01 { flex-flow: column;}
  .pro_head .box01 figure { width: 100%;}
}

@media only screen and (max-width: 400px) {
  .pro_list { gap: 20px;}
  .pro_list li { width: 100%;}
}

