@charset "UTF-8";
/* ========================  
reset
========================= */
*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}
html,
body {
  height: 100%;
  font-family: "Noto Sans JP", sans-serif;
  color: #2b2b2b;
}
img {
  max-width: 100%;
  height: auto;
  display: block;
  box-sizing: border-box;
}
ul,
ol {
  list-style: none;
}
a {
  text-decoration: none;
  color: inherit;
}

/* ========================  
SWELL デフォルト余白をリセット
========================= */
/* -- 投稿本文のリセットとブロック間余白-- */
.post_content {
  padding: 0 !important;
}
.post_content > * {
  clear: both;
  margin-bottom: 0 !important;
}

.l-content {
  margin: 0 auto 0em !important;
  padding-top: 0em;
  position: relative;
  z-index: 1;
}

/* -----------------------------
   本文エリアだけ中央寄せ・幅制御
----------------------------- */
.l-article,
.l-article .post_content {
  max-width: 1080px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  box-sizing: border-box;
}
/* SP用余白調整*/
@media screen and (max-width: 767px) {
  .l-article,
  .l-article .post_content {
    padding-left: 0px;
    padding-right: 0px;
  }
  .l-container {
    padding-left: 30px;
    padding-right: 30px;
  }

  .l-content {
    margin: 0 auto 0em;
    position: relative;
    z-index: 1;
  }
}

/* -----------------------------
   カスタマイザーオーバーレイとヘッダーバー非表示
----------------------------- */
.wp-customizer {
  display: none !important;
}
.l-header__barInner.l-container {
  display: none !important;
}

/* ========================  
  （共通パーツ）セクション
========================= */
/*header分の高さ調整*/

.l-mainContent {
  padding-top: 100px;
}
@media (max-width: 960px) {
  .l-mainContent {
    padding-top: 70px;
  }
}

/*セクション間の余白*/
.section__container {
  margin-top: 80px;
}
@media (max-width: 767px) {
  .section__container {
    margin-top: 60px;
  }
}

.wp-block-media-text.section__container {
  margin-top: 80px !important;
}

/* セクション見出し */
.section_ttl {
  display: flex;
  gap: 20px !important;
  align-items: center;
  max-width: 1080px;
  margin: 0 !important;
  text-align: left;
  box-sizing: border-box;
  letter-spacing: 0.03em;
}
@media (max-width: 767px) {
  .section_ttl {
    display: flex;
    flex-direction: column;
    line-height: 0.5;
    align-items: flex-start;
    gap: 10px !important;
    text-align: left !important;
    justify-content: flex-start !important;
  }
}

.section_ttl .custom-width-1080 {
  align-items: center;
  display: flex;
}
.section_ttl--en {
  font-size: 64px;
  font-weight: 800;
  color: #1e50a2;
  background-color: transparent !important;
  letter-spacing: 0.03em;
}
@media (max-width: 767px) {
  .section_ttl--en {
    font-size: 30px !important;
  }
}
.section_ttl--jp {
  display: flex;
  align-items: center;
  font-size: 30px;
  font-weight: 600;
  color: #2b2b2b;
  background-color: transparent !important;
  gap: 20px;
  letter-spacing: 0.03em;
}
@media (max-width: 767px) {
  .section_ttl--jp {
    font-size: 20px;
  }
}
/* ========================  
SPサイズの時の微調整（タイトル部分）
========================= */
@media (max-width: 767px) {
  .section_ttl--jp .line {
    margin-right: 0px;
    width: 30px;
  }
}
/* ========================  
   ボタン設定 共通
========================= */
.wp-block-button__link {
  color: #fff;
  background-color: #1e50a2;
  border-radius: 9999px;
  box-shadow: none;
  text-decoration: none;
  font-size: 1.125em;
  position: relative;
  display: inline-flex;
  align-items: center;
  padding-right: 3em; /* 矢印分の余白 */
  transition: 0.3s;
  border: 1px solid #1e50a2;
  max-width: 300px;
  width: 100%;
}

/* hover時の本体 */
.wp-block-button__link:hover {
  background-color: #fff;

  color: #1e50a2;
}

/* 矢印の棒の部分 */
.wp-block-button__link::before {
  background-color: #fff;
  position: absolute;
  top: 50%;
  right: 20%;
  width: 24px;
  height: 2px;
  margin-top: 0;
  content: "";
  transition: 0.3s;
}

/* 矢印の先端部分 */
.wp-block-button__link::after {
  position: absolute;
  top: 50%;
  right: 20%;
  width: 12px;
  height: 12px;
  margin-top: -5px;
  transform: rotate(45deg);
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
  content: "";
  display: inline-block;
  vertical-align: middle;
  transition: 0.3s;
}

/* hover時の矢印部分の色反転 */
.wp-block-button__link:hover::before {
  background-color: #1e50a2;
}

.wp-block-button__link:hover::after {
  border-top: 2px solid #1e50a2;
  border-right: 2px solid #1e50a2;
}

.wp-block-buttons {
  border: 2px solid transparent;
  text-align: center;
}
/* ========================  
   （各セクション)ボタン設定
========================= */
.service-btn .wp-block-button__link {
  display: inline-block;
  width: 300px;
  text-align: center;
  padding-top: 17px;
  padding-bottom: 17px;
  font-size: 20px;
}
.works-btn .wp-block-button__link {
  display: inline-block;
  width: 300px;
  padding-top: 17px;
  padding-bottom: 17px;
  font-size: 20px;
}
.company-btn .wp-block-button__link {
  display: inline-block;
  width: 300px;
  padding-top: 17px;
  padding-bottom: 17px;
  font-size: 20px;
}
.recruit-btn .wp-block-button__link {
  display: inline-block;
  width: 300px;
  padding-top: 17px;
  padding-bottom: 17px;
  font-size: 20px;
}
@media screen and (max-width: 767px) {
  .wp-block-buttons.recruit-btn {
    display: flex;
    justify-content: center;
  }
}
.section_ttl--jp .line {
  display: inline-block;
  width: 20px;
  height: 1px;
  background-color: #2b2b2b;
  margin: 0 !important;
}
@media (max-width: 767px) {
  .section_ttl--jp .line {
    display: none !important;
  }
}
.services h2,
.services .section_ttl,
.services .section_ttl span:not(.line),
/* .line を除外 */
.works h2,
.works .section_ttl,
.works .section_ttl span:not(.line) {
  /* ← .line を除外 */
  background-color: transparent !important;
  margin: 0;
  letter-spacing: 0.03em;
}
.post_content
  h2:where(:not([class^="swell-block-"]):not(.faq_q):not(.p-postList__title)) {
  padding: 0;
  line-height: 1.3;
}

.post_content
  h2:where(:not([class^="swell-block-"]):not(.faq_q):not(.p-postList__title)) {
  padding-left: 2%;
}

.service-subttl {
  font-size: 30px !important;
  font-weight: 700 !important;
  letter-spacing: 0.05em !important;
  margin-left: 0.2em !important;
  margin-top: 60px !important;
}
@media (max-width: 767px) {
  .service-subttl {
    font-size: 24px !important;
    margin-top: 24px !important;
    margin-bottom: 12px !important;
    padding-bottom: 20px !important;
  }
}

.greeting {
  font-size: 30px !important;
  font-weight: 700 !important;
  letter-spacing: 0.05em !important;
  background-color: #fdfdfd !important;
  margin-top: 60px !important;
  margin-bottom: 30px !important;
}
@media (max-width: 767px) {
  .greeting {
    font-size: 24px !important;
    margin-top: 30px !important;
    margin-bottom: 0px !important;
    padding-bottom: 20px !important;
  }
}

/* ========================
各セクションのサブタイル（ｈ3）設定
========================= */

h3 {
  font-size: 30px !important;
  font-weight: 700;
  letter-spacing: 0.05em;
  margin: 0px !important;
  padding: 0px !important;
}
@media (max-width: 767px) {
  h3 {
    font-size: 24px !important;
  }
}

/* ========================
  HEADER（共通設定）
========================= */
.l-header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100px;
  background: #fff;
  z-index: 9999;
  transition:
    transform 0.4s ease,
    opacity 0.3s ease;
}

/* ▼ スクロール時の非表示 */
.l-header.hide {
  transform: translateY(-100%);
  opacity: 0;
}

/* ▼ 再表示 */
.l-header.show {
  transform: translateY(0);
  opacity: 1;
}

/* 内側レイアウト */
.l-header__inner {
  max-width: none;
  margin: 0 auto !important;
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  padding: 9px 26px !important;
}

/* ロゴ縮小対策 */
.l-header.is-fixed .c-headLogo img {
  transform: none !important;
  height: auto !important;
}

/* ========================
  PCナビ
========================= */
.c-gnav {
  align-items: center;
}

.c-gnav > .menu-item > a {
  display: flex;
  padding: 0;
  text-align: center;
  padding-bottom: 6px;
}

.c-gnav li {
  margin-right: 40px;
}

.c-gnav li:last-child a {
  margin-right: 0;
  border: 1px solid #1e50a2;
  background-color: #1e50a2;
  color: #fff;

  border-radius: 50px;
  width: 200px;
  height: 50px;
  text-align: center;
  transition: all 0.3s ease;
  display: flex;
  justify-content: center;
  align-items: center;
}

