@charset "utf-8";

/*==========================================================================
  main visual
  ==========================================================================*/
.mv {
    margin-bottom: var(--block-base);
    @media (width >= 1024px) {
        margin-bottom: 100px;
    }
}
.mv__image {
    position: relative;
    &::before{
        content: '';
        display: block;
        width: 100%;
        height: 100%;
        background-image: linear-gradient(to bottom, rgba(0,0,0,0.1) 0%, transparent 65%);
        position: absolute;
        top: 0;
        left: 0;
        z-index: 2;
    }
    &::after {
        content: '';
        display: block;
        width: 100%;
        height: 100%;
        background-image: linear-gradient(to top, rgba(255, 255, 255, 1) 0%, transparent 10%);
        position: absolute;
        top: 0;
        left: 0;
        z-index: 2;
    }
    .splide__slide {
        width: 100%;
        height: calc(100vh + 25.44vw);
        overflow: hidden;
        @media (width >= 1024px) {
            height: 100vh;
            min-height: 950px;
        }
        img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            object-position: top;
        }
    }
}
.mv__text {
    width: 100%;
    color: var(--color-white);
    font-family: var(--fontFamily-accent);
    font-size: clamp(var(--fontSize-h2), calc(3.3557 * 1vw + 0.6376px), var(--fontSize-h1));
    /* font-size: clamp(3.0556rem, calc(1.1745 * 1vw + 2.3874rem), 3.4444rem); */
    font-weight: 400;
    font-style: normal;
    text-shadow: 0px 0px 16px rgba(0, 0, 0, 0.3);
    position: absolute;
    top: 30vh;
    z-index: 3;
    @media (width >= 1024px) {
        font-size: clamp(3.0556rem, calc(1.1745 * 1vw + 2.3874rem), 3.4444rem);
        top: clamp(175px, calc(7.5503 * 1vw + 97.6846px), 220px);
    }
    .pd-inline-base {
        @media (width < 1024px) {
            padding-inline: calc(var(--inline-base) * 3);
        }
    }
}
.mv__contents {
    width: 100%;
    position: relative;
    z-index: 2;
    margin-top: -25.44vw;
    @media (width >= 1024px) {
        margin-top: -12vh;
    }
}
.mv__contents__inner {
    display: flex;
    @media (width < 1024px) {
        flex-direction: column;
        padding-inline: var(--inline-base);
        gap: var(--inline-base);
    }
    @media (width >= 1024px) {
        flex-direction: row;
        gap: 20px;
    }
}
.mv__content {
    height: 76.33vw;
    border-radius: 15px;
    overflow: hidden;
    box-shadow: 0px 0px 4px 0px rgba(0, 0, 0, .15);
    @media (width >= 1024px) {
        width: 800px;
        height: clamp(282px, calc(28.1879 * 1vw + -6.6443px), 450px);
    }
    img {
        width: 100%;
        height: 100%;
        object-fit: cover; 
        object-position: center;
        border-radius: 15px;
    }
}
.mv__content-1column {
    position: relative;
    .mv__content__detail {
        position: absolute;
        top: 0;
        left: 0;
    }
}
.mv__content-2columns {
    display: flex;
    flex-direction: column;
    @media (width >= 1024px) {
        flex-direction: row;
    }
}
.mv__content-2column {
    height: 50%;
    position: relative;
    display: flex;
    @media (width >= 1024px) {
        width: 50%;
        height: auto;
    }
}
.mv__content__detail {
    padding: calc(var(--inline-base) * 2);
    color: var(--color-white);
    @media (width >= 1024px) {
        padding: clamp(25px, calc(4.1946 * 1vw + -17.953px), 50px);
    }
}
.mv__content__title {
    font-size: var(--fontSize-text22);
    line-height: 1.3;
    @media (width >= 1024px) {
        font-size: clamp(var(--fontSize-text23), calc(2.0134 * 1vw + 2.3826px), var(--fontSize-h2));
        line-height: clamp(var(--fontSize-text23), calc(2.0134 * 1vw + 2.3826px), var(--fontSize-h2));
    }
}
.mv__content__desc {
    font-size: var(--fontSize-text15);
    @media (width >= 1024px) {
        font-size: clamp(var(--fontSize-text14), calc(0.6711 * 1vw + 7.1275px), var(--fontSize-base));
    }
}
.mv__content__btn {
    position: absolute;
    bottom: calc(var(--inline-base) * 2);
    left: 50%;
    transform: translateX(-50%);
    @media (width >= 1024px) {
        bottom: clamp(25px, calc(4.1946 * 1vw + -17.953px), 50px);
    }
}

