@charset 'UTF-8';
/*初期設定
----------------------------------------------------*/
@page
{
    margin: 0;
}
/* リセット設定 */
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
{
    font: inherit;
    font-size: 100%;

    margin: 0;
    padding: 0;

    vertical-align: baseline;

    border: 0;
}

ul
{
    list-style: none;
}

img
{
    max-width: 100%;

    vertical-align: bottom;
}
@media screen and (max-width: 768px)
{
    img
    {
        max-width: 100%;
    }
}

body
{
    font-family: 'Noto Sans JP', sans-serif;
    line-height: 2;

    overflow-x: hidden;

    color: #494d4f;
}
body *
{
    box-sizing: border-box;
}

a
{
    transition: all .25s;
    text-decoration: none;

    color: inherit;
}
a:hover
{
    opacity: .7;
    color: inherit;
}
a:visited
{
    color: inherit;
}

@media screen and (max-width: 768px)
{
    .for-pc
    {
        display: none !important;
    }
}

@media screen and (min-width: 769px)
{
    .for-sp
    {
        display: none !important;
    }
}

.content-inner
{
    width: 1200px;
    margin: 0 auto;
}
@media screen and (max-width: 768px)
{
    .content-inner
    {
        width: 95%;
    }
}

.fade-txt
{
    transition: all 1.3s;

    opacity: 0;
}
.fade-txt.show
{
    opacity: 1;
}

.fade-img
{
    transition: all 1.3s;
    transform: translateY(30px);

    opacity: 0;
}
.fade-img.show
{
    transform: translateY(0);

    opacity: 1;
}

