/* フォントの埋め込み
====================================================*/
@font-face {
    font-family: 'NotoSansJP-Regular';
    src: url('../font/NotoSansJP-Regular.woff') format('woff');
}

@font-face {
    font-family: 'NotoSansJP-Medium';
    src: url('../font/NotoSansJP-Medium.woff') format('woff');
}

@font-face {
    font-family: 'NotoSansJP-Bold';
    src: url('../font/NotoSansJP-Bold.woff') format('woff');
}

@font-face {
    font-family: 'NotoSerifJP-Regular';
    src: url('../font/NotoSerifJP-Regular.woff') format('woff');
}

@font-face {
    font-family: 'NotoSerifJP-Medium';
    src: url('../font/NotoSerifJP-Medium.woff') format('woff');
}

@font-face {
    font-family: 'NotoSerifJP-Bold';
    src: url('../font/NotoSerifJP-Bold.woff') format('woff');
}

@font-face {
    font-family: 'din-2014';
    src: url('../font/din-2014.otf') format('opentype');
}

@font-face {
    font-family: 'Inter_18pt-Medium';
    src: url('../font/Inter_18pt-Medium.ttf') format('truetype');
}

/*―――――――――――――――――
  1. カスタムプロパティ定義
―――――――――――――――――*/
:root {
    --white-color: #fff;

    --primary-color: #0071E5;

    --accent-color: #E6185E;

    --title-size: 67px;
    --title-size: 4.1875rem;

    --available-plan-card-title-size: 26px;
    --available-plan-card-title-size: 21px;
    --available-plan-card-title-size: 1.3125rem;

    --available-plan-card-time-item-size: 14px;
    --available-plan-card-time-item-size: 0.875rem;

    /* 全体のサイズ */
    --square-size: calc(var(--title-size) / 0.75);
  
    /* 外側の（白い）枠線の太さ */
    --outer-border: 0px;
  
    /* 内側の（青い）枠線（box-shadow）の太さ */
    --inner-border: -3px;
  
    /* 内側四角（::before）のマージン（＝outer + inner）を calc で自動計算 */
    --inner-offset: calc(var(--outer-border) + var(--inner-border));

    /* fvのカード内基本テキストサイズ */
    --card-size: 20px;
    --card-size: 1.25rem;

    --swiper-navigation-size: 1.875rem !important;

}

@media screen and (max-width: 769px) {
    :root {
        --title-size: 30px;
        --title-size: 1.875rem;

        /* 全体のサイズ */
        --square-size: calc(var(--title-size) / 0.88);

        /* 外側の（白い）枠線の太さ */
        --outer-border: 0px;

        /* 内側の（青い）枠線（box-shadow）の太さ */
        --inner-border: -3px;
        --inner-border: -0.1875rem;

        /* 内側四角（::before）のマージン（＝outer + inner）を calc で自動計算 */
        --inner-offset: calc(var(--outer-border) + var(--inner-border));

        /* fvのカード内基本テキストサイズ */
        --card-size: 10px;
        --card-size: 0.625rem;

        --available-plan-card-title-size: 1.125rem;

    }
}


/* 共通パーツ
====================================================*/
@media screen and (max-width: 1279px) and (min-width: 770px) {
    html {
        font-size: calc(1600 / 1280 * 1vw);
    }
}

@media screen and (max-width: 769px) {
    html {
        font-size: calc(1600 / 375 * 1vw);
    }
}

body {
    font-family: 'Noto Sans JP', 'Helvetica Neue', 'Segoe UI', sans-serif;
}

.sp {
    display: none;
}

a:hover {
    cursor: pointer;
    opacity: 0.7;
    transition: 0.3s;
}

img {
    width: 100%;
    height: auto;
    pointer-events: none;
}

.container {
    max-width: 1080px;
    width: 100%;
    margin: auto;
    padding: 0 1.875rem;
}

.accent {
    color: var(--accent-color);
}

.common_title {
    font-size: 46px;
    font-size: 2.875rem;
    font-weight: 700;
    text-align: center;
    line-height: 1.4;
}

.common_subtitle {
    font-size: 20px;
    font-size: 1.25rem;
    font-weight: 700;
    text-align: center;
}

.square {
    position: relative;
    background: var(--white-color);        /* 外側は白 */
    border: 4px solid var(--white-color);  /* 白い外枠 */
    color: #0065cc;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 2px;
}

.square::before {
    content: "";
    position: absolute;
    inset: 3px;            /* 外枠の内側余白分 */
    inset: var(--inner-offset);
    border: 2px solid #3698FD;    /* 内側は青 */
    border: 0.125rem solid #3698FD;    /* 内側は青 */
    border-radius: 2px;
}

.button {
    position: relative;
    font-size: 20px;
    font-size: 1.25rem;
    font-weight: 700;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.header_button, .banner_button a, .solve_banner_button, .service_flow_block_button a, .footer_links_list3 .button {
    width: 100%;
    background: var(--accent-color);        /* 外側は白 */
    border: 1px solid var(--white-color);  /* 白い外枠 */
    color: var(--white-color);
}

.btn:hover, .header_button:hover, .solve_banner_button:hover, .footer_links_list3 .button:hover {
    opacity: 0.7;
    cursor: pointer;
}

.button a {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    height: 100%;
    text-align: center;
    vertical-align: middle;
    padding: 6.5% 0;
    padding: 0.8125rem 0;
    z-index: 1;
}

.button i {
    margin-left: 5px;
    margin-left: 0.3125rem;
}

.banner_button .btn::before, .service_flow_block_button::before {
    content: "";
    position: absolute;
    inset: 3px;            /* 外枠の内側余白分 */
    inset: var(--inner-offset);
    border: 2px solid var(--accent-color);    /* 内側は青 */
    border-radius: 4px;
    z-index: 0;
}

.banner {
    position: relative;
    border-radius: 24px;
    color: var(--white-color);
    background-color: var(--primary-color);
    width: 100%;
    margin: 70px auto;
    margin: 4.375rem auto;
    overflow: hidden;
}

.banner::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    background-image: url(../img/sato1_gray.png);
    background-repeat: no-repeat;
    background-size: contain;
    background-position-y: bottom;
    width: 22%;
    height: -webkit-fill-available;
}

.banner::after {
    content: '';
    position: absolute;
    top: 0;
    right: -2px;
    right: -0.125rem;
    background-image: url(../img/matsue1_gray.png);
    background-repeat: no-repeat;
    background-size: contain;
    background-position-y: bottom;
    width: 24%;
    height: -webkit-fill-available;
}

.banner_wrapper {
    text-align: center;
    padding: 25px 0;
    padding: 1.5625rem 0;
}

.banner .square {
    margin-left: -3px;
    margin-left: -0.1875rem;
    line-height: 100%;
}

.banner .square:nth-of-type(2) {
    margin-right: -2px;
    margin-right: -0.125rem;
}

.banner_title {
    font-size: 60px;
    font-size: 3.75rem;
    font-size: 3.4375rem;
    font-size: 3.25rem;
    font-weight: 900;
    line-height: 1.24;
    letter-spacing: -0.03em;
    margin-top: 1rem;
    margin-top: 0.625rem;
    color: var(--white-color);
}

.banner_subtitle {
    font-size: 26px;
    font-size: 1.625rem;
    font-size: 1.375rem;
    font-size: 1.32rem;
    font-weight: bold;
}

.banner_bottom_text {
    width: 50%;
    margin: auto;
    margin-top: 10px;
    margin-top: 0.625rem;
}

.banner_text {
    display: inline-block;
    color: #111;
    font-size: 21px;
    font-size: 1.3125rem;
    font-size: 1.125rem;
    font-weight: 500;
    background-color: var(--white-color);
    border-radius: 1000px;
    padding: 5px 20px;
    padding: 0.3125rem 1.25rem;
}

.banner_text strong.accent {
    font-size: 26px;
    font-size: 1.625rem;
    font-size: 22px;
}

.banner_text .big_number {
    font-size: 40px;
    font-size: 2.5rem;
    font-size: 2rem;
}

.banner_text span.accent {
    font-weight: 500;
    margin-left: -5px;
    margin-left: -0.3125rem;
}

.banner_cards {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    justify-content: center;
    margin-top: 60px;
    margin-top: 3.75rem;
}

.banner_card {
    color: #111;
    border-radius: 12px;
    background-color: var(--white-color);
    margin: 0 15px;
    margin: 0 0.9375rem;
    z-index: 2;
}

.banner_card_inner {
    position: relative;
    padding: 1.5rem;
    padding-top: 3.5rem;
    padding-top: 3rem;
}

.banner_card_img {
    position: absolute;
    width: 52%;
    top: 0;
    left: 50%;
    transform: translate(-50%, -50%);}

.banner_card:nth-of-type(3) .banner_card_img {
    width: 40%;
}

.banner_card_text {
    font-size: 19px;
    font-size: 1.1875rem;
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.3;
}