/*==========================================================================
  press
  ==========================================================================*/
.section.press {
    @media (width < 1024px) {
        margin-bottom: 10.17vw;
    }
    @media (width >= 1024px) {
        margin-bottom: 50px;
    }
}
.press__list table {
    width: 100%;
}
.press__title {
    font-size: 5.59vw;
    @media (width < 1024px) {
        margin-bottom: 0;
    }
    @media (width >= 1024px) {
        font-size: clamp(var(--fontSize-text23), calc(2.0134 * 1vw + 2.3826px), var(--fontSize-h2));
    }
}
.press__more {
    margin-top: 3.05vw;
    text-align: right;
    @media (width < 1024px) {
        font-size: var(--fontSize-text14);
    }
    @media (width >= 1024px) {
        margin-top: 25px;
    }
}

/*==========================================================================
  topics
  ==========================================================================*/
.section.topics {
    @media (width < 1024px) {
        margin-bottom: 10.17vw;
    }
    @media (width >= 1024px) {
        margin-bottom: 50px;
    }
}
.topics__list table {
    width: 100%;
}
.topics__title {
    font-size: 5.59vw;
    @media (width < 1024px) {
        margin-bottom: 0;
    }
    @media (width >= 1024px) {
        font-size: clamp(var(--fontSize-text23), calc(2.0134 * 1vw + 2.3826px), var(--fontSize-h2));
    }
}
.topics__more {
    margin-top: 3.05vw;
    text-align: right;
    @media (width < 1024px) {
        font-size: var(--fontSize-text14);
    }
    @media (width >= 1024px) {
        margin-top: 25px;
    }
}

/*==========================================================================
  info
  ==========================================================================*/
.info {
    &.section {
        @media (width < 1024px) {
            margin-bottom: 20.35vw;
        }
    }
}
.info__title {
    font-size: clamp(var(--fontSize-text23), calc(2.0134 * 1vw + 2.3826px), var(--fontSize-h2));
}
.info__list {
    min-width: var(--max-width);
    .splide__slide {
        background-color: var(--color-bg1);
        border-radius: 15px;
        overflow: hidden;
        box-shadow: 0px 0px 4px 0px rgba(0, 0, 0, .1);
        &:hover {
            img {
                transform: scale(1.05);
            }
        }
    }
}
.info__detail {
    padding: calc(var(--inline-base) * 2) 7.63vw;
    color: var(--color-text);
    @media (width >= 1024px) {
        padding: 20px 30px;
    }
}
.info__thumb {
    border-radius: 0 0 15px 15px;
    aspect-ratio: 16 / 9;
    overflow: hidden;
}
.info__thumb img {
    width: 100%;
    object-fit: cover;
    transform: scale(1);
    transition: .3s;
}
.info__detail__date {
    margin-bottom: 2.54vw;
    font-size: var(--fontSize-text15);
    @media (width >= 1024px) {
        margin-bottom: 10px;
        font-size: clamp(var(--fontSize-text14), calc(0.3356 * 1vw + 10.5638px), var(--fontSize-text16));
    }
}
.info__detail__title {
    margin-bottom: 3.81vw;
    font-size: var(--fontSize-text15);
    line-height: 1.625;
    @media (width >= 1024px) {
        margin-bottom: 15px;
        font-size: clamp(var(--fontSize-text14), calc(0.3356 * 1vw + 10.5638px), var(--fontSize-text16));
    }
}
.info__detail__desc {
    font-size: var(--fontSize-text14);
    line-height: 1.714;
}

/*==========================================================================
  business
  ==========================================================================*/
