.h2_left_residence_blog{font-family:YakuHanMP, "Noto Serif", "Hiragino Mincho ProN", eatYuM, "Sawarabi Mincho", Meiryo, serif}.h2_left_residence_blog .subtitle{letter-spacing:0px}.h2_left_residence_blog .headding_wrap{font-size:2rem}.h2_left_residence_blog .subtitle_wrap,.h2_left_residence_blog .editable_wrap{font-size:1.2rem}.h2_left_residence_blog .spacer-item_wrap:nth-child(1) .editable_wrap{font-size:2rem}@media only screen and (min-width: 768px){.h2_left_residence_blog .headding_wrap{font-size:3.5rem}.h2_left_residence_blog .subtitle_wrap,.h2_left_residence_blog .editable_wrap{font-size:1.5rem}.h2_left_residence_blog .spacer-item_wrap:nth-child(1) .editable_wrap{font-size:3.5rem}}
.blog_list{padding:4rem 0}.blog_list .section_inner{position:relative}.blog_list .main-column{margin-bottom:5rem}.blog_list_h3{text-align:center;font-size:1.5rem;margin-bottom:2rem;font-weight:normal}.blog_list_article{max-width:315px;margin:auto}.blog_list .article{border-bottom:1px solid #e9e8e8;margin-bottom:2.5rem;padding-bottom:1.5rem}.blog_list .article-thumb{margin-bottom:1.5rem}.blog_list .article-category{font-size:1.2rem;position:relative}.blog_list .article-category .category-color{position:absolute;width:30px;height:10px;background-color:#ff5721;left:-40px;top:50%;margin-top:-5px}.blog_list .article h1{font-size:1.7rem;font-weight:normal}.blog_list .article-date{font-size:1.1rem}.blog_list .article-link{display:none}.blog_list .article footer{padding-left:1rem}.blog_list .side-column{max-width:315px;margin:auto}.blog_list .side-column h4{font-size:1.5rem;font-weight:normal;padding-bottom:1rem;border-bottom:1px solid #e9e8e8}.blog_list .side-column_item{margin-bottom:5rem;padding-bottom:1rem}.blog_list .side-column_item.banner .duplicatable{padding-top:2rem}.blog_list .side-column_item.banner .duplicatable-content:nth-child(n+2){margin-top:1rem}.blog_list .side-column_item.archive .year{padding-top:2rem}.blog_list .side-column_item.archive .year>li{font-size:1.5rem}.blog_list .side-column_item.archive .year>li>a{display:block;width:100%;padding:2rem 1rem;position:relative}.blog_list .side-column_item.archive .year>li>a:after{content:"";border-top:1px solid #666;border-right:1px solid #666;width:8px;height:8px;transform:rotate(135deg);position:absolute;right:10px;top:50%;margin-top:-.8rem;transition:transform .3s}.blog_list .side-column_item.archive .year>li.open a:after{transform:rotate(-45deg);margin-top:-.5rem}.blog_list .side-column_item.archive .month{font-size:0;padding:0 1rem;border-top:1px solid #e9e8e8}.blog_list .side-column_item.archive .month li{font-size:1.4rem;display:inline-block;width:50%;padding:1rem;text-align:center;border-bottom:1px solid #e9e8e8}.blog_list .side-column_item.archive .month li:nth-child(even){border-left:1px solid #e9e8e8}.blog_list .side-column_item.archive .month li:nth-last-child(-n+2){border-bottom:none}.blog_list .side-column_item.archive .month li:last-child{border-bottom:1px solid #e9e8e8}.blog_list .side-column_item.category li{border-bottom:1px solid #e9e8e8}.blog_list .side-column_item.category a{position:relative;padding:2rem;display:block}.blog_list .side-column_item.category .category-color{position:absolute;width:14px;height:6px;background-color:#ff5721;left:0;top:50%;margin-top:-3px}.blog_list .side-column_item.tag ul{padding:2rem 0}.blog_list .side-column_item.tag li{display:inline-block;margin:0 1rem 1rem 0}.blog_list .side-column_item.tag a{font-size:1.4rem;padding:0 1.2rem;border:1px solid #e9e8e8;border-radius:3px;display:block;line-height:1.7;color:#999}.blog_list .pagination{text-align:center}.blog_list .pagination li{display:inline-block;padding:0 1rem;font-weight:bold}@media only screen and (min-width: 768px){.blog_list .section_inner{min-height:700px}.blog_list .column-container{display:flex}.blog_list .main-column{width:100%}.blog_list_article{max-width:none}.blog_list .article-category span:before{content:"";position:absolute;width:100vw;height:1px;top:5px;left:-100vw;background-color:inherit;display:block}.blog_list .article-link{display:block}.blog_list .side-column{width:270px;flex-shrink:0;margin:0 0 0 5rem}.blog_list .side-column_item{margin-bottom:4rem}.blog_list .side-column_item.archive .month{padding:0 0 1rem 2rem;border-top:none}.blog_list .side-column_item.archive .month li{width:100%;padding:0 0 1rem 0;border-bottom:none;text-align:left}.blog_list .side-column_item.archive .month li:nth-child(even){border-left:none}}
#footer-section{z-index:3}@media only screen and (max-width: 768px){.jobs #footer-section .detail-side{display:none}}.footer-block .footer_menu_center .detail-side{bottom:0;transition:bottom .5s}.footer_menu_center{background-color:#fff;font-size:1.4rem}.footer_menu_center .footer-company{position:relative}.footer_menu_center .footer-company::before{content:"";position:absolute;top:0;left:50%;width:100%;height:1px;background-color:#ccc;transform:translateX(-50%)}.footer_menu_center .logo-side{padding:2rem 0;text-align:center}.footer_menu_center .logo{max-width:120px;margin:0 auto 2rem}.footer_menu_center .logo img{width:auto;max-width:100%}.footer_menu_center .logo div{display:inline}.footer_menu_center .menu-side{display:none}.footer_menu_center .detail-side{text-align:center;font-size:1.4rem;display:-ms-flexbox;display:flex;-ms-flex-direction:row-reverse;flex-direction:row-reverse;background-color:#fff;position:fixed;bottom:-100%;left:0;width:100%;transition:bottom .8s .2s}.footer_menu_center .detail-side_first{width:80px;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;position:relative}.footer_menu_center .detail-side_first .tel{line-height:1.4;letter-spacing:0}.footer_menu_center .detail-side_first .tel a{position:absolute;width:100%;height:100%;top:0;left:0}.footer_menu_center .detail-side_first .tel:after{content:"phone";font-family:"Material Icons";font-size:3.6rem;font-weight:400;font-style:normal;display:inline-block;line-height:1;text-transform:none;letter-spacing:normal;word-wrap:normal;white-space:nowrap;direction:ltr;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;-webkit-font-feature-settings:"liga";font-feature-settings:"liga"}.footer_menu_center .detail-side_first .hour{font-size:1.2rem;display:none}.footer_menu_center .detail-side_second{-ms-flex-positive:1;flex-grow:1}.footer_menu_center .letter{letter-spacing:.1em}.footer_menu_center .copy{border-top:1px solid #ccc;font-size:1.2rem;padding:2rem 0;text-align:center}.footer_menu_center .sns-side{margin-bottom:2rem}.footer_menu_center .sns-side .duplicatable-container{display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center}.footer_menu_center .sns-side .duplicatable-content{max-width:70px;padding:0 1rem}.footer_menu_center .section_btn a{white-space:nowrap}.footer_menu_center .back-top{cursor:pointer;width:40px;height:40px;border-radius:20px;border:1px solid #f44336;position:absolute;bottom:10px;right:10px;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.footer_menu_center .back-top .arrow:before{content:"▲";color:#f44336}@media only screen and (min-width: 768px){.footer_menu_center .footer-company{padding:3.5rem 0 2rem}.footer_menu_center .footer-company_inner{display:flex;flex-wrap:wrap}.footer_menu_center .logo{display:block;margin:0 auto}.footer_menu_center .menu-block{order:3;width:100%}.footer_menu_center .menu-side{display:block;padding:3rem 0 5rem}.footer_menu_center .menu-side .duplicatable-container{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;text-align:center;-ms-flex-pack:end;justify-content:center}.footer_menu_center .menu-side .duplicatable-content{width:auto;padding:0 1rem;font-size:1.4rem}.footer_menu_center .logo-side{order:1;width:200px}.footer_menu_center .detail-side{order:2;-ms-flex-direction:row;flex-direction:row;-ms-flex-pack:justify;justify-content:space-between;text-align:left;margin:auto 0 auto auto;width:calc(100% - 220px);position:static;background-color:transparent}.footer_menu_center .detail-side_first{margin-bottom:4rem;font-size:1.8rem;text-align:right;display:block}.footer_menu_center .detail-side_first .tel{font-size:2.2rem}.footer_menu_center .detail-side_first .tel:after{content:none}.footer_menu_center .detail-side_first .tel a{position:relative;pointer-events:none}.footer_menu_center .detail-side_first .hour{display:block}.footer_menu_center .detail-side_second{max-width:300px;margin-bottom:3rem}.footer_menu_center .detail-side>div{margin-bottom:0;width:100%}.footer_menu_center .copy{padding:1.5rem 0;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;-ms-flex-align:center;align-items:center}.footer_menu_center .sns-side{margin-bottom:0}.footer_menu_center .sns-side .duplicatable-content{width:60px}.footer_menu_center .section_btn{margin:auto 0 auto auto}.footer_menu_center .back-top{bottom:80px}}@media only screen and (max-width: 768px){.footer_menu_center .detail-side_first .tel{font-size:0 !important}.footer_menu_center .detail-side_second .section_btn{max-width:none}.footer_menu_center .detail-side_second .section_btn a{border-radius:0}}@media only screen and (min-width: 768px){_:-ms-lang(x)::-ms-backdrop,.footer_menu_center .detail-side{align-items:center;margin:unset}_:-ms-lang(x)::-ms-backdrop,.footer_menu_center .detail-side_second{margin-left:2rem}}@media only screen and (max-width: 768px){_::-webkit-full-page-media,_:future,:root .detail-side_first{text-align:center}_::-webkit-full-page-media,_:future,:root .tel.letter.editable{display:grid}}
@charset "UTF-8";#section-wrapper{background-color:#fff}#section-wrapper .headding{    font-family: YakuHanMP, 'Noto Serif', 'Hiragino Mincho ProN', eatYuM, 'Sawarabi Mincho', Meiryo, serif;
    line-height: ;
    letter-spacing: em;
}#section-wrapper .subtitle{    font-family: YakuHanMP, 'Noto Serif', 'Hiragino Mincho ProN', eatYuM, 'Sawarabi Mincho', Meiryo, serif;
    line-height: ;
    letter-spacing: em;
}#section-wrapper .letter{    font-family: YakuHanMP, 'Noto Serif', 'Hiragino Mincho ProN', eatYuM, 'Sawarabi Mincho', Meiryo, serif;
    line-height: ;
    letter-spacing: em;
}@media only screen and (min-width:769px){}#loading{position:fixed;top:0;width:100%;height:100%;background:rgba(0,0,0,0.5);z-index:9999;display:none}#loading .loading_inner{width:100%;height:90px;position:absolute;top:50%}#loading .loading_inner .loader_animation,#loading .loading_inner .loader_animation:before,#loading .loading_inner .loader_animation:after{border-radius:50%;width:2.4rem;height:2.4rem;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation:load7 1.3s infinite ease-in-out;animation:load7 1.3s infinite ease-in-out}#loading .loading_inner .loader_animation{color:#fff;font-size:12px;margin:10px auto;position:relative;top:-30px;text-indent:-9999rem;-webkit-transform:translateZ(0);transform:translateZ(0);-webkit-animation-delay:-0.16s;animation-delay:-0.16s}#loading .loading_inner .loader_animation:before,#loading .loading_inner .loader_animation:after{content:'';position:absolute;top:0}#loading .loading_inner .loader_animation:before{left:-3.4rem;-webkit-animation-delay:-0.32s;animation-delay:-0.32s}#loading .loading_inner .loader_animation:after{left:3.4rem}@-webkit-keyframes load7{0%,80%,100%{box-shadow:0 2.45rem 0 -1.25rem}40%{box-shadow:0 2.45rem 0 0}}@keyframes load7{0%,80%,100%{box-shadow:0 2.45rem 0 -1.25rem}40%{box-shadow:0 2.45rem 0 0}}#loading .circle{position:fixed;top:50%;left:50%;width:50px;height:50px;margin:-25px 0 0 -25px;border-radius:50%;border:8px solid #f00;border-right-color:transparent;-webkit-animation:spin .8s linear infinite;animation:spin .8s linear infinite}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg);opacity:.2}50%{-webkit-transform:rotate(180deg);transform:rotate(180deg);opacity:1.0}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg);opacity:.2}}@keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg);opacity:.2}50%{-webkit-transform:rotate(180deg);transform:rotate(180deg);opacity:1.0}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg);opacity:.2}}

