@charset "utf-8";

/* common */
.about_ttl {
    position: relative;
    color:#fff;
}
.about_ttl_en {
    display: block;
}
.about_ttl_jp {
    display: block;
    font-weight: 500;
}
@media (min-width: 769px) {
    .about_ttl_en {
        font-size: 32px;
        line-height: 1;
        letter-spacing: 0.1em;
    }
    .about_ttl_jp {
        font-size: 14px;
        line-height: 1;
        letter-spacing: 0.1em;
        margin-top: 32px;
    }
}
@media (max-width: 768px) {
    .about_ttl_en {
        font-size: 24rem;
        line-height: 1;
        letter-spacing: 0.1em;
    }
    .about_ttl_jp {
        font-size: 12rem;
        line-height: 1;
        letter-spacing: 0.1em;
        margin-top: 25rem;
    }
}

/* message */
.message {
    position: relative;
}
.message .about_ttl {
    text-align: center;
}
.message_box {
    margin-inline: auto;
    display: flex;
    align-items: center;
    color:#fff;
}
.message_box_img_wrap {
    overflow: hidden;
}
.message_box_img_wrap > img {
    width: 100%;
    height: auto;
    display: block;
}
.message_box_txt_main {
    font-weight: 500;
}
.message_box_txt_name {
    text-align: right;
    font-weight: 500;
}
@media (min-width: 769px) {
    .message {
        margin-top: 152px;
        margin-inline: 80px;
    }
    .message_box {
        max-width: 980px;
        gap: 80px;
        margin-top: 80px;
    }
    @media (max-width: 1000px) {
        .message_box {
            flex-direction: column;
            gap: 0px;
        }
    }
    .message_box_img_wrap {
          width: 39.8%;
    }
    .message_box_txt_wrap {
        margin-top: 70px;
        flex: 1;
    }
    .message_box_txt_main {
        font-size: 14px;
        line-height: 3;
        letter-spacing: 0.1em;
    }
    .message_box_txt_name {
        font-size: 14px;
        line-height: 2;
        letter-spacing: 0.1em;
        margin-top: 40px;
    }
    .message_box_txt_name_str {
        font-size: 20px;
    }
}
@media (max-width: 768px) {
    .message {
        margin-top: 74rem;
        margin-inline: 30rem;
    }
    .message_box {
        margin-top: 55rem;
        flex-direction: column;
    }
    .message_box_img_wrap {
        width: 205rem;
    }
    .message_box_txt_wrap {
        margin-top: 55rem;
    }
    .message_box_txt_main {
        font-size: 12rem;
        line-height: 3;
        letter-spacing: 0.1em;
    }
    .message_box_txt_name {
        font-size: 12rem;
        line-height: 2;
        letter-spacing: 0.1em;
        margin-top: 26rem;
    }
    .message_box_txt_name_str {
        font-size: 16rem;
    }
}

/* history */
.history {
    position: relative;
    padding-block: 1px;
    margin-inline: auto;
}
.history_set {
    position: relative;
}
.history_set_bg_wrap {
    position: absolute;
    overflow: hidden;
}
.history_set_front_wrap {
    position: relative;
}
.history_img {
    width: 100%;
    object-fit: cover;
}
.history_list {
    position: relative;
    overflow: visible!important;
}
.history_list .swiper-slide {
    position: relative;
    width: auto;
    height: auto;
}
.history_list .swiper-slide::after {/* フリックエリアの延長 */
    content:"";
    position: absolute;
    top:0;
    left: 100%;
    width: 128px;
    height:100%;
    background:transparent;
}
.history_list .swiper-slide:has( + .swiper-slide) dl::before {
    content:"";
    position: absolute;
    top:0;
    border-left:1px solid #fff;
    height:100%;
}
.history_list dl {
    position: relative;
    display: inline-block;
}
.history_list dl > dt {
    color: #6C6C6C;
    font-weight: 500;
}
.history_list dl > dd {
    color: #FFF;
    font-weight: 500;
}
.history_list .swiper-scrollbar {
    top: auto!important;
    bottom: 0px !important;
    left:auto!important;
    right:0!important;
    height:2px!important;
    background:#6C6C6C!important;
    border-radius: 0!important;
}
.history_list .swiper-scrollbar-drag {
  background: #fff!important;
  border-radius: 0!important;
}
.history_item_small {
    font-size: calc(12 / 14 * 100%);
}
@media (min-width: 769px) {
    .history {
        margin-top: 160px;
        padding-inline: 120px;
    }
    .history_set {
        padding-bottom: 120px;
    }
    .history_set_bg_wrap {
        top: 25px;
        left: calc(50% - 1038px / 2);
        width: 1038px;
    }
    .history_img {
        height: 624px;
        width: 1038px;
        max-width: none;
    }
    .history_list {
        margin-top: 80px;
        padding-bottom: 40px!important;
    }
    .history_list .swiper-slide:has( + .swiper-slide) dl::before {
        left: calc(100% + 64px);
    }
    .history_list dl {
        max-width: 280px;
    }
    .history_list dl > dt {
        font-size: 20px;
        line-height: 1;
        letter-spacing: 0.1em;
    }
    .history_list dl > dd {
        font-size: 14px;
        line-height: 3;
        letter-spacing: 0.1em;
        margin-top: 16px;
    }
    .history_list .swiper-scrollbar {
        width: 320px!important;
    }
    .history_list .swiper-wrapper {
        width: calc(100% + 80px * 2);
        margin-left: -80px;
    }
}
@media (max-width: 768px) {
    .history {
        margin-top: 120rem;
        padding-inline: 32rem;
    }
    .history_set_bg_wrap {
        top: 87rem;
        left: 31rem;
        bottom: 0rem;
        right: 20rem;
    }
    .history_img {
        height: 355rem;
    }
    .history_list {
        margin-top: 56rem;
        padding-bottom: 82rem !important;
    }
    .history_list .swiper-slide:has( + .swiper-slide) dl::before {
        left: calc(100% + 64rem);
    }
    .history_list dl {
        min-width: 140rem;
        max-width: 238rem;
    }
    .history_list dl > dt {
        font-size: 16rem;
        line-height: 1;
        letter-spacing: 0.1em;
    }
    .history_list dl > dd {
        font-size: 12rem;
        line-height: 3;
        letter-spacing: 0.1em;
        margin-top: 16rem;
        width: 105%;
    }
    .history_list .swiper-scrollbar {
        width: 160rem!important;
    }
    .history_list .swiper-wrapper {
        width: calc(100% + 32rem * 2);
        margin-left: -32rem;
    }
}