.banner_card_text .underline {
    position: relative;
    z-index: 1;
}

.banner_card_text .underline::before {
    content: '';
    position: absolute;
    background-color: #FFE91F;
    bottom: -3px;
    bottom: -0.1875rem;
    width: 100%;
    height: 10px;
    height: 0.625rem;
    z-index: -1;
}

.banner_button {
    position: relative;
    max-width: 355px;
    max-width: 22.1875rem;
    max-width: 21.25rem;
    width: 100%;
    margin-top: 40px;
    margin-top: 2.5rem;
}

.banner_button a {
    padding: 1.125rem 0;
        box-shadow: inset 0 0 0 0px var(--white-color), 0 0 0 2px var(--accent-color);
}

.banner_button .banner_button_text {
    position: absolute;
    top: -25%;
    color: #000;
    font-size: 14px;
    font-size: 0.875rem;
    font-weight: 700;
    background-color: var(--white-color);
    border: 2px solid var(--accent-color);
    border-radius: 999px;
    padding: 4px 10px;
    padding: 0.25rem 0.625rem;
    z-index: 2;
}

.banner_button:hover .banner_button_text {
    opacity: unset;
}

.banner_button .banner_button_text .accent {
    color: var(--accent-color);
}

.arrow {
    width: 50px;
    width: 3.125rem;
    height: 75px;
    height: 4.6875rem;
    background-color: var(--primary-color);
    position:  relative;
    margin: auto;
    margin-top: -45px;
    margin-top: -2.8125rem;
}

.arrow::after {
    content:  '';
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 20px 0 20px 30px;
    border-width: 1.25rem 0 1.25rem 1.875rem;
    border-top: 50px solid var(--primary-color);
    border-right: 50px solid transparent;
    border-left: 50px solid transparent;
    border-top: 3.125rem solid var(--primary-color);
    border-right: 3.125rem solid transparent;
    border-left: 3.125rem solid transparent;
    border-bottom: 0px solid transparent;
    position:  absolute;
    bottom: -50%;
    left: 50%;
    transform: translateX(-50%);
}

.solve_banner {
    position: relative;
    width: 100%;
    box-sizing: border-box;
    background-image: url(../img/solve_banner_pc.png);
    background-repeat: no-repeat;
    background-size: cover;
}

.solve_banner::before {
    content: "";
    display: block;
    padding-top: 36%;
}

.solve_banner_button {
    position: absolute;
    bottom: 30px;
    bottom: 1.875rem;
    left: 45px;
    left: 2.8125rem;
}

.swiper-button-next, .swiper-button-prev{
    width: 3.125rem !important;
    height: 3.125rem !important;
    top: var(--swiper-navigation-top-offset, 35%) !important;
}


.swiper-button-next::after, .swiper-button-prev::after {
    font-size: 2.75rem;
    font-family: 'Font Awesome 5 Free' !important;
    font-weight: 900;
    font-size: 1.5rem;
}

.swiper-button-prev:after, .swiper-rtl .swiper-button-next:after,
.swiper-button-next:after, .swiper-rtl .swiper-button-prev:after {
    background-color: var(--white-color);
    border-radius: 50%;
}

.swiper-button-next::after {
    content: '\f0a9' !important; /* FontAwesomeの右矢印 */
}

.swiper-button-prev::after {
    content: '\f0a8' !important; /* FontAwesomeの左矢印 */
}

@media screen and (max-width: 769px) {
    .common_title {
        font-size: 26px;
        font-size: 1.625rem;
        line-height: 1.4;
    }

    .common_subtitle {
        font-size: 14px;
        font-size: 0.875rem;
    }

    .banner_button .btn::before, .service_flow_block_button::before {
        border: 3px solid var(--accent-color);    /* 内側は青 */
    }

    .solve_banner_title {
        margin-top: 15px;
        margin-top: 0.9375rem;
    }

    .solve_banner_button {
        left: 50%;
        transform: translateX(-50%);
        margin-top: 20px;
        margin-top: 1.25rem;
    }

    .swiper-button-next, .swiper-button-prev {
        top: var(--swiper-navigation-top-offset, 40%) !important;
    }

}

@media screen and (max-width: 769px) {
    .pc {
        display: none;
    }

    .sp {
        display: block;
    }


}

@media screen and (max-width: 769px) {
    .container {
        max-width: unset;
        padding: 25px 16px;
        padding: 0 1rem;
    }

    .banner_container {
        padding: 0;
    }

    .banner {
        padding: 24px;
        padding: 1.5rem 1rem;
        margin-top: 1.65rem;
        margin-bottom: 0;
        text-align: center;
    }

    .banner::before {
        top: 60px;
        top: 3.75rem;
        left: -60px;
        left: -3.75rem;
        width: 228px;
        width: 17.5rem;
        height: 100%;
        z-index: 0;
    }

    .banner::after {
        top: 50px;
        top: 3.125rem;
        right: -78px;
        right: -4.875rem;
        width: 310px;
        width: 19.375rem;
        height: 100%;
        z-index: 0;
    }

    .banner_wrapper {
        padding: 1.5625rem 0 0;
    }

    .banner_subtitle {
        font-size: 18px;
        font-size: 1.125rem;
        line-height: 1.4;
    }

    .banner .square {
        border: 5px solid var(--white-color);
        border: 0.3125rem solid var(--white-color);
    }

    .square::before {
        border: 1px solid #3698FD;
    }

    .banner_title {
        font-size: 28px;
        font-size: 1.75rem;
        margin-top: 8px;
        margin-top: 0.5rem;
    }

    .banner_text {
        font-size: 14px;
        font-size: 0.875rem;
        line-height: 0.8;
        padding: 10px 30px;
        padding: 7px 38px 17px 38px;
    }

    .banner_text strong.accent {
        font-size: 1.125rem;
    }

    .banner_text .big_number {
        font-size: 1.75rem;
    }

    .banner_cards {
        /* flex-direction: column; */
    }

    .banner_card {
        width: 260px;
        width: 16.25rem;
        /* margin: auto; */
        /* margin-top: 60px; */
    }

    .banner_card:nth-of-type(1) {
        margin-top: 3.45rem;
    }

    .banner_bottom_text {
        width: 260px;
        width: 16.25rem;
        margin-top: 16px;
        margin-top: 1rem;
    }

    .banner_card_img {
        width: 7.9rem;
    }

    .banner_card_inner {
        padding: 1.5rem;
        padding-top: 2.9rem;
    }

    .banner_card:nth-of-type(2) .banner_card_img {
        width: 8.48rem;
    }

    .banner_card:nth-of-type(3) .banner_card_img {
        width: 5.25rem;
    }

    .banner_card_text {
        font-size: 1.1875rem;
        line-height: 1.5;
    }

    .banner_button {
        max-width: 320px;
        max-width: 20rem;
        font-size: 14px;
        font-size: 0.875rem;
        z-index: 2;
    }

    .banner_button a {
        display: flex;
        justify-content: center;
        align-items: center;
        font-size: 1rem;
        padding: 0.625rem;
    }

    .button i {
        font-size: 1.5rem;
    }

    .banner_button .banner_button_text {
        font-size: 0.8125rem;
        top: -18px;
        top: -1.125rem;
    }

    .arrow {
        width: 40px;
        width: 2.5rem;
        height: 55px;
        height: 3.4375rem;
        margin-top: -20px;
        margin-top: -1.25rem;
    }
    
    .arrow::after {
        border-width: 20px 0 20px 30px;
        border-width: 1.25rem 0 1.25rem 1.875rem;
        border-top: 40px solid var(--primary-color);
        border-top: 2.5rem solid var(--primary-color);
        border-right: 40px solid transparent;
        border-right: 2.5rem solid transparent;
        border-left: 40px solid transparent;
        border-left: 2.5rem solid transparent;
        border-bottom: 0px solid transparent;
    }

}

@media screen and (max-width: 769px) {
    .banner_cards {
        flex-direction: column;
        margin-top: 0;
    }

    .banner_card {
        margin: auto;
        margin-top: 60px;
        margin-top: 3.75rem;
    }

    .banners_container {
        padding-top: 1rem;
    }

}


/* 各セクション
====================================================*/

/* --- header --- */
header {
    position: fixed;
    z-index: 999;
    width: 100%;
}

.header_container {
    padding-top: 25px;
    padding-top: 0.9rem;
    padding-bottom: 0.9rem;
}

.header__inner {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    justify-content: space-between;
    align-items: center;
    /* padding: 22px 15px; */
}

.header__right {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: flex-end;
}

.header__right .header__nav a {
    font-size: 14px;
    font-size: 16px;
    font-size: 1rem;
    font-weight: bold;
    padding: 18px 15px;
    padding: 1.125rem 0.9375rem;
}

.header_button {
    position: relative;
    border: unset;
    max-width: 210px;
    max-width: 13.125rem;
    width: 100%;
    /* padding: 1.5% 3%; */
    border-radius: 4px;
    margin-left: 15px;
    margin-left: 0.9375rem;
}