/* =============================================== */
/***** フォント設定 *****/
/* =============================================== */
/* 英語用のフォント設定 */
.font-en {
  font-family: 'Roboto', sans-serif !important;
  font-weight: 500;
}
/* 日本語用のフォント設定 */
.font-ja {
  font-family: 'Noto Sans JP', sans-serif !important;
}

/* =============================================== */
/***** FV *****/
/* =============================================== */
@media (min-width: 768px) {
  .mainvisual_desk_generic {
    position: relative;
    height: 100vh;
  }
}
.mainvisual_desk_generic .section-image_bg {
  background-color: rgba(0, 0, 0, 0.3);
}

/*** FVにあるスクロールボタン ***/
.mainvisual_desk_generic .one_page_scroll_btn {
  /* --- 位置と基本設定 --- */
  position: absolute;
  z-index: 1;
  bottom: 3%;
  left: 50%;
  transform: translateX(-50%); /* Y軸のtransformは不要なためXのみに修正 */
  cursor: pointer;
  width: auto;

  /* --- テキストスタイル --- */
  color: #ffffff;
  font-size: 1.5rem;
  font-weight: 500;
  letter-spacing: .2em;
  text-transform: uppercase;
  
  /* --- 縦線を入れるための余白と準備 --- */
  padding-bottom: 4rem; /* 縦線を表示するスペース */
}
/* 縦線を作成するための疑似要素（::after） */
.mainvisual_desk_generic .one_page_scroll_btn::after {
  content: ''; /* 疑似要素には必須 */
  position: absolute;
  
  /* 縦線の見た目 */
  width: 1px; /* 線の太さ */
  height: 3rem; /* 線の長さ */
  background-color: #ffffff;

  /* 縦線の位置（テキストの真下に配置） */
  left: 50%;
  bottom: 0;
  transform: translateX(-50%);
  
  /* 縦線のアニメーションを設定 */
  animation: scroll-down 1.5s ease-in-out infinite;
}
/* 縦線を動かすためのアニメーションを定義 */
@keyframes scroll-down {
  0% {
    transform: translate(-50%, -1rem); /* 少し上に移動した状態から開始 */
    opacity: 0;
  }
  50% {
    opacity: 1; /* アニメーションの中間で表示 */
  }
  100% {
    transform: translate(-50%, 0); /* 定位置に移動して消える */
    opacity: 0;
  }
}

