@charset "UTF-8";
/*
    Template: swell
    Theme Name: SWELL CHILD
    Theme URI: https://swell-theme.com/
    Description: SWELLの子テーマ
    Version: 1.0.0
    Author: LOOS WEB STUDIO
    Author URI: https://loos-web-studio.com/

    License: GNU General Public License
    License URI: http://www.gnu.org/licenses/gpl.html
*/


/*********************************
　　共通項目
*********************************/
/*コンテンツ幅*/
.l-article {
  max-width: none !important;
}
.l-mainContent__inner>.post_content {
  margin: 0;
}
/* ページタイトル */
.c-pageTitle{
  display: none;
}
.p_ttl .swl-fz {
  display:inline-block;
  position:relative;
  padding-bottom:20px;
}
.p_ttl .swl-fz::after{
  content:"";
  display:block;
  width:100%;
  height:8px;
  margin-top:12px;
  background-repeat:repeat-x;
  background-size:24px 8px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='8' viewBox='0 0 24 8'%3E%3Ccircle cx='3' cy='4' r='3' fill='%233F5D9B'/%3E%3Ccircle cx='15' cy='4' r='3' fill='%2322A98B'/%3E%3C/svg%3E");
}
/* 見出し下のドット装飾 */
.wp-block-heading.section-title {
  display:inline-block;
  padding-bottom:20px;
  background-repeat: repeat-x;
  background-position: 0 100%;
  background-size: 24px 8px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='8' viewBox='0 0 24 8'%3E%3Ccircle cx='3' cy='4' r='3' fill='%233F5D9B'/%3E%3Ccircle cx='15' cy='4' r='3' fill='%2322A98B'/%3E%3C/svg%3E");
}
.b_radius {
  border-radius:16px;
}
.b_radius img,.wp-block-image img {
  border-radius:16px;
}
.swell-block-box-menu__link {
  border-radius: 16px;
}

/*********************************
　　ヘッダー
*********************************/
/*ヘッダーバーに問い合わせ追加*/
.custom-headbar{
  background:#2F5A9A;
  color:#fff;
  font-size:18px;
}
.custom-headbar__inner{
  max-width:1200px;
  margin:0 auto;
  padding:8px 16px;
  display:flex;
  justify-content:flex-end;
  gap:24px;
}
.custom-headbar__link{
  color:#fff;
  text-decoration:none;
  display:flex;
  align-items:center;
  gap:10px;
}
.custom-headbar__link:hover{
  text-decoration:underline;
}
.custom-headbar__icon{
  width:20px;
  height:20px;
  object-fit:contain;
}
.alert-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:22px;
  height:22px;
  border-radius:50%;
  background:#fff;
  color:#2e5a9a;
  font-size:16px;
  font-weight:700;
  margin-right:6px;
}
/* ロゴとメニューの間の電話 */
.header-phone{
  margin-left:20px;
  margin-right: 20px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  line-height:1.6;
  white-space:nowrap;
  text-align: center;
}
.header-phone__label{
  font-size:18px;
  color:#22A98B;
}
.header-phone__number{
  font-size:28px;
  font-weight:700;
  color:#22A98B;
  text-decoration:none;
  display:flex;
  align-items:center;
  gap:6px;
}
.header-phone__number:hover{opacity:.85;}
.header-phone__icon{
  width:28px;
  height:28px;
  object-fit:contain;
}
/*メニュー*/
.c-gnav {
  gap: 20px;
}
.c-gnav > .menu-item > a .ttl{
  font-weight: bold;
  font-size: 16px;
}
/*********************************
　　MV
*********************************/
/*キャッチコピー*/
.post_content h2.mv_copy{
  font-size: 3.5rem;
  line-height: 1.3;
}
/*サークルバッジ*/
.circle-badges > .wp-block-group__inner-container{
  display:flex;
  gap:24px;
  flex-wrap:wrap;
}
.circle-badges p{
  width:120px;
  height:120px;
  border-radius:50%;
  background:#22A98B;
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  font-weight:600;
  margin:0;
  line-height:1.4;
  font-size: 20px;
}
/*********************************
　　ご相談の流れ
*********************************/
.cap_box.step-card{
  box-shadow:
    0 10px 20px rgba(0,0,0,0.06),
    0 25px 50px rgba(0,0,0,0.10);
}
.cap_box_ttl {
  padding: 12px;
}
/*STEPの高さを揃える*/
.step-columns .swell-block-column{
  display:flex;
}
.step-columns .step-card{
  display:flex;
  flex-direction:column;
}
.step-columns .step-card .cap_box_content{
  flex:1;
}
/*********************************
  Google Map 埋め込み（16:9）
*********************************/
.map-embed{
  position: relative;
  width: 100%;
  padding-top: 56.25%;
}

