@charset "utf-8";
.raiz_h1_01 { font-family: "Noto Sans JP", sans-serif; font-size: 40px; font-weight: 400; line-height: 1.2; letter-spacing: 0.03em; color: #121212; }
.raiz_h2_01 { font-family: "Noto Sans JP", sans-serif; font-size: 30px; font-weight: 400; line-height: 1.2; letter-spacing: 0.03em; color: #121212; }
.raiz_m_01 { font-family: "Noto Sans JP", sans-serif; font-size: 21px; font-weight: 400; line-height: 1.6; letter-spacing: 0.03em; text-align: justify; color: #121212; }
.raiz_m_02 { font-family: "Noto Sans JP", sans-serif; font-size: 21px; font-weight: 600; line-height: 1.6; letter-spacing: 0.03em; }
.raiz_s_01 { font-family: "Noto Sans JP", sans-serif; font-size: 19px; font-weight: 400; line-height: 1.6; letter-spacing: 0.03em; text-align: justify; color: #121212; }
.raiz_p_01 { font-family: "Noto Sans JP", sans-serif; font-size: 17px; font-weight: 400; line-height: 2.0; letter-spacing: 0.03em; text-align: justify; color: #121212; }
.raiz_p_02 { font-family: "Noto Sans JP", sans-serif; font-size: 15px; font-weight: 400; line-height: 1.6; letter-spacing: 0.03em; text-align: justify; color: #121212; }
.raiz_ff_01 { font-family: "Noto Sans JP", sans-serif!important; }
.raiz_ptb_120 { padding: 120px 0px 120px 0px!important; }
.raiz_ptb_01 { padding: 120px 0px 0px 0px!important; }
.raiz_ptb_02 { padding: 60px 0px 120px 0px!important; }
.raiz_ptb_03 { padding: 60px 0px 0px 0px!important; }
.raiz_ptrbl_01 { padding: 6px 0px 6px 24px!important; background-color: #fcfcfc!important; }
.raiz_ptrbl_02 { padding: 6px 0px 6px 24px!important; }
.raiz_ptrbl_03 { padding: 24px 24px 24px 24px!important; }
.raiz_ptrbl_04 {  }
.raiz_pr_01 { padding-right: 6%!important; }
.raiz_mtb_00 { margin: 0px 0px 0px 0px!important; }
.raiz_mt_01 { margin-top: 96px; }
.raiz_mt_02 { margin-top: 60px; }
.raiz_mb_01 { margin-bottom: 12px; }
.raiz_mb_02 { margin-bottom: 12px!important; }
.raiz_bg_01 { background-image: url(/img/background_of_the_company_profile.webp); background-size: cover; background-position: center center; background-attachment: fixed; }
.raiz_bg_02 { background: hsla(0,0%,100%,0.96); padding: 36px; }
.raiz_bg_03 { background-image: url(/img/background_of_construction_track_record.webp); background-size: cover; background-position: center center; background-attachment: fixed; }
.raiz_bg_04 { background-image: url(/img/background_of_contact_form.webp); background-size: cover; background-position: center center; background-attachment: fixed; }
.raiz_waku_01 { width: 1200px; background: hsla(0,0%,100%,0.90); padding: 36px; border-radius: 12px; margin-left: auto; margin-right: auto; }
.raiz_waku_02 { background: hsla(0,0%,100%,0.90); padding: 16px; border-radius: 12px; }
.raiz_waku_03 { background: #FFFFFF; padding: 4px 12px 4px 12px; width: 100%; background-color: #ededed; }
.raiz_w_01 { width: 100%; }
.raiz_w_02 {  }
.raiz_w_03 { max-width: 1600px; }
.raiz_w_04 { max-width: 533px; }
.raiz_w_05 {  }
.raiz_w_06 {  }
.raiz_w_07 {  }
.raiz_w_08 {  }
.raiz_w_09 { width: 95%; margin-left: auto; margin-right: auto; }
.raiz_w_10 {  }
.raiz_tal_01 { text-align: left; }
.raiz_line_01 { border-bottom: double 6px #e65500; }
.raiz_1399_on { display: none; }
.raiz_1399_off { display: inline; }
.raiz_1199_on { display: none; }
.raiz_1199_off { display: inline; }
.raiz_991_on { display: none; }
.raiz_767_off { display: inline!important; }
.raiz_767_on { display: none!important; }
.raiz_991_off { display: inline; }
.raiz_576_on { display: none; }
.raiz_576_off { display: inline; }
.raiz_479_on { display: none; }
.raiz_479_off { display: inline; }
.raiz_alpha a:hover img { opacity: 0.7; filter: alpha(opacity=70); -ms-filter: "alpha(opacity=70)"; transition: all, 0.25s, linear; }
a.raiz_type_01 { color: #006e54; }
a.raiz_type_01:hover { color: #e65701; text-decoration: underline; }
a.raiz_type_02 { color: #121212; }
a.raiz_type_02:hover { color: #e65701; text-decoration: underline; }

/* サムネイル下端に重ねて表示するキャプション（thumbnail-classic は position: relative のため、絶対配置で最下部・最前面に固定） */
.raiz_thumb_overlay { position: absolute; right: 0; bottom: 0; left: 0; z-index: 10; }

/* ============================================================
   preloader（ページ読み込み中のくるくるアニメーション）の色変更
   ------------------------------------------------------------
   style.css の .cssload-circle .cssload-inner に
   border-color: rgba(55, 137, 235, 0.7)（青）
   box-shadow: rgba(55, 137, 235, 0.15)（青）
   が指定されているため、#e05800 に上書きする。
   ============================================================ */
.cssload-circle .cssload-inner {
  border-color: rgba(224, 88, 0, 0.7) !important;
  box-shadow: inset 0 0 10px rgba(224, 88, 0, 0.15) !important;
}

/* ============================================================
   会社概要「高圧受変電から太陽光発電まで幅広く対応。」左の引用符アイコン
   ------------------------------------------------------------
   元々は style.css の .qoute-subtitle:before で
   background: url("../images/quotes-34x21.png") …（青色のPNG画像）
   として表示されているため、色だけをCSSで変更することができない。
   同じ位置・サイズにオレンジ色（#e05800）のSVGアイコンを上書き指定する。
   ============================================================ */
.qoute-subtitle:before {
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath fill='%23e05800' d='M0 216C0 149.7 53.7 96 120 96h8c17.7 0 32 14.3 32 32s-14.3 32-32 32h-8c-30.9 0-56 25.1-56 56v8h64c35.3 0 64 28.7 64 64v64c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V320 288 216zm256 0c0-66.3 53.7-120 120-120h8c17.7 0 32 14.3 32 32s-14.3 32-32 32h-8c-30.9 0-56 25.1-56 56v8h64c35.3 0 64 28.7 64 64v64c0 35.3-28.7 64-64 64H320c-35.3 0-64-28.7-64-64V320 288 216z'/%3E%3C/svg%3E") no-repeat center !important;
  background-size: 34px 21px !important;
}

/* col-12 col-sm-6 col-lg-4 が横並びになった際、カードの高さを揃える */
.col-12.col-sm-6.col-lg-4 { display: flex; }
.col-12.col-sm-6.col-lg-4 > .quote-modern { display: flex; flex-direction: column; width: 100%; height: 100%; }
.col-12.col-sm-6.col-lg-4 > .quote-modern > .raiz_p_01 { flex: 1 1 auto; }

/* ============================================================
   フッター・ブランド列（ロゴ／紹介文／Get Social）のセンタリング修正
   ------------------------------------------------------------
   原因：この列には HTML 側で "wow fadeInRight" クラスが付与されており、
   スクロールでこの要素が画面に入った瞬間、右側から40pxスライドインする
   アニメーションが再生される。スクロール直後にスクリーンショットを撮ると
   アニメーション完了前の「まだ本来位置に収まりきっていない」フレームが
   写り込み、ロゴ・紹介文・SNSアイコンが数px〜数十px右にずれて見える。
   text-align や flexbox でのセンタリング指定自体は正しく効いており、
   アニメーションのtransformが一時的に上書きしていたことが原因。
   → フッターのこの列に限り、横スライドアニメーションを無効化し、
     常に最終位置（中央）で表示されるようにする。
   ============================================================ */
.footer-classic-body .wow {
  animation-name: none !important;
  -webkit-animation-name: none !important;
  opacity: 1 !important;
  transform: none !important;
  -webkit-transform: none !important;
}

/* 念のため、テキスト・SNSブロックのセンタリングも明示指定（幅769px未満） */
@media (max-width: 767.98px) {
  .footer-classic-body .raiz_pr_01 {
    padding-right: 0 !important;
    padding-left: 0 !important;
    text-align: center;
  }
  .footer-classic-body .raiz_pr_01 .footer-classic-brand {
    text-align: center;
  }
  .footer-classic-body .raiz_pr_01 p.raiz_p_02 {
    text-align: center;
  }
  .footer-classic-body .raiz_pr_01 .footer-classic-social {
    text-align: center;
  }
  /* .group-lg / .group-middle はテーマ側で既に
     display:inline-flex; justify-content:center; align-items:center;
     が定義済みのため、ここでは上書きしない。
     親要素の text-align:center だけでこのインラインブロックごと中央に寄る。 */
}

@media (max-width: 1920px) {
.raiz_h1_01 { font-size: 40px; }
.raiz_h2_01 { font-size: 30px; }
.raiz_m_01 { font-size: 21px; }
.raiz_m_02 { font-size: 21px; }
.raiz_s_01 { font-size: 19px; }
.raiz_p_01 { font-size: 17px; }
.raiz_p_02 { font-size: 15px; }
}
@media (max-width: 1799.98px) {
.raiz_h1_01 { font-size: 38.4px; }
.raiz_h2_01 { font-size: 29px; }
.raiz_m_01 { font-size: 20.5px; }
.raiz_m_02 { font-size: 20.5px; }
.raiz_s_01 { font-size: 18.5px; }
.raiz_p_01 { font-size: 16.6px; }
.raiz_p_02 { font-size: 14.7px; }
}
@media (max-width: 1599.98px) {
.raiz_h1_01 { font-size: 36.8px; }
.raiz_h2_01 { font-size: 28px; }
.raiz_m_01 { font-size: 20px; }
.raiz_m_02 { font-size: 20px; }
.raiz_s_01 { font-size: 18px; }
.raiz_p_01 { font-size: 16.2px; }
.raiz_p_02 { font-size: 14.4px; }
.raiz_w_03 { max-width: 96%; }
}
@media (max-width: 1399.98px) {
.raiz_h1_01 { font-size: 35.2px; }
.raiz_h2_01 { font-size: 27px; }
.raiz_m_01 { font-size: 19.5px; }
.raiz_m_02 { font-size: 19.5px; }
.raiz_s_01 { font-size: 17.5px; }
.raiz_p_01 { font-size: 15.8px; }
.raiz_p_02 { font-size: 14.1px; }
.raiz_mt_01 { margin-top: 60px; }
.raiz_1399_on { display: inline; }
.raiz_1399_off { display: none; }
}
@media (max-width: 1199.98px) {
.raiz_h1_01 { font-size: 33.6px; }
.raiz_h2_01 { font-size: 26px; }
.raiz_m_01 { font-size: 19px; }
.raiz_m_02 { font-size: 19px; }
.raiz_s_01 { font-size: 17px; }
.raiz_p_01 { font-size: 15.4px; }
.raiz_p_02 { font-size: 13.8px; }
.raiz_waku_01 { width: 94%; }
.raiz_1199_on { display: inline; }
.raiz_1199_off { display: none; }
}
@media (max-width: 991.98px) {
.raiz_h1_01 { font-size: 32px; line-height: 1.4; }
.raiz_h2_01 { font-size: 25px; }
.raiz_m_01 { font-size: 18.5px; }
.raiz_m_02 { font-size: 18.5px; }
.raiz_s_01 { font-size: 16.5px; }
.raiz_p_01 { font-size: 15px; }
.raiz_p_02 { font-size: 13.5px; }
.raiz_ptb_120 { padding: 96px 0px 96px 0px!important; }
.raiz_ptb_01 { padding: 96px 0px 0px 0px!important; }
.raiz_pr_01 { padding-right: 0%!important; }
.raiz_mb_01 { margin-bottom: 60px; }
.raiz_w_09 { width: 100%; }
.raiz_991_on { display: inline; }
.raiz_991_off { display: none; }
}
/* 「採用情報」ボタンをグローバルナビ右端から12pxの位置に固定配置
   ------------------------------------------------------------
   .rd-navbar-main-element は .rd-navbar-panel の兄弟要素であり内側の要素ではない。
   position:absolute にすると基準がページ全体になり位置が崩れるため、
   同じ固定ナビ内の .massage-link と同様に position:fixed を使う。
   ------------------------------------------------------------
   .rd-navbar-fixed は画面幅(max-width:991.98px)ではなく、RD Navbarプラグインが
   タッチデバイスと判断した際にJSで付与するクラス。iPad Pro 12.9インチ等は
   ビューポート幅が992px以上（例：1024px/1366px）でも .rd-navbar-fixed が付与されるため、
   このルールをmedia query内に閉じ込めていると適用されず、ボタン位置が崩れる。
   そのため画面幅を問わず .rd-navbar-fixed が付与された時点で常に適用する。
   ------------------------------------------------------------
   .button-sm は style.css 側で min-width:992px の時だけ padding が
   「11px 30px」まで急に大きくなり、ボタンの実際の高さが
   .rd-navbar-fixed .rd-navbar-panel の高さ(56px)を超えてしまう。
   top:13px の固定値だとこの大きいボタンでは下にはみ出して見えるため、
   top/bottomを0にして.rd-navbar-panelと同じ56pxの高さを持たせ、
   flexboxで縦中央揃えにすることで、ボタンの実際の高さに関わらず
   常にナビバーの中央に収まるようにする。 */
.rd-navbar-fixed .rd-navbar-main-element {
  position: fixed;
  top: 0;
  height: 56px;
  right: 12px;
  left: auto;
  float: none;
  z-index: 1090;
  display: flex;
  align-items: center;
}
.rd-navbar-fixed .rd-navbar-main-element .button-sm {
  padding: 6px 20px;
  line-height: 1.4;
}
@media (max-width: 767.98px) {
.raiz_h1_01 { font-size: 29.33px; }
.raiz_h2_01 { font-size: 24.66px; }
.raiz_m_01 { font-size: 17.66px; }
.raiz_m_02 { font-size: 17.66px; }
.raiz_s_01 { font-size: 15.66px; }
.raiz_p_01 { font-size: 14.33px; }
.raiz_p_02 { font-size: 13px; }
.raiz_pr_01 { padding-right: 0px!important; }
.raiz_mt_01 { margin-top: 48px; }
.raiz_mt_02 { margin-top: 48px; }
.raiz_767_on { display: inline!important; }
.raiz_767_off { display: none!important; }
}
@media (max-width: 575.98px) {
.raiz_h1_01 { font-size: 26.66px; }
.raiz_h2_01 { font-size: 24.33px; }
.raiz_m_01 { font-size: 16.83px; }
.raiz_m_02 { font-size: 16.83px; }
.raiz_s_01 { font-size: 14.83px; }
.raiz_p_01 { font-size: 13.66px; }
.raiz_p_02 { font-size: 12.5px; }
.raiz_ptb_120 { padding: 60px 0px 60px 0px!important; }
.raiz_ptb_01 { padding: 60px 0px 0px 0px!important; }
.raiz_ptb_03 { padding: 48px 0px 0px 0px!important; }
.raiz_ptrbl_04 { padding: 36px 3% 36px 3%!important; }
.raiz_mt_01 { margin-top: 0px; }
.raiz_mt_02 { margin-top: 36px; }
.raiz_mb_02 { margin-bottom: 6px!important; }
.raiz_waku_01 { padding: 24px 24px 24px 24px; }
.raiz_w_02 { width: 96%; margin-left: auto; margin-right: auto; }
.raiz_w_05 { width: 96%; }
.raiz_w_06 { width: 94%; margin-left: auto; margin-right: auto; }
.raiz_w_07 { width: 84%; text-align: left!important; margin-left: auto; margin-right: auto; }
.raiz_w_08 { width: 60%; text-align: left!important; text-align: justify!important; margin-left: auto!important; margin-right: auto!important; align-self: center; }
.raiz_w_10 { width: 84%; margin-left: auto; margin-right: auto; }
/* .unit-spacing-sm が親要素(.unit)に margin-left:-20px を付与し、
   行全体を左にずらしてしまうため、raiz_w_08 を含む行に限り打ち消す */
.unit:has(.raiz_w_08) { margin-left: 0 !important; }
.raiz_576_on { display: inline; }
.raiz_576_off { display: none; }
}
@media (max-width: 479.98px) {
.raiz_h1_01 { font-size: 24px; }
.raiz_h2_01 { font-size: 20px; }
.raiz_m_01 { font-size: 16px; }
.raiz_m_02 { font-size: 16px; }
.raiz_s_01 { font-size: 14px; }
.raiz_p_01 { font-size: 13px; }
.raiz_p_02 { font-size: 12px; }
.raiz_479_on { display: inline; }
.raiz_479_off { display: none; }
}



/* HeroImage用 */
.raiz_herohimage { font-family: "Noto Sans JP", sans-serif; font-size: 90px; font-weight: 700; line-height: 1.3; letter-spacing: 0.03em; color: #121212; text-align: left; }
.raiz_herohimage_s1 { display: inline-block; font-size: 36px; font-weight: 600; line-height: 1.8; margin-bottom: 18px; color: #e65500; }
.raiz_herohimage_s2 { display: inline-block; font-size: 32px; font-weight: 600; line-height: 1.6; margin-top: 24px; }
.raiz_herohimage_p { font-size: 84%; }
.raiz_hero_wrap { position: relative; }
.raiz_herohimage_waku { text-align: left; }
.raiz_herohimage_mt { margin-top: 24px; }
.raiz_herohimage_mw { min-width: 240px; }
.raiz_herohimage_ds_01 {  }
.raiz_herohimage_ds_02 {  }

@media (max-width: 2420px) {
.raiz_herohimage { font-size: 86px; }
.raiz_herohimage_s1 { font-size: 34px; }
.raiz_herohimage_s2 { font-size: 30px; }
}
@media (max-width: 2320px) {
.raiz_herohimage { font-size: 82px; }
.raiz_herohimage_s1 { font-size: 32px; }
.raiz_herohimage_s2 { font-size: 28px; }
}
@media (max-width: 2220px) {
.raiz_herohimage { font-size: 78px; }
.raiz_herohimage_s1 { font-size: 30px; }
.raiz_herohimage_s2 { font-size: 26px; }
}
@media (max-width: 2120px) {
.raiz_herohimage { font-size: 74px; }
.raiz_herohimage_s1 { font-size: 28px; }
.raiz_herohimage_s2 { font-size: 24px; }
}
@media (max-width: 2020px) {
.raiz_herohimage { font-size: 70px; }
.raiz_herohimage_s1 { font-size: 26px; }
.raiz_herohimage_s2 { font-size: 22px; }
}

@media (min-width: 992px) {
.raiz_herohimage_waku {
  position: absolute;
  top: 0px;
  left: 60px;
  z-index: 5;
  max-width: 888px;
}
}
@media (max-width: 991.98px) {
.raiz_herohimage_waku {
  position: static;
  max-width: none;
}
}
@media (min-width: 992px) and (max-width: 1200px) {
.raiz_herohimage_waku {
  top: -36px;
}
}

.raiz_herohimage_tal { text-align: left!important; justify-content: flex-start!important; }
a.raiz_hi_01 { color: #fff!important; }
a.raiz_hi_01:hover { background: #006a6c!important; border-color: #006a6c!important; }

/* 採用情報ページ（/recruitment/）表示中、グローバルナビの採用情報ボタン
   （#nav_recruit_link）に all.js が付与する .active クラスに対する
   背景色指定。

   注意：このボタン（.button-zakaria）は通常時、内部の ::after 擬似要素
   （ホバー時に縮小して消えるアニメーション用のオーバーレイ。
   .button-primary.button-zakaria:after { background: #e65701; } で
   色指定されている）が z-index の関係でボタン本体の background の
   手前に重なって表示される。そのため <a> 要素自身の background だけを
   上書きしても見た目には反映されない。実際に見えているのは ::after の
   ほうなので、あわせて上書きする。 */
a#nav_recruit_link.active,
a#nav_recruit_link.active:hover,
a#nav_recruit_link.active:focus,
a#nav_recruit_link.active::after,
a#nav_recruit_link.active:hover::after,
a#nav_recruit_link.active:focus::after { background: #006a6c!important; border-color: #006a6c!important; }
a.raiz_hi_02 { border-bottom: double 6px #e65500; }
a.raiz_hi_02:hover { color: #006a6c!important; border-bottom: double 6px #fff;  }

@media (max-width: 1920px) {
.raiz_herohimage { font-size: 66px; }
.raiz_herohimage_s1 { font-size: 24px; }
.raiz_herohimage_s2 { font-size: 20px; }
}
@media (max-width: 1799.98px) {
.raiz_herohimage { font-size: 66px; }
.raiz_herohimage_s1 { font-size: 22.66px; }
.raiz_herohimage_ds_01 { display: none!important; }
}
@media (max-width: 1599.98px) {
.raiz_herohimage { font-size: 54px; }
.raiz_herohimage_s1 { font-size: 21.33px; margin-bottom: 12px; }
}
@media (max-width: 1399.98px) {
.raiz_herohimage { font-size: 48px; }
.raiz_herohimage_s1 { font-size: 20px; }
.raiz_herohimage_s2 { font-size: 20px; }
}
@media (max-width: 1199.98px) {
.raiz_herohimage { font-size: 42px; }
.raiz_herohimage_ds_02 { display: none!important; }
}
@media (max-width: 991.98px) {
.raiz_herohimage { font-size: 48px; font-weight: 700; line-height: 1.4; letter-spacing: 0.03em; color: #121212; text-align: left; }
.raiz_herohimage_s1 { display: inline-block; font-size: 24px; font-weight: 600; line-height: 1.8; margin-bottom: 30px; color: #e65500; }
.raiz_herohimage_s2 { display: inline-block; font-size: 20px; font-weight: 600; line-height: 1.8; margin-top: 30px; }
.raiz_herohimage_waku { padding: 12px 36px 36px 36px; background-color:#fcfaf8; border-radius: 24px; width: 90%; margin-top: 30px; margin-left: auto; margin-right: auto; }
.raiz_herohimage_ds_01 { display: inline-block!important; }
.raiz_herohimage_ds_02 { display: inline-block!important; }
}
@media (max-width: 767.98px) {
.raiz_herohimage { font-size: 41.33px; }
.raiz_herohimage_s1 { font-size: 20.66px; }
.raiz_herohimage_s2 { font-size: 18px; }
}
@media (max-width: 575.98px) {
.raiz_herohimage { font-size: 34.66px; }
.raiz_herohimage_s1 { font-size: 17.33px; margin-bottom: 16px; }
.raiz_herohimage_s2 { font-size: 16px; margin-top: 16px; }
.raiz_herohimage_waku { padding: 6px 24px 24px 24px; margin-top: 30px; }
}
@media (max-width: 479.98px) {
.raiz_herohimage { font-size: 28px; }
.raiz_herohimage_s1 { font-size: 14px; }
.raiz_herohimage_s2 { font-size: 14px; }
}




/* ============================================================
   お問い合わせフォーム（contact.html / BtoB向け問い合わせフォーム）
   ------------------------------------------------------------
   style.css 側の .rd-mailform / .form-wrap / .form-input / .form-label /
   .checkbox-inline 等の既存フォーム部品はそのまま利用し、
   ここでは項目見出し・必須/任意バッジ・工事内容チェックボックスの
   グリッド配置・ファイル添付欄・送信ボタン周りのレイアウトのみを追加する。
   ============================================================ */

/* フォーム全体を内包するカード風の余白 */
.raiz_form_waku {
  background: hsla(0,0%,100%,0.96);
  border-radius: 12px;
  padding: 48px;
}

.raiz_form_waku_02 { background: hsla(52,100%,50%,0.48); border-radius: 48px; padding: 24px; }

/* 各項目のブロック間の余白 */
.raiz_form_group {
  margin-top: 36px;
}
.raiz_form_group:first-child {
  margin-top: 0;
}

/* 項目見出しラベル（例：「会社名・団体名」） */
.raiz_form_group_label {
  display: block;
  margin-bottom: 10px;
  font-weight: 600;
  color: #121212;
}

/* 必須／任意バッジ */
.raiz_required,
.raiz_optional {
  display: inline-block;
  margin-left: 10px;
  padding: 2px 10px;
  font-size: 12px;
  font-weight: 400;
  line-height: 1.8;
  border-radius: 3px;
  vertical-align: middle;
  letter-spacing: 0.03em;
}
.raiz_required {
  color: #ffffff;
  background-color: #e05800;
}
.raiz_optional {
  color: #767676;
  background-color: #ededed;
}

/* 項目の補足説明文 */
.raiz_form_note {
  display: block;
  margin-top: 8px;
  font-size: 13px;
  line-height: 1.6;
  color: #767676;
}

/* 工事内容チェックボックスのグリッド配置 */
.raiz_checkbox_grid {
  display: grid;
  grid-template-columns: repeat(1, 1fr);
  gap: 12px 24px;
  margin-top: 12px;
}
@media (min-width: 576px) {
  .raiz_checkbox_grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (min-width: 992px) {
  .raiz_checkbox_grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

/* セレクトボックスに矢印アイコンを追加（.form-input の下線デザインを踏襲） */
.form-wrap-select select.form-input {
  padding-right: 28px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23767676' d='M7 10l5 5 5-5z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right center;
  background-size: 20px 20px;
  cursor: pointer;
}

/* ファイル添付欄 */
.raiz_form_file {
  position: relative;
  margin-top: 8px;
  padding: 24px;
  text-align: center;
  border: 1px dashed #cfcfcf;
  border-radius: 8px;
  transition: border-color .25s;
}
.raiz_form_file:hover {
  border-color: #e05800;
}
.raiz_form_file_input {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  opacity: 0;
  cursor: pointer;
}
.raiz_form_file_label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 0;
  font-size: 15px;
  color: #767676;
  pointer-events: none;
}

/* プライバシーポリシー同意欄 */
.raiz_form_privacy {
  margin-top: 40px;
  padding-top: 30px;
  border-top: 1px solid #e5e5e5;
}

/* 送信ボタン */
.raiz_form_submit {
  margin-top: 40px;
  text-align: center;
}

@media (max-width: 767.98px) {
  .raiz_form_waku {
    padding: 28px 5%;
  }
}

/* ============================================================
   フォントカラー #9b9b9b → #232323 への変更
   ------------------------------------------------------------
   style.css 側で color: #9b9b9b; が指定されている全箇所を、
   同一セレクタで上書きして #232323 に変更する。
   （style.css 自体は変更せず、後から読み込まれる raiz.css 側で
   　上書きすることで対応）
   ============================================================ */
.table-project td,
.radio-inline,
.checkbox-inline,
.radio-panel-content,
.text-gray-500,
.rd-search-results .search-list-item,
.isotope-filters-list a,
.tabs-custom .nav-link,
.tabs-corporate .nav-link,
.progress-bar-circle span {
  color: #232323 !important;
}

/* ============================================================
   お問い合わせフォーム「ご希望の工事内容」チェックボックスの
   表示位置ずれ修正
   ------------------------------------------------------------
   原因：style.css の "* + .checkbox-inline { margin-top: 30px; }" が
   直前に兄弟要素を持つ全ての .checkbox-inline に margin-top:30px を
   付与する仕様のため、raiz_checkbox_grid内では1つ目の項目
   （高圧受変電設備工事）だけ margin-top が付かず、2つ目以降の項目との
   間で縦位置がずれて見えていた。
   → グリッド内の .checkbox-inline はすべて margin-top:0 とし、
   　項目間の間隔はグリッドの gap プロパティのみで統一する。
   ============================================================ */
.raiz_checkbox_grid .checkbox-inline {
  margin-top: 0 !important;
}

/* ==== recruitment page ==== */
.raiz_recruit_hero { position: relative; }
.raiz_recruit_hero img { width: 100%; height: min(60vw, 520px); object-fit: cover; display: block; }
.raiz_recruit_hero_overlay { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(18,18,18,0.72) 0%, rgba(18,18,18,0.42) 55%, rgba(18,18,18,0.10) 100%); display: flex; align-items: center; }
.raiz_recruit_hero_text { color: #fff; padding: 0 6%; }
.raiz_recruit_hero_text .raiz_p_01 { color: #fff; }
.raiz_category_nav { display: flex; flex-wrap: wrap; gap: 16px; justify-content: center; }
.raiz_category_nav a { display: flex; align-items: center; gap: 10px; padding: 18px 32px; border: 2px solid #e65500; border-radius: 6px; color: #121212; text-decoration: none; font-family: "Noto Sans JP", sans-serif; font-weight: 700; font-size: 18px; transition: all .2s ease; background: #fff; }
.raiz_category_nav a:hover { background: #e65500; color: #fff; }
.raiz_category_nav .raiz_cat_num { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: 50%; background: #e65500; color: #fff; font-size: 14px; flex-shrink: 0; }
.raiz_category_nav a:hover .raiz_cat_num { background: #fff; color: #e65500; }
.raiz_job_section_label { display: inline-flex; align-items: center; gap: 14px; margin-bottom: 8px; }
.raiz_job_section_label .raiz_cat_num { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 50%; background: #e65500; color: #fff; font-family: "Noto Sans JP", sans-serif; font-size: 20px; font-weight: 700; flex-shrink: 0; }
.raiz_job_card { border: 1px solid #e2e2e2; border-radius: 8px; overflow: hidden; background: #fff; height: 100%; display: flex; flex-direction: column; }
.raiz_job_card_img { width: 100%; /* aspect-ratio: 1/1; */ object-fit: cover; display: block; }
.raiz_job_card_body { padding: 28px; display: flex; flex-direction: column; gap: 14px; flex: 1 1 auto; }
.raiz_job_tags { display: flex; flex-wrap: wrap; gap: 8px; }
.raiz_job_tag { display: inline-block; padding: 5px 14px; border-radius: 20px; background: #fdeee3; color: #e65500; font-family: "Noto Sans JP", sans-serif; font-size: 13px; font-weight: 700; white-space: nowrap; }
.raiz_job_meta { display: flex; flex-direction: column; gap: 6px; }
.raiz_job_meta_row { display: flex; gap: 10px; align-items: baseline; }
.raiz_job_meta_label { flex-shrink: 0; width: 5.2em; color: #e65500; font-family: "Noto Sans JP", sans-serif; font-size: 14px; font-weight: 700; }
.raiz_job_meta_value { font-family: "Noto Sans JP", sans-serif; font-size: 15px; color: #121212; line-height: 1.7; }
.raiz_job_card_footer { margin-top: auto; padding-top: 10px; }
.raiz_job_badge_new { display: inline-block; padding: 4px 12px; background: #121212; color: #fff; font-size: 12px; font-family: "Noto Sans JP", sans-serif; letter-spacing: .05em; border-radius: 3px; margin-bottom: 10px; }
.raiz_reason_grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.raiz_reason_item { text-align: center; padding: 30px 20px; border: 1px solid #eee; border-radius: 8px; }
.raiz_reason_num { font-family: "Poppins", sans-serif; font-size: 34px; color: #e65500; font-weight: 700; line-height: 1; margin-bottom: 10px; }
@media (max-width: 767px) {
	.raiz_reason_grid { grid-template-columns: 1fr; }
	.raiz_category_nav { flex-direction: column; align-items: stretch; }
	.raiz_recruit_hero img { height: 390px; }
}



/* 採用情報 */
.raiz_r_waku_01 { margin-left: auto; margin-right: auto; border-radius: 24px; background-color: hsla(23,99%,45%,0.84) ; text-align: center; padding: 24px; width: 720px; }
.raiz_r_fctac { text-align: center!important; color: #fff!important; }
.raiz_r_lh { line-height: 1.5!important; }

@media (max-width: 767px) {
.raiz_r_waku_01 { width: 96%; }
}



