html,
body,
div,
span,
applet,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
a,
abbr,
acronym,
address,
big,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
s,
samp,
small,
strike,
strong,
sub,
sup,
tt,
var,
b,
u,
i,
center,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
embed,
figure,
figcaption,
footer,
header,
hgroup,
menu,
nav,
output,
ruby,
section,
summary,
time,
mark,
audio,
video,
button {
    margin: 0;
    padding: 0;
    font-size: 100%;
    font: inherit;
    color: inherit;
    line-height: inherit;
    vertical-align: baseline;
    background: initial;
    border: 0
}

article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section,
main {
    display: block
}

body {
    line-height: inherit
}

ol,
ul {
    list-style: none
}

blockquote,
q {
    quotes: none
}

blockquote:before,
blockquote:after,
q:before,
q:after {
    content: "";
    content: none
}

table {
    border-collapse: collapse;
    border-spacing: 0
}

body *:not(table),
body *:not(table)::before,
body *:not(table)::after,
body *:not(tbody),
body *:not(tbody)::before,
body *:not(tbody)::after,
body *:not(thead),
body *:not(thead)::before,
body *:not(thead)::after,
body *:not(tfoot),
body *:not(tfoot)::before,
body *:not(tfoot)::after,
body *:not(tr),
body *:not(tr)::before,
body *:not(tr)::after,
body *:not(th),
body *:not(th)::before,
body *:not(th)::after,
body *:not(td),
body *:not(td)::before,
body *:not(td)::after {
    position: relative;
    box-sizing: border-box
}

@media screen and (min-width: 769px),
print {

    .service__wrap,
    .case__wrap,
    .price__wrap,
    .flow__wrap,
    .cta__wrap,
    .cta__wrap--simple,
    .area__wrap,
    .app__wrap,
    .member__wrap,
    .speed__wrap,
    .merit__wrap,
    .solution__wrap,
    .worry__wrap,
    .cost__wrap,
    .step__wrap {
        margin-left: auto;
        margin-right: auto;
        width: min(1280px, calc(66.6666666667 * var(--vw)))
    }

    .formtop__wrap {
        margin-left: auto;
        margin-right: auto;
        width: min(1000px, calc(66.6666666667 * var(--vw)))
    }
}

html,
body,
input[type=text],
input[type=email],
input[type=url],
input[type=tel],
input[type=search],
input[type=submit],
input[type=reset],
textarea,
button,
select {
    font-family: "Noto Sans JP", sans-serif
}

.solution__link {
    transition: opacity .2s cubic-bezier(0.215, 0.61, 0.355, 1);
    cursor: pointer
}

@media(hover: hover) {
    .solution__link:hover {
        opacity: .5
    }
}

.service__btn,
.case__btn,
.cta__dl,
.mv__dl,
.fixed__dl,
.service__more,
.case__more,
.cta__contact,
.mv__contact,
.fixed__contact {
    display: flex;
    justify-content: center;
    align-items: center;
    font-weight: 700;
    text-align: center;
    border-radius: 999px;
    transition: color .2s cubic-bezier(0.215, 0.61, 0.355, 1), background-color .2s cubic-bezier(0.215, 0.61, 0.355, 1)
}

.service__btn::after,
.case__btn::after,
.cta__dl::after,
.mv__dl::after,
.fixed__dl::after,
.service__more::after,
.case__more::after,
.cta__contact::after,
.mv__contact::after,
.fixed__contact::after {
    content: "";
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    mask-image: url("../img/common/arrow.svg");
    mask-repeat: no-repeat;
    mask-position: center;
    mask-size: contain;
    aspect-ratio: 28.7/16.62;
    transition: background-color .2s cubic-bezier(0.215, 0.61, 0.355, 1)
}

.service__more,
.case__more,
.cta__contact,
.mv__contact,
.fixed__contact {
    color: #fff;
    background-color: #06a9ea;
    border: 1px solid #06a9ea
}

.service__more::after,
.case__more::after,
.cta__contact::after,
.mv__contact::after,
.fixed__contact::after {
    background-color: #fff
}

@media(hover: hover) {

    .service__more:hover,
    .case__more:hover,
    .cta__contact:hover,
    .mv__contact:hover,
    .fixed__contact:hover {
        color: #06a9ea;
        background-color: #fff
    }

    .service__more:hover::after,
    .case__more:hover::after,
    .cta__contact:hover::after,
    .mv__contact:hover::after,
    .fixed__contact:hover::after {
        background-color: #06a9ea
    }
}

@media screen and (min-width: 769px),
print {

    .service__more,
    .case__more,
    .cta__contact,
    .mv__contact,
    .fixed__contact {
        padding-right: 2.5em
    }
}

@media screen and (max-width: 768px),
print {

    .service__more,
    .case__more,
    .cta__contact,
    .mv__contact,
    .fixed__contact {
        padding-right: 0.5714285714em
    }
}

.cta__dl,
.mv__dl,
.fixed__dl {
    color: #fff;
    background-color: #ed2987;
    border: 1px solid #ed2987
}

.cta__dl::after,
.mv__dl::after,
.fixed__dl::after {
    background-color: #fff
}

@media(hover: hover) {

    .cta__dl:hover,
    .mv__dl:hover,
    .fixed__dl:hover {
        color: #ed2987;
        background-color: #fff
    }

    .cta__dl:hover::after,
    .mv__dl:hover::after,
    .fixed__dl:hover::after {
        background-color: #ed2987
    }
}

@media screen and (min-width: 769px),
print {

    .cta__dl,
    .mv__dl,
    .fixed__dl {
        padding-right: 0.75em
    }
}

@media screen and (max-width: 768px),
print {

    .cta__dl,
    .mv__dl,
    .fixed__dl {
        padding-right: 0.5714285714em
    }
}

.service__btn,
.case__btn {
    color: #06a9ea;
    background-color: #fff;
    border: 1px solid #06a9ea
}

.service__btn::after,
.case__btn::after {
    background-color: #06a9ea
}

@media(hover: hover) {

    a:hover .service__btn,
    a:hover .case__btn {
        color: #fff;
        background-color: #06a9ea
    }

    a:hover .service__btn::after,
    a:hover .case__btn::after {
        background-color: #fff
    }
}

@media screen and (max-width: 768px),
print {

    .service__more,
    .case__more,
    .cta__contact,
    .cta__dl,
    .mv__contact,
    .mv__dl,
    .service__btn,
    .case__btn,
    .fixed__contact,
    .fixed__dl {
        margin-left: auto;
        margin-right: auto;
        width: calc(65.4*var(--vw));
        height: calc(9.6*var(--vw));
        font-size: calc(3.7333333333*var(--vw))
    }

    .service__more::after,
    .case__more::after,
    .cta__contact::after,
    .cta__dl::after,
    .mv__contact::after,
    .mv__dl::after,
    .service__btn::after,
    .case__btn::after,
    .fixed__contact::after,
    .fixed__dl::after {
        right: calc(3*var(--vw));
        width: calc(4.912*var(--vw))
    }
}

@media screen and (min-width: 769px),
print {

    .service__btn,
    .case__btn,
    .fixed__contact,
    .fixed__dl {
        width: min(280px, calc(14.5833333333 * var(--vw)));
        height: min(48px, calc(2.5 * var(--vw)));
        font-size: min(1rem, calc(0.8333333333 * var(--vw)))
    }

    .service__btn::after,
    .case__btn::after,
    .fixed__contact::after,
    .fixed__dl::after {
        right: min(16px, calc(0.8333333333 * var(--vw)));
        width: min(28px, calc(1.4583333333 * var(--vw)))
    }
}

@media screen and (min-width: 769px),
print {

    .service__more,
    .case__more,
    .cta__contact,
    .cta__dl,
    .mv__contact,
    .mv__dl {
        width: min(360px, calc(18.75 * var(--vw)));
        height: min(62px, calc(3.2291666667 * var(--vw)));
        font-size: min(1.25rem, calc(1.0416666667 * var(--vw)))
    }

    .service__more::after,
    .case__more::after,
    .cta__contact::after,
    .cta__dl::after,
    .mv__contact::after,
    .mv__dl::after {
        right: min(28px, calc(1.4583333333 * var(--vw)));
        width: min(36px, calc(1.875 * var(--vw)))
    }
}

.case__ttl,
.price__ttl,
.flow__ttl,
.member__ttl,
.speed__ttl,
.merit__ttl,
.formtop__ttl {
    display: flex;
    flex-direction: column;
    align-items: center;
    font-weight: 700;
    text-align: center
}

.case__ttl::after,
.price__ttl::after,
.flow__ttl::after,
.member__ttl::after,
.speed__ttl::after,
.merit__ttl::after,
.formtop__ttl::after {
    content: "";
    background-color: #06a9ea
}

@media screen and (min-width: 769px),
print {

    .case__ttl,
    .price__ttl,
    .flow__ttl,
    .member__ttl,
    .speed__ttl,
    .merit__ttl,
    .formtop__ttl {
        gap: min(40px, calc(2.0833333333 * var(--vw)));
        font-size: min(3.75rem, calc(2.925 * var(--vw)))
    }

    .case__ttl::after,
    .price__ttl::after,
    .flow__ttl::after,
    .member__ttl::after,
    .speed__ttl::after,
    .merit__ttl::after,
    .formtop__ttl::after {
        width: min(400px, calc(20.8333333333 * var(--vw)));
        height: min(8px, calc(0.4166666667 * var(--vw)))
    }
}

@media screen and (max-width: 768px),
print {

    .case__ttl,
    .price__ttl,
    .flow__ttl,
    .member__ttl,
    .speed__ttl,
    .merit__ttl,
    .formtop__ttl {
        gap: calc(3.2*var(--vw));
        font-size: calc(6.0666666667*var(--vw));
        line-height: 1.5em
    }

    .case__ttl::after,
    .price__ttl::after,
    .flow__ttl::after,
    .member__ttl::after,
    .speed__ttl::after,
    .merit__ttl::after,
    .formtop__ttl::after {
        width: calc(60.2666666667*var(--vw));
        height: calc(1.6*var(--vw))
    }
}

.service,
.case,
.price,
.flow,
.cta:not(footer),
.app,
.member,
.speed,
.merit,
.solution__box,
.solution__sect,
.solution__much,
.worry,
.cost,
.step__heading,
.step__li,
.step__caption,
.mv,
.formtop {
    transition: opacity .6s cubic-bezier(0.215, 0.61, 0.355, 1), transform .6s cubic-bezier(0.215, 0.61, 0.355, 1)
}