.c-gnav li:last-child a:hover {
  background-color: #fff;
  color: #1e50a2;
}

/* PCナビ文字 */
.c-gnav > .menu-item > a .ttl {
  font-size: 20px;
  font-weight: 500;
}

.c-gnav > .menu-item > a:after {
  bottom: -10px;
  content: "";
  display: block;
  left: 0;
  position: absolute;
  transition:
    width 0.25s,
    height 0.25s,
    -webkit-transform 0.25s;
  transition:
    transform 0.25s,
    width 0.25s,
    height 0.25s;
  transition:
    transform 0.25s,
    width 0.25s,
    height 0.25s,
    -webkit-transform 0.25s;
}

/* お問い合わせ（最後のメニュー）だけ下線( after )を消す */
.c-gnav li:last-child a::after {
  content: none !important;
  display: none !important;
}

/* ========================
  SP表示調整
========================= */
@media screen and (max-width: 959px) {
  .l-header {
    height: 70px;
    padding-bottom: 0;
  }

  /* 内側レイアウト（SP） */
  .l-header__inner {
    height: 70px;
    flex-direction: row-reverse;
    justify-content: space-between;
    align-items: center;
    padding: 0 !important;
  }

  /* ロゴ */
  .c-logo img {
    max-height: 50px;
    width: auto;
  }

  /* ハンバーガーアイコン */
  .c-iconBtn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 50px;
    height: 50px;
  }

  /* 中央線 */
  .c-iconBtn.-menuBtn .c-iconBtn__icon {
    position: relative;
    width: 40px;
    height: 1px;
    background: #2b2b2b;
    border-radius: 2px;
  }

  /* 上下の線 */
  .c-iconBtn.-menuBtn .c-iconBtn__icon::before,
  .c-iconBtn.-menuBtn .c-iconBtn__icon::after {
    content: "";
    position: absolute;
    left: 0;
    width: 100%;
    height: 1px;
    background: #2b2b2b;
    border-radius: 2px;
  }

  .c-iconBtn.-menuBtn .c-iconBtn__icon::before {
    top: -12px;
  }

  .c-iconBtn.-menuBtn .c-iconBtn__icon::after {
    top: 12px;
  }
}

/* 不要要素の非表示（SP含む） */
.l-header__customBtn.sp_,
.c-iconList__item.-search {
  display: none !important;
}

/* ========================
  その他の微調整
========================= */
.top #content {
  padding-top: 0 !important;
}

/*ハンバーガーアイコンクリック時の余白調整*/
.c-widget__title.-spmenu {
  padding: 0.5em 0.75em;
  border-radius: var(--swl-radius--2, 0px);
  background: var(--color_main);
  color: #fff;
  margin-top: 30px !important;
}

/* ========================  
メインビジュアル設定
========================= */

@media (max-width: 960px) {
  body.page-id-66 .l-mainContent {
    padding-bottom: 0 !important;
  }
}

.post_content > .fv {
  width: 100vw;
  margin-left: 50%;
  transform: translateX(-50%); /* 中央揃え */
  max-width: none; /* コンテンツ幅制限を解除 */
}

/* FV全体：ヘッダー分を引いた高さにする */
.fv {
  position: relative;
  height: calc(100svh - 100px);
  overflow: hidden;
}

@media (max-width: 880px) {
  .fv {
    height: calc(100svh - 70px);
  }
}

/* 画像をFV全面に敷く */
.fv-img {
  position: absolute;
  inset: 0;
}

.fv-img picture,
.fv-img img {
  width: 100%;
  height: 100%;
  display: block;
}

.fv-img img {
  object-fit: cover;
  object-position: center; /* 見切れ調整したいならここを変える */
}

/* スローガン：左下の白ボックス */
.fv__slogan {
  position: absolute;
  z-index: 1;
  left: 0;
  bottom: 0;
  background: #fff;
  border-radius: 0 28px 0 0;
  padding: clamp(14px, 2vw, 26px) clamp(18px, 3vw, 44px);
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.14);
}

@media (max-width: 880px) {
  .fv__slogan {
    width: 92%;
    max-width: 340px;
  }
}

/* 上段（青） */
.slogan--blue {
  margin: 0;
  color: #1f4ea6;
  font-weight: 700;
  font-size: 46px;
  font-weight: bold;
  line-height: 1.25;
  letter-spacing: 0.02em;
}

/* 下段（黒・太め） */
.slogan--bk {
  margin: 0.25em 0 0;
  color: #111;
  font-weight: 800;
  font-size: 50px;
  line-height: 1.1;
  letter-spacing: 0.02em;
}

@media (max-width: 880px) {
  /* 上段（青） */
  .slogan--blue {
    font-size: 24px;
  }

  /* 下段（黒・太め） */
  .slogan--bk {
    font-size: 30px;
    font-weight: bold;
  }
}

/* スマホだけ改行 */
.sp-br {
  display: none;
}
@media (max-width: 767px) {
  .sp-br {
    display: inline;
  }
}

/* スマホだけ改行 */
.sp-top-br {
  display: none;
}
@media (max-width: 880px) {
  .sp-top-br {
    display: block;
  }
}

/* ========================  
 About
========================= */

.about .section_ttl {
  background-color: transparent !important;
}

.wp-block-columns .about.section__container {
  margin-top: 80px !important; /* PC用 */
}

@media (max-width: 767px) {
  .wp-block-columns .about.section__container {
    margin-top: 60px !important; /* SP用 */
  }

  .has-text-align-center.sp_only {
    text-align: center;
  }
}

.post_content > * {
  font-size: 20px;
}
@media (max-width: 767px) {
  .post_content > * {
    font-size: 16px;
  }
}

/* 管理ボード上で設定したクラス名（デバイスの制限のところ) */
.pc_only {
  margin-top: 13px;
}
.wp-block-columns {
  --wp-column-gap: 1.5em;
  gap: var(--wp-column-gap) !important;
  line-height: 1.5;
}
.c-tabBody__item > *,
.cap_box_content > *,
.faq_a > *,
.swell-block-accordion__body > *,
.swell-block-dl__dd > *,
.swell-block-step__body > *,
.swl-has-mb--s > *,
.wp-block-column > *,
.wp-block-cover__inner-container > *,
.wp-block-group__inner-container > *,
.wp-block-media-text__content > *,
div[class*="is-style-"] > * {
  margin-bottom: 0em;
} /* spサイズのテキスト余白設定 */
.has-text-align-center.sp_only:nth-of-type(1) {
  padding-bottom: 0px;
}
.has-text-align-center.sp_only:nth-of-type(2) {
  padding-bottom: 0px;
}
.about .section_ttl--jp {
  padding-top: 10px;
}
.has-text-align-center.pc_only {
  padding-top: 40px;
}

.has-text-align-center.sp_only {
  padding-top: 20px;
}

/* ▼ SWELL の sp_only / pc_only を 767px で切替える */

/* 初期状態：pc_only＝非表示、sp_only＝非表示にしておく */
.pc_only,
.sp_only {
  display: none !important;
}

/* 768px以上＝PC表示 */
@media screen and (min-width: 768px) {
  .pc_only {
    display: block !important;
  }
}

/* 767px以下＝SP表示 */
@media screen and (max-width: 767px) {
  .sp_only {
    display: block !important;
    font-size: 16px !important;
  }
}

@media screen and (max-width: 364px) {
  .has-text-align-center.sp_only br {
    display: none !important;
    text-align: left !important;
  }
}

/* ========================
  Services セクション
========================= */

/* ----- 背景付き全幅ラップ ----- */
.full-width-bg {
  width: 100vw;
  margin-left: calc(-50vw + 50%);
  background-color: #f4f2eb;
  position: relative;
  padding: 80px 35px;
}
@media screen and (max-width: 768px) {
  .full-width-bg {
    padding: 50px 0;
  }
}

/* ----- サービス全体 ----- */
.services {
  box-sizing: border-box;
  max-width: 1080px;
  margin: 0 auto;
}
@media screen and (max-width: 768px) {
  .services {
    padding-bottom: 0;
  }
}

/* ----- サービスタイトル ----- */
.services .section_ttl {
  margin-bottom: 20px !important;
}
.services .section_ttl--jp {
  padding-top: 10px;
}

/* 814px以下 → 折り返し防止のため26pxに縮小 */
@media (max-width: 814px) {
  .services .section_ttl--jp {
    font-size: 26px;
  }
}
@media screen and (max-width: 767px) {
  .services .section_ttl--jp {
    padding-top: 0px;
    font-size: 20px;
  }
}
@media screen and (max-width: 767px) {
  .services .section_ttl {
    padding: 0px 30px;
    gap: 0 !important;
  }
}

/* ----- サービスリスト ----- */
.services ul {
  display: flex;
  flex-wrap: wrap;
  row-gap: 22px;
  column-gap: 43px;
  padding: 0;
  justify-content: center;
  list-style: none;
}
@media screen and (max-width: 768px) {
  .services ul {
    column-gap: 30px;
    row-gap: 20px;
  }
  .post_content li {
    line-height: 1.5;
    margin: 0;
    position: relative;
  }
}
@media screen and (max-width: 570px) {
  .services ul {
    column-gap: 10px;
    row-gap: 5px;
  }
}

