@charset "utf-8";


.container {
    max-width: 1280px;
}

.nowrap {
    white-space: nowrap;
}

a {
    transition: 0.3s;
}

a:hover {
    opacity: 0.8;
}

.section {
    padding: 120px 0;
}

.underline {
    text-decoration: underline;
}

/* --------------------
フォント設定
--------------------*/

body,
div,
p,
a,
h1,
h2,
h3,
h4,
h5,
h6,
input,
select,
textarea,
button {
    font-family: "Zen Kaku Gothic New", sans-serif;
    font-weight: 400;
    font-style: normal;
    color: #333333;
    letter-spacing: 0;
}

.d-inline {
    display: inline;
}

@media (min-width: 751px) {
    .d-md-inline {
        display: inline;
    }

    html {
        height: -webkit-fill-available;
        scroll-behavior: smooth;
    }
}

/* --------------------
カラー設定
--------------------*/
.color_red {
    color: red;
}

.color_white {
    color: white;
}

.color_gray {
    color: #4C4C4C;
}

.color_orange {
    color: #F57F31;
}

.color_yellow {
    color: #FFE500;
}

.color_black {
    color: #000;
}

.color_purple {
    color: #9181DF;
}

.bg_color__yellow {
    background-color: #FFF8EB;
}

.bg_color__gray {
    background-color: #F5F5F5;
}

.bg_color__orange {
    background-color: #F57F31;
}

.bg_color__white {
    background-color: #fff;
}

.bg_color__black {
    background-color: #000;
}

/* --------------------
文字サイズ設定
--------------------*/
body {
    font-size: 1.6rem;
}

.size_14 {
    font-size: 1.4rem;
}

.size_15 {
    font-size: 1.5rem;
}

.size_18 {
    font-size: 1.8rem;
}

.size_20 {
    font-size: 2rem;
}

.size_22 {
    font-size: 2.2rem;
}

.size_24 {
    font-size: 2.4rem;
}

.size_32 {
    font-size: 3.2rem;
}

.size_35 {
    font-size: 3.5rem;
}

.size_38 {
    font-size: 3.8rem;
}

.size_40 {
    font-size: 4.0rem;
}

.size_42 {
    font-size: 4.2rem;
}

.size_48 {
    font-size: 4.8rem;
}

.size_50 {
    font-size: 5rem;
}

.size_52 {
    font-size: 5.2rem;
}

@media (max-width: 1000px) {
    .size_14 {
        font-size: 1.3rem;
    }

    .size_18 {
        font-size: 1.6rem;
    }

    .size_20 {
        font-size: 1.8rem;
    }

    .size_22 {
        font-size: 2rem;
    }

    .size_24 {
        font-size: 2rem;
    }

    .size_32 {
        font-size: 2.4rem;
    }

    .size_35 {
        font-size: 2.8rem;
    }

    .size_38 {
        font-size: 3rem;
    }

    .size_40 {
        font-size: 3rem;
    }

    .size_42 {
        font-size: 3.2rem;
    }

    .size_48 {
        font-size: 3.4rem;
    }

    .size_50 {
        font-size: 3.6rem;
    }

    .size_52 {
        font-size: 4.6rem;
    }
}

@media (max-width: 750px) {
    body {
        font-size: 3.73333vw;
    }

    .size_14 {
        font-size: 2.933333vw;
    }

    /* 11px */
    .size_15 {
        font-size: 3.466666vw;
    }

    /* 1px */
    .size_18 {
        font-size: 4vw;
    }

    /* 15px */
    .size_20 {
        font-size: 4.26666vw;
    }

    /* 16px */
    .size_22 {
        font-size: 4.8vw;
    }

    .size_24 {
        font-size: 4.8vw;
    }

    .size_32 {
        font-size: 5vw;
    }

    .size_35 {
        font-size: 5.86666vw;
    }

    .size_38 {
        font-size: 5.86666vw;
    }

    .size_40 {
        font-size: 6.4vw;
    }

    /* 24px */
    .size_42 {
        font-size: 6.93333vw;
    }

    .size_48 {
        font-size: 6.9333vw;
    }

    .size_50 {
        font-size: 6.9333vw;
    }

    .size_52 {
        font-size: 8.5333vw;
    }
}

.size_big {
    font-size: 1.3333em;
}

/* --------------------
文字の下余白設定
--------------------*/
.mb_0_25em {
    margin-bottom: 0.25em;
}

.mb_0_5em {
    margin-bottom: 0.5em;
}

.mb_0_75em {
    margin-bottom: 0.75em;
}