.service:not(.is-view),
.case:not(.is-view),
.price:not(.is-view),
.flow:not(.is-view),
.cta:not(.is-view):not(footer),
.app:not(.is-view),
.member:not(.is-view),
.speed:not(.is-view),
.merit:not(.is-view),
.solution__box:not(.is-view),
.solution__sect:not(.is-view),
.solution__much:not(.is-view),
.worry:not(.is-view),
.cost:not(.is-view),
.step__heading:not(.is-view),
.step__li:not(.is-view),
.step__caption:not(.is-view),
.mv:not(.is-view),
.formtop:not(.is-view) {
    opacity: 0
}

@media screen and (min-width: 769px),
print {

    .service:not(.is-view),
    .case:not(.is-view),
    .price:not(.is-view),
    .flow:not(.is-view),
    .cta:not(.is-view):not(footer),
    .app:not(.is-view),
    .member:not(.is-view),
    .speed:not(.is-view),
    .merit:not(.is-view),
    .solution__box:not(.is-view),
    .solution__sect:not(.is-view),
    .solution__much:not(.is-view),
    .worry:not(.is-view),
    .cost:not(.is-view),
    .step__heading:not(.is-view),
    .step__li:not(.is-view),
    .step__caption:not(.is-view),
    .mv:not(.is-view),
    .formtop:not(.is-view) {
        transform: translateY(min(20px, calc(1.0416666667 * var(--vw))))
    }
}

@media screen and (max-width: 768px),
print {

    .service:not(.is-view),
    .case:not(.is-view),
    .price:not(.is-view),
    .flow:not(.is-view),
    .cta:not(.is-view):not(footer),
    .app:not(.is-view),
    .member:not(.is-view),
    .speed:not(.is-view),
    .merit:not(.is-view),
    .solution__box:not(.is-view),
    .solution__sect:not(.is-view),
    .solution__much:not(.is-view),
    .worry:not(.is-view),
    .cost:not(.is-view),
    .step__heading:not(.is-view),
    .step__li:not(.is-view),
    .step__caption:not(.is-view),
    .mv:not(.is-view),
    .formtop:not(.is-view) {
        transform: translateY(calc(5.3333333333 * var(--vw)))
    }
}

:root {
    --vw: 1vw
}

* {
    min-height: 0vw
}

html,
body {
    font-size: 1rem;
    font-weight: 500;
    color: #111;
    -moz-osx-font-smoothing: grayscale;
    -webkit-text-size-adjust: 100%;
    vertical-align: middle
}

html {
    scroll-behavior: smooth
}

body {
    line-height: 1
}

body * {
    letter-spacing: inherit
}

#booster {
    background-color: #fff;
    overflow: hidden;
    z-index: 0;
    position: inherit
}

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

img,
svg {
    vertical-align: bottom
}

svg {
    width: 100%;
    height: auto
}

input[type=text],
input[type=email],
input[type=url],
input[type=tel],
input[type=search],
input[type=submit],
input[type=reset],
textarea,
button,
select {
    font-weight: 400;
    color: inherit;
    border: none;
    outline: none;
    border-radius: 0;
    appearance: none
}

input[type=radio],
input[type=checkbox] {
    margin: 0;
    padding: 0;
    border: none;
    outline: none;
    border-radius: 0;
    background: rgba(0, 0, 0, 0);
    appearance: none
}

input[type=submit],
input[type=reset],
a,
button {
    text-decoration: none;
    cursor: pointer;
    outline: none
}

[data-hidden] {
    font-size: 0;
    color: rgba(0, 0, 0, 0);
    text-indent: -9999px
}

@media screen and (min-width: 769px),
print {

    html,
    body {
        scroll-padding-top: min(140px, calc(7.2916666667 * var(--vw)))
    }

    #booster {
        padding-top: min(100px, calc(5.2083333333 * var(--vw)))
    }

    a[href^=tel] {
        pointer-events: none
    }

    [data-device=sp] {
        display: none !important
    }
}

@media screen and (max-width: 768px),
print {
    body {
        -webkit-overflow-scrolling: touch
    }

    html,
    body {
        scroll-padding-top: min(95px, calc(4.9479166667 * var(--vw)))
    }

    #booster {
        padding-top: calc(14.6666666667*var(--vw))
    }

    [data-device=pc] {
        display: none !important
    }
}

@media screen and (min-width: 769px),
print {
    [data-delay="1"] {
        transition-delay: 0.5s
    }
}

@media screen and (max-width: 768px),
print {
    [data-delay="1"] {
        transition-delay: 0.5s
    }
}

@media screen and (min-width: 769px),
print {
    [data-delay="2"] {
        transition-delay: 1s
    }
}

@media screen and (max-width: 768px),
print {
    [data-delay="2"] {
        transition-delay: 0.5s
    }
}

@media screen and (min-width: 769px),
print {
    [data-delay="3"] {
        transition-delay: 1.5s
    }
}

@media screen and (max-width: 768px),
print {
    [data-delay="3"] {
        transition-delay: 0.5s
    }
}

@media screen and (min-width: 769px),
print {
    [data-delay="4"] {
        transition-delay: 2s
    }
}

@media screen and (max-width: 768px),
print {
    [data-delay="4"] {
        transition-delay: 0.5s
    }
}

@media screen and (min-width: 769px),
print {
    [data-delay="5"] {
        transition-delay: 2.5s
    }
}

@media screen and (max-width: 768px),
print {
    [data-delay="5"] {
        transition-delay: 0.5s
    }
}

.fixed {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    background-color: #fff;
    z-index: 999
}

.fixed__wrap,
.fixed__box,
.fixed__txt {
    display: flex;
    justify-content: space-between
}

.fixed__wrap,
.fixed__box {
    align-items: center
}

.fixed__tel {
    font-weight: 700
}

@media screen and (min-width: 769px),
print {
    .fixed__wrap {
        padding-left: min(70px, calc(3.6458333333 * var(--vw)));
        padding-right: min(80px, calc(4.1666666667 * var(--vw)));
        height: min(100px, calc(5.2083333333 * var(--vw)))
    }

    .fixed__logo {
        width: min(251px, calc(13.0729166667 * var(--vw)))
    }

    .fixed__box {
        gap: min(30px, calc(1.5625 * var(--vw)))
    }

    .fixed__txt {
        align-items: flex-end;
        gap: min(14px, calc(0.7291666667 * var(--vw)))
    }

    .fixed__tel {
        font-size: min(2.25rem, calc(1.875 * var(--vw)))
    }

    .fixed__time {
        top: max(-4px, calc(-0.2083333333 * var(--vw)));
        font-size: min(0.75rem, calc(0.625 * var(--vw)))
    }
}

@media screen and (max-width: 768px),
print {
    .fixed__wrap {
        padding: 0 calc(5.3333333333*var(--vw));
        height: calc(14.6666666667*var(--vw))
    }

    .fixed__contact,
    .fixed__dl {
        display: none
    }

    .fixed__logo {
        width: calc(34.6666666667*var(--vw))
    }

    .fixed__txt {
        flex-direction: column
    }

    .fixed__tel {
        font-size: cws(10)
    }

    .fixed__time {
        margin-top: calc(1.6*var(--vw));
        font-size: calc(2.6666666667*var(--vw))
    }
}

.mv {
    background-color: rgba(127, 206, 236, .3)
}

.mv__wrap {
    overflow: hidden
}

.mv__txt {
    display: flex;
    align-items: center;
    font-weight: 700
}

.mv__ttl {
    font-weight: 700
}

.mv__mark {
    color: #ed2987
}

.mv__caption {
    font-weight: 700
}

@media screen and (min-width: 769px),
print {
    .mv__wrap {
        left: min(15px, calc(0.78125 * var(--vw)));
        display: flex;
        justify-content: space-between;
        margin-left: auto;
        margin-right: auto;
        padding: min(68px, calc(3.5416666667 * var(--vw))) min(30px, calc(1.5625 * var(--vw))) 0;
        width: min(1770px, calc(92.1875 * var(--vw)))
    }

    .mv__txt {
        margin-bottom: min(24px, calc(1.25 * var(--vw)))
    }

    .mv__logo {
        width: min(131px, calc(6.8229166667 * var(--vw)));
        padding-bottom: 3px;
    }

    .mv__booster {
        font-size: min(1.125rem, calc(0.9375 * var(--vw)))
    }

    .mv__by {
        margin-right: min(4px, calc(0.2083333333 * var(--vw)));
        font-size: min(0.8125rem, calc(0.6770833333 * var(--vw)))
    }

    .mv__ttl {
        margin-top: min(16px, calc(0.8333333333 * var(--vw)));
        font-size: min(3.125rem, calc(2.6041666667 * var(--vw)));
        line-height: 1.68em
    }

    .mv__large {
        font-size: min(4.5rem, calc(3.75 * var(--vw)))
    }

    .mv__contact {
        margin-top: min(68px, calc(3.5416666667 * var(--vw)))
    }

    .mv__dl {
        margin-top: min(32px, calc(1.6666666667 * var(--vw)))
    }

    .mv__fig {
        bottom: max(-6px, calc(-0.3125 * var(--vw)));
        width: min(1040px, calc(54.4583333333 * var(--vw)));
        padding-top: min(42px, calc((1.25 + 0.9375) * var(--vw)));
    }

    .mv__box {
        margin-top: min(8px, calc(0.4166666667 * var(--vw)))
    }

    .mv__caption {
        margin-bottom: min(18px, calc(0.9375 * var(--vw)));
        font-size: min(1.25rem, calc(1.0416666667 * var(--vw)))
    }

    .mv__item {
        display: none
    }
}