/* ----- 各サービスアイテム ----- */
.service-item {
  flex: 1 1 calc(33.33% - 30px);
  max-width: 330px;
  width: 100%;
}
@media screen and (max-width: 768px) {
  .service-item {
    flex: 1 1 calc(50% - 10px);
    max-width: 170px;
  }
}

/* ----- 画像ラップ ----- */
.service-image {
  position: relative;
  display: inline-block;
  width: 330px;
  height: auto;
}
.service-image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  cursor: pointer;
  transition: all 0.3s;
  max-height: 240px;
}
@media screen and (max-width: 768px) {
  .service-image {
    width: 170px;
  }
}

/* ----- 黒マスク ----- */
.mask {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.4);
  z-index: 1;
}

/* ----- マスク上のテキスト ----- */
.service-text {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  color: #fdfdfd;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  pointer-events: none;
  z-index: 2;
}

/* サービスタイトルテキスト */
.service-title {
  position: absolute;
  top: 10px;
  left: 50%;
  transform: translateX(-50%);
  font-size: 24px;
  font-weight: bold;
  text-align: center;
}
.service-title::after {
  content: "";
  display: block;
  width: 290px;
  height: 2px;
  background: #d4d4d4;
  margin: 4px auto 0;
  opacity: 0.5;
}
@media (max-width: 768px) {
  .service-title {
    font-size: 14px;
  }
  .service-title::after {
    width: 145px;
  }
}

/* サービス詳細テキスト */
.service-desc {
  font-size: 24px;
  font-weight: bold;
  text-align: center;
  padding-top: 24px;
}
@media (max-width: 768px) {
  .service-desc {
    font-size: 16px;
  }
}

/* ----- 「service」ボタン設定 ----- */
.wp-block-buttons.service-btn {
  text-align: center;
  padding-top: 60px;
}
@media (max-width: 767px) {
  .wp-block-buttons.service-btn {
    padding-top: 40px;
  }
}

/* ----- h2のbefore下線を消す ----- */
.post_content
  h2:where(
    :not([class^="swell-block-"]):not(.faq_q):not(.p-postList__title)
  )::before {
  border: none !important;
}

/* ----- サービス詳細テキスト ----- */
.services_detail-txt {
  line-height: 1.5;
}

/*111111111111*/

/* ========================
  Works セクション
========================= */

/* ----- works全体 ----- */
.works {
  box-sizing: border-box;
  max-width: 1280px;
}

/* ----- works-wrapper: テキストと画像の横並び ----- */
.works-wrapper {
  display: flex;
  align-items: stretch; /* 高さを揃える */
}

/* ----- works-wrapper-text ----- */
.works-wrapper-text {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

/* ----- works-wrapper-media ----- */
.works-wrapper-media {
  width: 100%;
  max-width: 640px;
  padding-top: 0;
  margin-left: 0;
  margin-right: calc(-50vw + 50%); /* 右側余白を削除 */
  max-width: none; /* 制限を解除 */
}

.works-wrapper-media img {
  display: block;

  height: auto;
}

/* ----- サクションテキスト ----- */
.section_text {
  margin-top: 5rem;
  font-weight: 400;
}

.section_text--orange {
  color: #f08300;
}

/* ----- worksボタン ----- */
.wp-block-buttons.works-btn {
  padding-top: 0;
}

/* ----- ttl（タイトル） ----- */
.works .section_ttl {
  display: flex;
  gap: 20px;
  align-items: center;
  flex-wrap: nowrap;
}

.works .section_ttl--en {
  font-size: clamp(30px, 6vw, 64px);
  flex-shrink: 0; /* 縮小しない */
}

.works .section_ttl--jp {
  font-size: clamp(20px, 3vw, 30px);
  white-space: nowrap;
  flex-shrink: 1;
}

/* ----- h2マージン調整 ----- */
.post_content .works .works-text-top > .section_ttl {
  margin-top: -3rem !important;
}

/* ========================
  スマホ表示（max-width: 767px）
========================= */
@media (max-width: 767px) {
  /* works全体余白調整 */
  .works.section__container {
    padding-top: 30px;
    margin-top: 0;
  }

  /* works-wrapper縦並び */
  .works-wrapper {
    flex-direction: column-reverse;
  }

  /* works-wrapper-media */
  .works-wrapper-media {
    min-width: 320px;
    margin-left: calc(-1 * var(--swl-container-padding, 30px)) !important;
    margin-right: calc(-1 * var(--swl-container-padding, 30px)) !important;
    width: 100vw !important;
    max-width: 100vw !important;
  }

  .works-wrapper-media img {
    width: 100% !important;
    height: auto;
  }

  /* セクションテキスト調整 */
  .works .section_text {
    text-align: left;
    margin-top: 0 !important;
    padding-top: 20px;
    letter-spacing: 0.03em;
  }

  /* ttlタイトル調整 */
  .works .section_ttl {
    align-items: flex-start;
    gap: 0 !important;
  }

  .works .section_ttl--jp {
    font-size: 20px;
  }

  .works .section_ttl--en {
    font-size: 30px;
  }

  /* worksボタン調整 */
  .wp-block-buttons.works-btn {
    padding-top: 40px;
    margin: auto;
  }

  /* コンテナ余白解除 */
  #content.l-content .works .l-container {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  /* h2マージン調整 */
  .post_content .works .works-text-top > .section_ttl {
    margin-top: 70px !important;
  }
}

/* ========================  
  company 
========================= */
.full-width-bg--company {
  width: 100vw;
  margin-left: calc(-50vw + 50%);
  background-image: url("https://shovel-engineer.com/kikuchisogou/wp-content/uploads/2025/10/company-bg.png");

  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  position: relative;
}
@media (max-width: 767px) {
  .full-width-bg--company {
    margin-top: 60px;
  }
}
.company-innner-wrapper {
  max-width: 1080px;
  margin: auto;

  box-sizing: border-box;
  position: relative;

  width: 100%;
}
@media (max-width: 767px) {
  .company-innner-wrapper {
    padding-top: 0px;
    padding-bottom: 0px;
    flex-direction: column;
  }
}

/*細かい余白は後で調整する*/
.company_textArea {
  color: #fdfdfd;
  display: flex;
  flex-direction: row;
  gap: 172px;
  padding-top: 275px;
  padding-bottom: 80px;
}

@media (max-width: 1140px) {
  .company_textArea {
    flex-direction: column;
    padding-top: 160px;
    padding-bottom: 60px;
    gap: 50px;
    padding-left: 30px;
    padding-right: 30px;
  }
}
.company_ttl {
  font-size: 30px;
  font-weight: 700;
  letter-spacing: 0.05em;
}
@media (max-width: 767px) {
  .company_ttl {
    font-size: 22px;
  }
}
.company-btn {
  align-self: flex-end;
  /* text-wrapperに対して右端 */
  margin-top: 60px;
}

.company_desc-wrapper {
  padding-top: 167px;
  position: relative; /* ボタンを右寄せするための基準 */
  font-weight: 400;
  font-size: 20px;
  letter-spacing: 0.03em;
}

@media (max-width: 767px) {
  .company_desc.sp-only {
    font-size: 16px;
    letter-spacing: 0.03em;
  }
}

@media (max-width: 767px) {
  .company_desc-wrapper {
    padding-top: 10px;
  }
}

.company_desc-wrapper--second {
  padding-top: 50px;
}

.company-btn {
  margin-top: 60px;
  display: flex;
  justify-content: flex-end; /* ボタンを右端に寄せる */
}
@media (max-width: 767px) {
  .company-btn {
    justify-content: center;
  }
}

.pc-only {
  display: block;
}
.sp-only {
  display: none;
}

@media (max-width: 767px) {
  .pc-only {
    display: none;
  }
  .sp-only {
    display: block;
  }
}

/* ========================  
 recruit　採用情報
========================= */
.recruit {
  background-color: #f4f2eb;
  padding: 40px;
  margin-top: 80px;
}
.recruit.section__container,
.recruit .section__container {
  padding: 0;
  margin: 0;
}
@media screen and (max-width: 767px) {
  .recruit {
    background-color: #f4f2eb;
    margin-top: 0px;
    padding: 60px 30px;
    margin-left: -30px; /* .l-containerのpadding分を打ち消す */
    margin-right: -30px;
  }
  .recruit .l-container {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  .recruit .wp-block-media-text__content {
    padding-right: 30px;
  }
}

.blue {
  color: #1e50a2;
}
.orange {
  color: #f08300;
}
.br-sp {
  display: none;
}
@media (max-width: 767px) {
  .br-sp {
    display: inline;
  }
}
.recruit-media-text__title {
  font-size: 30px;
  font-weight: bold;
  text-align: center;
}
@media (max-width: 960px) {
  .recruit-media-text__title {
    font-size: 24px;
    line-height: 1.25;
  }
}
.recruit.wp-block-media-text__media {
  width: 400px;
}
.recruit.wp-block-media-text__media img {
  width: 100%;
  max-width: 400px;
  height: auto;
  object-fit: cover;
}
.recruit-media-text__text {
  padding-top: 13px;
  line-height: 1.5;
}

@media (max-width: 960px) {
  .recruit-media-text__text {
    font-size: 16px;
  }
}
.recruit-media-text__text:last-child {
  padding-top: 20px;
}
.wp-block-buttons.recruit-btn {
  padding-top: 20px;
  text-align: center;
}
/* spの時のレイアウト */
@media (max-width: 767px) {
  .wp-block-media-text.recruit {
    display: block !important;
    /* 横並びを解除 */
  }
  .wp-block-media-text.recruit .wp-block-media-text__media,
  .wp-block-media-text.recruit .wp-block-media-text__content {
    width: 100% !important;
  }
  .wp-block-media-text.recruit .wp-block-media-text__media img {
    max-width: 100%;
    height: auto;
    display: block;
    margin: 0 auto;
  }
  .recruit--media-text--text {
    padding-top: 20px !important;
    /* 画像とテキストの余白 */
  }
  .recruit-btn {
    text-align: center;
    /* ボタンを中央寄せ */
  }
}

/* PC用をデフォルト表示、SP用を非表示(テキスト部分） */
.recruit-text-pc {
  display: block;
}
.recruit-text-sp {
  display: none;
}

/* SPのときは逆にする */
@media screen and (max-width: 767px) {
  .recruit-text-pc {
    display: none;
  }
  .recruit-text-sp {
    display: block;
  }
}
@media screen and (max-width: 960px) {
  .wp-block-media-text__content p.recruit-detail__desc {
    line-height: 1.25 !important;
  }
  .recruit-detail__desc {
    padding-bottom: 20px;
  }
}
/* PC用をデフォルトで表示、SP用は非表示 */
.recruit-text-pc {
  display: block;
}
.recruit-text-sp {
  display: none;
}

/* 960px以下でSP用を表示 */
@media (max-width: 960px) {
  .recruit-text-pc {
    display: none;
  }
  .recruit-text-sp {
    display: block;
  }
}

/* ========================
  Footer
========================= */

/* ----- フッター全体 ----- */
.l-footer__widgetArea {
  max-width: 1280px;
  margin: 80px auto 0;
  padding: 30px 100px;
}

@media screen and (max-width: 767px) {
  .l-footer__widgetArea {
    display: flex;
    flex-direction: column;
    padding: 60px 23px;
    margin-top: 0;
  }
}

/* ----- フッター内部コンテナ ----- */
.l-container.w-footer {
  padding-left: 0;
  padding-right: 0;
  display: flex;
  justify-content: space-between;
  align-items: stretch; /* 高さを揃える */
}

@media screen and (max-width: 767px) {
  .l-container.w-footer {
    display: block;
  }

  .l-footer__widgetArea .l-container.w-footer {
    margin-left: 0;
    margin-right: 0;
  }
}

/* ----- 左右のボックス ----- */
.w-footer__box {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.w-footer__box:first-child {
  flex: 0 0 auto;
  padding: 0 60px 0 0;
}

@media screen and (max-width: 790px) {
  .w-footer__box:first-child {
    padding-right: 0px;
  }
}

.w-footer__box:last-child {
  flex: 1;
  justify-content: space-between;
  align-items: flex-end;
  text-align: right;
  padding: 0 !important;
  padding-top: 16px !important;
}

/* ----- SP時のボックス調整 ----- */
@media screen and (max-width: 767px) {
  .w-footer__box {
    align-items: center !important;
    text-align: center !important;
  }

  .w-footer__box:first-child,
  .w-footer__box:last-child {
    flex-direction: column;
  }
}

/* ----- footer-bottom ----- */
.footer-bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
}

@media screen and (max-width: 767px) {
  .footer-bottom {
    gap: 70px;
    text-align: initial !important;
    margin: 0 auto;
  }

  .footer-bottom > * {
    margin: 0 !important;
    padding: 0 !important;
  }

  /* 親の .widget_text の中央寄せを打ち消す */
  #text-7.widget_text {
    text-align: initial !important;
    justify-content: flex-start !important;
    width: 100% !important;
  }
}

/* ----- フッター内テキスト ----- */
#text-3 {
  align-items: flex-start !important;
  text-align: left !important;
  width: 100%;
}