/* ============================================== */
/***** ヘッダー *****/
/* ============================================== */
/*** ナビゲーション下線スタイル (PCとSP共通) ***/
/* --- 1. リンクの基本スタイル --- */
#global-nav .gnav_accordion_wide .gnav_pc .gnav_items li {
  display: flex;
  align-items: center;
}
#global-nav .gnav_accordion_wide .gnav_pc .gnav_items li a {
  height: auto;
}
#global-nav .gnav_accordion_wide .gnav_pc .gnav_items li a,
.sidebar-box .gnav_items li a {
  position: relative; /* ::afterの基準位置にするため */
  display: inline-block;
  text-decoration: none;
}

/* --- 下線本体 (疑似要素) --- */
#global-nav .gnav_accordion_wide .gnav_pc .gnav_items li a::after,
.sidebar-box .gnav_items li a::after {
  content: ''; /* 疑似要素には必須 */
  position: absolute;
  bottom: 0; /* リンク要素の最下部に配置 */
  left: 0;
  width: 100%;
  height: 4px; /* 下線の太さ */
  background-color: transparent; /* 初期状態は透明 */
  transition: background-color 0.3s ease;
}
/* --- 2. ホバー時のスタイル --- */
#global-nav .gnav_accordion_wide .gnav_pc .gnav_items li a:hover::after,
.sidebar-box .gnav_items li a:hover::after {
  background-color: #2C9ADE; /* ホバー時に下線の色を変更 */
}
/* --- 3. 現在地のページのスタイル --- */
#global-nav .gnav_accordion_wide .gnav_pc .gnav_items li.active a::after,
.sidebar-box .gnav_items li.active a::after {
  background-color: #FF8800; /* 現在地のページの下線の色 */
}