@media screen and (max-width: 768px),
print {
    .mv__wrap {
        display: flex;
        flex-direction: column;
        align-items: center;
        padding-top: calc(11.2*var(--vw));
        padding-bottom: calc(8*var(--vw));
        background: linear-gradient(to bottom, transparent 0 calc(100% - 39.2*var(--vw)), #f2fafd calc(100% - 39.2*var(--vw)) 100%)
    }

    .mv__box {
        display: contents;
        text-align: center
    }

    .mv__txt {
        display: none
    }

    .mv__ttl {
        order: 2;
        margin-top: calc(3.2*var(--vw));
        font-size: calc(7.4666666667*var(--vw));
        line-height: 1.75em;
        text-align: center
    }

    .mv__large {
        font-size: calc(12.2666666667*var(--vw))
    }

    .mv__contact {
        order: 4;
        margin-top: calc(8*var(--vw))
    }

    .mv__dl {
        order: 5;
        margin-top: calc(4*var(--vw))
    }

    .mv__fig {
        order: 3;
        margin-top: calc(12.8*var(--vw));
        margin-left: calc(2*var(--vw));
        bottom: calc(-.5333333333*var(--vw));
        width: calc(93.3333333333*var(--vw))
    }

    .mv__caption {
        order: 1;
        font-size: calc(3.7333333333*var(--vw))
    }
}

.step__wrap {
    text-align: center
}

.step__heading {
    display: flex;
    justify-content: center;
    align-items: flex-end;
    font-weight: 700;
    text-align: center
}

.step__list {
    color: #06a9ea
}

.step__li:not(:first-of-type)::before {
    content: "";
    position: absolute;
    background: url("../img/step/arrow.svg") no-repeat center center/contain;
    aspect-ratio: 31.79/65
}

.step__num {
    font-weight: 700
}

.step__num::before {
    content: "Step"
}

.step__fig {
    display: flex;
    justify-content: center;
    align-items: center
}

.step__txt {
    color: #ed2987
}

.step__caption {
    font-weight: 700
}

@media screen and (min-width: 769px),
print {
    .step__wrap {
        padding-top: min(140px, calc(7.2916666667 * var(--vw)));
        padding-bottom: min(110px, calc(5.7291666667 * var(--vw)))
    }

    .step__heading {
        gap: min(12px, calc(0.625* var(--vw)));
        font-size: min(2.25rem, calc(1.875 * var(--vw)));
    }

    .step__heading span {
        font-size: min(3.75rem, calc(3.125* var(--vw)));
    }

    .step__ttl {
        top: min(6px, calc(0.3125 * var(--vw)));
        margin-right: min(16px, calc(0.8333333333 * var(--vw)));
        width: min(332px, calc(17.2916666667 * var(--vw)))
    }

    .step__list {
        display: flex;
        justify-content: space-between;
        margin-top: min(116px, calc(6.0416666667 * var(--vw)))
    }

    .step__li::before {
        top: 50%;
        left: 0;
        width: min(31.79px, calc(1.6557291667 * var(--vw)))
    }

    .step__li:has([src*="02"])::before {
        transform: translateX(max(-124px, calc(-6.4583333333 * var(--vw))))
    }

    .step__li:has([src*="03"])::before {
        transform: translateX(max(-108px, calc(-5.625 * var(--vw))))
    }

    .step__num {
        margin-bottom: min(44px, calc(2.2916666667 * var(--vw)));
        font-size: min(2.75rem, calc(2.2916666667 * var(--vw)))
    }

    .step__num::before {
        font-size: min(1.8125rem, calc(1.5104166667 * var(--vw)))
    }

    .step__fig {
        height: min(288px, calc(15 * var(--vw)))
    }

    .step__fig:has([src*="01"]) {
        width: min(353px, calc(18.3854166667 * var(--vw)))
    }

    .step__fig:has([src*="02"]) {
        width: min(318px, calc(16.5625 * var(--vw)))
    }

    .step__fig:has([src*="03"]) {
        width: min(288px, calc(15 * var(--vw)))
    }

    .step__txt {
        margin-top: min(28px, calc(1.4583333333 * var(--vw)));
        font-size: min(1.5rem, calc(1.25 * var(--vw)));
        font-weight: 700;
        line-height: 1.6666666667em
    }

    .step__caption {
        margin-top: min(48px, calc(2.5 * var(--vw)));
        font-size: min(2.625rem, calc(2.1875 * var(--vw)));
        line-height: 1.7142857143em
    }
}

@media screen and (max-width: 768px),
print {
    .step {
        display: block
    }

    .step__wrap {
        padding-top: calc(21.3333333333*var(--vw));
        padding-bottom: calc(9.6*var(--vw))
    }

    .step__heading {
        gap: calc(3.2* var(--vw));
        font-size: calc(3.4666666667*var(--vw));
    }

    .step__heading span {
        font-size: calc(6.1666666667* var(--vw));
    }

    .step__ttl {
        top: calc(.5333333333*var(--vw));
        width: calc(33.552*var(--vw))
    }

    .step__list {
        margin-top: calc(13.8666666667*var(--vw));
        padding: 0 calc(5.3333333333*var(--vw))
    }

    .step__li {
        display: flex
    }

    .step__li::before {
        top: calc(-12.8*var(--vw));
        left: 50%;
        width: calc(5.3333333333*var(--vw));
        rotate: 90deg;
        translate: -50% -50%
    }

    .step__li:not(:first-child) {
        margin-top: calc(26.6666666667*var(--vw))
    }

    .step__li:has([src*="01"]),
    .step__li:has([src*="03"]) {
        justify-content: flex-end
    }

    .step__li:has([src*="01"]) {
        gap: calc(1.0666666667*var(--vw))
    }

    .step__li:has([src*="02"]) {
        gap: calc(3.2*var(--vw))
    }

    .step__li:has([src*="03"]) {
        gap: calc(1.6*var(--vw))
    }

    .step__num {
        position: absolute;
        margin-bottom: calc(7.4666666667*var(--vw));
        font-size: calc(8.5333333333*var(--vw))
    }

    .step__num::before {
        font-size: calc(4.2666666667*var(--vw))
    }

    .step__num:has(+figure>[src*="01"]) {
        top: calc(8.5333333333*var(--vw));
        left: calc(16*var(--vw))
    }

    .step__num:has(+figure>[src*="02"]) {
        top: calc(4.2666666667*var(--vw));
        right: calc(13.8666666667*var(--vw))
    }

    .step__num:has(+figure>[src*="03"]) {
        top: calc(10.6666666667*var(--vw));
        left: calc(21.3333333333*var(--vw))
    }

    .step__fig:has([src*="01"]),
    .step__fig:has([src*="03"]) {
        order: 2
    }

    .step__fig:has([src*="01"])>p,
    .step__fig:has([src*="03"])>p {
        order: 1
    }

    .step__fig:has([src*="01"]) {
        width: calc(50.6666666667*var(--vw))
    }

    .step__fig:has([src*="01"])+p {
        margin-top: calc(20.2666666667*var(--vw))
    }

    .step__fig:has([src*="02"]) {
        width: calc(48*var(--vw))
    }

    .step__fig:has([src*="02"])+p {
        margin-top: calc(16*var(--vw))
    }

    .step__fig:has([src*="03"]) {
        width: calc(42.6666666667*var(--vw))
    }

    .step__fig:has([src*="03"])+p {
        margin-top: calc(22.4*var(--vw))
    }

    .step__txt {
        font-size: calc(3.7333333333*var(--vw));
        line-height: 1.4285714286em
    }

    .step__caption {
        margin-top: calc(4.2666666667*var(--vw));
        font-size: calc(5.3333333333*var(--vw));
        line-height: 1.8em
    }
}

.cost {
    background-color: #e2edf2
}

.cost__wrap {
    display: flex;
    justify-content: flex-start;
    align-items: center
}

.cost__ttl {
    display: flex;
    flex-direction: column;
    font-weight: 700
}

.cost__em {
    color: #ed2987
}

@media screen and (min-width: 769px),
print {
    .cost__wrap {
        gap: min(40px, calc(2.0833333333 * var(--vw)));
        padding-top: min(43px, calc(2.2395833333 * var(--vw)));
        padding-bottom: min(43px, calc(2.2395833333 * var(--vw)))
    }

    .cost__fig {
        padding-left: min(176px, calc(9.1666666667 * var(--vw)))
    }

    .cost__pic {
        width: min(260px, calc(13.5416666667 * var(--vw)))
    }

    .cost__ttl {
        gap: min(32px, calc(1.6666666667 * var(--vw)))
    }

    .cost__em {
        font-size: min(3.625rem, calc(3.0208333333 * var(--vw)))
    }

    .cost__small {
        font-size: min(2.25rem, calc(1.875 * var(--vw)))
    }
}

@media screen and (max-width: 768px),
print {
    .cost__wrap {
        padding: calc(6.4*var(--vw)) 0 calc(9.6*var(--vw));
        flex-direction: column
    }

    .cost__fig {
        margin-bottom: calc(6.4*var(--vw))
    }

    .cost__pic {
        width: calc(31.664*var(--vw))
    }

    .cost__ttl {
        text-align: center
    }

    .cost__em {
        font-size: calc(8.5333333333*var(--vw))
    }

    .cost__small {
        margin-top: calc(5.3333333333*var(--vw));
        font-size: calc(4.8*var(--vw))
    }
}

.worry__wrap {
    text-align: center
}

.worry__caption {
    font-weight: 700
}

.worry__ttl {
    color: #06a9ea
}

.worry__balloon {
    display: flex;
    justify-content: center;
    align-items: center;
    font-weight: 700;
    color: #ed2987;
    aspect-ratio: 359.28/155.89
}

.worry__fig {
    margin-left: auto;
    margin-right: auto
}

.worry::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: 0;
    transform: translate(-50%, 100%);
    background: url("../img/worry/arrow.svg") no-repeat center center/contain;
    aspect-ratio: 384/138;
    z-index: 1
}

@media screen and (min-width: 769px),
print {
    .worry::after {
        margin-bottom: min(14px, calc(0.7291666667 * var(--vw)));
        width: min(384px, calc(20 * var(--vw)))
    }

    .worry__wrap {
        padding-top: min(148px, calc(7.7083333333 * var(--vw)));
        padding-bottom: min(120px, calc(6.25 * var(--vw)))
    }

    .worry__caption {
        font-size: min(2.25rem, calc(1.875 * var(--vw)))
    }

    .worry__ttl {
        margin-top: min(34px, calc(1.7708333333 * var(--vw)));
        font-size: min(3.75rem, calc(3.125 * var(--vw)))
    }

    .worry__list {
        display: flex;
        justify-content: space-between;
        margin-top: min(136px, calc(7.0833333333 * var(--vw)));
        padding: 0 min(20px, calc(1.0416666667 * var(--vw)))
    }

    .worry__li {
        width: min(360px, calc(18.75 * var(--vw)))
    }

    .worry__balloon {
        padding-bottom: min(20px, calc(1.0416666667 * var(--vw)));
        font-size: min(1.5rem, calc(1.25 * var(--vw)));
        background: url("../img/worry/balloon.svg") no-repeat center center/contain
    }

    .worry__fig {
        display: flex;
        justify-content: center;
        align-items: flex-end;
        margin-top: min(34px, calc(1.7708333333 * var(--vw)));
        height: min(278px, calc(14.4791666667 * var(--vw)))
    }

    .worry__fig:has([src*="01"]) {
        width: min(257px, calc(13.3854166667 * var(--vw)))
    }

    .worry__fig:has([src*="02"]) {
        width: min(267px, calc(13.90625 * var(--vw)))
    }

    .worry__fig:has([src*="03"]) {
        width: min(256px, calc(13.3333333333 * var(--vw)))
    }
}