.header_button a {
    z-index: 1;
}

.header_button img {
    position: absolute;
    bottom: 0;
    left: -3%;
    left: -0.4rem;
    width: 20%;
    width: 2.625rem;
}

.header_button::before {
    content: unset;
}

/* .scrolled が付いたら背景色を変える */
body.scrolled header{
    background-color: var(--white-color);
  }

.header__logo a img {
    width: 100px;
    width: 6.25rem;
    display: block;
}

@media screen and (max-width: 769px) {
    .header_container {
        padding-top: 0.75rem;
        padding-bottom: 0.75rem;
    }

    .header_button img {
        left: -10px;
        left: -0.625rem;
        width: 28px;
        width: 1.57rem;
    }

    .header__logo a img {
        width: 4.25rem;
    }
}


.header__nav {
    display: none;
}

@media screen and (min-width: 770px) {
    .header__nav {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        /* gap: 40px; */
        background-color: var(--white-color);
        border-radius: 8px;
    }
}


.header__link {
    font-weight: 700;
    letter-spacing: 0.48px;
    -webkit-transition: color 0.3s;
    transition: color 0.3s;
}

.header__open {
    margin-top: 3px;
    margin-top: 0.1875rem;
}

@media screen and (min-width: 770px) {
    .header__open {
        display: none;
    }
}

.drawer-icon {
    width: 36px;
    height: 36px;
    position: relative;
    z-index: 51;
    background-color: var(--white-color);
    padding: 15px;
    padding: 0.9375rem;
    border-radius: 100%;
    border: 1px solid var(--primary-color)
}
.drawer-icon.is-checked .drawer-icon__bar:nth-of-type(1) {
    top: 50%;
    -webkit-transform: translate(-50%, -50%) rotate(45deg);
            transform: translate(-50%, -50%) rotate(45deg);
}
.drawer-icon.is-checked .drawer-icon__bar:nth-of-type(2) {
    display: none;
}
.drawer-icon.is-checked .drawer-icon__bar:nth-of-type(3) {
    top: 50%;
    -webkit-transform: translate(-50%, -50%) rotate(-45deg);
            transform: translate(-50%, -50%) rotate(-45deg);
}

.drawer-icon__bar {
    position: absolute;
    top: 35%;
    left: 50%;
    width: 15px;
    width: 0.9375rem;
    height: 2px;
    height: 0.125rem;
    border-radius: 6px;
    background: var(--primary-color);
    transform: translate(-50%, -50%);
    -webkit-transition: top 0.3s linear, -webkit-transform 0.3s linear;
    transition: top 0.3s linear, -webkit-transform 0.3s linear;
    transition: transform 0.3s linear, top 0.3s linear;
    transition: transform 0.3s linear, top 0.3s linear, -webkit-transform 0.3s linear;
}
.drawer-icon__bar:nth-of-type(2) {
    top: 50%;
}
.drawer-icon__bar:nth-of-type(3) {
    top: 65%;
}

.drawer-content {
    width: 100%;
    height: 100%;
    position: fixed;
    top: 0;
    right: 0;
    background: var(--white-color);
    z-index: 50;
    padding: 140px 40px 40px;
    padding: 7.5rem 2.5rem 2.5rem;
    -webkit-transform: translateX(100%);
            transform: translateX(100%);
    -webkit-transition: -webkit-transform 0.3s linear;
    transition: -webkit-transform 0.3s linear;
    transition: transform 0.3s linear;
    transition: transform 0.3s linear, -webkit-transform 0.3s linear;
}
.drawer-content.is-checked {
    -webkit-transform: translateX(0);
            transform: translateX(0);
}

