@charset "UTF-8";
/*
色・余白・フォントサイズなどの変数定義
*/
/*
再利用可能なスタイル関数を定義
メディアクエリや装飾処理に使用。
*/
/* ===============================
   Modern Reset (2025)
================================ */
/* すべての要素にbox-sizingと余白リセット */
*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

/* ベース要素 */
html,
body {
  height: 100%;
  line-height: 1.5;
  font-size: 16px;
  font-family: "Noto Sans JP", "Yu Gothic Medium", YuGothic, "Hiragino Kaku Gothic ProN", sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  -webkit-text-size-adjust: 100%;
     -moz-text-size-adjust: 100%;
          text-size-adjust: 100%;
}

/* 見出し・段落 */
h1,
h2,
h3,
h4,
h5,
h6,
p {
  font-weight: normal;
  overflow-wrap: break-word;
  margin: 0;
}

p {
  line-height: 1.6;
}

/* リスト系 */
ul,
ol {
  list-style: none;
  padding: 0;
  margin: 0;
}

/* リンク */
a {
  text-decoration: none;
  color: inherit;
}

/* テーブル */
table {
  border-collapse: collapse;
  border-spacing: 0;
}

/* フォーム系 */
input,
button,
select,
textarea {
  font: inherit;
  border: none;
  outline: none;
  background: none;
  vertical-align: middle;
}

/* 画像・メディア */
img,
picture,
video,
canvas,
svg {
  max-width: 100%;
  height: auto;
}

/* ブロック表示に統一（HTML5セクショナル要素） */
article,
aside,
footer,
header,
hgroup,
main,
nav,
section {
  display: block;
}

/* 引用タグ（ブラウザによるマークアップを無効に） */
blockquote,
q {
  quotes: none;
}

blockquote::before,
blockquote::after,
q::before,
q::after {
  content: "";
}

/* アクセシビリティ補助 */
abbr[title],
dfn[title] {
  border-bottom: 1px dotted;
  cursor: help;
}

/* 罫線 */
hr {
  display: block;
  border: none;
  border-top: 1px solid #ccc;
  margin: 1em 0;
  height: 1px;
}

/*
HTMLタグの基本スタイルを定義
*/
/* 段落 */
p {
  line-height: 1.8;
  font-size: clamp(13px, 2vw, 15px);
}

/* 画像 */
img {
  max-width: 100%;
  height: auto;
  vertical-align: bottom;
}

/* リスト */
dl, dt, dd, ol, ul, li {
  list-style: none;
}

/* スマホ時のフォームの文字サイズ */
@media screen and (max-width: 768px) {
  input[type=text],
  input[type=password],
  textarea,
  select {
    font-size: 16px;
  }
}
/*
レイアウト全体の構造（枠組み）を定義
*/
/* 
-------------------------------------------------------------------

corp

------------------------------------------------------------------- */
@media screen and (max-width: 1020px) {
  .corp_container {
    margin-left: 15px;
    margin-right: 15px;
  }
}
.corp_container.low {
  padding-top: 200px;
}
@media (max-width: 768px) {
  .corp_container.low {
    padding-top: 120px;
  }
}
.corp_container .inner {
  width: 1000px;
  margin: 0 auto;
}
@media screen and (max-width: 1020px) {
  .corp_container .inner {
    width: auto;
  }
}

/* 
-------------------------------------------------------------------

growddy

------------------------------------------------------------------- */
.grow_container {
  width: 1190px;
  margin-left: auto;
  margin-right: auto;
}
@media screen and (max-width: 1210px) {
  .grow_container {
    width: auto;
    margin-left: 15px;
    margin-right: 15px;
  }
}
.grow_container.low {
  padding: 170px 0 0;
}
@media screen and (max-width: 1100px) {
  .grow_container.low {
    margin-top: 0px;
  }
}
@media screen and (max-width: 768px) {
  .grow_container.low {
    margin-top: -50px;
  }
}

