/**
 * Theme Name: Blocksy Child
 * Description: Blocksy Child theme
 * Author: Creative Themes
 * Template: blocksy
 * Text Domain: blocksy
 */

/****************************************
/ 共通
/****************************************/
/* パンくずリスト */
.hero-section {
  padding-left: 10%;
  padding-top: 10px;
  padding-bottom: 10px;
  margin: 0 !important;
}

.hero-section [itemprop="name"] {
  font-size: 15px;
}

/* トップページ内、ページトップボタン */
.page_top_btn {
  color: #ffffff !important;
  text-align: center;
  font-size: 1.5rem !important;
}

/* サイトマップの投稿、タグを非表示 */
.sitemap-post,
.sitemap-news {
  display: none !important;
}

/****************************************
/ ヘッダー部
/****************************************/
/* 左右の余白設定 */
[data-sticky="fixed:shrink"],
[data-sticky="yes:shrink"] {
    padding-left: 5%;
    padding-right: 5%;
    background-color: #FFF;
}

 /* ヘッダー全体のユーティリティブロック */
.custom-header-utility {
  display: flex;
  align-items: center;
  gap: 16px;
  background-color: #f4f4f4;
  padding: 6px 14px;
  border-radius: 12px;
  position: relative;
}

/* 各リンクボタン */
.header-btn {
  display: flex;
  align-items: center;
  gap: 6px;
  text-decoration: none;
  font-weight: bold;
  color: #222;
  font-size: 13px;
  transition: opacity 0.2s ease-in-out;
}

.header-btn:hover {
  opacity: 0.8;
}

/* アイコン部分（画像） */
.header-btn .icon img,
.header-search .icon img {
  width: 23px;
  height: 23px;
  display: block;
}

/* 検索フォーム */
.header-search {
  display: flex;
  align-items: center;
  border: 1px solid #ccc;
  border-radius: 4px;
  overflow: hidden;
  background-color: white;
  height: 32px;
}

.header-search input[type="search"] {
  border: none;
  padding: 6px 10px;
  font-size: 13px;
  outline: none;
  background: none;
  width: 200px;
}

.header-search button {
  background: none;
  border: none;
  padding: 5px 8px;
  cursor: pointer;
}

.header-search button img {
  width: 16px;
  height: 16px;
}

/* メニューアイコン */
.inside-header {
  position: absolute;
  bottom: 0;
  right: 0;
  transform: translate(130%, 60%);
  width: 56px;
  height: 56px;
  background-color: #003366;
  border-radius: 50%;
  z-index: 999;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  color: #fff;
  font-size: 12px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
}

/* ハンバーガーアイコン */
.inside-header .hamburger-icon {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.inside-header .hamburger-icon span {
  display: block;
  width: 20px;
  height: 2px;
  background-color: #fff;
  border-radius: 1px;
}

/****************************************
/ トップページ
/****************************************/
/* 共通 */
.top_title_group {
  margin-left: 0;
  min-height: 200px !important;
}

.top_title {
  position: relative; 
  margin-left: 30px;
  z-index: 1;
}

.top_furigana {
  position: relative; 
  margin-top: -40px !important;
  z-index: 1;
}

.top_title_diamond {
  position: absolute;
  top: -10px;
  left: 0;

  img {
    width: 150px !important;
  }
}

/* トップ動画 */
.video-background-wrapper {
  position: relative;
  width: 100vw;
  height: 89vh;
  /* aspect-ratio: 16 / 9; */
  max-width: 100%;
  overflow: hidden;
}

.bg-video {
  width: 100%;
  height: 100%;
  object-fit: fill;
}

.topicon {
  position: absolute;
  width: 20vw;
  transform: translate(-50%, -50%);
  z-index: 10;
}

.topicon img {
  object-fit: contain;
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  transition: opacity 0.3s ease;
}

.topicon .normal {
  opacity: 1;
  animation: bounce-up 1.5s ease-in-out infinite;
}

.topicon .hover {
  opacity: 0;
}

.topicon:hover .normal {
  opacity: 0;
}

.topicon:hover .hover {
  opacity: 1;
}

/* 防災システム・セキュリティ */
.icon-01 {
  top: 17vh;
  left: 82.7vw;
}

/* 環境エネルギーシステム */
.icon-02 {
  top: 3vh;
  left: 66.5vw;
}

/* 電気設備 */
.icon-03 {
  top: 12vh;
  left: 47vw;
}

/* 情報通信設備 */
.icon-04 {
  top: 26vh;
  left: 26.5vw;
}

/* ソリューションサービス */
.icon-05 {
  top: 25vh;
  left: 55vw;
}

/* 空調・衛生設備 */
.icon-06 {
  top: 50vh;
  left: 67.5vw;
}

/* 企業情報 */
.icon-07 {
  top: 45vh;
  left: 26.5vw;
}

@keyframes bounce-up {
  0%, 100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-10px);
  }
}