@media screen and (max-width: 768px),
print {
    .worry::after {
        margin-bottom: calc(2.6666666667*var(--vw));
        width: calc(84.8*var(--vw))
    }

    .worry__wrap {
        padding-top: calc(22.4*var(--vw));
        padding-bottom: calc(2.6666666667*var(--vw))
    }

    .worry__caption {
        font-size: calc(4.2666666667*var(--vw))
    }

    .worry__ttl {
        margin-top: calc(4.8*var(--vw));
        font-size: calc(7.2*var(--vw))
    }

    .worry__li {
        margin: calc(11.7333333333*var(--vw)) auto 0;
        width: calc(64*var(--vw))
    }

    .worry__balloon {
        margin-bottom: calc(8*var(--vw));
        padding-bottom: calc(3.2*var(--vw));
        font-size: calc(4.8*var(--vw));
        background: url("../img/worry/balloon[sp].svg") no-repeat center center/contain
    }

    .worry__fig {
        margin-left: auto;
        margin-right: auto;
        width: calc(45.8666666667*var(--vw))
    }
}

.solution {
    background-color: rgba(231, 246, 251, .4)
}

.solution__ttl {
    color: #06a9ea;
    text-align: center
}

.solution__nav {
    display: flex;
    justify-content: space-between
}

.solution__link {
    display: flex;
    flex-direction: column;
    align-items: center;
    font-weight: 700
}

.solution__num {
    font-weight: 700;
    color: #06a9ea
}

@media screen and (min-width: 769px),
print {
    .solution__wrap {
        padding-top: min(264px, calc(10.75 * var(--vw)));
        padding-bottom: min(338px, calc(13.6041666667 * var(--vw)))
    }

    .solution__ttl {
        margin-bottom: min(92px, calc(4.7916666667 * var(--vw)));
        font-size: min(3.75rem, calc(3.125 * var(--vw)))
    }

    .solution__link {
        padding-top: min(40px, calc(2.0833333333 * var(--vw)));
        width: min(380px, calc(19.7916666667 * var(--vw)));
        font-size: min(2rem, calc(1.6666666667 * var(--vw)));
        background: url("../img/solution/balloon.svg") no-repeat center center/contain;
        aspect-ratio: 380/236.69
    }

    .solution__num {
        margin-bottom: min(16px, calc(0.8333333333 * var(--vw)));
        font-size: min(3.625rem, calc(3.0208333333 * var(--vw)))
    }

    .solution__sect:has([src*="01"]) {
        margin-top: min(188px, calc(9.7916666667 * var(--vw)))
    }

    .solution__sect:has([src*="02"]) {
        margin-top: min(208px, calc(10.8333333333 * var(--vw)))
    }

    .solution__sect:has([src*="03"]) {
        margin-top: min(220px, calc(11.4583333333 * var(--vw)))
    }

    .solution__much {
        margin-top: min(164px, calc(8.5416666667 * var(--vw)))
    }
}

@media screen and (max-width: 768px),
print {
    .solution__wrap {
        padding-top: calc(38.4*var(--vw));
        padding-bottom: calc(23.4666666667*var(--vw))
    }

    .solution__ttl {
        margin-bottom: calc(10.6666666667*var(--vw));
        font-size: calc(7.2*var(--vw));
        line-height: 1.6296296296em
    }

    .solution__nav {
        padding: 0 calc(5.3333333333*var(--vw))
    }

    .solution__link {
        padding-top: calc(3.2*var(--vw));
        width: calc(28*var(--vw));
        font-size: calc(4.2666666667*var(--vw));
        line-height: 1.5em;
        background: url("../img/solution/balloon[sp].svg") no-repeat center center/contain;
        aspect-ratio: 1/1
    }

    .solution__link:nth-child(1) em {
        background: url("../img/solution/num-01.svg") no-repeat center center/contain
    }

    .solution__link:nth-child(2) em {
        background: url("../img/solution/num-02.svg") no-repeat center center/contain
    }

    .solution__link:nth-child(3) em {
        background: url("../img/solution/num-03.svg") no-repeat center center/contain
    }

    .solution__link:nth-child(1) em {
        margin-bottom: calc(1.6*var(--vw))
    }

    .solution__num {
        margin-bottom: calc(4.8*var(--vw));
        width: 100%;
        height: calc(4.2666666667*var(--vw));
        color: rgba(0, 0, 0, 0)
    }

    .solution__sect:has([src*="01"]) {
        margin-top: calc(16*var(--vw))
    }

    .solution__sect:has([src*="02"]) {
        margin-top: calc(25.0666666667*var(--vw))
    }

    .solution__sect:has([src*="03"]) {
        margin-top: calc(23.4666666667*var(--vw))
    }

    .solution__much {
        margin-top: calc(10.6666666667*var(--vw))
    }
}

.solution-sect__ttl,
.solution-sect__caption {
    font-weight: 700
}

.solution-sect__ttl {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center
}

.solution-sect__caption {
    width: fit-content;
    margin-left: auto;
    margin-right: auto;
    text-align: center
}

.solution-sect__txt {
    font-weight: 400
}

.solution-sect__num {
    font-weight: 700;
    color: #06a9ea
}

@media screen and (min-width: 769px),
print {
    .solution-sect__fig {
        position: absolute
    }

    .solution-sect__fig:has([src*="01"]) {
        top: max(-54px, calc(-2.8125 * var(--vw)));
        right: min(710px, calc(36.9791666667 * var(--vw)));
        width: min(1079px, calc(56.1979166667 * var(--vw)))
    }

    .solution-sect__fig:has([src*="02"]) {
        top: max(-108px, calc(-5.625 * var(--vw)));
        left: min(662px, calc(34.4791666667 * var(--vw)));
        width: min(983px, calc(51.1979166667 * var(--vw)))
    }

    .solution-sect__fig:has([src*="03"]) {
        top: max(-28px, calc(-1.4583333333 * var(--vw)));
        right: min(663px, calc(34.53125 * var(--vw)));
        width: min(937px, calc(48.8020833333 * var(--vw)))
    }

    .solution-sect__box {
        width: fit-content;
        max-width: min(640px, calc(33.3333333333 * var(--vw)))
    }

    .solution-sect__box:last-child {
        margin-left: auto
    }

    .solution-sect__ttl {
        gap: min(52px, calc(2.7083333333 * var(--vw)));
        font-size: min(3.125rem, calc(2.6041666667 * var(--vw)))
    }

    .solution-sect__num {
        font-size: min(4.625rem, calc(3.8541666667 * var(--vw)))
    }

    .solution-sect__caption {
        margin-top: min(48px, calc(2.5 * var(--vw)));
        font-size: min(1.875rem, calc(1.5625 * var(--vw)));
        line-height: 1.8666666667em
    }

    .solution-sect__txt {
        margin-top: min(40px, calc(2.0833333333 * var(--vw)));
        font-size: min(1.25rem, calc(1.0416666667 * var(--vw)));
        line-height: 2.4em
    }
}

@media screen and (max-width: 768px),
print {
    .solution-sect__fig {
        margin-left: auto;
        margin-right: auto
    }

    .solution-sect__fig:has([src*="01"]) {
        margin-top: calc(9.6*var(--vw));
        width: calc(78.3477066667*var(--vw))
    }

    .solution-sect__fig:has([src*="02"]) {
        margin-top: calc(5.3333333333*var(--vw));
        width: calc(82.7758133333*var(--vw))
    }

    .solution-sect__fig:has([src*="03"]) {
        margin-top: calc(9.6*var(--vw));
        width: calc(81.3333333333*var(--vw))
    }

    .solution-sect__ttl {
        gap: calc(5.3333333333*var(--vw));
        font-size: calc(7.4666666667*var(--vw))
    }

    .solution-sect__num {
        font-size: calc(12.8*var(--vw))
    }

    .solution-sect__caption {
        margin-top: calc(4.2666666667*var(--vw));
        font-size: calc(4.2666666667*var(--vw));
        line-height: 1.875em
    }

    .solution-sect__txt {
        margin-top: calc(6.4*var(--vw));
        padding: 0 calc(5.3333333333*var(--vw));
        font-size: calc(3.7333333333*var(--vw));
        line-height: 2em
    }
}

.solution-much__ttl {
    font-weight: 700
}

.solution-much__logo {
    mix-blend-mode: multiply
}

.solution-much__application,
.solution-much__much {
    display: flex;
    justify-content: center;
    align-items: center;
    color: #fff;
    text-align: center
}

.solution-much__txt {
    font-weight: 400
}

@media screen and (min-width: 769px),
print {
    .solution-much__ttl {
        font-size: min(1.875rem, calc(1.5625 * var(--vw)));
        line-height: 1.8666666667em
    }

    .solution-much__txt {
        margin-top: min(32px, calc(1.6666666667 * var(--vw)));
        font-size: min(1.25rem, calc(1.0416666667 * var(--vw)));
        line-height: 2.4em
    }

    .solution-much__list {
        display: flex;
        justify-content: space-between;
        align-items: flex-start;
        margin-top: min(76px, calc(3.9583333333 * var(--vw)))
    }

    .solution-much__application,
    .solution-much__much {
        margin-top: min(60px, calc(3.125 * var(--vw)));
        padding-bottom: min(2px, calc(0.1041666667 * var(--vw)));
        width: min(280px, calc(14.5833333333 * var(--vw)));
        height: min(98px, calc(5.1041666667 * var(--vw)));
        font-size: min(1.125rem, calc(0.9375 * var(--vw)));
        font-weight: 700
    }

    .solution-much__application {
        background: url("../img/much/bg-01.png") no-repeat center center/contain
    }

    .solution-much__much {
        flex-direction: column;
        gap: min(40px, calc(2.0833333333 * var(--vw)));
        background: url("../img/much/bg-02.png") no-repeat center center/contain
    }

    .solution-much__fig {
        text-align: center
    }

    .solution-much__fig:has([src*="01"]),
    .solution-much__fig:has([src*="03"]) {
        display: flex;
        flex-direction: column;
        justify-content: space-between;
        margin-top: min(24px, calc(1.25 * var(--vw)));
        height: min(188px, calc(9.7916666667 * var(--vw)))
    }

    .solution-much__fig:has([src*="01"]) {
        width: min(162px, calc(8.4375 * var(--vw)))
    }

    .solution-much__fig:has([src*="02"]) {
        width: min(208px, calc(10.8333333333 * var(--vw)))
    }

    .solution-much__fig:has([src*="03"]) {
        width: min(132px, calc(6.875 * var(--vw)))
    }

    .solution-much__pic[src*="03"] {
        margin-top: min(7px, calc(0.3645833333 * var(--vw)))
    }

    .solution-much__logo {
        margin-top: min(10px, calc(0.5208333333 * var(--vw)));
        width: min(182px, calc(9.4791666667 * var(--vw)))
    }

    .solution-much__caption {
        margin-left: -50%;
        width: 200%;
        font-size: min(1.5rem, calc(1.25 * var(--vw)))
    }
}

