@charset "utf-8";
@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@100..900&family=Noto+Sans+JP:wght@100..900&family=Noto+Serif+JP:wght@600&display=swap');

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

	リセット

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

html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, abbr, address, cite, code, del, dfn, em, img, ins, kbd, q, samp, small, strong, sup, var, b, i, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary, time, mark, audio, video {
	margin: 0;
	padding: 0;
	border: 0;
	outline: 0;
	font-size: 100%;
	font-style: normal;
	font-weight: 400;
	vertical-align: baseline;
	background: transparent;
}
body { line-height: 1;}
article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section { display: block;}
ul { list-style: none;}
blockquote, q { quotes: none;}
blockquote:before, blockquote:after, q:before, q:after { content: ''; content: none;}
a {
	margin: 0;
	padding: 0;
	font-size: 100%;
	vertical-align: baseline;
	background: transparent;
}
table { border-collapse: collapse; border-spacing: 0;}
hr {
	display: block;
	height: 0px;
	border: 0;
	border-bottom: 1px solid #CCCCCC;
	margin: 0;
	padding: 0;
}
input, select { vertical-align: middle;}
img {
	max-width: 100%;
	height: auto;
	border: none;
	vertical-align: top;
	image-rendering: auto;
  transform-origin: center center;
  will-change: transform;
}
*, *:before, *:after { box-sizing: border-box;}


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

	グローバル

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

body {
	font-family: "Noto Sans JP", sans-serif;
	color: #45474F;
	font-size: 1em;
	line-height: 2;
	position: relative;
	min-width: 1030px;
}

p { margin-bottom: 30px;}
p:last-child { margin-bottom: 0px;}