/*
パーツ単体のスタイルを定義
*/
/* 
-------------------------------------------------------------------

corp

------------------------------------------------------------------- */
.corp_button a {
  margin-left: auto;
  margin-right: auto;
  padding: 5px;
  text-align: center;
  font-size: clamp(16px, 1.5vw, 20px);
  font-weight: bold;
  color: #fff;
  border-radius: 50px;
  display: block;
}
.corp_button.col_or {
  background: #ff6600;
}
.corp_button.col_bl a {
  border: 1px #3d3496 solid;
  background: #3d3496;
  position: relative;
  transition: 0.3s ease-in-out;
}
.corp_button.col_bl a::after {
  content: "";
  width: 0;
  height: 0;
  border-style: solid;
  border-top: 8px solid transparent;
  border-bottom: 8px solid transparent;
  border-left: 14px solid #ffffff;
  border-right: 0;
  position: absolute;
  top: 32%;
  right: 17px;
}
.corp_button.col_bl a:hover {
  color: #3d3496;
  background: #fff;
}
.corp_button.col_bl a:hover::after {
  border-left: 14px solid #3d3496;
}
.corp_button.col_gr a {
  border: 1px #0bb453 solid;
  background: #0bb453;
  position: relative;
  transition: 0.3s ease-in-out;
}
.corp_button.col_gr a::after {
  content: "";
  width: 0;
  height: 0;
  border-style: solid;
  border-top: 8px solid transparent;
  border-bottom: 8px solid transparent;
  border-left: 14px solid #ffffff;
  border-right: 0;
  position: absolute;
  top: 32%;
  right: 17px;
}
.corp_button.col_gr a:hover {
  color: #0bb453;
  background: #fff;
}
.corp_button.col_gr a:hover::after {
  border-left: 14px solid #0bb453;
}
.corp_button.contact a {
  border: 1px #ff6600 solid;
  background: #ff6600;
  position: relative;
  transition: 0.3s ease-in-out;
}
.corp_button.contact a::after {
  content: "";
  width: 0;
  height: 0;
  border-style: solid;
  border-right: 8px solid transparent;
  border-left: 8px solid transparent;
  border-top: 14px solid #ffffff;
  border-bottom: 0;
  position: absolute;
  top: 35%;
  right: 17px;
}
.corp_button.contact a:hover {
  color: #ff6600;
  background: #fff;
}
.corp_button.contact a:hover::after {
  border-top: 14px solid #ff6600;
}

/* 
-------------------------------------------------------------------

growddy

------------------------------------------------------------------- */
.g_navi_button {
  align-items: center;
  display: flex;
}
.g_navi_button.navi_ml {
  margin-left: 45px;
}
@media screen and (max-width: 1000px) {
  .g_navi_button.navi_ml {
    margin-left: 20px;
  }
}
@media screen and (max-width: 768px) {
  .g_navi_button.navi_ml {
    margin-right: 10px;
    margin-left: 10px !important;
  }
}
.g_navi_button a {
  width: 100%;
  padding: 15px 15px;
  font-size: clamp(16px, 1.5vw, 21px);
  font-weight: bold;
  letter-spacing: 0.05em;
  color: #fff;
  background: #f0347e;
  border: 1px #f0347e solid;
  border-radius: 50px;
  display: block;
  transition: 0.3s ease-in-out;
}
@media screen and (max-width: 1100px) {
  .g_navi_button a {
    padding: 10px 10px;
  }
}
.g_navi_button a:hover {
  color: #f0347e;
  background: #fff;
}
.g_navi_button a:hover .g_free {
  color: #f0347e;
  border: 2px #f0347e solid;
  transition: color 0.3s ease-in-out, border-color 0.3s ease-in-out;
}
.g_navi_button a:hover .g_arw {
  background: #f0347e;
}
.g_navi_button a:hover .g_arw:before, .g_navi_button a:hover .g_arw:after {
  background: #f0347e;
}
.g_navi_button .g_free {
  margin-right: 13px;
  padding: 5px 10px;
  font-size: clamp(13px, 1.5vw, 16px);
  color: #fff;
  text-align: center;
  border: 2px #fff solid;
  border-radius: 50px;
}
.g_navi_button .g_arw {
  margin-right: 5px;
  margin-left: 15px;
  display: inline-block;
  vertical-align: middle;
  width: 20px;
  height: 2px;
  background: #fff;
  position: relative;
  top: -2px;
  transition: 0.3s ease-in-out;
}
@media screen and (max-width: 768px) {
  .g_navi_button .g_arw {
    margin-right: 0px;
  }
}
.g_navi_button .g_arw:before, .g_navi_button .g_arw:after {
  content: "";
  display: block;
  width: 10px;
  height: 2px;
  background: #fff;
  position: absolute;
  right: -3px;
  transition: 0.3s ease-in-out;
}
.g_navi_button .g_arw:before {
  top: -3px;
  transform: rotate(45deg);
}
.g_navi_button .g_arw:after {
  bottom: -3px;
  transform: rotate(-45deg);
}