/* --- PC用のお問い合わせボタンの背景色 --- */
#global-nav .gnav_accordion_wide .gnav_items li:not(.gnav-submenu):last-child,
#global-nav > div > div > nav.gnav.gnav_sp.gnav_container.gnav_text-color > div.sidebar-box.gnav_bg.gnav_bg-color > ul > li:nth-child(9) > a {
  background: #0E3078 !important;
  color: #fff !important;
}

/* =============================================== */
/***** フッター *****/
/* =============================================== */
div.footer-company::before {
  display: none;
}

/* =============================================== */
/***** TOPに戻るボタン *****/
/* =============================================== */
/* ボタン本体 (通常時) */
.footer_menu_center .back-top {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 45px;
  height: 45px;
  border-radius: 50%; /* 正円にする */
  background-color: #FF8800; /* 背景色を黄に */
  border: 1px solid #FF8800; /* 枠線を黄に */
  cursor: pointer;
  transition: background-color 0.3s, color 0.3s; /* 変化を滑らかに */
}
.footer_menu_center .back-top .arrow::before {
  content: "▲";
  color: #ffffff;
}
::before, ::after {
  text-decoration: inherit;
  vertical-align: inherit;
}

/* =============================================== */
/***** トップ画像（トップページを除く） *****/
/* =============================================== */
@media (min-width: 767.9px) {
  section:first-of-type .content {
    padding: 0;
  }
  section > div > div.h1_section {
    height: 560px;
  }
}
@media (max-width: 768px) {
  section > div > div.h1_section {
    height: 100vh;
  }
}
section > div > div.h1_section .section-image_bg {
  background-color: rgba(0, 0, 0, 0.3);
  z-index: 1;
}
.h1_section .section_inner {
  z-index: 2;
}

/* =============================================== */
/***** ボタン *****/
/* =============================================== */
a.linker-style_type-4 {
  font-weight: bold !important;
}
a.linker-style_type-4:not(
  .infomation_all_generic a.linker-style_type-4,
  div.footer-company a.linker-style_type-4) {
  /* --- デフォルトの見た目 --- */
  color: #2C9ADE !important;
  border: 2px solid #2C9ADE !important; /* ボーダーを追加 */
  background-color: #fff !important; /* 背景色を白に */

  /* --- アニメーションの準備 --- */
  /* 背景画像を「青色」と「白色」の2色グラデーションにする */
  background-image: linear-gradient(
    to right,
    #2C9ADE 50%, /* ホバー時の背景色 */
    #fff 50%     /* デフォルトの背景色 */
  );
  background-size: 200% 100%; /* 背景をボタンの2倍のサイズにする */
  background-position: right bottom; /* 最初は右側(白色)を見せる */

  /* --- アニメーションの設定 --- */
  /* 背景位置、文字色、ボーダー色を0.5秒かけて変化させる */
  transition: all 0.5s ease;
}

/*** 送信ボタン ***/
.formapps_border_light .send_btn input{
  display: inline-block;
  font-weight: bold;
  border-radius: 5rem;
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;

  /* --- デフォルトの見た目 --- */
  color: #2C9ADE;
  border: 2px solid #2C9ADE; /* ボーダーを追加 */
  background-color: #fff; /* 背景色を白に */

  /* --- アニメーションの準備 --- */
  /* 背景画像を「青色」と「白色」の2色グラデーションにする */
  background-image: linear-gradient(
    to right,
    #2C9ADE 50%, /* ホバー時の背景色 */
    #fff 50%     /* デフォルトの背景色 */
  );
  background-size: 200% 100%; /* 背景をボタンの2倍のサイズにする */
  background-position: right bottom; /* 最初は右側(白色)を見せる */

  /* --- アニメーションの設定 --- */
  /* 背景位置、文字色、ボーダー色を0.5秒かけて変化させる */
  transition: all 0.5s ease;
}
/* --- ホバー時の変化 --- */
.formapps_border_light .send_btn input:hover,
a.linker-style_type-4:hover:not(
  .infomation_all_generic a.linker-style_type-4,
  div.footer-company a.linker-style_type-4) {
  opacity: 1 !important;
  color: #fff !important;
  border-color: #2C9ADE; /* 背景色と同じにして一体感を出す */
  
  /* 背景の位置を左側にスライドさせる */
  background-position: left bottom;
}


/* =============================================== */
/***** タイトル *****/
/* =============================================== */
.fit_card_two .image-side_text .title {
  font-weight: bold;
 /* letter-spacing: 1.2rem; */
}

