@charset "utf-8";


/**
 * スマホ用設定
 */
@media ( width < 768px ) {

    #mv-slider {
        position: relative;
        margin: calc( 100vw * 144 / 780 ) auto 0;
        padding: 0;
        width: 100%;
        height: auto;
    }
    #mv-slider .swiper-slide {
        margin: 0 auto;
        padding: 0;
        width: 100%;
        height: auto;
    }
    #mv-slider .swiper-slide .mv-bg {
        margin: 0 auto;
        padding: 0;
        width: 100%;
        height: auto;
        background: #000;
    }
    #mv-slider .swiper-slide .mv-bg img {
        margin: 0 auto;
        padding: 0;
        width: 100%;
        height: auto;
        opacity: 0.7;
    }
    #mv-slider .mv-box {
        position: absolute;
        bottom: 10%;
        left: 4%;
        margin: 0;
        padding: 0;
        width: 96%;
        color: #fff;
        z-index: 1;
    }
    #mv-slider .mv-box h1 {
        margin: 0;
        padding: 0;
        font-size: 14.0vw;
        font-weight: 600;
        font-family: var(--font-alphabet);
        line-height: 1.0;
    }
    #mv-slider .mv-box p {
        margin: 0;
        padding: 0;
        font-size: 4.8vw;
        font-weight: 700;
        line-height: calc( 33 / 23 );
    }
    #mv-slider .mv-icon {
        position: absolute;
        bottom: 28.5%;
        left: 46%;
        margin: 0;
        padding: 0;
        width: 32.0vw;
        height: auto;
        rotate: -7deg;
        z-index: 1;
    }
    #mv-slider .mv-icon img {
        margin: 0;
        padding: 0;
        width: 100%;
        height: auto;
    }

    #about {
        margin: 0;
        padding: 8.0vw 0 0;
        width: 100%;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 8.0vw 0;
        z-index: 0;
    }
    #about::before {
        position: absolute;
        content: "";
        left: 0;
        bottom: 0;
        display: block;
        margin: 0;
        padding: 0;
        width: 92%;
        height: 100%;
        background: url(../images/top-about-bg.webp) no-repeat center / cover;
        z-index: -1;
    }
    #about .about-info {
        margin: 0;
        padding: 0 12% 8.0vw 5%;
        width: 100%;
        order: 2;
    }
    #about .about-info h2 {
        margin: 0;
        padding: 0;
    }
    #about .about-info h2 span:nth-of-type(1) {
        display: block;
        margin: 0;
        padding: 0;
        color: #fff;
        font-size: 4.0vw;
        font-weight: 700;
        text-align: left;
        line-height: 1.0;
    }
    #about .about-info h2 span:nth-of-type(2) {
        display: block;
        margin: 0;
        padding: 0;
        color: #fff;
        font-size: 16.0vw;
        font-weight: 600;
        font-family: var(--font-alphabet);
        text-align: left;
        line-height: calc( 130 / 84 );
    }
    #about .about-info h3 {
        margin: 0;
        padding: 0;
        color: #fff;
        font-size: 6.0vw;
        font-weight: 700;
        text-align: left;
        line-height: calc( 57 / 48 );
    }
    #about .about-info p {
        margin: 1.0em 0 0;
        padding: 0;
        color: #fff;
        font-size: 3.6vw;
        font-weight: 400;
        text-align: left;
        line-height: calc( 55 / 30 );
    }
    #about .about-info .btn-black {
        position: relative;
        display: grid;
        place-items: center;
        margin: 4.0vw auto 0;
        padding: 0;
        width: 80%;
        height: auto;
        aspect-ratio: 288 / 60;
        color: #fff;
        font-size: 4.0vw;
        font-weight: 500;
        text-align: center;
        line-height: 1.0;
        background: #000;
    }
    #about .about-info .btn-black::after {
        position: absolute;
        content: "";
        top: calc( 50% - 0.2em - 1px );
        right: 1.5em;
        width: 0.4em;
        height: auto;
        aspect-ratio: 1 / 1;
        border-right: 2px solid #fff;
        border-bottom: 2px solid #fff;
        rotate: -45deg;
    }
    #about .about-pic {
        margin: 0 0 0 auto;
        padding: 0;
        width: 92%;
        height: auto;
        order: 1;
    }

    #why {
        margin: 30.0vw auto 0;
        padding: 0 5% 12.0vw;
        width: 100%;
        background: url(../images/top-why-bg.webp) no-repeat center / cover;
    }
    #why > h2 {
        margin: 0;
        padding: 0;
        translate: 0 -65%;
    }
    #why > h2 span:nth-of-type(1) {
        display: block;
        margin: 0 0 1.0em;
        padding: 0;
        color: #000;
        font-size: 4.0vw;
        font-weight: 700;
        text-align: left;
        line-height: 1.0;
    }
    #why > h2 span:nth-of-type(2) {
        display: block;
        margin: 0;
        padding: 0;

        font-size: 14.0vw;
        font-weight: 600;
        font-family: var(--font-alphabet);
        text-align: left;
        line-height: 1.0;
        background: linear-gradient( to bottom, #000 43%, #4d4d4d 43% );

        -webkit-background-clip: text;
        background-clip: text;
        -webkit-text-fill-color: transparent;
        color: transparent;
    }
    #why > h3 {
        margin: -8.0vw auto 0;
        padding: 0;
        color: #fff;
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        justify-content: center;
        gap: 4.0vw 0;
    }
    #why > h3 span:nth-of-type(1) {
        display: block;
        margin: 0;
        padding: 0;
        font-size: 6.0vw;
        font-weight: 700;
        text-align: left;
        line-height: 1.0;
    }
    #why > h3 span:nth-of-type(2) {
        display: block;
        margin: 0;
        padding: 0;
        font-size: 3.6vw;
        font-weight: 400;
        text-align: left;
        line-height: calc( 26 / 16 );
    }
    #why .why-grid {
        margin: 4.0vw auto 0;
        padding: 0;
        width: 100%;
        display: grid;
        grid-template-columns: 1fr;
        gap: 4.0vw 0;
    }
    #why .why-grid .why-item {
        margin: 0;
        padding: 0 0 4.0vw;
        width: 100%;
        background: #fff;
    }
    #why .why-grid .why-item .why-pic {
        position: relative;
        margin: 0;
        padding: 0;
        width: 100%;
        height: auto;
        aspect-ratio: 392 / 200;
    }
    #why .why-grid .why-item .why-pic figcaption {
        position: absolute;
        top: 0;
        left: 0;
        display: grid;
        place-items: center;
        width: 12.0vw;
        height: auto;
        aspect-ratio: 1 / 1;
        color: #fff;
        font-size: 8.0vw;
        font-weight: 600;
        font-family: var(--font-alphabet);
        lina-height: 1.0;
        background: #d00b0c;
    }
    #why .why-grid .why-item .why-pic img {
        margin: 0;
        padding: 0;
        width: 100%;
        height: 100%;
        object-fit: cover;
    }
    #why .why-grid .why-item h3 {
        margin: 0.4em 0 0;
        padding: 0;
        font-size: 4.8vw;
        font-weight: 700;
        text-align: center;
        line-height: calc( 37 / 28 );
    }
    #why .why-grid .why-item p {
        margin: 0.6em auto 0;
        padding: 0;
        width: 90%;
        font-size: 3.6vw;
        font-weight: 400;
        text-align: left;
        line-height: calc( 26 / 16 );
    }
    #why .btn-red {
        position: relative;
        display: grid;
        place-items: center;
        margin: 6.0vw auto 0;
        padding: 0;
        width: 80%;
        height: auto;
        aspect-ratio: 288 / 60;
        color: #fff;
        font-size: 4.0vw;
        font-weight: 500;
        text-align: center;
        line-height: 1.0;
        background: #d00b0c;
    }
    #why .btn-red::after {
        position: absolute;
        content: "";
        top: calc( 50% - 0.2em - 1px );
        right: 1.5em;
        width: 0.4em;
        height: auto;
        aspect-ratio: 1 / 1;
        border-right: 2px solid #fff;
        border-bottom: 2px solid #fff;
        rotate: -45deg;
    }

    #introduction {
        margin: 12.0vw auto 0;
        padding: 0;
        width: 100%;
    }
    #introduction .intro-pic {
        margin: 0 auto 0 0;
        padding: 0;
        width: 92%;
        height: auto;
        aspect-ratio: 1572 / 604;
    }
    #introduction .intro-pic img {
        margin: 0;
        padding: 0;
        width: 100%;
        height: 100%;
        object-fit: cover;
    }
    #introduction .intro-box {
        position: relative;
        margin: -21vw 0 0 auto;
        padding: 8.0vw;
        width: 92%;
        background: url(../images/top-intro-bg.webp) no-repeat center / cover;
    }
    #introduction .intro-box h2 {
        margin: 0;
        padding: 0;
        color: #fff;
    }
    #introduction .intro-box h2 span:nth-of-type(1) {
        display: block;
        margin: 0 0 1.0em;
        padding: 0;
        font-size: 4.0vw;
        font-weight: 700;
        text-align: left;
        line-height: 1.0;
    }
    #introduction .intro-box h2 span:nth-of-type(2) {
        display: block;
        margin: 0;
        padding: 0;
        font-size: 12.0vw;
        font-weight: 600;
        font-family: var(--font-alphabet);
        text-align: left;
        line-height: 1.0;
    }
    #introduction .intro-box h3 {
        margin: 0.4em 0 0;
        padding: 0;
        color: #fff;
        font-size: 4.8vw;
        font-weight: 700;
        text-align: left;
        line-height: calc( 57 / 48 );
    }
    #introduction .intro-box p {
        margin: 0.6em 0 0;
        padding: 0;
        color: #fff;
        font-size: 3.6vw;
        font-weight: 400;
        text-align: left;
        line-height: calc( 40 / 16 );
    }
    #introduction .intro-box .btn-black {
        position: relative;
        display: grid;
        place-items: center;
        margin: 6.0vw auto 0 0;
        padding: 0;
        width: 80%;
        height: auto;
        aspect-ratio: 288 / 60;
        color: #fff;
        font-size: 4.0vw;
        font-weight: 500;
        text-align: center;
        line-height: 1.0;
        background: #000;
    }
    #introduction .intro-box .btn-black::after {
        position: absolute;
        content: "";
        top: calc( 50% - 0.2em - 1px );
        right: 20px;
        width: 0.4em;
        height: auto;
        aspect-ratio: 1 / 1;
        border-right: 2px solid #fff;
        border-bottom: 2px solid #fff;
        rotate: -45deg;
    }

    #achievements {
        margin: 0 auto;
        padding: 104px 0;
        width: 100%;
    }
    #achievements > h2 {
        margin: 0;
        padding: 0 5%;
    }
    #achievements > h2 span:nth-of-type(1) {
        display: block;
        margin: 0 0 1.0em;
        padding: 0;
        font-size: 4.0vw;
        font-weight: 700;
        text-align: left;
        line-height: 1.0;
    }
    #achievements > h2 span:nth-of-type(2) {
        display: block;
        margin: 0;
        padding: 0;
        font-size: 12.0vw;
        font-weight: 600;
        font-family: var(--font-alphabet);
        text-align: left;
        line-height: 1.0;
    }
    #achievements > h3 {
        margin: 0.4em 0 0;
        padding: 0 5%;
        font-size: 4.8vw;
        font-weight: 700;
        text-align: left;
        line-height: calc( 57 / 48 );
    }
    #achievements > p {
        margin: 0.6em 0 0;
        padding: 0 5%;
        font-size: 3.6vw;
        font-weight: 400;
        text-align: left;
        line-height: calc( 26 / 16 );
    }
    #achievements > .btn-black.pos1 {
        display: none;
    }
    #achievements > .btn-black {
        position: relative;
        display: grid;
        place-items: center;
        margin: 6.0vw auto 0;
        padding: 0;
        width: 80%;
        height: auto;
        aspect-ratio: 288 / 60;
        color: #fff;
        font-size: 4.0vw;
        font-weight: 500;
        text-align: center;
        line-height: 1.0;
        background: #000;
    }
    #achievements > .btn-black::after {
        position: absolute;
        content: "";
        top: calc( 50% - 0.2em - 1px );
        right: 1.5em;
        width: 0.4em;
        height: auto;
        aspect-ratio: 1 / 1;
        border-right: 2px solid #fff;
        border-bottom: 2px solid #fff;
        rotate: -45deg;
    }

    #achievements-slider {
        position: relative;
        margin: 8.0vw auto;
        padding: 0 0 12.0vw;
        width: 100%;
        background: #fff;
        overflow: hidden;
    }
    #achievements-slider > .swiper-wrapper {
    }
    #achievements-slider > .swiper-wrapper > .swiper-slide {
        margin: 0;
        padding: 4.0vw;
        background: #f8f8f8;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 4.0vw 0;
    }
    #achievements-slider > .swiper-wrapper > .swiper-slide .achievements-pic {
        margin: 0;
        padding: 0;
        width: 100%;
        height: auto;
        aspect-ratio: 472 / 326;
    }
    #achievements-slider > .swiper-wrapper > .swiper-slide .achievements-pic img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }
    #achievements-slider > .swiper-wrapper > .swiper-slide .achievements-info {
        margin: 0;
        padding: 0;
        width: 100%;
    }
    #achievements-slider > .swiper-wrapper > .swiper-slide .achievements-info .no {
        margin: 0;
        padding: 0.2em 0.6em;
        width: max-content;
        color: #fff;
        font-size: 4.0vw;
        font-weight: 600;
        font-family: var(--font-alphabet);
        line-height: 1.0;
        background: #d00b0c;
    }
    #achievements-slider > .swiper-wrapper > .swiper-slide .achievements-info h3 {
        margin: 0.2em 0 4.0vw;
        padding: 0 0 4.0vw;
        font-size: 4.8vw;
        font-weight: 500;
        text-align: left;
        border-bottom: 1px solid #d3d3d3;
    }
    #achievements-slider > .swiper-wrapper > .swiper-slide .achievements-info p {
        margin: 0;
        padding: 0;
        font-size: 3.6vw;
        font-weight: 400;
        text-align: left;
        line-height: calc( 28 / 16 );
    }
    #achievements-slider .swiper-button-prev svg,
    #achievements-slider .swiper-button-next svg {
        display: none;
    }
    #achievements-slider .swiper-button-prev {
        top: calc( 50% );
        left: 5%;
        width: 10.0vw;
        height: 10.0vw;
        background: #d00b0c;
        transition: opacity 0.5s ease-out;
    }
    #achievements-slider .swiper-button-prev::before {
        position: absolute;
        content: "";
        top: calc( 35% - 2px );
        left: 35%;
        width: 30%;
        height: 30%;
        border-left: 4px solid #fff;
        border-bottom: 4px solid #fff;
        rotate: 45deg;
        transition: border 0.5s ease-out;
    }
    #achievements-slider .swiper-button-prev::after {
        content: none;
    }
    #achievements-slider .swiper-button-next {
        top: calc( 50% );
        right: 5%;
        width: 10.0vw;
        height: 10.0vw;
        background: #d00b0c;
        transition: opacity 0.5s ease-out;
    }
    #achievements-slider .swiper-button-next::before {
        position: absolute;
        content: "";
        top: calc( 35% - 2px );
        right: 35%;
        width: 30%;
        height: 30%;
        border-right: 4px solid #fff;
        border-bottom: 4px solid #fff;
        rotate: -45deg;
        transition: border 0.5s ease-out;
    }
    #achievements-slider .swiper-button-next::after {
        content: none;
    }
    @media ( hover: hover ) {
        #achievements-slider .swiper-button-prev:hover {
            opacity: 0.5;
        }
        #achievements-slider .swiper-button-prev:hover::before {
            border-left: 4px solid #fff;
            border-bottom: 4px solid #fff;
        }
        #achievements-slider .swiper-button-next:hover {
            opacity: 0.5;
        }
        #achievements-slider .swiper-button-next:hover::before {
            border-right: 4px solid #fff;
            border-bottom: 4px solid #fff;
        }
    }
    #achievements-slider .swiper-pagination {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 0 4.0vw;
    }
    #achievements-slider .swiper-pagination .swiper-pagination-bullet {
        margin: 0;
        width: 1.0vw;
        height: 1.0vw;
        background: #000;
        opacity: 1.0;
        border-radius: 0;
    }
    #achievements-slider .swiper-pagination .swiper-pagination-bullet-active {
        background: #d00b0c;
    }

    #recruit {
        margin: 0 auto;
        padding: 12.0vw 0 0;
        width: 100%;
    }
    #recruit .recruit-box {
        position: relative;
        margin: 0 auto;
        padding: 0;
        width: 100%;
        height: auto;
        aspect-ratio: 780 / 1044;
        background: #d00b0c;
        z-index: 0;
    }
    #recruit .recruit-box::before {
        position: absolute;
        content: "";
        top: 32%;
        right: 5%;
        width: 54%;
        height: auto;
        aspect-ratio: 390 / 132;
        background: url(../images/top-recruit-txt.svg) no-repeat center / contain;
        opacity: 0.4;
        z-index: 3;
    }
    #recruit .recruit-box::after {
        position: absolute;
        content: "";
        top: 0;
        left: 0;
        width: 100%;
        height: auto;
        aspect-ratio: 1560 / 832;
        background: url(../images/top-recruit-pic-sp.webp) no-repeat center / cover;
        z-index: 2;
    }
    #recruit .recruit-box .recruit-info {
        position: absolute;
        top: 42%;
        left: 5%;
        width: 90%;
        z-index: 1;
    }
    #recruit .recruit-box .recruit-info h2 {
        margin: 0;
        padding: 0;
        color: #fff;
        font-size: 8.0vw;
        font-weight: 700;
        text-align: left;
        line-height: calc( 57 / 50 );
    }
    #recruit .recruit-box .recruit-info p {
        margin: 1.0em 0 0;
        padding: 0;
        color: #fff;
        font-size: 3.6vw;
        font-weight: 400;
        text-align: left;
        line-height: calc( 55 / 30 );
    }
    #recruit .recruit-box .recruit-info .btn-black {
        position: relative;
        display: grid;
        place-items: center;
        margin: 6.0vw auto 0;
        padding: 0;
        width: 80%;
        height: auto;
        aspect-ratio: 288 / 60;
        color: #fff;
        font-size: 4.0vw;
        font-weight: 500;
        text-align: center;
        line-height: 1.0;
        background: #000;
    }
    #recruit .recruit-box .recruit-info .btn-black::after {
        position: absolute;
        content: "";
        top: calc( 50% - 0.2em - 1px );
        right: 1.0em;
        width: 0.4em;
        height: auto;
        aspect-ratio: 1 / 1;
        border-right: 2px solid #fff;
        border-bottom: 2px solid #fff;
        rotate: -45deg;
    }

    #news {
        margin: 0 auto;
        padding: 12.0vw 5%;
        width: 100%;
    }
    #news > .news-head {
        margin: 0 auto;
        padding: 0;
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        justify-content: center;
        gap: 2.0vw 0;
    }
    #news > .news-head h2 {
        margin: 0;
        padding: 0;
    }
    #news > .news-head h2 span:nth-of-type(1) {
        display: block;
        margin: 0 0 1.0em;
        padding: 0;
        font-size: 4.0vw;
        font-weight: 700;
        text-align: left;
        line-height: 1.0;
    }
    #news > .news-head h2 span:nth-of-type(2) {
        display: block;
        margin: 0;
        padding: 0;
        font-size: 12.0vw;
        font-weight: 600;
        font-family: var(--font-alphabet);
        text-align: left;
        line-height: 1.0;
    }
    #news > .news-head h3 {
        margin: 0;
        padding: 0;
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        justify-content: center;
    }
    #news > .news-head h3 span:nth-of-type(1) {
        margin: 0;
        padding: 0;
        font-size: 6.0vw;
        font-weight: 700;
        text-align: left;
        line-height: calc( 57 / 33);
    }
    #news > .news-head h3 span:nth-of-type(2) {
        margin: 0;
        padding: 0;
        font-size: 3.6vw;
        font-weight: 400;
        text-align: left;
        line-height: calc( 55 / 30 );
    }
    #news > .news-tab {
        margin: 8.0vw auto 0;
        padding: 0;
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        justify-content: flex-start;
        gap: 0 24px;
    }
    #news > .news-tab > a {
        display: block;
        margin: 0;
        padding: 0 0 1.0em;
        width: 45.0%;
        height: auto;
        aspect-ratio: 288 / 52;
        font-size: 4.0vw;
        font-weight: 500;
        text-align: center;
        display: flex;
        align-items: flex-start;
        justify-content: center;
        border-bottom: 2px solid #dddddd;
    }
    #news > .news-tab > a.active {
        border-bottom: 2px solid #d00b0c;
    }
    #news > .news-grid {
        margin: 8.0vw auto 0;
        padding: 0;
        display: grid;
        grid-template-columns: 1fr;
        gap: 8.0vw 0;
    }
    #news > .news-grid .news-item {
        display: block;
        margin: 0;
        padding: 0;
        width: 100%;
    }
    #news > .news-grid .news-item .news-pic {
        position: relative;
        margin: 0;
        padding: 0;
        width: 100%;
        height: auto;
        aspect-ratio: 392 / 221;
    }
    #news > .news-grid .news-item .news-pic img {
        margin: 0;
        padding: 0;
        width: 100%;
        height: 100%;
        object-fit: cover;
    }
    #news > .news-grid .news-item .news-pic figcaption {
        position: absolute;
        top: 0;
        left: 0;
        width: max-content;
        margin: 0;
        padding: 0.4em 0.8em;
        color: #fff;
        font-size: 2.8vw;
        font-weight: 500;
        line-height: 1.0;
        background: #d00b0c;
    }
    #news > .news-grid .news-item h3 {
        margin: 0.5em 0 0;
        padding: 0;
        font-size: 4.0vw;
        font-weight: 500;
        text-align: left;
        line-height: calc( 25 / 19 );
    }
    #news > .news-grid .news-item p {
        margin: 0.5em 0 0;
        padding: 0;
        font-size: 3.6vw;
        font-weight: 400;
        text-align: left;
        line-height: calc( 22 / 16 );
    }
    #news > .news-grid .news-item .date {
        margin: 2.0vw 0 0;
        padding: 0;
        font-size: 2.8vw;
        font-weight: 400;
        text-align: left;
        line-height: 1.0;
        display: flex;
        align-items: center;
        justify-content: flex-start;
        gap: 0 8px;
    }
    #news > .news-grid .news-item .date::before {
        display: block;
        content: "";
        margin: 0;
        padding: 0;
        width: 1.2em;
        height: auto;
        aspect-ratio: 1 / 1;
        background: url(../images/icon-clock-red.svg) no-repeat center / contain;
    }
    #news > .btn-news {
        display: flex;
        align-items: center;
        justify-content: flex-end;
        gap: 0 2.0vw;
        margin: 6.0vw 0 0 auto;
        width: max-content;
        font-size: 4.0vw;
        font-weight: 500;
        line-height: 1.0;
    }
    #news > .btn-news::after {
        display: block;
        content: "";
        width: 0.4em;
        height: auto;
        aspect-ratio: 1 / 1;
        border-right: 2px solid #d00b0c;
        border-bottom: 2px solid #d00b0c;
        rotate: -45deg;
    }

    #top-splash {
        position: fixed;
        top: 0;
        left: 0;
        margin: 0;
        padding: 0;
        width: 100%;
        height: 100vh;
        height: 100dvh;
        background: #fff;
        transform-origin: top left;
        z-index: 999;
        animation: anim-splash1 5.0s ease forwards;
    }
    #top-splash figure {
        display: grid;
        place-items: center;
        margin: 0;
        padding: 0;
        width: 100%;
        height: 100%;
        animation: anim-splash2 5.0s ease forwards;
    }
    #top-splash figure img {
        margin: 0;
        padding: 0;
        width: 96%;
        height: 96%;
        object-fit: contain;
    }

}


