@charset "UTF-8";

/* base (reset)
---------------------------------------------------*/
body {
    width: 100%;
    margin: 0 auto;
    padding: 0;
}
h1,
h2,
h3,
h4,
h5,
h6,
p {
    margin: 0;
    padding: 0;
    font-weight: 400;
}
ul,
ol,
dl,
dt,
dd {
    margin: 0;
    padding: 0;
}
ol,
li {
    list-style: none;
}
img {
    border: none;
    line-height: 0;
    font-size: 0;
    vertical-align: middle;
    max-width: 100%;
    height: auto;
}
article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {
    display: block;
}

/* ---------- */
a {
    margin: 0;
    padding: 0;
    font-size: inherit;
    background: transparent;
}
th,
td {
    font-style: normal;
    font-weight: normal;
    font-size: inherit;
    empty-cells: show;
}
input,
select {
    vertical-align: middle;
}
input,
textarea,
select {
    font-family: inherit;
    font-size: inherit;
    font-weight: inherit;
    /*-webkit-appearance: none;*/
    border-radius: 0;
}
pre {
    white-space: -moz-pre-wrap; /* Mozilla */
    white-space: -o-pre-wrap; /* Opera 7 */
    white-space: pre-wrap; /* CSS3 */
    word-wrap: break-word; /* IE 5.5+ */
}

/* color
---------------------------------------------------*/
:root {
    --main-color: #09265D;
    --primary-color: #DEE6EA;
    --background-color: #F4F4F5;
    --white-color: #FFFFFF;
    --black-color: #000000;
    --font-color: #324569;
    --point-color: #324569;
    --canvas-color: #DEE6EA;
    --hover-color: #C5E4E7;
    --btn-color: #385474;
    --btn-font-color: #F0F0F0;
    --btn-hover-color: #09265D;
    --font-size-x: 32px;
    --font-size-ll: 24px;
    --font-size-l: 20px;
    --font-size-m: 18px;
    --font-size-n: 16px;
    --font-size-s: 15px;
    --font-size-en-x: 64px;
    --font-size-en-ll: 48px;
    --font-size-en-l: 38px;
    --font-size-en-m: 28px;
    --font-size-en-n: 24px;
    --font-size-en-s: 18px;
}

/* < 768px */
@media screen and (max-width: 768px) {
    :root {
        --font-size-x: 10vw; /* 38x */
        --font-size-ll: 6.3157vw; /* 24px */
        --font-size-l: 5.2631vw; /* 20px */
        --font-size-m: 5.2631vw; /* 20px */
        --font-size-n: 4.2105vw; /* 16px */
        --font-size-s: 3.9473vw; /* 15px */
        --font-size-en-x: 10vw; /* 38px */
        --font-size-en-ll: 8.4210vw; /* 32px */
        --font-size-en-l: 7.3684vw; /* 28px */
        --font-size-en-m: 5.78947vw; /* 22px */
        --font-size-en-n: 4.73684vw; /* 18px */
        --font-size-en-s: 4.21052vw; /* 16px */
    }
}


/* Selected Text
---------------------------------------------------*/
::selection {
    background: #191919;
    /* Safari */
    color: #FFFFFF;
}

/* HTML
---------------------------------------------------*/
html {
    margin: 0;
    padding: 0;
    min-height: 100%;
    font-size: 62.5%;
}
body {
    position: relative;
    width: 100%;
    line-height: 1;
    color: var(--font-color);
    font-family: "Noto Sans JP", sans-serif;
    font-optical-sizing: auto;
    font-weight: 400;
    font-style: normal;
    font-size: var(--font-size-n);
    background-color: var(--background-color);
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}
* {
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box
}
:before,
:after {
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box
}
.sp-no {
    display: block;
}
br.sp-no {
    display: inline;
}
.pc-no {
    display: none;
}
br.pc-no {
    display: none;
}

/* < 768px */
@media screen and (max-width: 768px) {
    body {
        min-width: auto;
        min-height: 100%;
        -webkit-text-size-adjust: 100%;
    }
    .pc-no {
        display: block;
    }
    br.pc-no {
        display: inline;
    }
    .sp-no {
        display: none;
    }
    br.sp-no {
        display: none;
    }
}