.header
{
    padding: 16px 0;

    background: linear-gradient(90deg, #16ed8b, #1f61a2);
}
@media screen and (max-width: 768px)
{
    .header
    {
        position: sticky;
        z-index: 999;
        top: 0;
        left: 0;

        padding: 8px 0 4px;
    }
}
@media screen and (max-width: 768px)
{
    .header__inner
    {
        display: flex;

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

    justify-content: flex-start;
    align-items: center;
}
.header__logos__logo
{
    width: 88px;
}
@media screen and (max-width: 768px)
{
    .header__logos__logo
    {
        width: 40px;
    }
}
.header__logos__text
{
    font-family: 'Noto Serif JP', sans-serif;
    font-size: 40px;
    font-weight: bold;

    vertical-align: middle;

    color: #fff;
}
@media screen and (max-width: 768px)
{
    .header__logos__text
    {
        font-size: 24px;
    }
}
.header__logos__text--s
{
    font-size: 26px;

    padding-right: 8px;

    vertical-align: middle;
}
@media screen and (max-width: 768px)
{
    .header__logos__text--s
    {
        font-size: 16px;
    }
}
.header__links
{
    display: flex;

    margin-top: 16px;

    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    gap: 16px;
}
.header__links__item
{
    font-size: 14px;

    width: 136px;
    padding-left: 8px;

    transition: all .25s;

    color: #fff;
    border-left: 1px solid #fff;
}
.header__links__item:hover
{
    color: #494d4f;
    background: #fff;
}
.header__links__item a
{
    display: block;

    width: 100%;
}
.header__hamburger
{
    position: relative;
}
.header__hamburger__btn
{
    position: relative;

    display: block;

    width: 24px;
    height: 12px;
}
.header__hamburger__btn:before,
.header__hamburger__btn:after
{
    position: absolute;

    display: block;

    width: 100%;
    height: 2px;

    content: '';

    background: #fff;
}
.header__hamburger__btn:before
{
    top: 0;
}
.header__hamburger__btn:after
{
    bottom: 0;
}
.header__hamburger__close_btn
{
    position: absolute;
    top: 16px;
    right: 2.5%;

    display: block;

    width: 24px;
    height: 24px;
}
.header__hamburger__close_btn:before,
.header__hamburger__close_btn:after
{
    position: absolute;

    display: block;

    width: 100%;
    height: 2px;

    content: '';

    background: #fff;
}
.header__hamburger__close_btn:before
{
    top: 50%;
    left: 50%;

    transform: translate(-50%, -50%) rotate(45deg);
}
.header__hamburger__close_btn:after
{
    top: 50%;
    left: 50%;

    transform: translate(-50%, -50%) rotate(-45deg);
}
.header__hamburger__links__wrap
{
    position: fixed;
    z-index: 1;
    top: 0;
    left: 100%;

    display: flex;

    width: 100vw;
    height: 100%;
    padding: 16px 2.5%;

    transition: all .5s;

    background: linear-gradient(90deg, #16ed8b, #1f61a2);

    justify-content: center;
    align-items: center;
}
.header__hamburger__links__wrap.active
{
    left: 0;
}
.header__hamburger__links__item
{
    font-size: 16px;

    width: 100%;

    transition: all .25s;
    text-align: center;

    color: #fff;
}
.header__hamburger__links__item + .header__hamburger__links__item
{
    margin-top: 32px;
}
.header__hamburger__links__item a
{
    line-height: 1.4;

    display: block;

    width: 100%;
}

.footer
{
    margin-top: 40px;
    padding: 40px 0 16px;

    color: #fff;
    background: linear-gradient(90deg, #16ed8b, #1f61a2);
}
@media screen and (max-width: 768px)
{
    .footer
    {
        padding: 16px 0;
    }
}
.footer__inner
{
    display: flex;

    justify-content: space-between;
    align-items: flex-start;
}
@media screen and (max-width: 768px)
{
    .footer__inner
    {
        display: block;
    }
}
.footer__logos
{
    display: inline-flex;

    justify-content: flex-start;
    align-items: center;
}
.footer__logos__logo
{
    width: 56px;
}
.footer__logos__text
{
    font-family: 'Noto Serif JP', sans-serif;
    font-size: 28px;
    font-weight: bold;

    vertical-align: middle;

    color: #fff;
}
.footer__logos__text--s
{
    font-size: 16px;

    padding-right: 8px;

    vertical-align: middle;
}
.footer__infos
{
    display: flex;

    justify-content: flex-start;
    align-items: flex-start;
    gap: 64px;
}
@media screen and (max-width: 768px)
{
    .footer__infos
    {
        justify-content: center;
    }
}
.footer__infos__block
{
    margin-top: 32px;
}
@media screen and (max-width: 768px)
{
    .footer__infos__block
    {
        margin-top: 16px;
    }
}
.footer__infos__block__head
{
    font-size: 14px;
    font-weight: bold;
}
.footer__infos__block__text
{
    font-size: 12px;
}
.footer__links
{
    display: flex;

    justify-content: flex-end;
    align-items: center;
    gap: 16px;
}
@media screen and (max-width: 768px)
{
    .footer__links
    {
        justify-content: center;
        gap: 8px;
        flex-wrap: wrap;
    }
}
.footer__links__item
{
    font-size: 14px;
    line-height: 1.2em;
}
@media screen and (max-width: 768px)
{
    .footer__links__item
    {
        font-size: 12px;

        width: 45%;

        text-align: center;
    }
}
.footer__links__item + .footer__links__item
{
    padding-left: 16px;

    border-left: 1px solid #fff;
}
@media screen and (max-width: 768px)
{
    .footer__links__item + .footer__links__item
    {
        padding-left: 0;

        border-left: none;
    }
}
.footer__links + .footer__links
{
    margin-top: 8px;
}
.footer__copy
{
    font-size: 12px;

    margin-top: 32px;

    text-align: center;
}
@media screen and (max-width: 768px)
{
    .footer__copy
    {
        font-size: 10px;

        margin-top: 32px;
    }
}

.kv_wrap
{
    display: flex;
    overflow: hidden;

    width: 100%;
    height: 550px;

    justify-content: center;
    align-items: center;
}
@media screen and (max-width: 768px)
{
    .kv_wrap
    {
        height: 30vh;
    }
}
.kv_wrap img
{
    width: 100%;

    -o-object-fit: contain;

       object-fit: contain;
}

.catch-copy-wrap
{
    position: relative;

    width: 1200px;
    margin: 80px auto 0;
    padding: 32px 120px;
}
@media screen and (max-width: 768px)
{
    .catch-copy-wrap
    {
        width: 90%;
        margin: 24px auto 0;
        padding: 16px;
    }
}
.catch-copy-wrap:after
{
    position: absolute;
    top: 0;
    left: 0;

    width: 32px;
    height: 32px;

    content: '';

    border-top: 2px solid #494d4f;
    border-left: 2px solid #494d4f;
}
@media screen and (max-width: 768px)
{
    .catch-copy-wrap:after
    {
        width: 16px;
        height: 16px;
    }
}
.catch-copy-wrap:before
{
    position: absolute;
    right: 0;
    bottom: 0;

    width: 32px;
    height: 32px;

    content: '';

    border-right: 2px solid #494d4f;
    border-bottom: 2px solid #494d4f;
}
@media screen and (max-width: 768px)
{
    .catch-copy-wrap:before
    {
        width: 16px;
        height: 16px;
    }
}
.catch-copy-wrap + .sec-wrap
{
    margin-top: 80px;
}
@media screen and (max-width: 768px)
{
    .catch-copy-wrap + .sec-wrap
    {
        margin-top: 40px;
    }
}

.catch-copy
{
    font-family: 'Noto Serif JP', sans-serif;
    font-size: 40px;
    font-weight: bold;

    text-align: center;

    text-shadow: #16ed8b 2px 2px 2px;
}
@media screen and (max-width: 768px)
{
    .catch-copy
    {
        font-size: 22px;
    }
}

.sec-wrap
{
    display: flex;

    margin-top: 100px;

    justify-content: space-between;
    align-items: center;
}
@media screen and (max-width: 768px)
{
    .sec-wrap
    {
        flex-direction: column;

        margin-top: 80px;
    }
}
@media screen and (max-width: 768px)
{
    .sec-wrap--sp-reverse
    {
        flex-direction: column-reverse;
    }
}
.sec-wrap + .sec-wrap
{
    margin-top: 100px;
}
@media screen and (max-width: 768px)
{
    .sec-wrap + .sec-wrap
    {
        margin-top: 80px;
    }
}
.sec-wrap > *
{
    width: 50%;
}
@media screen and (max-width: 768px)
{
    .sec-wrap > *
    {
        width: 100%;
    }
}
.sec-wrap__img__inner
{
    display: flex;

    justify-content: space-between;
    align-items: center;
    gap: 90px;
}
@media screen and (max-width: 768px)
{
    .sec-wrap__img__inner
    {
        gap: 10px;
    }
}
@media screen and (max-width: 768px)
{
    .sec-wrap__detail
    {
        margin-top: 30px;
    }
}
.sec-wrap__detail__inner
{
    width: 57%;
    margin: 0 auto;
}
@media screen and (max-width: 768px)
{
    .sec-wrap__detail__inner
    {
        width: 90%;
    }
}
.sec-wrap__title
{
    font-family: 'Zen Kurenaido', sans-serif;
    font-size: 40px;
    font-weight: bold;

    text-shadow: #16edce 2px 2px 2px;
}
@media screen and (max-width: 768px)
{
    .sec-wrap__title
    {
        font-size: 22px;
    }
}
.sec-wrap__text
{
    font-size: 14px;
    line-height: 1.8;

    margin-top: 50px;
}
@media screen and (max-width: 768px)
{
    .sec-wrap__text
    {
        font-size: 12px;

        margin-top: 16px;
    }
}
.sec-wrap__more-link
{
    font-size: 14px;

    display: inline-flex;

    margin-top: 50px;
    padding-bottom: 8px;

    transition: all .25s;

    border-bottom: 1px solid #494d4f;

    justify-content: flex-start;
    align-items: center;
    gap: 16px;
}
@media screen and (max-width: 768px)
{
    .sec-wrap__more-link
    {
        font-size: 12px;

        margin-top: 16px;
        padding-bottom: 8px;
    }
}
.sec-wrap__more-link:after
{
    display: block;

    width: 20px;
    height: 20px;

    content: '';

    background: url(../img/ico_arrow--black.svg) no-repeat center;
    background-size: contain;
}
.sec-wrap__more-link:hover
{
    opacity: .7;

    gap: 24px;
}
.sec-wrap--contact
{
    margin-top: 0;
}

.links_wrap
{
    margin-top: 180px;
}
@media screen and (max-width: 768px)
{
    .links_wrap
    {
        margin-top: 80px;
    }
}

.top-link-list
{
    display: flex;

    justify-content: center;
    align-items: center;
    gap: 40px;
}
@media screen and (max-width: 768px)
{
    .top-link-list
    {
        gap: 16px;
        flex-wrap: wrap;
    }
}
.top-link-list__item
{
    width: 400px;
    height: 100px;
}
@media screen and (max-width: 768px)
{
    .top-link-list__item
    {
        width: 80%;
        height: 60px;
    }
}
.top-link-list__item a
{
    display: flex;

    width: 100%;
    height: 100%;

    color: #fff;
    border-radius: 4px;
    background: linear-gradient(30deg, #0fb368, #1f67ae);
    background-size: cover;

    justify-content: center;
    align-items: center;
    gap: 24px;
}
.top-link-list__item a span
{
    font-family: 'Noto Serif JP';
    font-size: 18px;
}
@media screen and (max-width: 768px)
{
    .top-link-list__item a span
    {
        font-size: 16px;
    }
}
.top-link-list__item a img
{
    width: 16px;
}
.top-link-list__item--comingsoon
{
    position: relative;
}
.top-link-list__item--comingsoon:after
{
    font-size: 16px;
    font-weight: bold;

    position: absolute;
    top: 0;
    right: 0;

    content: 'coming soon';
    transform: translate(0%, 20%) rotate(20deg);

    color: #cacc02;
}
.top-link-list__item--comingsoon a
{
    pointer-events: none;

    opacity: .6;
}

.under-h2
{
    margin: 120px 0 80px;

    text-align: center;
}
@media screen and (max-width: 768px)
{
    .under-h2
    {
        margin: 50px 0;
    }
}
.under-h2 span
{
    font-family: 'Noto Serif JP', sans-serif;

    display: block;
}
.under-h2 span:first-child
{
    font-size: 40px;
}
@media screen and (max-width: 768px)
{
    .under-h2 span:first-child
    {
        font-size: 24px;
    }
}
.under-h2 span:last-child
{
    font-size: 18px;
}
@media screen and (max-width: 768px)
{
    .under-h2 span:last-child
    {
        font-size: 14px;

        margin-top: 8px;
    }
}

.detail_table
{
    font-family: 'Noto Sans JP';
    line-height: 1.8;

    width: 100%;
    margin: 0 auto;

    border-collapse: collapse;
}
.detail_table tr
{
    border-top: 1px solid #f0f0f0;
}
.detail_table tr:last-child
{
    border-bottom: 1px solid #f0f0f0;
}
.detail_table th,
.detail_table td
{
    font-size: 16px;

    padding: 25px 0;

    text-align: left;

    color: #494d4f;
}
@media screen and (max-width: 768px)
{
    .detail_table th,
    .detail_table td
    {
        font-size: 12px;

        padding: 15px 0;
    }
}
.detail_table th
{
    width: 250px;
}
@media screen and (max-width: 768px)
{
    .detail_table th
    {
        width: 100px;
    }
}
.detail_table a
{
    text-decoration: underline;
}

.google-map
{
    width: 100%;
    margin-top: 50px;
}
@media screen and (max-width: 768px)
{
    .google-map
    {
        height: 60vw;
        margin-top: 30px;
    }
}

.service_wrap
{
    font-family: 'Noto Sans JP';
}
.service_wrap__content
{
    display: flex;

    margin-top: 100px;

    justify-content: space-between;
    align-items: stretch;
    gap: 30px;
}
@media screen and (max-width: 768px)
{
    .service_wrap__content
    {
        flex-direction: column;

        margin-top: 80px;

        gap: 8px;
    }
}
@media screen and (max-width: 768px)
{
    .service_wrap__content--sp-reverse
    {
        flex-direction: column-reverse;
    }
}
.service_wrap__content > *
{
    width: 48%;
}
@media screen and (max-width: 768px)
{
    .service_wrap__content > *
    {
        width: 100%;
    }
}
.service_wrap__content h3
{
    font-size: 24px;
    font-weight: bold;
}
@media screen and (max-width: 768px)
{
    .service_wrap__content h3
    {
        font-size: 20px;
    }
}
.service_wrap__content p
{
    font-size: 16px;
    line-height: 1.8;

    margin-top: 20px;
}
@media screen and (max-width: 768px)
{
    .service_wrap__content p
    {
        font-size: 14px;

        margin-top: 8px;
    }
}
.service_wrap__content__img_flex
{
    display: flex;

    justify-content: center;
    align-items: center;
    gap: 16px;
}
.service_wrap__content__img_flex__item
{
    width: calc(100% / 2 - 16px);
}

.achievement_wrap
{
    font-family: 'Noto Sans JP';
}
.achievement_wrap__content
{
    display: flex;

    margin-top: 50px;

    justify-content: space-between;
    align-items: flex-start;
    gap: 30px;
}
@media screen and (max-width: 768px)
{
    .achievement_wrap__content
    {
        flex-direction: column;

        margin-top: 30px;
    }
}
.achievement_wrap__content > *
{
    width: 48%;
}
@media screen and (max-width: 768px)
{
    .achievement_wrap__content > *
    {
        width: 100%;
    }
}