.drawer-content__menu {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.drawer-content__link {
    display: inline-block;
    padding-top: 14px;
    padding-top: 0.875rem;
    padding-bottom: 14px;
    padding-bottom: 0.875rem;
    font-weight: 700;
    letter-spacing: 0.48px;
}

.drawer-content__button {
    margin-top: 14px;
    margin-top: 0.875rem;
    text-align: right;
}

@media screen and (max-width: 769px) {
    .header_button {
        max-width: unset;
        width: unset;
        margin-left: 0;
        margin-right: 10px;
        margin-right: 0.625rem;
        margin-top: 4px;
    }

    .header_button a {
        font-size: 14px;
        font-size: 0.875rem;
        padding: 0.5rem;
        line-height: 1;
    }

    .header_button i {
        font-size: 1rem;
    }

}

/* --- fv --- */

.fv {
    position: relative;
    font-weight: bold;
    color: var(--white-color);
    background-image: url(../img/fv_pc.png);
    background-size: cover;
    background-position: top;
    background-repeat: no-repeat;
}

.fv_container {
    padding: 7.5rem 1.875rem 4rem;
}

.fv_title {
    max-width: 55rem;
    width: 100%;
    font-size: var(--title-size);
    line-height: 1.4;
    letter-spacing: -0.03em;
}

.fv_title .square {
    width: var(--square-size);
    height: var(--square-size);
    font-size: calc(var(--square-size) / 1.3); /* サイズに応じる文字サイズ */
    margin-left: -10px;
    margin-left: -0.625rem;
}

.fv_title .small_text {
    font-size: calc(var(--title-size) * 0.77); /* サイズに応じる文字サイズ */
    vertical-align: bottom;
    margin-left: -10px;
    margin-left: -0.625rem;
}

.fv_text {
    font-size: 19px;
    font-size: 1.1875rem;
    font-weight: 700;
    line-height: 1.7;
    margin-top: 15px;
    margin-top: 0.9375rem;
}

.fv_cards {
    display: flex;
    margin-top: 1.875rem;
}

.fv_card {
    display: flex;
    align-items: flex-end;
    font-size: var(--card-size);
    background: var(--white-color);
    border-radius: 4px;
    min-width: 180px;
    z-index: 0;
    margin-right: 1.875rem;
}

.fv_card:nth-of-type(3) .fv_card_text {
    line-height: 180%;
}

.fv_card_inner {
    padding: 0.8125rem 1.4375rem;
}

.fv_card_text {
    color: #0E2C3C;
    line-height: 200%;
}

.fv_card_text .underline {
    position: relative;
    font-size: calc(var(--card-size) * 1.45);
    color: var(--primary-color);
}

.fv_card:nth-of-type(3) .fv_card_text .underline {
    font-size: 34px;
    font-size: 2.125rem;
}

.fv_card_text .underline::before {
    content: '';
    position: absolute;
    background-color: #FFE91F;
    bottom: -3px;
    bottom: -0.1875rem;
    width: 100%;
    height: 12px;
    height: 0.75rem;
    z-index: -1;
}

.fv_card_text .underline .big_number {
    font-size: calc(var(--card-size) * 2.68);
    font-family: 'din-2014';
}

.fv_card_text .middle_size {
    font-size: calc(var(--card-size) * 1.13);
}

@media screen and (max-width: 769px) {
    .fv {
        position: relative;
        width: 100%;
        box-sizing: border-box;
        background-image: url(../img/fv_sp.png);
    }

    .fv::before {
        content: "";
        display: block;
        padding-top: 133%;
    }

    .fv_container {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        padding: 0 5px;
        padding: 0 0.3125rem;
        padding-top: 67.2px;
        padding-top: 4.2rem;
    }

    .fv_title {
        max-width: 17.5rem;
        margin: auto;
        font-size: 0.875rem;
        font-weight: 700;
        line-height: 1.6;
        text-align: center;
    }

    .fv_title .square {
        font-size: var(--title-size);
        margin-left: -5px;
        margin-left: -0.3125rem;
        border: 5px solid var(--white-color);
        /* width: 11%;
        height: auto; */
        padding: 15px;
        padding: 0.9375rem;
    }
    
    .fv_title .small_text {
        font-size: calc(var(--title-size) * 0.77); /* サイズに応じる文字サイズ */
        vertical-align: text-top;
        margin-left: -5px;
        margin-left: -0.3125rem;
    }
    
    .fv_text {
        font-size: 14px;
        font-size: 0.875rem;
        line-height: 1.8;
        text-align: center;
        margin-top: 8px;
        margin-top: 0.5rem;
    }

    .fv_cards {
        margin-top: 20px;
        margin-top: 1.25rem;
        justify-content: center;
    }

    .fv_card {
        min-width: unset;
        max-width: unset;
        width: 100%;
        margin-right: 0;
        margin: 0 4px;
        margin: 0 0.25rem;
    }

    .fv_card:nth-of-type(3) .fv_card_inner {
        padding: 0.1rem;
    }

    .fv_card_text {
        font-size: 0.6rem;
        line-height:220%;
    }

    .fv_card_text .middle_size {
        font-size: 0.75rem;
    }

    .fv_card_text .underline {
        font-size: 0.9125rem;
    }

    .fv_card:nth-of-type(1) .fv_card_text {
        font-size: 0.75rem;
    }

    .fv_card:nth-of-type(3) .fv_card_text .underline {
        font-size: 1.0625rem;
    }

    .fv_card_text .underline .big_number {
        font-size: 1.7rem;
    }

    .fv_card_text .underline::before {
        bottom: 2px;
        bottom: 0.125rem;
        height: 6px;
        height: 0.375rem;
    }

    .fv_card_inner {
        width: fit-content;
        margin: auto;
        padding: 6px;
        padding: 0.3125rem;
    }

}

/* --- introduction --- */
.introduction {
    padding: 70px 0;
    padding: 4.375rem 0;
}

.introduction_container {
    max-width: 1000px;
    margin-top: 24px;
    margin-top: 2.5rem;
    overflow: hidden;
}

.slider-track {
    display: flex;
    gap: 8px;
    gap: 0.5rem;
    width: calc(100vw / 8);
    width: calc(200%);
    /* アニメーション定義 */
    animation: scroll 80s infinite linear 0.5s both;
}
.slider-track img {
    width: 10rem;
    height: 100%;
    display: block;
    flex-shrink: 0;
    margin-right: 60px;
    margin-right: 3.75rem;
}

@keyframes scroll {
    0%   { transform: translateX(0); }
    100% { transform: translateX(-100%); }
}

@media screen and (max-width: 769px) {
    .introduction_container {
        margin-top: 1rem;
        padding: 0;
    }

    .introduction {
        padding: 42.33px 0;
        padding: 1.425rem 0;
    }

    .slider-track img {
        width: 5.5rem;
        margin-right: 0.6rem; /* 元の設定に戻す */
    }

    .solve_banner_labels {
        justify-content: center;
    }

    .solve_banner_label {
        font-size: 14px;
        font-size: 0.875rem;
        padding: 6px 12px;
        padding: 0.375rem 0.75rem;
        margin-right: 12px;
        margin-right: 0.75rem;
        border: 1px solid var(--white-color);
    }

    .solve_banner {
        background-image: url(../img/solve_banner_sp.png);
        margin: 0 6px;
        margin: 0 0.375rem;
        margin-top: 50px;
        margin-top: 3.125rem;
        text-align: center;
    }

    .solve_banner::before {
        padding-top: 65%;
    }

    .solve_banner::after {
        content: unset;
    }

    .solve_banner_wrapper {
        padding: 32px 12px;
        padding: 2rem 0.75rem;
        padding: 0;
    }

    .solve_banner_wrapper .banner_button {
        margin-top: unset;
        bottom: 2.3rem;
    }


}

/* --- banners --- */
@media screen and (max-width: 769px) {
    .banners_wrapper {
        padding: 0;
    }
    
}


/* --- about --- */
.about {
    padding: 2.5rem 0;
    background-color: #EEF6FF;
}

.about_title {
    width: 100%;
    margin: auto;
}

.about_text {
    font-size: 21px;
    font-size: 1.3125rem;
    font-weight: 500;
    text-align: center;
    margin-top: 20px;
    margin-top: 1.25rem;
}

.about_block {
    background-color: var(--white-color);
    border-radius: 8px;
    max-width: 1200px;
    width: 100%;
    margin: 50px auto 0;
    margin: 3.125rem auto 0;
    border-radius: 8px;
}

.about_block_inner {
    padding: 3em;
}

.about_block_border {
    border: 2px solid #D9D9D9;
    margin: 60px 0;
    margin: 3.75rem 0;
}

.about_block_lower {
    font-weight: bold;
}

.about_block_lower_title {
    font-size: 51px;
    font-size: 3.205rem;
    font-weight: 900;
    text-align: center;
}

.about_block_lower_title span {
    color: var(--white-color);
    background-color: var(--primary-color);
    padding: 0.25em;
}

.about_block_lower_text {
    font-size: 21px;
    font-size: 1.3125rem;
    font-weight: 700;
    text-align: center;
    margin-top: 40px;
    margin-top: 2.5rem;
}

.about_cards {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    justify-content: center;
    margin-top: 30px;
    margin-top: 1.875rem;
}

.about_card {
    display: flex;
    align-items: center;
    font-size: var(--card-size);
    background: var(--white-color);
    border-radius: 4px;
    min-width: 180px;
    /* max-width: 180px; */
    z-index: 0;
    margin: 0 15px;
    margin: 0 0.9375rem;
    border-radius: 4px;
    border: 1px solid #D9D9D9
}

.about_card:nth-of-type(3) .underline {
    font-size: calc(var(--card-size) * 1.8);
    margin-right: unset;
}

.about_card_inner {
    padding: 1rem 1.6875rem;
}

.about_card_text {
    color: #0E2C3C;
    line-height: 200%;
}

.about_card:nth-of-type(3) .about_card_text {
    line-height: 180%;
}

.about_card_text .underline {
    position: relative;
    font-size: calc(var(--card-size) * 1.45);
    color: var(--primary-color);
    margin-right: -0.2em;
}

.about_card_text .underline::before {
    content: '';
    position: absolute;
    background-color: #FFE91F;
    bottom: -3px;
    bottom: -0.1875rem;
    width: 100%;
    height: 12px;
    height: 0.75rem;
    z-index: -1;
}

.about_card_text .underline .big_number {
    font-size: calc(var(--card-size) * 2.68);
    font-family: 'din-2014';
}

.about_card_text .middle_size {
    font-size: calc(var(--card-size) * 1.13);
}

/* レスポンシブ微調整 */
@media screen and (max-width: 769px) {
    .about_container {
        padding: 0;
    }

    .about_title {
        max-width: 20.46875rem;
    }

    .about_text {
        font-size: 16px;
        font-size: 1rem;
        text-align: left;
        line-height: 160%;
        padding: 0 25px;
        padding: 0 1.5625rem;
    }

    .about_block {
        margin-top: 15px;
        margin-top: 0.9375rem;
        border-radius: 32px;
    }

    .about_block_inner {
        padding: 25px 16px;
        padding: 1.5625rem 1rem;
    }

    .about_block_border {
        border: 1px solid #D9D9D9;
        margin: 25px 0;
        margin: 1.5625rem 0;
    }

    .about_block_upper {
        width: 100%;
        margin: auto;
        padding: 0 15px;
        padding: 0 0.9375rem;
    }

    .about_block_lower_title {
        font-size: 26px;
        font-size: 1.625rem;
        line-height: 1.6;
    }

    .about_block_lower_text {
        font-size: 12px;
        font-size: 0.75rem;
        font-weight: 400;
        line-height: 1.8;
        margin-top: 8px;
        margin-top: 0.5rem;
    }

    .about_cards {
        width: 100%;
        margin-top: 20px;
        margin-top: 1.25rem;
    }

    .about_card {
        min-width: unset;
        /* max-width: 180px; */
        margin: 0 4px;
        margin: 0 0.25rem;
    }

    .about_card_text {
        font-size: 10px;
        font-size: 0.625rem;
        width: fit-content;
        margin: auto;
    }

    .about_card:nth-of-type(1) .about_card_text {
        line-height: 1.1;
    }

    .about_card:nth-of-type(2) .about_card_text {
        line-height: 1.1;
    }

    .about_card:nth-of-type(3) .about_card_text {
        line-height: 1.5;
    }

    .about_card_inner {
        padding: 6px 3px;
        padding: 0.375rem 0.1875rem;
    }

    .about_card_text .underline::before {
        bottom: 0px;
        height: 5px;
        height: 0.3125rem;
    }

    .about_card_text .underline .big_number {
        font-size: 25px;
        font-size: 1.5625rem;
        font-size: calc(var(--card-size) * 2.2775);
    }

    .about_card_text .underline {
        font-size: 15px;
        font-size: 0.9375rem;
        font-size: calc(var(--card-size) * 1.2158);
    }

    .about_card_text .middle_size {
        font-size: 10px;
        font-size: 0.625rem;
    }


}

/* --- why --- */
.why {
    padding: 112px 0;
    padding: 7rem 0;
}

.why_title {
    margin-top: 15px;
    margin-top: 0.9375rem;
}

.why_title .underline {
    color: var(--primary-color);
    text-decoration: underline;
}

.why_cards {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    justify-content: center;
    align-items: center;
    margin-top: 40px;
    margin-top: 2.5rem;
}

.why_card {
    width: 30%;
    border-radius: 4px;
    border: 1px solid #D9D9D9;
    margin: 0 16px;
}

.why_card_inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 25px;
    padding: 1.5625rem;
}

.why_card_image {
    max-width: 180px;
    width: 100%;
}

.why_card_text {
    font-size: 21px;
    font-size: 1.3125rem;
    font-weight: 500;
    line-height: 140%;
    text-align: center;
}

.why_card:nth-of-type(2) .why_card_text,
.why_card:nth-of-type(3) .why_card_text {
    font-weight: 700;
}

.why_card_text .blue {
    color: var(--primary-color);
}