#text-3 .textwidget {
  font-size: 18px;
}

#text-3 .textwidget p {
  text-align: left !important;
}

@media screen and (max-width: 767px) {
  #text-3 .textwidget {
    font-size: 14px;
  }
}

/* ----- フッターロゴ ----- */
#media_image-3 img {
  width: 330px;
  height: auto;
}

@media screen and (max-width: 767px) {
  #media_image-3 {
    display: block !important;
    width: 100% !important;
    text-align: left !important;
    justify-content: flex-start !important;
  }

  #media_image-3 img {
    width: 250px;
    margin: 0 !important;
    display: inline-block;
  }
}

/* ----- ナビゲーション ----- */
.footer-nav {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  gap: 25px;
}

.footer-nav a {
  font-size: clamp(14px, 2vw, 18px);
  white-space: nowrap;
  text-decoration: none;
  letter-spacing: 0.05em;
  transition: all 0.3s;
}

.footer-nav a:hover {
  opacity: 0.7;
}

@media screen and (max-width: 1000px) {
  .footer-nav {
    display: none;
  }
}

@media screen and (max-width: 767px) {
  .footer-nav {
    display: none;
  }
}

/* ----- copyright非表示 ----- */
.copyright {
  display: none;
}

/* ----- SP用表示切替 ----- */
.company-name {
  display: block;
  font-size: clamp(10px, 2vw, 18px);
}

.company-name-only-sp {
  display: none;
}

@media screen and (max-width: 767px) {
  .company-name {
    display: none;
  }

  .company-name-only-sp {
    display: block;
    font-size: 10px;
  }
}

/* ----- privacyリンク ----- */
.privacy {
  font-size: clamp(12px, 2vw, 18px);
}

.privacy a {
  transition: all 0.3s;
}

.privacy a:hover {
  opacity: 0.7;
}

/* ========================  
事業内容 （詳細ページ）Business
========================= */

/* ===========================
   ページタイトル非表示
=========================== */
.page-id-323 h1.c-pageTitle {
  display: none !important;
}

/*パンくずリスト微調整全ページ共通*/
.p-breadcrumb {
  margin: 32px auto -70px;
}

.services_detail .section_ttl {
  display: flex;
  flex-direction: column;
  line-height: 1.1;
  align-items: flex-start;
  padding-top: 80px !important;
}
.services_detail .section_ttl span {
  margin: 0;
  padding: 0;
}

.services_detail .section_ttl--jp {
  padding-bottom: 15px !important;
}

.services_detail-txt {
  padding-top: 30px;
}

.post_content h3 {
  margin: 2em 0 1em;
}
@media screen and (max-width: 767px) {
  .services_detail .section_ttl {
    padding-top: 25px !important;
  }
}
.post_content .is-style-section_ttl.has-text-align-left {
  text-align: left;
  padding-bottom: 12px !important;
}

@media screen and (max-width: 767px) {
  .post_content .is-style-section_ttl.has-text-align-left {
    text-align: left;
    padding-bottom: 0px !important;
  }
}

.services-detail .wp-block-media-text .wp-block-media-text__media img {
  width: 100%;
  max-width: 400px;
  height: auto;
}
.services-detail {
  display: grid;
  grid-template-columns: 40% auto !important;
  gap: 0 25px;
  align-items: start;
  padding-top: 40px;
  padding-bottom: 40px;
}
@media screen and (max-width: 767px) {
  .services-detail {
    padding-top: 0px !important;
    padding-bottom: 30px;
  }
}
.l-topTitleArea__body {
  text-align: center;
}
.post_content hr {
  border: none;
  border-bottom: 1px solid rgba(0, 0, 0, 0.1);
  margin: 0 !important;
}

.has-swl-deep-02-color {
  font-size: 30px;
}
@media screen and (max-width: 1000px) {
  .has-swl-deep-02-color {
    font-size: 24px;
  }
}
@media screen and (max-width: 767px) {
  .has-swl-deep-02-color {
    font-size: 20px;
  }
  .post_content .is-style-section_ttl.has-text-align-left {
    text-align: left;
    padding-top: 15px;
  }
}
.services-detail__subttl {
  font-size: clamp(20px, 2vw, 30px) !important;
}
.swl-fz {
  font-size: clamp(16px, 2vw, 24px) !important;
}

@media (max-width: 767px) {
  .swl-fz {
    line-height: 1.2;
  }
}
/*画像とテキスト上揃え*/
.wp-block-media-text.services-detail .wp-block-media-text__content,
.wp-block-media-text.services-detail .wp-block-media-text__media {
  align-self: flex-start !important;
}

.services-detail .wp-block-media-text__content > p:nth-of-type(2) strong {
  font-weight: 500;
}

/*SPサイズ時のテキスト改行の取り消し*/
@media (max-width: 768px) {
  .services-detail br {
    display: none;
  }
}

.services-detail .sp-br {
  display: none;
}

@media (max-width: 768px) {
  .services-detail .sp-br {
    display: inline;
  }
}

@media (max-width: 767px) {
  .works-detail__subttl {
    padding-top: 7px;
  }
}