/* =============================================== */
/***** サブタイトル *****/
/* =============================================== */
.subtitle.editable:not(.mainvisual_desk_generic .subtitle.editable),
.fit_card_two .text-side .subtitle {
  font-weight: 500;
  font-size: 18px;
}

/* =============================================== */
/***** 画像 *****/
/* =============================================== */
@media (min-width: 767.9px) {
  div.frame-image {
    border-radius: 0 0 8rem 0;
  }
}
@media (max-width: 768px) {
  div.frame-image:not(.new_catchcopy_simple div.frame-image, .fit_card_two div.frame-image) {
    border-radius: 0 0 4rem 0;
  }
}

#section_657871 div.frame-image,
#section_657543 div.frame-image,
.new_catchcopy_simple div.frame-image {
  border-radius: 0;
}

/* =============================================== */
/***** カード *****/
/* =============================================== */
.standard_content_text_dup .text-box,
#content-wrapper #section-wrapper .three_cards_dot_separator .duplicatable-content {
  border: none;
  border-radius: 8px;
  /*box-shadow: 0 4px 4px rgba(0, 0, 0, 0.25);*/
  background-color: #fff;
  height: 100%;
}
#content-wrapper #section-wrapper .three_cards_dot_separator .duplicatable-content,
#content-wrapper #section-wrapper .three_cards_dot_separator .duplicatable-content:nth-child(1) {
  border: none;
}

@media (min-width: 767.9px) {
  #content-wrapper #section-wrapper .three_cards_dot_separator .duplicatable-container {
    flex-wrap: nowrap;
    column-gap: 3rem;
  }

  .fit_card_two .text-side_inner {
    max-width: 480px;
    width: 100%;
    height: 100%;
  }
  .fit_card_two .text-side {
    margin: -15rem auto 10rem;
    display: -ms-flexbox;
    display: flex;
    height: 100%;
  }
}

/* =============================================== */
/***** 各お問い合わせ *****/
/* =============================================== */
.infomation_all_generic {
  position: relative;
}
.infomation_all_generic::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(to bottom, rgba(255, 255, 255, 1) 0%, rgba(108, 181, 277, 0.8) 100%);
  z-index: 1;
}
.infomation_all_generic .section_inner {
  z-index: 2;
}

/* =============================================== */
/***** 各ページ項目（ページ下部） *****/
/* =============================================== */
@media (min-width: 767.9px) {
  .square_four_images_with_text .image-frame-bg .frame-image::before {
    content: ''; /* 疑似要素を表示するためのお約束 */
    position: absolute; /* 親要素を基準に配置 */
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;

    /* オーバーレイの色と透明度を指定 */
    background-color: rgba(0, 0, 0, 0.4);
    border-radius: 0 0 8rem 0;

    /* オーバーレイをクリックの邪魔にさせない */
    pointer-events: none;

    z-index: 1;
  }
  .square_four_images_with_text .text-side {
    letter-spacing: 0.2em;
    z-index: 2;
  }
  .square_four_images_with_text .section_h3 {
    font-weight: 500 !important;
    font-size: 30px !important;
  }
}
@media (max-width: 768px) {
  .square_four_images_with_text .image-frame-bg .frame-image::before {
    content: ''; /* 疑似要素を表示するためのお約束 */
    position: absolute; /* 親要素を基準に配置 */
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;

    /* オーバーレイの色と透明度を指定 */
    background-color: rgba(0, 0, 0, 0.4);
    border-radius: 0 0 4rem 0;

    /* オーバーレイをクリックの邪魔にさせない */
    pointer-events: none;

    z-index: 1;
  }
  .square_four_images_with_text .text-side {
    letter-spacing: 0.1em;
    z-index: 2;
  }
  .square_four_images_with_text .section_h3 {
    font-weight: 500 !important;
  }
}

/* =============================================== */
/***** h2,h3 *****/
/* =============================================== */
@media (min-width: 767.9px) {
  h2, h2 *, h3,
  .h2_section .section_h2,
  .half_fit_card .section_h3,
  h3.section_h3.editable.headding:not(
    .vertical_icon_dup h3.editable.headding) {
    font-weight: bold;
    font-size: 36px;
  }
  div.frame-image *,
  .standard_content_text_dup .headding,
  .standard_content_text_dup .text-box-headding_wrap *,
  .three_cards_dot_separator .text-side .headding *,
/*  .fit_card_two h3.section_h3.editable.headding *, */
  .new_catchcopy_simple h3.editable.headding *,
  .standard_content_text_two .headding,
  .standard_content_text_two .headding *,
  .card_icon h3.editable.headding,
  .card_icon h3.editable.headding * {
    font-size: 24px !important;
    letter-spacing: 0.2rem;
    line-height: 1.5;
  }
.fit_card_two h3.section_h3.editable.headding * {
    font-size: 24px !important;
    letter-spacing: 0.2rem;
}
}
/*** SP向けのスタイル (768px以下で適用) ***/
@media (max-width: 768px) {
  /* PCで36pxだったものを → 28pxに変更 */
  h2, h3,
  .h2_section .section_h2,
  .h2_section .section_h2 *,
  .h2_left h2_section,
  .half_fit_card .section_h3,
  .title_simple_wide_reversible h3.section_h3.editable.headding,
  h3.section_h3.editable.headding:not(
    div.frame-image *,
    .standard_content_text_dup .headding,
    .standard_content_text_dup .text-box-headding_wrap *,
    .three_cards_dot_separator .text-side .headding *,
    .fit_card_two h3.section_h3.editable.headding *,
    .new_catchcopy_simple h3.editable.headding *,
    .standard_content_text_two .headding,
    .standard_content_text_two .headding *,
    .card_icon h3.editable.headding,
    .card_icon h3.editable.headding *,
    .vertical_icon_dup h3.editable.headding,
    .square_four_images_with_text .section_h3,
    .blog_posts .post_archives_title,
    .blog_posts .post_category_title,
    .blog_posts .post_popnews_title,
    .blog_posts .post_tag_title) {
    font-weight: bold;
    font-size: 28px !important;
  }
  /* PCで24pxだったものを → 20pxに変更 */
  div.frame-image,
  .standard_content_text_dup .headding,
  .standard_content_text_dup .text-box-headding_wrap,
  .three_cards_dot_separator .text-side .headding,
  .fit_card_two h3.section_h3.editable.headding,
  .new_catchcopy_simple h3.editable.headding,
  .standard_content_text_two .headding,
  .card_icon h3.editable.headding,
  .vertical_icon_dup h3.editable.headding,
  .square_four_images_with_text .section_h3 {
    font-weight: bold;
    font-size: 20px !important;
    letter-spacing: 0.1rem; /* 字間も少し調整 */
  }
}