/* レスポンシブ微調整 */
@media screen and (max-width: 769px) {
    .why {
        padding: 3.5rem 0;
    }

    .why_cards {
        flex-direction: column;
        align-items: center;
    }

    .why_card {
        width: 100%;
        margin: 0;
        margin-top: 25px;
        margin-top: 1.5625rem;
    }

    .why_card:nth-of-type(1) {
        margin-top: 0;
    }

}

/* --- reason --- */
.reason {
    color: var(--white-color);
    background-image: url(../img/reason_bg_pc.png);
    background-size: cover;
    background-repeat: no-repeat;
    overflow: hidden;
    padding: 95px 0;
    padding: 5rem 0;
}

.reason_title {
    max-width: 51rem;
    width: 100%;
    margin: auto;
}

.reason_blocks {
    margin-top: 85px;
    margin-top: 3.7rem;
}

.reason_block {
    display: flex;
    flex-direction: row-reverse;
    flex-wrap: nowrap;
    justify-content: space-between;
    align-items: center;
    margin-top: 60px;
    margin-top: 3.75rem;
}

.reason_block:nth-of-type(1) {
    margin-top: unset;
}

.reason_block_image {
    max-width: 600px;
    max-width: 37.5rem;
    width: 100%;
}

.reason_block_text {
    width: fit-content;
    margin-right: 60px;
    margin-right: 3.75rem;
}

.reason_block_label {
    font-size: 19px;
    font-size: 1.1875rem;
    padding: 12px 15px;
    padding: 0.75rem 0.9375rem;
    background-color: var(--accent-color);
}

.reason_block_title {
    font-size: 32px;
    font-size: 2rem;
    font-weight: 700;
    line-height: 1.5;
    margin-top: 40px;
    margin-top: 2.5rem;
}

.reason_block_description {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.9;
    margin-top: 25px;
    margin-top: 1.5625rem;
}

/* レスポンシブ微調整 */
@media screen and (max-width: 769px) {
    .reason {
        background-image: url(../img/reason_bg_sp.png);
        padding: 2.5rem 0;
    }

    .reason_container {
        padding: 0 1rem;
    }

    .reason_title {
        font-size: 30px;
        font-size: 1.875rem;
        width: 15.3125rem;
        margin: auto;
    }

    .reason_blocks {
        margin-top: 2rem;
    }

    .reason_block {
        flex-direction: column;
        align-items: flex-start;
        margin-top: 40px;
        margin-top: 2.5rem;
    }

    .reason_block_image {
        width: 100%;
    }

    .reason_block_label {
        font-size: 1rem;
        padding: 0.45rem 0.375rem;
    }

    .reason_block_text {
        width: 100%;
        margin-right: 0;
        margin-top: 1.4rem;
    }

    .reason_block_title {
        font-size: 24px;
        font-size: 1.3rem;
        margin-top: 18px;
        margin-top: 1.125rem;
    }

    .reason_block_description {
        font-size: 0.875rem;
        line-height: 1.8;
        margin-top: 10px;
    }

}


/* --- member --- */
.member {
    padding-bottom: 75px;
    padding-bottom: 4.6875rem;
}

.member_title {
    font-size: 40px;
    font-size: 2.5rem;
    font-weight: bold;
    text-align: center;
}

.member_container {
    margin-top: 25px;
    margin-top: 1.5625rem;
}

.member_swiper-container {
    position: relative;
}

.member_swiper {
    transition-timing-function: linear !important;
}

.member_swiper-slide_img {
    object-fit: cover;
}

.member_swiper-slide_comment {
    font-size: 21px;
    font-size: 1.3125rem;
    font-size: 0.9rem;
    font-weight: 700;
    margin-top: 10px;
    margin-top: 0.625rem;
    line-height: 1.4;
}

.member_swiper-slide_name {
    font-size: 19px;
    font-size: 1.1875rem;
    font-size: 0.8rem;
    margin-top: 10px;
    margin-top: 0.625rem;
    color: #818181;
}

/* レスポンシブ微調整 */
@media screen and (max-width: 769px) {
    .member {
        padding: 3.5rem 0;
    }

    .member_title {
        font-size: 26px;
        font-size: 1.625rem;
    }

    .member_container {
        padding: 0;
        margin-top: 1rem;
    }

    .member_swiper-slide_comment {
        font-size: 18px;
        font-size: 1.125rem;
        line-height: 1.6;
        margin-top: 0.5rem;
    }

    .member_swiper-slide_name {
        font-size: 1rem;
        margin-top: 0.5rem;
    }

}

/* --- example --- */
.example {
    padding: 40px 0;
    padding: 2.5rem 0;
    background-color: #EEF6FF;
}

.example_title {
    font-size: 60px;
    font-size: 3.75rem;
    font-size: 2.625rem;
    line-height: 1.3;
}

.example_containe {
    margin-top: 40px;
    margin-top: 2.5rem;
}

.example_swiper-container {
    position: relative;
    margin-top: 40px;
    margin-top: 2rem;
}

.example_swiper-slide {
    /* width: 35%; */
    background-color: var(--white-color);
    border-radius: 32px;
}

.example_swiper-slide_wrapper {
    padding: 24px;
    padding: 1.5rem;
}

.example_swiper-slide_head {
    display: flex;
    grid-template-columns: 100px 150px 1fr;
}

.example_swiper-slide_img {
    max-width: 11.5rem;
    width: 100%;
    margin-right: 22px;
    margin-right: 1.375rem;
    min-width: 200px;

}

.example_swiper-slide_img p {
    font-size: 16px;
    font-size: 1rem;
    margin-top: 10px;
    margin-top: 0.625rem;
}

.example_swiper-slide_top_name {
    font-size: 16px;
    font-size: 1rem;
    font-weight: 400;
}

.example_swiper-slide_top_text {
    font-size: 21px;
    font-size: 1.3125rem;
    font-weight: 500;
    line-height: 1.4;
    margin-top: 0.5rem;
}

.example_swiper-slide_top_text .accent {
    color: var(--primary-color);
}

.example_swiper-slide_lower {
    margin-top: 24px;
    margin-top: 1.5rem;
    background-color: #F5F5F5;
}

.example_swiper-slide_inner {
    padding: 12px;
    padding: 0.75rem;
}

.example_swiper-slide_lower .title {
    font-size: 16px;
    font-size: 1rem;
    color: #7D7D7D;
}

.example_swiper-slide_lower .contents {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.8;
    margin-top: 10px;
    margin-top: 0.625rem;
}




@media screen and (max-width: 769px) {
    .example {
        padding: 1.5rem 0;
        margin-top: 25px;
    }

    .example_container {
        width: 100%;
        padding: 0 1rem;
    }

    .example_swiper-container .swiper-button-next, .swiper-rtl .swiper-button-prev {
        right: var(--swiper-navigation-sides-offset, -5px) !important;
        right: var(--swiper-navigation-sides-offset, -1.3125rem) !important;
    }

    .example_swiper-container .swiper-button-prev, .swiper-rtl .swiper-button-next {
        left: var(--swiper-navigation-sides-offset, -5px) !important;
        left: var(--swiper-navigation-sides-offset, -1.3125rem) !important;
    }

    .example_title {
        font-size: 2rem;
    }

    .example_swiper-container {
        margin-top: 1rem;
    }

    .example_swiper-slide_wrapper {
        padding: 15px;
        padding: 0.9375rem;
    }

    .example_swiper-slide_head {
        flex-direction: column;
    }

    .example_swiper-slide_img {
        max-width: unset;
        width: 100%;
    }

    .example_swiper-slide_img p {
        font-size: 14px;
        font-size: 0.875rem;
    }

    .example_swiper-slide_top {
        margin-top: 24px;
        margin-top: 1.5rem;
    }

    .example_swiper-slide_top_name {
        font-size: 14px;
        font-size: 0.875rem;

    }

    .example_swiper-slide_text {
        margin-left: 0;
        margin-top: 15px;
        margin-top: 0.9375rem;
    }

    .example_swiper-slide_top_text {
        font-size: 18px;
        font-size: 1.125rem;
        font-weight: 700;
        line-height: 1.6;
    }

    .example_swiper-slide_text .text {
        margin-top: 5px;
        margin-top: 0.3125rem;
        line-height: 1.6;
        font-weight: bold;
    }

    .example_swiper-slide_lower .title {
        font-size: 14px;
        font-size: 0.875rem;
    }

    .example_swiper-slide_lower .contents {
        font-size: 0.875rem;
    }

}


/* --- pricing --- */

/*――――――――――――――――――
ベーススタイル
――――――――――――――――――*/
.pricing {
    text-align: center;
    padding: 56px 0;
    padding: 3.5rem 0;
}

@media screen and (max-width: 769px) {
    .pricing_container {
        /*overflow-x: scroll;*/
        padding: 0 1rem;
    }

}

/*――――――――――――――――――
    テーブル
――――――――――――――――――*/
.common_col {
    width: 25%;
}

