/*
Theme Name: Lightning Child
Theme URI: 
Template: lightning
Description: 
Author: 
Tags: 
Version: 0.6.0
*/


html, body {
  width: 100%;
min-height: 100%;
  overflow-x: hidden;
  font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", Helvetica, Arial, sans-serif;
}

@media (min-width: 992px) {
    .header_scrolled .site-header-container--scrolled--logo-and-nav-container .site-header-logo img{
        max-height: 60px;
        opacity: 0;
    }
}



/*ヒーローエリア*/
.hero {
  position: relative;
  height: 80vh;
  width: 100vw;
  margin-left: calc(-50vw + 50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  overflow: visible;
  text-align: center;
background: linear-gradient(
  to right,
  #7fae17,
  #b9dc3f,
  #f0f9a8,
  #bed863,
  #9fbe00
);

}

/* テキスト */
.typewriter {
  z-index: 10;
  padding: 0 20px;
}

h2.typewriter {
  font-size: 3.5rem;
  line-height: 1.2;
  height: 3.6rem;
  overflow: hidden;
  margin-bottom: 10px;
	color:#2c3e1f;
text-shadow: 0 1px 2px rgba(255, 255, 255, 0.4);
  border: 0;
}


.hero-text {
  transform: translateY(-5vh); 
}

/* 波共通 */
.wave {
  position: absolute;
  width: 100vw;
  margin-left: calc(-50vw + 50%);
  left: 0;
  pointer-events: none;
}
.wave svg {
  display: block;
  width: 100%;
  height: 100%;
  fill: #fff;
  opacity: 0.3;
  filter: drop-shadow(0 0 10px rgba(255,255,255,0.5));
}
.wave2 svg {
  opacity: 0.5;
}

/* 上波 */
.wave-top {
  top: -20px;
  height: 140px;
  z-index: 3;
  transform: scaleY(1); /* 上の波の直線を上に */
}
.wave-top.wave1 svg {
  animation: waveTopMotion1 3s ease-in-out infinite;
}
.wave-top.wave2 svg {
  animation: waveTopMotion2 4s ease-in-out infinite;
}

/* 下波共通 */
.wave-bottom {
  position: absolute;
  bottom: 0;
  width: 100vw;
  height: 90px;
  z-index: 1;
  pointer-events: none;
  overflow: hidden;
  margin-left: calc(-50vw + 50%);
  line-height: 0; /* → 余白対策 */
  font-size: 0;   /* → 余白対策 */
	transform:  translateY(2px); 
}

.wave-bottom svg {
  display: block;
  width: 100%;
  height: 100%;
  fill: #fff;
  opacity: 0.3;
  filter: drop-shadow(0 0 10px rgba(255,255,255,0.5));
	  transform: translateY(2px);
}

/* wave1: path のみアニメーション */
.wave-bottom.wave1 svg {
  animation: none;
}
.wave-bottom.wave1 svg path {
  animation: waveBottomMotion1 3s ease-in-out infinite;
  transform-origin: bottom center;
}

/* wave2: path のみアニメーション */
.wave-bottom.wave2 svg {
  opacity: 0.5;
  animation: none;
}
.wave-bottom.wave2 svg path {
  animation: waveBottomMotion2 4s ease-in-out infinite;
  transform-origin: bottom center;
}

/* 波のアニメーション */
@keyframes waveTopMotion1 {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(8px); }
}
@keyframes waveTopMotion2 {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(12px); }
}
@keyframes waveBottomMotion1 {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-6px); }
}

@keyframes waveBottomMotion2 {
  0%, 25%, 100% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
  75% { transform: translateY(-3px); }
}

/* 大文字 */
.marquee {
  position: absolute;
  bottom: 60px;
  width: 100%;
  overflow: hidden;
  pointer-events: none;
  z-index: 20;
  text-align: center;
}

/* 変更後の marquee-content */
.marquee-content {
  display: inline-block;
  white-space: nowrap;
  font-size: 10rem;
  font-weight: bold;
  color: rgba(255, 255, 255, 0.8);
  opacity: 0;
  transform: scale(0.8);
  user-select: none;
  will-change: transform;
  animation: none;
	margin: 0 auto;
	transform: translateY(10px);
}