.map-embed iframe{
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}
/*********************************
  わたしたちについて
*********************************/
/*緊急時の問い合わせ*/
.swell-block-box-menu.is-style-fill .swell-block-box-menu__link{
  background:#3f5d9b;
  color:#fff;
  border-radius:12px;
  box-shadow:0 8px 18px rgba(0,0,0,0.12);
  border-bottom:4px solid #22a98b;
  transition: transform .25s, box-shadow .25s;
}
/* hoverで少し浮く */
.swell-block-box-menu.is-style-fill .swell-block-box-menu__link:hover{
  transform:translateY(-3px);
  box-shadow:0 14px 28px rgba(0,0,0,0.18);
}
/******************************
  CF7（このフォーム用：CF7_table / CF7_btn-area）
******************************/
/* テーブル本体 */
table.CF7_table{
  width: 100%;
  margin: 0 auto;
  border: none !important;
}
table.CF7_table tr{
  border-top: 1px solid #e5e5e5;
}
/* th / td 共通（SWELL側のtable装飾を打ち消し） */
table.CF7_table th,
table.CF7_table td{
  padding: 0.75rem 0.75rem !important;
  background: none !important;
  border: none !important;
  vertical-align: middle;
}
/* th の見た目 */
table.CF7_table th{
  width: 30%;
  font-size: 15px;
}
/* 入力欄（このテーブル内だけ） */
table.CF7_table input[type="text"],
table.CF7_table input[type="email"],
table.CF7_table input[type="tel"],
table.CF7_table input[type="url"],
table.CF7_table input[type="number"],
table.CF7_table input[type="search"],
table.CF7_table select,
table.CF7_table textarea{
  display: block;
  width: 100%;
  height: 45px;
  margin: 0;
  padding: 0 12px;
  border: 1px solid #d8d8d8;
  box-shadow: none;
  color: #5c6b80;
  font-size: 1em;
  line-height: 45px;
  transition: background-color 0.24s ease-in-out;
}
/* checkbox / radio は高さ固定しない */
table.CF7_table input[type="checkbox"],
table.CF7_table input[type="radio"]{
  width: auto;
  height: auto;
  line-height: normal;
  display: inline-block;
  margin-right: .4em;
}
/* テキストエリア */
table.CF7_table textarea{
  resize: vertical;
  min-height: 300px;
  line-height: 1.5em;
  padding: 0.5em;
  overflow: auto;
}
/* placeholder */
table.CF7_table ::placeholder{
  color: #797979;
}
/* 必須/任意ラベル */
table.CF7_table .CF7_req{
  font-size: .9em;
  font-weight: normal;
  padding: 2px 6px;
  background: var(--color_main);
  color: #fff;
  margin-right: 1em;
}
table.CF7_table .CF7_unreq{
  font-size: .9em;
  font-weight: normal;
  padding: 2px 6px;
  background: #22a98b;
  color: #fff;
  margin-right: 1em;
}
/* 送信ボタン（このフォームのボタンエリア内だけ） */
.CF7_btn-area .CF7_btn{
  text-align: center;
  margin: 20px;
}
.CF7_btn-area .wpcf7 input.wpcf7-submit{
  background-color: var(--color_main);
  border: 1px solid var(--color_main); /* ← typo修正済み */
  color: #fff;
  font-size: 1em;
  font-weight: normal;
  margin: 0 auto;
  padding: 16px 80px;
  transition: all 0.5s ease;
}
.CF7_btn-area .wpcf7 input.wpcf7-submit:hover{
  opacity: 0.8;
  box-shadow: 2px 2px 6px #EBEBEB;
}
/* スピナー */
.CF7_btn-area .wpcf7-spinner{
  width: 0;
  margin: 0;
}
table.CF7_table .wpcf7-list-item {
  display: block;
  margin-bottom: 10px;
  font-size: 15px;
}
table.CF7_table .wpcf7-list-item label {
  display: flex;
  align-items: center;
  line-height: 1.6;
}
table.CF7_table input[type="checkbox"] {
  transform: scale(1.1);
  margin-right: 10px;
}
/******************************
  レスポンシブ（このテーブルだけ）
******************************/
@media screen and (max-width: 768px){
  table.CF7_table{
    width: 90%;
  }

  table.CF7_table tr,
  table.CF7_table td,
  table.CF7_table th{
    display: block;
    width: 100% !important;
    line-height: 2.5em;
  }

  table.CF7_table th{
    background-color: #F6F8F8 !important;
  }
}