.top_catch,
.top_logo {
  position: absolute;
  transform: translate(-50%, -50%);
  z-index: 10;
}

.top_catch {
  bottom: 5vh;
  right: -12vw;
  width: 30vw;
}

.top_logo {
  bottom: 5vh;
  right: -2vw;
  width: 12vw;
}

/* トップページの展開メニュー */

/* 初期状態は非表示 */
.overlay {
  display: none;
  position: fixed;
  top: 95px;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(255,255,255,0.95);
  z-index: 9999;
  text-align: center;
  background-color: #cce9f9;
}

/* トップページ以外では、ヘッダーメニューボタンを非表示にする */
body:not(.home) .menu-circle {
  display: none !important;
}

/* 画面縮小時の縦スクロールバー表示 */
#overlay-menu {
  min-height: 100vh !important;
  overflow-y: auto;
}

/* About us */
.aboutus_diamond {
  position: absolute;
  top: 12px;
  left: 10px;
  z-index: 0;
}

.aboutus_list_buton a:hover {
    background: #1d2087 !important;
    color: #FFF !important;
    border-color: none !important;
}

.aboutus_list_buton a::after {
  content: '>';
  position: absolute;
  right: 1em;
  top: 50%;
  transform: translateY(-50%);
  font-weight: bold;
}

.aboutus_buttons {
  margin-top: -50px !important;
}

.aboutus_detail_group {
  position: relative; 
  z-index: 1;
  height: 450px !important;
  margin-top: -100px !important;
}

.aboutus_detail {
  margin-top: 150px !important;
  margin-left: 40px !important;
}

.aboutus_diamond {
  position: absolute;
  top: -13vh;
  left: 41vw;
  width: 40vw !important;
  height: auto;
  z-index: -1;
}

.aboutus_office {
  margin-left: 300px !important;
  margin-top: -100px !important;
}

/* Our Buisiness */
/* 画像ホバー時の拡大無効化対応 */
.ourbusiness_parent a.wp-block-group-vk-link {
  pointer-events: none;
}

.ourbusiness_card_row {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 16px;
}

.ourbusiness_card_col_group {
  width: 100%;              
  height: 100%;            
  overflow: hidden;         
  border-radius: 20px;
}

.ourbusiness_card_col {
  cursor: pointer;
}

.ourbusiness_card_col img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 0;
  position:relative;
}

.ourbusiness_card_col h2 {
  z-index: 1;
  position:relative;
}

.ourbusiness_card_img {
  transition: transform 0.5s ease;
}

.ourbusiness_card_img:hover {
  transform: scale(1.2);
}

/* News&Topics */
.news_diamond {
  position: absolute;
  top: -120px;
  right: 0;
  /* left: 1500px !important; */
  z-index: 0;
  display: inline-block;
}

.newstopics_newslist_link {
  position: relative;
  z-index: 1;
}

.newstopics_content_col3 {
  position: relative;
  z-index: 1;
}

/* company */
.company_content_col1 {
  padding-top: 0px !important;
  padding-bottom: 0px !important;
  margin-top: 0px !important;
  margin-bottom: 0px !important;
}

.company_diamond {
  position: absolute;
  top: -3vh;
  right: 1vw;
  transform: translateX(50%); /* 要素の幅の半分だけ左に引く */
}

/* recruit */
.recruit_diamond {
  position: absolute;
  top: 0vh;
  right: -10vw;
  transform: translateX(50%); /* 要素の幅の半分だけ左に引く */
  z-index: 0;
}

.recruit_group_img {
  display: none;
}

.recruit_cover img {
  object-fit: contain !important;
}

.recruit_button_youtube a::after {
  content: '>';
  position: absolute;
  right: 1em;
  top: 50%;
  transform: translateY(-50%);
  font-weight: bold;
}

.recruit_footer {
  width: 63% !important;
  left: -5.5vw !important;
}

.recruit_button_entry {
  width: 100% !important;
  margin-top: 10px !important;
}