@media screen and (max-width: 1000px) {
  .services-detail .wp-block-media-text__content p:last-of-type {
    font-size: 16px;
  }
}
@media screen and (max-width: 767px) {
  .wp-block-media-text.services-detail {
    display: flex;
    flex-direction: column;
  }

  /* 画像とテキストの幅を100%に */
  .wp-block-media-text.services-detail .wp-block-media-text__media,
  .wp-block-media-text.services-detail .wp-block-media-text__content {
    width: 100% !important;
  }
}

@media screen and (max-width: 1140px) {
  .services-detail .wp-block-media-text__content p br {
    display: none;
  }
}
@media screen and (max-width: 767px) {
  /* sp-br は有効にする */
  .services-detail .wp-block-media-text__content br.sp-br {
    display: inline; /* または display: initial; */
  }

  /* それ以外の br は非表示 */
  .services-detail .wp-block-media-text__content p br:not(.sp-br) {
    display: none;
  }
}
@media screen and (max-width: 880px) {
  .services-detail .wp-block-media-text__content > p:nth-of-type(2) strong {
    font-weight: 500;
    font-size: 16px;
  }
}

@media (max-width: 767px) {
  .wp-block-columns {
    gap: 0 !important; /* 縦並びで余白を消す */
  }

  .wp-block-column {
    margin-bottom: 1.5em; /* 必要に応じて縦の余白を微調整 */
  }
}
/*  SP区切り線の表示*/
@media (max-width: 767px) {
  .wp-block-separator.is-style-wide {
    border-top: 1px solid #d4d4d4 !important;
    opacity: 1 !important;
    height: 1px !important;
    display: block !important;
    padding-bottom: 20px;
  }
}

/* ========================  
施工実績（詳細ページ）works
========================= */
.works_detail .section_ttl {
  display: flex;
  flex-direction: column;
  line-height: 1.1;
  align-items: flex-start;
  padding-top: 80px !important;
}
.works_detail .section_ttl span {
  margin: 0;
  padding: 0;
}
.works_detail .section_ttl--jp {
  padding-bottom: 15px !important;
}

/* タイトルを消す */
.page-id-760 h1.c-pageTitle {
  display: none !important;
}

.works_detail-txt {
  padding-bottom: 60px;
}

.works-detail_img-subttl {
  color: #1e50a2 !important;
  font-size: 24px;
  font-weight: bold;
  padding-top: 10px;
  padding-bottom: 40px;
}
.works-detail_custom-width-1080 {
  max-width: 1080px;
  margin: auto;
}
.lum-lightbox-inner {
  top: 0 !important;
  left: 20% !important;
}

.lum-lightbox-image-wrapper {
  max-width: 90vw; /* 画面の90%まで */
  max-height: 90vh; /* 画面の90%まで */
}

.works-detail_custom-width-1080.works_detail-txt {
  line-height: 1.5;
  padding-bottom: 60px;
  padding-top: 30px;
}
.lum-lightbox-inner img {
  position: relative;
  text-align: center;
  margin: auto;
  right: 10%;
}

@media screen and (max-width: 768px) {
  .works-detail_custom-width-1080 .has-text-align-center {
    text-align: center !important;
  }
  .works_detail .section_ttl {
    padding-top: 25px !important;
  }
}
/*ポップアップ時の画像の見え方SPでは非表示*/
@media (max-width: 781px) {
  .lum-lightbox-inner img {
    display: none;
  }
  img.luminous,
  a.luminous {
    pointer-events: none !important;
  }
}

/* ========================  
会社概要（詳細ページ）
========================= */
/*代表者挨拶*/
.company_detail .section_ttl {
  display: flex;
  flex-direction: column;
  line-height: 1.1;
  align-items: flex-start;
  padding-top: 80px !important;
}
@media (max-width: 767px) {
  .company_detail .section_ttl {
    padding-top: 25px !important;
  }
}
.company_detail .section_ttl span {
  margin: 0;
  padding: 0;
}
.company_detail .section_ttl--jp {
  padding-bottom: 15px !important;
}

/* タイトルを消す */
.page-id-821 h1.c-pageTitle {
  display: none !important;
}

.company_detail-txt {
  padding-bottom: 60px;
}

.company-detail_img-subttl {
  color: #1e50a2 !important;
  font-size: 24px;
  font-weight: bold;
  padding-top: 20px;
  padding-bottom: 20px;
}
.company-detail_custom-width-1080 {
  max-width: 1080px;
  margin: auto;
}

/* 共通サブタイトル装飾*/
.c-subttl_line {
  position: relative;
  font-size: 32px;
  letter-spacing: 0.05em;
  font-weight: 700;
  padding-left: 40px;
  color: #1e50a2;
}
@media (max-width: 767px) {
  .c-subttl_line {
    font-size: 20px;
    padding-left: 30px;
  }
}

.c-subttl_line::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 30px; /* 線の長さ */
  height: 1px;
  background: #2b2b2b;
}
@media (max-width: 767px) {
  .c-subttl_line::before {
    width: 20px;
  }
}

.company-catch strong {
  font-size: 24px;
}
@media (max-width: 767px) {
  .company-catch strong {
    font-size: 22px;
    line-height: 1.5;
  }
  .company-subttl_line {
    margin-bottom: -1em !important;
  }
}

.greeting,
.company-profile {
  padding-top: 80px;
}

.company-block {
  margin-top: 80px !important;
  margin-bottom: 0 !important;
}
@media (max-width: 767px) {
  .company-block {
    margin-top: 0 !important;
  }
}

@media (max-width: 767px) {
  .wp-block-media-text__content .company-catch .sp-only {
    display: inline; /* このセクションだけ block を無効化 */
  }
}

@media (max-width: 767px) {
  .greeting,
  .company-profile {
    padding-top: 30px;
  }
}

.company-detail__desc {
  line-height: 1.5;
  padding-top: 15px;
}

@media (max-width: 767px) {
  .company-detail__desc {
    line-height: 1;
    font-size: 16px;
  }
}
.company-detail__textmedia.wp-block-media-text.has-media-on-the-right {
  grid-template-columns: 1fr 49% !important;
}

@media (max-width: 960px) {
  .company-detail__textmedia {
    display: flex !important;
    flex-direction: column !important;
  }

  .company-detail__textmedia .wp-block-media-text__content,
  .company-detail__textmedia .wp-block-media-text__media {
    width: 100% !important;
    max-width: 100% !important;
  }

  /* メディア（画像）を下 */
  .company-detail__textmedia.has-media-on-the-right {
    flex-direction: column !important;
  }

  /* スマホ時の余白調整 */
  .company-detail__textmedia .wp-block-media-text__content {
    margin-bottom: 20px;
  }

  /* grid指定を無効化 */
  .company-detail__textmedia[style] {
    grid-template-columns: none !important;
  }

  .company-detail__textmedia .wp-block-media-text__media img,
  .company-detail__textmedia .wp-block-media-text__media video {
    width: 80%;
    margin: auto;
  }
}

@media (max-width: 767px) {
  .company-detail__textmedia .wp-block-media-text__media img,
  .company-detail__textmedia .wp-block-media-text__media video {
    width: 100%;
    margin: auto;
  }
}

/*会社概要*/

/* swell独自のgap を消す */
.info-wrapper {
  --wp-column-gap: 0 !important;
  gap: 0 !important;
  padding-top: 20px;
}

/*スマホサイズでは縦並び（会社概要・採用情報とも同じ）*/
@media (max-width: 768px) {
  .wp-block-columns.info-wrapper {
    display: block !important;
    flex-direction: column !important;
    flex-wrap: nowrap !important;
    gap: 0 !important;
    padding-top: 20px;
  }

  /* 各カラムを全幅＆縦配置に */
  .wp-block-columns.info-wrapper > .wp-block-column {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    flex: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding: 0 !important;
  }

  /* ラベルとテキストのスタイル */
  .info__label {
    font-size: 16px;
    font-weight: 600;
    margin-bottom: 4px;
    text-align: left !important;
  }

  .info__text {
    font-size: 14px;
    line-height: 1.7;
    padding-bottom: 10px;
    text-align: left !important;
  }

  /* 左カラムの下線を無効化 */
  .info-wrapper > .wp-block-column:first-child::after {
    display: none !important;
  }
}

/* 「管工事」の下だけ padding をつける */
@media (max-width: 768px) {
  /* 会社概要ページ限定で padding-bottom を追加 */
  #content.l-content[data-postid="821"] {
    padding-bottom: 40px; /* お好みの余白量に調整 */
  }
}

/* swell仕様の余白を調整 */
@media (max-width: 600px) {
  .is-stacked-on-mobile > .wp-block-media-text__content {
    grid-row: 2 !important;
    padding: 0 !important;
  }
}

/* 所在地の部分の微調整 */
.company-info--address {
  padding-bottom: 12px;
}
@media (max-width: 768px) {
  .company-info--address {
    padding-bottom: 0px;
  }
}

/* 中のテキストを左寄せ＆余白リセット */
.info__label,
.info__text {
  margin: 0;
  text-align: left;
}
.info__label {
  font-size: 20px;
  font-weight: 600;
}
@media (max-width: 768px) {
  .info__label {
    font-size: 16px;
  }
}

/*====テキストの改行設定
============================*/
/* ▼ 基本（SP：959px以下） */
.company-detail__desc {
  font-size: 16px;
  line-height: 1.5;
}