/* cta_button */
.g_cta_button a {
  width: 450px;
  padding: 12px 35px 12px 18px;
  font-size: clamp(18px, 1.8vw, 28px);
  font-weight: bold;
  letter-spacing: 0.05em;
  color: #fff;
  background: #f0347e;
  border: 1px #f0347e solid;
  border-radius: 50px;
  align-items: center;
  justify-content: space-between;
  display: flex;
  transition: 0.3s ease-in-out;
  box-sizing: border-box;
}
@media screen and (max-width: 1000px) {
  .g_cta_button a {
    width: 350px;
  }
}
@media screen and (max-width: 768px) {
  .g_cta_button a {
    width: 100%;
    padding: 12px 10px 12px 10px;
    box-sizing: border-box;
  }
}
.g_cta_button a:hover {
  color: #f0347e;
  background: #fff;
}
.g_cta_button a:hover .g_free {
  color: #f0347e;
  border: 2px #f0347e solid;
  transition: color 0.3s ease-in-out, border-color 0.3s ease-in-out;
}
.g_cta_button a:hover .g_arw {
  background: #f0347e;
}
.g_cta_button a:hover .g_arw:before, .g_cta_button a:hover .g_arw:after {
  background: #f0347e;
}
.g_cta_button .g_free {
  margin-right: 13px;
  padding: 5px 16px;
  font-size: clamp(13px, 1.5vw, 24px);
  color: #fff;
  text-align: center;
  border: 2px #fff solid;
  border-radius: 50px;
}
.g_cta_button .g_arw {
  margin-right: 0px;
  margin-left: 15px;
  display: inline-block;
  vertical-align: middle;
  width: 37px;
  height: 2px;
  background: #fff;
  position: relative;
  top: -2px;
  transition: 0.3s ease-in-out;
}
@media screen and (max-width: 768px) {
  .g_cta_button .g_arw {
    width: 20px;
    margin-right: 15px;
  }
}
.g_cta_button .g_arw:before, .g_cta_button .g_arw:after {
  content: "";
  display: block;
  width: 10px;
  height: 2px;
  background: #fff;
  position: absolute;
  right: -3px;
  transition: 0.3s ease-in-out;
}
.g_cta_button .g_arw:before {
  top: -3px;
  transform: rotate(45deg);
}
.g_cta_button .g_arw:after {
  bottom: -3px;
  transform: rotate(-45deg);
}

.g_auto a {
  margin-left: auto;
  margin-right: auto;
}

/*
汎用クラスを定義
*/
/* ===============================
   _utility.scss
   汎用ユーティリティクラス
================================ */
/* フェードインエフェクト */
.fade {
  transition: 0.3s ease-in-out;
}

.fade:hover {
  opacity: 0.5;
  filter: alpha(opacity=60);
}

@media screen and (max-width: 768px) {
  .fade:hover {
    opacity: 1;
    filter: alpha(opacity=100);
  }
}
/* テキスト位置 */
.center {
  text-align: center;
}

.alignR {
  text-align: right !important;
}

.alignL {
  text-align: left !important;
}

/* フォントファミリー */
.gothic {
  font-family: "メイリオ", Meiryo, "Hiragino Kaku Gothic Pro", "游ゴシック", YuGothic, sans-serif;
}

.mincho {
  font-family: "Times New Roman", Times, "Hiragino Mincho ProN", "游明朝", YuMincho, serif;
}

.roboto {
  font-family: "Roboto", sans-serif;
}

.notosan {
  font-family: "Noto Sans JP", sans-serif;
}

/* テキストサイズ・装飾 */
.bold {
  font-weight: bold;
}

.plh {
  line-height: 1.8;
}

.txt120 {
  font-size: 120%;
}