/* 中央アニメーション */
@keyframes centerFadeIn {
  0% {
    opacity: 0;
    transform: translateY(10px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}


.typewriter {
  visibility: hidden;
  height: 4rem !important;
  overflow: hidden;
}

.typewriter span {
  visibility: visible;
  opacity: 0;
  transform: scale(0.9);
  display: inline-block;
  animation: typeZoom 0.4s ease-out forwards;
  animation-fill-mode: forwards;

}

@keyframes typeZoom {
  0% {
    opacity: 0;
    transform: scale(0.9);
  }
  50% {
    opacity: 1;
    transform: scale(1.15);
  }
  100% {
    opacity: 1;
    transform: scale(1);
  }
}



@media (min-width: 992px) and (max-width: 1199px) {
  .marquee-content {
    font-size: 6rem;
  }
}



@media (max-width: 991px) {
  h2.typewriter {
    font-size: 2.2rem;
  }

  .marquee-content {
    font-size: 6rem;
  }
}

@media (max-width: 767px) {
  .hero {
    height: 70vh;
    padding: 0 1rem;
  }

  h2.typewriter {
    font-size: 2rem;
    line-height: 1;
  }

  .marquee-content {
    font-size: 4rem;
  }


  .wave-top {
    height: 100px;
  }
	

  .wave-bottom {
    height: 60px;
  }
	
  .hero-text h2.typewriter:first-of-type {
    margin-bottom: 0;
  }

  .hero-text h2.typewriter + h2.typewriter {
    margin-top: -0.5rem;
  }
	
	
}

@media (max-width: 575px) {
  .hero {
    height: 60vh;
  }

  h2.typewriter {
    font-size: 1.4rem;
  }

  .marquee-content {
    font-size: 3rem;
  }
		.marquee {
    bottom: 120px;
  }
}

/*ヒーローエリアここまで*/



/*ナビ*/

.menu .global-nav-name{
	font-size:1rem !important;
}

.global-nav-list>li:before{
	border-bottom:4px solid #cee212;
}

.site-header-logo{
	padding-top:2px;
}

.site-header-logo{
	margin-bottom:2px;
}

/*ページヘッダー*/

.page-header {
  position: relative;
  overflow: hidden;

  background: linear-gradient(
  to right,
  #7fae17,
  #b9dc3f,
  #f0f9a8,
  #bed863,
  #9fbe00
);

  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.5rem;
  font-weight: bold;
  user-select: none;
	color:re;
text-shadow: 0 1px 2px rgba(255, 255, 255, 0.4);
}

.page-header::before,
.page-header::after {
  content: "";
  position: absolute;
  width: 420%;
  height: 420px;
  left: -60%;
  background: rgba(255, 255, 255, 0.3);
  border-radius: 100% 100% 0 0 / 50% 50% 0 0;
  top: 100%;
  animation-timing-function: ease-in-out;
  pointer-events: none;
  filter: drop-shadow(0 0 5px rgba(255,255,255,0.5));
}

.page-header::before {
  animation: smallWave1 4s infinite;
  opacity: 0.6;
  z-index: 1;
}

.page-header::after {
  animation: smallWave2 5.5s infinite;
  opacity: 0.4;
  top: 95%;
  z-index: 0;
}

@keyframes smallWave1 {
  0%, 100% { transform: translateX(0) translateY(0); }
  50% { transform: translateX(-25%) translateY(-15px); } /* 動き幅を拡大 */
}

@keyframes smallWave2 {
  0%, 100% { transform: translateX(0) translateY(0); }
  50% { transform: translateX(-30%) translateY(-20px); } /* 動き幅を拡大 */
}

.page-header-title, h1.page-header-title{
	text-align:left;
	font-size:4rem;

}
 
@media (max-width: 767px) {
	
.page-header-title, h1.page-header-title{
	text-align:left;
	font-size:2.5rem;

}
}

/*トップページ*/


.top-container{
	border-radius:0 !important;
}

.outer-box{
border-radius:40px;
box-shadow: 0px 2px 12px rgba(128, 142, 174, .2);
}

/*ブランドロゴ*/
.brand-box .row{
	align-items: stretch;
  padding: 40px 20px;
  background: linear-gradient(
    to bottom,
    #7fae17,
    #b9dc3f,
    #f0f9a8,
    #9fbe00
  );

   position: relative;
  border-left: none;

  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
  border-radius: 8px;
}

.brand-box .row::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 6px;
  height: 100%;
  border-radius: 8px 0 0 8px;
  background: linear-gradient(
    to bottom,
    #7fae17,
    #b9dc3f,
    #f0f9a8,
    #9fbe00
  );
}


/* 上下中央揃え用にflex配置 */
.brand-box figure.logo {
  height: 130px;
  display: flex;
  align-items: center;   /* 縦方向中央揃え */
  justify-content: center; /* 横方向中央揃え */
  margin: 0 auto;
}

.brand-box figure.logo img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}


