@charset "UTF-8";
/*-------------------------------------------


custom_all.css


---------------------------------------------*/
/*.ft_target------------------------------------------------------ */
.ft_target {
    background: #004f39;
}
.ft_target ul {
    padding: 30px 0;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
}
.ft_target li {
    margin: 0 19px;
}
.ft_target a {
    font-weight: 700;
    color: #FFF;
}
.ft_target ul {
    padding: 0;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-box-pack: start;
    -ms-flex-pack: start;
    justify-content: flex-start;
}
.ft_target li {
    width: 50%;
    margin: 0;
}
.ft_target li a {
    width: 100%;
    min-height: 64px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    border-right: 1px solid #FFF;
    border-bottom: 1px solid #FFF;
}
.ft_target li li:nth-child(2n) a {
    border-right: none;
}
/*.ft_sitemap------------------------------------------------------ */
.ft_sitemap {
    display: block;
}
.ft_sitemap .row, .ft_sitemap .row:last-of-type {
    width: 100%;
    height: auto !important;
    margin: 0;
    border: none;
    border-bottom: 1px solid #B9B9B9;
}
.ft_sitemap detail {
    margin: 0;
}
.ft_sitemap summary {
    margin: 0;
    font-size: 1.5rem;
    border-bottom: 1px solid rgba(255, 255, 255, .2);
    font-weight: 700;
    position: relative;
    padding: 29px 55px 29px 5%;
}
.ft_sitemap ul {
    padding: 0 0 15px 5%;
}
.ft_sitemap li {
    margin: 0px 0 18px;
}
.ft_sitemap .row:last-of-type {
    border: none;
}
.ft_sitemap .other {
    padding: 0;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
}
.ft_sitemap .other li {
    width: 50%;
    margin: 0;
    text-align: center;
}
.ft_sitemap .other li a {
    width: 100%;
    min-height: 80px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    font-size: 1.5rem;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    border-right: 1px solid #B9B9B9;
    border-bottom: 1px solid #B9B9B9;
}
.ft_sitemap .other li:nth-child(2n) a {
    border-right: none;
}
.ft_sitemap li a {
    letter-spacing: 0;
    font-size: 1.4rem;
    font-weight: 500;
    color: #222;
}



/*telBox------------------------------------------------------*/
.telBox01-footer {
    padding-block:2px
}

.telBox01_lead {
    font-size: 1.2rem;
}

.telBox01_tel {
    font-size: 2.4rem;
}

.telBox01_icon {
    width: 34px;
}

.telBox01_text {
    font-size: 1.2rem;
}

.footer_telArea {
    font-size: 1.2rem;
}

.footer_tel {
    font-size: 2rem;
}



/* --- フローティングボタン全体のコンテナ --------------------------------------------------------------------------- */
.floating-btn-container {
    position: fixed; /* 画面に固定 */
    bottom: 20px;    /* 下からの距離 */
    right: 20px;      /* 右からの距離 */
    z-index: 9999;   /* 最前面に表示 */
    display: flex;
    flex-direction: column;
    align-items: flex-end; /* ×ボタンを右寄せにするため */
    filter: drop-shadow(0px 2px 5px rgba(0,0,0,0.2)); /* 影をつけて浮かせる */
    
    /* 表示アニメーション（下からふわっと出す） */
    animation: floatUp 0.5s ease-out forwards;
    /* 初期状態は非表示（アニメーションで出すため） */
    opacity: 0;
    transform: translateY(20px);
}

/* アニメーション定義 */
@keyframes floatUp {
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* --- 右上の「×」ボタン --- */
.close-floating-btn {
    background: #fff; /* 背景色 */
    border: none;
    border-radius: 50%; /* 丸くする */
    width: 24px;
    height: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    box-shadow: 0 1px 3px rgba(0,0,0,0.1);
    margin-bottom: -10px; /* 画像に少し重ねる */
    margin-right: 5px;    /* 画像の少し内側に入れる */
    position: relative;
    z-index: 1; /* 画像より手前に */
    transition: background 0.2s;
}

.close-floating-btn:hover {
    background: #f0f0f0; /* ホバー時の色 */
}

/* --- メインのボタン画像 --- */
.floating-btn-link {
    display: block;
    transition: transform 0.2s;
}

.floating-btn-img {
    width: 200px; /* PCでの基本サイズ */
    height: auto;
    display: block;
}

/* ホバー時に少し浮き上がる演出 */
.floating-btn-link:hover {
    transform: translateY(-3px);
}

/* --- レスポンシブ設定（スマホ調整） --- */
@media screen and (max-width: 899px) {
    .floating-btn-container {
        bottom: 35px; /* スマホは少し端に寄せる */
        left: 15px;
        right: auto;
    }
    .floating-btn-img {
        width: 25vw; /* スマホでは少し小さく */
    }
    .close-floating-btn {
        width: 20px;  /* ×ボタンも少し小さく */
        height: 20px;
        margin-bottom: 0;
    }
}