/*
Theme Name: Lightning-child
Template: lightning
*/

body, html {
    letter-spacing: .025em;
	font-family: "Noto Sans JP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "メイリオ",　Meiryo, sans-serif;
}

p, li, h5, tr, td{
	line-height: 2;
}

ol li {
    padding-left: .5em;
}

a:hover{
	color: #358127;
}
/* リスト 丸数字 */
.ol-circled li{
	list-style: none;
	padding-left: 1.25em;
}
.ol-circled li span{
	margin-left: -1em;
}

/* table ライン緑 */
.tb_green td {
    border-bottom: 2px solid #ccc;
    padding: 1em;
    vertical-align: top;
    line-height: 1.75;
}
.tb_green tr td:first-child {
    border-color: #358127;
}

/* table 見出し背景グレー */
.tb_gray td {
    border: none;
    border-bottom: 1px solid #f0f0f0;
    padding: 1em;
    vertical-align: top;
    line-height: 1.75;
}
.tb_gray tr td:first-child {
    border-color: #fff;
    background: #efefef;
}
/* table header 背景グレー */
.th_gray th{
	background: #efefef;
}

.border_gray{
	border: 5px solid #f0f0f0;
	padding: .5em 1em;
}

.card_gray{
	background: #efefef;
	border-radius: 10px;
	padding: 1em 1.5em;
}

.border_gray .vk_icon,
.card_gray .vk_icon {
    margin-bottom: 0;
}
.card_white{
	background:#fff;
	padding: 1em 1.5em;
    clip-path: polygon(24px 0%, 100% 0%, 100% 100%, 100% calc(100% - 24px), calc(100% - 24px) 100%, 0% 100%, 0% 24px);
}
/* flex　スマホ時の余白調整 */
.flex_gap_custom .is-layout-flex{
    row-gap: 0px !important;
    column-gap: 14px !important;
}

/* ラベル */
.label01 {
    background: #4a476e;
    width: fit-content;
    padding: 0 1em;
    border-radius: 5px;
    color: #fff;
	margin-left: 0 !important;
	font-size: .85em;
}
.label02 {
    background: #b5a410;
    width: fit-content;
    padding: 0 1em;
    border-radius: 5px;
    color: #fff;
	margin-left: 0 !important;
	font-size: .85em;
}

/* 文字色 */
.c01{
	color: #358127 !important;
}
/* 文字サイズ */
.fs_ss{
	font-size: .75em;
}
.fs_s{
	font-size: .85em;
}
.fs_l{
	font-size: 1.15em;
}
.fs_ll{
	font-size: 1.25em;
}
.fs_xl{
	font-size: 1.6em;
}
.fs_xxl{
	font-size: 1.8em;
}
@media screen and (min-width: 768px){
	.fs_xl{
		font-size: 1.8em;
	}
	.fs_xxl{
		font-size: 2.2em;
	}
}

h1, h2, h3, h4, h5, h6, strong.global-nav-name{
	font-weight: 500;
}
h2.wp-block-heading.is-style-default {
	border-left: 8px solid #358127;
    padding-left: .5em !important;
	margin-bottom: 2em;
}
h3.wp-block-heading.is-style-default {
    border-left: 5px solid #358127;
    padding-left: .5em !important;
	margin-bottom: 2em;
}

.section{
	padding: 120px 0;
}

@media screen and (max-width:960px){
	h1,
	h1.page-header-title {
		font-size: 1.5rem;
	}
	h2{
		font-size: 1.35rem
	}
	h3{
		font-size: 1.3rem
	}
	h4{
		font-size: 1.2rem
	}
	.section{
		padding: 80px 0;
	}
}

/* 固定ページ　タイトル */
.page-header {
    min-height: 18em;
    background: #eeefe7;
}
@media screen and (max-width:960px){
	.page-header {
		min-height: 14em;
	}
}

h1.page-header-title {
	font-weight: 500;
    letter-spacing: 1px !important;
	position: relative;
}
h1.page-header-title::after {
    content: "●●●●●";
    position: absolute;
	font-size: 6px;
    letter-spacing: 1em;
    color: #358127;
    width: 100%;
    text-align: center;
    bottom: -35px;
    left: 0;
}