.col-head .row-data {
    margin-top: 0;
}

.row-header, .row-data {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    font-size: 19px;
    font-size: 1.1875rem;
    height: 95px;
    height: 5.9375rem;
    margin: 12px 8px;
    margin: 0.75rem 0.5rem;
    line-height: 1.8;
    border-radius: 12px;
    box-shadow: 0px 0px 6px 0px #00000033;

}

.row-header {
    margin-top: 0;
    background-color: #E4F1FF;
    font-weight: 700;
}
.row-header p{
    font-weight: 400;
}

.row-header small {
    font-size: 16px;
    font-size: 1rem;
    line-height: 1.8;
}

.col-head .row-data {
    font-weight: bold;
    background-color: #F2F3F7;
}

.col-regular .col-inner {
    margin-top: -3px;
    margin-top: -0.1875rem;
    border-radius: 18px;
    border: 3px solid var(--primary-color);
}

.col-regular .row-header {
    margin-top: 0;
    margin-left: 0;
    margin-right: 0;
    color: var(--white-color);
    background-color: var(--primary-color);
    border-radius: 12px 12px 0 0;
}

.regular_header {
    line-height: 1.4;
    font-weight: 700;
}

.regular_header .badge {
    font-weight: 400;
    line-height: 1.8;
    margin-top: 6px;
}

.col-regular .row-data {
    font-weight: 700;
    color: var(--primary-color);
    margin-left: 0;
    margin-right: 0;
}

.col-regular .row-data:last-of-type {
    margin-bottom: 0;
}

.common_col.col-head > div > div:nth-child(1) {
    opacity: 0;
}

@media screen and (max-width: 769px) {
    .row-header, .row-data {
        font-size: 14px; /* 16pxから14pxに縮小 */
        padding: 0.3rem; /* パディング調整 */
    }

    .row-header {
        height: 80px;
        height: 4.5rem;
        line-height: 1.4;
    }

    .row-data {
        height: 4.2rem;
    }

    .common_col {
        width: 145px;
        min-width: 145px;
        flex-shrink: 0;
    }

    .col-head {
        width: auto;
    }

    .col-head .row-data {
        font-size: 12px;
        font-size: 0.75rem;
        padding: 0 0.5rem;
    }

    .col-regular .row-header {
        border-radius: 12px;
    }

    .col-regular .row-data {
        font-size: 19px;
        font-size: 1.1875rem;
    }

    .row-header p {
        line-height: 0.58;
    }

    .row-header small {
        font-size: 0.625rem;
    }


    .regular_header {
        font-size: 1.1875rem;
        line-height: 1;
    }

    .col-regular small {
        line-height: 2.5;
    }
}

/*――――――――――――――――――
    オススメバッジ
――――――――――――――――――*/
.badge {
    display: inline-block;
    color: #E6185E;
    background-color: #fff;
    font-size: 16px;
    font-size: 1rem;
    padding: 0px 8px;
    padding: 0px 0.5rem;
    border-radius: 999px;
}

.badge i {
    margin-right: 5px;
    margin-right: 0.3125rem;
}

@media screen and (max-width: 769px) {
    .badge {
        display: block;
        width: fit-content;
        font-size: 0.625rem;
        margin: 0 auto 5px;
        margin: 0 auto 0.3125rem;
        font-weight: normal;
    }
}


/*――――――――――――――――――
    注釈
――――――――――――――――――*/
.note {
    margin-top: 15px;
    margin-top: 0.9375rem;
    font-size: 19px;
    font-size: 1.1875rem;
    color: #111111;
    text-align-last: left;
}

/* PC版のテーブルはデフォルトで表示 */
.pricing-table {
    display: flex;
    margin-top: 25px;
    margin-top: 1.5625rem;
}

/* SP版のカード群は非表示 */
.pricing-mobile_container {
    overflow-y: scroll;
}

.pricing-mobile {
    display: none;
}

.pricing-mobile-text {
    display: none;
}

/* モバイル時の切り替え */
@media screen and (max-width: 769px) {
  /* テーブルは隠す */
    .pricing-table {
        display: none;
    }

    .pricing-mobile-text {
        display: block;
        font-size: 12px;
        font-size: 0.75rem;
        text-align: right;
        margin-top: 16px;
        margin-top: 1rem;
        padding: 20px 0 0 0;
    }

    /* カード群を表示＆横スクロール有効に */
    .pricing-mobile {
        display: flex;
        overflow-x: auto;
        padding: 18px 0 0 0;
        width: 100%; /* 100%に修正 */
        margin-top: 10px;
        margin-top: 0.625rem;
        /* min-width は削除または調整 */

    }
    .pricing-mobile .column {
        flex: 0 0 200px;
        background: #fff;
        border-radius: 8px;
        box-shadow: 0 2px 8px rgba(0,0,0,0.1);
        padding: 1rem;
        text-align: center;
    }

    .note {
        font-size: 0.75rem;
        margin-top: 0.5rem;
    }
}

/* --- available --- */
.available {
    padding: 40px 0;
    padding: 2.5rem 0;
    background-color: #F5F5F5;
}

.available_container {
    max-width: 1100px;
}

.available_subtitle {
    font-size: 19px;
    font-size: 1.1875rem;
    font-weight: 400;
}

.available_title {
    margin-top: 15px;
    margin-top: 0.9375rem;
}

.available_cards {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center;
}

.available_card {
    width: 46%;
    margin: 20px;
    margin: 1.25rem;
    border-radius: 12px;
    background-color: var(--white-color);
}

.available_card_inner {
    padding: 30px;
    padding: 1.875rem;
}

.available_card_upper {
    display: flex;
    flex-direction: column;
}

.available_card_img {
    width: 20%;
    width: 23%;
}

.available_card_title {
    font-size: 26px;
    font-size: 20px;
    font-size: 1.25rem;
    font-weight: 700;
    margin-top: 20px;
    margin-top: 1.25rem;
}

.available_card_lower {
    display: flex;
    margin-top: 1.875rem;
}

.available_card_lower ul {
    width: -webkit-fill-available;
}

.available_card_lower li {
    font-size: 16px;
    font-size: 1rem;
    margin-top: 20px;
    margin-top: 1rem;
}

.available_card_lower li:nth-of-type(1) {
    margin-top: 0px;
}

.available_card_lower li i {
    color: var(--primary-color);
    padding-right: 8px;
    padding-right: 0.5rem;
}

.available_plan {
    margin-top: 50px;
    margin-top: 3.125rem;
}

.available_plan_cards {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    justify-content: center;
    margin-top: 25px;
    margin-top: 1.5625rem;
}

.available_plan_card {
    width: 32%;
    margin: 0 10px;
    margin: 0 0.625rem;
    background-color: var(--white-color);
    border-radius: 12px;
}

.available_plan_card_inner {
    padding: 25px;
    padding: 1.5625rem;
}

.available_plan_card_detail_item {
    display: flex;
    margin-top: 15px;
    margin-top: 0.9375rem;
}

.available_plan_card_detail_item .title,
.available_plan_card_detail_item .text,
.available_plan_card_time_item .title {
    font-size: 16px;
    font-size: 1rem;
}

.available_plan_card_detail_item .title {
    color: #787878;
    max-width: 115px;
    max-width: 8.875rem;
    width: 100%;
    font-size: 14px;
    font-size: 0.875rem;
}

.available_plan_card_detail_item .title img {
    max-width: 18px;
    width: 100%;
    margin-right: 5px;
    margin-right: 0.3125rem;
}

.available_plan_card_border {
    border: 1px solid #D9D9D9;
    margin: 15px 0;
    margin: 0.9375rem 0;
}

.available_plan_card_title {
    font-size: var(--available-plan-card-title-size);
    font-weight: bold;
}

.available_plan_card_title .large_text {
    color: var(--primary-color);
    font-size: calc(var(--available-plan-card-title-size) * 1.23);
    font-weight: bold;
}

.available_plan_card_time_item {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    margin-top: 20px;
    margin-top: 0.4rem;
}

.available_plan_card_time_item .title {
    line-height: 1.8;
}

.available_plan_card_time_item .text {
    font-size: var(--available-plan-card-time-item-size);
    color: var(--primary-color);
    max-width: 70px;
    max-width: 4.375rem;
    width: 100%;
    margin-left: 5px;
    margin-left: 0.3125rem;
}

.available_plan_card_time_item .text .number {
    font-size: calc(var(--available-plan-card-time-item-size) * 1.42);
    font-weight: bold;
}

  /* レスポンシブ微調整 */
