@charset "UTF-8";

@import url('https://fonts.googleapis.com/css2?family=Montserrat+Alternates:wght@600&family=Montserrat:ital,wght@1,100..900&family=Zen+Kaku+Gothic+New:wght@400;500;700&display=swap');

body {
    font-family: 'Montserrat', 'Hiragino Sans', 'Noto Sans JP', 'meiryo', sans-serif;
    font-optical-sizing: auto;
    font-style: normal;
    text-align: justify;
    margin: 0 auto;
    text-align: left;
    word-break: break-word;
    font-weight: 500;
    line-height: 1;
    color: #000;
}

p {
    font-size: 1.111vw;
    line-height: 2;
    letter-spacing: 0.08em;
    font-family: 'Hiragino Sans', 'Noto Sans JP', 'meiryo', sans-serif;
}

span {
    display: inline-block;
}

h1 a {
    display: initial;
}

img {
    display: inline-block;
    width: 100%;
    height: initial;
}

a {
    display: inline-block;
    cursor: pointer;
}

a:hover {
    opacity: 0.6;
}

.sp_br {
    display: none;
}

.site-header {
    z-index: 50;
}

.fv {
    position: relative;
    margin: 0;
    margin-bottom: clamp(50px, calc(100/1440*100vw), 150px);
}

.fv_txt {
    position: absolute;
    top: 21.5277vw;
    left: 8.333vw;
    color: #FFF;
}

.fv_title {
    font-family: "Montserrat Alternates", sans-serif;
    font-weight: 600;
    font-size: 8.3333vw;
    line-height: 1.2;
    font-weight: 600;
    margin-bottom: 0.5555vw;
}

.fv_txt01 {
    font-size: 1.5277vw;
    letter-spacing: 0.1em;
    line-height: 1.6;
    font-weight: 600;
    margin-bottom: 1.25vw;
}

.fv_txt02 {
    font-family: 'Montserrat', sans-serif;
    color: #D33214;
    font-size: 1.3888vw;
    letter-spacing: 0.02em;
    line-height: 1.1;
    font-weight: 500;
}

.fv_latest_article {
    position: absolute;
    right: 2.0833vw;
    bottom: 5.2083vw;
}

.fv_latest_article a {
    width: 27.777vw;
    display: flex;
    align-items: center;
    background-color: rgba(255, 255, 255, 0.8);
}

.fv_latest_article_img img {
    width: 9.5833vw;
    height: 6.9444vw;
}

.fv_latest_article_txt {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 0.8333vw 0;
    padding: 0 1.0416vw;
}

.fv_latest_article_title {
    font-family: "Zen Kaku Gothic New", sans-serif;
    font-size: 0.90277vw;
    letter-spacing: 0.08em;
    line-height: 1.4;
    font-weight: bold;
    width: 100%;
}

.fv_latest_article_date {
    font-family: 'Montserrat', sans-serif;
    font-size: 0.7638vw;
    letter-spacing: 0.02em;
    line-height: 1.3;
}

.fv_latest_article_more {
    font-family: 'Montserrat', sans-serif;
    font-size: 0.7638vw;
    letter-spacing: 0.02em;
    line-height: 1.3;
    text-decoration: underline;
}

.marquee {
    position: relative;
    /* margin-top: -5vw; */
    margin-top: 0;
    padding: 0 !important;
}

.marquee_txt,
.marquee_img {
    overflow: hidden;
    white-space: nowrap;
    display: flex;
    align-items: center;
}

.marquee_txt .marquee_inner {
    display: flex;
    animation: marqueeSlide01 40s linear infinite;
    position: relative;
    /* isolation: isolate; */
}

.marquee_txt p {
    position: absolute;
    left: 50%;
    bottom: 0;
    transform: translate(-50%, 50%);
    font-size: 8.3333333333vw;
    max-width: initial;
    white-space: nowrap;
    color: #ffffff;
    mix-blend-mode: difference;
    font-family: "Montserrat", sans-serif;
    font-weight: 100;
    line-height: 1;
}

.marquee_txt p::before {
    content: "LIFT DESIGN SERVICE LIFT DESIGN SERVICE";
    position: absolute;
    inset: 0;
    color: black;
    -webkit-clip-path: inset(50% 0 0 0);
    clip-path: inset(50% 0 0 0);
}


