@charset "UTF-8";

/* =====================================================
   LP 2026 追加スタイル（サポート全体図・新サービス・料金カード）
   既存 common.css のトーン（#005f94 / #fae200）に合わせています
   ===================================================== */

/* ---------- 共通 ---------- */
.marker_yellow {
    background: linear-gradient(transparent 55%, #fae200 55%);
    font-weight: 700;
}

/* ---------- サポート全体図 ---------- */
.supportmap {
    padding: 100px 0 80px;
}

.supportmap_lead {
    text-align: center;
    font-size: 20px;
    font-weight: 700;
    color: #005f94;
    margin: 30px 0 40px;
}

.supportmap_chart {
    max-width: 880px;
    margin: 0 auto;
}

.supportmap_axis {
    display: flex;
    border-bottom: 2px solid #005f94;
    margin-bottom: 14px;
}

.supportmap_axis span {
    width: 33.333%;
    text-align: center;
    font-weight: 700;
    color: #005f94;
    font-size: 15px;
    padding-bottom: 6px;
    border-left: 1px dashed #bedcea;
}

.supportmap_axis span:first-child {
    border-left: none;
}

.supportmap_bars {
    position: relative;
    /* 学年の区切り線をバー背景にも表示 */
    background-image: linear-gradient(to right, transparent calc(33.333% - 1px), #ebf7fc calc(33.333% - 1px), #ebf7fc 33.333%, transparent 33.333%, transparent calc(66.666% - 1px), #ebf7fc calc(66.666% - 1px), #ebf7fc 66.666%, transparent 66.666%);
}

.sm_bar {
    height: 40px;
    line-height: 40px;
    border-radius: 20px;
    margin-bottom: 12px;
    padding: 0 18px;
    font-size: 14px;
    font-weight: 700;
    white-space: nowrap;
    box-sizing: border-box;
}

.sm_navy {
    background-color: #005f94;
    color: #fff;
}

.sm_yellow {
    background-color: #fae200;
    color: #005f94;
}

/* 幅が狭いバー（大学受験指導）はラベルを外に出す */
.sm_bar_out {
    position: relative;
    left: -130px;
    color: #005f94;
}

/* ---------- 新サービス3本柱 ---------- */
.newservice {
    width: calc(100% - 40px);
    margin: 0 auto;
    padding: 90px 0;
    background-color: #ebf7fc;
    border-radius: 5px;
}

.ns_list {
    display: flex;
    gap: 24px;
    margin-top: 50px;
}

.ns_card {
    position: relative;
    width: calc((100% - 48px) / 3);
    background-color: #fff;
    border-radius: 8px;
    border-top: 6px solid #005f94;
    padding: 34px 24px 24px;
    box-sizing: border-box;
}

.ns_badge {
    position: absolute;
    top: -14px;
    left: 20px;
    display: inline-block;
    background-color: #fae200;
    color: #005f94;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .05em;
    padding: 5px 14px;
    border-radius: 14px;
}

.ns_title {
    font-size: 19px;
    font-weight: 700;
    color: #005f94;
    line-height: 1.4;
    margin-bottom: 12px;
    min-height: 3em;
}

.ns_copy {
    font-size: 15px;
    font-weight: 700;
    color: #404040;
    background: linear-gradient(transparent 60%, #fae200 60%);
    display: inline;
}

.ns_text {
    font-size: 14px;
    line-height: 1.9;
    color: #404040;
    margin-top: 14px;
}

.ns_note {
    margin-top: 14px;
    padding-top: 12px;
    border-top: 1px dashed #bedcea;
    font-size: 12px;
    color: #005f94;
    font-weight: 700;
}

/* ---------- 料金カード ---------- */
.course_cards {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    margin-top: 50px;
}

.cc_item {
    width: calc((100% - 40px) / 3);
    background-color: #fff;
    border: 1px solid #bedcea;
    border-radius: 8px;
    padding: 24px 22px;
    box-sizing: border-box;
}

.cc_item.cc_pickup {
    border: 2px solid #005f94;
    background-color: #ebf7fc;
}

.cc_grade {
    font-size: 17px;
    font-weight: 700;
    color: #005f94;
    margin-bottom: 8px;
}

.cc_grade_sub {
    font-size: 12px;
    font-weight: 500;
    margin-left: 4px;
}

.cc_price {
    font-size: 24px;
    font-weight: 700;
    color: #404040;
    margin-bottom: 10px;
}

.cc_price span {
    font-size: 13px;
    font-weight: 500;
}

.cc_desc {
    font-size: 13px;
    line-height: 1.8;
    color: #404040;
}

.course_note {
    margin-top: 26px;
    text-align: center;
    font-size: 13px;
    color: #404040;
}

/* ---------- レスポンシブ ---------- */
@media screen and (max-width: 1024px) {
    .ns_list {
        flex-direction: column;
    }

    .ns_card {
        width: 100%;
    }

    .ns_title {
        min-height: 0;
    }

    .cc_item {
        width: calc((100% - 20px) / 2);
    }
}

@media screen and (max-width: 640px) {
    .supportmap {
        padding: 60px 0 40px;
    }

    .supportmap_lead {
        font-size: 16px;
    }

    .sm_bar {
        height: 34px;
        line-height: 34px;
        font-size: 11px;
        padding: 0 10px;
    }

    .sm_bar_out {
        left: -104px;
        font-size: 11px;
    }

    .supportmap_axis span {
        font-size: 12px;
    }

    .cc_item {
        width: 100%;
    }
}