/* company */
.company {
    position: relative;
    overflow: hidden;
}
.company .about_ttl {
    text-align: center;
}
.company_box {
    margin-inline: auto;
}
.company_box dl {
    display:flex;
    align-items: center;
}
.company_box dl > dt {
    color: #6C6C6C;
    font-weight: 500;
}
.company_box dl > dd {
    color: #FFF;
    font-weight: 500;
}
.company_box_small {
    font-size: 12px;
    letter-spacing: 0.1em;
}
@media (min-width: 769px) {
    .company {
        margin-top: 160px;
    }
    .company_box {
        width: 572px;
        margin-top: 80px;
    }
    .company_box dl {
        gap: 64px;
    }
    .company_box dl + dl {
        margin-top: 32px;
    }
    .company_box dl > dt {
        font-size: 12px;
        line-height: 3;
        letter-spacing: 0.1em;
        width: 5em;
    }
    .company_box dl > dd {
        flex: 1;
        font-size: 14px;
        line-height: 3;
        letter-spacing: 0.1em;
    }
    .company_box_small {
        font-size: 12px;
        letter-spacing: 0.1em;
    }
}
@media (max-width: 768px) {
    .company {
        margin-top: 118rem;
        padding-bottom: 80rem;
    }
    .company_box {
        margin-top: 42rem;
        margin-inline: 30rem;
    }
    .company_box dl {
        gap: 5.5rem;
        align-items: start;
        flex-direction: column;
    }
    .company_box dl + dl {
        margin-top: 26rem;
    }
    .company_box dl > dt {
        font-size: 12rem;
        line-height: 3;
        letter-spacing: 0.1em;
    }
    .company_box dl > dd {
        font-size: 12rem;
        line-height: 1.75;
        letter-spacing: 0.1em;
    }
    .company_box_small {
        font-size: 10rem;
        letter-spacing: 0.1em;
    }
}

/* animation */
.animation_ready .about_ttl,
.animation_ready .message_box_txt_wrap .message_box_txt_main,
.animation_ready .message_box_txt_wrap .message_box_txt_name,
.animation_ready .company_box {
    opacity: 0;
    filter: blur(10px);
    transition: opacity 1.6s, filter 1.6s;
}
.animation_loaded .about_ttl.is_animated,
.animation_loaded .message_box_txt_wrap.is_animated .message_box_txt_main,
.animation_loaded .message_box_txt_wrap.is_animated .message_box_txt_name,
.animation_loaded .company_box.is_animated {
    opacity: 1;
    filter: blur(0px);
}
.animation_loaded .message_box_txt_wrap.is_animated .message_box_txt_name {
    transition-delay: 0.8s;
}
.animation_ready .history_set_bg_wrap img,
.animation_ready .message_box_img_wrap img {
    transition: scale 1.6s;
}
.animation_loaded .history_set_bg_wrap.is_animated img,
.animation_loaded .message_box_img_wrap.is_animated img {
    scale: 1;
}
@media (min-width: 769px) {
    .animation_ready .history_set_bg_wrap img,
    .animation_ready .message_box_img_wrap img {
        scale: 1.05;
    }
}
@media (max-width: 768px) {
    .animation_ready .history_set_bg_wrap img,
    .animation_ready .message_box_img_wrap img {
        scale: 1.1;
    }
}

.animation_ready .history_list .swiper-slide dl {
    opacity: 0;
    filter: blur(10px);
    transition: opacity 1.6s, filter 1.6s;
}
.animation_loaded .history_list .swiper-slide.is_show dl {
    opacity: 1;
    filter: blur(0px);
}

.animation_ready .history_list .swiper-slide dl::before {
    transform-origin: 50% 0%;
    scale: 1 0;
    transition: scale 1.6s;
}
.animation_loaded .history_list .swiper-slide.is_show dl::before {
    scale: 1 1;
}