.marquee_img .marquee_inner {
    display: flex;
    animation: marqueeSlide02 40s linear infinite;
}

.marquee_txt img {
    width: auto;
    height: 10.1388vw;
    margin-right: 4.166vw;
    flex-shrink: 0;
}

.marquee_img img {
    width: auto;
    height: 22.2222vw;
    margin-right: 1.3888vw;
    flex-shrink: 0;
}

/* 無限ループアニメーション */
@keyframes marqueeSlide01 {
    from {
        transform: translateX(0);
    }

    to {
        transform: translateX(-50%);
    }
}

@keyframes marqueeSlide02 {
    from {
        transform: translateX(-50%);
    }

    to {
        transform: translateX(0);
    }
}

section {
    margin: 5.2083vw 0;
}

.wrapper {
    padding: 0 8.3333vw;
}

.title {
    margin-bottom: 2.083vw;
}

.h2_title {
    font-family: "Zen Kaku Gothic New", sans-serif;
    color: #D33214;
    font-size: 1.25vw;
    letter-spacing: 0.08em;
    line-height: 1.7;
    font-weight: bold;
}

.h2_subtitle {
    font-size: 8.3333vw;
    letter-spacing: 0;
    line-height: 1.2;
    font-weight: 600;
}

.h2_subtitle_small {
    color: #111111;
    display: inline-block;
    font-size: 2.7777vw;
    letter-spacing: 0;
    font-weight: 100;
    margin-left: 1.25vw;
}

.concept_txt01 {
    font-size: 1.25vw;
    letter-spacing: 0.08em;
    line-height: 1.7;
    font-weight: bold;
}

.concept_link {
    display: flex;
    margin: 4.1666vw 0 8.3333vw 0;
}

.concept_link a {
    width: 25%;
    height: 41.666vw;
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
    position: relative;
}

.concept_link_txt {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    margin: auto;
    color: #FFF;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
}

.concept_link01 {
    background-image: url(../img/concept01.webp);
}

.concept_link02 {
    background-image: url(../img/concept02.webp);
}

.concept_link03 {
    background-image: url(../img/concept03.webp);
}

.concept_link04 {
    background-image: url(../img/concept04.webp);
}

.concept_link_num {
    font-size: 1.3888vw;
    letter-spacing: 0.05em;
    line-height: 1.7;
    font-weight: 500;
}

.concept_link_en {
    font-size: 2.0833vw;
    letter-spacing: 0.02em;
    line-height: 1.7;
    font-weight: 600;
}

.concept_link_title {
    font-family: "Zen Kaku Gothic New", sans-serif;
    font-size: 0.9722vw;
    letter-spacing: 0.08em;
    line-height: 1.7;
    font-weight: 600;
}

.concept_list {
    padding: 0 3.4722vw;
}

.concept_list li {
    display: flex;
    align-items: center;
    gap: 2.7777vw;
    margin-bottom: 2.777vw;
}

.concept_list li:nth-of-type(2),
.concept_list li:nth-of-type(4) {
    display: flex;
    justify-content: end;
}

.concept_list_img {
    width: 37.5vw;
}

.concept_list_txt {
    width: 47.9166vw;
}

.concept_list_title {
    display: inline-block;
    gap: 0.6944vw;
    background-color: #111111;
    color: #FFF;
    padding: 0.1388vw 1.3888vw;
    margin-bottom: 2.0833vw;
}

.concept_list_num {
    font-family: 'Montserrat', sans-serif;
    font-size: 1.3888vw;
    letter-spacing: 0;
    line-height: 1.7;
    font-weight: 600;
}

.concept_list_h3 {
    font-family: "Zen Kaku Gothic New", sans-serif;
    display: inline-block;
    font-size: 1.0416vw;
    letter-spacing: 0.1em;
    line-height: 1.6;
    font-weight: bold;
    margin-left: 0.6944vw;
    padding-left: 1.3888vw;
    position: relative;
}

.concept_list_h3::before {
    position: absolute;
    content: "/";
    top: 0;
    left: 0;
    bottom: 0;
    left: 0;
    margin: auto;
    font-size: 1.0416vw;
    letter-spacing: 0.1em;
}

.concept_list_txt01 {
    font-family: "Zen Kaku Gothic New", sans-serif;
    font-size: 1.8055vw;
    letter-spacing: 0.08em;
    line-height: 1.8;
    font-weight: bold;
    margin-bottom: 2.0833vw;
}