/* 採用情報　ヘッダー・パンくず非表示 */
.page-id-48 .page-header,
.page-id-394 .page-header,
.page-id-48 .breadcrumb-list,
.page-id-394 .breadcrumb-list{
	display: none;
}

/* フッター */
nav.footer-nav {
    border-top: 1px solid #358127;
    border-bottom: 1px solid #358127;
}

.container.site-footer-copyright {
    background: #358127;
    max-width: 100%;
	color: #fff;
	padding: .5em 0;
	margin-top: 40px;
}

/* .site-header--layout--nav-float .site-header-logo {
  display: inline-block;
  width: auto;
  margin-right: 0;
}
 */
.site-footer-copyright p:nth-child(2) {
    display:none;
}

/* .vk-mobile-nav-menu-btn {
    left: initial;
    right: 5px;
} */

/* お問合せフォームスパム対策　reCAPTCHAバッジ */
.grecaptcha-badge {
	bottom:80px !important;
}

/********** トップページ **********/
.main_visual{
	z-index:10 !important;
	min-height: 70vh;
}
.main_text{
	z-index:10 !important;
	padding: 30px 20px 60px;
}

@media screen and (min-width: 920px){
	.main_text{
		padding-left: 80px;
	}	
	.main_handshake {
		width: 50vw !important;
		position: absolute;
		top: 0;
		right: 0;
	}
}

p.main_catch01 {
    font-size: 2em;
}
p.main_catch02 {
    font-size: 4em;
	line-height: 1.2 !important; 
	font-weight: 500;
}
p.main_catch03 {
    font-size: 1.2em;
}
.main_handshake img{
	width: 100%;
	height: auto;
}
.main_pc {
	width: 20%;
    position: absolute;
    left: 43%;
    bottom: -12%;
	animation: floatUpDown 8s ease-in-out infinite;
}
.main_block {
	    width: 24%;
    position: absolute;
    left: 10%;
    bottom: -13%;
	animation: floatUpDown 6s ease-in-out infinite;
	animation-delay: .5s;
}
.main_dbviewer {
	width: 12%;
    position: absolute;
    right: 0;
    bottom: 8%;
	animation: floatUpDown 6s ease-in-out infinite;
	animation-delay: .3s;
}

.main_door {
    width: 12%;
    position: absolute;
    right: 15%;
    bottom: -15%;
	animation: floatUpDown 6s ease-in-out infinite;
	animation-delay: 1s;
}
.img_polygon{
	clip-path: polygon(
		50% 0%,         /* 上中央 */
		100% 38%,       /* 右上 */
		82% 100%,       /* 右下 */
		18% 100%,       /* 左下 */
		0% 38%          /* 左上 */
  );
}
/* 上下ふわふわ */
	@keyframes floatUpDown {
		0%, 100% {
			transform: translateY(0);
		}
		50% {
			transform: translateY(-20px);
		}
	}
/* あしらい　5角形 */
.main_bg01 {
    bottom: 0;
    left: 0;
    width: 300px;
    height: 300px;
    opacity: .5;
}
.main_bg02 {
    bottom: -120px;
    left: -80px;
    width: 120px;
    height: 120px;
    opacity: .5;
}
.main_bg03 {
    top: 60%;
    right: -120px;
    width: 300px;
    height: 300px;
    opacity: .5;
}
.main_bg04 {
    top: 0;
    right: -150px;
    width: 150px;
    height: 150px;
    opacity: .5;
}
/* recruit用 5つ目の5角形 */
.main_bg05 {
    top: 0;
	left: 30%;
	width: 450px;
    height: 450px;
    opacity: .2;
}