.brand-box .row .vk_gridColumn_item {

  display: block;
   padding: 10px;

}


figure.logo {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 140px;
  margin: 0 auto 20px;
  background-color: #fff;
  padding: 10px;
  border-radius: 6px;
}

figure.logo img {
  max-width: 100%;
  max-height: 100%;
  height: auto;
  width: auto;
  object-fit: contain;
}


.brand-box figure.logo img {
  transition: transform 0.3s ease;
}

.brand-box figure.logo:hover img {
  transform: scale(1.05);
}




@media (max-width: 575px) {
  .brand-box .row::before {
    top: 0;
    left: 0;
    width: 100%;
    height: 6px;
    border-radius: 8px 8px 0 0;
    background: linear-gradient(
      to right,
      #7fae17,
      #b9dc3f,
      #f0f9a8,
      #9fbe00
    );
  }
}



/*vison*/


.catch-text {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 700;
  font-size: 1.8rem;
  line-height: 1.4;
  text-align: center;
  letter-spacing: 0.05em;

  background: linear-gradient(
    to right,
    #6a960f,
    #cee212,
    #9fbe00
  );
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  color: transparent;
  text-shadow: 0 0 0.5px rgba(0,0,0,0.1);
  white-space: nowrap;
}

@media (max-width: 768px) {
  .catch-text {
    font-size: 1.4rem;
    line-height: 1.6;
    white-space: normal;
  }
	.p-left{text-align:left;}
}




.left-s-box .wp-block-column:last-child{padding-left:2rem;
}

@media (max-width: 991px) {
.ceo-img{
	width:300px;
	margin:auto;
}
	.left-s-box .wp-block-column:last-child{
		padding-left:0;
	}
	.sp-center{
		text-align:center !important;
	}
	
	.office-box{
		margin:0 !important;
	}
	
}


/*aboutus*/

/* すべてのテーブルセルに枠線を付加する */

.tablepress tbody td {
    border-top: 1px solid #cccccc !important;
	vertical-align:middle;
	padding:1rem 0;
}


.right-s-box .wp-block-column:first-child{padding-right:2rem;
}

.right-s-box figure img {
  transition: transform 0.3s ease;
}

.right-s-box figure :hover img {
  transform: scale(1.05);
}


.border-line{
height: 3px;
  background: linear-gradient(
    90deg,
    rgba(206, 226, 18, 0) 0%,
    #cee212 20%,
    #9cbe0f 50%,
    #cee212 80%,
    rgba(206, 226, 18, 0) 100%
  );
  border-radius: 2px;
margin:4rem 0 !important;
}

.border-line2{
height: 3px;
  background: linear-gradient(
    90deg,
    rgba(206, 226, 18, 0) 0%,
    #cee212 20%,
    #9cbe0f 50%,
    #cee212 80%,
    rgba(206, 226, 18, 0) 100%
  );
  border-radius: 2px;
margin:1rem 0 !important;
}



.office-box{
	margin:0 3rem 0 0;
}


/*recruit*/

/*全体ボックス*/
.recruit-g{margin:0 80px;
	border-radius: 8px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.06); 
  padding: 40px;}

.recruit-g h3{font-size:1rem;}

/* 共通：PC（1301px以上）横一列 */
.flow-container {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  gap: 1rem;
  align-items: center;
  justify-content: center;
}

.flow-row {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 1rem;
}

.step-box {
  background-color: #fff;
  border: 2px solid #cee212;
  padding: 1rem;
  border-radius: 10px;
  font-size: 0.9rem;
  font-weight: 500;
  white-space: nowrap;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.06);
}

.arrow {
  display: flex;
  align-items: center;
  justify-content: center;
  animation: arrow-wiggle-x 2s infinite;
}

.arrow-end {
  display: flex;
}

.arrow-icon {
  width: 32px;
  height: 32px;
  fill: #cee212;
  transition: transform 0.3s ease;
}

@keyframes arrow-wiggle-x {
  0%, 100% { transform: translateX(0); }
  50%      { transform: translateX(6px); }
}

/* ===================================
   1300px以下：2段構成 + 矢印表示
=================================== */
@media (max-width: 1300px) and (min-width: 992px) {
		
	  .flow-container {
    flex-direction: column;
    gap: 1.5rem;
    align-items: flex-start;
  }

  .flow-row {
    flex-direction: row;
    justify-content: flex-start;
    gap: 1rem;
    width: 100%;
  }

  .arrow-end {
    display: flex;
  }
	
	/*全体ボックス*/
.recruit-g{margin:0 20px;
	border-radius: 8px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.06); 
  padding: 40px;}
}


