@charset "utf-8";

/* -----------------------------------------------------------
TOPページ
-------------------------------------------------------------- */

.scroll-hint-icon {
	z-index: 2;
}

@media screen and (min-width: 769px) {

    .js-scrollable {
        overflow: unset!important;
    }
    .scroll-hint-icon{
        display: none!important;
    }

}

@media screen and (min-width: 769px) and (max-width: 1600px) {

    #wrapper {
        padding: 120px 0 0 0;
    }

    .header_nav_list {
        font-size: 1.8rem;
        margin: 10px 0 0;
    }

}


/*top-cmn-ttl--------------------------------*/
#top .top-secttl {
    align-items: flex-start;
    display: flex;
    flex-direction: column;
}

#top .top-secttl .ja {
    padding: 0 0 0 45px;
    position: relative;
    font-size: 1.8rem;
    font-weight: bold;
}

#top .top-secttl .ja::before {
    content: "";
    background: url("../img/cmn-ttl-wave.svg")center/contain no-repeat;
    width: 37px;
    height: 11px;
    left: 0;
    position: absolute;
    top: 50%;
    -webkit-transform: translateY(-50%);
    transform: translateY(-50%);
}

#top .top-secttl .en {
    font: 700 5.8rem /1 var(--en);
    letter-spacing: 0;
    position: relative;
    margin: 20px 0 0;
}

#top .top-sec-catch {
    font-size: 3.8rem;
    font-weight: bold;
    letter-spacing: .05em;
    line-height: 1.5;
}

#top .top-sec-decript {
    line-height: 2.3;
    letter-spacing: .07em;
}

@media screen and (max-width: 768px) {
    #wrapper {
        padding: 60px 0 0 0;
    }

    #top .top-secttl {
        align-items: flex-start;
        padding: 0;
    }

    #top .top-secttl .en {
        font-size: 3.5rem;
        margin: 10px 0 0;
        line-height: 1.2;
    }

    #top .top-secttl .en::before {
        width: 97px;
        height: 16px;
    }

    #top .top-secttl .ja {
        font-size: 1.6rem;
        margin: 18px 0 0;
        padding: 0 0 0 38px;
    }

    #top .top-secttl .ja::before {
        width: 32px;
        height: 10px;
    }

    #top .top-sec-catch {
        font-size: 2.4rem;
        letter-spacing: .07em;
        line-height: 1.37;
        text-align: left;
    }

    #top .top-sec-decript {
        line-height: 1.875;
        letter-spacing: .05em;
    }

    #sp_head .logo_area .sp_logo_top {
        display: block;
    }
}

/* -------------------------------------------------------------
    top h1
-------------------------------------------------------------- */
#top .mv-area h1 {
    bottom: 5%;
    display: block;
    font-weight: 400;
    font-size: 1.2rem;
    right: 20px;
    position: absolute;
    z-index: 2;
    color: #fff;
}

@media screen and (max-width: 768px) {
    #top .mv-area h1 {
        font-size: 0.9rem;
        width: 100%;
        right: auto;
        text-align: left;
        padding: 13px 15px 0 15px;
        line-height: 1.5;
        color: #999;
        position: static;
        bottom: auto;
        order: 3;
    }
}


/* -------------------------------------------------------------
    mv-area
-------------------------------------------------------------- */
#top .mv-area {
    position: relative;
    min-height: 520px;
    margin: 0 auto;
    height: 28vw;
}

@media screen and (min-width: 769px) and (max-width: 1600px) {
    #top .mv-area {
        min-height: 430px;
        height: 23vw;
    }
}


/*mv-catch-wrap------------------------*/
#top .mv-area .mv-catch-wrap {
    position: absolute;
    top: 210px;
    left: 4%;
    z-index: 2;
}

#top .mv-area .mv-catch {
    font-family: var(--sans);
    font-weight: bold;
}

#top .mv-area .mv-catch.type1 {
    font-size: 5.2rem;
    margin-top: 10px;
}

@media screen and (min-width: 769px) and (max-width: 1600px) {
    #top .mv-area .mv-catch.type1 {
    	font-size: 4.3rem;
    }
}

#top .mv-area .mv-catch.type1 p {
    text-decoration: underline 5px;
    line-height: 1.5;
    letter-spacing: .07em;
    margin: 20px 0 0;
	font-feature-settings: "palt";
}

#top .mv-area .mv-catch.type2 {
    font-size: 3rem;
    font-weight: 600;
    width: fit-content;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

@media screen and (min-width: 769px) and (max-width: 1600px) {
    #top .mv-area .mv-catch.type2{
        flex-direction: row;
    }
}

#top .mv-area .mv-catch.type2 .s-size {
    font-size: 2.4rem;
    overflow: hidden;
    position: relative;
}