/* 5本ライン */
.main_line {
	width: 80%;
	top: 0;
	right: 0;
}
.main_line svg {
	position: absolute;
	width: 100vw;
	height: 50vh;
	left: 0;
}
.main_line line {
	stroke: #358127;
	stroke-width: 0.4;
	stroke-dasharray: 1000;
	stroke-dashoffset: 1000;
	animation: draw 30s ease-out forwards;
	opacity: 0.4;
}
    .main_line line:nth-child(1) { animation-delay: 0s; }
    .main_line line:nth-child(2) { animation-delay: 0.1s; }
    .main_line line:nth-child(3) { animation-delay: 0.2s; }
    .main_line line:nth-child(4) { animation-delay: 0.3s; }
    .main_line line:nth-child(5) { animation-delay: 0.4s; }

    @keyframes draw {
      to {
        stroke-dashoffset: 0;
      }
    }

@media screen and (min-width: 821px){
	p.main_catch02 {
		font-size: 5em;
	}
	p.main_catch03 {
    	font-size: 1.3em;
	}
	
	.main_line line {
		stroke-width: 0.2;
	}
	.main_line {
		width: 75%;
		right: unset;
		left: 0;
	}
}

/* 五重の円 */
.circle_lines {
	position: absolute;
	right: -10%;
}
.circle_lines svg {
	width: 600px;
	height: 600px;
}
.ring {
	fill: none;
	stroke: #358127;
	stroke-width: 1;
	opacity: 0.05;
	animation: fadePulse 6s ease-in-out infinite;
}
.ring:nth-child(1) { animation-delay: 0s; }
.ring:nth-child(2) { animation-delay: .6s; }
.ring:nth-child(3) { animation-delay: 1.2s; }
.ring:nth-child(4) { animation-delay: 1.8s; }
.ring:nth-child(5) { animation-delay: 2.4s; }

    @keyframes fadePulse {
      0%   { opacity: 0.05; }
      60%  { opacity: .4; }
      100% { opacity: 0.05; }
    }

/* 5つのドメイン */
.domain_title{
	text-align: center;
}
.domain_title_sub{
	font-size: .75em;
}
.domain_cont {
    background: #efefef;
    border-radius: 20px;
	padding: 30px 22px 20px;
}
.domain_cont ul li{
	font-size: .85em;
}

@media screen and (min-width: 781px){
	.domain_wrap .domain_cont:nth-child(even) {
		transform: translateY(200px);
	}
}
@media screen and (min-width: 920px){
	.five_domain h2{
/* 		writing-mode: vertical-rl;
		text-align:left;
		line-height: .8; */
	}
	.domain_title{
		writing-mode: vertical-rl;
		text-align:left;
		line-height: 1;
		font-size: 4em;
		margin: 0;
		float: left;
	} 
	.domain_title_sub{
		font-size: 18px;
	}
	.domain_wrap{
		width: calc(100% - 130px);
		float: right;
	}
}
@media screen and (min-width: 1200px){
	.domain_wrap{
		width: calc(100% - 180px);
	}
	.domain_cont {
		padding: 40px 44px 30px;
	}
}

/* @media screen and (max-width: 767px){
	.domain_title{
		font-size: 2.8rem;
	}
	.domain_wrap {
		width: calc(100% - 80px);
	}
} */
/********** 会社概要 **********/
/* 沿革 */
.history, .history td{
	border:none; 
	vertical-align:top;
}
.history tr td:first-child{
	font-size: 1.6em;
	line-height: 1 !important;
	color: #4a476e;
	width: 3.5em;
	font-style: italic;
}
.history tr td:nth-child(2){
	font-weight: 500;
	font-size: 1.2em;
	width: 4em;
	text-align: right;
	padding-right: 1em;
}
.history tr td:nth-child(3){
	border-left: solid 1px #cfe5cf;
	position: relative;
	padding-bottom: 2.5em;
	padding-left: 2em;
}
.history tbody tr:first-child td:nth-child(3)::before{
	content: "";
	width: 2px;
	height: 2em;
	background: #fff;
	position: absolute; 
	top: 0; left: -1px;
}
.history tr td:nth-child(3)::after{
	content: "●";
	position: absolute; 
	top: .5rem;
	left: -.55em;
	color: #4a476e;
}
.histroy_img{
	max-width: 400px;
}
@media screen and (min-width:767px){
	.history tr td:first-child{
		font-size: 1.8em;
		width: 4em;
	}
	.history tr td:nth-child(2){
		width: 6em;
		padding-right: 2em;
	}
}