.concept_list_txt02 {
    line-height: 1.8;
    letter-spacing: 0.08em;
}

.flow .title {
    display: flex;
    align-items: center;
    width: 102%;
}

.flow .h2_title {
    width: 17.4305vw;
}

.flow .h2_subtitle_small {
    font-family: 'Montserrat', sans-serif;
    margin-left: 0;
    line-height: 1.2;
    font-weight: 100;
}

.flow .h2_subtitle {
    width: 67.041vw;
}

.flow_list {
    margin-bottom: 7.6388vw;
}

.flow_list li {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 2.7777vw;
    margin-bottom: 1.3888vw;
}

.flow_list_title {
    width: 27.777vw;
    height: 8.3333vw;
    color: #FFF;
    background-color: #D84E19;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
}

.flow_list_num {
    font-family: "Montserrat", sans-serif;
    font-size: 1.25vw;
    letter-spacing: 0;
    line-height: 1.2;
    font-weight: 600;
    position: absolute;
    top: 0.555vw;
    left: 0.7638vw;
}

.flow_list_h3 {
    font-size: 1.3888vw;
    letter-spacing: 0.08em;
    line-height: 1.6;
    font-weight: bold;
}

.flow_list_txt {
    width: 50vw;
    letter-spacing: 0.04em;
    line-height: 1.5;
}

.service_marquee img {
    width: auto;
    height: 33.333vw;
    margin-right: 2.0833vw;
    flex-shrink: 0;
}

.liftdesign_column .wrapper {
    padding: 0 5.6944vw 0 8.3333vw;
}

.liftdesign_column .title {
    display: flex;
    flex-wrap: wrap;
    align-items: end;
}

.liftdesign_column .h2_subtitle_small {
    margin-left: 0;
    width: 100%;
}

.liftdesign_column .h2_title {
    margin-bottom: 1.5vw;
    margin-left: 3.819vw;
}

.column_list {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    margin-left: 2.7777vw;
    gap: 2.7777vw 0;
}

.column_list li {
    width: 26.388vw;
}

.column_list_img {
    margin-bottom: 1.3888vw;
}

.column_list_img img {
    width: 100%;
    height: 17.638vw;
    object-fit: cover;
}

.column_list_date {
    display: inline-block;
    font-size: 1.1111vw;
    letter-spacing: 0.08em;
    line-height: 1.2;
    font-weight: 600;
    margin-right: 1.3888vw;
}

.column_list_category {
    color: #FFF;
    background-color: #111;
    padding: 0.2388vw 0.8333vw 0.1388vw 0.8333vw;
    font-size: 0.9027vw;
    letter-spacing: 0.08em;
    line-height: 1.2;
    font-weight: 600;
    border-radius: 100px;
}

.column_list_title {
    font-size: 1.25vw;
    letter-spacing: 0.08em;
    line-height: 1.2;
    font-weight: bold;
    margin-top: 1.0416vw;
}

.column_btn {
    display: block;
    width: 20.833vw;
    height: 4.1666vw;
    margin: 6.25vw auto 0 auto;
    display: flex;
    justify-content: center;
    align-items: center;
    border: 1px solid #111111;
    border-radius: 100px;
    font-size: 1.25vw;
    letter-spacing: 0.04em;
    font-weight: bold;
    line-height: 1;
}