/* 改行クラスは一旦すべて非表示 */
.pc-br,
.sp-br {
  display: none;
}

/* ▼ PC（960px以上） */
@media (min-width: 960px) {
  .company-detail__desc {
    font-size: 20px;
  }

  /* PCでは pc-br を有効化（インライン改行） */
  .pc-br {
    display: inline;
  }
}

/* ▼ SP（959px以下） */
@media (max-width: 959px) {
  /* SPでは sp-br を段落として1行空ける */
  .sp-br {
    display: block;
    height: 1em;
  }
}

/* PCのみ有効 */
.pc-only-br {
  display: none;
}

/* PC（960px以上）のときだけ表示 */
@media (min-width: 960px) {
  .pc-only-br {
    display: inline;
  }
}

/*募集要項*/

.info-wrapper {
  display: flex;
  align-items: center !important;
  position: relative;
}

/* 左のカラム */

.info-wrapper > .wp-block-column:first-child {
  flex: 0 0 30% !important;
  max-width: 30% !important;
  padding-bottom: 20px;
  position: relative;
}
/* 左カラムの下線（青） */
.info-wrapper > .wp-block-column:first-child::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  border-bottom: 1px solid #1e50a2;
}

/* 右のカラム */
.info-wrapper > .wp-block-column:last-child {
  flex: 0 0 70% !important;
  max-width: 70% !important;
  border-bottom: 1px solid #d4d4d4;
  padding-bottom: 19px;
}

/* 既存の列ごとの線を無効化（念のため） */
.info-wrapper.benefits,
.info-wrapper.benefits > .wp-block-column:first-child,
.info-wrapper.benefits > .wp-block-column:last-child {
  border-bottom: none !important;
}
.info-wrapper.benefits > .wp-block-column:first-child::after,
.info-wrapper.benefits > .wp-block-column:last-child::after {
  display: none !important;
}

/* 親に2本の線を描く（左＝青、右＝グレー） */
.info-wrapper.benefits::before,
.info-wrapper.benefits::after {
  content: "";
  position: absolute;
  bottom: 0; /* 親の下端に合わせる */
  height: 1px;
  pointer-events: none;
}

/* 左側の青い線（左端から左カラム幅ぶん） */
.info-wrapper.benefits::before {
  left: 0;
  width: 30%; /* 左カラムに合わせる */
  background: #1e50a2;
  z-index: 2;
}

/* 右側のグレー線（左30%から右端まで） */
.info-wrapper.benefits::after {
  left: 30%;
  right: 0;
  background: #d4d4d4;
  z-index: 1;
}

/*スマホサイズの時の下線の設定について */
@media (max-width: 768px) {
  /* 左カラムの青い線を消す */
  .info-wrapper > .wp-block-column:first-child::after {
    display: none;
  }

  /* 右カラムを幅100%にして線を全幅に */
  .info-wrapper > .wp-block-column:last-child {
    flex: 0 0 100% !important;
    max-width: 100% !important;
    border-bottom: 1px solid #d4d4d4;
    padding-bottom: 19px;
  }

  /* 左カラムも幅100%にして縦並びに */
  .info-wrapper > .wp-block-column:first-child {
    flex: 0 0 100% !important;
    max-width: 100% !important;
    padding-bottom: 10px;
    position: relative;
  }

  /* 縦並びにする */
  .info-wrapper {
    flex-direction: column !important;
  }
}

/* 改行の設定 */

.pc_only {
  display: block;

  font-size: 20px;
}

.sp_only {
  display: none;

  font-size: 16px;
}

.sp-br {
  display: none;
}

@media (max-width: 1064px) {
  .pc_only {
    display: none;
  }
  .sp_only {
    display: block;
  }
  .sp-br {
    display: block;
    display: none;
  }
}

/* ========================  
採用情報（詳細ページ）
========================= */

.recruit_detail .section_ttl {
  display: flex;
  flex-direction: column;
  line-height: 1.1;
  align-items: flex-start;
  padding-top: 80px !important;
}
@media (max-width: 768px) {
  .recruit_detail .section_ttl {
    padding-top: 25px !important;
  }
}

.recruit_detail .section_ttl span {
  margin: 0;
  padding: 0;
}

.recruit_detail .section_ttl--jp {
  padding-bottom: 60px !important;
}

@media (max-width: 768px) {
  .recruit_detail .section_ttl--jp {
    padding-bottom: 20px !important;
  }
}
.company-appela,
.requirements {
  margin-top: 80px !important;
}

@media (max-width: 768px) {
  .company-appela,
  .requirements {
    margin-top: 20px !important;
  }
}
h2.company-appela {
  background: none !important;
  padding-bottom: 30px;
  border: none !important;
  box-shadow: none !important;
  margin-top: 80px !important;
}
@media (max-width: 768px) {
  h2.company-appela {
    margin-top: 40px !important;
    padding-bottom: 20px;
  }
}

/* ===========================
   ページタイトル非表示
=========================== */
.page-id-887 h1.c-pageTitle {
  display: none !important;
}

/* ===========================
   テキストセクション
=========================== */
.recruit_detail-txt {
  padding-bottom: 60px;
}

.recruit-detail_img-subttl {
  color: #1e50a2 !important;
  font-size: 24px;
  font-weight: bold;
  padding: 20px 0;
}

.recruit-detail_custom-width-1080 {
  max-width: 1080px;
  margin: auto;
  margin-bottom: 60px !important;
}

@media screen and (max-width: 768px) {
  .recruit-detail_custom-width-1080 {
    margin-bottom: 40px !important;
  }
}

/* ===========================
   リクルート詳細 横並びカラム
=========================== */
/* PC共通 */
.recruit_detail__rowCont {
  display: flex;
  justify-content: space-between;
  gap: 47px;
  flex-wrap: wrap; /* はみ出し防止 */
}

.recruit_detail__rowCont-item {
  flex: 1;
  min-width: 280px;
  border: 1px solid #ccc;
  position: relative;
  background-color: #f4f2eb;
  box-sizing: border-box;
  padding-top: 30px;
}
@media screen and (max-width: 768px) {
  .recruit_detail__rowCont-item {
    padding-top: 0px;
  }
}

/* タイトル */

.recruit_detail__rowCont-item h3.item-title {
  padding-top: 20px;
  font-size: 24px !important;
  text-align: center;
}
@media screen and (max-width: 768px) {
  .recruit_detail__rowCont-item h3.item-title {
    font-size: 20px !important;
  }
}

/* 強調文字 */
.item-title .highlight {
  color: #f08300;
}
.item-text {
  padding: 30px 32px 21px 32px;
}
@media screen and (max-width: 768px) {
  .item-text {
    padding: 10px 25px 15px 25px;
  }
}

.post_content
  h3:where(:not([class^="swell-block-"]):not(.faq_q):not(.p-postList__title)) {
  padding: 0 0em 0.6em;
}
@media screen and (max-width: 768px) {
  .post_content
    h3:where(
      :not([class^="swell-block-"]):not(.faq_q):not(.p-postList__title)
    ) {
    padding-top: 40px !important;
  }
  .pre-recruit-subttl {
    margin-bottom: -20px !important;
  }
}

.pre-recruit-subttl {
  margin-bottom: -20px !important;
}

.company-about {
  margin-top: 80px !important;
}

@media screen and (max-width: 815px) {
  .company-about {
    margin-top: 30px !important;
    padding-bottom: 0 !important;
  }
}

/* h3の下線削除 */
.recruit_detail__rowCont-item h3::before,
.recruit_detail__rowCont-item h3::after {
  content: none;
}

/* 3つ目の画像装飾（PC） */
.recruit_detail__rowCont-item:nth-of-type(3) .item-image {
  position: absolute;
  bottom: -75px;
  right: -4px;
  max-width: 115px;
  transform: rotate(9deg);
  z-index: 2;
}
@media screen and (max-width: 815px) {
  .recruit_detail__rowCont-item:nth-of-type(3) .item-image {
    right: 18px;
    max-width: 122px;
  }
}

/* セクション間マージン */

.application-form {
  padding-top: 80px !important;
  margin-top: 0 !important;
  padding-bottom: 30px !important;
}

@media screen and (max-width: 768px) {
  h3.application-form {
    padding-top: 60px !important;
    padding-bottom: 20px !important;
  }
}
.recruit-form.privacy-policy-info--google p {
  display: flex; /* 横並びにする */
  flex-wrap: wrap; /* 横幅が狭い場合は折り返す */
  align-items: center; /* テキスト縦中央揃え */
  gap: 4px; /* aタグ間のスペース */
  margin: 0; /* pタグの余白リセット */
  justify-content: flex-start;
}
.recruit-form.privacy-policy-info--google {
  padding-bottom: 20px;
}

.privacy-policy-info--google-wrapper {
  line-height: 1;
  text-align: center;
}

.recruit-form.privacy-policy-info--google {
  display: flex;
  justify-content: center;
}