/* link
---------------------------------------------------*/
a {
    text-decoration: none;
}
a:link,
a:visited,
a:active {
    color: var(--black-color);
}
a:hover {
    color: var(--gray-color);
}
a.u {
    text-decoration: underline;
}
a,
a:hover,
.hover {
    -webkit-transition: opacity 0.5s;
    transition: opacity 0.5s;
}
.hover:hover {
    opacity: 0.8;
    filter: alpha(opacity=80);
    -webkit-transition: all 0.5s;
    transition: all 0.5s;
}


/* clearfix
---------------------------------------------------*/
.clearfix {
    min-height: 1px;
    zoom: 1;
}
.clearfix:after {
    visibility: hidden;
    display: block;
    font-size: 0;
    content: '';
    clear: both;
    height: 0;
}
* html .clearfix {
    height: auto;
    overflow: hidden;
}


/* common
---------------------------------------------------*/
svg {
    display: block;
    width: 100%;
    height: auto;
    fill: var(--primary-color);
}
.en {
    font-family: "Amarante", serif;
    font-weight: 400;
    font-style: normal;
}

/*  all-wrap */
#main-wrap {
    font-family: "m-plus-rounded-1p", sans-serif;
    font-style: normal;
    font-weight: 400;
    font-size: var(--font-size-n);
    line-height: 1;
    text-align: left;
    margin: 0 auto;
}


/* header-lower
---------------------------------------------------*/
#header-lower {
    padding-top: 50px;
    margin-bottom: 48px;
    overflow: hidden;
}
#header-lower .header-lower-inner {
    position: relative;
    width: 100%;
    max-width: 1232px;
    margin: 0 auto;
    z-index: 1;
}
#header-lower .header-lower-inner::before {
    position: absolute;
    content: '';
    top: -50px;
    left: 50%;
    transform: translate(-50%, 0);
    width: 100vw;
    height: 166px;
    background-color: var(--main-color);
    z-index: -1;
}
#header-lower .main-title-wrap {
    position: absolute;
    top: 11.5%;
    left: 0;
    width: 100%;
    z-index: 20;
}
#header-lower .main-title-wrap .main-title {
    width: 34.09%;
    max-width: 420px;
    margin: 0 auto;
}
#header-lower .main-title-wrap .main-title img {
    width: 100%;
}
#header-lower .visual {
    position: relative;
    width: 100%;
    z-index: 10;
}
#header-lower .visual img {
    width: 100%;
}
#header-lower .visual::after {
    position: absolute;
    content: '';
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: calc(100% - 10px);
    height: calc(100% - 10px);
    border: 3px solid var(--white-color);
}

/* 768 */
@media screen and (max-width: 768px) {
    #header-lower {
        padding-top: 5.2631vw;
        margin-bottom: 8.4210vw;
    }
    #header-lower .header-lower-inner {
        max-width: 95.7894vw;
    }
    #header-lower .header-lower-inner::before {
        top: -5.2631vw;
        width: 100vw;
        height: 21.0526vw;
    }
    #header-lower .main-title-wrap {
        top: 6.3157vw;
    }
    #header-lower .main-title-wrap .main-title {
        width: 47.3684vw;
    }
    #header-home .visual::after {
        width: calc(100% - 1.57894vw);
        height: calc(100% - 1.57894vw);
    }
}


/* Footer
---------------------------------------------------*/
.footer-wrap {
    padding-top: clamp(30px, 9.375vw, 60px);
    padding-bottom: clamp(30px, 9.375vw, 60px);
    background-color: var(--main-color);
    margin-top: 40px;
}
.footer-wrap .footer-inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: nowrap;
    flex-direction: row;
    width: 92%;
    margin-inline: auto;
}
.footer-wrap .logo {
    aspect-ratio: 240/30;
    width: clamp(140px, 37.5vw, 180px);
    background-image: url("../img/svg_common/jwave_logo_fff.svg");
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    overflow: hidden;
    text-indent: -99999px;
}
.footer-wrap .logo a {
    display: block;
    width: 100%;
    height: 100%;
}
.footer-wrap .copyright {
    color: #fff;
    font-size: clamp(13px, 2.34vw, 15px);
}
.footer-wrap .copyright b {
    display: inline-block;
    margin-right: 6px;
    font-size: 110%;
    transform: translateY(1px);
}

