@charset "UTF-8";

:root {
    --angle400: 400deg;
}


/*---------------------------

main_area

---------------------------*/
.main_area {
    position: relative;
    overflow-x: hidden;
}

/* 背景動画 */
.main_area .background-video-wrapper {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 9;
}

.main_area .background-video {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    /* 動画が画面全体を覆うようにする */
    z-index: 1;
    /* 動画を背景として設定 */
}

.main_area .overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.5);
    /* 透過した黒 */
    z-index: 2;
    /* オーバーレイを動画の上に配置 */
}

.main_area .main_title {
    position: absolute;
    top: 50%;
    left: 10%;
    transform: translate(0, -50%);
    color: white;
    text-align: left;
    z-index: 2;
    /* コンテンツが最上位に来るように */
    max-width: 1280px;
    width: 94%;
    font-size: 36px;
    line-height: 1.6;
    font-weight: 100;
}

@media (max-width: 1024px) {
    .main_area .main_title {
        font-size: 26px;
        width: auto;
    }


}

@media (max-width: 768px) {
    .main_area .background-video-wrapper {
        aspect-ratio: auto;
        height: 768px;
    }

    .main_area .main_title {
        font-size: 24px;
        text-align: center;
        line-height: 1.8;
    }

}

@media (max-width: 599px) {
    .main_area .main_title {
        font-size: 22px;
        line-height: 1.8;
    }
}


/*---------------------------

banner_area

---------------------------*/
.banner_area {
    padding: 100px 0;
}

.banner_area ul {
    display: flex;
    justify-content: center;
    gap: 30px;
    max-width: 940px;
    margin: 0 auto;
}

.banner_area ul li {
    width: 50%;
}

.banner_area ul li a {
    aspect-ratio: 455 / 160;
    color: white;
    display: flex;
    justify-content: center;
    align-items: center;
}