@media screen and (max-width: 769px) {
    .available {
        padding: 1.5rem 0;
    }

    .available_wrapper {
        padding: 25px 15px;
        padding: 1.5625rem 0.9375rem;
    }

    .available_subtitle {
        font-size: 16px;
        font-size: 1rem;
    }

    .available_title {
        margin-top: 4px;
        margin-top: 0.25rem;
    }

    .available_cards {
        flex-direction: column;
        flex-wrap: nowrap;
        align-items: center;
    }

    .available_card {
        width: 100%;
        margin: 0.7rem 1rem;
    }

    .available_card_inner {
        padding: 24px;
        padding: 1.5rem;
    }

    .available_card_img {
        width: 4rem;
    }

    .available_card_upper {
        flex-direction: row;
        justify-content: flex-start;
        align-items: center;
    }

    .available_card_lower {
        flex-direction: column;
    }

    .available_card_lower ul:nth-of-type(2) {
        margin-top: 15px;
        margin-top: 0.9375rem;
    }

    .available_card_title {
        font-size: 19px;
        font-size: 1.1875rem;
        margin-left: 24px;
        margin-left: 1.5rem;
        margin-top: 0;
        line-height: 1.6;
    }

    .available_plan_cards {
        flex-direction: column;
    }

    .available_plan_card {
        width: 100%;
        margin: 0;
        margin-top: 25px;
        margin-top: 1.5625rem;
    }

    .available_card_lower {
        margin-top: 16px;
        margin-top: 1rem;
    }

    .available_card_lower li {
        line-height: 1.6;
    }

    .available_card_lower li, .available_card_lower ul:nth-of-type(2) {
        margin-top: 0.5rem;
    }

    .available_plan_card:nth-of-type(1) {
        margin-top: 0;
    }

    .available_plan {
        margin-top: 2.5rem;
    }

    .available_plan .available_title {
        margin-top: 0;
    }

    .available_plan_card_inner {
        padding: 16px;
        padding: 1rem;
    }

    .available_plan_card_title {
        font-size: var(--available-plan-card-title-size);
    }

    .available_plan_card_title .large_text {
        font-size: calc(var(--available-plan-card-title-size) * 1.33);
    }

    .available_plan_card_time_item {
        margin-top: 8px;
        margin-top: 0.5rem;
    }

    .available_plan_card_border {
        margin: 12px 0;
        margin: 0.75rem 0;
    }

    .available_plan_card_detail_item .title, .available_plan_card_detail_item .text  {
        font-size: 14px;
        font-size: 0.875rem;
    }

    .available_plan_card_time_item .title {
        font-size: 16px;
        font-size: 1rem;
    }

    .available_plan_card_time_item .text .number {
        font-size: calc(var(--available-plan-card-time-item-size) * 1.6);
    }

    .available_plan_card_time_item .text {
        margin-left: 12px;
        margin-left: 0.75rem;
    }

}

/* --- service_flow --- */
.service_flow {
    padding: 40px 0;
    padding: 2.5rem 0;
    background-color: #EEF6FF;
}

.service_flow_blocks {
    margin-top: 25px;
    margin-top: 1.5625rem;
}

.service_flow_block {
    background-color: var(--white-color);
    border-radius: 8px;
}

.service_flow_block_inner {
    display: flex;
    padding: 25px;
    padding: 1.5625rem;
}

.service_flow_block_left {
    font-size: 19px;
    font-size: 1.1875rem;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    width: 80px;
    width: 5rem;
    height: 80px;
    height: 5rem;
    padding: 10px;
    padding: 0.625rem;
    padding-top: 20px;
    padding-top: 1.25rem;
    color: var(--white-color);
    background-color: var(--primary-color);
    border-radius: 4px;
    text-align: center;
}

.service_flow_block_left p {
    font-size: 46px;
    font-size: 2.875rem;
    font-family: 'Inter_18pt-Medium';
    margin-top: -5px;
    margin-top: -0.3125rem;
}

.service_flow_block_right {
    margin-left: 25px;
    margin-left: 1.5625rem;
}

.service_flow_block_title {
    font-size: 32px;
    font-size: 2rem;
    font-weight: bold;
    line-height: 1.4;
}

.service_flow_block_text {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.8;
    margin-top: 10px;
    margin-top: 0.625rem;
}

.service_flow_block_arrow {
    width: 0;
    height: 0;
    border-style: solid;
    /* 上辺0・左右6px・下辺6pxの三角形を描く */
    border-width: 20px 30px 0px 30px;
    border-width: 1.25rem 1.875rem 0px 1.875rem;
    border-color: #D6D6D6 transparent transparent transparent;
    margin: 20px auto;
    margin: 1.25rem auto;
}

.service_flow_block_button {
    max-width: 355px;
    max-width: 22.1875rem;
    width: 100%;
    margin-top: 15px;
    margin-top: 0.9375rem;
    border-radius: 2px;
}

.service_flow_block_button a {
    font-size: 24px;
    font-size: 1.5rem;
        padding: 1.125rem 0;
}

  /* レスポンシブ微調整 */
@media screen and (max-width: 769px) {
   .service_flow {
        padding: 1.5rem 0;
    }

    .service_flow_blocks {
        margin-top: 16px;
        margin-top: 1rem;
    }

    .service_flow_block_inner {
        padding: 16px;
        padding: 1rem;
    }

    .service_flow_block_left {
        width: 3rem;
        height: 3rem;
        /* height: fit-content; */
        padding: 0 8px;
        padding: 0 0.5rem;
        justify-content: flex-end;
    }

    .service_flow_block_left span {
        font-size: 12px;
        font-size: 0.75rem;
    }

    .service_flow_block_left p {
        font-size: 24px;
        font-size: 1.5rem;
        margin-top: -0.1rem;
    }

    .service_flow_block_right {
        margin-left: 16px;
        margin-left: 1rem;
    }

    .service_flow_block_text {
        margin-top: 8px;
        margin-top: 0.5rem;
    }

    .service_flow_block_title {
        font-size: 24px;
        font-size: 1.5rem;
    }


    .service_flow_block_text {
        font-size: 16px;
        font-size: 1rem;
        line-height: 160%;
    }

    .service_flow_block_button a {
        font-size: 16px;
        font-size: 1rem;
        padding: 12px 0;
        padding: 0.75rem 0;
    }

    .service_flow_block_arrow {
        margin: 0.75rem auto;
        border-width: 0.833rem 1rem 0px 1rem;
    }

}



/* --- faq --- */
.faq {
    padding: 75px 0;
    padding: 4.6875rem 0;
}

.faq_container {
    display: flex;
}

.faq_title {
    max-width: 28rem;
    width: 100%;
}

.faq_maintitle, .faq_subtitle{
    text-align: left;
}

.faq_maintitle {
    line-height: 1.4;
}

.faq_subtitle {
    font-weight: 400;
    line-height: 1.8;
    margin-top: 15px;
    margin-top: 0.9375rem;
}

.faq_cards {
    width: 100%;
    margin-left: 60px;
    margin-left: 3.75rem;
}

.faq_card {
    border-radius: 8px;
    border: 1.1px solid #D9D9D9;
    margin-top: 1.875rem;
}

.faq_card:nth-of-type(1) {
    margin-top: 0;
}

.faq_card_inner {
    padding: 25px;
    padding: 1.5625rem;
}

.faq_card_question {
    font-size: 20px;
    font-size: 1.25rem;
    position: relative;
    font-weight: bold;
    margin-bottom: 10px;
    margin-bottom: 0.625rem;
    cursor: pointer;
}

.faq_card_question::before {
    content: 'Q.';
    position: absolute;
    left: 0;
    color: var(--primary-color);
    font-weight: 700;
}


/* 1) summary自身のリストマーカーをオフ */
.faq_card_inner summary {
    position: relative;
    list-style: none;          /* Firefox/Edge で効く */
    padding-inline-start: 0;   /* 余白（インデント）も消したいなら */
    -webkit-appearance: none;  /* Safariでの独自スタイルを消す */
    padding-right: 25px;
    padding-right: 1.5625rem;
    padding-left: 1.5em;
    margin-bottom: 0;
    color: #111;
    font-weight: 500;
    line-height: 1.4;
}

/* 2) WebKit系（Chrome/Safari向け） */
.faq_card_inner summary::-webkit-details-marker {
    display: none;
}

/* 3) 標準仕様（Chrome, Edge, Firefoxなど） */
.faq_card_inner summary::marker {
    content: none;
}

.faq_card_inner summary::after {
    position: absolute;
    top: 0;
    right: 0;
    transform: translateY(0%) rotate(45deg);
    width: 10px;
    width: 0.625rem;
    height: 10px;
    height: 0.625rem;
    margin-left: 10px;
    margin-left: 0.625rem;
    border-bottom: 1px solid #D9D9D9;
    border-right: 1px solid #D9D9D9;
    content: '';
    /* transition: transform .3s; */
}

.faq_card_inner[open] summary::after {
    transform: rotate(225deg);
}

.faq_card_inner p {
    padding-left: 32px;
    padding-left: 2rem;
    line-height: 1.8;
    transform: translateY(-10px);
    transform: translateY(-0.625rem);
    opacity: 0;
    margin: 0;
    padding: 1em 0 0 2em;
    color: #333333;
    transition: transform .5s, opacity .5s;
    font-weight: 400;
}