/* グラデーションをボーダー画像として適用 */
.title_sub .section_inner,
.h2_section .section_inner {
  max-width: 560px;
  border-image: linear-gradient(
    to right, /* グラデーションの方向 */
    rgba(0, 0, 0, 0) 20%,
    #0E3078 20% 45%,  /* 1色目 */
    #FF8800 45% 55%,  /* 2色目 */
    #0E3078 55% 80%,  /* 3色目 */
    rgba(0, 0, 0, 0) 80%
  ) 1;
  border-bottom: 5px solid;
}

/* =============================================== */
/***** HOME *****/
/* =============================================== */
.fit_card_two .image-side .frame-image {
  position: relative;
  /* アイコンなどが画像の下に隠れないように */
  isolation: isolate;
}
@media (min-width: 767.9px) {
  .fit_card_two .image-side .frame-image::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
  
    /* ここで薄い黒を表現しています */
    background-color: rgba(0, 0, 0, 0.3); 
    border-radius: 0 0 8rem 0;
  }
}
@media (max-width: 768px) {
  .fit_card_two .image-side .frame-image::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
  
    /* ここで薄い黒を表現しています */
    background-color: rgba(0, 0, 0, 0.3); 
    border-radius: 0;
  }
}

/* =============================================== */
/***** 事業内容 *****/
/* =============================================== */
/*** テーブル ***/
.table_light .table_wrap .tr .th {
  background-color: rgba(44, 154, 222, 0.1);
}
.table_light .table_wrap .tr {
  font-weight: 500;
  color: #000;
}

/*** 水道・衛生設備工事① ***/
#section_657509 .half_fit_card .section_inner {
  flex-direction: row;
}
#section_657509 .half_fit_card .text-side_inner {
  margin-left: auto;
  margin-right: 2rem;
}

/*** 対応物件 ***/
@media (min-width: 767.9px) {
  .circle-box_02 .circle_wrap {
    max-width: 260px;
    margin: auto;
  }
}
.circle-box_02 .image_wrap .image-frame-bg:before:not(#section_657799 .circle-box_02 .image_wrap .image-frame-bg:before) {
  background-color: rgba(0, 0, 0, 0.4);
}
#section_657799 .circle-box_02 .image_wrap .image-frame-bg:before {
  background-color: rgba(0, 0, 0, 0) !important;
}
.circle-box_02 .image_wrap .image_text {
  font-size: 2.5rem;
}
/*.circle-box_02 .image_wrap .image-frame-bg {
  box-shadow: 40px 4px 0px #2C9ADE;
}*/

/* =============================================== */
/***** 弊社の施工 *****/
/* =============================================== */
/*** 自社の強み ***/
.half_wide_circle_basisdesign .duplicatable-content::before {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 85%;
  background-color: #0E3078;
}
.half_wide_circle_basisdesign .text-side {
  position: relative;
  z-index: 2;
  padding: 0 6rem;
  border-radius: 50%;
  overflow: hidden;
  background-color: #ECF6FD;
}
.half_wide_circle_basisdesign .image-side .image-frame-bg {
  background-color: #FF8800 !important;
}

/*** 有資格者による施工 ***/
.standard_content_text_two .text-box {
  width: 100%;
  border: none;
  background-color: white;
  border-radius: 8px;
  padding: 50px 20px;
  position: relative;
  display: flex;
  justify-content: center;
  overflow: hidden;
}

/*** 工事の流れ ***/
@media (min-width: 767.9px) {
  .flow_cards .duplicatable-container {
    display: flex;
    justify-content: center;
    row-gap: 2rem;
    align-items: stretch;
  }
  .flow_cards .duplicatable-content {
    counter-increment: section;
    display: flex;
    width: 20%;
    flex-direction: row;
    justify-content: space-between;
  }
  .flow_cards .duplicatable-content_inner {
    height: 100%;
  }
  .flow_cards .image-frame-bg {
    border-radius: 0 0 4rem 0;
  }
}
.flow_cards .text-side {
  color: #fff;
}
.flow_cards .headding {
  font-size: 20px !important;
}