@media screen and (max-width: 600px){
  table.CF7_table{
    width: 100%;
  }

  table.CF7_table th,
  table.CF7_table td{
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  table.CF7_table th{
    padding-bottom: 0 !important;
  }

  .CF7_btn-area .CF7_btn{
    margin: 0;
  }

  .CF7_btn-area{
    margin-top: 0 !important;
  }
}

/******************************
  フッター
******************************/
.footer-icon{
  color:#fff !important;
  margin-right:6px;
}
.footer-contact{
  display:inline-flex;
  align-items:center;
  gap:8px;
  color:#fff;
  text-decoration:none;
}

.footer-icon-img{
  width:18px;
  height:18px;
  object-fit:contain;
  vertical-align:middle;
}



/*スマホ開閉メニュー*/
.c-spnav li a{
  padding:14px 16px;
}
.c-spnav a {
    border-bottom: 2px solid #fff;
}
.c-spnav .menu-item-538 a,
.c-spnav .menu-item-537 a,
.c-spnav .menu-item-536 a{
  background:#22a98b;
  color:#fff !important;
  font-weight:600;
}
.c-spnav .menu-item-538 a:hover,
.c-spnav .menu-item-537 a:hover,
.c-spnav .menu-item-536 a:hover{
  background:#3f5d9b;
}
@media (max-width:768px){
  .custom-headbar {
    display:none;
  }
/*ページタイトル*/
  .p_ttl span[style*="font-size"]{
    font-size:2rem !important;
  }

/*キャッチコピー*/
  .post_content h2.mv_copy{
    font-size: 2.2rem;
    line-height: 1.4;
  }
/*MVバッジ*/
  .circle-badges > .wp-block-group__inner-container{
    gap:14px;
  }
  .circle-badges p{
    width:80px;
    height:80px;
    font-size:14px;
    line-height:1.3;
  }
/*フッター縦並び*/
  .l-footer__nav{
    display:block;
    color: #3f5d9b;
  }
  .l-footer__nav li{
    display:block;
    width:100%;
    margin-bottom:8px;
  }
  .l-footer__nav li a{
    display:block;
    width:100%;
    padding:14px 16px;
    background:#f7f7f7;
    border-radius:6px;
    font-size: 16px;
  }
}





/* カードを基準にする */
.swell-block-column{
  position:relative;
}

/* 番号バッジ */
.app_num{
  position:absolute;
  top:12px;
  left:12px;
  width:36px;
  height:36px;
  background:#22A98B;
  color:#fff;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight:700;
  font-size:16px;
  margin:0;
  line-height:1;
  z-index:2;
}

/* pの余白リセット */
.app_num strong{
  font-weight:700;
}



.section-bg{
  background: linear-gradient(
    135deg,
    rgba(34,169,139,0.10) 0%,
    rgba(63,93,155,0.04) 100%
  );
}
.section-bg-reverse{
  background: linear-gradient(
    135deg,
    rgba(63,93,155,0.04) 0%,
    rgba(34,169,139,0.10) 100%
  );
}