@media screen and (max-width:768px) {
    .pc_br {
        display: none;
    }

    .sp_br {
        display: block;
    }

    p {
        font-size: 4.102vw !important;
        line-height: 1.5;
    }

    .fv_txt {
        top: 45vw;
        left: 5%;
        text-shadow: 2px 3px 6px rgba(0, 0, 0, 0.16);
    }

    .fv_txt02 {
        text-shadow: 0 0 10px #FFF;
    }

    .fv_title {
        font-size: 12vw;
    }

    .fv_img img {
        height: 120vw;
    }

    .fv_latest_article {
        width: 90%;
        left: 0;
        right: 0;
        margin: auto;
        bottom: 10vw;
    }

    .fv_latest_article a {
        width: 100%;
    }

    .fv_latest_article_img {
        width: 35%;
    }

    .fv_latest_article_img img {
        width: 100%;
        height: 22vw;
        object-fit: cover;
    }

    .fv_latest_article_txt {
        width: 65%;
        padding: 3vw;
        gap: 2vw 0;
    }

    .fv_latest_article_title {
        font-size: 3.5vw !important;
    }

    .fv_latest_article_date,
    .fv_latest_article_more {
        font-size: 3vw !important;
    }

    .marquee_img {
        margin-top: 10vw;
    }

    .marquee_img img {
        height: 40vw;
        margin-right: 4vw;
    }

    .wrapper {
        padding: 0 5.128vw;
    }

    .h2_title {
        font-size: 3.25vw;
    }

    .h2_subtitle {
        font-size: 10vw;
    }

    .h2_subtitle_small {
        font-size: 4.5vw;
    }

    .title {
        margin-bottom: 5vw;
    }

    .concept {
        padding-bottom: 0;
    }

    .concept_txt01 {
        font-weight: 500;
    }

    .concept_link {
        flex-wrap: wrap;
    }

    .concept_link a {
        width: 50%;
        height: 50vw;
    }

    .concept_link_num {
        font-size: 4vw;
    }

    .concept_link_en {
        font-size: 5vw;
    }

    .concept_link_title {
        font-size: 2.9722vw;
    }

    .concept_list {
        padding: 0 5.128vw;
    }

    .concept_list li {
        flex-direction: column;
        margin-bottom: 10vw;
    }

    .concept_list_txt {
        width: 100%;
    }

    .concept_list_img {
        width: 100%;
        margin-bottom: 5vw;
    }

    .concept_list_img img {
        height: 60vw;
        object-fit: cover;
    }

    .concept_list_title {
        padding: 1vw 3vw;
        margin-bottom: 5vw;
    }

    .concept_list_num {
        font-size: 5vw;
    }

    .concept_list_h3,
    .concept_list_h3::before {
        font-size: 3vw;
    }

    .concept_list_h3 {
        padding-left: 3vw;
    }

    .concept_list_txt01 {
        font-size: 6vw !important;
        margin-bottom: 5vw;
    }

    .flow {
        padding-bottom: 0;
    }

    .flow .title {
        width: 100%;
        flex-direction: column;
    }

    .flow .h2_title,
    .flow .h2_subtitle {
        width: 100%;
    }

    .flow .h2_subtitle_small {
        margin-left: 3vw;
    }

    .flow_list li {
        flex-direction: column;
        margin-bottom: 8vw;
        gap: 5vw;
    }

    .flow_list_title {
        width: 100%;
        height: 13vw;
    }

    .flow_list_txt {
        width: 100%;
    }

    .flow_list_h3 {
        font-size: 5vw;
    }

    .flow_list_num {
        font-size: 4vw;
        top: 1.5vw;
        left: 3vw;
    }

    .liftdesign_column .wrapper {
        padding: 0 5.128vw;
    }

    .liftdesign_column .h2_title {
        margin-left: 0;
    }

    .column_list {
        margin-left: 0;
        gap: 5vw 0;
    }

    .column_list li {
        width: 48%;
    }

    .column_list li a {
        display: block;
        width: 100%;
    }

    .column_list_img {
        margin-bottom: 3vw;
    }

    .column_list_img img {
        height: 28.5vw;
    }

    .column_list_date {
        font-size: 3vw;
    }

    .column_list_category {
        padding: 1vw 3vw 0.5vw 3vw;
        font-size: 2.5vw;
    }

    .column_list_title {
        font-size: 3.25vw;
        margin-top: 3vw;
        font-weight: 500;
    }

    .column_btn {
        width: 50vw;
        height: 10vw;
        font-size: 3.25vw;
    }
}