/**
 * PC用設定
 */
@media ( width >= 768px ) {

    #mv-slider {
        position: relative;
        margin: 0 auto;
        padding: 2.0vw 2.0vw 0;
        width: 100%;
        height: auto;
    }
    #mv-slider .swiper-slide {
        margin: 0 auto;
        padding: 0;
        width: 100%;
        height: auto;
    }
    #mv-slider .swiper-slide .mv-bg {
        margin: 0 auto;
        padding: 0;
        width: 100%;
        height: auto;
        background: #000;
    }
    #mv-slider .swiper-slide .mv-bg img {
        margin: 0 auto;
        padding: 0;
        width: 100%;
        height: auto;
        opacity: 0.7;
    }
    #mv-slider .mv-box {
        position: absolute;
        top: 36%;
        left: 9%;
        margin: 0;
        padding: 0;
        width: 82%;
        color: #fff;
        z-index: 1;
    }
    #mv-slider .mv-box h1 {
        margin: 0;
        padding: 0;
        font-size: calc( 130 * 100vw / 1920 );
        font-weight: 600;
        font-family: var(--font-alphabet);
        line-height: 1.0;
    }
    #mv-slider .mv-box p {
        margin: 0;
        padding: 0;
        font-size: calc( 23 * 100vw / 1920 );
        font-weight: 700;
        line-height: calc( 33 / 23 );
    }
    #mv-slider .mv-icon {
        position: absolute;
        top: 28%;
        left: 29%;
        margin: 0;
        padding: 0;
        width: calc( 297 * 100vw / 1920 );
        height: auto;
        rotate: -7deg;
        z-index: 1;
    }
    #mv-slider .mv-icon img {
        margin: 0;
        padding: 0;
        width: 100%;
        height: auto;
    }

    #about {
        margin: 0;
        padding: 80px 0;
        width: 100%;
        display: flex;
        align-items: flex-start;
        justify-content: space-between;
        z-index: 0;
    }
    #about::before {
        position: absolute;
        content: "";
        left: 0;
        bottom: 0;
        display: block;
        margin: 0;
        padding: 0;
        width: calc( 1156 * 100vw / 1920 );
        height: calc( 100% + 410 * 100vw / 1840 );
        background: url(../images/top-about-bg.webp) no-repeat center / cover;
        z-index: -1;
    }
    #about .about-info {
        margin: 0;
        padding: 0 0 0 max( 5%, calc( 50vw - 640px ) );
        width: 56%;
    }
    #about .about-info h2 {
        margin: 0;
        padding: 0;
    }
    #about .about-info h2 span:nth-of-type(1) {
        display: block;
        margin: 0;
        padding: 0;
        color: #fff;
        font-size: 19px;
        font-weight: 700;
        text-align: left;
        line-height: 1.0;
    }
    #about .about-info h2 span:nth-of-type(2) {
        display: block;
        margin: 0;
        padding: 0;
        color: #fff;
        font-size: 84px;
        font-weight: 600;
        font-family: var(--font-alphabet);
        text-align: left;
        line-height: calc( 130 / 84 );
    }
    #about .about-info h3 {
        margin: 0;
        padding: 0;
        color: #fff;
        font-size: 48px;
        font-weight: 700;
        text-align: left;
        line-height: calc( 57 / 48 );
    }
    #about .about-info p {
        margin: 1.0em 0 0;
        padding: 0;
        color: #fff;
        font-size: 16px;
        font-weight: 400;
        text-align: left;
        line-height: calc( 40 / 16 );
    }
    #about .about-info .btn-black {
        position: relative;
        display: grid;
        place-items: center;
        margin: 32px auto 0 0;
        padding: 0;
        width: 288px;
        height: auto;
        aspect-ratio: 288 / 60;
        color: #fff;
        font-size: 19px;
        font-weight: 500;
        text-align: center;
        line-height: 1.0;
        background: #000;
    }
    #about .about-info .btn-black::after {
        position: absolute;
        content: "";
        top: calc( 50% - 0.2em - 1px );
        right: 20px;
        width: 0.4em;
        height: auto;
        aspect-ratio: 1 / 1;
        border-right: 2px solid #fff;
        border-bottom: 2px solid #fff;
        rotate: -45deg;
    }
    #about .about-pic {
        margin: 0;
        padding: 0;
        width: 44%;
        height: auto;
    }

    #why {
        margin: 156px auto 0;
        padding: 0 max( 5%, calc( 50vw - 640px ) ) 64px;
        width: 100%;
        background: url(../images/top-why-bg.webp) no-repeat center / cover;
    }
    #why > h2 {
        margin: 0;
        padding: 0;
        translate: 0 -60%;
    }
    #why > h2 span:nth-of-type(1) {
        display: block;
        margin: 0 0 1.0em;
        padding: 0;
        color: #000;
        font-size: 19px;
        font-weight: 700;
        text-align: left;
        line-height: 1.0;
    }
    #why > h2 span:nth-of-type(2) {
        display: block;
        margin: 0;
        padding: 0;

        font-size: 84px;
        font-weight: 600;
        font-family: var(--font-alphabet);
        text-align: left;
        line-height: 1.0;
        background: linear-gradient( to bottom, #000 43%, #4d4d4d 43% );

        -webkit-background-clip: text;
        background-clip: text;
        -webkit-text-fill-color: transparent;
        color: transparent;
    }
    #why > h3 {
        margin: -56px auto 0;
        padding: 0;
        color: #fff;
        display: flex;
        align-items: center;
        justify-content: flex-start;
        gap: 0 48px;
    }
    #why > h3 span:nth-of-type(1) {
        display: block;
        margin: 0;
        padding: 0;
        font-size: 48px;
        font-weight: 700;
        text-align: left;
        line-height: 1.0;
    }
    #why > h3 span:nth-of-type(2) {
        display: block;
        margin: 0;
        padding: 0;
        font-size: 16px;
        font-weight: 400;
        text-align: left;
        line-height: calc( 26 / 16 );
    }
    #why .why-grid {
        margin: 25px auto 0;
        padding: 0;
        width: 100%;
        display: grid;
        grid-template-columns: repeat( 3, 1fr );
        gap: 0 24px;
    }
    #why .why-grid .why-item {
        margin: 0;
        padding: 0 0 24px;
        width: 100%;
        background: #fff;
    }
    #why .why-grid .why-item .why-pic {
        position: relative;
        margin: 0;
        padding: 0;
        width: 100%;
        height: auto;
        aspect-ratio: 392 / 200;
    }
    #why .why-grid .why-item .why-pic figcaption {
        position: absolute;
        top: 0;
        left: 0;
        display: grid;
        place-items: center;
        width: 64px;
        height: auto;
        aspect-ratio: 1 / 1;
        color: #fff;
        font-size: 40px;
        font-weight: 600;
        font-family: var(--font-alphabet);
        lina-height: 1.0;
        background: #d00b0c;
    }
    #why .why-grid .why-item .why-pic img {
        margin: 0;
        padding: 0;
        width: 100%;
        height: 100%;
        object-fit: cover;
    }
    #why .why-grid .why-item h3 {
        margin: 0.4em 0 0;
        padding: 0;
        font-size: 28px;
        font-weight: 700;
        text-align: center;
        line-height: calc( 37 / 28 );
    }
    #why .why-grid .why-item p {
        margin: 0.6em auto 0;
        padding: 0;
        width: 90%;
        font-size: 16px;
        font-weight: 400;
        text-align: left;
        line-height: calc( 26 / 16 );
    }
    #why .btn-red {
        position: relative;
        display: grid;
        place-items: center;
        margin: 32px auto 0;
        padding: 0;
        width: 288px;
        height: auto;
        aspect-ratio: 288 / 60;
        color: #fff;
        font-size: 19px;
        font-weight: 500;
        text-align: center;
        line-height: 1.0;
        background: #d00b0c;
    }
    #why .btn-red::after {
        position: absolute;
        content: "";
        top: calc( 50% - 0.2em - 1px );
        right: 20px;
        width: 0.4em;
        height: auto;
        aspect-ratio: 1 / 1;
        border-right: 2px solid #fff;
        border-bottom: 2px solid #fff;
        rotate: -45deg;
    }

    #introduction {
        margin: 96px auto 0;
        padding: 0;
        width: 100%;
    }
    #introduction .intro-pic {
        margin: 0 auto 0 0;
        padding: 0;
        width: calc( 1572 * 100vw / 1920 );
        height: auto;
        aspect-ratio: 1572 / 604;
    }
    #introduction .intro-pic img {
        margin: 0;
        padding: 0;
        width: 100%;
        height: 100%;
        object-fit: cover;
    }
    #introduction .intro-box {
        position: relative;
        margin: -21vw 0 0 auto;
        padding: 64px 80px;
        width: calc( 1400 * 100vw / 1920 );
        background: url(../images/top-intro-bg.webp) no-repeat center / cover;
    }
    #introduction .intro-box h2 {
        margin: 0;
        padding: 0;
        color: #fff;
    }
    #introduction .intro-box h2 span:nth-of-type(1) {
        display: block;
        margin: 0 0 1.0em;
        padding: 0;
        font-size: 19px;
        font-weight: 700;
        text-align: left;
        line-height: 1.0;
    }
    #introduction .intro-box h2 span:nth-of-type(2) {
        display: block;
        margin: 0;
        padding: 0;
        font-size: 84px;
        font-weight: 600;
        font-family: var(--font-alphabet);
        text-align: left;
        line-height: 1.0;
    }
    #introduction .intro-box h3 {
        margin: 0.4em 0 0;
        padding: 0;
        color: #fff;
        font-size: 48px;
        font-weight: 700;
        text-align: left;
        line-height: calc( 57 / 48 );
    }
    #introduction .intro-box p {
        margin: 0.6em 0 0;
        padding: 0;
        color: #fff;
        font-size: 16px;
        font-weight: 400;
        text-align: left;
        line-height: calc( 40 / 16 );
    }
    #introduction .intro-box .btn-black {
        position: relative;
        display: grid;
        place-items: center;
        margin: 32px auto 0 0;
        padding: 0;
        width: 288px;
        height: auto;
        aspect-ratio: 288 / 60;
        color: #fff;
        font-size: 19px;
        font-weight: 500;
        text-align: center;
        line-height: 1.0;
        background: #000;
    }
    #introduction .intro-box .btn-black::after {
        position: absolute;
        content: "";
        top: calc( 50% - 0.2em - 1px );
        right: 20px;
        width: 0.4em;
        height: auto;
        aspect-ratio: 1 / 1;
        border-right: 2px solid #fff;
        border-bottom: 2px solid #fff;
        rotate: -45deg;
    }

    #achievements {
        margin: 0 auto;
        padding: 104px 0;
        width: 100%;
    }
    #achievements > h2 {
        margin: 0;
        padding: 0 max( 5%, calc( 50vw - 640px ) );
        display: flex;
        align-items: center;
        justif-content: flex-start;
        gap: 0 24px;
    }
    #achievements > h2 span:nth-of-type(1) {
        display: block;
        margin: 0 0 1.0em;
        padding: 0;
        font-size: 19px;
        font-weight: 700;
        text-align: left;
        line-height: 1.0;
        order: 2;
    }
    #achievements > h2 span:nth-of-type(2) {
        display: block;
        margin: 0;
        padding: 0;
        font-size: 84px;
        font-weight: 600;
        font-family: var(--font-alphabet);
        text-align: left;
        line-height: 1.0;
        order: 1;
    }
    #achievements > h3 {
        margin: 0.4em 0 0;
        padding: 0 max( 5%, calc( 50vw - 640px ) );
        font-size: 48px;
        font-weight: 700;
        text-align: left;
        line-height: calc( 57 / 48 );
    }
    #achievements > p {
        margin: 0.6em 0 0;
        padding: 0 max( 5%, calc( 50vw - 640px ) );
        font-size: 16px;
        font-weight: 400;
        text-align: left;
        line-height: calc( 26 / 16 );
    }
    #achievements > .btn-black.pos2 {
        display: none;
    }
    #achievements > .btn-black {
        position: relative;
        display: grid;
        place-items: center;
        margin: -60px max( 5%, calc( 50vw - 640px ) ) 0 auto;
        padding: 0;
        width: 288px;
        height: auto;
        aspect-ratio: 288 / 60;
        color: #fff;
        font-size: 19px;
        font-weight: 500;
        text-align: center;
        line-height: 1.0;
        background: #000;
    }
    #achievements > .btn-black::after {
        position: absolute;
        content: "";
        top: calc( 50% - 0.2em - 1px );
        right: 20px;
        width: 0.4em;
        height: auto;
        aspect-ratio: 1 / 1;
        border-right: 2px solid #fff;
        border-bottom: 2px solid #fff;
        rotate: -45deg;
    }

    #achievements-slider {
        position: relative;
        margin: 40px auto;
        padding: 0 0 60px;
        width: 100%;
        background: #fff;
        overflow: hidden;
    }
    #achievements-slider > .swiper-wrapper {
    }
    #achievements-slider > .swiper-wrapper > .swiper-slide {
        margin: 0;
        padding: 24px;
        height: auto;
        aspect-ratio: 1016 / 376;
        background: #f8f8f8;
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 0 24px;
    }
    #achievements-slider > .swiper-wrapper > .swiper-slide .achievements-pic {
        margin: 0;
        padding: 0;
        width: 50%;
        height: auto;
        aspect-ratio: 472 / 326;
    }
    #achievements-slider > .swiper-wrapper > .swiper-slide .achievements-pic img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }
    #achievements-slider > .swiper-wrapper > .swiper-slide .achievements-info {
        margin: 0;
        padding: 0;
        width: 50%;
    }
    #achievements-slider > .swiper-wrapper > .swiper-slide .achievements-info .no {
        margin: 0;
        padding: 0.2em 0.6em;
        width: max-content;
        color: #fff;
        font-size: 23px;
        font-weight: 600;
        font-family: var(--font-alphabet);
        line-height: 1.0;
        background: #d00b0c;
    }
    #achievements-slider > .swiper-wrapper > .swiper-slide .achievements-info h3 {
        margin: 0.2em 0 25px;
        padding: 0 0 25px;
        font-size: 28px;
        font-weight: 500;
        text-align: left;
        border-bottom: 1px solid #d3d3d3;
    }
    #achievements-slider > .swiper-wrapper > .swiper-slide .achievements-info p {
        margin: 0;
        padding: 0;
        font-size: 16px;
        font-weight: 400;
        text-align: left;
        line-height: calc( 28 / 16 );
    }
    #achievements-slider .swiper-button-prev svg,
    #achievements-slider .swiper-button-next svg {
        display: none;
    }
    #achievements-slider .swiper-button-prev {
        top: calc( 50% - 60px + 28px );
        left: 13.5%;
        width: 56px;
        height: 56px;
        background: #d00b0c;
        transition: opacity 0.5s ease-out;
    }
    #achievements-slider .swiper-button-prev::before {
        position: absolute;
        content: "";
        top: calc( 35% - 2px );
        left: 35%;
        width: 30%;
        height: 30%;
        border-left: 4px solid #fff;
        border-bottom: 4px solid #fff;
        rotate: 45deg;
        transition: border 0.5s ease-out;
    }
    #achievements-slider .swiper-button-prev::after {
        content: none;
    }
    #achievements-slider .swiper-button-next {
        top: calc( 50% - 60px + 28px );
        right: 13.5%;
        width: 56px;
        height: 56px;
        background: #d00b0c;
        transition: opacity 0.5s ease-out;
    }
    #achievements-slider .swiper-button-next::before {
        position: absolute;
        content: "";
        top: calc( 35% - 2px );
        right: 35%;
        width: 30%;
        height: 30%;
        border-right: 4px solid #fff;
        border-bottom: 4px solid #fff;
        rotate: -45deg;
        transition: border 0.5s ease-out;
    }
    #achievements-slider .swiper-button-next::after {
        content: none;
    }
    @media ( hover: hover ) {
        #achievements-slider .swiper-button-prev:hover {
            opacity: 0.5;
        }
        #achievements-slider .swiper-button-prev:hover::before {
            border-left: 4px solid #fff;
            border-bottom: 4px solid #fff;
        }
        #achievements-slider .swiper-button-next:hover {
            opacity: 0.5;
        }
        #achievements-slider .swiper-button-next:hover::before {
            border-right: 4px solid #fff;
            border-bottom: 4px solid #fff;
        }
    }
    #achievements-slider .swiper-pagination {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 0 32px;
    }
    #achievements-slider .swiper-pagination .swiper-pagination-bullet {
        margin: 0;
        width: 8px;
        height: 8px;
        background: #000;
        opacity: 1.0;
        border-radius: 0;
    }
    #achievements-slider .swiper-pagination .swiper-pagination-bullet-active {
        background: #d00b0c;
    }

    #recruit {
        margin: 0 auto;
        padding: 112px 0 0;
        width: 100%;
    }
    #recruit .recruit-box {
        position: relative;
        margin: 0 auto;
        padding: 0;
        width: 90%;
        max-width: 1224px;
        height: auto;
        aspect-ratio: 1224 / 415;
        background: #d00b0c;
        z-index: 0;
    }
    #recruit .recruit-box::before {
        position: absolute;
        content: "";
        bottom: 14%;
        left: 25%;
        width: 35%;
        height: auto;
        aspect-ratio: 390 / 132;
        background: url(../images/top-recruit-txt.svg) no-repeat center / contain;
        opacity: 0.4;
        z-index: 1;
    }
    #recruit .recruit-box::after {
        position: absolute;
        content: "";
        top: 0;
        right: 0;
        height: 100%;
        width: auto;
        aspect-ratio: 493 / 415;
        background: url(../images/top-recruit-pic-pc.webp) no-repeat center / cover;
        z-index: 3;
    }
    #recruit .recruit-box .recruit-info {
        position: absolute;
        top: 50%;
        left: 5%;
        width: 90%;
        translate: 0 -50%;
        z-index: 2;
    }
    #recruit .recruit-box .recruit-info h2 {
        margin: 0;
        padding: 0;
        color: #fff;
        font-size: calc( 40 * min( 90vw, 1224px ) / 1224 );
        font-weight: 700;
        text-align: left;
        line-height: calc( 57 / 40 );
    }
    #recruit .recruit-box .recruit-info p {
        margin: 1.0em 0 0;
        padding: 0;
        color: #fff;
        font-size: calc( 16 * min( 90vw, 1224px ) / 1224 );
        font-weight: 400;
        text-align: left;
        line-height: calc( 40 / 16 );
    }
    #recruit .recruit-box .recruit-info .btn-black {
        position: relative;
        display: grid;
        place-items: center;
        margin: calc( 32 * min( 90vw, 1224px ) / 1224 ) auto 0 0;
        padding: 0;
        width: calc( 288 * min( 90vw, 1224px ) / 1224 );
        height: auto;
        aspect-ratio: 288 / 60;
        color: #fff;
        font-size: calc( 19 * min( 90vw, 1224px ) / 1224 );
        font-weight: 500;
        text-align: center;
        line-height: 1.0;
        background: #000;
    }
    #recruit .recruit-box .recruit-info .btn-black::after {
        position: absolute;
        content: "";
        top: calc( 50% - 0.2em - 1px );
        right: 1.0em;
        width: 0.4em;
        height: auto;
        aspect-ratio: 1 / 1;
        border-right: 2px solid #fff;
        border-bottom: 2px solid #fff;
        rotate: -45deg;
    }

    #news {
        margin: 0 auto;
        padding: 132px max( 5%, calc( 50vw - 640px ) );
        width: 100%;
    }
    #news > .news-head {
        margin: 0 auto;
        padding: 0;
        display: flex;
        align-items: flex-end;
        justify-content: flex-start;
        gap: 0 56px;
    }
    #news > .news-head h2 {
        margin: 0;
        padding: 0;
    }
    #news > .news-head h2 span:nth-of-type(1) {
        display: block;
        margin: 0 0 1.0em;
        padding: 0;
        font-size: 19px;
        font-weight: 700;
        text-align: left;
        line-height: 1.0;
    }
    #news > .news-head h2 span:nth-of-type(2) {
        display: block;
        margin: 0;
        padding: 0;
        font-size: 84px;
        font-weight: 600;
        font-family: var(--font-alphabet);
        text-align: left;
        line-height: 1.0;
    }
    #news > .news-head h3 {
        margin: 0;
        padding: 0;
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        justify-content: center;
    }
    #news > .news-head h3 span:nth-of-type(1) {
        margin: 0;
        padding: 0;
        font-size: 33px;
        font-weight: 700;
        text-align: left;
        line-height: calc( 57 / 33);
    }
    #news > .news-head h3 span:nth-of-type(2) {
        margin: 0;
        padding: 0;
        font-size: 16px;
        font-weight: 400;
        text-align: left;
        line-height: calc( 40 / 16 );
    }
    #news > .news-tab {
        margin: 48px auto 0;
        padding: 0;
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        justify-content: flex-start;
        gap: 0 24px;
    }
    #news > .news-tab > a {
        display: block;
        margin: 0;
        padding: 0 0 1.0em;
        width: 288px;
        height: auto;
        aspect-ratio: 288 / 52;
        font-size: 19px;
        font-weight: 500;
        text-align: center;
        display: flex;
        align-items: flex-start;
        justify-content: center;
        border-bottom: 2px solid #dddddd;
    }
    #news > .news-tab > a.active {
        border-bottom: 2px solid #d00b0c;
    }
    #news > .news-grid {
        margin: 32px auto 0;
        padding: 0;
        display: grid;
        grid-template-columns: repeat( 3, 1fr );
        gap: 0 24px;
    }
    #news > .news-grid .news-item {
        display: block;
        margin: 0;
        padding: 0;
        width: 100%;
    }
    #news > .news-grid .news-item .news-pic {
        position: relative;
        margin: 0;
        padding: 0;
        width: 100%;
        height: auto;
        aspect-ratio: 392 / 221;
    }
    #news > .news-grid .news-item .news-pic img {
        margin: 0;
        padding: 0;
        width: 100%;
        height: 100%;
        object-fit: cover;
    }
    #news > .news-grid .news-item .news-pic figcaption {
        position: absolute;
        top: 0;
        left: 0;
        width: max-content;
        margin: 0;
        padding: 0.4em 0.8em;
        color: #fff;
        font-size: 13px;
        font-weight: 500;
        line-height: 1.0;
        background: #d00b0c;
    }
    #news > .news-grid .news-item h3 {
        margin: 0.5em 0 0;
        padding: 0;
        font-size: 19px;
        font-weight: 500;
        text-align: left;
        line-height: calc( 25 / 19 );
    }
    #news > .news-grid .news-item p {
        margin: 0.5em 0 0;
        padding: 0;
        font-size: 16px;
        font-weight: 400;
        text-align: left;
        line-height: calc( 22 / 16 );
    }
    #news > .news-grid .news-item .date {
        margin: 16px 0 0;
        padding: 0;
        font-size: 13px;
        font-weight: 400;
        text-align: left;
        line-height: 1.0;
        display: flex;
        align-items: center;
        justify-content: flex-start;
        gap: 0 8px;
    }
    #news > .news-grid .news-item .date::before {
        display: block;
        content: "";
        margin: 0;
        padding: 0;
        width: 1.2em;
        height: auto;
        aspect-ratio: 1 / 1;
        background: url(../images/icon-clock-red.svg) no-repeat center / contain;
    }
    #news > .btn-news {
        display: flex;
        align-items: center;
        justify-content: flex-end;
        gap: 0 16px;
        margin: 32px 0 0 auto;
        width: max-content;
        font-size: 19px;
        font-weight: 500;
        line-height: 1.0;
    }
    #news > .btn-news::after {
        display: block;
        content: "";
        width: 0.4em;
        height: auto;
        aspect-ratio: 1 / 1;
        border-right: 2px solid #d00b0c;
        border-bottom: 2px solid #d00b0c;
        rotate: -45deg;
    }

    #top-splash {
        position: fixed;
        top: 0;
        left: 0;
        margin: 0;
        padding: 0;
        width: 100%;
        height: 100vh;
        height: 100dvh;
        background: #fff;
        transform-origin: top left;
        z-index: 999;
        animation: anim-splash1 5.0s ease forwards;
    }
    #top-splash figure {
        display: grid;
        place-items: center;
        margin: 0;
        padding: 0;
        width: 100%;
        height: 100%;
        animation: anim-splash2 5.0s ease forwards;
    }
    #top-splash figure img {
        margin: 0;
        padding: 0;
        width: 80%;
        height: 80%;
        object-fit: contain;
    }

}


@keyframes anim-splash1 {
    0%   { opacity: 1.0; transform: scale( 1, 1 ); }
    80%  { opacity: 1.0; transform: scale( 1, 1 ); }
    99%  { opacity: 0.0; transform: scale( 1, 1 ); }
    100% { opacity: 0.0; transform: scale( 0, 0 ); }
}
@keyframes anim-splash2 {
    0%   { opacity: 0.0; }
    20%  { opacity: 0.0; }
    60%  { opacity: 1.0; }
    100% { opacity: 1.0; }
}