.section.business {
    @media (width < 1024px) {
        padding-inline: var(--inline-base);
        padding-block-end: 27.98vw;
    }
}
.business__contents {
    display: flex;
    color: var(--color-white);
    border-radius: 15px;
    box-shadow: 0px 0px 4px 0px rgba(0, 0, 0, .1);
    position: relative;
    @media (width < 1024px) {
        flex-direction: column;
    }
    @media (width >= 1024px) {
        height: 550px;
        overflow: hidden;
    }
}
.business__title {
    margin-bottom: 3.81vw;
    font-size: var(--fontSize-text22);
    line-height: 1.27;
    @media (width >= 1024px) {
        margin-bottom: 10px;
        font-size: clamp(var(--fontSize-text23), calc(2.0134 * 1vw + 2.3826px), var(--fontSize-h2));
        line-height: clamp(30px, calc(2.8523 * 1vw + 0.7919px), 47px);
    }
}
.business__detail {
    padding-block: 5.08vw var(--block-base);
    padding-inline: calc(var(--inline-base) * 2);
    position: relative;
    @media (width >= 1024px) {
        width: clamp(349px, calc(33.2215 * 1vw + 8.8121px), 547px);
        padding-top: clamp(25px, calc(0.8389 * 1vw + 16.4094px), 30px);
        padding-left: var(--inline-base);
    }
}
.business__desc {
    font-size: var(--fontSize-text15);
    @media (width >= 1024px) {
        width: clamp(300px, calc(26.8456 * 1vw + 25.1007px), 460px);
        font-size: clamp(var(--fontSize-text14), calc(0.6711 * 1vw + 7.1275px), var(--fontSize-base));
    }
}
.business__menu {
    display: none;
    @media (width >= 1024px) {
        display: block;
        width: 100%;
        position: absolute!important;
        bottom: 82px;
    }
    .splide__list {
        flex-direction: column;
    }
    .splide__slide {
        margin-bottom: 16px;
        padding-left: 17px;
        font-size: clamp(var(--fontSize-base), calc(0.3356 * 1vw + 14.5638px), var(--fontSize-h4));
        line-height: 27px;
        position: relative;
        cursor: pointer;
        &::before {
            content: "";
            width: 12px;
            height: 8px;
            margin-top: -4px;
            background-color: var(--color-accent1);
            display: block;
            position: absolute;
            top: 50%;
            left: 0;
            transition: .5s;
        }
        &::after {
            content: "";
            width: 0;
            height: 2px;
            background-color: #FFF;
            display: block;
            position: absolute;
            left: 0;
            bottom: -2px;
            transition: .5s;
        }
        &:hover {
            &::before {
                height: 29px;
                margin-top: -15px;
            }
        }
        &.is-active {
            &::before {
                height: 29px;
                margin-top: -15px;
            }
            &::after {
                width: 100%;
            }
        }
    }
}
.business__bottom {
    width: 100%;
    position: absolute;
    left: 0;
    bottom: calc((10.17vw + 5.08vw) * -1); /*ボタンの高さ + 上余白*/
    @media (width >= 1024px) {
        height: 78px;
        left: 0;
        bottom: 0;
    }
    &.bg-bg3 {
        @media (width < 1024px) {
            background-color: unset;
        }
    }
}
.business__bottom__inner {
    text-align: center;
    @media (width >= 1024px) {
        width: clamp(349px, calc(33.2215 * 1vw + 8.8121px), 547px);
        padding-top: 19px;
    }
}
.business__slide {
    border-radius: 15px;
    background-color: var(--color-bg1);
    overflow: hidden;
    @media (width >= 1024px) {
        width: calc(100% - clamp(349px, calc(33.2215 * 1vw + 8.8121px), 547px));
        border-radius: 15px 0 0 15px;
    }
    .splide-business .splide__slide {
        height: 94.91vw;
        position: relative;
        overflow: hidden;
        @media (width >= 1024px) {
            height: 550px;
        }
        img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            object-position: center;
        }
    }
    .splide-business .splide__pagination {
        @media (width < 1024px) {
            width: 100%;
            bottom: 5.08vw;
        }
        @media (width >= 1024px) {
            display: none;
        }
    }
}
.business__slide__detail {
    position: absolute;
    top: 0;
    left: 0;
    @media (width < 1024px) {
        padding-block-start: var(--block-base);
        padding-inline: calc(var(--inline-base) * 2);
    }
    @media (width >= 1024px) {
        position: absolute;
        top: 80px;
        left: 50px;
    }
}
.business__slide__title {
    margin-block-end: 3.81vw;
    font-size: var(--fontSize-h4);
    text-align: center;
    @media (width >= 1024px) {
        margin-bottom: 10px;
        font-size: clamp(var(--fontSize-h4), calc(1.3423 * 1vw + 6.255px), var(--fontSize-h3));
        text-align: start;
    }
}
.business__slide__desc {
    font-size: var(--fontSize-text15);
    @media (width < 1024px) {
        .hide-sp {
            display: none;
        }
    }
    @media (width >= 1024px) {
        padding-right: clamp(25px, calc(4.1946 * 1vw + -17.953px), 50px);
        font-size: clamp(var(--fontSize-text14), calc(0.6711 * 1vw + 7.1275px), var(--fontSize-base));
    }
}
.business__slide__btn {
    position: absolute;
    @media (width < 1024px) {
        left: 50%;
        bottom: 12.72vw;
        transform: translateX(-50%);
    }
    @media (width >= 1024px) {
        right: 50px;
        bottom: 50px;
    }
}