#top .mv-area .mv-catch.type2 p {
    background: linear-gradient(90deg, rgba(70, 176, 52, 1) 0%, rgba(143, 195, 32, 1) 100%);
    padding: 6px 10px 10px;
    width: fit-content;
    line-height: 1;
}

@media screen and (min-width: 769px) and (max-width: 1600px) {
    #top .mv-area .mv-catch.type2 p{
        font-size: 2rem!important;
        padding: 8px 10px;
    }
}

#top .mv-area .mv-catch {
    font-size: 4.8rem;
    font-weight: bold;
    line-height: 1.5;
    letter-spacing: .1em;
    color: #fff;
}


/*mv-bg------------------------*/
#top .mv-area .mv-bg {
    position: relative;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    display: flex;
}

#top .mv-area .mv-bg::before {
    position: absolute;
    content: "";
    width: 100%;
    height: 100%;
    background-color: #1C506821;
    z-index: 1;
}

#top .mv-area .video-box, #top .mv-area .img-box {
    position: relative;
    overflow: hidden;
    width: 50%;
    height: inherit;
}

#top .mv-area .video {
    position: absolute;
    top: 50%;
    left: 50%;
    min-width: 100%;
    min-height: 100%;
    -webkit-transform: translate(-50%, -50%);
    -moz-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
}

#top .mv-area .mv-img-list {
    height: 100%;
    display: flex;
    flex-wrap: wrap;
}

#top .mv-area .mv-img-list li {
    height: calc(100% / 3);
    width: calc(100% / 3);
    overflow: hidden;
}

@media screen and (min-width: 769px) and (max-width: 1600px) {
    #top .mv-area .mv-img-list li {
        height: calc(100% / 2);
    }
    #top .mv-area .mv-img-list li.note-hidden {
        display: none;
    }
}

#top .mv-area .mv-img-list img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

#top .mv-area .mv-img-list img {
    opacity: 0;
    animation: 1.5s zoomOut forwards;
}

@keyframes zoomOut {
    100% {
        transform: scale(1);
        opacity: 1;
    }

    0% {
        opacity: 0;
        transform: scale(1.2);
    }
}

@media screen and (max-width: 768px) {
    #top .mv-area {
        display: flex;
        flex-direction: column;
        height: auto;
        padding: 0;
        min-height: auto;
    }

    #top .mv-area::before {
        background: none;
    }

    #top .mv-area .mv-bg {
        order: 1;
    }

    #top .mv-area .mv-bg::before {
        display: none;
    }

    /*mv-catch-wrap------------------------*/
    #top .mv-area .mv-catch-wrap2 {
        order: 2;
    }

    #top .mv-area .mv-catch-wrap {
        top: auto;
        left: 0;
        right: 0;
        order: 2;
        bottom: 290px;
        position: static;
        margin-top: -15px;
    }

    #top .mv-area .mv-catch {
        color: #fff;
        font-size: 1.8rem;
        font-weight: bold;
        line-height: 1.5;
        letter-spacing: .05em;
        padding: 0 15px;
    }

    #top .mv-area .mv-catch.type2 {
        font-size: 2.2rem;
        font-weight: bold;
        gap: 2px;
    }

    #top .mv-area .mv-catch.type2 .s-size {
        font-size: 1.8rem;
        padding: 5px 10px 6px;
    }

    #top .mv-area .mv-catch.type2 p:nth-child(2) {
        margin: 5px 0 0;
    }

    #top .mv-area .mv-catch.type1 p {
        text-decoration: none;
        color: #333;
        font-size: 2.8rem;
        line-height: 1.45;
        letter-spacing: .07em;
    }

    #top .mv-area .img-box {
        width: 100% !important;
    }

    #top .mv-area .mv-img-list li {
        height: 24vw;
    }

    #top .sp-mv-catch {
        color: #333;
        font-size: 2.6rem;
        line-height: 1.45;
        letter-spacing: .07em;
        font-weight: bold;
        padding: 30px 20px;
    }
}




/* ----------------------------------------------------------
    img-animation
------------------------------------------------------------- */
#top .img-wrap {
    overflow: hidden;
    position: relative;
    z-index: 2;
}

#top .img-animation {
    animation: img-opacity 0.5s cubic-bezier(.7, 0, .2, 1);
}

#top .img-animation:before {
    animation: img-animation 1s cubic-bezier(.7, 0, .2, 1) forwards;
    background: linear-gradient(90deg, rgba(70, 176, 52, 1) 0%, rgba(143, 195, 32, 1) 100%);
    bottom: 0;
    content: '';
    left: 0;
    pointer-events: none;
    position: absolute;
    right: 0;
    top: 0;
    z-index: 1;
}

@keyframes img-opacity {
    0% {
        opacity: 0;
    }
}

@keyframes img-animation {
    100% {
        transform: translateX(100%);
    }
}