@media screen and (max-width: 768px) {
    .footer-wrap {
        margin-top: 9.4736vw;
    }
    .footer-wrap .footer-inner {
        display: block;
    }
    .footer-wrap .logo {
        margin-inline: auto;
        margin-bottom: 1.5em;
    }
    .footer-wrap .copyright {
        text-align: center;
    }
}

/* title
---------------------------------------------------*/
.ttl-section {
    line-height: 1.275em;
    text-align: center;
    color: var(--main-color);
    font-size: var(--font-size-en-x);
    margin-bottom: 24px;
}

/* < 768 */
@media screen and (max-width: 768px) {
    .ttl-section {
        font-size: var(--font-size-en-ll);
        margin-bottom: 8.4210vw;
    }
    .ttl-section .icon {
        margin-bottom: 2.1052vw;
    }
    .ttl-section .icon img {
        width: 28.9473vw;
    }
    .ttl-section .ttl-en {
        margin-bottom: 4.2105vw;
    }
}


/* BTN
---------------------------------------------------*/
/* btn-link */
.btn-link {
    text-align: center;
}
.btn-link a {
    position: relative;
    display: inline-block;
    width: 98%;
    max-width: 560px;
    text-align: center;
    background-color: var(--btn-color);
    border: 8px solid var(--btn-color);
    -webkit-transition: 0.5s;
    transition: 0.5s;
}
.btn-link .btn-txt {
    display: inline-block;
    width: 100%;
    line-height: 1;
    color: var(--btn-font-color);
    font-size: var(--font-size-en-l);
    font-weight: 700;
    letter-spacing: 0.02em;
    padding: 0.42em 1em;
    background-color: var(--main-color);
    border: 2px solid var(--btn-font-color);
    -webkit-transition: 0.5s;
    transition: 0.5s;
}
.btn-link a:hover .btn-txt {
    background-color: var(--btn-color);
}

/* btn-top */
.btn-top {
    text-align: center;
}
.btn-top a {
    position: relative;
    display: inline-block;
    width: 98%;
    max-width: 380px;
    text-align: center;
    background-color: var(--btn-color);
    border: 2px solid var(--btn-color);
    padding: 0.8em 1em;
    -webkit-transition: 0.5s;
    transition: 0.5s;
}
.btn-top a:hover {
    background-color: var(--btn-hover-color);
}
.btn-top .btn-txt {
    display: inline-block;
    line-height: 1;
    color: var(--white-color);
    font-size: var(--font-size-m);
    font-weight: 700;
    letter-spacing: 0.24em;
}

/* 768px */
@media screen and (max-width: 768px) {
    /* btn-link */
    .btn-link a {
        max-width: 78.9473vw;
        border-width: 2.1052vw;
    }
    .btn-link .btn-txt {
        letter-spacing: 0;
        padding: 0.72em 0;

    }
    .btn-link .btn-icon {
        right: 5.2631vw;
        transform: translate(0, -50%);
        width: 7.3684vw;
    }
    /* btn-top */
    .btn-top a {
        max-width: 57.8947vw;
    }
}


/* Effect
---------------------------------------------------*/
.fadein {
    filter: alpha(opacity=0);
    opacity: 0.0;
    transform: scale(1.0) translate(0, 60px);
    transition: 0.8s;
    -webkit-transition: 0.8s;
}
.fadein_on {
    filter: alpha(opacity=100);
    opacity: 1.0;
    transform: scale(1.0) translate(0, 0);
}

/* scale-in */
.fadein.scale-in {
    transform: scale(1.0) translate(0, 0);
    transition: 0.5s;
    -webkit-transition: 0.5s;
    transition-timing-function: ease-in;
    -webkit-filter: blur(5px);
    -ms-filter: blur(5px);
    filter: blur(5px);
}
.fadein_on.scale-in {
    opacity: 1.0;
    transform: scale(1.0) translate(0, 0);
    -webkit-filter: blur(0px);
    -ms-filter: blur(0px);
    filter: blur(0px);
}

/* fadeout */
.fadeout_on {
    filter: alpha(opacity=0) !important;
    opacity: 0.0 !important;
    transform: scale(1.0) !important;
}
.animated {
    -webkit-animation-duration: 1.5s;
    animation-duration: 1.5s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
}