/*==========================================================================
  special
  ==========================================================================*/
.special__title {
    margin-bottom: clamp(15px, 1.235vw, 20px);
    font-size: clamp(var(--fontSize-text23), calc(2.0134 * 1vw + 2.3826px), var(--fontSize-h2));
}
.special__list {
    position: relative;
    display: flex;
    flex-direction: column;
    border-radius: 15px;
    overflow: hidden;
    @media (width < 1024px) {
        margin-inline: var(--inline-base);
    }
    @media (width >= 1024px) {
        border-radius: 15px 0 0 15px;
    }
}
.special__item {
    margin-bottom: 2px;
    overflow: hidden;
    &:last-of-type {
        margin-bottom: 0;
    }
    .special__item__image {
        height: 10.17vw;
        position: relative;
        overflow: hidden;
        cursor: pointer;
        transition: height .5s;
        @media (width >= 1024px) {
            width: 50%;
            height: clamp(57px, calc(5.5369 * 1vw + 0.302px), 90px);
        }
        &::after {
            content: "";
            width: 100%;
            height: 100%;
            background-color: rgba(13, 13, 13, .5);
            position: absolute;
            top: 0;
            left: 0;
            display: block;
            opacity: 1;
            transition: opacity .3s;
        }
        .special__item__title {
            position: absolute;
            top: 50%;
            left: var(--inline-base);
            transform: translateY(-50%);
            font-size: var(--fontSize-base);
            opacity: 1;
            transition: opacity .3s;
            z-index: 1;
            @media (width >= 1024px) {
                left: clamp(32px, calc(3.0201 * 1vw + 1.0738px), 50px);
                font-size: clamp(var(--fontSize-h4), calc(1.3423 * 1vw + 6.255px), var(--fontSize-h3));
            }
        }
        .acc-arrow {
            width: 2.04vw;
            height: 1.72vw;
            background-image: url(/ja/assets_2026/common/images/link-arrow-bk.svg);
            background-position: center;
            background-repeat: no-repeat;
            background-size: contain;
            filter: invert(100%) sepia(0%) saturate(2953%) hue-rotate(46deg) brightness(117%) contrast(98%);
            position: absolute;
            top: 50%;
            right: var(--inline-base);
            z-index: 2;
            transform: translateY(-50%) rotate(90deg);
            @media (width >= 1024px) {
                display: none;
            }
        }
        img {
            transform: scale(1);
            transition: .3s;
        }
        &:hover {
            img {
                transform: scale(1.05);
            }
        }
    }
    .special__item__detail {
        @media (width < 1024px) {
            display: flex;
            flex-direction: column;
            justify-content: center;
            align-items: center;
            height: 0;
            padding-inline: calc(var(--inline-base) * 2);
            transition: height .5s;
        }
        @media (width >= 1024px) {
            height: 100%;
            position: absolute;
            top: 0;
            width: 50%;
            left: 50%;
            opacity: 0;
            transition: opacity .5s;
        }
        .special__item__title {
            width: 100%;
            text-align: center;
            @media (width < 1024px) {
                font-size: 5.08vw;
            }
            @media (width >= 1024px) {
                position: absolute;
                top: clamp(40px, calc(20.1342 * 1vw + -166.1745px), 160px);
                left: 0;
            }
        }
    }
    &.is-active {
        .special__item__image {
            height: 38.16vw;
            @media (width >= 1024px) {
                height: clamp(200px, calc(20.1342 * 1vw + -6.1745px), 320px);
            }
            &::after {
                opacity: 0;
            }
            .special__item__title {
                opacity: 0;
            }
            .acc-arrow {
                opacity: 0;
            }
            img {
                transform: scale(1);
            }
        }
        .special__item__detail {
            @media (width < 1024px) {
                height: 101.78vw;
            }
            @media (width >= 1024px) {
                opacity: 1;
                z-index: 1;
            }
        }
    }
    img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: center;
    }
}
.special__item__desc {
    margin-inline: auto;
    font-size: var(--fontSize-text15);
    text-align: center;
    line-height: 1.6;
    @media (width < 1024px) {
        margin-bottom: 10.17vw;
    }
    @media (width >= 1024px) {
        width: clamp(462px, calc(29.8658 * 1vw + 156.1745px), 640px);
        margin-top: clamp(120px, calc(21.8121 * 1vw + -103.3557px), 250px);
        font-size: clamp(var(--fontSize-text14), calc(0.6711 * 1vw + 7.1275px), var(--fontSize-base));
        line-height: 2;
    }
}
.special__item__link {
    width: 100%;
    text-align: center;
    @media (width >= 1024px) {
        position: absolute;
        bottom: clamp(33px, calc(20.1342 * 1vw + -173.1745px), 153px);
    }
}

