@charset "UTF-8";

/*
# =================================================================
# 汎用パーツのデザイン
# =================================================================
*/

.br_mob{display:none!important;}

.box_scroll{
    display: flex;
    align-items: center;
    justify-content: start;
    gap: 2rem;
position:relative;
width:100%;
padding:0;
-webkit-overflow-scrolling:touch;
overflow-scrolling:touch;
overflow-x: scroll;
white-space: nowrap;
box-sizing:border-box;
overflow-y:hidden;
}

.items_c{align-items: center;}
.items_b{align-items: end;}
.gap05{gap:5px;}
.gap10{gap:10px;}
.gap15{gap:15px;}
.gap20{gap:20px;}
.gap25{gap:25px;}


/*********************
 * 会話ふきだし

[say name="サルワカくん" img="画像URL"]ここに文章[/say]

[say name="サルワカくん" img="画像URL" from="right"]ここに文章2[/say]

 *********************/
.say {
                display: table;
                overflow: hidden;
                width: 100%;
                margin: 1.5em 0
            }

            .faceicon {
                display: table-cell;
                width: 100px;
                padding-right: 20px;
                text-align: center;
                vertical-align: top
            }

            .faceicon img {
                width: 100%;
                height: auto;
                border: solid 3px #eaedf2;
                border-radius: 50%
            }

            .faceicon span {
                font-size: 11px;
                font-weight: 700;
                margin-top: 8px;
                line-height: 1.4;
                display: block
            }

            .chatting {
                display: table-cell;
                position: relative;
                width: calc(100% - 100px);
                font-size: .95em;
                vertical-align: top
            }

            .sc {
                display: inline-block;
                text-align: left;
                padding: 13px;
                border: solid 2px #d5d5d5;
                border-radius: 12px;
                background: #fff;
                word-break: break-word
            }

            .sc:before {
                display: inline-block;
                position: absolute;
                top: 18px;
                left: -23px;
                border: 12px solid transparent;
                border-right: 12px solid #d5d5d5;
                content: ""
            }

            .sc:after {
                display: inline-block;
                position: absolute;
                top: 18px;
                left: -20px;
                border: 12px solid transparent;
                border-right: 12px solid #fff;
                content: ""
            }

            .sc p {
                margin: 5px 0;
                padding: 0
            }

            .right {
                text-align: right
            }

            .right .faceicon {
                padding: 0 0 0 20px
            }

            .right .sc:after,.right .sc:before {
                right: -23px;
                left: auto;
                border: 12px solid transparent;
                border-left: 12px solid #d5d5d5
            }

            .right .sc:after {
                right: -20px;
                border-left-color: #fff
            }


@media only screen and (min-width: 768px){
.sc {
    padding: 20px;
}
}

@media only screen and (min-width: 481px){
.sc:after, .sc:before {
    top: 30px;
}
.sc:after, .sc:before {
    top: 30px;
}
.chatting {
    padding-top: 15px;
    width: calc(100% - 130px);
}
}

/*ボタン共通*/

.btn {
  display: inline-block;
  padding: 14px 32px;
  font-size: 1rem;
  font-weight: 500;
  text-align: center;
  text-decoration: none;
  line-height: 1.5;
  border-radius: 4px;
  cursor: pointer;
  position: relative;
  overflow: hidden;
  transition: all 0.3s ease;
  box-sizing: border-box;
}

.btn:hover {
  text-decoration: none;
}

/* btn01: プライマリ（塗りつぶし → ホバーで浮き上がり＋影） */
.btn01 {
  background: #333;
  border: 2px solid #333;
  color: #fff;
}
.btn01:hover {
  background: #555;
  border-color: #555;
  transform: translateY(-3px);
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.25);
}
.btn01:active {
  transform: translateY(-1px);
  box-shadow: 0 3px 10px rgba(0, 0, 0, 0.2);
}

/* btn02: アウトライン（枠線 → ホバーで塗りつぶし） */
.btn02 {
  background: transparent;
  border: 2px solid #333;
  color: #333;
}
.btn02:hover {
  background: #333;
  color: #fff;
}
.btn02:active {
  background: #222;
  border-color: #222;
}

/* btn03: スライドイン（ホバーで左から背景スライド） */
.btn03 {
  background: #fff;
  border: 2px solid #333;
  color: #333;
  z-index: 1;
}
.btn03::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 0;
  height: 100%;
  background: #333;
  transition: width 0.3s ease;
  z-index: -1;
}
.btn03:hover {
  color: #fff;
}
.btn03:hover::before {
  width: 100%;
}

/* ボタンサイズバリエーション */
.btn-sm {
  padding: 10px 20px;
  font-size: 0.875rem;
}
.btn-lg {
  padding: 18px 40px;
  font-size: 1.125rem;
}

