/* フォーム全体の大外囲み */
.wpcf7-form {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0;
    padding: 50px 40px;
    background: #ffffff;
    border: 2px solid #9d7bb0;
    border-radius: 20px;
    box-sizing: border-box;
    font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
}

/* 各項目のコンテナ */
.wpcf7-form p {
    margin-bottom: 35px !important;
    display: block;
}

/* ★ タイトル（label）：縦並び */
.wpcf7-form label {
    display: flex !important;
    flex-direction: column;
    align-items: flex-start;
    width: 100%;
    font-size: 1.6rem !important;
    font-weight: 900;
    color: #4a3a5a;
    line-height: 1.4;
    letter-spacing: 0.05em;
    margin-bottom: 0 !important;
}

/* 入力フォームのラッパー */
.wpcf7-form .wpcf7-form-control-wrap {
    display: block !important;
    width: 100%;
    margin-top: 15px !important;
}

/* ★ 入力枠：入力文字サイズを大幅アップ */
.wpcf7-form input[type="text"],
.wpcf7-form input[type="email"],
.wpcf7-form input[type="tel"],
.wpcf7-form textarea {
    display: block !important;
    width: 100% !important;
    padding: 18px !important; /* 余白も広げてゆったりと */
    background-color: #fdfcff;
    border: 1.5px solid #dcd3e6;
    border-radius: 10px;
    
    /* ★ ここが重要：入力される文字の設定 */
    font-size: 1.25rem !important; /* 1.15remから1.25remへ拡大 */
    font-weight: 500; /* 文字を少しだけ太くして視認性アップ */
    color: #222222; /* 漆黒に近い色でコントラストを最強に */
    line-height: 1.6;
    
    box-sizing: border-box !important;
    transition: all 0.3s ease;
}

/* フォーカス時：枠と文字をさらに強調 */
.wpcf7-form input:focus,
.wpcf7-form textarea:focus {
    border: 2px solid #9d7bb0;
    background-color: #ffffff;
    color: #000000; /* 入力中はさらに濃く */
    box-shadow: 0 5px 15px rgba(157, 123, 176, 0.15);
    outline: none;
}

/* 送信ボタン */
.wpcf7-submit {
    display: block;
    width: 100%;
    padding: 22px;
    background: #9d7bb0;
    color: #fff;
    border: none;
    border-radius: 12px;
    font-size: 1.4rem;
    font-weight: 900;
    cursor: pointer;
    transition: all 0.3s ease;
    margin-top: 10px;
}

.wpcf7-submit:hover {
    background: #7e5c91;
    transform: translateY(-2px);
}

/* スマホ対応 */
@media (max-width: 600px) {
    .wpcf7-form {
        padding: 30px 20px;
    }
    .wpcf7-form label {
        font-size: 1.3rem !important;
    }
    .wpcf7-form input[type="text"],
    .wpcf7-form input[type="email"],
    .wpcf7-form input[type="tel"],
    .wpcf7-form textarea {
        font-size: 1.1rem !important; /* スマホでは適度な大きさに */
    }
}





/* フロートボタン本体：特大・高級グラデーション */
.floating-contact-button {
    position: fixed;
    bottom: 80px; /* 位置を少し上に */
    right: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    
    /* 深みのあるリッチグラデーション */
    background: linear-gradient(135deg, #b388eb 0%, #7209b7 50%, #480ca8 100%);
    
    /* サイズを大幅アップ */
    min-width: 280px;
    padding: 22px 40px;
    
    border-radius: 100px; /* 完全なカプセル型 */
    color: #ffffff !important;
    text-decoration: none !important;
    font-size: 1.4rem; /* 文字を大きく */
    font-weight: 900;
    letter-spacing: 0.1em;
    z-index: 9999;
    
    /* 強い立体感を出す多重シャドウ */
    box-shadow: 0 15px 35px rgba(72, 12, 168, 0.4), 
                0 5px 15px rgba(0, 0, 0, 0.2);
    
    transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    border: 2px solid rgba(255, 255, 255, 0.2); /* 縁に光沢をプラス */
}

/* アイコン：チェックボックス風やメールアイコン */
.float-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 35px;
    height: 35px;
    background: rgba(255, 255, 255, 0.2);
    border-radius: 8px;
    margin-right: 15px;
    font-size: 1.2rem;
    border: 1px solid rgba(255, 255, 255, 0.4);
}