/*==========================================================================
  pre-footer
  ==========================================================================*/
.pre-footer {
    &.pd-block-base {
        @media (width < 1024px) {
            padding-block: var(--block-base) 20.35vw;
        }
    }
}
.pre-footer__contents {
    display: flex;
    gap: 5.08vw;
    margin-bottom: var(--block-base);
    @media (width < 1024px) {
        flex-direction: column;
        padding-inline: var(--inline-base);
    }
    @media (width >= 1024px) {
        gap: 20px;
        margin-bottom: 80px;
    }
}
.pre-footer__content-left {
    @media (width >= 1024px) {
        width: clamp(502px, calc(95.6376 * 1vw + -477.3289px), 1072px);
    }
}
.pre-footer__content-right {
    gap: 5.08vw;
    @media (width >= 1024px) {
        width: clamp(502px, calc(4.0268 * 1vw + 460.7651px), 526px);
        gap: 20px;
    }
}
.president-talk {
    border-radius: 15px;
    overflow: hidden;
    box-shadow: 0px 0px 4px 0px rgba(0, 0, 0, .1);
    @media (width >= 1024px) {
        height: clamp(384px, calc(2.6846 * 1vw + 356.5101px), 400px);
    }
    &.content-2columns {
        @media (width < 1024px) {
            flex-direction: column;
        }
    }
    .content-2column {
        @media (width < 1024px) {
            width: 100%;
        }
    }
    img {
        width: 100%;
        height: 53.43vw;
        object-fit: cover; 
        object-position: center;
        border-radius: 15px;
        @media (width >= 1024px) {
            height: 100%;
        }
    }
}
.pre-footer__content-2column {
    position: relative;
}
.president-talk__detail {
    display: flex;
    justify-content: center;
    align-items: center;
}
.president-talk__inner {
    @media (width < 1024px) {
        padding: calc(var(--inline-base) * 2);
    }
    @media (width >= 1024px) {
        width: clamp(200px, calc(46.3087 * 1vw + -274.2013px), 476px);
    }
}
.president-talk__title {
    margin-bottom: 20px;
    margin-inline: auto;
    font-size: clamp(var(--fontSize-h4), calc(1.3423 * 1vw + 6.255px), var(--fontSize-h3));
    text-align: center;
}
.president-talk__desc {
    margin-bottom: 20px;
    margin-inline: auto;
    font-size: clamp(var(--fontSize-text14), calc(0.6711 * 1vw + 7.1275px), var(--fontSize-base));
    text-align: center;
}
.president-talk__list {
    margin-bottom: 25px;
    font-size: clamp(var(--fontSize-text14), calc(0.6711 * 1vw + 7.1275px), var(--fontSize-base));
}
.president-talk__link {
    text-align: center;
}
.sns {
    border-radius: 15px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    justify-content: center;
    box-shadow: 0px 0px 4px 0px rgba(0, 0, 0, .1);
    @media (width < 1024px) {
        height: 33.07vw !important;
    }
}
.sns__title {
    margin-bottom: 5.08vw;
    font-size: clamp(var(--fontSize-h4), calc(1.3423 * 1vw + 6.255px), var(--fontSize-h3));
    font-weight: bold;
    text-align: center;
    @media (width >= 1024px) {
        margin-bottom: 30px;
    }
}
.sns__icons {
    display: flex;
    justify-content: center;
    gap: 6.36vw;
    @media (width >= 1024px) {
        gap: 30px;
    }
    a {
        @media (width < 1024px) {
            width: 11.45vw;
        }
    }
}
.manabi {
    border-radius: 15px;
    overflow: hidden;
    box-shadow: 0px 0px 4px 0px rgba(0, 0, 0, .1);
    @media (width < 1024px) {
        height: 33.07vw !important;
    }
    &:hover {
        img {
            transform: scale(1.05);
        }
    }
    img {
        width: 100%;
        height: 100%;
        object-fit: cover; 
        object-position: center;
        transform: scale(1);
        transition: .3s;
    }
}