@media screen and (max-width: 768px) {
  .recruit_detail__rowCont {
    flex-direction: column;
    gap: 30px;
  }

  .recruit_detail__rowCont-item {
    width: 100%;
  }

  /* 3つ目の画像を縮小・中央寄せ */
  .recruit_detail__rowCont-item:nth-of-type(3) .item-image {
    position: static; /* 絶対配置解除 */
    max-width: 200px;
    margin: 10px auto 20px;
    display: block;
    transform: rotate(0); /* 回転解除 */
  }
}
@media screen and (max-width: 768px) {
  .info-wrapper.benefits::before {
    border-bottom: 1px solid #d4d4d4;
  }
}
.recruit-detail__textmedia.wp-block-media-text.has-media-on-the-right {
  grid-template-columns: 1fr 53% !important;
}
@media (max-width: 960px) {
  .recruit-detail__textmedia {
    display: flex !important;
    flex-direction: column !important;
  }
  .recruit-detail__textmedia .wp-block-media-text__media img,
  .recruit-detail__textmedia .wp-block-media-text__media video {
    width: 80%;
    margin: auto;
  }
}

@media (max-width: 767px) {
  .recruit-detail__textmedia .wp-block-media-text__media img,
  .recruit-detail__textmedia .wp-block-media-text__media video {
    width: 100%;
    margin: auto;
  }
}
.recruit-detail__desc {
  line-height: 1.5;
  padding-top: 25px;
}

.recruit_detail .wp-block-media-text__media {
  padding-left: 40px;
}
/* ===========================
  お問い合わせ（採用情報サンクスページ）
=========================== */
/* -----ページタイトル非表示----- */
.page-id-1121 .c-pageTitle {
  display: none;
}

/* ===========================
 応募方法とお問い合わせ
=========================== */
.contact-address {
  background-color: #f4f2eb;
  margin-top: 0px;
  padding: 30px 20px;
  margin-bottom: 80px !important;
  line-height: 2;
}

@media screen and (max-width: 932px) {
  .contact-address .contact-address--phone {
    text-align: center !important;
    font-size: 24px;
  }
}

.address--ttl {
  font-size: 36px;
  color: #1e50a2;
}
.contact-address--txt {
  font-size: 24px;
}
@media screen and (max-width: 768px) {
  .contact-address--txt {
    font-size: 18px;
  }
}
.contact-address--phone {
  font-size: 36px;
}
@media screen and (max-width: 768px) {
  .contact-address--phone {
    font-size: 25px;
  }
}
.contact-address--phone .swl-inline-icon {
  margin-right: 8px;
  vertical-align: middle;
}
@media screen and (max-width: 932px) {
  .contact-address .has-text-align-center {
    text-align: left;
  }
}

/* ========================  
お問い合わせ
========================= */
/* -----ページタイトル非表示----- */

.page-id-992 h1.c-pageTitle {
  display: none !important;
}

span.required {
  color: #fff;
  background-color: #dd4343;
  font-size: 0.9em;
  margin-left: 6px;
  padding: 5px;
}
@media screen and (max-width: 768px) {
  .has-text-align-center {
    text-align: left;
    font-size: 16px;
  }
}
.contact-area {
  padding: 60px 100px;
  background-color: #f5f5f5;
  margin-top: 30px;
}

@media screen and (max-width: 768px) {
  .contact-area {
    padding: 20px;
    margin-bottom: 50px;
  }
}

.contact-area input[type="text"],
.contact-area input[type="email"],
.contact-area input[type="tel"],
.contact-area textarea {
  margin-top: 6px; /* 上に余白を追加 */
  display: block; /* ブロック化で上マージンが効くように */
  width: 100%; /* 横幅をラベルに合わせる */
  box-sizing: border-box; /* padding込みで幅を整える */
}

.button,
input,
select,
textarea {
  background-color: #fdfdfd;
  border: 1px solid hsla(0, 0%, 78%, 0.5);
  border-radius: 0;
  color: #333;
  padding: 0.25em 0.5em;
}

/* 送信ボタンのデザイン */

/* =========================
矢印付きCF7ボタン
========================= */
/* ボタン全体 */
.wpcf7.cf7-button {
  background-color: #1e50a2;
  color: #fff;
  border: 1px solid #1e50a2;
  max-width: 300px;
  width: 100%;
  font-size: 20px;
  cursor: pointer;
  transition: all 0.3s ease;
  margin: 80px auto 0;
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
  border-radius: 40px;
  overflow: hidden;
}
@media screen and (max-width: 375px) {
  .wpcf7.cf7-button {
    font-size: 16px;
  }
}

/* 中央寄せ */
.wpcf7.cf7-button p {
  width: 100%;
  margin: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  text-align: center;
}

/* input をボタンの見た目に合わせる */
.wpcf7.cf7-button input[type="submit"] {
  width: 100%;
  padding: 17px 0;
  background: transparent;
  color: inherit;
  border: none;
  cursor: pointer;
  font-size: inherit;
  border-radius: 40px;
}

/* hover色反転（親で一括管理） */
.wpcf7.cf7-button:hover {
  background-color: #fff;
  color: #1e50a2;
}

/* inputにも同じ色を適用 */
.wpcf7.cf7-button:hover input[type="submit"] {
  color: #1e50a2;
}

/* 矢印 */
.wpcf7.cf7-button::before,
.wpcf7.cf7-button::after {
  pointer-events: none;
  position: absolute;
  top: 50%;
  right: 26px;
  transition: 0.3s;
}

/* 横棒 */
.wpcf7.cf7-button::before {
  content: "";
  width: 24px;
  height: 2px;
  background: #fff;
  margin-top: 0;
}

/* 矢印先端 */
.wpcf7.cf7-button::after {
  content: "";
  width: 12px;
  height: 12px;
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
  transform: translateY(-50%) rotate(45deg);
  top: 51%;
}

/* hover で矢印の色変える */
.wpcf7.cf7-button:hover::before {
  background: #1e50a2;
}
.wpcf7.cf7-button:hover::after {
  border-top-color: #1e50a2;
  border-right-color: #1e50a2;
}

@media screen and (max-width: 400px) {
  /* 横棒 */
  .wpcf7.cf7-button::before {
    width: 20px;
  }

  /* 矢印先端 */
  .wpcf7.cf7-button::after {
    content: "";
    width: 12px;
    height: 12px;
    border-top: 2px solid #fff;
    border-right: 2px solid #fff;
    transform: translateY(-50%) rotate(45deg);
    top: 51%;
  }
}
@media screen and (max-width: 340px) {
  .wpcf7.cf7-button::before,
  .wpcf7.cf7-button::after {
    display: none;
  }
}

/* =========================
その他CF7関連
========================= */
.contact-form {
  margin-top: 80px;
}

.contact-form--desc {
  margin-top: 30px;
}

span.wpcf7-spinner {
  display: none;
}

.wpcf7 textarea {
  height: 200px; /* 好きな高さに調整 */
}

.wpcf7-list-item {
  display: inline-block;
  margin: 0 !important;
}

/* ===========================
  お問い合わせ（サンクスページ）採用
=========================== */
/* -----ページタイトル非表示----- */
.page-id-1026 .c-pageTitle {
  display: none;
}

.contact-thanks-ttl {
  letter-spacing: 0.05em;
  padding-top: 60px;
  text-align: center;
  padding-bottom: 20px;
}
@media (max-width: 768px) {
  .contact-thanks-ttl {
    padding-top: 0;
  }
  .contact-form--desc {
    margin-top: 10px;
  }
}
.thanks-page-btn {
  text-align: center;
  margin-top: 60px;
  padding-bottom: 30px;
}

.thanks-page-btn .wp-block-button__link {
  display: inline-block;
  width: 300px;
  padding-top: 20px;
  padding-bottom: 20px;
  font-size: 20px;
}
/* ===========================
  お問い合わせ（サンクスページ）問い合わせ
=========================== */
.contact-thanks-p--01 {
  padding: 20px 0 !important; /* 上下20pxの余白を追加 */
}
.contact-thanks-p--03 {
  padding: 20px 0 !important;
}

/* ===========================
  プライバシーポリシー
=========================== */
/* -----ページタイトル非表示----- */
.page-id-1051 .c-pageTitle {
  display: none;
}
.PrivacyPolicy .section_ttl {
  display: flex;
  flex-direction: column;
  line-height: 1.1;
  align-items: flex-start;
}

.PrivacyPolicy .section_ttl span {
  margin: 0;
  padding: 0;
}

.PrivacyPolicy .section_ttl--en {
  padding-top: 80px !important;
}

.PrivacyPolicy .section_ttl--jp {
  padding-bottom: 20px !important;
}
.PrivacyPolicy-desc {
  font-size: clamp(16px, 2.3vw, 20px);
}

.privacy-check {
  display: flex;
  align-items: center; /* 縦位置を揃える */
  flex-wrap: wrap; /* SPで狭いときは折り返し可能に */
  gap: 0.3em; /* 要素間の余白 */
  justify-content: center;
}

.privacy-check .privacy-text {
  display: inline-flex;
  align-items: center;
}

.privacy-check p {
  display: flex;
  align-items: center;
  flex-wrap: wrap; /* スマホ対応 */
  line-height: 1.6;
  justify-content: center;
  padding-top: 30px;
  font-size: 20px;
}
.privacy-check a {
  font-size: 20px;
}