@media screen and (max-width: 768px),
print {
    .solution-much {
        padding: 0 calc(5.3333333333*var(--vw))
    }

    .solution-much__ttl {
        font-size: calc(4.2666666667*var(--vw));
        line-height: 1.75em
    }

    .solution-much__txt {
        margin-top: calc(6.4*var(--vw));
        font-size: calc(3.7333333333*var(--vw));
        line-height: 2em
    }

    .solution-much__list {
        margin-top: calc(12.8*var(--vw))
    }

    .solution-much__application {
        margin: calc(8*var(--vw)) auto calc(10.6666666667*var(--vw));
        padding-bottom: calc(2.1333333333*var(--vw));
        height: calc(21.0666666667*var(--vw));
        background: url("../img/much/bg-01[sp].png") no-repeat center center/contain
    }

    .solution-much__much {
        flex-direction: row-reverse;
        margin: calc(4*var(--vw)) auto calc(10.6666666667*var(--vw));
        padding-top: calc(2.1333333333*var(--vw));
        height: calc(25.0666666667*var(--vw));
        background: url("../img/much/bg-02[sp].png") no-repeat center center/contain
    }

    .solution-much__much span {
        flex: 1
    }

    .solution-much__much span:first-child {
        top: calc(-1.6*var(--vw))
    }

    .solution-much__application,
    .solution-much__much {
        width: calc(67.7333333333*var(--vw));
        font-size: calc(3.7333333333*var(--vw));
        line-height: 1.4285714286em;
        font-weight: 400
    }

    .solution-much__fig {
        display: flex;
        justify-content: center;
        align-items: center;
        gap: calc(5.3333333333*var(--vw))
    }

    .solution-much__fig:has([src*="01"]) {
        padding-left: calc(7.4666666667*var(--vw))
    }

    .solution-much__fig:has([src*="02"]) {
        padding-left: calc(4.2666666667*var(--vw))
    }

    .solution-much__pic[src*="01"] {
        width: calc(28.8*var(--vw))
    }

    .solution-much__pic[src*="02"] {
        width: calc(22.4*var(--vw))
    }

    .solution-much__pic[src*="03"] {
        width: calc(22.4*var(--vw))
    }

    .solution-much__logo {
        width: calc(31.7333333333*var(--vw))
    }

    .solution-much__caption {
        font-size: calc(4.2666666667*var(--vw))
    }
}

.merit__li {
    display: flex;
    flex-direction: column;
    border: .5px solid #707070
}

.merit__caption {
    font-weight: 700;
    font-feature-settings: "palt"
}

.merit__txt {
    font-weight: 400;
    font-feature-settings: "palt";
    letter-spacing: .04em
}

@media screen and (min-width: 769px),
print {
    .merit__wrap {
        padding-top: min(212px, calc(8.0416666667 * var(--vw)))
    }

    .merit__list {
        display: flex;
        justify-content: space-between;
        flex-wrap: wrap;
        gap: min(50px, calc(2.6041666667 * var(--vw))) 0;
        margin-top: min(80px, calc(4.1666666667 * var(--vw)))
    }

    .merit__li {
        align-items: center;
        padding: min(40px, calc(2.0833333333 * var(--vw))) min(48px, calc(1.5 * var(--vw)));
        width: min(400px, calc(20.8333333333 * var(--vw)))
    }

    .merit__caption {
        margin-bottom: min(48px, calc(2.5 * var(--vw)));
        font-size: min(1.875rem, calc(1.5625 * var(--vw)));
        line-height: 1.6666666667em
    }

    .merit__fig {
        margin-top: auto;
        margin-bottom: min(48px, calc(2.5 * var(--vw)))
    }

    .merit__pic[src*="01"] {
        width: min(194px, calc(10.1041666667 * var(--vw)))
    }

    .merit__pic[src*="02"] {
        width: min(140px, calc(7.2916666667 * var(--vw)))
    }

    .merit__pic[src*="03"] {
        width: min(167px, calc(8.6979166667 * var(--vw)))
    }

    .merit__pic[src*="04"] {
        width: min(140px, calc(7.2916666667 * var(--vw)))
    }

    .merit__pic[src*="05"] {
        width: min(170px, calc(8.8541666667 * var(--vw)))
    }

    .merit__pic[src*="06"] {
        width: min(184px, calc(9.5833333333 * var(--vw)))
    }

    .merit__txt {
        margin-top: auto;
        font-size: min(1.125rem, calc(0.9375 * var(--vw)));
        line-height: 2em
    }
}

@media screen and (max-width: 768px),
print {
    .merit__wrap {
        padding-top: calc(28.8*var(--vw))
    }

    .merit__list {
        margin-top: calc(21.3333333333*var(--vw));
        padding: 0 calc(5.3333333333*var(--vw))
    }

    .merit__li {
        justify-content: space-between;
        margin-top: calc(10.6666666667*var(--vw));
        height: calc(112.8*var(--vw));
        padding: calc(9.6*var(--vw))
    }

    .merit__caption {
        font-size: calc(6.6666666667*var(--vw));
        line-height: 1.68em;
        text-align: center
    }

    .merit__fig {
        text-align: center
    }

    .merit__pic[src*="01"] {
        width: calc(43.3973333333*var(--vw))
    }

    .merit__pic[src*="02"] {
        width: calc(31.2666666667*var(--vw))
    }

    .merit__pic[src*="03"] {
        width: calc(36.5466666667*var(--vw))
    }

    .merit__pic[src*="04"] {
        width: calc(30.1893333333*var(--vw))
    }

    .merit__pic[src*="05"] {
        width: calc(36.88*var(--vw))
    }

    .merit__pic[src*="06"] {
        width: calc(40.2293333333*var(--vw))
    }

    .merit__txt {
        width: calc(68.2666666667*var(--vw));
        font-size: calc(3.7333333333*var(--vw));
        line-height: 2.1428571429em
    }
}

.speed__caption {
    font-weight: 700;
    color: #ed2987
}

@media screen and (min-width: 769px),
print {
    .speed__ttl {
        line-height: 1.5em;
    }

    .speed__wrap {
        padding-top: min(172px, calc(8.9583333333 * var(--vw)))
    }

    .speed__caption {
        margin-top: min(88px, calc(4.5833333333 * var(--vw)));
        font-size: min(1.875rem, calc(1.5625 * var(--vw)))
    }

    .speed__txt {
        margin-top: min(32px, calc(1.6666666667 * var(--vw)));
        font-size: min(1.25rem, calc(1.0416666667 * var(--vw)));
        line-height: 2.4em;
        letter-spacing: -0.07em;
    }
}

@media screen and (max-width: 768px),
print {
    .speed__wrap {
        padding: calc(27.7333333333*var(--vw)) calc(5.3333333333*var(--vw)) 0
    }

    .speed__caption {
        margin-top: calc(11.7333333333*var(--vw));
        font-size: calc(5.3333333333*var(--vw));
        text-align: center
    }

    .speed__txt {
        margin-top: calc(2.1333333333*var(--vw));
        font-size: calc(3.7333333333*var(--vw));
        line-height: 2.1428571429em
    }
}

.speed-flow__ttl {
    font-weight: 700;
    text-align: center
}

.speed-flow__caption {
    font-weight: 700;
    color: #06a9ea;
    text-align: center
}

.speed-flow__general li {
    border-color: #111
}

.speed-flow__booster li {
    border-color: #06a9ea
}

.speed-flow__li,
.speed-flow__shortest {
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center
}

.speed-flow__li {
    border-radius: 999px;
    border: 1.5px solid;
    background-color: #fff
}

.speed-flow__shortest {
    color: #fff;
    background-color: #ed2987
}

@media screen and (min-width: 769px),
print {
    .speed-flow {
        margin-top: min(90px, calc(4.6875 * var(--vw)))
    }

    .speed-flow__ttl {
        margin-bottom: min(40px, calc(2.0833333333 * var(--vw)));
        font-size: min(1.25rem, calc(1.0416666667 * var(--vw)))
    }

    .speed-flow__caption {
        margin-top: min(52px, calc(2.7083333333 * var(--vw)));
        font-size: min(1.25rem, calc(1.0416666667 * var(--vw)))
    }

    .speed-flow__general,
    .speed-flow__booster {
        display: flex;
        gap: min(30px, calc(1.5625 * var(--vw)));
        margin-top: min(24px, calc(1.25 * var(--vw)))
    }

    .speed-flow__general {
        background: url("../img/speed/arrow-01.svg") no-repeat center center/contain
    }

    .speed-flow__booster {
        background: url("../img/speed/arrow-02.svg") no-repeat center center/contain
    }

    .speed-flow__li,
    .speed-flow__shortest {
        font-size: min(1.25rem, calc(1.0416666667 * var(--vw)))
    }

    .speed-flow__li {
        width: min(180px, calc(9.375 * var(--vw)));
        height: min(65px, calc(3.3854166667 * var(--vw)))
    }

    .speed-flow__shortest {
        width: min(293px, calc(15.2604166667 * var(--vw)));
        height: min(65px, calc(3.3854166667 * var(--vw)));
        font-weight: 700
    }
}

@media screen and (max-width: 768px),
print {
    .speed-flow {
        display: flex;
        justify-content: center;
        gap: calc(6.4*var(--vw));
        margin-top: calc(7.4666666667*var(--vw))
    }

    .speed-flow__box {
        width: calc(36.8*var(--vw))
    }

    .speed-flow__ttl,
    .speed-flow__caption {
        font-size: calc(4*var(--vw));
        line-height: 2em
    }

    .speed-flow__general,
    .speed-flow__booster {
        margin-top: calc(6.4*var(--vw));
        padding-top: calc(6.4*var(--vw));
        height: calc(142.4*var(--vw))
    }

    .speed-flow__general {
        background: url("../img/speed/arrow-01[sp].svg") no-repeat center center/contain
    }

    .speed-flow__booster {
        background: url("../img/speed/arrow-02[sp].svg") no-repeat center center/contain
    }

    .speed-flow__li,
    .speed-flow__shortest {
        font-size: calc(3.7333333333*var(--vw));
        line-height: 2em
    }

    .speed-flow__li {
        margin-bottom: calc(10.6666666667*var(--vw));
        width: calc(33.0666666667*var(--vw));
        height: calc(10.6666666667*var(--vw))
    }

    .speed-flow__shortest {
        width: min(293px, calc(15.2604166667 * var(--vw)));
        height: min(65px, calc(3.3854166667 * var(--vw)))
    }

    .speed-flow__shortest {
        width: calc(33.0666666667*var(--vw));
        height: calc(23.4666666667*var(--vw))
    }
}