/* ボタン幅100% */
.btn-block {
  display: block;
  width: 100%;
}

/* カラーバリエーション */
.btn-blue {
  background: #0066cc;
  border-color: #0066cc;
  color: #fff;
}
.btn-blue:hover {
  background: #0052a3;
  border-color: #0052a3;
  transform: translateY(-3px);
  box-shadow: 0 6px 20px rgba(0, 102, 204, 0.3);
}

.btn-green {
  background: #28a745;
  border-color: #28a745;
  color: #fff;
}
.btn-green:hover {
  background: #218838;
  border-color: #218838;
  transform: translateY(-3px);
  box-shadow: 0 6px 20px rgba(40, 167, 69, 0.3);
}

.btn-red {
  background: #dc3545;
  border-color: #dc3545;
  color: #fff;
}
.btn-red:hover {
  background: #c82333;
  border-color: #c82333;
  transform: translateY(-3px);
  box-shadow: 0 6px 20px rgba(220, 53, 69, 0.3);
}

.box_flex00{
display:flex;
}

.box_flex01{
display:flex;
  -webkit-flex-wrap: wrap;          /* Safari etc. */
  -ms-flex-wrap    : wrap;          /* IE10        */
  flex-wrap        : wrap;
justify-content:center;
}


.box_flex02{
display:flex;
  -webkit-flex-wrap: wrap;          /* Safari etc. */
  -ms-flex-wrap    : wrap;          /* IE10        */
  flex-wrap        : wrap;
justify-content:space-between;
}


.box_flex03{
display:flex;
  -webkit-flex-wrap: wrap;          /* Safari etc. */
  -ms-flex-wrap    : wrap;          /* IE10        */
  flex-wrap        : wrap;
justify-content:flex-start;
}

.box_flex04{
    display: -webkit-box;
    display: -ms-flexbox;
    display: -webkit-flex;
    display: flex;
    -ms-flex-wrap: wrap;
    -webkit-flex-wrap: wrap;
    flex-wrap: wrap;
}




/*必須項目・警告・エラーの文字色*/

.required{
display: inline-block;
padding: 5px 10px;
margin-left:5px;
border:1px solid #eb3b54;
color: #eb3b54;
font-size: 10px;
font-weight:bold;
line-height: 1.0;
}

