body {
    font-family: "IBM Plex Sans JP", sans-serif;
    font-weight: 400;
    font-style: normal;
    margin: 0 auto;
}

header p {
    margin: 0;
    font-size: .9em;
    font-size: 14px;
    font-weight: 700
}

.tel_btn .elementor-button-text {
    font-size: 1.4em;
    font-weight: 700;
    font-family: "Roboto", sans-serif;
}

.tel_btn .elementor-button-text span {
    display: block;
    font-size: .6em;
    font-weight: 400;
    font-weight: 700;
    font-family: "IBM Plex Sans JP", sans-serif;
}

.tel_btn .elementor-button {
    padding: .5em 3em
}

.mail_btn .elementor-button {
    padding: 1.25em 3em
}

.mail_btn .elementor-button span {
    font-weight: 700;
}

section.mv {
    margin: 0;
    max-width: none !important;
    padding: 0 !important
}

section.mv>div {
    max-width: none !important;
    padding-bottom: 0 !important;
}

section.mv img {
    width: 100%
}

section.contact {
    margin-top: -150px;
    position: absolute;
    z-index: 10
}

section.reason {
    padding-top: 500px;
    overflow: hidden
}

section.reason:after {
    content: '';
    display: block;
    width: 200%;
    /* 親要素に合わせる */
    height: 24%;
    /* 必要ならpxに変更も可 */
    background-image: url(../images/triangle_bk.webp);
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    /* 中央寄せのカギ */
    position: absolute;
    top: 0;
    /* 配置したい場所に調整 */
    left: -50%;
    z-index: 9;
}


section.reason>* {
    z-index: 10;
    justify-content: space-evenly !important;
}

section.reason .border_blue {
    border: 3px solid #057ACC;
    width: 30%;
    border-radius: 15px;
    padding-top: 75px;
    padding-bottom: 25px;
    background: #fff;
    box-shadow: 6px 6px 23px 0px rgba(0, 0, 0, 0.16);
}

section.reason .border_blue>div:first-child,
section.reason .border_blue>div:first-child * {
    display: inline-block;
}

section.reason .border_blue>div:first-child {
    width: inherit;
    background: url(../images/riibon.webp);
    background-size: contain;
    background-repeat: no-repeat;
    position: absolute;
    top: -15px;
    padding-left: .5em;
}

section.reason .border_blue>div:first-child p,
.reason_detai_box>div:first-child p {
    color: #fff;
    text-align: center;
    line-height: 1.2;
    margin-top: 0.5em;
    font-family: "Roboto", sans-serif;
}

.reason_detai_box>div:first-child p {
    padding-left: 1em;
}

section.reason .border_blue>div:first-child p span,
.reason_detai_box>div:first-child p span {
    font-size: 2em;
    font-weight: 700;
}