.mb_1em {
    margin-bottom: 1em;
}

.mb_1_5em {
    margin-bottom: 1.5em;
}

.mb_2em {
    margin-bottom: 2em;
}

.mb_3em {
    margin-bottom: 3em;
}

.mb_3_5em {
    margin-bottom: 3.5em;
}

.mb_4em {
    margin-bottom: 4em;
}

.mb_5em {
    margin-bottom: 5em;
}

.mr_1em {
    margin-right: 1em;
}

/* --------------------
マーカー
--------------------*/
.marker_orange {
    position: relative;
    background: linear-gradient(transparent 78%, #F57F31 0%);
    line-height: 1.25;
    display: inline-block;
}

.marker_yellow {
    position: relative;
    background: linear-gradient(transparent 70%, #FFFA00 0%);
    line-height: 1.3;
    display: inline-block;
}

.wave {
    background: url(../img/wave.png) center bottom repeat-x;
    background-size: 25%;
}

/* --------------------
ボーダー
--------------------*/
.border_w__3 {
    border: 3px solid #000;
}

.border_w__5 {
    border: 5px solid #000;
}


/* --------------------
ボックスシャドウ
--------------------*/
.box_shadow__yellow {
    box-shadow: 8px 10px 0 #FFDFA4;
}

.box_shadow__purple {
    box-shadow: 8px 10px 0 #DBD5F6;
}

.box_shadow__black {
    box-shadow: 0.125vw 0.15vw 0 rgba(67, 67, 67, 1);
}

/* --------------------
flex
--------------------*/
@media (max-width: 750px) {
    .flex {
        flex-direction: column !important;
    }

    .flex .item {
        width: 100% !important;
    }
}


/* --------------------
新規タブ
--------------------*/
.new_tab::after {
    content: '';
    display: inline-block;
    width: 1em;
    height: 1em;
    background: url(../img/new_tab.svg) center center no-repeat;
    background-size: contain;
}

.new_tab.color::after {
    background: url(../img/new_tab_blue.svg) center center no-repeat;
    background-size: contain;
}

.new_tab.orange::after {
    background: url(../img/new_tab_orange.svg) center center no-repeat;
    background-size: contain;
}


/* --------------------
dl_table　基本設定
--------------------*/
.dl_table {
    display: flex;
    flex-wrap: wrap;
}

.dl_table dt {
    width: 15%;
}

.dl_table dd {
    width: 85%;
}


/* --------------------

ボタン

--------------------*/
/* オレンジボタン */
.button_orange {
    background-color: #9181DF;
    color: #fff;
    padding: 0.625em 1em;
    border-radius: 2em;
    text-align: center;
    border: none;
    box-shadow: 0 0.1vw 0 rgba(67, 67, 67, 1);
}

/* ボーダーが黄色いボタン */
.button_border__yellow {
    font-weight: 900;
    font-size: 2.4vw;
    width: 480px;
    border: 10px solid #FFE500;
    background-color: #fff;
    padding: 8px 10px;
    border-radius: 60px;
    display: inline-block;
    text-align: center;
    max-width: 100%;
}

.button_border__yellow span:before {
    width: 2.2em;
    height: 2.2em;
    content: '';
    background: #1E5895;
    display: inline-block;
    vertical-align: middle;
    margin-right: 0.6em;
}

.button_border__yellow.plan span:before {
    background: url(../img/icon_plan.svg) center center no-repeat;
    background-size: contain;
}

.button_border__yellow.flow span:before {
    background: url(../img/icon_flow.svg) center center no-repeat;
    background-size: contain;
}

.button_border__yellow.works span:before {
    background: url(../img/icon_works.svg) center center no-repeat;
    background-size: contain;
}

.button_border__yellow.mail span:before {
    background: url(../img/icon_mail.svg) center center no-repeat;
    background-size: contain;
}


@media (max-width: 1000px) {
    .section {
        padding: 80px 0;
    }

    .container {
        max-width: 100%;
    }

    .button_orange {
        padding: 0.625em 0.5em;
    }

    .button_border__yellow {
        font-size: 1.8rem;
        width: 370px;
        border-width: 8px;
    }
}


@media (max-width: 750px) {
    .section {
        padding: 18vw 0;
    }

    .button_orange {
        border-radius: 1vw;
    }

    .button_border__yellow {
        font-size: 4.26666vw;
        width: 100%;
        border-width: 1.8vw;
        padding: 2.2vw 2.4vw;
        border-radius: 20vw;
        max-width: 75vw;
    }

    .box_shadow__black {
        box-shadow: 0.5vw 0.45vw 0 rgba(67, 67, 67, 1);
    }

    .section {
        padding: 18vw 0;
    }

    .sec_ttl {
        font-size: 4.8vw;
        margin-bottom: 2em;
    }

    .sec_ttl span {
        font-size: 10.66666vw;
    }


    .page_link .text {
        font-size: 3.73333vw;
    }

    .dl_table dt,
    .dl_table dd {
        width: 100%;
    }
}






/* ------------------------------

フッター

------------------------------*/

#footer {
    padding: 2.25vw 0;
}

#footer .container {
    padding-right: 0% !important;
    padding-left: 0% !important;
    width: clamp(680px, 65%, 1280px) !important;
}