.member__small {
    font-weight: 500
}

.member__caption,
.member__subttl,
.member__txt {
    font-weight: 700;
    text-align: center
}

.member__note {
    font-weight: 400;
    text-align: center
}

.member__subttl {
    color: #ed2987;
    border-bottom: solid #ed2987
}

@media screen and (min-width: 769px),
print {
    .member__wrap {
        padding-top: min(168px, calc(8.75 * var(--vw)))
    }

    .member__small {
        margin: max(-20px, calc(-1.0416666667 * var(--vw))) 0 max(-12px, calc(-0.625 * var(--vw)));
        font-size: min(1.25rem, calc(1.0416666667 * var(--vw)));
        line-height: 1.7em
    }

    .member__list {
        display: flex;
        justify-content: space-between;
        margin-top: min(80px, calc(4.1666666667 * var(--vw)))
    }

    .member__fig {
        width: min(360px, calc(18.75 * var(--vw)))
    }

    .member__caption {
        margin-top: min(44px, calc(2.2916666667 * var(--vw)));
        font-size: min(1.25rem, calc(1.0416666667 * var(--vw)))
    }

    .member__subttl {
        margin: min(64px, calc(3.3333333333 * var(--vw))) auto 0;
        padding-bottom: min(10px, calc(0.5208333333 * var(--vw)));
        width: fit-content;
        font-size: min(2.375rem, calc(1.9791666667 * var(--vw)));
        border-bottom-width: min(4px, calc(0.2083333333 * var(--vw)))
    }

    .member__note {
        margin-top: min(24px, calc(1.25 * var(--vw)));
        font-size: min(0.875rem, calc(0.7291666667 * var(--vw)))
    }

    .member__txt {
        margin-top: min(16px, calc(0.8333333333 * var(--vw)));
        font-size: min(1.5rem, calc(1.25 * var(--vw)));
        line-height: 2em
    }
}

@media screen and (max-width: 768px),
print {
    .member__wrap {
        padding: calc(26.6666666667*var(--vw)) calc(5.3333333333*var(--vw)) 0
    }

    .member__small {
        margin: calc(-6.4*var(--vw)) 0 calc(-5.3333333333*var(--vw));
        font-size: calc(2.4*var(--vw))
    }

    .member__list {
        margin-top: calc(11.7333333333*var(--vw))
    }

    .member__li {
        margin-top: calc(13.8666666667*var(--vw))
    }

    .member__fig {
        margin: auto;
        width: calc(49.5093333333*var(--vw))
    }

    .member__caption {
        margin-top: calc(5.8666666667*var(--vw));
        font-size: calc(3.7333333333*var(--vw))
    }

    .member__subttl {
        margin-top: calc(6.4*var(--vw));
        padding-bottom: min(16px, calc(0.8333333333 * var(--vw)));
        font-size: calc(5.3333333333*var(--vw));
        line-height: 1.8em;
        border-bottom-width: calc(1.0666666667*var(--vw))
    }

    .member__note {
        margin-top: calc(3.2*var(--vw));
        font-size: calc(2.4*var(--vw))
    }

    .member__txt {
        margin-top: calc(5.3333333333*var(--vw));
        font-size: calc(4.2666666667*var(--vw));
        line-height: 1.875em
    }
}

.app__box {
    border: solid #06a9ea;
    overflow: hidden
}

.app__box::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    background-color: #06a9ea
}

.app__ttl {
    display: flex;
    flex-direction: column;
    font-weight: 700;
    text-align: center
}

.app__dl {
    color: #fff
}

.app__no1 {
    color: #f0e956
}

.app__sup {
    top: .8em;
    vertical-align: top;
    color: #fff
}

.app__fig {
    display: flex;
    justify-content: space-between;
    align-items: center
}

@media screen and (min-width: 769px),
print {
    .app__wrap {
        padding-top: min(128px, calc(6.6666666667 * var(--vw)))
    }

    .app__box {
        display: flex;
        justify-content: flex-start;
        border-width: min(4px, calc(0.2083333333 * var(--vw)));
        border-radius: min(20px, calc(1.0416666667 * var(--vw)));
        height: min(570px, calc(29.6875 * var(--vw)))
    }

    .app__box::before {
        height: min(305px, calc(15.8854166667 * var(--vw)))
    }

    .app__item {
        padding: 0 min(72px, calc(3.75 * var(--vw))) 0 min(42px, calc(2.1875 * var(--vw)));
        width: min(692px, calc(36.0416666667 * var(--vw)))
    }

    .app__ttl {
        padding-top: min(96px, calc(5 * var(--vw)));
        text-shadow: 0 min(2px, calc(0.1041666667 * var(--vw))) min(30px, calc(1.5625 * var(--vw))) rgba(235, 235, 235, .77)
    }

    .app__fig {
        width: min(524px, calc(27.2916666667 * var(--vw)))
    }

    .app__img {
        width: min(240px, calc(12.5 * var(--vw)))
    }

    .app__dl {
        font-size: min(2.25rem, calc(1.875 * var(--vw)));
        line-height: 1.6666666667em
    }

    .app__no1 {
        margin-top: min(16px, calc(0.8333333333 * var(--vw)));
        font-size: min(4.625rem, calc(3.8541666667 * var(--vw)))
    }

    .app__sup {
        font-size: min(1.125rem, calc(0.9375 * var(--vw)))
    }

    .app__txt {
        margin-top: min(168px, calc(8.75 * var(--vw)));
        font-size: min(1.125rem, calc(0.9375 * var(--vw)));
        line-height: 2em
    }

    .app__note {
        margin-top: min(8px, calc(0.4166666667 * var(--vw)));
        font-size: min(0.875rem, calc(0.7291666667 * var(--vw)));
        line-height: 2.5714285714em
    }
}

@media screen and (max-width: 768px),
print {
    .app__wrap {
        padding: calc(21.3333333333*var(--vw)) calc(5.3333333333*var(--vw)) 0
    }

    .app__box {
        border-width: calc(1.0666666667*var(--vw));
        border-radius: calc(5.3333333333*var(--vw));
        height: calc(185.3333333333*var(--vw))
    }

    .app__box::before {
        height: calc(129.0666666667*var(--vw))
    }

    .app__ttl {
        padding-top: calc(8.5333333333*var(--vw));
        text-shadow: 0 calc(.5333333333*var(--vw)) calc(8*var(--vw)) rgba(235, 235, 235, .77)
    }

    .app__fig {
        margin: calc(4.2666666667*var(--vw)) auto 0;
        width: calc(76.2666666667*var(--vw))
    }

    .app__img {
        width: calc(34.6666666667*var(--vw))
    }

    .app__dl {
        font-size: calc(7.7333333333*var(--vw));
        line-height: 1.6551724138em
    }

    .app__txt {
        margin-top: calc(17.0666666667*var(--vw));
        padding: 0 calc(4.2666666667*var(--vw));
        font-size: calc(3.7333333333*var(--vw));
        font-weight: 700;
        line-height: 2.5714285714em
    }
}

.area__container {
    border: solid #06a9ea;
    overflow: hidden
}

.area__ttl,
.area__caption,
.area__txt {
    font-weight: 700
}

.area__caption {
    text-align: center;
    color: #06a9ea
}

.area__large {
    color: #ed2987;
    letter-spacing: 0
}

.area__item {
    background-image: url("../img/area/map.svg");
    background-repeat: no-repeat
}

.area__caption {
    color: #06a9ea
}

.area__catch {
    font-weight: 700;
    text-align: center;
    color: #fff;
    background-color: #06a9ea
}

@media screen and (min-width: 769px),
print {
    .area__wrap {
        margin-top: min(100px, calc(5.2083333333 * var(--vw)))
    }

    .area__container {
        display: flex;
        flex-direction: column;
        height: min(550px, calc(28.6458333333 * var(--vw)));
        border-width: min(4px, calc(0.2083333333 * var(--vw)));
        border-radius: min(20px, calc(1.0416666667 * var(--vw)))
    }

    .area__box {
        display: flex;
        justify-content: flex-start;
        padding: 0 min(48px, calc(2.5 * var(--vw)));
        height: min(462px, calc(24.0625 * var(--vw)))
    }

    .area__item,
    .area__area {
        width: 50%
    }

    .area__item {
        padding-top: min(200px, calc(10.4166666667 * var(--vw)));
        background-size: min(456px, calc(23.75 * var(--vw)));
        background-position: bottom min(8px, calc(0.4166666667 * var(--vw))) left min(84px, calc(4.375 * var(--vw)))
    }

    .area__ttl {
        font-size: min(3.0625rem, calc(2.5520833333 * var(--vw)))
    }

    .area__note {
        margin-top: min(12px, calc(0.625 * var(--vw)));
        font-size: min(0.875rem, calc(0.7291666667 * var(--vw)))
    }

    .area__large {
        margin: 0 min(12px, calc(0.625 * var(--vw)));
        font-size: min(4.6875rem, calc(3.90625 * var(--vw)))
    }

    .area__caption {
        margin-top: min(36px, calc(1.875 * var(--vw)));
        font-size: min(1.5625rem, calc(1.3020833333 * var(--vw)))
    }

    .area__txt {
        margin-top: min(20px, calc(1.0416666667 * var(--vw)));
        font-size: min(1.125rem, calc(0.9375 * var(--vw)));
        line-height: 2em
    }

    .area__area {
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center
    }

    .area__catch {
        margin-top: auto;
        font-size: min(1.875rem, calc(1.5625 * var(--vw)));
        line-height: 2.9333333333em
    }
}

