@charset "utf-8";

:root {
    --primary-color: #4c72af;
    --secondary-color: #e9ecef;
    --text-color: #ffffff;
    --sec1-color: #ffffff;
    --sec2-color: #cfcfcf;
    --sec1-bg-color: #d0e5f8;
    --sec2-bg-color: #e0ffee;
}

.logo {
    display: none;
}

html {
    font-size: 100%;
    scroll-behavior: smooth;
}

body {
    color: #121212;
    font-size: 0.9rem;
    line-height: 1.7;
    font-family: "Roboto", "Helvetica Neue", Arial, "Noto Sans JP", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
}

a {
    color: #121212;
    text-decoration: none;
}

img {
    max-width: 100%;
}

li {
    list-style: none;
}

.site-title {
    line-height: 1px;
}

.site-title img {
    width: 250px;
}

.site-title a {
    display: block;
}

.sec-title {
    font-size: 2.25rem;
    margin-bottom: 30px;
    text-align: center;
}

.sp {
    display: none;
}

/*
フェード表示させる要素に使用するためのクラス
*/
.fadein {
    opacity: 0;
    transform: translateY(20px);
    transition: all 1s;
}

.mb10 {
    margin-bottom: 10px;
}

.mb20 {
    margin-bottom: 20px;
}

.mb30 {
    margin-bottom: 30px;
}

.mb40 {
    margin-bottom: 40px;
}

.mb50 {
    margin-bottom: 50px;
}

.mb60 {
    margin-bottom: 60px;
}

.mb70 {
    margin-bottom: 70px;
}

.mb80 {
    margin-bottom: 80px;
}

.mb90 {
    margin-bottom: 90px;
}

.mb100 {
    margin-bottom: 100px;
}

.pb10 {
    padding-bottom: 10px;
}

.pb20 {
    padding-bottom: 20px;
}

.pb30 {
    padding-bottom: 30px;
}

.pb40 {
    padding-bottom: 40px;
}

.pb50 {
    padding-bottom: 50px;
}

.pb60 {
    padding-bottom: 60px;
}

.pb70 {
    padding-bottom: 70px;
}

.pb80 {
    padding-bottom: 80px;
}

.pb90 {
    padding-bottom: 90px;
}

.pb100 {
    padding-bottom: 100px;
}

/*-------------------------------------------
ヘッダー
-------------------------------------------*/
/*
「position: fixed;」でヘッダーを固定し、「z-index: 10;」で前面に表示
※他のコンテンツでpositionをrelative、absolute、fixedのいずれかに
設定している場合は、z-indexの数値が大きい方が前面に表示される
*/
#header {
    width: 100%;
    display: flex;
    justify-content: space-between;
    padding: 20px 20px;
    position: fixed;
    z-index: 10;
    background-color: #ffffff;
    box-shadow: #00000033 0px 1px 3px 0px;
}

@media screen and (max-width: 600px) {
    .sec-title {
        font-size: 1.5rem;
        margin-bottom: 20px;
    }

    .site-title img {
        width: 200px;
    }

    #header {
        padding: 10px 16px;
    }

}

/*-------------------------------------------
フッター
-------------------------------------------*/
#footer {
    color: #000000;
    background-color: #d3eaf7;
    text-align: center;
    padding: 10px;
    font-size: 0.75rem;
}

.copy {
    margin-top: 15px;
}

.copy>p {
    color: #000000;
    font-size: 0.7rem;
}

.fot01 img {
    width: 200px;
    margin: 0 auto;
    margin-bottom: 10px;
}

/* レイアウト共通コンテナ */
.container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 20px;
    padding-top: 100px;
    display: flex;
    justify-content: space-between;
    gap: 40px;
    /* カラム間の余白 */
}

/* ヘッダー */
.header {
    padding: 20px;
    max-width: 1200px;
    margin: 0 auto;
}

.logo {
    font-size: 24px;
    font-weight: bold;
}

/* 左側：メインコンテンツ */
.main-content {
    width: 48%;
    /* PCでの幅 */
}

.page-title {
    font-size: 24px;
    font-weight: bold;
    margin-bottom: 20px;
}

.main-visual {
    margin-bottom: 24px;
    background-color: #248EA8;
    /* 画像がない場合の背景色（黄色の近似色） */
    border-radius: 8px;
    overflow: hidden;
}

.intro-text p {
    margin-bottom: 20px;
    font-size: 14px;
}

/* オレンジの下線付き見出し */
.sub-title {
    font-size: 20px;
    font-weight: bold;
    border-bottom: 3px solid #248EA8;
    /* オレンジのライン */
    padding-bottom: 10px;
    margin-bottom: 20px;
    margin-top: 40px;
}

.points-list {
    list-style: none;
    padding: 0;
    font-weight: bold;
    font-size: 16px;
}

.points-list li {
    margin-bottom: 8px;
    font-size: 16px;
}

/* 右側：フォームエリア */
.sidebar-form {
    width: 48%;
    /* PCでの幅 */
}

.form-placeholder {
    background-color: #EEEEEE;
    /* グレーの背景 */
    width: 100%;
    border-radius: 8px;
    justify-content: center;
    padding: 20px;
    align-items: center;
    font-weight: bold;
    color: #333;
}

/* =========================================
   スマホ対応（レスポンシブ）
   768px以下の場合に適用
   ========================================= */
@media screen and (max-width: 768px) {

    .sp {
        display: block;
    }

    .pc {
        display: none;
    }

    .container {
        flex-direction: column;
        /* 縦並びにする */
        padding: 15px;
        padding-top: 70px;
        gap: 40px;
    }

    .header {
        padding: 15px;
    }

    .main-content {
        width: 100%;
        /* 横幅いっぱいに */
    }

    .sidebar-form {
        width: 100%;
        /* 横幅いっぱいに */
    }

    /* スマホでの微調整 */
    .page-title {
        font-size: 18px;
    }

    .intro-text p {
        font-size: 12px;
    }

    .sub-title {
        font-size: 18px;
    }

    .points-list {
        font-size: 12px;
    }

    .points-list li {
        margin-bottom: 5px;
    }

    .form-placeholder {
        padding: 10px;
    }
}