.faq_card_inner[open] p {
    transform: none;
    opacity: 1;
}

  /* レスポンシブ微調整 */
@media screen and (max-width: 769px) {
    .faq {
        padding: 56px 0;
        padding: 3.5rem 0;
    }

    .faq_container {
        flex-direction: column;
    }

    .faq_maintitle, .faq_subtitle {
        text-align: center;
    }

    .faq_title h2 {
        font-size: 24px;
        font-size: 1.5rem;
    }

    .faq_title p {
        font-size: 14px;
        font-size: 0.875rem;
        margin-top: 8px;
        margin-top: 0.5rem;
        line-height: 1.6;
    }

    .faq_cards {
        width: 100%;
        margin-top: 16px;
        margin-top: 1rem;
        margin-left: 0;
        padding-left: 0;
    }

    .faq_card {
        margin-top: 24px;
        margin-top: 1.5rem;
    }

    .faq_card_inner {
        padding: 16px;
        padding: 1rem;
    }

    .faq_card_inner summary {
        font-size: 18px;
        font-size: 1.125rem;
        font-weight: 700;
        line-height: 1.6;
    }

    .faq_card_inner p {
        padding: 0.5rem 0 0 1.5em;
    }

}

/* --- contact --- */
.contact {
    padding: 40px 0;
    padding: 2.5rem 0;
    background-color: var(--primary-color);
}

.contact_container {
    max-width: 700px;
}

.contact_container iframe {
    border-radius:  0 0 12px 12px;
}

.contact_block_top {
    background-color: var(--white-color);
    border-radius: 12px 12px 0 0;
    padding: 31px 12px 0;
}

.contact_block_inner {
    padding: 1.875rem 80px;
}

.contact_block {
    background-color: var(--white-color);
    border-radius: 12px;
}

.contact_title {
    font-size: 40px;
    font-size: 2.5rem;
    font-weight: bold;
    text-align: center;
}

.contact_subtitle {
    text-align: center;
    margin-top: 15px;
    margin-top: 0.9375rem;
    line-height: 140%;
}

/* フォーム */
#contact form {
    margin-top: 50px;
    margin-top: 3.125rem;
}

.contact-form .form-group {
    margin-bottom: 1.25rem;
}

label {
    font-size: 1rem !important;
}

.form-elements label .tag {
    font-size: 0.75rem !important;
}

.form-elements small {
    font-size: 0.8rem !important;
}

.form-group.editable > button {
    font-size: 1.25rem !important;
}

.contact-form label {
    display: block;
    font-size: 0.9rem;
    font-weight: bold;
    margin-bottom: 0.5rem;
}
.required {
    color: #e61b4f;
    font-size: 0.85rem;
}

.checkbox-group label {
    font-weight: 400;
}

/* 入力欄 */
.contact-form input[type="text"],
.contact-form input[type="email"],
.contact-form input[type="tel"],
.contact-form textarea {
    width: 100%;
    padding: 1.25rem 0.75rem;
    border: 1px solid #ccc;
    border-radius: 4px;
    font-size: 0.95rem;
    outline: none;
    transition: border-color 0.2s;
}
.contact-form input:focus,
.contact-form textarea:focus {
    border-color: #0065cc;
}

/* チェックボックス */
.checkbox-group label {
    display: flex;
    align-items: center;
    font-size: 0.9rem;
}
.checkbox-group label a {
    color: var(--primary-color);
    text-decoration: underline;
}
.checkbox-group input {
    margin-right: 0.5rem;
    width: 16px;
    height: 16px;
}

/* 送信ボタン */
.btn-submit {
    display: block;
    width: 100%;
    background: #E6185E;
    color: #fff;
    font-size: 1rem;
    font-weight: bold;
    padding: 1rem 0;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    text-align: center;
    transition: background 0.2s;
}
.btn-submit i {
    margin-left: 5px;
    margin-left: 0.3125rem;
}

  /* レスポンシブ微調整 */
@media screen and (max-width: 769px) {
    .contact {
        padding: 24px 0;
        padding: 1.5rem 0;
    }

    .contact_block_top {
        padding: 24px 12px 0;
    }


    .contact_block_inner {
        padding: 15px 25px;
        padding: 0.9375rem 1.5625rem;
    }

    .contact_title {
        font-size: 26px;
    }

    .contact_subtitle {
        font-size: 16px;
        margin-top: 8px;
    }

    #contact form {
        margin-top: 30px;
        margin-top: 1.875rem;
    }

    :root .form-group.editable[data-v-3610ae6e], _[data-v-3610ae6e]::-webkit-full-page-media {
        margin-bottom: 24px !important;
    }

}

/* --- footer --- */
.footer {
    padding: 14.5rem 0 3rem 0;
}


.footer_upper,
.footer_links {
    display: flex;
    flex-direction: row;
    justify-content: flex-start;
    align-items: flex-start;
}

.footer_logo_img {
    max-width: 150px;
    max-width: 9.375rem;
    width: 100%;
}

.footer_logo_text {
    font-size: 14px;
    font-size: 0.875rem;
    margin-top: 10px;
    margin-top: 0.625rem;
}

.footer_links {
    margin-left: 180px;
}

.footer_links_list {
    margin-left: 95px;
    margin-left: 5.9375rem;
}

.footer_links_list:nth-of-type(1) {
    margin-left: 0px;
}

.footer_links_list {
    margin-left: 95px;
    margin-left: 5.9375rem;
}

.footer_links li {
    margin-top: 25px;
    margin-top: 1.5625rem;
}

.footer_links li:nth-of-type(1) {
    margin-top: 0px;
}

.footer_lower {
    margin-top: 100px;
    margin-top: 6.25rem;
}

.company_logo_img {
    max-width: 120px;
    max-width: 7.5rem;
    width: 100%;
}

.company_logo_text,
.company_info_text {
    font-size: 10px;
    font-size: 0.625rem;
    margin-top: 10px;
    margin-top: 0.625rem;
}

.company_logo_text {
    margin-top: 5px;
    margin-top: 0.3125rem;
}

.company_info_text.company_name {
    margin-top: 5px;
    margin-top: 0.3125rem;
    text-decoration: underline;
}

.footer_links_list3 .button {
    max-width: 300px;
    max-width: 18.75rem;
    width: 100%;
    font-size: 19px;
    font-size: 1.1875rem;
    padding: 0 20px;
    padding: 0 1.25rem;
    border-radius: 4px;
}

.footer_links_list3 .button::before {
    content: unset;
}

@media screen and (max-width: 769px) {
    .footer {
        padding: 8.5rem 0 2rem 0;
    }

    .footer_logo_img {
        max-width: 10rem;
        width: 100%;
    }

    .footer_logo_text {
        font-size: 12px;
        font-size: 0.75rem;
        margin-top: 0.5rem;
    }

    .footer_links li {
        margin-top: 16px;
        margin-top: 1rem;
    }

    .footer_upper,
    .footer_links {
        flex-direction: column;
    }

    .footer_logo_text {
        font-size: 14px;
        font-size: 0.875rem;
    }

    .footer_links {
        margin-top: 32px;
        margin-top: 2rem;
        margin-left: 0;
    }

    .footer_links_list {
        margin-top: 32px;
        margin-top: 2rem;
        margin-left: 0;
    }

    .footer_links_list li a {
        font-size: 16px;
        font-size: 1rem;
    }

    .footer_links_list1 {
        margin-top: 0;
    }

    .footer_links_list3 {
        display: flex;
        flex-direction: column-reverse;
    }

    .footer_links_list3 .button {
        max-width: 216px;
        max-width: 13.5rem;
    }


    .footer_links_list3 li:nth-child(2) {
        margin-top: 0;
        margin-bottom: 1rem;
    }

    .footer_lower {
        margin-top: 56px;
        margin-top: 3.5rem;
    }

    .company_logo_img {
        max-width: 7rem;
    }

    .company_logo_text, .company_info_text {
        font-size: 10px;
        font-size: 0.625rem;
    }

    .company_info_text.address {
        margin-top: 15px;
        margin-top: 0.9375rem;
    }

}



@media screen and (max-width: 769px) {
    /* 全体的な横スクロール防止 */
    html, body {
        overflow-x: hidden;
        max-width: 100%;
    }
    
    /* すべての要素の最大幅制限 */
    * {
        max-width: 100%;
        box-sizing: border-box;
    }
    
    /* slider-track の修正 */
    .slider-track img {
        width: 6.5rem;
        margin-right: 0.6rem;
        /* margin: 0 auto; を削除 */
    }
    
    /* banner_cards の確実な制御 */
    .banner_cards {
        width: 100%;
        max-width: 100%;
        overflow: hidden;
    }
    
    /* fv_cards の確実な制御 */
    .fv_cards {
        width: 100%;
        max-width: 100%;
        overflow: hidden;
    }
}