.txt110 {
  font-size: 110%;
}

.txt90 {
  font-size: 90%;
}

.txt80 {
  font-size: 80%;
}

/* 文字色 */
.re {
  color: #FF7D78;
}

.gray {
  color: #999999;
}

.bl {
  color: #28A5D5;
}

/* マージン（上下左右） */
.mt5 {
  margin-top: 5px;
}

.mb5 {
  margin-bottom: 5px;
}

.mt10 {
  margin-top: 10px;
}

.mb10 {
  margin-bottom: 10px;
}

.mt15 {
  margin-top: 15px;
}

.mb15 {
  margin-bottom: 15px;
}

.mt20 {
  margin-top: 20px;
}

.mb20 {
  margin-bottom: 20px;
}

.mt25 {
  margin-top: 25px;
}

.mb25 {
  margin-bottom: 25px;
}

.mt30 {
  margin-top: 30px;
}

.mb30 {
  margin-bottom: 30px;
}

.mt35 {
  margin-top: 35px;
}

.mb35 {
  margin-bottom: 35px;
}

.mt40 {
  margin-top: 40px;
}

.mb40 {
  margin-bottom: 40px;
}

.mt45 {
  margin-top: 45px;
}

.mb45 {
  margin-bottom: 45px;
}

.mt50 {
  margin-top: 50px;
}

.mb50 {
  margin-bottom: 50px;
}

.mt55 {
  margin-top: 55px;
}

.mb55 {
  margin-bottom: 55px;
}

.mt60 {
  margin-top: 60px;
}

.mb60 {
  margin-bottom: 60px;
}

.mt65 {
  margin-top: 65px;
}

.mb65 {
  margin-bottom: 65px;
}

.mt70 {
  margin-top: 70px;
}

.mb70 {
  margin-bottom: 70px;
}

.mt75 {
  margin-top: 75px;
}

.mb75 {
  margin-bottom: 75px;
}

.mt80 {
  margin-top: 80px;
}

.mb80 {
  margin-bottom: 80px;
}

.mt85 {
  margin-top: 85px;
}

.mb85 {
  margin-bottom: 85px;
}

.mt90 {
  margin-top: 90px;
}

.mb90 {
  margin-bottom: 90px;
}

.mt95 {
  margin-top: 95px;
}

.mb95 {
  margin-bottom: 95px;
}

.mt100 {
  margin-top: 100px;
}

.mb100 {
  margin-bottom: 100px;
}

.mr5 {
  margin-right: 5px;
}

.mr10 {
  margin-right: 10px;
}

/* ブロック表示 */
.block {
  display: block;
}

/* レスポンシブ表示切替 */
.pc-none {
  display: none;
}

@media screen and (max-width: 414px) {
  .pc-none {
    display: block;
  }
}
.sp-none {
  display: block;
}

@media screen and (max-width: 414px) {
  .sp-none {
    display: none;
  }
}
/* 
-------------------------------------------------------------------

  contact form7

------------------------------------------------------------------- */
/*送信完了のメッセージを非表示*/
.wpcf7-mail-sent-ok {
  display: none !important;
}

/* 送信ボタン下に表示されるメッセージを非表示 */
.wpcf7-response-output {
  display: none !important;
}

/* reCAPTCHA */
.grecaptcha-badge {
  visibility: hidden;
}

/* contactform7 ローディングアニメーション（スピナー）非表示   */
.wpcf7-spinner {
  display: none !important;
}

/* contactform7 カスタムスピナー表示 */
#custom-loader {
  position: fixed;
  inset: 0;
  background: rgba(255, 255, 255, 0.6);
  z-index: 10000;
  display: none;
  align-items: center;
  justify-content: center;
}

.loader {
  width: 50px;
  padding: 8px;
  aspect-ratio: 1;
  border-radius: 50%;
  background: #f0347e;
  --_m: conic-gradient(#0000 10%, #000), linear-gradient(#000 0 0) content-box;
  -webkit-mask: var(--_m);
  mask: var(--_m);
  -webkit-mask-composite: source-out;
  mask-composite: subtract;
  animation: l3 1s infinite linear;
}

@keyframes l3 {
  to {
    transform: rotate(1turn);
  }
}