a { color: #45474F; text-decoration: none;}
a:hover, a:active { color: #3772D3;}

a.underline { text-decoration: underline;}
a.underline:hover { text-decoration: none;}

/* 文字装飾 */
.fo06 { font-size: 0.6em !important;}
.fo07 { font-size: 0.7em !important;}
.fo075 { font-size: 0.75em !important;}
.fo08 { font-size: 0.8em !important;}
.fo085 { font-size: 0.85em !important;}
.fo09 { font-size: 0.9em !important;}
.fo095 { font-size: 0.95em !important;}
.fo105 { font-size: 1.05em !important;}
.fo11 { font-size: 1.1em !important;}
.fo115 { font-size: 1.15em !important;}
.fo12 { font-size: 1.2em !important;}
.fo125 { font-size: 1.25em !important;}
.fo13 { font-size: 1.3em !important;}
.fo14 { font-size: 1.4em !important;}
.fo145 { font-size: 1.45em !important;}
.fo15 { font-size: 1.5em !important;}
.fo16 { font-size: 1.6em !important;}
.fo17 { font-size: 1.7em !important;}
.fo175 { font-size: 1.75em !important;}
.fo18 { font-size: 1.8em !important;}

.lh12 { line-height: 1.2;}
.lh14 { line-height: 1.4;}
.lh16 { line-height: 1.6;}
.lh18 { line-height: 1.8;}
.lh20 { line-height: 2;}
.lh23 { line-height: 2.3;}

.ls005 { letter-spacing: 0.05em;}
.ls01 { letter-spacing: 0.1em;}
.ls02 { letter-spacing: 0.2em;}

.fo_mincho { font-family: "Noto Serif JP", serif; font-weight: 600;}
.fo_mont { font-family: "Montserrat", sans-serif; text-transform: uppercase;}

.fo_white { color: #FFFFFF !important;}
.fo_blue { color: #3772D3 !important;}

/* ボックス */
.cont1000 { max-width: 1030px; padding: 0px 15px; margin: 0px auto;}
.cont1200 { max-width: 1230px; padding: 0px 15px; margin: 0px auto;}

.left { float: left;}
.right { float: right;}

.pos_rel { position: relative;}
.pos_ab { position: absolute;}

.z50 { z-index: 50;}
.z-1 { z-index: -1;}

.medium { font-weight: 500;}
.semi { font-weight: 600;}
.bold { font-weight: 700;}

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

.back_white { background-color: #fff !important;}
.back_gray { background-color: #F6F7F9 !important;}
.back_blue { background-color: #3772D3 !important;}

.break_keep { word-break: keep-all; overflow-wrap: anywhere;}

.radius05 { border-radius: 5px;}
.radius10 { border-radius: 10px;}

@media (min-width: 861px) {
	.hidden_l { display: none !important;}
}

/* リスト */
ol { padding-left: 2em;}
ol li { list-style: outside decimal;}

.list_indent { padding-left: 1em;}
.list_indent li { text-indent: -1em;}

.list_disc { padding-left: 1em;}
.list_disc li { list-style: outside disc;}

/* margin */
.mb00 { margin-bottom: 0px !important;}
.mb05 { margin-bottom: 5px !important;}
.mb10 { margin-bottom: 10px !important;}
.mb15 { margin-bottom: 15px !important;}
.mb20 { margin-bottom: 20px !important;}
.mb25 { margin-bottom: 25px !important;}
.mb30 { margin-bottom: 30px !important;}
.mb40 { margin-bottom: 40px !important;}
.mb50 { margin-bottom: 50px !important;}
.mb60 { margin-bottom: 60px !important;}
.mb80 { margin-bottom: 80px !important;}

.mb40-20 { margin-bottom: 40px !important;}
.mb50-30 { margin-bottom: 50px !important;}
.mb60-30 { margin-bottom: 60px !important;}
.mb80-40 { margin-bottom: 80px !important;}
.mb100-60 { margin-bottom: 100px !important;}
.mb120-60 { margin-bottom: 120px !important;}
.mb160-80 { margin-bottom: 160px !important;}

.mt20 { margin-top: 20px;}

/* clearFix */
.clearFix { zoom: 100%;}
.clearFix:after {
	content: "";
	clear: both;
	height: 0;
	display: block;
	visibility: hidden;
}

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

body { padding-top: 96px;}

.header { position: fixed; z-index: 10000; min-width: 1000px; width: 100%; display: flex; justify-content: space-between; align-items: center; top: 0; left: 0; background: #fff;}
.header h1 { padding-left: 3.5%;}
.header h1 img { vertical-align: middle;}

.header .btn_area a { display: block; color: #fff; background: #3772D3; padding: 2em; height: 100%;}
.header .btn_area a:before { content: ""; display: inline-block; background: url("../images/common/ico_mail.svg") no-repeat center center; background-size: 100% auto; width: 1.35em; height: 1.1em; vertical-align: middle; margin: -0.2em 0.6em 0 0;}

.gn { display: flex; align-items: center;}
.gn > li > a { display: block; line-height: 6em; padding: 0 1em;}
.gn > li > a.link { background: url("../images/common/ico_link.svg") no-repeat right center; background-size: 0.9em auto; padding-right: 1.3em;}
.gn > li > a.link:hover { background-image: url("../images/common/ico_link_blue.svg");}

.gn .dd { position: relative;}
.dd_wrap { position: fixed; top: 6em; left: 0; right: 0; z-index: -2; padding: 40px 0; background: rgba(228,232,234,0.95); display: none;}
.dd_wrap .box_inner { margin: auto; display: table; text-align: left;}

.dd_wrap .main_btn a, .dd_wrap li p { background: url("../images/common/ico_circle_arrow.png") no-repeat left center; background-size: 1.2rem auto; padding-left: 1.6rem; line-height: 1.2; color: #3772D3; transition: 0.3s;}
.dd_wrap .main_btn a:hover, .dd_wrap li a:hover p { opacity: 0.7;}

.dd_wrap .list01 { display: flex; column-gap: 3em;}

@media only screen and (max-width: 1200px) {
  body { padding-top: 5.7em;}
  .header { font-size: 0.95em;}
  .header h1 { padding-left: 1.5em; width: 12.5em;}
  .header .btn_area a { padding: 2em 1.5em;}
}

.menu-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background: rgba(0,0,0,0.5); /* 半透明黒 */
  z-index: 9998; /* dd_wrap より下、header より上になるように */
  display: none;
  transition: 0.2s;
}

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

.footer .cta_box { padding: 100px 0 70px;}
.footer .cta_box .text01 { font-size: 4em; line-height: 1;}
.footer .cta_box .list01 { display: flex; justify-content: center; gap: 3em;}
.footer .cta_box .list01 li { width: 400px; height: 180px; display: flex; justify-content: center; align-items: center; box-shadow: 0 0 10px rgba(0,0,0,0.1);}
.footer .cta_box .tel { font-size: 2.5em; line-height: 1;}
.footer .cta_box .more_btn a { min-width: 240px; padding: 1em; text-align: center; font-size: 0.9em;}

.footer .bg01 { padding-top: 60px;}
.footer .bg01 a { color: #fff;}
.footer .bg01 a:hover { text-decoration: underline;}
.footer .bg01 .btn_area a { display: inline-block; border: solid 1px #fff; border-radius: 60px; text-decoration: none; padding: 0.7em; width: 100%; max-width: 280px; text-align: center;}
.footer .bg01 .btn_area a:before { content: ""; display: inline-block; vertical-align: middle; background: url("../images/common/ico_youtube.svg") no-repeat center center; background-size: 100% auto; width: 2.15em; height: 1.8em; margin: -0.2em 0.6em 0 0;}

.footer_nav { display: flex; gap: 3em;}
.footer_nav > ul { display: flex; flex-flow: column; gap: 1em;}
.footer_nav .child { padding-left: 1em;}
.footer_nav .child a { color: #C3C5E0;}

.footer_nav a.link:after { content: ""; display: inline-block; vertical-align: middle; background: url("../images/common/ico_link_white.svg") no-repeat center center; background-size: 100% auto; width: 0.9em; height: 1em; margin: -0.2em 0 0 0.4em;}

.footer .bg01 hr { border-color: #fff;}
.footer .bg01 .box01 { display: flex; justify-content: space-between;}
.footer .copy { padding: 0.8em 0;}
.footer .copy .cont1200 { display: flex; align-items: center; justify-content: space-between; flex-flow: row-reverse;}

.fixed_btn { position: fixed; z-index: 500; right: 0; top: 50%; transform: translateY(-50%); display: flex; flex-flow: column; gap: 20px;}

@media only screen and (max-width: 1100px) {
  .footer_nav { gap: 2em;}
}


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

	トップページ

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

.mainimage video { width: 100%; height: auto;}
.mainimage .text01 { left: 5%; bottom: 10%;}

.top_heading { font-size: 2.5em; line-height: 1.5;}

.top_bnr01 .box01 { background: url("../images/top/top_bnr01_bg.jpg") no-repeat right 15%; background-size: cover; display: flex; gap: 5em; align-items: center; padding: 50px;}
.top_bnr01 .box01:before { content: ""; position: absolute; z-index: -1; background: linear-gradient(to right, rgba(0,0,0,1) 0%, rgba(0,0,0,0) 100%); top: 0; bottom: 0; left: 0; width: 65%;}
.top_bnr01 .box_inner { max-width: 520px;}
.top_bnr01 h2 { font-size: 2.1em;}
.top_bnr01 .more_btn a { border-color: #FFD60A; background-color: #FFD60A; color: #45474F !important; background-image: url("../images/common/ico_arrow.svg") !important;}

.top_sec01 .box01 { display: flex; justify-content: space-between; align-items: center; padding-bottom: 80px;}
.top_sec01 .box01:before { content: ""; position: absolute; z-index: -1; width: 2px; left: 50%; transform: translateX(-50%); top: -120px; bottom: 0; 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%);}
.top_sec01 .box01 .box_inner { width: 520px;}
.top_sec01 .box01 figure { margin-right: -40px; width: 47%;}

.top_sec01 .img02 { margin-bottom: -30px;}
.top_sec01 .box02 { background: rgba(255,255,255,0.7); box-shadow: 0 0 1em rgba(0,0,0,0.1); padding: 60px 90px; display: flex; gap: 8%;}
.top_sec01 .box02:before { content: ""; position: absolute; z-index: -1; background: transparent; width: 1749px; height: 2px; left: 50%; transform: translate(-50%,-50%) rotate(-14deg); top: 45%; box-shadow: 0 0 20px rgba(0,157,255,1);}
.top_sec01 .box02 section { width: calc(92% / 2);}
.top_sec01 .box02 .btn_area a { display: block; background: url("../images/common/ico_circle_arrow.png") no-repeat right center; background-size: auto 100%; font-size: 1.7em; font-weight: 700; padding: 0.25em 0; transition: 0.3s;}
.top_sec01 .box02 .btn_area a:hover { background-image: url("../images/common/ico_circle_arrow_white.png");}

.top_sec02 { padding: 100px 0 200px;}
.top_sec02 .box01 { display: flex; flex-flow: column; gap: 80px; padding-right: 32%;}
.top_sec02 .main_box { width: 55%; margin-left: auto;}
.top_sec02 .img01 { left: -20px; bottom: -120px;}
.top_sec02 .img02 { right: -80px; top: 0;}

.top_sec03:before { content: ""; position: absolute; z-index: -1; height: 2px; top: 50%; transform: translate(-50%,-50%); left: 50%; width: 3000px; 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%);}
.top_sec03 .box01 { background: url("../images/top/top_sec03_bg01.jpg") no-repeat right center; background-size: auto 100%;}
.top_sec03 .box01 .box_inner { width: 500px; padding: 90px;}
.top_sec03 .box01 .box_inner:after { content: ""; position: absolute; background: #3772D3; width: 50px; top: 0; bottom: 0; clip-path: polygon(0 0,100% 50%,0 100%); right: -49px;}
.top_sec03 .more_btn a { background-color: #fff; background-image: url("../images/common/ico_arrow_blue.svg"); color: #3772D3;}

.top_sec04 { background: url("../images/top/top_sec04_bg.jpg") no-repeat center center; background-size: cover; padding: 230px 0;}
.top_sec04:before, .top_sec04:after { content: ""; position: absolute; background: #fff; width: 120%; height: 120px; border-radius: 50%; left: 50%; z-index: 10;}
.top_sec04:before { top: 0; transform: translate(-50%,-50%);}
.top_sec04:after { bottom: 0; transform: translate(-50%,50%);}

.top_bnr02 a { display: block; background: url("../images/top/top_bnr02_bg.jpg") no-repeat center center; background-size: cover; border-radius: 20px; padding: 50px;}
.top_bnr02 .text01 { font-size: 5em; line-height: 1;}

.top_sec05 .ttl_box { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 1em;}

.archive_list { display: flex; flex-wrap: wrap; gap: 60px 6%;}
.archive_list > li { width: calc(88% / 3);}
.archive_list a { display: block; transition: 0.3s;}
.archive_list .ttl_box { background: url("../images/common/ico_circle_arrow.png") no-repeat right center; background-size: 2.3em auto; padding-right: 2.8em; display: -webkit-box; -webkit-box-orient: vertical; overflow: hidden; text-overflow: ellipsis; -webkit-line-clamp: 2; font-weight: 500; transition: 0.3s;}
.archive_list a:hover .ttl_box { background-image: url("../images/common/ico_circle_arrow_white.png");}
.archive_list p:last-child { display: -webkit-box; -webkit-box-orient: vertical; overflow: hidden; text-overflow: ellipsis; -webkit-line-clamp: 2;}

.date_wrap { display: flex; align-items: center; flex-wrap: wrap; gap: 0.5em 0.8em;}
.date_wrap .cat { color: #fff; padding: 0 0.8em;}


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

	下層ページ

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

.pagettl { background: url("../images/common/pagettl.jpg") no-repeat center center; background-size: cover; padding: 2em 0; font-size: min(7vw,1.8em); position: relative; z-index: 100;}

/* 共通 */
.show_sp { display: none;}
.over_hidden { overflow: clip;}
.img_hover { overflow: hidden;}
.link_pad { padding-top: 100px; margin-top: -100px;}

.img_hover img { transition: 0.3s;}
a:hover .img_hover img, .img_hover a:hover img, a.img_hover:hover img { transform: scale(1.05);}

.more_btn a {
	display: inline-block;
	min-width: 220px;
	text-align: left;
	text-decoration: none;
  border: solid 1px #3772D3;
	color: #fff;
	line-height: 1.6;
	padding: 1.3em 2.5em;
	border-radius: 60px;
	background: url("../images/common/ico_arrow_white.svg") no-repeat calc(100% - 1.3em) center #3772D3;
  background-size: 1rem auto;
  transition: 0.3s;
}
.more_btn a:hover { background-color: #fff; background-image: url("../images/common/ico_arrow_blue.svg"); color: #3772D3;}


/* anime */
.fadein { opacity: 0; transition: opacity 1.5s ease;}
.fadein.js-on { opacity: 1;}


.heading_large { font-size: 2.4em;}

.heading_btmline { display: flex; align-items: center; border-bottom: solid 3px #E4E8EA; font-size: 2.5em; line-height: 1.4; padding-bottom: 1em;}
.heading_btmline:before { content: ""; position: absolute; width: 3.8em; height: 3px; background: #3772D3; left: 0; bottom: -3px;}
.heading_btmline span:nth-child(1) { font-size: 1.2em; border-right: solid 1px #D2D2D7; padding-right: 0.8em;}
.heading_btmline span:nth-child(2) { padding-left: 0.8em;}

.heading_topline { font-size: min(3.8vw,2.5em); border-top: solid 3px #E4E8EA; line-height: 1.4; padding-top: 1em;}
.heading_topline:before { content: ""; position: absolute; width: 3.8em; height: 3px; background: #3772D3; left: 0; top: -3px;}

.pad120-50 { padding: 120px 0;}

.privacy .box01 { border-radius: 1em; padding: 1.5em 10%;}

.table_bordered { width: 100%; }
.table_bordered tr { border-bottom: solid 1px #C5C5C5;}
.table_bordered th, .table_bordered td { padding: 1em;}
.table_bordered th { padding-left: 3em;}


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

.com_sec01:before { content: ""; position: absolute; z-index: -1; width: 2px; top: -170px; bottom: -170px; right: 35%; 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%); transform: rotate(20deg);}

.com_sec01 .box01 { display: flex; gap: 5%;}
.com_sec01 .box01 .box_inner { width: 45%;}
.com_sec01 .box01 > figure { flex: 1;}

.com_sec02 th { width: 12em;}
.com_sec02 .list01 { display: flex; flex-wrap: wrap; gap: 0 1em;}

.com_sec03 .map iframe { width: 100%; height: 500px;}

.com_sec04 .text01 { max-width: 1000px; margin: auto; font-size: 1.85em; padding: 0.35em;}
.com_sec04 .box01 { display: flex;}
.com_sec04 .box01 section { width: 33.3333%; padding: 30px 4% 1px;}
.com_sec04 .box01 section:not(:last-child) { border-right: solid 1px #C5C5C5;}
.com_sec04 h3 { display: table; margin: auto; font-size: 1.6em; width: 4.7em; border-bottom: solid 4px #3772D3; padding-bottom: 0.4em;}

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


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

.bus_sec01 section { display: flex; justify-content: space-between; align-items: center; gap: 5%;}
.bus_sec01 section:nth-of-type(odd) { flex-flow: row-reverse;}
.bus_sec01 section .box_inner { width: 45%;}
.bus_sec01 section > figure { flex: 1;}

.bus_sec01 .box01 { border: solid 1px #E4E8EA; box-shadow: 0 0 1em rgba(0,0,0,0.1); padding: 4%;}
.bus_sec01 .box01 .list01 { display: flex; justify-content: center; gap: 5%;}
.bus_sec01 .box01 .list01 img { filter: drop-shadow(0 0 0.5em rgba(0,157,255,0.5));}

.bus_sec02 .list01 { display: flex; gap: 20px 3.5%;}
.bus_sec02 .list01 li { padding: 3% 3.3% 3.5%;}


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

.ls_head { margin-top: -30px;}

.ls_sec01 .text01 { color: #F0F6F8; font-weight: 600; line-height: 0.9; font-size: 16em; margin-bottom: -0.2em;}
.ls_sec01 .box01 { background: rgba(255,255,255,0.8); border-radius: 10px; box-shadow: 0 0 1em rgba(0,0,0,0.1); padding: 7% 8%;}
.ls_sec01 .box02 { display: flex;}
.ls_sec01 .box02 section { width: 100%;}
.ls_sec01 .box02 section:nth-child(1) { padding-right: 6%; border-right: solid 1px #E4E8EA;}
.ls_sec01 .box02 section:nth-child(2) { padding-left: 6%;}
.ls_sec01 .list01 { display: flex; flex-flow: column; gap: 2em;}
.ls_sec01 .list01 li { background: url("../images/laser/ico_minus.svg") no-repeat left 0.5em; background-size: 1.1em auto; padding-left: 1.5em;}
.ls_sec01 .text02 { font-size: min(9vw,3.7em); line-height: 1; padding: 1.3em 0 1.5em;}
.ls_sec01 .text02:before { content: ""; position: absolute; z-index: -1; width: 2px; left: 50%; transform: translateX(-50%); top: 0; bottom: 0; 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%);}

.ls_sec02 section { display: flex; padding: 10px; border-radius: 10px; border-left: solid 10px #3772D3;}
.ls_sec02 section .box_inner { width: 57%; padding: 5%; align-self: center;}
.ls_sec02 section > figure { flex: 1; border-radius: 11px; display: flex; align-items: center; justify-content: center; padding: 3%;}

.ls_sec03 .logo_box { background: rgba(255,255,255,0.8); border-radius: 100px; box-shadow: 0 0 1em rgba(0,0,0,0.1); max-width: 800px; margin: 0 auto; padding: 40px 5% 30px; transform: translateY(50%); margin-top: -72px;}
.ls_sec03 .box01 { border-radius: 10px; padding: 140px 8% 100px;}
.ls_sec03 h3 { border-bottom: solid 3px #E4E8EA; font-size: 1.6em; padding-bottom: 0.7em;}
.ls_sec03 h3:before { content: ""; position: absolute; width: 160px; height: 3px; background: #3772D3; left: 0; bottom: -3px;}
.ls_sec03 .box02 { display: flex; justify-content: space-between; gap: 30px 5%;}
.ls_sec03 .box02 figure { width: 40%;}
.ls_sec03 .box02 li:nth-child(6) { display: flex; flex-wrap: wrap;}
.ls_sec03 .box02 li:nth-child(6) span:nth-child(odd) { width: 8em;}
.ls_sec03 .box02 li:nth-child(6) span:nth-child(even) { width: calc(100% - 8em);}
.ls_sec03 .list01 { display: flex; justify-content: space-between; gap: 4%;}

.ls_sec03 a.link { background: url("../images/common/ico_link.svg") no-repeat right center; background-size: 0.9em auto; padding-right: 1.3em;}
.ls_sec03 a.link:hover { background-image: url("../images/common/ico_link_blue.svg");}


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

.wel_sec01 section { display: flex; justify-content: space-between; gap: 5%;}
.wel_sec01 .box_inner { width: 52%;}
.wel_sec01 > figure { flex: 1;}

.wel_sec02:before, .wel_sec02:after { content: ""; display: block; width: 110%; margin-left: -5%; height: 100px; background: #3772D3; clip-path: ellipse(50% 100% at 50% 100%);}
.wel_sec02:after { transform: scale(-1,-1);}
.wel_sec02 .back_blue { padding: 50px 0;}
.wel_sec02 h3 { font-size: 4.2em;}
.wel_sec02 h4 { font-size: 2.5em;}
.wel_sec02 .list01 { display: flex; gap: 20px;}
.wel_sec02 hr { border-color: #fff;}

.wel_sec02 .sec02 dl { display: flex; align-items: center; max-width: 550px; margin: auto;}
.wel_sec02 .sec02 dt { width: 4em;}
.wel_sec02 .sec02 dd { padding-left: 1.6em; border-left: solid 1px #fff;}

.faq_dl { display: flex; flex-flow: column; gap: 1em;}
.faq_dl dt, .faq_dl dd { background: url("../images/common/ico_q.svg") no-repeat left 0.5rem; background-size: 1.6rem; padding-left: 2.2rem;}
.faq_dl dd { padding-top: 0.2em; background-image: url("../images/common/ico_a.svg");}

.wel_sec03 .cat { background: #F85656;}


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

.laser_ttl:before { content: ""; position: absolute; z-index: -1; height: 2px; width: 2000px; right: calc(100% + 1.5em); top: 50%; transform: translateY(-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%);}

.laser_wrap { display: flex; justify-content: space-between; gap: 4%; border-bottom: solid 3px #E4E8EA; padding-bottom: 160px;}
.laser_wrap .page_nav { font-size: 1.1em; width: 15em; position: sticky; top: 120px; align-self: flex-start;}
.laser_wrap .page_nav a { color: #8F9CA3; text-decoration: none;}
.laser_wrap .page_nav a:hover, .laser_wrap .page_nav .active a { color: #000;}
.laser_wrap .page_nav .active a:before { content: ""; display: inline-block; width: 0.6em; height: 0.6em; border-radius: 50%; background: #3772D3; vertical-align: middle; margin: -0.1em 0.2em 0 0;}
.laser_wrap .laser_main { flex: 1;}

.typem #sec03 .box01, .types #sec04 .box01, .rental #sec03 .box01 { display: flex; gap: 5%; align-items: center; padding: 30px;}
.typem #sec03 .box01 .num, .types #sec04 .box01 .num, .rental #sec03 .box01 .num { font-size: 5em; line-height: 0.9; color: rgba(55,114,211,0.2); width: 1.5em;}
.typem #sec03 .box01 .box_inner, .types #sec04 .box01 .box_inner, .rental #sec03 .box01 .box_inner { flex: 1;}

.typem #sec04 .table_bordered th { padding-left: 0;}

.typem #sec05 .list01 { display: flex; flex-wrap: wrap; gap: 40px 30px;}
.typem #sec05 .list01 li { width: calc((100% - 30px) / 2);}

.laser_bnr { display: flex; justify-content: space-between; gap: 40px 5%; max-width: 1010px; margin: auto; padding: 0 15px;}
.laser_bnr a { display: block; max-width: 470px; margin: auto; text-decoration: none;}
.laser_bnr a .text01 { background: url("../images/common/ico_circle_arrow.png") no-repeat left 0.2em; background-size: 1.3em auto; padding-left: 1.7em;}


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

.types #sec01 .box01 { padding: 30px 5%;}
.types #sec01 .text01 { padding: 1em 1em 1em 12%;}

.types #sec02 .box01 { display: flex; align-items: center; gap: 20px 30px; padding: 30px 6% 30px 30px;}
.types #sec02 .box01 .text01 { display: flex; justify-content: center; align-items: center; font-size: 1.4em; width: 5.5em; height: 5.5em; border-radius: 50%; line-height: 1.4;}
.types #sec02 .box01 .box_inner { flex: 1;}

.types #sec03 .box01 { box-shadow: 0 0 1em rgba(0,0,0,0.1); display: flex; align-items: center; gap:  20px 5%; justify-content: center; padding: 5% 10%;}
.types #sec03 .box01 figure { flex: 1;}
.types #sec03 .box01 .box_inner { width: 66%;}
.types #sec03 .btn_area a { display: inline-block; position: relative; width: 100%; max-width: 410px; color: #3772D3; border: solid 1px #3772D3; border-radius: 3em; line-height: 1.6; padding: 1.2em 5em 1.2em 2em; background: url("../images/common/ico_link_blue.svg") no-repeat calc(100% - 2em) center; background-size: 0.9em auto;}

.types #sec03 .box02 { box-shadow: 0 0 1em rgba(0,0,0,0.1); padding: 5%;}
.types #sec03 .list01 { display: flex; justify-content: space-between; gap: 20px 7%;}

.flow_box { display: flex; gap: 3em;}
.flow_box .num { width: 6.5em; border-radius: 2em;}

@media only screen and (max-width: 1100px) {
  .types #sec03 .box01 .box_inner { width: 73%;}
}


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

.rental #sec02 .box01 { display: flex; gap: 20px;}
.rental #sec02 .box01 .back_gray { width: calc((100% - 20px) / 2); padding: 30px;}
.rental #sec02 .box01 h4 { background: url("../images/welding/rental/ico_check.png") no-repeat left 0.3em; background-size: 1.5em auto; padding-left: 1.9em; color: #43AF6E;}
.rental #sec02 .list01 { display: flex; justify-content: center; gap: 5px 6%; padding: 0 15px;}

.rental #sec05 .box01 { display: flex; justify-content: space-between; gap: 30px;}
.rental #sec05 .box01 .box_inner { width: 52%;}
.rental #sec05 .box01 figure { flex: 1;}
.rental #sec05 .box02 { padding: 35px 6%;}

.rental #sec07 .box01 { padding: 4%;}
.rental #sec07 .faq_dl dt { background-image: url("../images/common/ico_q_blue.svg");}
.rental #sec07 .faq_dl dd { background-image: url("../images/common/ico_a_blue.svg");}


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

.tc_sec01 .list01 { display: flex; flex-wrap: wrap; gap: 40px;}
.tc_sec01 .list01 li { width: calc((100% - 40px) / 2); background-repeat: no-repeat; background-position: center center; background-size: cover; height: 25em; display: flex; align-items: center; justify-content: center; letter-spacing: 0.05em;}
.tc_sec01 .list01 li:nth-child(1) { background-image: url("../images/ct_img01.png");}
.tc_sec01 .list01 li:nth-child(2) { background-image: url("../images/ct_img02.png");}
.tc_sec01 .list01 .more_btn { width: 100%; bottom: 25px;}


/* ------------------------
	product_list
------------------------ */

.tc_sec01.pl_sec01 .list01 li { background: none; height: auto !important; padding: 0 !important;}
.pl_sec01 .list01 .text_area { width: 100%; left: 0; top: 50%; transform: translateY(-50%);}
.pl_sec01 .list01 .fo_mont { margin: 0.5em 0 -1.5em;}


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

.con_sec01 .box01 { background: rgba(255,255,255,0.7); box-shadow: 0 0 1em rgba(0,0,0,0.1); padding: 6%;}
.con_sec01 .box01:before { content: ""; position: absolute; z-index: -1; background: transparent; width: 1749px; height: 2px; left: 50%; transform: translate(-50%,-50%) rotate(-14deg); top: 45%; box-shadow: 0 0 20px rgba(0,157,255,1);}
.con_sec01 .list01 { display: flex; justify-content: center; gap: 30px 1em;}
.con_sec01 .list01 li { width: 25em;}
.con_sec01 .list01 h4 { max-width: 13em; margin: auto;}
.con_sec01 .list01 .btn_wrap { display: flex; justify-content: center; align-items: center; height: 3rem;}
.con_sec01 .list01 .btn_wrap a { color: #3772D3; text-decoration: none; font-weight: bold;}
.con_sec01 .list01 .tel a { font-size: 2.5em; line-height: 1;}
.con_sec01 .list01 .mail a { font-size: 1.6em; line-height: 1;}

.contact_sec dl { display: flex; justify-content: space-between; align-items: center; gap: 0.5em 2em;}
.contact_sec dt { width: 10em; display: flex; justify-content: space-between; align-items: center;}
.contact_sec dt.align_start { align-self: flex-start; padding-top: 0.5em;}
.contact_sec .hissu { display: inline-block; font-size: 0.85em; font-weight: 500; background: #3772D3; color: #fff; vertical-align: middle; border-radius: 0.3em; padding: 0.1em 0.8em;}
.contact_sec dd { flex: 1;}
input[type="text"], input[type="email"], input[type="tel"], input[type="date"], textarea, select {
	font-family: "Noto Sans JP", sans-serif;
	font-size: 17px;
	padding: 0.5em 0.7em;
	border: solid 1px #8F9CA3;
	border-radius: 0.3em;
	vertical-align: middle;
	width: 100%;
}
.contact_sec .width_auto input[type="text"] { width: auto;}

.contact_sec .btn_area input {
  font-family: "Noto Sans JP", sans-serif;
	display: inline-block;
  min-width: 220px;
	color: #fff;
	font-size: 1.1em;
  text-align: left;
	text-decoration: none;
	background: url("../images/common/ico_arrow_white.svg") no-repeat calc(100% - 1.3em) center #3772D3;
  background-size: 0.9em auto;
	border: none;
  border-radius: 60px;
	padding: 1.2em 3em;
  margin: 0 1.5em 1.5em;
	outline: none;
	cursor: pointer;
	-webkit-appearance: none;
	transition: 0.3s;
}
.contact_sec .btn_area input:hover { transform: translateX(0.5em);}
.contact_sec .btn_area input:focus { outline: 0;}

.wpcf7-spinner { display: block; margin: 20px auto;}
.wpcf7-checkbox .wpcf7-list-item { display: block; margin: 0px;}
.wpcf7-not-valid-tip { display: inline-block;}


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

.news_single { border: solid 1px #ccc; border-radius: 0.6em; padding: 5% 8%;}
.news_head h1 { font-size: 2.5em;}

.blog_content p { margin-bottom: 30px;}
.blog_content h2 { font-weight: 500; font-size: 2.5em; line-height: 1.5; border-bottom: solid 3px #E4E8EA; margin-bottom: 1em; position: relative; padding-bottom: 0.6em; clear: both;}
.blog_content h2:before { content: ""; position: absolute; width: 4em; height: 3px; background: #3772D3; left: 0px; bottom: -3px;}
.blog_content h3 { font-weight: 700; font-size: 1.6em; line-height: 1.6; margin-bottom: 25px; clear: both;}
.blog_content h4, .blog_content h5, .blog_content h6 { font-weight: 700; font-size: 1.5em; line-height: 1.6; margin-bottom: 25px; clear: both;}
.blog_content blockquote { border: solid 1px #707070; background: #fff; padding: 1.5em 2em; margin-bottom: 40px; clear: both;}
.blog_content blockquote p:last-child { margin-bottom: 0px;}
.blog_content ul { margin-bottom: 30px;}
.blog_content li { position: relative; padding-left: 1.2em; margin-bottom: 1em;}
.blog_content li:before { content: ""; position: absolute; background: #AF1F24; width: 0.7em; height: 0.7em; border-radius: 100%; left: 0px; top: 0.4em;}

.blog_content table { width: 100%; border: solid 1px #242A33; margin-bottom: 60px;}
.blog_content th, .blog_content td { border: solid 1px #242A33; padding: 0.6em 0.8em; vertical-align: middle;}
.blog_content th, .blog_content td:first-child { background: #efefef; font-weight: bold; text-align: center;}
.blog_content th { width: 10em;}

.blog_content iframe { max-width: 100%;}

.blog_content strong, .blog_content em { font-weight: bold;}

.iframe_wrap { position: relative; width: 100%; padding-top: 56.25%;/* 高さ÷幅 */}
.iframe_wrap iframe {
	position: absolute;
	top: 0;
	left: 0;
	width: 100% !important;
	height: 100% !important;
}

/*WP用 投稿表示*/
img.alignnone { margin: 20px auto 50px;}
img.aligncenter { display: block; margin: 20px auto 50px;}
img.alignright { margin: 20px 0 50px 20px; float: right;}
img.alignleft { margin: 20px 20px 50px 0; float: left;}


/* ページャー(アーカイブ) */
.pagination { display: flex; justify-content: center; align-items: center; flex-wrap: wrap; gap: 0.4em;}
.pagination span.current, .pagination a {
	display: block;
	text-align: center;
	text-decoration: none;
	min-width: 3em;
	height: 3em;
	line-height: 2.8;
	padding: 0px 0.5em;
	color: #3772D3;
  font-weight: 500;
  border-radius: 0.3em;
  border: solid 1px #ccc;
  transition: 0.3s;
}
.pagination span.current, .pagination a:hover { background: #3772D3; border-color: #3772D3; color: #fff;}

/* ページャー(シングル) */
.pager ul { display: flex; justify-content: space-between; align-items: center; line-height: 1.4;}
.pager ul li { width: 30%;}
.pager a { display: inline-block; vertical-align: middle; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; width: 100%;}
.pager .previous a { padding-left: 1.2em;}
.pager .next a { padding-right: 1.2em;}
.pager .previous a:before, .pager .next a:after { content: ""; position: absolute; background: url("../images/common/ico_prev.svg") no-repeat center center; background-size: 100% auto; width: 0.7em; height: 1.3em; top: 50%; transform: translateY(-50%);}
.pager .previous a:before { left: 0px;}
.pager .next a:after { right: 0px; transform: translateY(-50%) scale(-1,1);}
.pager .return a { border: solid 1px #242A33; border-radius: 60px; padding: 1em;}
.pager .return a:hover { border-color: #AF1F24;}

@media only screen and (max-width: 640px) {
  .news_archive dl { flex-wrap: wrap; gap: 10px 1em; padding: 1em 0px;}
  .news_archive dt { width: 5.5em;}
  .news_archive dd:last-child { width: 100%;}
}


/* cases */
.cases_archive_wrap { display: flex; flex-flow: column; gap: 50px;}
.cases_archive { display: flex; justify-content: space-between; align-items: flex-start; gap: 5%; padding-bottom: 50px; border-bottom: solid 1px #E4E8EA;}
.cases_archive figure { width: 37%; border: solid 1px #E4E8EA;}
.cases_archive .box_inner { width: 58%;}
.cases_archive .box_inner h1 { white-space: nowrap; overflow: hidden; text-overflow: ellipsis;}
.cases_archive .box_inner p { display: -webkit-box; -webkit-box-orient: vertical; overflow: hidden; text-overflow: ellipsis; -webkit-line-clamp: 3;}
.cat_wrap { display: flex; flex-wrap: wrap; gap: 0.5em;}
.cat_wrap li { padding: 0.25em 0.8em; border-radius: 3em; min-width: 7em; text-align: center;}


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

.pro_list { display: flex; flex-wrap: wrap; gap: 50px 25px;}
.pro_list li { width: calc((100% - 75px) / 4); padding: 20px;}
.pro_list a { display: block; color: #45474F;}
.pro_list .btn_area span { display: block; background: url("../images/common/ico_arrow_white.svg") no-repeat calc(100% - 0.7em) center #3772D3; background-size: 0.7em auto; border-radius: 3em; padding: 0.2em 1em; color: #fff; text-decoration: none;}

.pro_head h1 { font-weight: 500; font-size: 2.5em; line-height: 1.5; border-bottom: solid 3px #E4E8EA; margin-bottom: 1em; position: relative; padding-bottom: 0.6em; display: flex; align-items: flex-end; flex-wrap: wrap; gap: 0.1em 0.2em;}
.pro_head h1:before { content: ""; position: absolute; width: 4em; height: 3px; background: #3772D3; left: 0px; bottom: -3px;}
.pro_head h1 span { font-size: 0.6em; margin-bottom: 0.3em;}

.pro_head .box01 { display: flex; gap: 30px 3%;}
.pro_head .box01 figure { width: 25%;}
.pro_head .box01 .box_inner { flex: 1;}