@media screen and (max-width: 768px),
print {
    .area__wrap {
        margin-top: calc(18.6666666667*var(--vw));
        padding: 0 calc(5.3333333333*var(--vw))
    }

    .area__container {
        border-width: calc(1.0666666667*var(--vw));
        border-radius: calc(5.3333333333*var(--vw))
    }

    .area__item {
        height: calc(56*var(--vw));
        margin-top: calc(4.2666666667*var(--vw));
        padding-top: calc(5.3333333333*var(--vw));
        background-size: contain;
        background-position: right calc(6.4*var(--vw)) bottom
    }

    .area__ttl,
    .area__note {
        margin: auto;
        width: calc(71.7333333333*var(--vw))
    }

    .area__ttl {
        font-size: calc(6.6666666667*var(--vw))
    }

    .area__note {
        margin-top: calc(3.2*var(--vw));
        font-size: calc(3.7333333333*var(--vw))
    }

    .area__large {
        margin: 0 calc(2.1333333333*var(--vw));
        font-size: calc(10.6666666667*var(--vw))
    }

    .area__caption {
        margin-top: calc(-27.7333333333*var(--vw));
        font-size: calc(4.8*var(--vw));
        line-height: 2em
    }

    .area__txt {
        margin-top: calc(3.2*var(--vw));
        font-size: calc(3.7333333333*var(--vw));
        line-height: 2em
    }

    .area__area {
        padding: 0 calc(1.0666666667*var(--vw)) calc(7.4666666667*var(--vw)) calc(4.2666666667*var(--vw))
    }

    .area__catch {
        padding: calc(4.2666666667*var(--vw)) 0;
        font-size: calc(5.3333333333*var(--vw));
        line-height: 1.8em
    }
}

.cta {
    background-color: #f2fafd
}

.cta:is(footer) {
    position: fixed;
    left: 0;
    width: 100%;
    z-index: 999;
    bottom: 0;
    transition: opacity .3s cubic-bezier(0.215, 0.61, 0.355, 1)
}

body:not(.is-scroll) .cta:is(footer),
.cta:is(footer).is-stop {
  opacity: 0;
  transition: opacity 200ms ease;
  content-visibility: hidden;
  contain-intrinsic-size: 0;
}

@media screen and (min-width: 769px),
print {
    .cta__wrap {
        gap: min(40px, calc(2.0833333333 * var(--vw)));
        margin-top: min(160px, calc(8.3333333333 * var(--vw)));
        padding-top: min(54px, calc(2.8125 * var(--vw)));
        padding-bottom: min(76px, calc(3.9583333333 * var(--vw)))
    }

    .cta__wrap,
    .cta__wrap--simple {
        display: flex;
        justify-content: center
    }

    .cta__wrap--simple {
        gap: min(30px, calc(1.5625 * var(--vw)));
        padding-top: min(10px, calc(2.0833333333 * var(--vw)));
        padding-bottom: min(40px, calc(2.0833333333 * var(--vw)))
    }

    .cta__fig {
        width: min(310px, calc(16.1458333333 * var(--vw)))
    }

    .cta__btn {
        display: flex;
        justify-content: space-between;
        margin-top: min(36px, calc(1.875 * var(--vw)));
        width: min(750px, calc(39.0625 * var(--vw)))
    }

    .cta__txt {
        margin-top: min(128px, calc(6.6666666667 * var(--vw)));
        font-size: min(1.5rem, calc(1.25 * var(--vw)));
        text-align: center
    }
}

@media screen and (max-width: 768px),
print {
    .cta__wrap {
        margin-top: calc(18.6666666667*var(--vw));
        padding-top: calc(8*var(--vw));
        padding-bottom: calc(8.5333333333*var(--vw))
    }

    .cta__wrap--simple {
        padding: calc(3.2*var(--vw)) 0
    }

    .cta__fig {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: calc(5.3333333333*var(--vw))
    }

    .cta__pic {
        width: calc(31.4666666667*var(--vw))
    }

    .cta__btn {
        margin-top: calc(7.4666666667*var(--vw))
    }

    .cta__dl {
        margin-top: calc(4*var(--vw))
    }

    .cta__txt {
        font-size: calc(3.7333333333*var(--vw));
        line-height: 2em
    }

    .cta__contact,
    .cta__dl {
        width: calc(48*var(--vw));
        height: calc(7.2*var(--vw));
        font-size: calc(2.6666666667*var(--vw))
    }

    .cta__contact::after,
    .cta__dl::after {
        right: calc(2.6666666667*var(--vw));
        width: calc(3.672*var(--vw))
    }

    .cta__dl {
        margin-top: calc(3.2*var(--vw))
    }
}

.flow__list {
    counter-reset: step 0;
    list-style-type: none
}

.flow__li:not(:first-of-type)::before {
    content: "";
    position: absolute;
    background: url("../img/flow/line.svg") no-repeat center center/contain;
    aspect-ratio: 7.53/48.96
}

.flow__num::before {
    content: "Step "
}

.flow__step {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    color: #fff;
    background-color: #06a9ea;
    aspect-ratio: 1/1;
    border-radius: 50%
}

.flow__fig {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    order: 3
}

.flow__item {
    display: flex;
    flex-direction: column;
    justify-content: center;
    background-color: rgba(255, 251, 219, .33);
    border: solid rgba(194, 192, 192, .33)
}

.flow__caption {
    font-weight: 700;
    color: #ed2987
}

.flow__sup {
    vertical-align: super;
}

@media screen and (min-width: 769px),
print {
    .flow__wrap {
        margin-top: min(168px, calc(8.75 * var(--vw)))
    }

    .flow__list {
        margin-top: min(80px, calc(4.1666666667 * var(--vw)))
    }

    .flow__li {
        display: flex;
        align-items: center;
        gap: min(40px, calc(2.0833333333 * var(--vw)));
        margin-bottom: min(90px, calc(4.6875 * var(--vw)))
    }

    .flow__li::before {
        top: max(-72px, calc(-3.75 * var(--vw)));
        left: min(72px, calc(3.75 * var(--vw)));
        width: min(8px, calc(0.4166666667 * var(--vw)))
    }

    .flow__step {
        width: min(150px, calc(7.8125 * var(--vw)))
    }

    .flow__num {
        font-size: min(1.875rem, calc(1.5625 * var(--vw)))
    }

    .flow__num::before {
        font-size: min(1.25rem, calc(1.0416666667 * var(--vw)))
    }

    .flow__fig {
        margin-top: min(12px, calc(0.625 * var(--vw)));
        height: min(53px, calc(2.7604166667 * var(--vw)))
    }

    .flow__pic[src*="01"] {
        width: min(51px, calc(2.65625 * var(--vw)))
    }

    .flow__pic[src*="02"] {
        width: min(39.36px, calc(2.05 * var(--vw)))
    }

    .flow__pic[src*="03"] {
        width: min(62.31px, calc(3.2453125 * var(--vw)))
    }

    .flow__pic[src*="04"] {
        width: min(35.86px, calc(1.8677083333 * var(--vw)))
    }

    .flow__pic[src*="05"] {
        width: min(40.15px, calc(2.0911458333 * var(--vw)))
    }

    .flow__pic[src*="06"] {
        width: min(64.13px, calc(3.3401041667 * var(--vw)))
    }

    .flow__item {
        flex: 1;
        padding: 0 min(40px, calc(2.0833333333 * var(--vw)));
        height: min(152px, calc(7.9166666667 * var(--vw)));
        border-width: min(4px, calc(0.2083333333 * var(--vw)));
        border-radius: min(30px, calc(1.5625 * var(--vw)))
    }

    .flow__caption {
        font-size: min(1.5rem, calc(1.25 * var(--vw)))
    }

    .flow__txt,
    .flow__note {
        margin-top: min(20px, calc(1.0416666667 * var(--vw)))
    }

    .flow__txt {
        font-size: min(1.125rem, calc(0.9375 * var(--vw)))
    }

    .flow__note {
        font-size: min(0.875rem, calc(0.7291666667 * var(--vw)))
    }

    .flow__sup {
        font-size: 0.7em;
    }
}

@media screen and (max-width: 768px),
print {
    .flow__wrap {
        margin-top: calc(17.0666666667*var(--vw))
    }

    .flow__list {
        margin-top: calc(14.6666666667*var(--vw));
        padding: 0 calc(5.3333333333*var(--vw))
    }

    .flow__li {
        margin-bottom: calc(24*var(--vw))
    }

    .flow__li::before {
        top: calc(-18.1333333333*var(--vw));
        left: 50%;
        width: calc(2.1333333333*var(--vw));
        transform: translateX(-50%)
    }

    .flow__step {
        margin: auto;
        width: calc(22.4*var(--vw))
    }

    .flow__num {
        font-size: calc(4.5333333333*var(--vw))
    }

    .flow__num::before {
        font-size: calc(2.9333333333*var(--vw))
    }

    .flow__fig {
        margin-top: calc(2.6666666667*var(--vw));
        height: calc(7.7333333333*var(--vw))
    }

    .flow__pic[src*="01"] {
        width: calc(7.4666666667*var(--vw))
    }

    .flow__pic[src*="02"] {
        width: calc(5.9173333333*var(--vw))
    }

    .flow__pic[src*="03"] {
        width: calc(10.5813333333*var(--vw))
    }

    .flow__pic[src*="04"] {
        width: calc(5.392*var(--vw))
    }

    .flow__pic[src*="05"] {
        width: calc(6.0373333333*var(--vw))
    }

    .flow__pic[src*="06"] {
        width: calc(9.64*var(--vw))
    }

    .flow__item {
        margin-top: calc(5.3333333333*var(--vw));
        padding: calc(3.7333333333*var(--vw)) calc(4.8*var(--vw));
        border-width: calc(.5333333333*var(--vw));
        border-radius: calc(4.2666666667*var(--vw))
    }

    .flow__caption {
        margin-top: calc(2.1333333333*var(--vw));
        margin-bottom: calc(3.2*var(--vw));
        font-size: calc(4.2666666667*var(--vw))
    }

    .flow__txt {
        font-size: calc(3.7333333333*var(--vw));
        line-height: 2em
    }

    .flow__note {
        font-size: calc(3.2*var(--vw));
        line-height: 2.3333333333em
    }

    .flow__sup {
        font-size: 0.85em;
    }
}

.price__li {
    background-color: #f2fafd;
    box-shadow: 0 0 0 .5px #c4baba inset
}

.price__caption {
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    color: #fff;
    text-align: center;
    background-color: #06a9ea;
    border-bottom: .5px solid #c4baba
}

.price__catch {
    font-weight: 700
}

.price__mark {
    color: #ed2987
}