.label_yellow{
font-weight:bold;
    background:linear-gradient(transparent 60%, #ff6 60%);
}

.bdr,.bdr_gray{ border: 1px solid #ccc; }/*灰*/
.bdr_red{ border: 1px solid #e00000; }/*赤*/
.bdr_blue{ border: 1px solid #0329ce; }/*青*/
.bdr_green{ border: 1px solid #01995e; }/*緑*/
.bdr_yellow{ border: 1px solid #ffe400; }/*黄*/
.bdr_navy{ border: 1px solid #133d94; }/*紺*/
.bdr_orange{ border: 1px solid #eca100; }/*橙*/
.bdr_pink{ border: 1px solid #eb67b5; }/*ピンク*/
.bdr_lime{ border: 1px solid #2abe0d; }/*黄緑*/
.bdr_aqua{ border: 1px solid #0baedd; }/*水色*/
.bdr_black{ border: 1px solid #000; }/*黒*/

/*角丸*/
.bdr_r4{ border-radius: 4px; }
.bdr_r8{ border-radius: 8px; }
.bdr_12{ border-radius: 12px; }

/*文字の横位置*/
.al_l{ text-align: left!important; }
.al_r{ text-align: right!important; }
.al_c{ text-align: center!important; }
.al_f{ display: flex;justify-content: center;align-items: center;text-align:left;}
.al_j{ text-align: justify!important;;}
.al_o{ text-align: left!important;display:inline-block!important;}
.al_t{ margin: auto!important;display:table!important;}
/*使い方：<p class="al_c"><span class="al_o">ここに左寄せ中央配置したいテキスト</span></p>*/
/*使い方：<div class="al_t"><p>ここに左寄せ中央配置したいテキスト</p><p>ここに左寄せ中央配置したいテキスト</p></div>*/
/*文字の縦位置*/
.vl_t{ vertical-align: top!important; }/*上寄せ*/
.vl_m{ vertical-align: middle!important; }/*中央寄せ*/
.vl_b{ vertical-align: bottom!important; }/*下寄せ*/


.bdr_box{box-sizing: border-box;}
.hidden{overflow: hidden;}



/*周りのブロックからの距離（margin）*/

.m_auto{ margin-left: auto !important; margin-right: auto !important;}

.m0{ margin: 0!important; }/*周りからのmarginを0に*/
.m0_t{ margin-top: 0!important; }/*上からのmarginを0に*/
.m0_r{ margin-right: 0!important; }/*右からのmarginを0に*/
.m0_b{ margin-bottom: 0!important; }/*下からのmarginを0に*/
.m0_l{ margin-left: 0!important; }/*左からのmarginを0に*/

.m5{ margin: 5px!important; }
.m5_t{ margin-top: 5px!important; }
.m5_r{ margin-right: 5px!important; }
.m5_b{ margin-bottom: 5px!important; }
.m5_l{ margin-left: 5px!important; }

.m10{ margin: 10px!important; }
.m10_t{ margin-top: 10px!important; }
.m10_r{ margin-right: 10px!important; }
.m10_b{ margin-bottom: 10px!important; }
.m10_l{ margin-left: 10px!important; }

.m15{ margin: 15px!important; }
.m15_t{ margin-top: 15px!important; }
.m15_r{ margin-right: 15px!important; }
.m15_b{ margin-bottom: 15px!important; }
.m15_l{ margin-left: 15px!important; }

.m20{ margin: 20px!important; }
.m20_t{ margin-top: 20px!important; }
.m20_r{ margin-right: 20px!important; }
.m20_b{ margin-bottom: 20px!important; }
.m20_l{ margin-left: 20px!important; }

.m25{ margin: 25px!important; }
.m25_t{ margin-top: 25px!important; }
.m25_r{ margin-right: 25px!important; }
.m25_b{ margin-bottom: 25px!important; }
.m25_l{ margin-left: 25px!important; }

.m30{ margin: 30px!important; }
.m30_t{ margin-top: 30px!important; }
.m30_r{ margin-right: 30px!important; }
.m30_b{ margin-bottom: 30px!important; }
.m30_l{ margin-left: 30px!important; }

.m40{ margin: 40px!important; }
.m40_t{ margin-top: 40px!important; }
.m40_r{ margin-right: 40px!important; }
.m40_b{ margin-bottom: 40px!important; }
.m40_l{ margin-left: 40px!important; }

.m50{ margin: 50px!important; }
.m50_t{ margin-top: 50px!important; }
.m50_r{ margin-right: 50px!important; }
.m50_b{ margin-bottom: 50px!important; }
.m50_l{ margin-left: 50px!important; }

.m60{ margin: 60px!important; }
.m60_t{ margin-top: 60px!important; }
.m60_r{ margin-right: 60px!important; }
.m60_b{ margin-bottom: 60px!important; }
.m60_l{ margin-left: 60px!important; }

.m70{ margin: 70px!important; }
.m70_t{ margin-top: 70px!important; }
.m70_r{ margin-right: 70px!important; }
.m70_b{ margin-bottom: 70px!important; }
.m70_l{ margin-left: 70px!important; }

.m80{ margin: 80px!important; }
.m80_t{ margin-top: 80px!important; }
.m80_r{ margin-right: 80px!important; }
.m80_b{ margin-bottom: 80px!important; }
.m80_l{ margin-left: 80px!important; }

.m90{ margin: 90px!important; }
.m90_t{ margin-top: 90px!important; }
.m90_r{ margin-right: 90px!important; }
.m90_b{ margin-bottom: 90px!important; }
.m90_l{ margin-left: 90px!important; }

.m100{ margin: 100px!important; }
.m100_t{ margin-top: 100px!important; }
.m100_r{ margin-right: 100px!important; }
.m100_b{ margin-bottom: 100px!important; }
.m100_l{ margin-left: 100px!important; }

.m120{ margin: 120px!important; }
.m120_t{ margin-top: 120px!important; }
.m120_r{ margin-right: 120px!important; }
.m120_b{ margin-bottom: 120px!important; }
.m120_l{ margin-left: 120px!important; }

.m150{ margin: 150px!important; }
.m150_t{ margin-top: 150px!important; }
.m150_r{ margin-right: 150px!important; }
.m150_b{ margin-bottom: 150px!important; }
.m150_l{ margin-left: 150px!important; }

.m200{ margin: 200px!important; }
.m200_t{ margin-top: 200px!important; }
.m200_r{ margin-right: 200px!important; }
.m200_b{ margin-bottom: 200px!important; }
.m200_l{ margin-left: 200px!important; }

.m300{ margin: 300px!important; }
.m300_t{ margin-top: 300px!important; }
.m300_r{ margin-right: 300px!important; }
.m300_b{ margin-bottom: 300px!important; }
.m300_l{ margin-left: 300px!important; }


/*周りのブロックからの距離（padding）*/
.p0{ padding: 0!important; }
.p0_t{ padding-top: 0!important; }
.p0_r{ padding-right: 0!important; }
.p0_b{ padding-bottom: 0!important; }
.p0_l{ padding-left: 0!important; }

.p5{ padding: 5px!important; }
.p5_t{ padding-top: 5px!important; }
.p5_r{ padding-right: 5px!important; }
.p5_b{ padding-bottom: 5px!important; }
.p5_l{ padding-left: 5px!important; }

.p10{ padding: 10px!important; }
.p10_t{ padding-top: 10px!important; }
.p10_r{ padding-right: 10px!important; }
.p10_b{ padding-bottom: 10px!important; }
.p10_l{ padding-left: 10px!important; }

.p15{ padding: 15px!important; }
.p15_t{ padding-top: 15px!important; }
.p15_r{ padding-right: 15px!important; }
.p15_b{ padding-bottom: 15px!important; }
.p15_l{ padding-left: 15px!important; }

.p20{ padding: 20px!important; }
.p20_t{ padding-top: 20px!important; }
.p20_r{ padding-right: 20px!important; }
.p20_b{ padding-bottom: 20px!important; }
.p20_l{ padding-left: 20px!important; }

.p25{ padding: 25px!important; }
.p25_t{ padding-top: 25px!important; }
.p25_r{ padding-right: 25px!important; }
.p25_b{ padding-bottom: 25px!important; }
.p25_l{ padding-left: 25px!important; }

.p30{ padding: 30px!important; }
.p30_t{ padding-top: 30px!important; }
.p30_r{ padding-right: 30px!important; }
.p30_b{ padding-bottom: 30px!important; }
.p30_l{ padding-left: 30px!important; }

.p40{ padding: 40px!important; }
.p40_t{ padding-top: 40px!important; }
.p40_r{ padding-right: 40px!important; }
.p40_b{ padding-bottom: 40px!important; }
.p40_l{ padding-left: 40px!important; }

.p50{ padding: 50px!important; }
.p50_t{ padding-top: 50px!important; }
.p50_r{ padding-right: 50px!important; }
.p50_b{ padding-bottom: 50px!important; }
.p50_l{ padding-left: 50px!important; }

.p60{ padding: 60px!important; }
.p60_t{ padding-top: 60px!important; }
.p60_r{ padding-right: 60px!important; }
.p60_b{ padding-bottom: 60px!important; }
.p60_l{ padding-left: 60px!important; }

.p70{ padding: 70px!important; }
.p70_t{ padding-top: 70px!important; }
.p70_r{ padding-right: 70px!important; }
.p70_b{ padding-bottom: 70px!important; }
.p70_l{ padding-left: 70px!important; }

.p80{ padding: 80px!important; }
.p80_t{ padding-top: 80px!important; }
.p80_r{ padding-right: 80px!important; }
.p80_b{ padding-bottom: 80px!important; }
.p80_l{ padding-left: 80px!important; }

.p90{ padding: 90px!important; }
.p90_t{ padding-top: 90px!important; }
.p90_r{ padding-right: 90px!important; }
.p90_b{ padding-bottom: 90px!important; }
.p90_l{ padding-left: 90px!important; }

.p100{ padding: 100px!important; }
.p100_t{ padding-top: 100px!important; }
.p100_r{ padding-right: 100px!important; }
.p100_b{ padding-bottom: 100px!important; }
.p100_l{ padding-left: 100px!important; }


/*周りのブロックからの距離（margin）*/
.m10_5_t{ margin-top: 10px!important; }
.m20_10_t{ margin-top: 20px!important; }
.m30_15_t{ margin-top: 30px!important; }
.m40_20_t{ margin-top: 40px!important; }
.m50_25_t{ margin-top: 50px!important; }
.m60_30_t{ margin-top: 60px!important; }
.m70_35_t{ margin-top: 70px!important; }
.m80_40_t{ margin-top: 80px!important; }
.m90_45_t{ margin-top: 90px!important; }
.m100_50_t{ margin-top: 100px!important; }
.m120_60_t{ margin-top: 120px!important; }
.m140_70_t{ margin-top: 140px!important; }
.m160_80_t{ margin-top: 160px!important; }
.m180_90_t{ margin-top: 180px!important; }
.m200_100_t{ margin-top: 200px!important; }
.m300_150_t{ margin-top: 300px!important; }
.m400_200_t{ margin-top: 400px!important; }

.m10_5_b { margin-bottom: 10px!important; }
.m20_10_b { margin-bottom: 20px!important; }
.m30_15_b { margin-bottom: 30px!important; }
.m40_20_b { margin-bottom: 40px!important; }
.m50_25_b { margin-bottom: 50px!important; }
.m60_30_b { margin-bottom: 60px!important; }
.m70_35_b { margin-bottom: 70px!important; }
.m80_40_b { margin-bottom: 80px!important; }
.m90_45_b { margin-bottom: 90px!important; }
.m100_50_b { margin-bottom: 100px!important; }
.m120_60_b { margin-bottom: 120px!important; }
.m140_70_b { margin-bottom: 140px!important; }
.m160_80_b { margin-bottom: 160px!important; }
.m180_90_b { margin-bottom: 180px!important; }
.m200_100_b { margin-bottom: 200px!important; }
.m300_150_b { margin-bottom: 300px!important; }
.m400_200_b { margin-bottom: 400px!important; }






/*フォントの装飾*/
.b{font-weight: bold!important; }/*太字*/
.normal{ font-weight: normal!important; }/*太字を解除*/




/*フォントサイズの設定*/

.f06em{ font-size: 0.6em!important; }
.f08em{ font-size: 0.8em!important; }
.f09em{ font-size: 0.9em!important; }
.f10em{ font-size: 1.0em!important; }
.f11em{ font-size: 1.1em!important; }
.f12em{ font-size: 1.2em!important; }
.f13em{ font-size: 1.3em!important; }
.f14em{ font-size: 1.4em!important; }
.f15em{ font-size: 1.5em!important; }
.f16em{ font-size: 1.6em!important; }
.f17em{ font-size: 1.7em!important; }
.f18em{ font-size: 1.8em!important; }
.f19em{ font-size: 1.9em!important; }
.f20em{ font-size: 2.0em!important; }
.f21em{ font-size: 2.1em!important; }
.f22em{ font-size: 2.2em!important; }
.f23em{ font-size: 2.3em!important; }
.f24em{ font-size: 2.4em!important; }
.f25em{ font-size: 2.5em!important; }
.f26em{ font-size: 2.6em!important; }
.f27em{ font-size: 2.7em!important; }
.f28em{ font-size: 2.8em!important; }
.f29em{ font-size: 2.9em!important; }
.f30em{ font-size: 3.0em!important; }

.f08rem{ font-size: 0.8rem!important; }
.f09rem{ font-size: 0.9rem!important; }
.f10rem{ font-size: 1.0rem!important; }
.f11rem{ font-size: 1.1rem!important; }
.f12rem{ font-size: 1.2rem!important; }
.f13rem{ font-size: 1.3rem!important; }
.f14rem{ font-size: 1.4rem!important; }
.f15rem{ font-size: 1.5rem!important; }
.f16rem{ font-size: 1.6rem!important; }
.f17rem{ font-size: 1.7rem!important; }
.f18rem{ font-size: 1.8rem!important; }
.f19rem{ font-size: 1.9rem!important; }
.f20rem{ font-size: 2.0rem!important; }
.f21rem{ font-size: 2.1rem!important; }
.f22rem{ font-size: 2.2rem!important; }
.f23rem{ font-size: 2.3rem!important; }
.f24rem{ font-size: 2.4rem!important; }
.f25rem{ font-size: 2.5rem!important; }
.f26rem{ font-size: 2.6rem!important; }
.f27rem{ font-size: 2.7rem!important; }
.f28rem{ font-size: 2.8rem!important; }
.f29rem{ font-size: 2.9rem!important; }
.f30rem{ font-size: 3.0rem!important; }

.f10px{ font-size: 10px!important; }
.f11px{ font-size: 11px!important; }
.f12px{ font-size: 12px!important; }
.f13px{ font-size: 13px!important; }
.f14px{ font-size: 14px!important; }
.f15px{ font-size: 15px!important; }
.f16px{ font-size: 16px!important; }
.f17px{ font-size: 17px!important; }
.f18px{ font-size: 18px!important; }
.f19px{ font-size: 19px!important; }
.f20px{ font-size: 20px!important; }
.f21px{ font-size: 21px!important; }
.f22px{ font-size: 22px!important; }
.f23px{ font-size: 23px!important; }
.f24px{ font-size: 24px!important; }



/*フォントの色設定*/
.red{ color: #e00000!important; }/*赤*/
.blue{ color: #0329ce!important; }/*青*/
.green{ color: #01995e!important; }/*緑*/
.yellow{ color: #ffe400!important; }/*黄*/
.navy{ color: #133d94!important; }/*紺*/
.orange{ color: #eca100!important; }/*橙*/
.pink{ color: #eb67b5!important; }/*ピンク*/
.purple{ color: #9940d2!important; }/*紫*/
.olive{ color: #9bb814!important; }/*オリーブ*/
.lime{ color: #2abe0d!important; }/*黄緑*/
.aqua{ color: #0baedd!important; }/*水色*/
.black{ color: #000!important; }/*黒*/
.gray{ color: #999!important; }/*灰*/
.white{ color: #fff!important; }/*白*/
.brown{ color: #4b1c1c!important; }/*茶*/


/*行間の設定*/
.lh10{ line-height: 1.0!important; }
.lh11{ line-height: 1.1!important; }
.lh12{ line-height: 1.2!important; }
.lh13{ line-height: 1.3!important; }
.lh14{ line-height: 1.4!important; }
.lh15{ line-height: 1.5!important; }
.lh16{ line-height: 1.6!important; }
.lh17{ line-height: 1.7!important; }
.lh18{ line-height: 1.8!important; }
.lh19{ line-height: 1.9!important; }
.lh20{ line-height: 2.0!important; }

/*テキスト間隔*/
.ls1px {letter-spacing:1px!important; }
.ls2px {letter-spacing:2px!important; }
.ls3px {letter-spacing:3px!important; }
.ls4px {letter-spacing:4px!important; }
.ls5px {letter-spacing:5px!important; }
.ls6px {letter-spacing:6px!important; }
.ls7px {letter-spacing:7px!important; }
.ls8px {letter-spacing:8px!important; }
.ls9px {letter-spacing:9px!important; }
.ls10px {letter-spacing:10px!important; }
.ls15px {letter-spacing:15px!important; }
.ls20px {letter-spacing:20px!important; }
.ls25px {letter-spacing:25px!important; }
.ls30px {letter-spacing:30px!important; }
.ls35px {letter-spacing:35px!important; }



/*テーブル横幅を指定*/
.tw05{ width: 5%; }
.tw10{ width: 10%; }
.tw15{ width: 15%; }
.tw20{ width: 20%; }
.tw25{ width: 25%; }
.tw30{ width: 30%; }
.tw35{ width: 35%; }
.tw40{ width: 40%; }
.tw45{ width: 45%; }
.tw50{ width: 50%; }
.tw55{ width: 55%; }
.tw60{ width: 60%; }
.tw65{ width: 65%; }
.tw70{ width: 70%; }
.tw75{ width: 75%; }
.tw80{ width: 80%; }
.tw85{ width: 85%; }
.tw90{ width: 90%; }
.tw95{ width: 95%; }
.tw100{ width: 100%; }




/*横幅を指定*/
.w05{ width: 5%!important; }
.w10{ width: 10%!important; }
.w15{ width: 15%!important; }
.w16{ width: 16%!important; }
.w17{ width: 17%!important; }
.w18{ width: 18%!important; }
.w19{ width: 19%!important; }
.w20{ width: 20%!important; }
.w21{ width: 21%!important; }
.w22{ width: 22%!important; }
.w23{ width: 23%!important; }
.w24{ width: 24%!important; }
.w25{ width: 25%!important; }
.w30{ width: 30%!important; }
.w31{ width: 31%!important; }
.w32{ width: 32%!important; }
.w33{ width: 33%!important; }
.w35{ width: 35%!important; }
.w40{ width: 40%!important; }
.w45{ width: 45%!important; }
.w48{ width: 48%!important; }
.w49{ width: 49%!important; }
.w50{ width: 50%!important; }
.w55{ width: 55%!important; }
.w60{ width: 60%!important; }
.w65{ width: 65%!important; }
.w70{ width: 70%!important; }
.w75{ width: 75%!important; }
.w80{ width: 80%!important; }
.w85{ width: 85%!important; }
.w90{ width: 90%!important; }
.w95{ width: 95%!important; }
.w100{ width: 100%!important; }










@media (max-width: 768px) {


/*横幅を指定*/
.w05,
.w10,
.w15,
.w18,
.w20,
.w24,
.w25,
.w30,
.w31,
.w32,
.w33,
.w35,
.w40,
.w45,
.w48,
.w49,
.w50,
.w55,
.w60,
.w65,
.w70,
.w75,
.w80,
.w85,
.w90,
.w95,
.w100{ width: 100%!important; }



/*上下にモバイルとデスクトップで異なるサイズの余白を空ける*/
.m10_05_t { margin-top: 5px!important; }
.m20_10_t { margin-top: 10px!important; }
.m30_15_t { margin-top: 15px!important; }
.m40_20_t { margin-top: 20px!important; }
.m50_25_t { margin-top: 25px!important; }
.m60_30_t { margin-top: 30px!important; }
.m70_35_t { margin-top: 35px!important; }
.m80_40_t { margin-top: 40px!important; }
.m90_45_t { margin-top: 45px!important; }
.m100_50_t { margin-top: 50px!important; }
.m120_60_t { margin-top: 60px!important; }
.m140_70_t { margin-top: 70px!important; }
.m160_80_t { margin-top: 80px!important; }
.m180_90_t { margin-top: 90px!important; }
.m200_100_t { margin-top: 100px!important; }
.m300_150_t { margin-top: 150px!important; }
.m400_200_t { margin-top: 200px!important; }

.m10_05_b { margin-bottom: 5px!important; }
.m20_10_b { margin-bottom: 10px!important; }
.m30_15_b { margin-bottom: 15px!important; }
.m40_20_b { margin-bottom: 20px!important; }
.m50_25_b { margin-bottom: 25px!important; }
.m60_30_b { margin-bottom: 30px!important; }
.m70_35_b { margin-bottom: 35px!important; }
.m80_40_b { margin-bottom: 40px!important; }
.m90_45_b { margin-bottom: 45px!important; }
.m100_50_b { margin-bottom: 50px!important; }
.m120_60_b { margin-bottom: 60px!important; }
.m140_70_b { margin-bottom: 70px!important; }
.m160_80_b { margin-bottom: 80px!important; }
.m180_90_b { margin-bottom: 90px!important; }
.m200_100_b { margin-bottom: 100px!important; }
.m300_150_b { margin-bottom: 150px!important; }
.m400_200_b { margin-bottom: 200px!important; }


.br_mob{display:block!important;}



}


/*---------------------------------------------------------------------
generated by Keni Template Maker Ver.8.0 on 2018-11-28 11:44:44
----------------------------------------------------------------------*/


/* =================================================================
   フォームイントロ（ヘッダー部分）
================================================================= */
.form-intro {
    text-align: center;
    margin-bottom: 32px;
    padding: 32px;
    background: linear-gradient(135deg, #f0f7ff 0%, #e8f4fd 100%);
    border-radius: 16px;
    border: 2px solid rgba(0, 128, 255, 0.15);
}

.form-intro-title {
    font-size: 1.75rem;
    font-weight: 800;
    color: #1a1a2e;
    margin: 0 0 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
}

.form-intro-title .material-icons-round {
    font-size: 2rem;
    color: #0080ff;
}

.form-intro-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: linear-gradient(135deg, #ff7a00 0%, #ff5500 100%);
    color: #fff;
    padding: 8px 20px;
    border-radius: 50px;
    font-size: 1rem;
    font-weight: 700;
    margin: 12px 0 16px;
    box-shadow: 0 4px 12px rgba(255, 122, 0, 0.3);
}

.form-intro-badge .number {
    font-size: 1.5rem;
    font-weight: 800;
}

.form-intro-text {
    font-size: 0.9375rem;
    color: #555;
    margin: 0 0 12px;
    line-height: 1.7;
}

.form-intro-note {
    font-size: 0.8125rem;
    color: #888;
    margin: 0;
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

.form-intro-note::before {
    content: "※";
    color: #ff7a00;
}

/* =================================================================
   Contact Form 7 WordPress出力対応
   （自動挿入される<p><br>タグへの対応）
================================================================= */

/* フォーム内の自動pタグをリセット */
.inquiry-form p {
    margin: 0;
    padding: 0;
}

/* ラベル内のbrを無効化（横並び維持） */
.form-label p {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0;
}

.form-label p br {
    display: none;
}

/* セクションヘッダー内のpタグ */
.form-section-header p {
    margin: 0;
    display: flex;
    align-items: center;
}

/* 住所入力欄のbrを無効化 */
.form-address-row p {
    display: flex;
    align-items: center;
    gap: 16px;
    margin: 0;
    width: 100%;
}

.form-address-row p br {
    display: none;
}

.form-address-row .wpcf7-form-control-wrap {
    flex: 1;
}

/* チェックボックス・ラジオのpタグ */
.form-checkbox-group p,
.form-radio-group p,
.purpose-group p {
    margin: 0;
    width: 100%;
}

/* 目的選択グリッド - 横並びフル幅 */
.purpose-group {
    width: 100%;
}

.purpose-group p {
    width: 100%;
}

.purpose-group .wpcf7-form-control-wrap {
    display: block;
    width: 100%;
}

.purpose-group .wpcf7-checkbox {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
    width: 100%;
}

.purpose-group .wpcf7-list-item {
    margin: 0 !important;
    width: 100%;
}

.purpose-group .wpcf7-list-item label {
    display: flex !important;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    padding: 20px 12px;
    background: #fff;
    border: 3px solid #e0e4e8;
    border-radius: 12px;
    text-align: center;
    font-size: 1rem;
    font-weight: 700;
    min-height: 70px;
    cursor: pointer;
    transition: all 0.2s ease;
    box-sizing: border-box;
}

.purpose-group .wpcf7-list-item label:hover {
    background: #f0f7ff;
    border-color: #0080ff;
    transform: translateY(-2px);
    box-shadow: 0 4px 16px rgba(0, 128, 255, 0.15);
}

.purpose-group .wpcf7-list-item:has(input:checked) label {
    background: linear-gradient(135deg, #0080ff 0%, #0066cc 100%);
    border-color: #0080ff;
    color: #fff;
    box-shadow: 0 6px 20px rgba(0, 128, 255, 0.3);
    transform: translateY(-2px);
}

.purpose-group .wpcf7-list-item input[type="checkbox"] {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
}

/* 通常のチェックボックス・ラジオ */
.form-checkbox-group .wpcf7-checkbox,
.form-checkbox-group .wpcf7-radio,
.form-radio-group .wpcf7-checkbox,
.form-radio-group .wpcf7-radio {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.form-checkbox-group .wpcf7-list-item,
.form-radio-group .wpcf7-list-item {
    margin: 0 !important;
}

.form-checkbox-group .wpcf7-list-item label,
.form-radio-group .wpcf7-list-item label {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 10px 18px;
    background: #f5f7fa;
    border: 2px solid #e0e4e8;
    border-radius: 8px;
    cursor: pointer;
    transition: all 0.2s ease;
    font-size: 0.9375rem;
    font-weight: 500;
}

.form-checkbox-group .wpcf7-list-item label:hover,
.form-radio-group .wpcf7-list-item label:hover {
    background: #fff;
    border-color: #0080ff;
    box-shadow: 0 2px 8px rgba(0, 128, 255, 0.1);
}

.form-checkbox-group .wpcf7-list-item:has(input:checked) label,
.form-radio-group .wpcf7-list-item:has(input:checked) label {
    background: #0080ff;
    border-color: #0080ff;
    color: #fff;
    box-shadow: 0 2px 8px rgba(0, 128, 255, 0.25);
}

/* 入力フィールド */
.inquiry-form .wpcf7-form-control-wrap {
    display: block;
    width: 100%;
}

.inquiry-form input[type="text"],
.inquiry-form input[type="tel"],
.inquiry-form input[type="email"],
.inquiry-form select,
.inquiry-form textarea {
    width: 100%;
    padding: 14px 16px;
    font-size: 1rem;
    border: 2px solid #d0d5dd;
    border-radius: 8px;
    background: #fff;
    transition: all 0.2s ease;
    box-sizing: border-box;
}

.inquiry-form input[type="text"]:focus,
.inquiry-form input[type="tel"]:focus,
.inquiry-form input[type="email"]:focus,
.inquiry-form textarea:focus {
    outline: none;
    border-color: #0080ff;
    box-shadow: 0 0 0 4px rgba(0, 128, 255, 0.12);
}

/* 郵便番号フィールド */
.inquiry-form .p-postal-code {
    max-width: 180px !important;
}

/* 自動入力フィールド */
.inquiry-form .p-region,
.inquiry-form .p-locality {
    background: #f8f9fa;
}

/* 住所入力ブロック */
.form-address {
    display: flex;
    flex-direction: column;
    gap: 12px;
    background: rgba(255, 255, 255, 0.7);
    padding: 20px;
    border-radius: 12px;
    border: 1px solid rgba(0, 0, 0, 0.06);
}

.form-address-label {
    flex-shrink: 0;
    width: 110px;
    font-size: 0.875rem;
    font-weight: 600;
    color: #333;
}

/* レスポンシブ */
@media (max-width: 767px) {
    /* フォームイントロ */
    .form-intro {
        padding: 24px 16px;
    }

    .form-intro-title {
        font-size: 1.375rem;
    }

    /* STEPバッジをブロック表示 */
    .form-section-header {
        flex-direction: column;
        align-items: stretch;
        gap: 12px;
    }

    .form-section-header p {
        display: block;
    }

    .form-step {
        display: block;
        width: 100%;
        text-align: center;
        padding: 10px 14px;
        border-radius: 8px;
    }

    .form-section-title {
        text-align: center;
    }

    /* 目的選択 */
    .purpose-group .wpcf7-checkbox {
        grid-template-columns: 1fr !important;
    }

    .purpose-group .wpcf7-list-item label {
        flex-direction: row !important;
        min-height: auto;
        padding: 14px 16px;
    }

    /* 住所入力 */
    .form-address-row p {
        flex-direction: column;
        align-items: stretch;
        gap: 6px;
    }

    .form-address-label {
        width: 100%;
    }

    .inquiry-form .p-postal-code {
        max-width: 100% !important;
    }

    /* CTAボタン中央配置 */
    .cta-button-group {
        display: flex;
        flex-direction: column;
        align-items: center;
    }

    .cta-btn-main,
    .cta-btn-secondary {
        width: 100%;
        max-width: 320px;
        justify-content: center;
    }
}