/* =====================================
   991px以下：縦積み（100%幅・下矢印）
===================================== */
@media (max-width: 991px) {
  .flow-container {
    flex-direction: column;
    gap: 0.5rem;
  }
	

  .flow-row {
    flex-direction: column;
    align-items: center;
    width: 100%;
    gap: 0.5rem;
  }

  .step-box {
    width: 100%;
    max-width: none;
    box-sizing: border-box;
    padding: 1rem 1.5rem;
    text-align: center;
  }

  .arrow-icon {
    transform: rotate(90deg);
  }

  .arrow {
    animation: arrow-wiggle-y 2s infinite;
  }

  .arrow-end {
    display: flex;
    transform: rotate(90deg);
  }

  @keyframes arrow-wiggle-y {
    0%, 100% { transform: translateY(0); }
    50%      { transform: translateY(6px); }
  }
	
	/*全体ボックス*/
.recruit-g{margin:0;
	border-radius: 8px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.06); 
  padding: 10px !important;}
}





.vk_button_link {
  display: inline-block;
  position: relative;
  padding: 0.75em 2.5em 0.75em 1.5em; /* 右側に余白追加 */
   background: linear-gradient(
    135deg,
    #7fae17,
    #b9dc3f,
    #f0f9a8,
    #bed863,
    #9fbe00,
    #6a960f
  );
  background-size: 200%;
  background-position: left;
  color: #333 !important;
  text-decoration: none;
  border: solid 1px #333;
  border-radius: 8px;
  font-weight: bold;
  transition: background-position 0.5s ease, box-shadow 0.3s ease;
  overflow: hidden;
	border-radius:40px;
}
/* hover時 */
.vk_button_link:hover {
  background-position: right;
  box-shadow: 0 4px 15px rgba(127, 174, 23, 0.4);
}

.vk_button_link:hover::after {
  transform: translateY(-50%) translateX(5px);
}




/*フッター*/

.site-footer{
	background: linear-gradient(
  to right,
  #7fae17,
  #b9dc3f,
  #f0f9a8,
  #bed863,
  #9fbe00
);
	border-top:0;
}

/*ハンバーガーメニューにMENU表記*/
.vk-mobile-nav-menu-btn {
  text-indent: 2px;
  font-size: 10px;
  padding-top: 26px;
  overflow: visible;
  border: none;
  background-position: top;
  height: 40px;
}
.vk-mobile-nav-menu-btn.menu-open {
  border: none;
}
.vk-mobile-nav {
  padding-top: 50px;
}

/*contact*/


.wpcf7-submit.btn.btn-primary {
  display: block;
  margin: 30px auto;
  padding: 0.75em 1em;
  width: 80%;
   text-align: center;
  font-weight: bold;
  font-size: 1.1rem;
  border-radius: 40px;
  background: linear-gradient(
    135deg,
    #7fae17,
    #b9dc3f,
    #f0f9a8,
    #bed863,
    #9fbe00,
    #6a960f
  );
  background-size: 200%;
  background-position: left;
  color: #333 !important;
  border: 1px solid #333;
  transition: background-position 0.5s ease, box-shadow 0.3s ease;
  box-shadow: none;
  cursor: pointer;
}

/* hover時 */
.wpcf7-submit.btn.btn-primary:hover {
  background-position: right;
  box-shadow: 0 4px 15px rgba(127, 174, 23, 0.4);
}

/*ボタン*/

.vk_post_btn{

  margin: 30px auto;
  padding: 0.75em 1em;

   text-align: center;
  font-weight: bold;
  font-size: 1.1rem;
  border-radius: 40px;
  background: linear-gradient(
    135deg,
    #7fae17,
    #b9dc3f,
    #f0f9a8,
    #bed863,
    #9fbe00,
    #6a960f
  );
  background-size: 200%;
  background-position: left;
  color: #333 !important;
  border: 1px solid #333;
  transition: background-position 0.5s ease, box-shadow 0.3s ease;
  box-shadow: none;
  cursor: pointer;
}


.vk_post_btn:hover{
 background-position: right;
  box-shadow: 0 4px 15px rgba(127, 174, 23, 0.4);
	  border: 1px solid #333;
}

/*news*/

.sub-section #block-5,.sub-section #block-7,.sub-section #block-9{
	margin-bottom:0;
}

.sub-section h3{
	margin-bottom:0;
}