@media screen and (min-width: 769px),
print {
    .price__wrap {
        margin-top: min(176px, calc(9.1666666667 * var(--vw)))
    }

    .price__list {
        display: flex;
        justify-content: space-between;
        margin-top: min(80px, calc(4.1666666667 * var(--vw)))
    }

    .price__li {
        width: min(400px, calc(20.8333333333 * var(--vw)));
        height: min(385px, calc(20.0520833333 * var(--vw)))
    }

    .price__caption {
        height: min(60px, calc(3.125 * var(--vw)));
        font-size: min(1.25rem, calc(1.0416666667 * var(--vw)));
        text-shadow: 0 min(2px, calc(0.1041666667 * var(--vw))) min(30px, calc(1.5625 * var(--vw))) rgba(235, 235, 235, .77)
    }

    .price__item {
        padding: min(30px, calc(1.5625 * var(--vw)))
    }

    .price__catch {
        font-size: min(1.5rem, calc(1.25 * var(--vw)));
        line-height: 1.6666666667em
    }

    .price__txt {
        margin-top: min(16px, calc(0.8333333333 * var(--vw)));
        font-size: min(0.875rem, calc(0.7291666667 * var(--vw)));
        line-height: 2em
    }
}

@media screen and (max-width: 768px),
print {
    .price__wrap {
        margin-top: calc(26.6666666667*var(--vw));
        padding: 0 calc(5.3333333333*var(--vw))
    }

    .price__list {
        margin-top: calc(16*var(--vw))
    }

    .price__li {
        margin-top: calc(10.6666666667*var(--vw))
    }

    .price__caption {
        height: calc(13.3333333333*var(--vw));
        font-size: calc(4.8*var(--vw));
        text-shadow: 0 calc(.5333333333*var(--vw)) calc(8*var(--vw)) rgba(235, 235, 235, .77)
    }

    .price__item {
        padding: calc(5.3333333333*var(--vw)) calc(6.9333333333*var(--vw)) calc(5.3333333333*var(--vw)) calc(7.4666666667*var(--vw))
    }

    .price__catch {
        margin-right: -10%;
        font-size: calc(5.3333333333*var(--vw));
        line-height: 1.8em
    }

    .price__txt {
        margin-top: calc(3.2*var(--vw));
        font-size: calc(3.7333333333*var(--vw));
        line-height: 2em
    }
}

.case__li {
    box-shadow: 0 0 0 .5px #7fceec inset
}

.case__caption {
    font-weight: 400;
    color: #06a9ea
}

.case__txt {
    font-weight: 700
}

@media screen and (min-width: 769px),
print {
    .case__wrap {
        margin-top: min(172px, calc(8.9583333333 * var(--vw)));
        margin-bottom: min(160px, calc(8.3333333333 * var(--vw)))
    }

    .case__list {
        display: flex;
        justify-content: space-between;
        margin-top: min(80px, calc(4.1666666667 * var(--vw)))
    }

    .case__li {
        width: min(401px, calc(20.8854166667 * var(--vw)));
        display: flex;
        flex-direction: column;
    }

    .case__li a {
        display: flex;
        flex-direction: column;
        flex-grow: 1;
    }

    .case__box {
        padding: min(46px, calc(2.3958333333 * var(--vw))) min(30px, calc(1.5625 * var(--vw))) min(48px, calc(2.5 * var(--vw)));
        display: flex;
        flex-direction: column;
        flex-grow: 1;
    }

    .case__caption {
        font-size: min(1.125rem, calc(0.9375 * var(--vw)))
    }

    .case__txt {
        margin-top: min(12px, calc(0.625 * var(--vw)));
        font-size: min(1.25rem, calc(1.0416666667 * var(--vw)));
        line-height: 2em;
        flex-grow: 1;
    }

    .case__btn {
        margin: min(32px, calc(1.6666666667 * var(--vw))) auto 0
    }

    .case__more {
        margin: min(100px, calc(5.2083333333 * var(--vw))) auto 0
    }
}

@media screen and (max-width: 768px),
print {
    .case__wrap {
        margin-top: calc(26.6666666667*var(--vw));
        margin-bottom: calc(26.6666666667*var(--vw));
        padding: 0 calc(5.3333333333*var(--vw))
    }

    .case__list {
        margin-top: calc(16*var(--vw))
    }

    .case__li {
        margin-top: calc(10.6666666667*var(--vw))
    }

    .case__box {
        padding: calc(9.6*var(--vw)) calc(8*var(--vw)) calc(10.6666666667*var(--vw))
    }

    .case__caption {
        font-size: calc(3.7333333333*var(--vw))
    }

    .case__txt {
        margin-top: calc(3.2*var(--vw));
        font-size: calc(4.2666666667*var(--vw));
        line-height: 2em
    }

    .case__btn {
        margin: calc(6.4*var(--vw)) auto 0;
        height: calc(10.4*var(--vw))
    }

    .case__more {
        margin: calc(16*var(--vw)) auto 0;
        width: calc(73.3333333333*var(--vw));
        height: calc(12.5333333333*var(--vw))
    }

    .case__more::after {
        width: calc(6.6373333333*var(--vw))
    }
}

.service {
    background-color: rgba(229, 229, 229, .25)
}

.service__wrap {
    text-align: center
}

.service__ttl,
.service__caption {
    font-weight: 700
}

.service__list {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap
}

.service__li {
    background-color: #fff;
    box-shadow: 0 0 0 .5px #bbb inset
}

.service__fig {
    display: flex;
    align-items: center;
    justify-content: center
}

@media screen and (min-width: 769px),
print {
    .service__wrap {
        padding-top: min(172px, calc(8.9583333333 * var(--vw)));
        padding-bottom: min(158px, calc(8.2291666667 * var(--vw)))
    }

    .service__ttl {
        font-size: min(3.75rem, calc(3.125 * var(--vw)))
    }

    .service__caption {
        margin-top: min(100px, calc(5.2083333333 * var(--vw)));
        font-size: min(1.5rem, calc(1.25 * var(--vw)))
    }

    .service__list {
        gap: min(54px, calc(2.8125 * var(--vw))) 0;
        margin-top: min(88px, calc(4.5833333333 * var(--vw)))
    }

    .service__li {
        padding: min(36px, calc(1.875 * var(--vw))) 0 min(36px, calc(1.875 * var(--vw)));
        width: min(391px, calc(20.3645833333 * var(--vw)))
    }

    .service__txt,
    .service__txt--small {
        font-size: min(1.25rem, calc(1.0416666667 * var(--vw)));
        line-height: 1.8em
    }

    .service__fig {
        margin-top: min(28px, calc(1.4583333333 * var(--vw)));
        height: min(86px, calc(4.4791666667 * var(--vw)))
    }

    .service__logo[src*="01"] {
        width: min(280px, calc(14.5833333333 * var(--vw)))
    }

    .service__logo[src*="02"] {
        width: min(184px, calc(9.5833333333 * var(--vw)))
    }

    .service__logo[src*="03"] {
        width: min(318px, calc(16.5625 * var(--vw)))
    }

    .service__logo[src*="04"] {
        width: min(190px, calc(9.8958333333 * var(--vw)))
    }

    .service__logo[src*="05"] {
        width: min(144px, calc(7.5 * var(--vw)))
    }

    .service__logo[src*="06"] {
        width: min(236px, calc(12.2916666667 * var(--vw)))
    }

    .service__logo[src*="07"],
    .service__logo[src*="08"] {
        width: min(186px, calc(9.6875 * var(--vw)))
    }

    .service__logo[src*="09"] {
        width: min(314px, calc(16.3541666667 * var(--vw)))
    }

    .service__btn {
        margin: min(40px, calc(2.0833333333 * var(--vw))) auto 0;
        width: min(313.26px, calc(16.315625 * var(--vw)));
        height: min(53.7px, calc(2.796875 * var(--vw)))
    }
}

@media screen and (max-width: 768px),
print {
    .service__wrap {
        padding: calc(22.4*var(--vw)) calc(5.3333333333*var(--vw)) calc(26.6666666667*var(--vw))
    }

    .service__ttl {
        font-size: calc(7.4666666667*var(--vw))
    }

    .service__caption {
        margin-top: calc(3.2*var(--vw));
        font-size: calc(3.7333333333*var(--vw));
        line-height: 2em
    }

    .service__list {
        gap: calc(5.3333333333*var(--vw)) 0;
        margin-top: calc(10.6666666667*var(--vw))
    }

    .service__li {
        padding: calc(4*var(--vw));
        width: calc(42.6666666667*var(--vw));
        height: calc(44.5333333333*var(--vw))
    }

    .service__li::after {
        content: "";
        position: absolute;
        bottom: calc(3.4666666667*var(--vw));
        left: 50%;
        width: calc(3.4666666667*var(--vw));
        transform: translateX(-50%);
        mask-image: url("../img/common/arrow.svg");
        mask-repeat: no-repeat;
        mask-position: center;
        mask-size: contain;
        background-color: #06a9ea;
        aspect-ratio: 28.7/16.62
    }

    .service__txt {
        font-size: calc(3.7333333333*var(--vw));
        line-height: 1.5714285714em
    }

    .service__txt br,
    .service__txt--small br {
        display: none
    }

    .service__txt--small {
        font-size: calc(3.4666666667*var(--vw));
        line-height: 1.6923076923em
    }

    .service__fig {
        margin-top: calc(4.2666666667*var(--vw));
        height: calc(10.1333333333*var(--vw))
    }

    .service__logo[src*="01"] {
        width: calc(29.3333333333*var(--vw))
    }

    .service__logo[src*="02"] {
        width: calc(22.0453333333*var(--vw))
    }

    .service__logo[src*="03"] {
        width: calc(37.76*var(--vw))
    }

    .service__logo[src*="04"] {
        width: calc(20*var(--vw))
    }

    .service__logo[src*="05"] {
        width: calc(20.9946666667*var(--vw))
    }

    .service__logo[src*="06"] {
        width: calc(29.1573333333*var(--vw))
    }

    .service__logo[src*="07"],
    .service__logo[src*="08"] {
        width: calc(24.8853333333*var(--vw))
    }

    .service__logo[src*="09"] {
        width: calc(37.76*var(--vw))
    }

    .service__btn {
        display: none
    }
}

/** フッター お知らせ **/
.footer_notice {
    background-color: white;
    margin: 0.5em auto 0 auto;
    padding: 1em;
    line-height: 1.3em;
    color: red;
  }
  .footer_notice .note {
    padding: 0.2em 0.1em;
  }
  .footer_notice .strong {
    font-weight: bold;
  }
  
  @media screen and (max-width: 460px) {
    .footer_notice {
      font-size: 0.8em !important;
      margin: 0.5em auto 0 auto;
      padding: 0.7em;
    }
    .footer_notice .note {
      padding: 0.2em 0.1em;
    }
  }

/** スマホだけTELクリックできるようにする **/
@media screen and (min-width: 461px){
  a[href*="tel:"] {
      pointer-events: none;
      cursor: default;
      text-decoration: none;
  }
}