/* ホバー演出：さらに大きく、光るような効果 */
.floating-contact-button:hover {
    transform: scale(1.08) translateY(-5px);
    background: linear-gradient(135deg, #bf96f3 0%, #8338ec 50%, #5a189a 100%);
    box-shadow: 0 20px 45px rgba(72, 12, 168, 0.5);
}

/* スマホ表示：画面を占領しすぎないよう調整 */
@media (max-width: 600px) {
    .floating-contact-button {
        bottom: 25px;
        right: 25px;
        min-width: auto; /* 幅を自動に */
        padding: 15px 25px;
        font-size: 1.1rem;
    }
    .float-icon {
        width: 25px;
        height: 25px;
        margin-right: 10px;
    }
}





/* --- テーブル：特大文字設定 --- */
.table_x2 {
    width: 100%;
    border-collapse: collapse;
    margin-bottom: 60px;
    border-top: 4px solid #4a3a5a;
}
.table_x2 th, .table_x2 td {
    padding: 30px !important;
    font-size: 1.45rem !important; /* 特大文字 */
    border-bottom: 1px solid #e8e1ef;
    line-height: 1.6;
}
.table_x2 th {
    width: 25%;
    background: #fbfaff;
    color: #4a3a5a;
    font-weight: 900;
}
.table_x2 td {
    color: #000;
}

/* 内容（右側） */
.table_x2 td {
    background-color: #ffffff;
    color: #000000; /* 文字色を完全な黒にして視認性MAX */
    font-weight: 500;
}

/* --- H2見出し：絶対にズレない精密設定 --- */
.info-h2 {
    font-size: 2.5rem !important; /* さらに大きく */
    font-weight: 900;
    color: #4a3a5a;
    margin: 80px 0 40px !important;
    padding: 15px 0 15px 30px !important; /* 内側の余白を調整 */
    position: relative;
    line-height: 1.2 !important; /* 行高を絞ってズレを防止 */
    display: block;
    border-bottom: 2px solid #e8e1ef;
}

/* 紫の縦線を「高さ100%」から計算して中央配置 */
.info-h2::before {
    content: "";
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%); /* 完璧な上下中央揃え */
    height: 1.2em; /* 文字の高さに合わせる */
    width: 8px; /* 線を太くして視認性アップ */
    background: #9d7bb0;
    border-radius: 4px;
}

/* --- 説明文（アクセスなど） --- */
.entry-content p {
    font-weight: 500;
    margin-bottom: 35px;
    line-height: 2;
}

/* --- スマホ対応：読みやすさを維持 --- */
@media (max-width: 600px) {
    .table_x2 th, .table_x2 td {
        display: block;
        width: 100% !important;
        padding: 20px !important;
        font-size: 1.2rem !important; /* スマホでも十分な大きさ */
    }
    .table_x2 th {
        background-color: #f0eaf5;
        border-bottom: none;
    }
    .info-h2 {
        font-size: 1.8rem !important;
    }
}

/* --- 画像ギャラリー：レスポンシブ対応版 --- */
.info-gallery {
    display: grid;
    /* 基本は3列（PC・タブレット） */
    grid-template-columns: repeat(3, 1fr);
    gap: 15px; /* 画像同士の隙間 */
    margin-bottom: 60px;
}

.gallery-item img {
    width: 100%;
    height: 250px; /* PCでの高さ */
    object-fit: cover; /* 比率を保って切り抜き（歪まない） */
    border-radius: 12px;
    box-shadow: 0 8px 20px rgba(0,0,0,0.08);
    transition: transform 0.3s ease;
}

/* ホバーで少し浮き上がる演出 */
.gallery-item img:hover {
    transform: translateY(-5px);
}

/* --- タブレットサイズ（992px以下） --- */
@media (max-width: 992px) {
    .info-gallery {
        grid-template-columns: repeat(2, 1fr); /* 2列に変更 */
        gap: 12px;
    }
    .gallery-item img {
        height: 200px; /* 高さを少し抑える */
    }
}

/* --- スマホサイズ（600px以下） --- */
@media (max-width: 600px) {
    .info-gallery {
        grid-template-columns: repeat(2, 1fr); /* スマホでも見やすさ優先で2列 */
        gap: 8px;
        margin-bottom: 40px;
    }
    .gallery-item img {
        height: 150px; /* スマホで見やすい高さ */
        border-radius: 8px;
    }
}

/* --- 極小スマホサイズ（400px以下） --- */
@media (max-width: 400px) {
    .info-gallery {
        grid-template-columns: 1fr; /* 1列にして大きく見せる */
    }
    .gallery-item img {
        height: 220px;
    }
}


.fifth-banner-btn a{
  font-weight:300;
}