/* 問い合わせ */
.contact_parent {
  height: 100vh;
  background-size: 100% auto !important;
  background-repeat: no-repeat !important;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  margin-bottom: -13vw  !important;
}

/* フッター */
.ct-footer .ct-container {
  padding-left: 30px !important;
}

.footer_logo {
  margin-bottom: 5px !important;
}

.ct-footer {
  position: relative !important;
  z-index: 10 !important;
}

.ct-footer div[data-row="bottom"] {
  background-color: #014198 !important;
  text-align: center !important;
  height: 40px !important;
  padding: 0 !important;
  margin: 0 !important;
}

.ct-footer div[data-row="bottom"] .ct-container {
  padding-top: 10px !important;
}

.ct-footer div[data-row="middle"] .ct-container {
  padding: 0 !important;
  padding-right: 100px !important;

  p {
    border-left: #ccc 1px solid;
    padding-left: 15px;
  }
}

/* お知らせ */

/* CTA */
.veu-cta-block {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

@media screen and (max-width: 768px) {
  /****************************************
  / 共通
  /****************************************/
  /* パンくずリスト */
  .hero-section {
    padding-left: 1%;
    padding: 0;
  }
  /****************************************
  / ヘッダー
  /****************************************/
  /* 左右の余白設定 */
  [data-sticky="fixed:shrink"],
  [data-sticky="yes:shrink"] {
      padding: 0;
  }

  .site-title-container .site-title a {
    font-size: 1.5rem;
  }

  /****************************************
  / トップページ
  /****************************************/
  /* 共通 */
  body .sp_margin0 {
    margin: 0 !important;
  }
  body .sp_padding0 {
    padding: 0 !important;
  }

  .top_title_group {
    min-height: 1px !important;
  }

  .top_title_diamond img {
    width: 80px !important;
  }

  .kb-table-container {
    max-width: 100% !important;
  }

  .kb-table,
  .kb-table tbody,
  .kb-table tr,
  .kb-table td {
    display: block;
    width: 100%;
  }

  .kb-table tr,
  .kb-table td {
    border: 1px solid lightgray !important;
  }

  .kb-table tr {
    border: none !important;
  }

  /* 新卒採用の見出しセルの幅を広げる */
  .kb-table td:nth-of-type(1) {
    width: 100% !important;
  }

  /* トップ動画 */
  .video-background-wrapper {
    background-color: #19ace4;
    height: 93vh;
  }

  .bg-video {
    height: 40%;
    object-fit: cover;
    object-position: center;
    position: relative;
    top: 30vh;
    border-bottom: none;
  }

  .topicon {
    display: none;
  }

  .top_catch {
    top: 100px;
    left: 50%;
    width: 300px;
  }

  .top_logo {
    top: 130px;
    left: 50%;
    width: 100px;
  }
  
  /* About us */
  .aboutus_col1 {
    margin-bottom: -50px !important;
  }

  .aboutus_col2 {
    margin-bottom: 50px !important;
  }

  .aboutus_col2 img {
    margin-top: 70px !important;
    margin-left: -50px !important;
    z-index: 0;
    max-width: 50%;
  }

  .aboutus_detail {
    position: relative;
    font-size: 16px !important;
    margin-top: 0 !important;
  }

  .aboutus_diamond {
    margin-top: 200px !important;
    z-index: 0;
  }

  .aboutus_detail_group {
    margin-bottom: 0 !important;
    height: 200px !important;
    margin-top: 10px !important;
  }

  .aboutus_buttons {
    position: relative;
    z-index: 1;
  }

  .aboutus_list_buton a {
    font-size: 13px !important;
  }

  .aboutus_button_col {
    padding-left: 20px !important;
    padding-right: 20px !important;
  }

  /* Our Buisiness */
  .ourbusiness_col1 {
    margin-bottom: -30px !important;
    margin-left: -30px;
  }

  .ourbusiness_diamond {
    top: -1vh;
    left: 70vw;
    width: 30vw !important;
    height: auto;
    z-index: 0;
  }

  .ourbusiness_detail {
    position: relative;
    font-size: 14px !important;
    margin-top: 0px !important;
    padding-top: 0px !important;
  }

  .ourbusiness_col2 {
    padding-top: 0px !important;
  }

  .ourbusiness_card_row {
    grid-template-columns: repeat(2, 1fr) !important;
    max-width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  .ourbusiness_card_col h2 {
    font-size: 11px !important;
  }

  .sp_margin0 {
    max-width: 100% !important;
  }

  /* News&Topics */
  .news_diamond {
    width: 100px;
    height: 100px;
    top: -30px;
    position: absolute;
    z-index: 0;
  }

  .news_detail_group {
    margin: 0 !important;
  }

  .news_detail_col2_left {
    flex-basis: 100% !important;
    max-width: 100% !important;
  }

  .news_detail_col2_left img {
    width: 100% !important;
    height: auto !important;
    max-width: none !important;
  }

  .news_detail_col2_right {
    flex-basis: 100% !important;
    max-width: 100% !important;
  }

  .news_detail {
    font-size: 10px !important;
  }

  /* 投稿リスト（flex）のカラム間隙間を調整 */
  .news_parent .wp-block-columns.is-layout-flex {
    gap: 0.5em !important;
  }

  /* company */
  .company_col1 {
    margin-top: 30px !important;
  }

  .company_col3 {
    margin-left: -50px !important;
  }

  .company_detail_col1 {
    position: relative;
    z-index: 1;
    padding-left: 0px !important;
  }

  .company_diamond {
    position: absolute;
    top: 5vh;
    margin-left: 10px !important;
    transform: translateX(0%);
    z-index: 0;
    transform: scaleY(-1); /* ← 上下反転 */
    width: 200px !important;
  }

  /* recruit */
  .recruit_detail_col_left {
    margin-bottom: 70px !important;
    padding-left: 0px !important;
    order: 2;
  }

  .recruit_group_cover {
    display: none;
  }

  .recruit_group_img {
    display: flex;
    flex-direction: column;
    flex-wrap: nowrap;
    order: 1;
    .recruit_button_youtube {
      max-width: 48%;
      max-width: none;
      flex: 1 1 auto;
    }
    .recruit_button_youtube a {
      display: flex;
      text-align: center;
      white-space: nowrap; /* テキストの折り返し防止 */
      font-size: 13px;
      padding: 10px 10px;
    }
  }

  .recruit_diamond img {
    margin-top: 100px !important;
    margin-right: 200px !important;
    max-width: 400px;
    width: 80vw !important;
    height: auto !important;
    left: 50% !important;
    right: auto !important;
    transform: translateX(-60%) !important;
  }

  .recruit_col3 {
    margin-bottom: 30px !important;
    padding: 0% !important;
  }

  .recruit_footer {
    max-width: 100% !important;
    gap: 10px;
    align-items: flex-start;
    padding: 20px;
    width: 800px !important;
    left: 0px !important;
    .recruit_footer h2 {
      margin: 0 !important;
      font-size: 16px;
      white-space: nowrap;
    }
    .recruit_footer p {
      margin: 0;
      font-size: 16px;
    }
    .recruit_footer a {
      margin-top: 20px !important;
      font-size: 16px;
    }
    .recruit_button_entry {
      margin-top: 0px !important;
    }
  }

  /* お問い合わせ */
  .contact_parent {
    margin-bottom: 0 !important;
    height: 300px !important;
    background-size: 250% !important;
    background-position: center 30% !important;
  }

  .page_inquiry_group div,
  .page_recruitment_group div {
    max-width: 90% !important;
  }

  /* フッター */
  .ct-footer .ct-container {
    padding: 15px 25px !important;
  }

  .ct-footer-copyright {
    font-size: 70% !important;
  }

  /* プライバシーポリシー */
  .page_policy_group div {
    max-width: 90% !important;
  }
}

/* wordpress標準セレクタ打ち消し用 */
@media (max-width: 781px) {
  .wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column {
    flex-basis: auto !important;
  }

  .ct-breadcrumbs {
    margin-left: 30px; /* パンくずリストを調整 */
  }

  .hero-section {
    margin-bottom: 0 !important; /* パンくずリスト下の余白を調整 */
  }

  /* フッター文字列：”お仕事のご依頼・ご相談などお気軽にご相談ください” */
  .wp-elements-0d4c503d815cb737eb2b232eef41ffa3 {
    text-align: center !important;
  }
  /* フッター文字列：”電話でのお問合せ　tel.096-379-2181　09:00～18:00(土曜・日曜・祝日除く)” */
  .wp-elements-d5a79b04a64ecea9a5fadc910c6f5937 {
    text-align: center !important;
  }

  /* フッター文字列：”Webでのお問合せ” */
  .wp-elements-cf65544179564c0c0beedc9bb4a735bc {
    text-align: center !important;
  }
}