/*==========================================================================
  banner
  ==========================================================================*/
.banner__list {
    min-width: var(--max-width);
    .splide__slide {
        height: 47vw;
        background-color: var(--color-bg1);
        border-radius: 15px;
        overflow: hidden;
        box-shadow: 0px 0px 4px 0px rgba(0, 0, 0, .1);
        @media (width >= 1024px) {
            height: 220px;
        }
        &:hover {
            img {
                transform: scale(1.05);
            }
        }
    }
    img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: center;
        transform: scale(1);
        transition: .3s;
    }
}

/*==========================================================================
  emergency
  ==========================================================================*/
.home-emergency {
    padding: calc(var(--inline-base) * 1);
    background-color: #9ED9B0;
    font-size: var(--fontSize-text15);
    display: none;
    &.home-emergency-visible {
        display: block;
    }
    @media (width < 1024px) {
        margin-top: 15.26vw;
    }
    @media (width >= 1024px) {
        padding: 20px;
        font-size: clamp(var(--fontSize-text14), calc(0.6711 * 1vw + 7.1275px), var(--fontSize-base));
    }
    >div {
        padding-block: calc(var(--inline-base) * 3);
        background-color: var(--color-white);
        color: #375E43;
        border-radius: 2.54vw;
        @media (width < 1024px) {
            padding-inline: calc(var(--inline-base) * 2);
        }
        @media (width >= 1024px) {
            padding-block: clamp(30px, calc(1.6779 * 1vw + 12.8188px), 40px);
            padding-inline: clamp(60px, calc(13.4228 * 1vw + -77.4497px), 140px);
            flex-direction: row;
            gap: clamp(60px, calc(13.4228 * 1vw + -77.4497px), 140px);
            border-radius: 15px;
        }
        >div {
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: 10vw;
            @media (width >= 1024px) {
                max-width: 1620px;
                margin-inline: auto;
                flex-direction: row;
                gap: clamp(60px, calc(13.4228 * 1vw + -77.4497px), 140px);
            }
            &::before {
                content: "";
                width: calc(var(--inline-base) * 8);
                min-width: calc(var(--inline-base) * 8);
                height: calc(var(--inline-base) * 8);
                background-image: url(/ja/assets_2026/common/images/icon-caution.svg);
                background-size: contain;
                background-repeat: no-repeat;
                display: block;
                @media (width >= 1024px) {
                    width: clamp(86px, calc(3.3557 * 1vw + 51.6376px), 106px);
                    min-width: clamp(86px, calc(3.3557 * 1vw + 51.6376px), 106px);
                    height: clamp(86px, calc(3.3557 * 1vw + 51.6376px), 106px);
                }
            }
        }
    }
}