/* チェックボックス */
.privacy-check input[type="checkbox"] {
  display: inline-block;
  vertical-align: middle;
  margin: 0;
  width: 18px;
  height: 18px;
  accent-color: #1e50a2;
  transform: translateY(-1px); /*  微調整 */
  cursor: pointer;
  margin-right: 5px;
}

.privacy-policy-info {
  text-align: center;
  font-size: 16px;
}
.privacy-check .privacy-text {
  display: inline-block;
  display: flex;
}
@media (max-width: 767px) {
  .privacy-check .privacy-text {
    font-size: 16px;
  }
}

.privacy-check .privacy-text a {
  color: #1e50a2;
  text-decoration: underline;
}
.wpcf7-submit:disabled {
  background-color: red;
}

/* テキスト部分の下線設定 */

/* 全体の親要素 */
.privacy-policy-info__wrapper {
  display: flex;
  flex-direction: column; /* 段落ごとに縦に積む */
  gap: 4px; /* 段落間の余白 */
}

/* 各段落を横並びに調整 */
.privacy-policy-info__wrapper p {
  display: flex;
  flex-wrap: wrap; /* 横幅が狭い場合は折り返す */
  align-items: center; /* テキスト縦中央揃え */
  gap: 4px; /* aタグやテキスト間のスペース */
  margin: 0; /* 自動余白リセット */
}

/* aタグを横並びにする */
.privacy-policy-info__wrapper p a {
  display: inline-block;
  margin-right: 4px; /* リンク間のスペース */
  text-decoration: underline; /* 好みに応じて */
}

/* 改行の無視 */
.privacy-policy-info__wrapper br {
  display: none; /* 表示上改行を消す */
}

.privacy-policy-info--google p {
  display: flex; /* 横並びにする */
  flex-wrap: wrap; /* 横幅が狭い場合は折り返す */
  align-items: center; /* テキスト縦中央揃え */
  gap: 4px; /* aタグ間のスペース */
  margin: 0; /* pタグの余白リセット */
  justify-content: center;
}

/* aタグを横並びに調整 */
.privacy-policy-info--google p a {
  display: inline-block;
  margin-right: 4px; /* リンク間の余白 */
  text-decoration: underline; /* 好みに応じて */
}

/* 不要な改行は非表示 */
.privacy-policy-info--google p br {
  display: none;
}
.privacy-policy-info--google-wrapper {
  text-align: center;
  line-height: 1.6;
  font-size: 14px;
  padding: 20px 0;
}

.privacy-policy-info {
  margin: 0;
  color: #333;
  display: inline-block; /* センター揃えで1文扱い */
  max-width: 90%; /* スマホで改行されるように */
}
.privacy-policy-info a {
  text-decoration: underline;
  transition: opacity 0.3s;
}

.privacy-policy-info a:hover {
  opacity: 0.7;
}

@media screen and (max-width: 768px) {
  .privacy-policy-info {
    display: inline; /* スマホでは自然な改行 */
    line-height: 1.8;
  }
}
@media screen and (max-width: 768px) {
  .privacy-policy-info br {
    display: none;
  }
  .privacy-policy-info--google-wrapper {
    text-align: left;
  }
}

/* ===========================
  プライバシーポリシー（菊池総合設備ver)
=========================== */
/* レベル1：漢数字（①, ②, ③…） */
.list-level1 {
  counter-reset: level1;
  margin-left: 1.5em;
}
.list-level1 > li {
  counter-increment: level1;
  position: relative;
  margin-bottom: 0.6em;
}
.list-level1 > li::marker {
  content: counter(level1, cjk-ideographic) "．";
  font-weight: bold;
}

/* レベル2：カタカナ（ア、イ、ウ…） */
.list-level2 {
  counter-reset: level2;
  margin-left: 1.5em;
}
.list-level2 > li {
  counter-increment: level2;
  margin-bottom: 0.5em;
}
.list-level2 > li::marker {
  content: counter(level2, cjk-ideographic, katakana) "　";
  font-weight: normal;
}
/* レベル3：小漢数字（一、二、三…） */
.list-level3 {
  counter-reset: level3;
  margin-left: 1.5em;
}
.list-level3 > li {
  counter-increment: level3;
  margin-bottom: 0.4em;
}
.list-level3 > li::marker {
  content: counter(level3, cjk-ideographic) "　";
  font-weight: normal;
}

/* 行間・レスポンシブ */
.PrivacyPolicy-desc {
  line-height: 1.7;
  padding-top: 30px;
}
@media (max-width: 767px) {
  .PrivacyPolicy-desc {
    line-height: 1.6;

    padding-bottom: 20px;
  }
  .list-level1,
  .list-level2,
  .list-level3 {
    margin-left: 1em;
  }
}
/*インデントの表示*/
/* 第1階層：数字を（1）（2）形式に */
.PrivacyPolicy-desc > ol {
  list-style-type: none; /* デフォルト番号消す */
  counter-reset: section; /* カウンター初期化 */
}

.PrivacyPolicy-desc > ol > li {
  counter-increment: section;
  position: relative;
  padding-left: 2em;
}

.PrivacyPolicy-desc > ol > li::before {
  content: "（" counter(section) "）";
  position: absolute;
  left: 0;
}

/* 第2階層：カタカナ（ア、イ、ウ…） */
.PrivacyPolicy-desc ol ol {
  list-style-type: katakana;
  margin-top: 0.5em;
}

/* 第3階層：漢数字（一、二、三…） */
.PrivacyPolicy-desc ol ol ol {
  list-style-type: cjk-ideographic;
  margin-top: 0.5em;
}
.post_content
  h3:where(
    :not([class^="swell-block-"]):not(.faq_q):not(.p-postList__title)
  )::before {
  display: none;
}

/* 第1階層：（1）（2）形式 */
.PrivacyPolicy-desc > ol {
  list-style: none;
  counter-reset: section;
  padding-left: 0;
}
.PrivacyPolicy-desc > ol > li {
  counter-increment: section;
  position: relative;
  padding-left: 3em;
}
.PrivacyPolicy-desc > ol > li::before {
  content: "（" counter(section) "）";
  position: absolute;
  left: 0;
}
/* 第2階層：ア、イ、ウ…（点なし） */
.PrivacyPolicy-desc ol ol {
  list-style: none; /* ← これで点（中黒）を消す */
  counter-reset: kana;
  padding-left: 1em;
}
.PrivacyPolicy-desc ol ol > li {
  counter-increment: kana;
  position: relative;
  padding-left: 2em;
}
.PrivacyPolicy-desc ol ol > li::before {
  content: counter(kana, katakana);
  position: absolute;
  left: 0;
}

/* 第3階層：漢数字（一、二、三…） */
.PrivacyPolicy-desc ol ol ol {
  list-style: none; /* 点を消す */
  counter-reset: kan;
  padding-left: 1em;
}
.PrivacyPolicy-desc ol ol ol > li {
  counter-increment: kan;
  position: relative;
  padding-left: 1.5em;
}
.PrivacyPolicy-desc ol ol ol > li::before {
  content: counter(kan, cjk-ideographic);
  position: absolute;
  left: 0;
}

/* 「5. 個人データの第三者への提供」ブロック内のみ、番号を漢数字に */
/* 「第三者への提供」専用：番号を漢数字にして点を消す */
.privacy-provide ol {
  list-style: none;
  counter-reset: provide;
  padding-left: 1.8em;
}
.privacy-provide ol > li {
  counter-increment: provide;
  position: relative;
  padding-left: 1.5em;
}
.privacy-provide ol > li::before {
  content: counter(provide, cjk-ideographic);
  position: absolute;
  left: 0;
}

/* プライバシーポリシー内の h3 のみ調整 */
.post_content .PrivacyPolicy-desc h3 {
  font-size: 1.1em;
  font-weight: 700;
  line-height: 1.4;
  margin: 0em 0 0.2em;
}
/*全体の余白調整*/
.pt-20 {
  padding-top: 20px;
}

/* 404ページ専用のボタン矢印調整 */
.wp-block-button__link.has-background {
  position: relative;
  width: 300px;
  text-align: center;
  display: flex;
  justify-content: center;
  margin: auto;
  padding-top: 21px !important;
  padding-bottom: 21px !important;
  font-size: 20px;
}
@media (max-width: 767px) {
  .wp-block-button__link.has-background {
    width: 280px;
  }
  .pre-submit-subttl {
    margin-top: -20px !important;
  }
}

/* 404ページ専用のボタン矢印調整 */
.wp-block-button__link.has-background:after {
  position: absolute;
  top: 50%;
  right: 10%;
  width: 12px;
  height: 12px;
  margin-top: -5px;
  transform: rotate(45deg);
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
  content: "";
  display: inline-block;
  vertical-align: middle;
  transition: 0.3s;
}

/* 404ページ専用のボタン矢印調整 */
.wp-block-button__link.has-background::before {
  background-color: #fff;
  position: absolute;
  top: 50%;
  right: 10%;
  width: 20px;
  height: 2px;
  margin-top: 0;
  content: "";
  transition: 0.3s;
}
.error .section_ttl--en {
  font-size: clamp(24px, 5vw, 64px) !important;
  font-weight: 800;
  color: #1e50a2;
  background-color: transparent !important;
  letter-spacing: 0.03em;
  margin: auto;
  padding-bottom: 2rem;
}