/* -------------------------------------------------------------
    main-banner-area
-------------------------------------------------------------- */
#top .main-banner-area {
    margin-top: 40px;
}

#top .main-banner-area ul {
    display: flex;
}

#top .main-banner-area li {
    padding: 10px;
    border: 1px solid #858585;
    width: calc((100% - 30px)/2);
    transition: all 0.3s;
    position: relative;
}

#top .main-banner-area li::after {
    bottom: -1px;
    content: '';
    display: inline-block;
    height: 3px;
    left: 0;
    margin: auto;
    position: absolute;
    -webkit-transition: all 0.3s;
    transition: all 0.4s;
    width: 0;
}

#top .main-banner-area li:first-child::after {
    background: var(--linkc);
}

#top .main-banner-area li:nth-child(2)::after {
    background: var(--wet);
}

@media screen and (min-width: 769px) {
    #top .main-banner-area li:hover::after  {
        width: 100%;
    }
}

#top .main-banner-area li a {
    display: flex;
    width: 100%;
    height: 100%;
    color: #333932;
    position: relative;
}

#top .main-banner-area li a::before {
    content: "";
    background: url("../img/cmn-arrow-1.svg") no-repeat top center / contain;
    display: block;
    position: absolute;
    width: 34px;
    height: 10px;
    right: 10px;
    bottom: 10px;
    transition: all 0.3s ease-in-out;
}

#top .main-banner-area li:nth-child(2) a::before {
    background-image: url("../img/cmn-arrow-blue.svg");
}

#top .main-banner-area li:first-child {
    margin: 0 30px 0 0;
}

@media screen and (min-width: 769px) {
    #top .main-banner-area li:hover a::before {
        right: 5px;
    }
}

#top .main-banner-area .main-banner-img {
    width: 210px;
    height: 230px;
    overflow: hidden;
    position: relative;
}

#top .main-banner-area .slick-slide {
    height: 230px;
}

#top .main-banner-area .main-banner-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

#top .main-banner-area .content-wrap {
    text-align: center;
    width: calc(100% - 210px - 45px);
    margin: 20px 0 0 31px;
    display: flex;
    flex-direction: column;
}

@media screen and (min-width: 769px) and (max-width: 1600px) {
    #top .main-banner-area .banner-logo {
        order: 2;
        margin: 10px 0 0;
    }
}

#top .main-banner-area .banner-logo img{
    width: 55px;
    height: 47.81px;
}

#top .main-banner-area .en-ttl {
    font-size: 1.3rem;
    font-family: 'heebo';
    letter-spacing: 2.5px;
    color: #333932;
    margin-top: 2px;
}

@media screen and (min-width: 769px) and (max-width: 1600px) {
    #top .main-banner-area .en-ttl {
        order: 3;
    }
}

#top .main-banner-area .ttl {
    font-weight: bold;
    font-size: 3rem;
    line-height: 1.2;
}

@media screen and (min-width: 769px) and (max-width: 1600px) {
    #top .main-banner-area .ttl {
        order: 1;
    }
}

#top .main-banner-area .catch {
    color: #999;
    margin-top: 10px;
    line-height: 1.5;
}

@media screen and (min-width: 769px) and (max-width: 1600px) {
    #top .main-banner-area .catch {
        order: 4;
    }
}

@media screen and (max-width: 768px) {
    #top .main-banner-area {
        margin-top: 15px;
        background-color: #E2E6E6;
        padding: 8px;
    }

    #top .main-banner-area .main-banner-img {
        display: none;
    }

    #top .main-banner-area li {
        background-color: #fff;
        border: none;
    }

    #top .main-banner-area .content-wrap {
        width: 100%;
        margin: 0;
    }

    #top .main-banner-area li {
        width: calc((100% - 5px)/2);
        padding: 0;
    }

    #top .main-banner-area li:first-child {
        margin: 0 5px 0 0;
    }

    #top .main-banner-area li:hover,
    #top .main-banner-area li:nth-child(2):hover{
        border: none;
    }

    #top .main-banner-area a {
        padding: 10px 10px 20px;
    }

    #top .main-banner-area .en-ttl {
        font-size: 1rem;
        letter-spacing: 1.5px;
    }

    #top .main-banner-area .ttl {
        font-size: 2rem;
    }

    #top .main-banner-area .catch {
        font-size: 1.3rem;
        text-align: left;
        letter-spacing: .09em;
    }

    #top .main-banner-area li a::before {
        width: 21px;
        height: 7px;
        right: 7px;
        bottom: 7px;
    }

    #top .main-banner-area .banner-logo {
        margin: 5px auto 2px;
    }
    
    #top .main-banner-area .banner-logo img{
        width: 48px;
        height: 41.72px;
    }

    #top .video-box .video {
        height: auto;
        width: 100%;
        object-fit: unset;
        aspect-ratio: 16/9;
    }
}