#footer p,
#footer a {
    font-weight: 500;
}

#footer ul li+li:before {
    content: '｜';
    font-size: max(0.810vw, 12px);
}

.footer_nav {
    margin-bottom: 7.5231vw;
}

.footer_nav ul {
    text-align: center;
}

.footer_nav ul li {
    display: inline-block;
}

.footer_nav ul li+li:before {
    margin: 0 1.736vw;
}

.footer_nav ul li a {
    font-size: max(0.810vw, 12px);
}

#footer ul li a {
    display: inline-block;
    line-height: 1.2;
}

.footer_addr {
    font-size: max(0.7523vw, 10px);
    line-height: 1.5;
    margin: 1.157vw 0 2.3148vw;
}

.footer_btm ul li+li:before {
    margin: 0 0.463vw;
    position: relative;
    top: 0.1157vw;
}

.footer_btm ul li a {
    font-size: max(0.7523vw, 10px);
}

.copyright {
    font-size: max(0.6366vw, 10px);
}

@media (max-width: 750px) {

    #footer {
        padding: 7vw 4vw 25vw;
    }

    #footer .container {
        width: initial !important;
    }

    .footer_nav {
        margin-bottom: 10vw;
    }

    #footer ul li a {
        line-height: 2;
        font-size: 3.2vw;
    }

    .footer_nav ul li+li:before {
        margin: 0 5vw;
    }

    .footer_btm {
        flex-direction: column;
        align-items: start;
    }

    .footer_addr {
        margin: 4vw 0 8vw;
        font-size: 2.9333vw;
    }

    .footer_btm ul {
        flex-direction: column;
        align-items: start;
    }

    #footer .footer_btm ul li+li:before {
        content: none;
    }

    .footer_btm ul li a {
        font-size: 2.93333vw;
    }

    .copyright {
        margin-top: 15vw;
        text-align: center;
        width: 100%;
        font-size: 2.6666vw;
    }
}


/* ------------------------------

h2

------------------------------*/


.h2 {
    font-size: 1.75vw;
    text-align: center;
    line-height: 1;
    font-weight: 700;
}

.h2 span {
    display: inline-block;
    position: relative;
}

.h2 span:before,
.h2 span:after {
    content: '';
    width: 1.25em;
    height: 1.25em;
    display: inline-block;
    background: url(../img/icon_1.png) center center no-repeat;
    background-size: contain;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
}

.h2 span:before {
    left: -2em;
}

.h2 span:after {
    right: -2em;
}

@media (max-width: 750px) {

    .h2 {
        font-size: 6.72vw;
    }

    .h2 span:before,
    .h2 span:after {
        width: 1em;
        height: 1em;
    }

}

/* ------------------------------

コンタクト

------------------------------*/

#sec_contact {
    padding: 5.75vw 0 38.25vw;
    background: url(../img/contact_back.png) center bottom no-repeat;
    background-size: 66%;
    background-color: #FFFA00;
    border-radius: 0.625vw;
}

#sec_contact .h2 {
    margin-bottom: 3vw;
}

#sec_contact .btn_box:after {
    content: '・・・';
    display: block;
    width: 1em;
    overflow-wrap: anywhere;
    white-space: wrap;
    margin: 0 auto;
    line-height: 1.5;
    font-size: 1.25vw;
    margin-top: 0.75em;
}

@media (max-width: 750px) {
    #sec_contact {
        padding: 10.666vw 0 131.7666vw;
        background-image: url(../img/contact_back__sp.png);
        background-size: 100%;
    }

    #sec_contact .container {
        padding: 0;
    }

    #sec_contact .h2 {
        margin-bottom: 10.666vw;
    }

    #sec_contact .h2 span {
        line-height: 1.5;
    }

    #sec_contact .btn_box:after {
        content: none;
    }

}