/* 会社概要 */
.profile tr td:first-child{
	width: 28%;
}
/* アクセス */
iframe{
	filter: grayscale(.5);
}

/* 経営理念 */
.philosophy_cont p{
	font-size: 18px;
	padding: 40px;
}

@media screen and (min-width:767px){
	.philosophy_cont p{
		font-size: 28px;
	}
}
@media screen and (min-width:1200px){
	.philosophy_cont p{
		font-size: 30px;
		padding: 40px 10px;
	}
}
@media screen and (max-width:920px){
	.philosophy_cont {
		display: block !important;
	}
}

/* 採用情報 */
.main_catch .main_large{font-size: 2.4rem; font-weight:bold;}
.recruit_catch .catch_large{font-size: 1.6em}
.recruit_five .recruit_catch{font-size: 1.2em;}
.recruit_main img{
	z-index :10;
	position: relative;
}

.recruit_five .wp-block-columns .wp-block-column:last-child p,
.recruit_fit li{
	font-size: 1.15rem;
}
.point_cont{
	background: #efefef;
	border-radius: 10px;
	padding: 16px;
}
.recruit_point .wp-block-columns{
	margin-bottom: 24px;
}
.point_cont i{
    color: #358127;
}
.tb_recruit tr td:first-child{
	width: 6.5em;
}
.recruit_fit img{
	max-width:240px;
	margin: 0 auto;
}
.recruit_engineer_bg_img .wp-block-cover__image-background{
	background-position-x: 0% !important;
}

@media screen and (min-width: 768px){
	.recruit_catch .catch_large{font-size: 2.8em}
	.recruit_five .recruit_catch{font-size: 1.2em;}

	.recruit_msg_text{
		margin-left: 200px !important;
	}
	.recruit_msg_img{
		position: absolute;
		bottom: 60px; 
		left: 0; 
	}
	.tb_recruit tr td:first-child{
	width: 12em;
	}
}
@media screen and (min-width: 992px){
	.main_catch .main_large{font-size: 3rem}
}
@media screen and (min-width: 1200px){
	.main_catch .main_large{font-size: 4rem}
}

@media screen and (max-width: 400px){
	.main_catch .main_large{font-size: 2.2rem}
}


@media screen and (max-width: 767px){
	.tb_recruit tr td{
		font-size: .9rem
	}
}
@media screen and (max-width: 575px){
/* スマホ時　幅を他と揃える */
	.recruit_five,
	.recruit_msg{
		padding-left: 15px;
		padding-right: 15px;
	}
}

/* 社長あいさつ */
.message.wp-block-columns .wp-block-column:last-child {
    padding: 0 20px;
}
.natsume_img{
	max-width:400px;
}

/* お問い合わせフォーム */
.tb_inquiry{
	background: #efefef;
}
.tb_inquiry tr{
	border-bottom: 2px solid #fff;
}
.tb_inquiry,
.tb_inquiry td{
	border: none;
}
.tb_inquiry td{
	padding: 1.5em;
}
.tb_inquiry p,
.tb_inquiry input,
.tb_inquiry textarea{
	margin-bottom: 0;
	font-size: var(--wp--preset--font-size--regular) !important;
}
.required{
	background: #c00;
	color: #fff;
	font-size: .8em;
	padding: 0 .5em 1px;
	margin-right: 10px;
}
.inquiry_privacy{
	border: 1px solid #ccc;
	padding: 10px;
	font-size: .8em;
	height: 200px;
	overflow: auto;
}
.inquiry_privacy p{
	margin-bottom: .5em;
}

@media screen and (max-width: 767px){
	.tb_inquiry td{
		display: block;
		width: 100%;
		padding: 1em;
	}
	.tb_inquiry tr td:first-child {
    	padding-bottom: 0;
	}
}