@charset "utf-8";

/*
 * タイトル
 * --------------------------------------------------
 */

.page-title {
    display: flex;
    flex-wrap: wrap;
    width: 100%;
    height: auto;
    aspect-ratio: 32/9;
    position: relative;
    justify-content: center;
    align-items: center;
    overflow: hidden;
}

.page-title video {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center center;
}

.page-title img {
    width: calc(100% + 100px);
    height: auto;
    object-fit: cover;
    object-position: 50px center;
    animation: title-slide 5s forwards;
    position: absolute;
}

@keyframes title-slide {
    0% {
        transform: translateX(0px);
    }

    100% {
        transform: translateX(-50px);
    }
}

.page-title h1 {
    font-size: 3cqi;
    font-weight: 600;
    position: absolute;
}

@media (max-width: 767px) {
    .page-title {
        aspect-ratio: 16/9;
    }
}

/*
 * キャッチ
 * --------------------------------------------------
 */

.concept-catch h2 {
    display: flex;
    flex-wrap: wrap;
    width: 100%;
    height: auto;
    justify-content: center;
    align-items: center;
    font-size: 3.4cqi;
    font-weight: 700;
    letter-spacing: 0.25cqi;
    line-height: 1.5;
}



@media (max-width: 767px) {
    .concept-catch h2 {
        font-size: 6cqi;
        line-height: 1.4;
    }

    .concept-catch img {
        padding: 0px 15px;
    }

}

/*
 * 詳細
 * --------------------------------------------------
 */

.concept-content h3 {
    font-size: 3.4cqi;
    font-weight: 700;
    letter-spacing: 0.1cqi;
    line-height: 1;
}

.concept-content p {
    font-size: 2.1cqi;
    line-height: 2;
    font-weight: 500;
    letter-spacing: 0.1cqi;
}

.concept-content video,
.concept-fulid video {
    width: 100%;
    height: auto;
    object-fit: cover;
}

.gap-30 {
    gap: 30px;
}

.gap-30 .col-50 {
    width: calc((100% - 30px) / 2);
}

.concept-box {
    display: flex;
    flex-wrap: wrap;
    border: 1px solid rgba(50, 50, 50, 1);
}

.concept-box .left {
    display: flex;
    flex-wrap: wrap;
    width: 50%;
    height: auto;
    flex-direction: column;
}

.concept-box .right {
    display: flex;
    flex-wrap: wrap;
    width: 50%;
    height: auto;
    padding: 3cqi;
}

.concept-box p,
.concept-box .right p {
    font-size: 1.8cqi;
    line-height: 2;
    letter-spacing: 0px;
}

@media (max-width: 767px) {
    .gap-30 {
        gap: 15px;
    }

    .gap-30 .col-50 {
        width: calc((100% - 15px) / 2);
    }

    .concept-fulid {
        padding: 0px;
    }

    .concept-content h3 {
        font-size: 5.4cqi;
        padding: 0px 45px;
    }

    .concept-content p {
        font-size: 3.8cqi;
        letter-spacing: 0px;
        padding: 0px 45px;
    }

    .concept-box .right p {
        font-size: 3.4cqi;
        letter-spacing: 0px;
        padding: 15px;
    }
}