span.yellow {
    background: linear-gradient(transparent 25%, #ffef98 25%);
}

.contact_outer {
    max-width: 950px;
    margin: auto;
    display: flex;
    flex-wrap: wrap;
}

.contact_midashi {
    width: 100%;
    text-align: center;
    border-radius: 15px 15px 0 0;
    color: #FFF;
    padding-bottom: 3px;
    background: #fff
}

.contact_midashi.page_under {
    padding-bottom: 0;
}

.contact_midashi h2 {
    border-radius: 15px 15px 0 0;
    padding: .5em;
    margin: 0;
    background-image: linear-gradient(90deg, rgba(3, 180, 222, 1), rgba(5, 122, 204, 1))
}

.koumoku_list {
    display: flex;
    flex-wrap: wrap;
    padding: 30px;
    background: #FFF;
    border-top: 1px solid #057acc;
    justify-content: center;
    box-shadow: 6px 6px 23px 0px rgba(0, 0, 0, 0.16);
    border-radius: 0 0 15px 15px;
}

.koumoku_list.page_under {
    box-shadow: none;
    border-radius: 15px;
}

.contact_inner {
    width: 50%;
}

.contact_inner.naiyo {
    width: 100%;
}

.koumoku_list .contact_inner:nth-last-child(-n+2) {
    text-align: center;
    width: 40%;
}

.koumoku_list .contact_inner:last-child{
    font-family: roboto;
}

.contact_inner dl {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
}

.contact_inner.naiyo dl {
    align-items: center;
}

.contact_inner dl>* {
    width: 50%;
    margin-left: 0;
}

.contact_inner dl dt {
    width: 45%;
    font-weight: 500;
    display: flex;
    justify-content: space-between;
}

.contact_inner dl dt span {
    background: #d93025;
    color: #fff;
    padding: .2em .5em;
    font-size: .8em;
    vertical-align: middle;
    margin-right: 10px;
}
.contact_inner dl dt span.nini {
    background: #999;
}

.contact_inner.naiyo dl dt {
    width: 22.5%
}

.contact_inner dl dd {
    width: 50%;
}

.contact_inner.naiyo dl dd {
    width: 75%
}
.koumoku_list>.contact_inner:nth-child(even) dl dt {
    padding-left: 5%;
}

.contact_inner dl>* input {
    width: 100% !important;
}

input[type=date],
input[type=email],
input[type=number],
input[type=password],
input[type=tel],
input[type=text],
input[type=url],
select,
textarea {
    font-size: 1rem;
    border-radius: var(--vk-size-radius);
    padding: .8em 1em;
    margin: 0 0 .5rem;
    width: 100%;
    color: var(--vk-color-text-body);
    background-color: #F4F4F4;
    border: none;
}

input[type=submit],
input[type=reset] {
    background: #FFB700;
    padding: .5em 3em;
    border-radius: 50px;
    font-size: 16px;
    font-weight: 700;
    border: none;
    color: #FFF;
    padding: 1em 7.5em;
    cursor: pointer;
}

.contact_inner .mail {
    display: inline-block;
    position: relative;
}

.contact_inner .mail::before,
.telephone .elementor-button::before {
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    content: "\f0e0";
    position: absolute;
    left: 90px;
    top: 18px;
    color: #fff;
}

.telephone .elementor-button::before {
    content: "\f879";
    color: initial;
    left: 50px;
}

.telephone .elementor-button {
    background: #fff;
    border-radius: 50px;
    border: 2px solid #000;
    color: #333;
    position: relative;
    font-size: 1.4em;
    font-weight: 700;
    padding: .35em 3.5em;
}

.telephone .elementor-button .elementor-button-text span {
    display: block;
    font-size: .6em;
    font-weight: 400;
}

.telephone .elementor-button .elementor-button-text span.phone-source-ad,
.telephone .elementor-button .elementor-button-text span.phone-source-spad,
.telephone .elementor-button .elementor-button-text span.phone-source-ov,
.telephone .elementor-button .elementor-button-text span.phone-source-adv,
.telephone .elementor-button .elementor-button-text span.phone-source-spov,
.telephone .elementor-button .elementor-button-text span.phone-source-seo,
.tel_btn .elementor-button-text span.phone-source-ad,
.tel_btn .elementor-button-text span.phone-source-spad,
.tel_btn .elementor-button-text span.phone-source-ov,
.tel_btn .elementor-button-text span.phone-source-adv,
.tel_btn .elementor-button-text span.phone-source-spov,
.tel_btn .elementor-button-text span.phone-source-seo {
    font-size: inherit;
    font-weight: inherit;
}

.telephone:has(span.phone-source-ms),
.tel_btn:has(span.phone-source-ms) {
    display: none;
}

.dots {
    background-image: radial-gradient(circle at center, orange 20%, transparent 20%);
    /* 点の色とサイズ調整 */
    background-position: top right;
    /* 点の位置 */
    background-repeat: repeat-x;
    /* 横方向に繰り返し */
    background-size: 1em 0.3em;
    /* 点の間隔とサイズ調整 */
    padding-top: .4em;
    /* 縦方向の位置調整 */
}

section.reason .dots {
    font-size: 1.6em;
    margin-left: .5em;
    color: #057acc;
    background-image: radial-gradient(circle at center, rgba(5, 122, 204, 0.5) 20%, transparent 20%);
}

section.reason h2.elementor-heading-title {
    display: inline-block;
    position: relative;
    margin-top: -1em;
    margin-left: 350px;
}

section.reason h2.elementor-heading-title span.display_off {
    text-indent: -9999px;
    display: block;
}

section.reason h2.elementor-heading-title span.display_off:before {
    content: '';
    display: inline-block;
    width: 350px;
    height: 80px;
    background-image: url(../images/title_in_logo.png);
    background-size: contain;
    vertical-align: middle;
    position: absolute;
    left: -325px;
    top: 0;
    background-repeat: no-repeat;
}

section.reason h2.elementor-heading-title:before {
    content: '';
    display: inline-block;
    width: 80px;
    height: 100px;
    background-image: url(../images/reason_title_left.webp);
    background-size: contain;
    vertical-align: middle;
    position: absolute;
    left: -405px;
    top: -15px;
    background-repeat: no-repeat;
}

section.reason h2.elementor-heading-title:after {
    content: '';
    display: inline-block;
    width: 100px;
    height: 100px;
    background-image: url(../images/reason_title_right.webp);
    background-size: contain;
    vertical-align: middle;
    position: absolute;
    right: -120px;
    top: -15px;
    background-repeat: no-repeat;
}

.reason_detai_box {
    background: #fff;
    border-radius: 15px;
    margin-bottom: 50px;
    padding: 50px 75px;
    padding-top: 125px;
}

.reason_detai_box.reason1>div:nth-child(2),
.reason_detai_box.reason1>div:nth-child(3),
.reason_detai_box.reason3>div:not(:first-child) {
    width: 100%;
}

.reason_detai_box>div:first-child {
    position: absolute;
}

.reason_detai_box>div:first-child {
    width: 300px;
    background: url(../images/triangle_bk.png);
    /* background-size: contain; */
    background-repeat: no-repeat;
    position: absolute;
    top: -15px;
    background-position-x: center;
    background-size: contain;
    padding: 10px 0;
}

.reason_detai_box h3 {
    font-size: 1.8em;
}

.reason_detai_box h3 span.dots {
    font-size: 100%
}

.mizuiro {
    background: rgba(3, 180, 222, .1);
    border-radius: 15px;
    padding: 35px;
}

.mizuiro h4 {
    background: #03b4de;
    padding: .5em 5em;
    width: 95%;
    text-align: center;
    color: #fff;
    font-size: 18px;
    border-radius: 50px;
    display: inline-block;
}

.mizuiro.mizuiro1 h4 {
    width: 75%;
}

section.flow {
    padding: 50px 0;
    color: #fff;
}

section.plan {
    padding: 100px 0 50px
}

section.flow h2,
section.plan h2,
section.inquiry h2 {
    font-size: 2.4em;
    position: relative;
    margin-bottom: .5em;
}

section.flow h2::before {
    content: "FLOW";
    color: rgba(255, 255, 255, .15);
    position: absolute;
    left: 0;
    right: 0;
    margin: auto;
    top: -.5em;
    font-size: 2em;
}

section.inquiry h2 {
    z-index: 1;
}

section.inquiry form h2 {
    display: none;
}

section.inquiry form .koumoku_list {
    border-top: none;
}

section.inquiry h2::before {
    content: "CONTACT";
    color: #FFF;
    position: absolute;
    left: 0;
    right: 0;
    margin: auto;
    top: -.5em;
    font-size: 2em;
    z-index: -1;
}

section.plan h2,span.text_blue {
    color: #057acc
}

span.text_mizuiro {
    color: #03b4de
}

section.plan h2::before {
    content: "PLAN";
    color: #03b4de;
    position: absolute;
    left: 0;
    right: 0;
    margin: auto;
    top: -1.5em;
    font-size: .75em;
}

section.flow .elementor-image-box-title {
    text-align: center;
}

section.flow h3 {
    position: relative;
    margin-top: 2em;
}

section.flow h3::before {
    color: rgba(255, 255, 255, .7);
    position: absolute;
    right: 0;
    left: 0;
    margin: auto;
    top: -1.5em;
    font-size: 1.5em;
    font-family: "Roboto", sans-serif;
}

section.flow>div>div:nth-child(2) h3::before {
    content: "01";
}

section.flow>div>div:nth-child(3) h3::before {
    content: "02";
}

section.flow>div>div:nth-child(4) h3::before {
    content: "03";
}

section.flow>div>div:nth-child(5) h3::before {
    content: "04";
}

section.flow>div>div:not(:first-child) {
    background: rgba(0, 89, 150, .58);
    border-radius: 15px;
}

table.plan1,table.plan2 {
    border-radius: 15px;
    border: 1px solid #dcdcdc;
    border-collapse: separate;
    overflow: hidden
}

table.plan1 th {
    background: #057acc;
    color: #fff;
}

table.plan3 th {
    background: #30a6e3;
    color: #fff;
    font-weight: 700;
}

table.plan3 tr.row-2 td.column-1 {
    background: #1394d6;
    color: #fff;
    font-weight: 700;
}

table.plan1 td, table.plan1 th,
table.plan2 td, table.plan2 th {
    padding: .8em;
    font-size: 1.4em;
}

table.plan3 td, table.plan3 th {
    padding: .8em;
}

table.plan3 th {
    font-size: 20px;
    font-weight: 700;
}

table.plan3 td {
    font-size: 18px;
    font-weight: 500;
}

table.plan1 td,table.plan2 td {
    font-weight: 700;
    font-size: 1.8em;
}

table.plan1 td span,table.plan2 td span {
    font-size: .5em;
}

table.plan2 th {
    background: #00deba;
    color: #fff;
}

table.tablepress.plan1 td,
table.tablepress.plan1 th,
table.tablepress.plan2 td,
table.tablepress.plan2 th {
    border: none;
    position: relative;
}

table.tablepress.plan1 td,
table.tablepress.plan2 td {
    font-family: "Roboto", sans-serif;
    background: #FFF;
}

table.tablepress.plan1 td span,
table.tablepress.plan2 td span {
    font-family: "IBM Plex Sans JP", sans-serif;
}

table.plan1 tbody tr:not(:first-child) td::before,
table.plan2 tbody tr:not(:first-child) td::before {
    content: "";
    width: 80%;
    height: 2px;
    background: #000;
    position: absolute;
    top: 0em;
    left: 0;
    right: 0;
    margin: auto;
}

table.plan1 tbody tr:not(:first-child) td::before,

table.plan3 span.woman {
    color: #FF0062;
}

table.plan3 span.man {
    color: #057ACC;
}

table.plan3 span.green {
    color: #00B598;
}

table.plan3 span.brown {
    color: #7C592A;
}

section.plan h3 {
    font-size: 32px;
    font-weight: 400;
    display: inline-block;
    position: relative;
    margin-bottom: 1em;
}

section.plan h3 span.label {
    margin-bottom: .5em;
    display: block;
    background: url(../images/label_bk.png);
    background-size: cover;
    color: #fff;
    padding: .5em 5em;
    font-size: 24px;
    background-repeat: no-repeat;
    background-position: center;
    font-weight: 700;
}

section.plan h3 span.blue_big {
    font-weight: 700;
    color: #057acc;
}

section.plan h3.elementor-heading-title:before {
    content: '';
    display: inline-block;
    width: 120px;
    height: 150px;
    background-image: url(../images/plan_title_left.webp);
    background-size: contain;
    vertical-align: middle;
    position: absolute;
    left: -105px;
    top: 0;
    background-repeat: no-repeat;
}

section.plan h3.elementor-heading-title:after {
    content: '';
    display: inline-block;
    width: 130px;
    height: 150px;
    background-image: url(../images/plan_title_right.webp);
    background-size: contain;
    vertical-align: middle;
    position: absolute;
    right: -120px;
    top: 0;
    background-repeat: no-repeat;
}

section.plan span.yellow {
    font-size: 1.4em;
}

section.inquiry {
    background: #E7F1FA;
    padding: 75px 0 50px;
}

footer {
    background: #047ACC;
    color: #fff;
    overflow: hidden!important;
}

footer ul {
    list-style: none;
}

footer ul.footer_menu {
    padding-left: 0;
    display: flex;
}

footer ul.footer_menu li {
    position: relative;
}

footer ul.footer_menu li:first-child {
    margin-right: 50px;
}

footer ul.footer_menu li:last-child::before {
    content: "";
    height: 1em;
    width: 1px;
    background: #FFF;
    position: absolute;
    top: 5px;
    left: -25px;
}

footer a {
    color: #FFF;
}

.elementor-element-5983275 {
    height: 1px;
    background: rgba(255, 255, 255, .6);
    margin: 0 calc(50% - 50vw);
    width: 100vw;
    padding: 0;
}

.elementor-element-a456e9e .elementor-widget-container > p:first-child {
    font-size: 20px;
    font-weight: 500;
}

.elementor-element-a456e9e .elementor-widget-container > p:last-child {
    font-size: 24px;
    font-weight: 500;
}

.sp_only {
    display: none;
}