/*** 保有設備・体制, 品質・安全管理 ***/
@media (min-width: 767.9px) {
  .standard_content_text_dup .duplicatable-container h3.section_h3.editable.headding,
  .three_cards_dot_separator  .duplicatable-container h3.section_h3.editable.headding {
    min-height: 96px;
  }
}
.standard_content_text_dup .duplicatable-container h3.section_h3.editable.headding,
.three_cards_dot_separator  .duplicatable-container h3.section_h3.editable.headding {
  padding-bottom: 20px !important;
  border-bottom: 3px solid #2C9ADE !important;
}
/*.text-box-headding_wrap {
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}*/

/*** 品質・安全管理 ***/
#content-wrapper #section-wrapper .three_cards_dot_separator .image-side {
  width: 40%;
}

/* =============================================== */
/***** 働く環境*****/
/* =============================================== */
@media only screen and (min-width: 768px) {
  .title_simple_wide_reversible .text-side {
    display: flex;
    gap: 15px;
  }
  .title_simple_wide_reversible .text-box {
     margin-top: none;
     width: 60%;
  }
}
.title_simple_wide_reversible .section-image_bg {
  background-color: rgba(255, 255, 255, 0.8);
}
.title_simple_wide_reversible .text-box {
  position: relative;
  margin-top: 30px;
  padding: 3rem;
  border: none;
  border-radius: 8px;
  /* background-color: rgba(255, 255, 255, 0.8); */
  border: solid 3px #fff;
}

/* =============================================== */
/***** 採用情報 *****/
/* =============================================== */
/*** こんな方からの求人応募 ***/
@media (max-width: 768px) {
  .circle-box_02 .image_wrap .image_text {
    font-size: 1.6rem;
  }
}

/*** 経験者の方 ***/
@media (min-width: 767.9px) {
  .standard_content_text_dup .duplicatable-container {
    align-items: stretch;
  }
  .standard_content_text_dup .text-box {
    align-items: flex-start;
  }
}
@media screen and (min-width: 767.9px) {
  .vertical_icon_dup h3.editable.headding {
    font-weight: bold;
    font-size: 24px !important;
  }
}

@media screen and (max-width: 768px) {
  /* --- カードの基本設定 --- */
  /* カードを縦に並べる設定 */
  .vertical_icon_dup .duplicatable-container {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 15px; /* カード間の隙間 */
  }
  /* カード自体の幅と、高さの自動調整 */
  .vertical_icon_dup .section-content.duplicatable-content {
    width: 90%;
    margin: 0;
    height: auto; /* ★高さの計算を内容に合わせる */
  }

  /* --- ここからがレイアウトの核心部分 --- */
.vertical_icon_dup .duplicatable-content_inner {
    padding-top: 0;
    position: relative;
  }
  /* カード内部のレイアウトをFlexboxで中央揃えに */
  .vertical_icon_dup .text-side {
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative; /* 背景要素(.text-side_bg)の基準点にする */
    min-height: 140px; /* カードの最小の高さを指定 */
    padding: 20px;
  }
  /* 背景の青い図形をコンテンツの背面に配置 */
  .vertical_icon_dup .text-side_bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1; /* アイコンとテキストの背面に配置 */
  }
  /* アイコンとテキストのコンテナ */
  .vertical_icon_dup .text-side_inner {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px; /* アイコンとテキストの間の隙間 */
    z-index: 2; /* 背景より手前に表示 */
    padding: 0 !important; /* 余計なpaddingをリセット */
    /* 以前のGrid設定を解除 */
    display: flex !important;
    grid-template-columns: none !important;
  }  
  /* アイコンとテキストの位置関係をリセット */
  .vertical_icon_dup .text-side_image,
  .vertical_icon_dup .spacer-item_wrap {
    grid-column: auto !important;
    grid-row: auto !important;
    align-self: initial !important;
  }
  .vertical_icon_dup .text-side .image-frame {
    width: 60px;
    margin: 0 auto;
  }
  /* 不要なサブタイトル領域を非表示に */
  .vertical_icon_dup .spacer-item_wrap:last-of-type {
    grid-column: 2;
    grid-row: 2;
    align-self: start; /* 下の余白を詰めるため、セル上端に寄せる */
  }
  /* 内部の不要な余白をリセット */
  .vertical_icon_dup .spaceable {
    padding: 0 !important;
  }
}

/*** 未経験者の方 ***/
@media (min-width: 767.9px) {
  .width-limit .section_inner {
    max-width: 1000px;
  }
  .vertical_icon_dup .duplicatable-content {
    margin: 0 20px;
  }
  .vertical_icon_dup .text-side {
    width: 100%;
    height: 100%;

    left: 50%;
    transform: translateX(-50%);
  }
  .vertical_icon_dup .image-frame-bg {
    border-radius: 0 0 8rem 0;
  }
}
@media (max-width: 768px) {
  .vertical_icon_dup .image-frame-bg {
    border-radius: 0 0 8rem 0;
  }
}

/* =============================================== */
/***** 会社案内 *****/
/* =============================================== */
/*** テーブル ***/
.table_light_generic .table_wrap .tr .th {
  background-color: rgba(44, 154, 222, 0.1);
}
.table_light_generic .table_wrap .tr {
  font-weight: 500;
  color: #000;
}