.banner_area ul li .text {
    width: 45%;
    height: 100%;
    background: linear-gradient(170deg, #020A5F 10%, #1F51C4 52%);
    display: flex;
    align-items: center;
    justify-content: center;
}

.banner_area ul li .image {
    width: 55%;
    height: 100%;
    background-size: cover;
    overflow: hidden;
}

.banner_area ul li .image {
    background-image: url('../../img/banner_01.jpg');
}

.banner_area ul li .image02 {
    background-image: url('../../img/banner_02.jpg');
}

.banner_area ul li .text .inner {
    background: linear-gradient(40deg, rgb(31 81 193) 0%, rgba(151, 154, 191, 0.5) 75%);
    padding: 8px 8px 8px 10px;
    margin-right: -35px;
    z-index: 1;
    width: 220px;
}

.banner_area ul li .text .inner h2 {
    font-size: 24px;
    margin-bottom: 5px;
}

.banner_area ul li .text .inner p {
    font-size: 14px;
    margin-bottom: 10px;
    line-height: 1.4;
}


/* hover時変化reset */
.banner_area ul li a:hover {
    opacity: 1;
}



@media (max-width: 1024px) {
    .banner_area ul {
        gap: 20px;
    }

    .banner_area ul li .text .inner {
        margin-left: 10px;
        margin-right: -45px;
    }

    .banner_area ul li .text .inner h2 {
        font-size: 20px;
        margin-bottom: 5px;
    }

    .banner_area ul li .text .inner p {
        font-size: 12px;
        margin-bottom: 5px;
        line-height: 1.4;
    }
}

@media (max-width: 768px) {
    .banner_area {
        padding: 60px 0;
    }

    .banner_area ul li a {
        aspect-ratio: 344 / 120;
    }

    /*.banner_area ul li .text .inner h2 {
    font-size: 21px;
}
.banner_area ul li .text .inner p {
    font-size: 12px;
    margin-bottom: 5px;
}  */
    .banner_area ul li .text .inner {
        padding: 8px 8px 8px 12px;
    }

    .banner_area ul li .text .inner h2 {
        font-size: 2.7vw;
    }

    .banner_area ul li .text .inner p {
        font-size: 1.5vw;
        margin-bottom: 5px;
    }
}

@media (max-width: 599px) {
    .banner_area {
        padding: 30px 0;
    }

    .banner_area ul {
        flex-direction: column;
        align-items: center;
    }

    .banner_area ul li .text .inner {
        padding: 8px 8px 8px 12px;
        height: 84%;
        width: 120%;
        display: flex;
        justify-content: center;
        flex-direction: column;
        margin-right: -50px;
    }

    .banner_area ul li .text .inner h2 {
        font-size: 4vw;
    }

    .banner_area ul li .text .inner p {
        font-size: 2.4vw;
    }
}

@media (max-width: 375px) {
    .banner_area ul {
        width: 274px;
    }

    .banner_area ul li .text .inner {
        height: 86%;
        padding: 8px 8px 8px 12px;
        width: 176px;
        margin-right: -63px;
    }

    .banner_area ul li .text .inner h2 {
        font-size: 16px;
        margin-bottom: 3px;
    }

    .banner_area ul li .text .inner p {
        font-size: 11px;
    }
}

/*---------------------------

company_area

---------------------------*/
.company_area {}

.company_area ul {
    display: flex;
    height: 520px;
}

.company_area ul li.image {
    width: 50%;
    height: 100%;
    background-size: cover;
    overflow: hidden;
    background-image: url('../../img/company_01.jpg');
    background-position: center;
}

.company_area ul li.text {
    width: 50%;
    height: 100%;
    background: linear-gradient(220deg, #020A5F 0%, #1F51C4 75%);
    color: white;
    display: flex;
}

.company_area ul li.text .inner {
    display: flex;
    flex-direction: column;
    justify-content: center;
    max-width: 580px;
    margin: 0 7%;
}

.company_area ul li.text h2 {
    font-size: 32px;
    line-height: 1.3;
    margin-bottom: .5em;
}

.company_area ul li.text p {
    font-size: 15px;
    margin-bottom: 1em;
}

.company_area .common_link {
    margin-left: auto;
    margin-top: 32px;

}




@media (max-width: 1024px) {
    .company_area ul {
        height: 550px;
    }

    .company_area ul li.text .inner {
        margin: 0 auto;
        width: 90%;
        max-width: fit-content;
    }

    .company_area ul li.text h2 {
        font-size: 26px;
    }

}

@media (max-width: 768px) {
    .company_area ul {
        height: auto;
        flex-direction: column;
        align-items: center;
    }

    .company_area ul li.text .inner {
        padding: 45px 0;
    }

    .company_area ul li.image {
        width: 92%;
        aspect-ratio: 7 / 5;
        z-index: 1;
    }

    .company_area ul li.text {
        width: 100%;
        display: flex;
        padding-top: 50vw;
        margin-top: -50vw;
        z-index: 0;
    }

    .company_area ul li.text h2 {
        font-size: 32px;
    }

}

@media (max-width: 599px) {
    .company_area ul li.image {
        width: 86%;
    }

    .company_area ul li.text .inner {
        width: 86%;
    }

    .company_area ul li.text h2 {
        font-size: 20px;
    }
}



/*---------------------------

taiyoproducts_area

---------------------------*/
.taiyoproducts_area {
    padding: 100px 0 140px;
}

.taiyoproducts_area h2 {
    font-size: 32px;
    text-align: center;
    color: var(--blue);
    font-weight: 500;
    letter-spacing: 0.02em;
    margin-bottom: 15px;
}

.taiyoproducts_area ul {
    display: flex;
    list-style: none;
    padding: 0;
    margin: 0;
}

.taiyoproducts_area li {
    flex: 1;
    /* デフォルトで等分 */
    transition: flex 0.8s cubic-bezier(0.25, 1, 0.5, 1);
    background-position: center;
    background-size: cover;
    position: relative;
}

.taiyoproducts_area p {
    line-height: 1;
}

.taiyoproducts_area a {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    color: white;
    font-size: 24px;
    height: 240px;
    position: relative;
    z-index: 2;
}

/* デフォルトでブルーの透過オーバーレイをかぶせる */
.taiyoproducts_area ul li .overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(40deg, rgb(8 39 107) 0%, rgb(44 56 201 / 62%) 75%);
    transition: opacity 0.3s ease;
    z-index: 1;
}

.taiyoproducts_area li:hover .overlay {
    opacity: 0;
}

.taiyoproducts_area ul li:hover {
    flex: 1.5;
    /* hover した要素を大きく */
}

.taiyoproducts_area ul li:nth-child(1) {
    background-image: url('../../img/taiyoproducts_01.jpg');
}

.taiyoproducts_area ul li:nth-child(2) {
    background-image: url('../../img/taiyoproducts_02.jpg');
}

.taiyoproducts_area ul li:nth-child(3) {
    background-image: url('../../img/taiyoproducts_03.jpg');
}


/* hover時変化reset */
.taiyoproducts_area ul li a:hover {
    opacity: 1;
}


@media (max-width: 1024px) {}

@media (max-width: 768px) {}

@media (max-width: 599px) {
    .taiyoproducts_area {
        padding: 50px 0;
    }

    .taiyoproducts_area h2 {
        font-size: 22px;
    }

    .taiyoproducts_area a {
        font-size: 20px;
        height: 160px;
    }

    .taiyoproducts_area ul {
        flex-direction: column;
    }
}



/*---------------------------

製品情報　product-info

---------------------------*/
.product-info {
    padding: 80px 0 0;
}

.products_area {
    padding: 0 0 60px 0;
    position: relative;
}

.products_area .bg {
    position: absolute;
    width: 100%;
    height: 400px;
    bottom: 0;
    background: linear-gradient(220deg, #020A5F 0%, #1F51C4 75%);
}

.products_area h2 {
    font-size: 32px;
    text-align: center;
    color: var(--blue);
    font-weight: 500;
    letter-spacing: 0.02em;
    margin-bottom: 15px;
}

.products_area ul {
    display: flex;

    z-index: 1;
    position: relative;
}

.products_area ul li {
    flex: 1;
    height: 480px;
    transition: flex 0.8s cubic-bezier(0.25, 1, 0.5, 1);
    background-position: center;
    background-size: cover;

    overflow: hidden;
}

/* `a` にテキストを配置しつつ、擬似要素で背景画像を拡大 */
.products_area a {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    color: white;
    width: 100%;
    height: 100%;
    position: relative;
    z-index: 2;
}

/* 背景画像を `::before` に設定 */
.products_area a::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-size: cover;
    background-position: center;
    transition: transform 0.5s ease;
    z-index: -1;
    /* 背景を後ろに配置 */
}

.products_area ul li:nth-child(1) a::before {
    background-image: url('../../img/products_01.jpg');
}

.products_area ul li:nth-child(2) a::before {
    background-image: url('../../img/products_02.jpg');
}

.products_area ul li:nth-child(3) a::before {
    background-image: url('../../img/products_03.jpg');
}

.products_area ul li:nth-child(4) a::before {
    background-image: url('../../img/products_04.jpg');
}

.products_area button {
    margin-top: .8em;
}


/* テキスト要素の配置調整 */
.products_area h3,
.products_area p,
.products_area button {
    position: relative;
    z-index: 2;
}

.products_area .h3_outer {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.products_area h3 {
    font-size: 24px;
    /* margin-bottom: 12px; */
    text-align: center;
}

.products_area p {
    font-size: 14px;
    font-weight: 100;
    position: absolute;
    bottom: 20px;
    /* padding: 0 40px; */
    line-height: 1.2;
    width: 75%;
}



/* hover時変化reset */
.products_area ul li a:hover {
    opacity: 1;
}

/* hover で背景画像のみ拡大 */
.products_area a:hover::before {
    transform: scale(1.1);
    /* 拡大 */
}

/* オーバーレイ（青の透過レイヤー） */
.products_area .overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(40deg, rgb(8 39 107) 0%, rgb(44 56 201 / 62%) 75%);
    transition: opacity 0.3s ease;
    z-index: 1;
}


/* hover でオーバーレイを解除 */
.products_area a:hover .overlay {
    opacity: 0.2;
}

@media (max-width: 1024px) {

    /*.products_area ul li {
    height: 400px;
}*/
    .products_area .h3_outer {
        height: 95px;
        justify-content: flex-end;
    }

    .products_area h3 {
        line-height: 1.2;
    }

    .products_area p {
        padding: 0 15px;
    }
}

@media (max-width: 768px) {
    .products_area {
        padding: 0 0 70px 0;
    }

    .products_area ul {
        flex-wrap: wrap;
    }

    .products_area ul li {
        flex: auto;
        width: 50%;
    }

    .products_area .bg {
        height: 90%;
    }
}

@media (max-width: 599px) {
    .products_area {
        padding: 0 0 30px 0;
    }

    .products_area ul {
        flex-wrap: wrap;
    }

    .products_area ul li {
        width: 100%;
        height: auto;
        aspect-ratio: 335 / 200;
    }

    .products_area h2 {
        font-size: 22px;
    }

    .products_area .h3_outer {
        justify-content: normal;
    }

    .products_area h3 {
        font-size: 20px;
    }

    .products_area p {
        font-size: 13px;
        text-align: center;
        line-height: 1.4;
    }

}



/*---------------------------

news_area

---------------------------*/
.news_area {
    padding: 80px 0 100px 0;
    position: relative;
    background: #183ea80a;
}

.news_area h2 {
    font-size: 24px;
    color: var(--blue);
    margin-bottom: 30px;
}

.news_area iframe {
    height: 400px;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    width: 100%;
    border: none !important;
}

@media (max-width: 1024px) {}

@media (max-width: 768px) {}

@media (max-width: 599px) {
    .news_area {
        padding: 40px 0 40px 0;
    }

    .news_area h2 {
        font-size: 22px;
    }
}


/*---------------------------

strength_sustainability_area

---------------------------*/
.strength_sustainability_area {
    padding: 100px 0 100px 0;
    position: relative;
}

.strength_sustainability_area ul {
    display: flex;
    gap: 1px;
}

.strength_sustainability_area ul li {
    flex: 1;
}

.strength_sustainability_area ul li .image {
    width: 100%;
    aspect-ratio: 640 / 320;
    background-size: cover;
    background-position: center;
}

.strength_sustainability_area ul li:nth-child(1) .image {
    background-image: url('../../img/strength_sustainability_01.jpg');
}

.strength_sustainability_area ul li:nth-child(2) .image {
    background-image: url('../../img/strength_sustainability_02.jpg');
}

.strength_sustainability_area .text h2 {
    font-size: 24px;
    margin-bottom: 15px;
}

.strength_sustainability_area ul li .text {
    background: linear-gradient(220deg, #020A5F 0%, #1F51C4 75%);
    color: white;
    text-align: center;
    padding: 25px 0;
}



.strength_sustainability_area button {
    margin: 0 auto;
}

/* hover時変化reset */
.strength_sustainability_area a:hover {
    opacity: 1;
}

@media (max-width: 1024px) {}

@media (max-width: 768px) {
    .strength_sustainability_area {
        padding: 0 0 0 0;
    }

    .strength_sustainability_area .common_inner_1280 {
        width: 100%;
    }

    .strength_sustainability_area ul li .image {
        aspect-ratio: 384 / 318;
    }
}

@media (max-width: 599px) {
    .strength_sustainability_area .text h2 {
        font-size: 22px;
    }

    .strength_sustainability_area ul {
        flex-direction: column;
    }

    .strength_sustainability_area ul li .image {
        aspect-ratio: 375 / 200;
    }
}


/*---------------------------

recruit_area

---------------------------*/
section.recruit {
    margin-bottom: 0;
}

.recruit_area {
    padding: 0 0 0 0;
    position: relative;
}

.recruit_area .bg {
    position: absolute;
    width: 100%;
    height: 280px;
    bottom: 0;
    background: #F5F6FA;
    z-index: -1;
}

.recruit_area .image_wrap {
    display: flex;
}

.recruit_area .text {
    width: 50%;
}

.recruit_area .image {
    width: 50%;
}

.recruit_area .image img {
    width: 100%;
    object-fit: cover;
    min-height: 370px;
    height: 100%;
}

/* .recruit_area .image{
    background-image: url('../../img/recruit_01.jpg'); 
    background-size: cover;
    height:380px;
    background-position: 0px -75px;
} */

.recruit_area .text {
    /* background: linear-gradient(220deg, rgb(22 41 155 / 77%) 0%, rgb(41 97 217 / 66%) 75%); */
    background: linear-gradient(220deg, #020A5F 0%, #1F51C4 75%);
    /* height: 380px;
    width:50%; */
    display: flex;
    flex-direction: column;
    justify-content: center;
    color: white;
}

.recruit_area .text .inner {
    max-width: 550px;
    margin: 0 7%;
}

.recruit_area .text h2 {
    font-size: 36px;
    margin-bottom: 20px;
}

.recruit_area .text p {
    font-size: 15px;
    margin-bottom: 25px;
}


@media (max-width: 1024px) {
    .recruit_area .image {
        height: 480px;
        background-size: 126%;
        background-position: 0px top;
    }

    .recruit_area .text {
        height: 480px;
    }

    .recruit_area .text .inner {
        margin: 0 auto;
        width: 90%;
        max-width: fit-content;
    }

    .recruit_area .text h2 {
        font-size: 26px;
    }

}

@media (max-width: 768px) {
    section.recruit {
        margin-top: 56px;
    }

    .recruit_area .common_inner_1280 {
        width: 100%;
    }

    .recruit_area .image {
        height: auto;
        display: flex;
        align-items: flex-end;
        /* aspect-ratio: 768 / 475; */
        width: 90%;
        margin: 0 auto;
        position: relative;
    }

    .recruit_area .image img {
        height: 280px;
        /* aspect-ratio: 768 / 475; */
    }

    .recruit_area .image_wrap {
        flex-direction: column-reverse;
    }

    .recruit_area .text {
        height: auto;
        width: 100%;
        padding-top: 200px;
        margin-top: -200px;
    }

    .recruit_area .text .inner {
        padding: 40px 0 35px 0;
    }

    .recruit_area .text h2 {
        margin-bottom: 10px;
    }

    .recruit_area .text p {
        margin-bottom: 15px;
    }

    .recruit_area .common_link {
        margin-left: auto;
        margin-top: 32px;
    }


}

@media (max-width: 599px) {
    .recruit_area .text .inner {
        padding: 25px 0 20px 0;
        width: 86%;
    }

    .recruit_area .text h2 {
        font-size: 22px;
    }

    .recruit_area .image img {
        /* aspect-ratio: 375 / 200; */
        background-position: center top;
        background-size: cover;
        min-height: 200px;
    }
}