.fv_latest_article_title {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

@media (min-width: 769px) {
    .fv_latest_article_title {
        -webkit-line-clamp: 2;
    }
}

@media (max-width: 768px) {
    .fv_latest_article_title {
        -webkit-line-clamp: 3;
    }
}


/* アニメーション */
/* アニメーションスタートの遅延時間を決めるCSS*/

.fadeUpTrigger,
.fadeLeftTrigger,
.fadeRightTrigger {
    opacity: 0;
}

.delay-time02 {
    animation-delay: 0.2s;
}

.delay-time04 {
    animation-delay: 0.4s;
}

.delay-time06 {
    animation-delay: 0.6s;
}

.delay-time08 {
    animation-delay: 0.8s;
}

.delay-time10 {
    animation-delay: 1s;
}

.delay-time12 {
    animation-delay: 1.2s;
}

.delay-time14 {
    animation-delay: 1.4s;
}

.delay-time16 {
    animation-delay: 1.6s;
}

.delay-time18 {
    animation-delay: 1.8s;
}

.delay-time20 {
    animation-delay: 2.0s;
}

/*==================================================
スタート時は要素自体を透過0にするためのopacity:0;を指定する
===================================*/

.fade {
    opacity: 0;
}

/*==================================================
動き自体の指定：今回は「ふわっ」
===================================*/

.fadeUp {
    animation-name: fadeUpAnime;
    animation-duration: 1s;
    animation-fill-mode: forwards;
    opacity: 0;
}

@keyframes fadeUpAnime {
    from {
        opacity: 0;
        transform: translateY(100px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* 左から */

.fadeLeft {
    animation-name: fadeLeftAnime;
    animation-duration: 1s;
    animation-fill-mode: forwards;
    opacity: 0;
}

@keyframes fadeLeftAnime {
    from {
        opacity: 0;
        transform: translateX(-100px);
    }

    to {
        opacity: 1;
        transform: translateX(0);
    }
}

/* 右から */

.fadeRight {
    animation-name: fadeRightAnime;
    animation-duration: 1s;
    animation-fill-mode: forwards;
    opacity: 0;
}

@keyframes fadeRightAnime {
    from {
        opacity: 0;
        transform: translateX(100px);
    }

    to {
        opacity: 1;
        transform: translateX(0);
    }
}

.rotateY {
    animation-name: rotateYAnime;
    animation-duration: 1s;
    animation-fill-mode: forwards;
}

@keyframes rotateYAnime {
    from {
        transform: rotateY(0);
    }

    to {
        transform: rotateY(-360deg);
    }
}

/* 20251117追加分 テキストフロー */
.marqueeText {
    overflow-x: scroll;
    touch-action: none;
    overflow-y: hidden;
    position: absolute;
    left: 0;
    right: 0;
    /* bottom: 0; */
    max-width: 100%;
    margin: 0;
    /* padding-block: 70px; */
    height: clamp(125px, calc(250/1200*100vw), 250px);
    bottom: calc(clamp(125px, calc(250/1200*100vw), 250px) * -1 /2);
    display: flex;
    align-items: center;

    scrollbar-width: none;
    -ms-overflow-style: none;
    pointer-events: none;
}

.marqueeText::-webkit-scrollbar {
    display: none;
    /* Chrome, Safari */
}

.marqueeText_slider {
    display: inline-block;
    white-space: nowrap;
}

.marqueeText_text {
    position: relative;
    display: inline-block;
}

.marqueeText_text_p,
.marqueeText_text::before {
    display: inline-block;
    padding-inline: 4vw;
    font-size: max(8.3333333333vw, 45px) !important;
    white-space: nowrap;
    font-family: "Montserrat", sans-serif;
    font-weight: 100;
    line-height: 2;
    letter-spacing: 0.08em;
}

.marqueeText_text_p {
    position: relative;
    color: #ffffff;
    mix-blend-mode: difference;
    clip-path: inset(0 0 50% 0);
}

.marqueeText_text::before {
    content: "LIFT DESIGN SERVICE LIFT DESIGN SERVICE";
    position: absolute;
    top: 0;
    left: 0;
    color: black;
    clip-path: inset(50% 0 0 0);
}


.fv {
  position: relative;
  /* overflow: hidden; */
  z-index: 1;
}

.fv-slider.js-fv-slider {
  position: relative;
  width: 100%;
  height: 100vh!important;
  min-height: 520px;
}

.fv-slide,
.fv-slide-bg {
  display: none;
}

.vegas-slide-inner {
  animation-name: vegas-kenburns-soft !important;
}

@keyframes vegas-kenburns-soft {
  from { transform: scale(1.15); }
  to   { transform: scale(1.00); }
}

@media screen and (max-width:768px) {
  .fv-slider.js-fv-slider {
    height: 120vw !important;
    min-height: initial;
  }

  .vegas-slide-inner {
    animation-name: vegas-kenburns-soft-sp !important;
  }

  @keyframes vegas-kenburns-soft-sp {
    from { transform: scale(1.3); }
    to   { transform: scale(1.00); }
  }
}