/* =============================================== */
/***** お問い合わせ *****/
/* =============================================== */
.formapps {
  font-weight: bold;
  color: #000;
  letter-spacing: 0.2rem;
}
/* =============================================== */
/***** サイトマップ *****/
/* =============================================== */
.title_text_generic02 .text-side .text,
.title_text_generic02 .text-side .text * {
  text-align: center;
  font-size: 1.8rem !important;
  font-weight: 500;
  line-height: 3.5rem;
}

/* =============================================== */
/***** ブログ・施工事例 *****/
/* =============================================== */
@media (min-width: 767.9px) {
  .blog_posts .posts_title,
  .showcase_chart .showcase_chart_title {
    font-size: 36px !important;
    font-weight: 600 !important;
  }
  .showcase_chart .post_popnews_title,
  .showcase_chart .showcase_chart_sidebar_title {
    font-size: 24px !important;
  }
}
@media (max-width: 768px) {
  .blog_posts .posts_title,
  .showcase_chart .showcase_chart_title {
    font-size: 28px !important;
    font-weight: 600 !important;
  }
  .showcase_chart .post_popnews_title,
  .showcase_chart .showcase_chart_sidebar_title,
  .blog_posts .post_archives_title,
  .blog_posts .post_category_title,
  .blog_posts .post_popnews_title,
  .blog_posts .post_tag_title {
    font-size: 20px !important;
  }
/*  .blog_posts .banner_text .banner_link,
  .showcase_chart .banner_text .banner_link {
    font-size: 20px;
    font-weight: 600;
    background: #FF8800 !important;
    border-radius: 5em;
  }*/
  .showcase_chart .banner_text:nth-child(3),
  .blog_posts .banner_text:nth-child(3) {
    font-size: 15px !important;
  }
}

.blog_posts .banner_text .banner_link,
.showcase_chart .banner_text .banner_link {
  font-weight: 600;
  background: #FF8800 !important;
  border-radius: 5em;
}

.blog_posts .banner_text ._color_,
.showcase_chart .banner_text ._color_ {
  color: #0E3078 !important;
}
.blog_posts .banner_text:nth-child(3),
.showcase_chart .banner_text:nth-child(3) {
  font-weight: 600;
}
/*** ブログ ***/
.breadcrumb_item {
  display: flex;
  place-items: center;
}
.blog_posts_index .blog_posts_sidebar {
  flex: 1 0 320px !important;
  margin: 0 0 0 84px;
}

/* =============================================== */
/***** e-thanks *****/
/* =============================================== */
.thanks_page {
  background-color: #eee;
}
.catch.text-side {
  margin: 0;
}
.thanks_page .catch {
  padding: 5%;
  background-color: #fff;
  border: none !important;
}
.thanks_page .headding_wrap,
.thanks_page .subtitle_wrap {
  display: flex;
  justify-content: center;
}

.thanks_page .catch_text {
  padding: 2rem 0;
  font-size: 36px !important;
  font-weight: bold;
  color: #333;
  text-align: center !important;
  letter-spacing: 0.1em
}

.thanks_page .subtitle_wrap .catch_subtext {
  color: #0E3078;
  font-weight: bold;
  text-align: center !important;
  letter-spacing: 0.1em
}








/* =============================================== */
/***** その他*****/
/* =============================================== */
div.editable.letter * {
  font-size: 15px;
  font-weight: 400;
}
@media (min-width: 767.9px) {
  div.editable.letter.tel-linker * {
    font-size: 20px !important;
    font-weight: 400;
  }
}
@media (max-width: 768px) {
  div.editable.letter.tel-linker * {
    font-size: 18px !important;
    font-weight: 400;
  }
}
/*div.subtitle.editable */br:only-child/*:not(div.subtitle.editable br:only-child)*/ {
  /* display: none; */
}
#section_657509 .rv_section.half_fit_card .image-frame-bg.center-icon .edit-btns {
  left: 70% !important;
}

.title_simple_wide_reversible .section-image_bg {
    background: #0E3078;
    opacity: .4 !important;
}

/* 20251128 修正 */
.footer_menu_center .logo {
    max-width: 200px;
}
#footer-section .footer_menu_center .footer-company .tel a font{
    font-size: 2.6rem;
}
#footer-section .footer_menu_center :is(.detail-side_first,.duplicatable-container a,.copyright) {
    color: #fff;
}
.footer_menu_center .detail-side_first .tel:after {
    color: #0e3078;
}
.formapps .dummy_form_area .input_text input,
.formapps .dummy_form_area .input_text textarea,
.formapps .form_area .input_text input,
.formapps .form_area .input_text textarea {
    border: 1.8px solid #c1c1c1;
}
.h2_left .section_inner {
    margin: 0 auto;
}
.mainvisual_desk_generic .catch_text {
    line-height: 1.2;
}
@media (max-width: 768px) {
#footer-section .footer_menu_center .footer-company .tel a font {
    font-size: 0;
}
}
@media only screen and (min-width: 768px) and (max-width: 1200px) {
#section-wrapper .fit_card_two .image-side .image-frame-bg {
    padding-top: 64%;
}
}
@media (min-width: 600px) {
.half_wide_circle_basisdesign .subtitle br,
#section_657530 .subtitle br {
    display: none;
}
}
@media (min-width: 525px) {
.mainvisual_desk_generic :is(.catch_text,.catch_subtext) br,
.time_table .time_text br {
    display: none;
}
}
@media (max-width: 480px) {
#section-wrapper .fit_card_two .image-side .image-frame-bg {
    padding-top: 100%;
}
}