@charset "utf-8";

/*==================================================
---COMMON
====================================================*/
body {
    line-height: 28px;
    background: #FDFDFD;
    overflow: auto;
    position: relative;
    z-index: -2;
    font-feature-settings: "palt";
    letter-spacing: .06em;

    color: #021121;
    word-wrap: break-word;
    font-weight: 500;
    font-style: normal;
    min-width: 1164px;
    font-family: YakuHanJPs_Noto, "Noto Sans JP", sans-serif;
    font-style: normal;
    font-optical-sizing: auto;
    -webkit-font-smoothing: antialiased;
    /* macOS/Safari用：文字を細く鮮明にする */
    -moz-osx-font-smoothing: grayscale;
    /* Firefox用 */
}

.bodyWrap {
    animation-name: opacity;
    animation-duration: 1.8s;
}

.enFont {
    font-family: "Syncopate", sans-serif;
    font-weight: 700;
    font-style: normal;
}

body a {
    color: #021121;
    display: block;
}

img {
    -webkit-backface-visibility: hidden;
    vertical-align: bottom;
    image-rendering: -webkit-optimize-contrast;
}

@keyframes opacity {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }
}

.spheader {
    display: none;
}


.textAnime span {
    display: inline-block;
    transform: translate(0, 101%);
    transition: transform 1.2s cubic-bezier(0.36, 0.14, 0, 1);
    opacity: 0;
    -webkit-transform: translate3d(0, 0.2em, 0);
    transform: translate3d(0, 0.2em, 0);
    transition: 400ms;
    transition-property: opacity, -webkit-transform;
    transition-property: opacity, transform;
    transition-property: opacity, transform, -webkit-transform;
}

.textAnime.-visible span {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
}

.textAnime span:nth-child(2) {
    transition-delay: 30ms;
}

.textAnime span:nth-child(3) {
    transition-delay: 60ms;
}

.textAnime span:nth-child(4) {
    transition-delay: 90ms;
}

.textAnime span:nth-child(5) {
    transition-delay: 120ms;
}

.textAnime span:nth-child(6) {
    transition-delay: 150ms;
}

.textAnime span:nth-child(7) {
    transition-delay: 180ms;
}

.textAnime span:nth-child(8) {
    transition-delay: 210ms;
}

.textAnime span:nth-child(9) {
    transition-delay: 240ms;
}

.textAnime span:nth-child(10) {
    transition-delay: 270ms;
}

.textAnime span:nth-child(11) {
    transition-delay: 300ms;
}

.textAnime span:nth-child(12) {
    transition-delay: 330ms;
}

.textAnime span:nth-child(13) {
    transition-delay: 360ms;
}

.textAnime span:nth-child(14) {
    transition-delay: 390ms;
}

.textAnime span:nth-child(15) {
    transition-delay: 420ms;
}

.textAnime span:nth-child(16) {
    transition-delay: 450ms;
}

.textAnime span:nth-child(17) {
    transition-delay: 480ms;
}

.textAnime span:nth-child(18) {
    transition-delay: 510ms;
}

.textAnime span:nth-child(19) {
    transition-delay: 540ms;
}

.textAnime span:nth-child(20) {
    transition-delay: 570ms;
}


html.lenis,
html.lenis body {
    height: auto;
}

.lenis.lenis-smooth {
    scroll-behavior: auto !important;
}

.lenis.lenis-smooth [data-lenis-prevent] {
    overscroll-behavior: contain;
}



.visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}



/* --- ベース構成（ご提示の数値を反映） --- */
.comonCta {
    display: flex;
    column-gap: 1px;
    text-decoration: none;
    color: #fff;
    letter-spacing: 0;
}

.comonCta span {
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--blue);
    border-radius: 4px;
    line-height: 1;
    height: 48px;
    position: relative;
    overflow: hidden;
    /* 中のアニメーションをマスク */
}

.comonCta .text {
    width: 144px;
    font-size: 13px;
    font-weight: bold;
}

.comonCta .icon {
    width: 48px;
}

/* --- テキストとアイコンを最前面に固定 --- */
.comonCta .text-inner,
.comonCta .icon svg {
    position: relative;
    z-index: 10;
    /* 黒い背景より上に表示 */
    transition: color 0.3s;
}

/* --- 背景アニメーション（下から上へ突き抜ける） --- */
/* ロード時に動かないよう、transform-originを切り替えて制御します */
.comonCta span::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background: #072B46;
    z-index: 1;

    /* 初期状態：下側に潰れた状態 */
    transform: scaleY(0);
    transform-origin: top;
    /* 外す時は上に向かって縮む */
    transition: transform 0.4s cubic-bezier(0.6, 0, 0.2, 1);
}

.comonCta .text-inner {
    background: none;
}

.comonCta .text-inner::before {
    opacity: 0;
}

.comonCta:hover span::before {
    /* ホバー時：下から上へ伸びる */
    transform: scaleY(1);
    transform-origin: bottom;
}

/* --- 矢印アニメーション（左から右へ流れる） --- */
.comonCta:hover .icon svg {
    animation: arrowMoveRight 0.5s cubic-bezier(0.6, 0, 0.2, 1) forwards;
}

@keyframes arrowMoveRight {
    0% {
        transform: translateX(0);
        opacity: 1;
    }

    45% {
        transform: translateX(150%);
        opacity: 0;
    }

    46% {
        transform: translateX(-150%);
        opacity: 0;
    }

    100% {
        transform: translateX(0);
        opacity: 1;
    }
}





.comonSbtn {
    width: var(--scale-158);
    display: flex;
    letter-spacing: 0;
    justify-content: space-between;
    align-items: center;
    color: #fff;
    font-size: var(--scale-13);
    position: relative;
    font-weight: 700;
    text-decoration: none;
    overflow: hidden;
}

.comonSbtn span {
    position: relative;
    z-index: 2;
}

.comonSbtn::after {
    content: "";
    position: absolute;
    background: #fff;
    height: 1px;
    right: 0;
    left: 0;
    bottom: 0;
    z-index: 1;
    transform: scaleX(1);
    transform-origin: left;
    transition: transform 0.4s cubic-bezier(0.6, 0, 0.2, 1);
}

.comonSbtn:hover::after {
    transform: scaleX(0);
    transform-origin: right;
}

.comonSbtn .icon {
    display: flex;
    align-items: center;
    transition: transform 0.4s;
}

.comonSbtn:hover .icon svg {
    animation: arrowLoop 0.5s cubic-bezier(0.6, 0, 0.2, 1) forwards;
}


@keyframes arrowLoop {
    0% {
        transform: translateX(0);
        opacity: 1;
    }

    49% {
        transform: translateX(20px);
        opacity: 0;
    }

    50% {
        transform: translateX(-20px);
        opacity: 0;
    }

    100% {
        transform: translateX(0);
        opacity: 1;
    }
}


#hero {
    position: relative;
    overflow: hidden;
}






#hero .mainSwiper img {
    width: 100%;
    object-fit: cover;
    height: var(--viewport-height);
}

header {
    position: fixed;
    z-index: 13;
    padding: 25px 34px;
    box-sizing: border-box;
    width: 100%;
    min-width: 1164px;
    border-bottom: solid 1px rgba(255, 255, 255, 0.50);
    top: 0;
    transition: .35s;
}

header .blacklogo {
    opacity: 0;
    position: absolute;
    left: 2.778vw;
}

.udPage header.change-color .blacklogo {
    left: 2.778vw;
}

header.change-color .blacklogo {
    opacity: 1;
}

header.change-color .Whitelogo {
    opacity: 0;
}

header.change-color {
    background: #FDFDFD;
    border-bottom: solid 1px #E8E8E8;
    padding: 20px 2.778vw;
}



.udPage header {
    background: #FDFDFD;
    border-bottom: solid 1px #E8E8E8;
}

.udPage header .main-nav a {
    color: #021121;
}

.udPage header .blacklogo {
    left: 34px;
}

.udPage header .Whitelogo {
    opacity: 0;
}

.udPage header .blacklogo {
    opacity: 1;
}


header.change-color .main-nav a {
    color: #021121;
}



header.change-color .site-header .logo img {
    width: 216px;
}

header .nav-wrapper {
    display: flex;
    column-gap: 34px;
    align-items: center;
}

header .site-header a {
    color: #fff;
    font-weight: 700;
    letter-spacing: 0;
}

header .site-header {
    display: flex;

    align-items: center;
    justify-content: space-between;
}

header .site-header .logo img {
    width: 228px;
    transition: .35s;
}

header .main-nav ul {
    display: flex;
    column-gap: 24px;
}





header .h_nav p::before {
    content: attr(data-replace);
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--blue);
    transform: rotateX(90deg);
    opacity: 0;
    transform-origin: 50% 100%;
    transform: translate(0, 30%);
    transition: 0.5s, transform 0.5s cubic-bezier(0.36, 0.14, 0, 1);
}

header .h_nav:hover {
    color: transparent;
}

header .h_nav:hover .text {
    transform: translate(0, -40%);
    transform: translateY(-40%) scaleY(0);
}

header .h_nav .text {
    display: inline-block;
    transition: 0.5s, transform 0.5s cubic-bezier(0.36, 0.14, 0, 1);
}

header .h_nav:hover p::before {
    transform: translate(0, 0);
    opacity: 1;
    color: var(--blue);
}

header .h_nav p {
    position: relative;
    display: inline-block;
}

header .h_nav {
    position: relative;
    display: inline-block;
    padding: 9px 0;
}



#hero .mainSwiper {
    position: relative;
}

#hero .mainSwiper::after {
    content: "";
    position: absolute;
    background: #00121F;
    right: 0;
    top: 0;
    left: 0;
    bottom: 0;
    z-index: 2;
    opacity: .48;
}



#hero .swiper-slide {
    overflow: hidden;
    flex-shrink: 0;
    width: 100%;
    height: 100%;
    position: relative;
    transition-property: transform;
}


#hero .inWrap {
    display: block;
}

#hero h2 {
    font-size: var(--scale-56);
    font-weight: 700;
    letter-spacing: .08em;
    line-height: 70px;
    margin-bottom: var(--scale-30);
}

#hero .inWrap span {
    display: inline-block;
    position: relative;
}

#hero.scrollin .mainCopyBox .inWrap {
    overflow: hidden;
}

#hero.scrollin .mainCopyBox .inWrap span {
    animation: titleBtmFade 1.2s cubic-bezier(.36, .14, 0, 1) both .3s;
}

#hero .mainCopyBox .inWrap span {
    -webkit-transform: translate(0, 100%);
    transform: translate(0, 100%);
}


@keyframes titleBtmFade {
    0% {
        -webkit-transform: translate(0, 100%);
        transform: translate(0, 100%);
    }

    100% {
        transform: translate(0, 0);
        -webkit-transform: translate(0, 0);
    }
}





#hero .inWrap span::after {
    content: "";
    position: absolute;
    background: #fff;
    height: var(--scale-4);
    right: 0;
    left: 0;
    transition: 1.4s cubic-bezier(.8, 0, 0, 1);
    transition-delay: .7s;
    width: 0;
    bottom: var(--scale-6);
}

#hero.scrollin .inWrap span::after {
    width: 100%;
}

#hero .subcopy,
#hero .comonSbtn {
    opacity: 0;
    transition: 1s cubic-bezier(.36, .14, 0, 1);
    transition-delay: 2.1s;
    transform: translate(0, 16px);
}

#hero.scrollin .subcopy,
#hero.scrollin .comonSbtn {
    opacity: 1;
    transform: translate(0, 0);
}

#hero .loopSlideWrap {
    opacity: 0;
    transition: 1.4s cubic-bezier(.36, .14, 0, 1);
    transition-delay: 2.5s;
    transform: translate(0, 16px);
}

#hero.scrollin .loopSlideWrap {
    opacity: 1;
    transform: translate(0, 0);
}


#hero .mainCopyBox {
    position: absolute;
    z-index: 3;
    left: 5.556vw;
    bottom: 26vh;
    color: #fff;
}

#hero .hero__tagline {
    display: flex;
    align-items: center;
    color: #fff;
}

#hero .hero__lead {
    position: absolute;
    right: var(--scale-34);
    top: var(--scale-144);
    font-size: var(--scale-12);
    z-index: 3;
}

#hero .mainCopyBox p {
    letter-spacing: .04em;
    font-feature-settings: initial;
    margin-bottom: var(--scale-80);
}


#hero .loopSlide {
    display: flex;
    width: 100vw;
    height: 144px;
    position: relative;
}

@keyframes slide1-reverse {
    0% {
        transform: translateX(100%);
    }

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

@keyframes slide2-reverse {
    0% {
        transform: translateX(0%);
    }

    100% {
        transform: translateX(-200%);
    }
}

#hero .loopSlideWrap {
    position: absolute;
    bottom: -6px;
    z-index: 3;
}

.loopSlide img:first-child {
    animation: slide1-reverse 300s -150s linear infinite;
}

.loopSlide img:last-child {
    animation: slide2-reverse 300s linear infinite;
}
/* Safari向けにベンダープレフィックス版も追加しておくとより確実 */
@-webkit-keyframes slide1-reverse {
    0% { -webkit-transform: translate3d(100%, 0, 0); }
    100% { -webkit-transform: translate3d(-100%, 0, 0); }
}
@-webkit-keyframes slide2-reverse {
    0% { -webkit-transform: translate3d(0%, 0, 0); }
    100% { -webkit-transform: translate3d(-200%, 0, 0); }
}




.LatestBlog {
    padding: 0 8px;
    margin-top: 40px;
    margin-bottom: var(--scale-232);
}



.LatestBlog .LatestTitle {
    margin-bottom: var(--scale-12);
    font-size: var(--scale-13);
    display: flex;
    align-items: center;
    gap: var(--scale-4);
    padding-left: var(--scale-28);
}

.LatestBlog .LatestTitle .LatestText {
    font-weight: 400;
    color: var(--blue);
    opacity: .5;
}

.LatestBlog .LatestTitle .BlogText {
    color: var(--blue);
}

.LatestBlog .BlogItem {
    display: flex;
    align-items: center;
    border-radius: 8px;
    padding: var(--scale-14) var(--scale-28);
    text-decoration: none;
    background: var(--blue);
}

.LatestBlog .ThumbBox {
    width: 130px;
    height: 80px;
    border-radius: 6px;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-shrink: 0;
    overflow: hidden;
}

.LatestBlog .ThumbBox img {
    width: 136px;
    height: auto;
    border-radius: 4px;
    object-fit: cover;
    aspect-ratio: 16 / 9;
}

/* 中央：コンテンツエリア */
.LatestBlog .ContentBox {
    flex-grow: 1;
    padding: 0 var(--scale-34);
}

.LatestBlog .MetaRow {
    display: flex;
    align-items: center;
    gap: 13px;
    margin-bottom: var(--scale-6);
}

.LatestBlog .DateText {
    font-size: var(--scale-8);
    letter-spacing: 0;
    line-height: 1;
    color: rgba(255, 255, 255, 0.5);
    margin-top: var(--scale-4);
}

.LatestBlog .TagBadge {
    font-size: var(--scale-11);
    font-weight: bold;
    padding: 3px 14px;
    color: var(--blue);
    font-weight: 700;
    background: #fff;
    letter-spacing: 0;
    border-radius: 20px;
    line-height: 1;
}

.LatestBlog .MainTitle {
    font-size: var(--scale-15);
    font-weight: 700;
    letter-spacing: 0.02em;
    color: #fff;
    text-decoration: underline;
}

/* 右側：アクションエリア */
.ActionBox {
    display: flex;
    align-items: center;
    gap: 25px;
}

.LatestBlog .Separator {
    width: 1px;
    height: 40px;
    background-color: rgba(255, 255, 255, 0.3);
}



.LatestBlog .ArrowCircle {
    width: 32px;
    height: 32px;
    background: #fff;
    border-radius: 50%;
    display: flex;
    justify-content: center;
    align-items: center;
    position: relative;
    overflow: hidden;
    transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
}


.LatestBlog .ArrowCircle svg {
    width: 11px;
    height: 13px;
    display: block;
    position: relative;
    z-index: 1;
}

.LatestBlog .BlogItem:hover .ArrowCircle svg {
    animation: ArrowMaskLoop 0.5s cubic-bezier(0.6, 0, 0.2, 1) forwards;
}

@keyframes ArrowMaskLoop {
    0% {
        transform: translateX(0);
        opacity: 1;
    }

    45% {
        transform: translateX(200%);
        /* 右へ消える */
        opacity: 0;
    }

    46% {
        transform: translateX(-200%);
        /* 瞬時に左へワープ */
        opacity: 0;
    }

    100% {
        transform: translateX(0);
        /* 左から元の位置に戻る */
        opacity: 1;
    }
}




#about {
    padding-bottom: var(--scale-180);
    border-bottom: solid 1px rgba(112, 112, 112, 0.2);
    margin-bottom: var(--scale-180);
}



#about.scrollin .secTitle span {
    animation: titleBtmFade 1.4s cubic-bezier(.36, .14, 0, 1) both;
}



#about .secTitle {
    font-size: var(--scale-14);
    font-weight: 700;
    color: var(--blue);
    margin-bottom: var(--scale-24);
    text-align: center;
    overflow: hidden;
    line-height: 1;

}

#about .secTitle span {
    -webkit-transform: translate(0, 100%);
    transform: translate(0, 100%);
    display: block;
}

#about .title {
    font-size: var(--scale-32);
    font-feature-settings: initial;
    text-align: center;
    letter-spacing: .06em;
    overflow: hidden;
    line-height: 1.4;
    font-weight: 700;
    margin-bottom: var(--scale-56);
}

#about.scrollin .title span {
    animation: titleBtmFade 1.4s cubic-bezier(.36, .14, 0, 1) both;
}

#about .title span {
    -webkit-transform: translate(0, 100%);
    transform: translate(0, 100%);
    display: block;
}




#about p {
    font-feature-settings: initial;
    text-align: center;
    line-height: 2;
    font-weight: 400;
    margin-bottom: var(--scale-26);
    letter-spacing: .06em;
}

#about .desBox,
#about .comonSbtn {
    margin-bottom: var(--scale-80);
    opacity: 0;
    transition: 1.2s cubic-bezier(.36, .14, 0, 1) .2s;
}

#about.scrollin .desBox,
#about.scrollin .comonSbtn {
    opacity: 1;
}


#about p:last-child {
    margin-bottom: 0;
}

#about .comonSbtn {
    color: #021121;
    margin: 0 auto;
}


#about .comonSbtn::after {
    background: #021121;
}




.commonTItle .jaITlte {
    color: var(--blue);
    position: relative;
    padding-left: 13px;
    line-height: 1;
    font-weight: 700;
    display: block;
    letter-spacing: 0;
    margin-bottom: var(--scale-14);
}

.commonTItle .jaITlte::after {
    content: "";
    position: absolute;
    background: var(--blue);
    width: 4px;
    height: 4px;
    left: 0;
    top: 7px;
    border-radius: 100vw;
}

.commonTItle .enFont {
    font-size: var(--scale-56);
    line-height: 1;
    text-transform: uppercase;
}

.commonTItle .nams {
    font-family: "Syncopate", sans-serif;
    font-weight: 400;
    font-size: var(--scale-13);
    font-style: normal;
    margin-left: var(--scale-8);
    letter-spacing: 0;
    opacity: .5;
}

.commonTItle .space {
    width: 20px;
}









#service {
    margin-bottom: var(--scale-120);
}

#service .commonTItle {
    margin-bottom: var(--scale-88);
    padding: 0 5.556vw;
}

#service .desBox {
    gap: 32px;
    padding: 0 5.556vw;
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    margin-bottom: var(--scale-39);
}

#service .desBox p {
    grid-column: 8 / -1;
    font-size: var(--scale-22);
    line-height: 1.8;
    letter-spacing: .04em;
}







#service .listBox .enTilte {
    display: flex;
    align-items: center;
    column-gap: var(--scale-13);
    line-height: 1;
    margin-bottom: var(--scale-32);
    text-transform: uppercase;
}

#service .contBox {
    gap: 32px;
    align-items: center;
    padding: 0 5.556vw;
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
}

#service .contBox .imgBox {
    grid-column: 1 / span 6;
    position: relative;
}

#service .contBox .imgBox::after {
    content: "";
    position: absolute;
    background: #E9EBE8;
    left: -100%;
    border-radius: 0 6px 6px 0;
    top: -19%;
    right: 23%;
    bottom: 34%;
}

#service .contBox .imgBox img {
    width: 100%;
    border-radius: 8px;
}

#service .listBox {
    grid-column: 8 / -1;
    margin-top: var(--scale-64);
}

#service .listBox ul {
    list-style: none;
}


#service .listBox ul li {
    padding-top: var(--scale-8);
    position: relative;
    border-top: solid 1px rgba(112, 112, 112, 0.20);

    transition: opacity 0.4s ease, transform 0.4s ease;
    will-change: opacity;
}


#service .listBox ul li a {
    padding-bottom: var(--scale-72);
}

#service .comonCta {
    padding-left: 5.556vw;
    margin-top: var(--scale-32);
}



#service .listBox ul li::after {
    content: "";
    position: absolute;
    background: var(--blue);
    width: var(--scale-56);
    height: 1px;
    left: 0;
    top: -1px;
}

#service .listBox .inflex {
    display: flex;
    justify-content: space-between;
    align-items: end;
}

#service .listBox ul li:last-child a {
    padding-bottom: 0;
}

.commonArrowCircle {
    width: 32px;
    height: 32px;
    background: var(--blue);
    border-radius: 50%;
    display: flex;
    justify-content: center;
    align-items: center;
    position: relative;
    overflow: hidden;
    min-width: 32px;
    transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
}

#service .listBox .enTilte .nam {
    font-size: var(--scale-13);
    font-weight: 400;
    letter-spacing: 0;
    opacity: .5;
}

#service .listBox .enTilte p {
    font-size: var(--scale-11);
    color: var(--blue);
    line-height: 1;
    letter-spacing: 0;
}

#service .textBox .title {
    font-size: var(--scale-26);
    font-weight: 600;
    letter-spacing: 0;
    line-height: 1;
    margin-bottom: var(--scale-16);
}

#service .textBox p {
    font-size: var(--scale-13);
    line-height: 1.5;
}





#service .contBox .imgBox > div {
    position: relative;
    aspect-ratio: 666 / 395;
    overflow: hidden;
    border-radius: 8px;
}


#service .contBox .imgBox img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transform: scale(1.15);
    opacity: 0;
    transition:
        transform 1.2s cubic-bezier(.19, 1, .22, 1),
        opacity 0.4s linear;
    z-index: 1;
}

#service .contBox .imgBox img.active {
    transform: scale(1);
    opacity: 1;
    z-index: 2;
}

#service .contBox .imgBox img:not(.active) {
    z-index: 1;
    transition: transform 0s 0.8s, opacity 0.8s;
}

#service .commonBtnWrap {
    display: flex;
    justify-content: flex-start;
}





#service .listBox ul:hover li {
    opacity: 0.2;
}


#service .listBox ul li:hover {
    opacity: 1;
}

#projects {
    background: #E9EBE8;
    padding: var(--scale-120) 5.556vw;
    overflow: hidden;
}

#projects .commonTItle {
    margin-bottom: var(--scale-80);
}

#projects .imgBox {
    overflow: hidden;
    border-radius: 4px;
    transition: .6s;
}

#projects .imgBox img {
    width: 100%;
    border-radius: 4px;
    transition: 1s cubic-bezier(0.36, 0.14, 0, 1);
    aspect-ratio: 16 / 9;
    object-fit: cover;
    height: auto;
}

#projects .allLink:hover .imgBox img {
    transform: scale(1.08);
}

#projects .allLink:hover .imgBox {
    opacity: .4;
}


#projects .swiper-scrollbar-drag {
    background: var(--blue);
}

#projects .swiper-horizontal > .swiper-scrollbar,
#projects .swiper-scrollbar.swiper-scrollbar-horizontal {
    bottom: 3px;
    height: 3px;
    left: 0;
    width: 100%;
}

#projects .swiper-scrollbar {
    background: rgba(112, 112, 112, 0.20);
}

#projects .cat a {
    display: inline-block;
    color: #fff;
    background: var(--blue);
    border: solid 1px var(--blue);
    border-radius: 100vw;
    padding: 4px 11px 5px 11px;
    line-height: 1;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0;
    transition: 0.4s cubic-bezier(0.76, 0, 0.24, 1);
}

#projects .proTitle {
    font-size: var(--scale-21);
    font-weight: 700;
    letter-spacing: 0;
    margin-top: var(--scale-12);
}

#projects .textBox {
    margin-top: var(--scale-23);
    margin-bottom: var(--scale-86);
}

#projects .nam {
    font-size: var(--scale-13);
    font-weight: 400;
    opacity: .5;
}



#projects .swiper {
    opacity: 0;
    transform: translate(0, 16px);
    transition: 1.2s cubic-bezier(.36, .14, 0, 1);
}

#projects.scrollin .swiper {
    opacity: 1;
    transform: translate(0, 0);
}






#projects .swiper-button-next::after {
    background-image: url(../img/arroesp.svg);
    content: "";
    width: 56px;
    height: 56px;
}

#projects .swiper-button-prev::after {
    background-image: url(../img/llarrowsp.svg);
    content: "";
    width: 56px;
    height: 56px;
}

#projects .swiper-button-next,
#projects .swiper-button-prev {
    top: 41%;
    width: auto;
}

#projects .swiper-button-prev,
#projects .swiper-rtl .swiper-button-next {
    left: -28px;
}

#projects .comonCta {
    justify-content: flex-end;
    margin-top: var(--scale-88);
}

#projects .commonBtnWrap {
    display: flex;
    justify-content: end;
}

.eqBgimg img {
    height: 720px;
    object-fit: cover;
    width: 100%;
}

#equipment {
    margin-bottom: var(--scale-120);
}

#equipment .commonTItle {
    text-align: center;
    position: relative;
    padding-top: var(--scale-56);
    margin-top: -104px;
    margin-bottom: var(--scale-51);
}

#equipment .commonTItle h3,
#equipment .commonTItle p {
    position: relative;
    z-index: 2;
}

#equipment .commonTItle p {
    margin-top: var(--scale-29);
}

#equipment .commonBtnWrap {
    display: flex;
    justify-content: center;
}

#equipment .commonTItle::after {
    content: "";
    position: absolute;
    background: #FDFDFD;
    right: 64px;
    left: 64px;
    height: 100%;
    width: auto;
    z-index: 1;
    top: 0;
    border-radius: 8px 8px 0 0;
}

#equipment .commonTItle .jaITlte {
    display: inline-block;
}


#equipment .listflex {
    list-style: none;
    display: flex;
    max-width: 846px;
    margin: 0 auto;
    flex-wrap: wrap;
    gap: var(--scale-38) 0;
    justify-content: space-between;
    margin-bottom: var(--scale-100);
}

#equipment .listflex li {
    width: 49%;
}

#equipment .listflex a {
    border: solid 1px #E2E2E2;
    background: #fff;
    padding: var(--scale-16) var(--scale-24) var(--scale-27) var(--scale-24);
    border-radius: 4px;
    display: flex;
    align-items: center;
    box-sizing: border-box;
    justify-content: space-between;
    transition: .4s;
    position: relative;
}

#equipment .listflex a:hover {
    box-shadow: 0 0px 50px 0 rgba(11, 114, 190, 0.29);
}

#equipment .listflex .title {
    font-size: var(--scale-18);
    font-weight: 600;
    text-decoration: underline;
    margin-bottom: var(--scale-11);
}

#equipment .listflex .commonArrowCircle {
    position: absolute;
    left: var(--scale-24);
    bottom: -16px;
}

#equipment .listflex img {
    width: 100%;
    max-width: 126px;
}

#equipment .listflex .enFont {
    font-size: var(--scale-13);
    color: var(--blue);
    letter-spacing: 0;
    margin-bottom: var(--scale-13);
}

#equipment .listflex p {
    font-size: var(--scale-13);
    letter-spacing: .1em;
    font-weight: 400;
    line-height: 1.5;
}





#equipment .comonCta {
    justify-content: center;
}

#blog {
    background: #E9EBE8;
    padding: var(--scale-120) 5.556vw;
}


.categorylist {
    display: flex;
    column-gap: 42px;
    align-items: center;
    margin-top: var(--scale-38);
    margin-bottom: var(--scale-44);
}

.categorylist ul {
    list-style: none;
    display: flex;
    column-gap: 8px;
}

.categorylist .enFont {
    font-weight: 400;
    text-transform: uppercase;
    letter-spacing: 0;
}

.categorylist ul a {
    display: block;
    text-align: center;
    border-radius: 100vw;
    color: var(--blue);
    border: solid 1px var(--blue);
    background: #fff;
    line-height: 1;
    font-weight: 700;
    letter-spacing: 0;
    transition: .4s;
    padding: var(--scale-7) var(--scale-24) var(--scale-8) var(--scale-24);
    font-weight: bold;
}


.categorylist .catAc a {
    background: var(--blue);
    color: #fff;
}

#blog .flexBox {
    display: flex;
    list-style: none;
    flex-wrap: wrap;
}

#blog .flexBox li {
    width: 50%;

}

/*
#blog .flexBox li:nth-child(2),
#blog .flexBox li:nth-child(4) {
    margin-left: -1px;
}

#blog .flexBox li:nth-child(3),
#blog .flexBox li:nth-child(4) {
    margin-top: -1px;
}
*/
#blog .flexBox li:nth-child(even) {
    margin-left: -1px;
}




#blog .flexBox li a {
    padding: var(--scale-32);
    border: solid 1px #D2D3D5;
    box-sizing: border-box;
    display: flex;
    column-gap: 32px;
    transition: .4s;
    align-items: center;
}

#blog .flexBox li a:hover {
    background: var(--blue);

}

#blog .flexBox li a:hover .DateText {
    color: rgba(255, 255, 255, 0.46);
}


#blog .flexBox li a .commonArrowCircle {
    transition: .4s;
}

#blog .flexBox li a .commonArrowCircle svg path {
    transition: .4s;
}

#blog .flexBox li a:hover h4 {
    color: #fff;
}

#blog .flexBox li a:hover .commonArrowCircle {
    background: #fff;
}

#blog .flexBox li a:hover .commonArrowCircle svg path {
    fill: var(--blue);
}

#blog .flexBox .imgBox {
    border-radius: 4px;
    background: #fff;
    overflow: hidden;
}

#blog .flexBox .imgBox img {
    aspect-ratio: 1 / 1;
    width: 100%;
    object-fit: cover;
    height: auto;
    max-width: 232px;
    transition: .4s;
    border-radius: 4px;
}

#blog .flexBox .imgBox img.noimage {
    transform: scale(.8);
}

#blog .flexBox li a:hover .imgBox img {
    transform: scale(1.08);
}

#blog .flexBox li a:hover .imgBox img.noimage {
    transform: scale(.9);
}

#blog .flexBox .inFlex {
    display: flex;
    justify-content: space-between;
    width: 100%;
    align-items: center;
    column-gap: 32px;
}

#blog .DateText {
    font-size: var(--scale-8);
    line-height: 1;
    color: rgba(2, 17, 33, 0.50);
    transition: .4s;
    margin-top: var(--scale-4);
    letter-spacing: 0;
}

#blog .TagBadge {
    font-size: var(--scale-12);
    font-weight: bold;
    padding: 2px 14px;
    color: var(--blue);
    border: solid 1px var(--blue);
    font-weight: 700;
    background: #fff;
    letter-spacing: 0;
    border-radius: 20px;
    line-height: 1;
}




#blog .flexBox li {
    opacity: 0;
    transform: translate(0, 16px);
    transition: 1.2s cubic-bezier(.36, .14, 0, 1);
      margin-top: -1px;
}

#blog .flexBox li.scrollin {
    opacity: 1;
    transform: translate(0, 0);
}

#blog .posttext {
    width: 100%;
}

#blog .flexBox .MetaRow {
    column-gap: 14px;
    margin-bottom: var(--scale-8);
    display: flex;
    align-items: center;
}

#blog .MainTitle {
    text-decoration: underline;
    font-weight: 700;
    transition: .4s;
}


#blog .commonBtnWrap {
    margin-top: 56px;
    display: flex;
    justify-content: flex-start;
}

#commonCta {
    padding: var(--scale-16);
}

#commonCta .commonCtaInner {
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
    position: relative;
    background-image: url(../img/ctabg.jpg);
    border-radius: 8px;
    height: 560px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 4.8vw;
}

#commonCta .commonCtaInner::after {
    content: "";
    position: absolute;
    background: rgba(4, 33, 54, 0.65);
    right: 0;
    top: 0;
    left: 0;
    bottom: 0;
    border-radius: 8px;
}



#commonCta .arrowBox {
    position: relative;
    z-index: 2;
}

#commonCta .commonTItle {
    position: relative;
    z-index: 2;
    color: #fff;
}

#commonCta .commonTItle .jaITlte {
    color: #fff;
}

#commonCta .commonTItle .jaITlte::after {
    background: #fff;
}


.arrowBox {
    display: inline-block;
    position: relative;
    width: 232px;
    height: 232px;
    text-decoration: none;
}

/* 円のベース（薄い白） */
.circle-base {
    stroke: rgba(255, 255, 255, 0.3);
    stroke-width: 1px;
    fill: none;
}

/* ホバーで動く白い線 */
.circle-anime {
    fill: none;
    stroke: #fff;
    stroke-width: 2px;
    stroke-linecap: round;
    stroke-dasharray: 726;
    stroke-dashoffset: 726;

    transform-origin: center;
    transform: rotate(-90deg);

    transition: stroke-dashoffset 0.8s cubic-bezier(0.65, 0, 0.35, 1);
}

/* ホバー時に円を一周させる */
.arrowBox:hover .circle-anime {
    stroke-dashoffset: 0;
}

/* 矢印を包むグループ（ここを中央に固定） */
.arrow-container {
    /* 円の回転の影響を受けないよう、独立した座標系にする */
    transition: transform 0.5s cubic-bezier(0.34, 1.56, 0.64, 1);
}

/* ホバー時に矢印だけを右へ10pxスライド */
.arrowBox:hover .arrow-container {
    transform: translateX(4px);
}

.arrow-path {
    fill: #fff;
}

footer {
    margin-top: var(--scale-100);
}

footer a:hover {
    opacity: .6;
}

footer a {
    transition: .4s;
}

footer .topFooter {
    gap: 32px;
    padding: 0 5.556vw;
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    margin-bottom: var(--scale-80);
    align-items: end;
}

footer .topFooter .fcopy {
    grid-column: 1 / span 3;
}

footer .topFooter .fcopy img {
    width: 100%;
    max-width: 376px;
}

footer .topFooter nav {
    grid-column: 5 / span 4;
}

footer .topFooter nav ul {
    display: flex;
    list-style: none;
    gap: 10px 30px;
    flex-wrap: wrap;
    font-size: var(--scale-15);
    letter-spacing: 0;
}

footer .pageTOp {
    grid-column: 12 / -1;
    margin-left: auto;
}

footer .pageTOp a {
    background: var(--blue);
    border-radius: 4px;
    line-height: 1;
    display: flex;
    width: 56px;
    height: 56px;
    align-items: center;
    justify-content: center;

}


footer .bottomFooter {
    gap: 32px;
    padding: 0 5.556vw;
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    margin-bottom: var(--scale-56);
    align-items: end;
    margin-top: var(--scale-70);
}

footer .bottomFooter .flogo {
    grid-column: 1 / span 3;
}

footer .bottomFooter .flogo img {
    width: 100%;
    max-width: 232px;
}

footer .bottomFooter address {
    grid-column: 5 / span 4;
    font-style: normal;
    line-height: 1;
    letter-spacing: 0;
}

footer .bottomFooter .companyad {
    margin-bottom: var(--scale-13);
    font-weight: 400;
}

footer .bottomFooter address {
    font-size: var(--scale-12);
}

footer .bottomFooter address a {
    display: inline-block;
    text-decoration: underline;
}

footer .bottomFooter address .enFont {
    font-weight: 400;
    margin-bottom: var(--scale-8);
}

footer .bottomFooter address .enFont:last-child {
    margin-bottom: 0;
}

footer .bottomFooter .copyw {
    grid-column: 10 / -1;
    margin-left: auto;
}

footer .bottomFooter .copyw small {
    display: block;
    letter-spacing: 0;
    line-height: 1;
}

#service .spDesBox {
    display: none;
}

.pageTOpSp {
    display: none;
}

.spBr {
    display: none;
}






.blogSingleHero {
    background-repeat: repeat;
    background-size: 149px 137px;
    height: 138px;
    background-image: url(../img/Bnoise.png);
}

.BlogSingleCont {
    background-repeat: repeat;
    background-size: 216px 185px;
    background-image: url(../img/bsnoise.png);
    padding: 144px 0 0 0;
}

.BlogSingleContInner {
    max-width: 720px;
    margin: 0 auto;
}

.BlogSingleContInner .blog-main {
    width: auto;
}

.BlogSingleContInner .writingN {
    display: flex;
    align-items: center;
    margin-top: 40px;
    column-gap: 13px;
}

.BlogSingleContInner .writingN .nameBox {
    font-size: 10px;
    font-weight: 400;
    letter-spacing: 0;
}

.BlogSingleContInner .writingN img {
    width: 53px;
}

.BlogSingleContInner .mainContents {
    margin-top: 50px;
}

.BlogSingleContInner .mainContents img {
    width: 100%;
    border-radius: 8px;
    height: auto;
    margin-top: 30px;
}

.BlogSingleContInner .mainContents h3 {
    font-size: 26px;
    font-weight: 600;
    line-height: 40px;
    margin-top: 34px;
}

.Related {
    padding-top: 140px;
    padding-bottom: 160px;
    background-repeat: repeat;
    background-size: 216px 185px;
    background-image: url(../img/bsnoise.png);
}

.RelatedInner {
    margin: 0 auto;
    padding: 0 2.778vw;
}

.Related h2 {
    margin-bottom: 50px;
}

.Related h2 .jpFont {
    font-size: 15px;
    display: block;
    font-weight: 600;
}

.Related .flexBox {
    display: flex;
    gap: 0 30px;
}

.Related h2 .enFont {
    margin-bottom: 8px;
    font-size: 29px;
    text-transform: uppercase;
}

.Related .blog-main .article-title {
    font-size: var(--scale-16);
    font-weight: 600;
    margin: 0 0 8px 0;
    line-height: 30px;
}

.Related .blog-main img {
    border-radius: 6px;
}

.Related .blog-main .image-wrapper {
    border-radius: 6px;
    border: solid 1px #f3f3f3;
}
.BlogSingleContInner .mainContents p {
    font-size: 16px;
    margin-top: 12px;
    font-weight: 400;
    letter-spacing: 0;
    font-feature-settings: initial;
    line-height: 30px;
}
.successSingleCont .BlogSingleContInner .mainContents p {
    margin-top: 45px;
    letter-spacing: 0.06em;
}

.BlogSingleContInner .mainContents ul {
    list-style-position: inside;
    margin-top: 30px;
}

.BlogSingleContInner .mainContents ul li {
    font-size: 16px;
    line-height: 30px;
    font-weight: 400;
}

.BlogSingleContInner .mainContents h2 {
    font-size: 21px;
    font-weight: 700;
    letter-spacing: 0;
    margin-top: 56px;
    line-height: 46px;
    color: var(--blue);
}
.BlogSingleContInner .mainContents h4 {
    font-size: 16px;
    margin-top: 12px;
    font-weight: 400;
    line-height: 30px;
}
.BlogSingleContInner .writingN .enFont {
    text-transform: uppercase;
    font-size: 10px;
    opacity: 0.5;
    line-height: 1;
}

.BlogSingleContInner .writingN .nameBox span {
    font-size: 15px;
    letter-spacing: 0.06em;
    font-weight: 600;
    margin-left: 4px;
}

.BlogSingleContInner .blog-main .article-title {
    font-size: var(--scale-32);
    line-height: 1.4;
    margin-top: var(--scale-16);
}

a.blog-main:hover img {
    transform: scale(1.06);
}

.image-wrapper {
    transition: 0.4s;
    border-radius: 8px;
}

a.blog-main:hover .image-wrapper {
    opacity: 0.7;
}

.blog-main img {
    width: 100%;
    height: auto;
    border-radius: 8px;
    display: block;
    aspect-ratio: 16 / 9;
    object-fit: cover;
}

.fadezoom {
    overflow: hidden;
}

.Related .blog-main {
    width: 25%;
}

.fadezoom.scrollin img {
    animation: fadeopa 1.4s cubic-bezier(0.36, 0.14, 0, 1) forwards;
    transform: scale(1);
}

.fadezoom img {
    transform: scale(1.08);
    transition: 1.4s;
    opacity: 0;
}

@keyframes fadeopa {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}


.article-date {
    font-size: var(--scale-8);
    line-height: 1;
    color: rgba(2, 17, 33, 0.50);
    transition: .4s;
    margin-top: var(--scale-4);
    letter-spacing: 0;
}

.category-tag {
    font-size: var(--scale-12);
    font-weight: bold;
    padding: 2px 14px;
    color: var(--blue);
    border: solid 1px var(--blue);
    font-weight: 700;
    background: #fff;
    letter-spacing: 0;
    border-radius: 20px;
    line-height: 1;
}

.blog-main .meta-info {
    column-gap: 14px;
    margin-bottom: var(--scale-8);
    display: flex;
    align-items: center;
    margin-top: var(--scale-12);
}

.breack {
    display: flex;
    font-size: 11px;
    border-radius: 4px;
    padding: 14px 32px;
    align-items: center;
    column-gap: 18px;
    line-height: 1;
    background: #E9EBE8;
}

.breack a {
    color: var(--blue);
    text-decoration: underline;
    letter-spacing: 0;
}

.breack span > span {
    opacity: .2;
}

.breackWrap {
    margin-top: 136px;
    padding: 0 8px;
}

.breack {
    display: flex;
    font-size: 11px;
    border-radius: 4px;
    padding: 14px 32px;
    align-items: center;
    column-gap: 18px;
    line-height: 1;
    background: #E9EBE8;

    /* --- 追加分 --- */
    white-space: nowrap;       /* 改行させない */
    overflow: hidden;          /* はみ出した部分を隠す */
    text-overflow: ellipsis;   /* はみ出た部分を「...」にする */
    max-width: 100%;           /* 親要素（breackWrap）からはみ出さないようにする */
}




span.spacerb {
    background: rgba(48, 65, 72, 0.20);
    height: 17px;
    width: 1px;
}

.udPage header {
    background: #FDFDFD;
    border-bottom: solid 1px #E8E8E8;
    top: 0;
}

.blog-main .article-title {
    margin-bottom: var(--scale-32);
}

#postnavi {
    padding: 0 2.778vw;
}

.post_page_navi {
    list-style: none !important;
    display: flex;
    margin: 0 auto;
    justify-content: center;
    margin-top: 130px;
    border-radius: 6px;
    padding: 29px 25px;
    column-gap: 271px;
    align-items: center;
    background: #075AA7;
    letter-spacing: 0.06em;
}

.post_page_navi li {
    color: #fff;
}

.post_page_navi span {
    font-size: 16px;
    transition: 0.4s;
    color: #fff;
    font-weight: bold;
    text-decoration: none;
    letter-spacing: 0;
}



.udCommonTitle {
    padding: 0 5.556vw;
    margin-top: var(--scale-88);
    margin-bottom: var(--scale-44);
}

.udCommonHero img {
    height: 740px;
    object-fit: cover;
    width: 100%;
    object-position: bottom;
}

.udCommonTitle .commonTItle .enFont {
    font-size: var(--scale-64);
}

#requi {
    background: #E9EBE8;
    padding: var(--scale-144) 5.556vw;
}

#requi table {
    margin-top: var(--scale-88);
    width: 100%;
}

.requiInner tr {
    display: grid;
    padding: var(--scale-32) 0;
    gap: 32px;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    border-top: solid 1px rgba(112, 112, 112, 0.20);
}

.requiInner tr:last-child {
    border-bottom: solid 1px rgba(112, 112, 112, 0.20);
}

.requiInner table th {
    font-size: var(--scale-18);
    grid-column: 1 / span 2;
    text-align: left;
}

.requiInner table td {
    grid-column: 5 / -1;
    font-size: 16px;
    font-feature-settings: initial;
    line-height: 1.8;
    font-weight: 400;
}

#requi table strong {
    display: block;
    position: relative;
    padding-left: 20px;
}

#requi table strong::after {
    content: "";
    position: absolute;
    background: var(--blue);
    width: 6px;
    height: 6px;
    left: 0;
    border-radius: 100vw;
    top: 10px;
}

#requi .inList p {
    padding-left: 20px;
}



#entry {
    padding: var(--scale-88) 5.556vw;
    display: grid;
    gap: 32px;
    grid-template-columns: repeat(12, minmax(0, 1fr));
}

#entry .commonTItle {
    grid-column: 1 / span 3;
}

#philosophy {
    padding: var(--scale-200) 5.556vw;
    display: grid;
    gap: 32px;
    grid-template-columns: repeat(12, minmax(0, 1fr));
}

#philosophy .commonTItle {
    grid-column: 1 / span 6;
}


#philosophy .texttBox {
    grid-column: 7 / -1;
    margin-top: 32px;
}

#philosophy .texttBox p {
    line-height: 2;
    font-weight: 400;
    font-feature-settings: initial;
    margin-bottom: var(--scale-56);
}

#philosophy .texttBox p:last-child {
    margin-bottom: 0;
}



#requi.overview table strong {
    font-weight: 500;
    margin-bottom: -6px;
}

#requi.overview table p {
    font-size: 14px;
}

#requi.overview .inList > div {
    margin-bottom: var(--scale-30);
}

#requi.overview table strong::after {
    top: 12px;
}

#requi.overview .inList > div:last-child {
    margin-bottom: 0;
}

#access {
    padding: var(--scale-144) 5.556vw;


}

#access .map {
    position: relative;
    width: 100%;
    height: 0;
    margin-top: 88px;
    padding-top: 40%;
}

#access .map iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

#access address {
    display: block;
    font-style: normal;
    margin-top: var(--scale-50);
    margin-bottom: var(--scale-20);
}



.udCommonHero.udshero img {
    object-position: center;
}



.indexBox {
    padding: var(--scale-88) 5.556vw var(--scale-144) 5.556vw;
    display: grid;
    gap: 32px;
    grid-template-columns: repeat(12, minmax(0, 1fr));
}

.indexBox .titleBox {
    grid-column: 1 / span 2;
}

.indexBox .index01 {
    grid-column: 3 / span 5;
}

.indexBox .index02 {
    grid-column: 8 / span 5;
}

.indexBox .indexitem .enTilte {
    display: flex;
    align-items: center;
    column-gap: var(--scale-13);
    line-height: 1;
    margin-bottom: var(--scale-18);
    text-transform: uppercase;
}

.indexBox .indexitem .enTilte .nam {
    font-size: var(--scale-13);
    font-weight: 400;
    letter-spacing: 0;
    opacity: .5;
}

.indexBox .indexitem .inflex {
    display: flex;
    justify-content: space-between;
    align-items: end;
}

.indexBox .indexitem .title {
    font-size: var(--scale-26);
    font-weight: 600;
    letter-spacing: 0;
    line-height: 1;
    margin-bottom: var(--scale-16);
}

.indexBox .indexitem {
    padding-top: var(--scale-8);
    position: relative;
    border-top: solid 1px rgba(112, 112, 112, 0.20);
    transition: opacity 0.4s ease, transform 0.4s ease;
    will-change: opacity;
    position: relative;
}

.indexBox .indexitem::after {
    content: "";
    position: absolute;
    background: var(--blue);
    width: var(--scale-56);
    height: 1px;
    left: 0;
    top: -1px;
}

.indexBox .titleBox {
    font-size: var(--scale-21);
    color: var(--blue);
}

.indexBox .commonArrowCircle {
    right: 0;
    position: absolute;
    top: 25px;
    transform: rotate(90deg);
}

.indexBox .indexitem .enTilte p {
    font-size: var(--scale-11);
    color: var(--blue);
    line-height: 1;
    letter-spacing: 0;
}

#CivilEngineering {
    background: var(--blue);
    color: #fff;
}


.serviceitem {
    padding: var(--scale-200) 5.556vw;
    display: grid;
    gap: 32px;
    grid-template-columns: repeat(12, minmax(0, 1fr));
}

.serviceitem .imgBox {
    grid-column: 1 / span 2;
    border-radius: 4px;
    max-width: 90%;
}

.serviceitem .imgBox img {
    width: 100%;
    aspect-ratio: 1 / 1;
    border-radius: 4px;
    object-fit: cover;
    height: auto;
}

.serviceitem .fadezoom {
    border-radius: 4px;
}

.serviceitem .titleBox {
    grid-column: 3 / span 4;
}

.serviceitem .textBox {
    grid-column: 8 / -1;
    margin-top: -14px;
}

.serviceitem .enTilte {
    display: flex;
    align-items: center;
    column-gap: var(--scale-13);
    line-height: 1;
    margin-bottom: var(--scale-18);
    text-transform: uppercase;
}

.serviceitem .titleBox {
    padding-top: var(--scale-8);
    position: relative;
    border-top: solid 1px rgba(255, 255, 255, 0.2);
    transition: opacity 0.4s ease, transform 0.4s ease;
    will-change: opacity;
    position: relative;
}

.serviceitem .titleBox .enTilte p {
    font-size: var(--scale-11);
    line-height: 1;
    letter-spacing: 0;
    opacity: .5;
}

.serviceitem .titleBox .enTilte .nam {
    font-size: var(--scale-13);
    font-weight: 400;
    letter-spacing: 0;
    opacity: .5;
}

.serviceitem .titleBox .title {
    font-size: var(--scale-32);
    font-weight: 600;
}


.serviceitem .desBox {
    margin-bottom: var(--scale-48);
}

.serviceitem .textBox .desBox p {
    line-height: 2;
    font-feature-settings: initial;
    margin-bottom: var(--scale-32);
}

.serviceitem .textBox .desBox p:last-child {
    margin-bottom: 0;
}

.serviceitem .textBox h3 {
    font-weight: 700;
    font-size: var(--scale-16);
    margin-bottom: 18px;
}

.serviceitem .textBox ul {
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    gap: 10px 8px;
    margin-bottom: 52px;
}

.serviceitem .textBox ul li {
    font-size: var(--scale-13);
    line-height: 1;
    padding: 8px 13px;
    letter-spacing: 0;
    border-radius: 4px;
    font-weight: 700;
}

#CivilEngineering.serviceitem .textBox ul li {
    background: #fff;
    color: var(--blue);
}


#Architecture.serviceitem .textBox ul li {
    background: var(--blue);
    color: #fff;
}

#Architecture.serviceitem .titleBox .enTilte p {
    color: var(--blue);
}

#Architecture.serviceitem .titleBox .enTilte .nam {
    color: var(--blue);
}

#Architecture.serviceitem .titleBox .title {
    color: var(--blue);
}

#Architecture.serviceitem .titleBox {
    border-top: solid 1px #E1E1E1;
}

#Architecture.serviceitem .textBox h3 {
    color: var(--blue);
}


#Architecture .comonSbtn {
    color: #021121;
}

#Architecture .comonSbtn::after {
    background: #021121;
}





.sameFade {
    opacity: 0;
    transform: translate(0, 14px);
    transition: 1s cubic-bezier(0.36, 0.14, 0, 1) 0s;
}

.sameFade.scrollin {
    opacity: 1;
    transform: translate(0);
}



.eqconBox{
    display: flex;
    justify-content: center;
    column-gap: 144px;
    padding: 0 5.556vw;
}

.eqconBox .cardBox {
    background: #fff;
    border: solid 1px #E2E2E2;
    border-radius: 12px;
    padding: 18px 22px 22px;
    box-sizing: border-box;
}
.eqconBox .inFlexBox {
    display: flex;
    gap: 72px 2%;
    flex-wrap: wrap;
    width: 100%;
}

.eqconBox .inFlexBox .itemBox {
    width: 32%;
}
.eqconBoxWrap{
    border-top: solid 1px rgba(112, 112, 112, 0.20);
    padding-top: 144px;
    padding-bottom: 144px;
}

.eqconBoxWrap .imgBox{
   text-align: center;
}
.eqconBoxWrap .imgBox img{
    width: 100%;
    max-width: 331px;
    height: auto;
}
.eqconBoxWrap h2{
    font-size: var(--scale-24) ;
       color: var(--blue);
    font-weight: 700;
    text-decoration: underline;
    letter-spacing: 0;
}
.eqconBoxWrap dl div{
    display: flex;
    column-gap: 1px;
    margin-bottom: 1px;
}
.eqconBoxWrap dl div:last-child{
    margin-bottom: 0;
}
.eqconBoxWrap dl div dt {
    background: var(--blue);
    color: #fff;
    width: 118px;
    font-size: 15px;
     display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    height: 32px;
}
.eqconBoxWrap dl div dd{
    background: #E9EBE7;
    padding:0  16px;
    display: flex;
    align-items: center;
    height: 32px;
    width: 100%;
    font-size: 14px;
}
.eqconBoxWrap .nam{
   opacity: .45;
    font-size: 11px;
    letter-spacing: 0;
    line-height: 1;
    margin-bottom: 6px;
}

.eqconBoxWrap dl div:first-child dt{
    border-radius: 4px 0 0 0;
}

.eqconBoxWrap dl div:first-child dd{
    border-radius: 0 4px 0 0;
}
.eqconBoxWrap dl div:last-child dd{
    border-radius: 0 0 4px 0;
}
.eqconBoxWrap dl div:last-child dt{
    border-radius: 0 0 0 4px;
}


.eqCatBox .catAc a {
    background:  var(--blue);
    color: #fff;
}
.eqCatBox p{
    text-transform: uppercase;
    font-size: 11px;
    letter-spacing: 0;
    margin-bottom: 24px;
}
.eqCatBox a {
    display: inline-block;
    text-align: center;
    border-radius: 100vw;
    color:  var(--blue);
    background: #fff;
    font-size: 18px;
    transition: .4s;
    border: solid 2px var(--blue);
    padding: 3px 20px;
    letter-spacing: 0;
    font-weight: bold;
    transition: .4s;
}

.eqCatBox a:hover{
    opacity: .4;
}


.eqCatBox>div {
    width: 193px;
    position: sticky;
    top: 26%;
}




.eqCatBox ul{
    list-style: none;
}
.eqCatBox li {
    margin-bottom: 6px;
}










.eqUdSingle .blog-main img {
    aspect-ratio:auto;
}



.udPage #projects {
  margin-top: 16px;
}






/*==================================================
---form
====================================================*/
.form {
    margin-bottom: 11px;
    box-sizing: content-box;
    position: relative;
    border-radius: 3px;
}

.form .radioBox {
    display: flex;
    align-items: center;
    column-gap: 28px;
}

.form .radioBox input {
    width: 26px;
    font-size: 16px;
    height: 26px;
    background: #f5f5f5;
    border: 1px solid #deebf5;
    border-radius: 100vw;
    padding: 0;
    margin: 0;
}

.form .radioBox span {
    font-size: 16px;
    color: #000;
    margin-top: 0px;
    margin-left: 3px;
    display: inline-block;
    position: relative;
    top: 3px;
}

.inputBg input[type="radio"] {
    appearance: none;
    /* デフォルトのスタイルをリセット */
    -webkit-appearance: none;
    -moz-appearance: none;
    background-color: #f5f5f5;
    /* 背景色を変更 */
}

.inputBg input[type="radio"]:checked {
    background-color: #0485d9;
    border-radius: 100vw;
    border: solid 5px #f5f5f5;
}

.formOpBox {
    text-align: center;
    margin-bottom: 62px;
}

.formOpBox h3 {
    font-size: 32px;
    color: #364c8e;
    margin-bottom: 24px;
}

.formOpBox p {
    font-size: 16px;
    line-height: 30px;
    font-weight: 600;
    letter-spacing: 0.05em;
}

.formSchoolBox {
    width: 100%;
}

.formSchoolBox .inputBg {
    margin-bottom: 10px;
}

.form .des {
    line-height: 30px;
    margin-top: 34px;
    margin-bottom: 45px;
    font-weight: 400;
    font-size: 16px;
}

.form_flexBox {
    padding-bottom: 19px;
    margin-bottom: 20px;
}

.form_flexBox:first-child {
    padding-top: 42px;
}
.form_flexBox_list {
    position: relative;
    font-weight: 600;
    letter-spacing: 0.06em;
    padding-top: 0;
    margin-bottom: 5px;
    font-size: 15px;
}
.mandatory {
    position: absolute;
    right: 25px;
    color: #fff;
    top: 16px;
    font-size: 13px;
    border-radius: 3px;
    background: #0072c4;
    padding: 1px 20px;
}

.any {
    position: absolute;
    right: 25px;
    color: #fff;
    top: 16px;
    font-size: 13px;
    border-radius: 3px;
    background: #949da5;
    padding: 1px 20px;
}

.inputBg {
    width: 100%;
}
input {
    width: 100%;
    box-sizing: border-box;
    font-size: 16px;
    height: 64px;
    border-radius: 4px;
    font-weight: 400;
    border: solid 1px #EBEBEB;
    background: #F0F2EF;
    padding: 0 27px;
}

::placeholder {
    color: rgba(0, 0, 0, 0.3);
    font-weight: 600;
}

textarea {
    width: 100%;
     border-radius: 4px;
    box-sizing: border-box;
   border: solid 1px #EBEBEB;
    background: #F0F2EF;
    font-size: 16px;
    padding: 20px 27px;
}

.privacypBox {
    text-align: center;
}

.form .privacyp {
    display: inline-block;
    font-size: 15px;
    font-weight: 100;
    margin-bottom: 31px;
}

.form .privacyp a {
    text-decoration: underline;
    color: #364c8e;
}

input::placeholder {
    font-weight: 400;
}

textarea::placeholder {
    font-weight: 400;
}

select::placeholder {
    color: #3e3a39;
}


.form .nmber {
    font-size: 25px;
    color: #011640;
}

.checkbox a {
    display: inline-block;
    text-decoration: underline;
}
.checkbox input {
    width: 30px;
    height: 30px;
    padding: 0;
    margin-top: 0px;
    border-radius: 3px;
    -webkit-appearance: none;
    -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
    border: 1px solid #D5D5D5;
    background: #ffffff;
    position: relative;
    cursor: pointer;
    margin-left: 0;
}

.checkbox input:checked::after {
    content: "";
    position: absolute;
    left: 11px;
    top: 5px;
    width: 5px;
    height: 12px;
    border: solid #0a5dac;
    border-width: 0 3px 3px 0;
    transform: rotate(45deg);
}
.checkbox p {
    font-weight: 500;
    margin-bottom: 6px;
    font-size: 15px;
}
.checkbox p:last-child {
    margin-bottom: 0;
}

.form_contentBox {
    margin-bottom: 50px;
    font-size: 15px;
}

.submitBox {
    display: flex;
    max-width: 600px;
    margin-top: 62px;
}

.submitBox input {
    font-size: 16px;
    height: 72px;
    letter-spacing: 0;
    max-width: 268px;
    cursor: pointer;
    color: #fff;
    font-weight: 700;
    border-radius: 6px !important;
    transition: 0.4s;
    background: var(--blue);
}
.submitBox input:hover {
    opacity: 0.6;
}

.mw_wp_form .error {
    font-size: 13px;
    margin-top: 3px;
}

.thanyouMail {
    max-width: 750px;
    margin: 0 auto;
    padding-bottom: 156px;
    padding: 0 25px;
    padding-top: 90px;
}

.thanyouMail .commonBtn a {
    margin: 0 auto;
}

.thanyouMail h3 {
    font-size: 30px;
    margin-bottom: 25px;
    color: #0072c4;
}

.thanyouMail p {
    line-height: 30px;
    color: #333;
    font-weight: 500;
    font-size: 14px;
}

.mw_wp_form_complete {
    background: #f7f5ef;
}

.thanyouMail .blackBtn {
    margin: 0 auto;
    margin-top: 25px;
}

.thanyouMail .cmmnBtn {
    text-align: center;
    margin-top: 25px;
}

.mw_wp_form .error {
    font-size: 78% !important;
    position: absolute;
}

input[type="text"] {
    -webkit-appearance: none;
}

textarea {
    -webkit-appearance: none;
    border-radius: 0;
    border-radius: 5px;
}

select {
    width: 100%;
    box-sizing: border-box;
    height: 70px;
    background: #fff;
    border: solid 1px #E6E6E6;
    font-weight: 400;

    padding: 0 27px;
}

input[type="submit"],
input[type="button"] {
    border-radius: 0;
    -webkit-box-sizing: content-box;
    -webkit-appearance: button;
    appearance: button;
    box-sizing: border-box;
    cursor: pointer;
}



form .aten {
    font-size: 13px;
    line-height: 25px;
    color: #525252;
}

input[type="submit"]::-webkit-search-decoration,
input[type="button"]::-webkit-search-decoration {
    display: none;
}

input[type="submit"]::focus,
input[type="button"]::focus {
    outline-offset: -2px;
}

.mwform-radio-field-text {
    font-weight: 600;
    color: #525252;
}
.submitBox .button_back {
    background: #9fa8b2;
    border: solid 1px #d3d2d2;
    margin: 0 5px;
    color: #fff;
}

.mw_wp_form_preview .form_flexBox_list {
    padding-top: 0;
}

.mw_wp_form_preview .mandatory {
    top: -3px;
}

.mw_wp_form_preview .any {
    top: -3px;
}

.mw_wp_form_preview .submitBox {
    width: auto;
    margin-bottom: 30px;
    margin-top: 20px;
}

#privacyPolicy {
    max-width: 1025px;
    margin: 0 auto;
    padding: 0 25px;
}

.birthBgBox {
    display: flex;
}

.birthBgBox > div {
    width: 50%;
}

.birthBgBox input {
    width: 90%;
}

.selectinner {
    position: relative;
}

.selectinner::after {
    position: absolute;
    position: absolute;
    content: "";
    background-image: url(../img/selectArrow.svg);
    background-size: contain;
    background-repeat: no-repeat;
    width: 10px;
    height: 8px;
    top: 53%;
    left: 77%;
    -webkit-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
}

.selectinnerEntry::after {
    left: auto;
    right: 18px;
}

/*
.selectinner span {
    position: absolute;
}
*/

.birthBgBox select {
    width: 90%;
}

select {
    -webkit-appearance: none;
    -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}

.mw_wp_form_preview .privacypBox {
    display: none;
}

.mw_wp_form_preview .checkbox p {
    position: relative;
    -webkit-backface-visibility: hidden;
    font-weight: 500;
}

.mw_wp_form_preview .checkbox p::before {
    position: absolute;
    content: "";
    background-image: url(../img/privacypolicyCheck.png);
    background-size: contain;
    background-repeat: no-repeat;
    width: 43px;
    height: 42px;
    top: 50%;
    left: 13px;
    -webkit-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
}

.privacyAge {
    text-align: right;
    font-weight: bold;
    text-decoration: underline;
}

.inactive {
    color: #d8d8d8;
}

.radioiinput input {
    width: 6%;
    height: 22px;
    margin-bottom: 7px;
}

.documentinput label {
    display: flex;
    justify-content: left;
    margin-bottom: -16px !important;
}

.thanyouMail .commonBtn {
    text-align: center;
    margin-top: 20px;
}

.mw_wp_form_preview .selectinner::after {
    display: none;
}

.priLinkP {
    font-size: 16px;
    line-height: 30px;
    letter-spacing: 0.06em;
    margin-bottom: 14px;
    font-weight: 400;
}

.priLinkP a {
    display: inline-block;
    text-decoration: underline;
}

.redC {
    display: inline-block;
    color: #D54100;
    position: absolute;
    font-size: 10px;
    bottom: -2px;
    letter-spacing: 0.06em;
    margin-left: 4px;
}
.mw_wp_form_preview .inputBg {
    width: 100%;
    color: #0a5dac;
    text-decoration: underline;
}

.mw_wp_form_preview .checkbox {
    display: none;
}

.mw_wp_form_preview .priLinkP {
    display: none;
}

.mw_wp_form_preview .submitBox input {
    height: 67px;
}

.mw_wp_form .error {
    color: #b70000 !important;
    letter-spacing: 0.06em;
}


.contaFlex h1{
     position: sticky;
    top: 144px;
}

.thankYou .ContactWrap .contaFlex {
    display: block;
    margin-bottom: 88px;
}
.thankYou .commonTitleBox .enFont {
    line-height: .9;
}
.thankYou .commonTitleBox {
    margin-bottom: 40px;
}
.thankYou .ContactWrap .atenBox {
    max-width: 700px;
}

.thankYou .cta-button {
    height: 56px;
    margin-top: 32px;
}

.thankYou .ContactWrap .atenBox {
    font-size: 15px;
    font-weight: 500;
    line-height: 26px;
}

.privacyWrap {
    padding: 0 34px;
    padding-top: 144px;
    padding-bottom: 120px;
}

.privacyWrap .commonTitle {
    text-align: center;
}

.privacyInner {
    max-width: 840px;
    margin: 0 auto;
}

.privacyWrap .poliBox {
    margin-top: 36px;
}

.privacyWrap ul {
    list-style-position: inside;
}

.privacyWrap .commonDesBox {
    margin-bottom: 60px;
}
.privacyWrap h1 {
    font-size: 36px;
    font-style: normal;
    font-weight: 600;
    margin-bottom: 55px;
    line-height: 30px;
    letter-spacing: 5.04px;
}



.privacyWrap ul li {
    letter-spacing: 0.12em;
    font-weight: 400;
    line-height: 2em;
    font-size: 14px;
}

.privacyWrap .des {
    font-size: 14px;
    font-weight: 400;
    letter-spacing: 0.12em;
    line-height: 2em;
}

.privacyWrap h2 {
    font-size: 18px;
    font-weight: 600;
    margin-bottom: 7px;
}

.mw_wp_form {
    grid-column: 5 / -1;
}


#formWrap .conDesBox {
    font-size: var(--scale-16);
    line-height: 1.8;
    margin-top: var(--scale-23) ;
    margin-bottom: var(--scale-56);
}

#entry .commonTItle h2 {
    position: sticky;
    top: 20%;
}
   

.form .radioBox input {
    width: 26px;
    font-size: 16px;
    height: 26px;
    background: #F0F2EF;
    border: 1px solid #EBEBEB;
    border-radius: 4px;
    padding: 0;
    margin: 0;
}


.thankYou .commonTItle .enFont{
    text-transform: uppercase;
}

.thankYou .formBox,.thankYou .commonBtnWrap{
    padding: 0 5.556vw;
}
.thankYou .commonBtnWrap{
    margin-top: 34px;
}

.inactive{
    opacity: .4 !important;
}
@media screen and (max-width: 1920px) {
    .udCommonHero img {
        height: 680px;
    }

    header.change-color {
        padding: 16px 2.778vw;
    }

    #hero .loopSlide {
        height: 126px;
    }

    #hero .loopSlide {
        height: 104px;
    }

    .eqBgimg img {
        height: 610px;
    }

    #equipment .commonTItle {
        margin-top: -96px;
    }

    header.change-color .site-header .logo img {
        width: 200px;
    }

    #service .listBox {
        margin-top: var(--scale-48);
    }

    #service .desBox {
        margin-bottom: var(--scale-16);
    }

}


@media screen and (max-width: 1550px) {
    #hero .mainCopyBox {
        left: 64px;
    }
.eqconBox .inFlexBox .itemBox {
    width: 48%;
}
    .eqconBox .inFlexBox {
   justify-content: space-between;
    gap: 72px 0;
}
    .indexBox {
        padding: var(--scale-88) 5.556vw var(--scale-120) 5.556vw;
    }

    .serviceitem {
        padding: var(--scale-144) 5.556vw;
    }

    #philosophy {
        padding: var(--scale-144) 5.556vw;
    }

    .udCommonHero img {
        height: 520px;
    }

    .udCommonTitle .commonTItle .enFont {
        font-size: var(--scale-56);
    }

    #hero .inWrap span::after {
        bottom: var(--scale-9);
    }

    #hero .loopSlide {
        height: 88px;
    }

    #blog .MainTitle {
        font-size: var(--scale-15);
        line-height: 1.5;
    }

    #service .contBox .imgBox::after {
        top: -20%;
    }

    #hero h2 {
        font-size: var(--scale-48);
        margin-bottom: var(--scale-21);
    }

    #about .title {
        font-size: var(--scale-28);
        margin-bottom: var(--scale-34);
    }

    #service .desBox p {
        font-size: var(--scale-21);
        line-height: 1.6;
    }

    .eqBgimg img {
        height: 500px;
    }

    #service .listBox {
        margin-top: var(--scale-16);
    }

    .commonTItle .enFont {
        font-size: var(--scale-40);
    }

    #service .listBox ul li a {
        padding-bottom: var(--scale-56);
    }

    #service .listBox .enTilte {
        margin-bottom: var(--scale-24);
    }

    #service .textBox .title {
        font-size: var(--scale-21);
    }


}





@media screen and (max-width: 768px) {
    header {
        min-width: auto;
    }

    .BlogSingleCont {
        padding: 56px 0;
    }

    .udPage .menu__line {
        background: var(--blue);
    }

    .Related .flexBox {
        justify-content: space-between;
        flex-wrap: wrap;
    }

    .BlogSingleContInner {
        padding: 0 32px;
    }

    .post_page_navi {
        margin-top: 100px;
        border-radius: 4px;
        padding: 29px 32px;
        justify-content: space-between;
        column-gap: 0;
    }

    #postnavi {
        padding: 0 32px;
    }

    .Related {
        padding-top: 120px;
        padding-bottom: 100px;
    }

    .Related .flexBox {
        gap: 34px 30px;
    }

    .RelatedInner {
        padding: 0 32px;
    }

    .Related .blog-main {
        width: 47%;
    }

    .breackWrap {
        margin-top: 120px;
    }

    #mouse-stalker {
        display: none;
    }

    #stalker-center {
        display: none;
    }

    body {
        min-width: auto;
    }

    header {
        padding: 16px 5.556vw;
    }

    .pcHeader {
        display: none;
    }

    #hero .hero__lead {
        right: 5.556vw;
        top: var(--scale-108);
    }

    .spheader {
        display: block;
    }

    .menu {
        right: 5.556vw;
        transition: .4s;
        top: 44px;
    }

    header .logoBox img {
        width: 200px;
    }

    header .logoBox a {
        display: inline-block;
    }

    .gnav .gnavFlex {
        height: 100%;
        background: #FDFDFD;
        display: block;
    }

    .gnav__menu .hmlist a {
        font-size: var(--scale-18);
        position: relative;
        padding: 21px 8px;
        font-weight: 600;
        letter-spacing: 0;
        border-bottom: solid 1px rgba(112, 112, 112, 0.20);
    }

    .gnav .gnavFlex .gnav__menu li:first-child a {
        border-top: solid 1px rgba(112, 112, 112, 0.20);
    }

    .gnav__menu .commonBtnWrap {
        display: flex;
        justify-content: center;
        margin-top: var(--scale-50);
        margin-bottom: var(--scale-12);
    }

    .gnav__menu .comonCta {
        justify-content: center;
    }

    .gnav__menu address {
        line-height: 1;
        font-size: var(--scale-12);
        letter-spacing: 0;
        text-align: center;
        font-style: normal;
    }

    .gnav__menu .companyad {
        margin-bottom: var(--scale-13);
        font-weight: 400;
    }

    .gnav__menu address a {
        display: inline-block;
        text-decoration: underline;
    }

    .gnav__menu address .enFont {
        font-weight: 400;
        margin-bottom: var(--scale-8);
    }


    .gnavFlex .Gnwlogo img {
        width: 200px;
    }

    .menu__line {
        height: 2px;
    }

    .menu {
        height: 12px;
        width: 40px;
    }

    .gnav .gnavFlex .copyw {
        position: absolute;
        bottom: -6px;
        left: 0;
        right: 0;
        text-align: center;
        font-size: 5vw;
    }

    .gnav__menu .hmlist a::after {
        content: "";
        position: absolute;
        background-image: url(../img/ftarroww.svg);
        background-size: contain;
        background-repeat: no-repeat;
        width: 11px;
        height: 14px;
        right: 8px;
        top: 31px;
    }

    .open .menu__line {
        background: var(--blue);
    }

    body.open .menu__line--top {
        top: 0 !important;
    }

    .Gnwlogo.logo {
        padding: 12px 5.556vw;
    }

    header .blacklogo {
        left: 5.556vw;
    }

    header.change-color {
        padding: 12px 5.556vw;
    }

    .Gnwlogo a {
        display: inline-block;
    }

    .change-color .menu__line {
        background: var(--blue);
    }



    .change-color .menu {
        top: 40px;
    }


    #hero .mainCopyBox {
        left: 48px;
    }

    #hero .loopSlide {
        height: 72px;
    }

    #service .desBox {
        display: block;
        margin-bottom: var(--scale-39);
    }

    #service .contBox {
        display: block;
    }

    #service .pcDesBox {
        display: none;
    }

    #service .spDesBox {
        display: block;
    }

    #service .desBox {
        padding: 0;
        margin-top: var(--scale-26);
        margin-bottom: var(--scale-52);
    }

    #service .contBox .imgBox::after {
        top: -12%;
    }

    #service .comonCta {
        margin-top: var(--scale-52);
        justify-content: center;
        padding-left: 0;
    }

    #service .commonBtnWrap {
        display: flex;
        justify-content: center;
    }

    #projects .commonTItle {
        margin-bottom: var(--scale-56);
    }

    .LatestBlog {
        margin-bottom: var(--scale-180);
    }

    .swiArrow {
        display: none;
    }

    .eqBgimg img {
        height: 340px;
    }

    #about {
        padding-bottom: var(--scale-160);
        margin-bottom: var(--scale-160);
    }

    #projects .textBox {
        margin-bottom: var(--scale-56);
    }

    #projects .comonCta {
        margin-top: var(--scale-56);
    }

    #equipment .commonTItle::after {
        right: 0;
        left: 0;
    }

    #equipment .commonTItle {
        margin-top: -20px;
    }

    #projects .commonBtnWrap {
        display: flex;
        justify-content: center;
    }

    #equipment .commonTItle p {
        margin-top: var(--scale-16);
    }

    #equipment .listflex {
        padding: 0 5.556vw;
        display: block;
        max-width: 410px;
        margin-bottom: var(--scale-56);
    }

    #equipment .listflex li {
        width: auto;
        margin-bottom: var(--scale-32);
    }

    #blog .flexBox li {
        width: auto;
    }

    #blog .flexBox li:nth-child(1) {
        margin-bottom: -1px;
    }

    #blog .flexBox li:nth-child(2),
    #blog .flexBox li:nth-child(4) {
        margin-left: 0;
    }

    #service {
        margin-bottom: var(--scale-100);
    }

    #blog .flexBox {
        display: block;
    }

    #equipment {
        margin-bottom: var(--scale-100);
    }

    #projects {
        padding: var(--scale-100) 5.556vw;
    }

    #blog .MainTitle {
        font-size: var(--scale-14);
    }

    .categorylist ul a {
        font-size: 12px;
    }

    .categorylist ul {
        column-gap: 4px;
        flex-wrap: wrap;
    }

    #blog {
        padding: var(--scale-100) 5.556vw;
    }

    .categorylist {
        display: block;
        margin-top: var(--scale-27);
        margin-bottom: var(--scale-56);
    }

    #blog .flexBox li a {
        border: none;
        padding: var(--scale-32) 0;
        border-top: solid 1px #D2D3D5;

    }

    #blog .flexBox li:last-child a {
        border-bottom: solid 1px #D2D3D5;
    }

    #commonCta {
        padding: var(--scale-0);
    }

    #commonCta .commonCtaInner::after {
        border-radius: 0;
    }

    #commonCta .commonCtaInner {
        border-radius: 0;
        height: 510px;
        padding: 0 5.556vw;
    }

    #commonCta .arrowBox {
        width: 140px;
        height: 140px;
        margin-top: 30px;
    }

    footer {
        margin-top: var(--scale-56);
    }

    footer .topFooter .fcopy img {
        max-width: 310px;
    }

    #commonCta svg {
        width: 140px;
        height: 140px;
    }

    footer .topFooter nav ul {
        list-style: none;
        display: block;
        font-size: var(--scale-15);
        margin-top: var(--scale-32);
    }

    footer .topFooter nav ul a {
        position: relative;
        padding: var(--scale-21) var(--scale-8);
        position: relative;
        font-weight: 600;
        letter-spacing: 0;
        border-bottom: solid 1px rgba(112, 112, 112, 0.20);
    }

    footer .topFooter nav ul a::after {
        content: "";
        position: absolute;
        background-image: url(../img/ftarroww.svg);
        background-size: contain;
        background-repeat: no-repeat;
        width: 11px;
        height: 14px;
        right: 8px;
        top: 31px;
    }


    footer .topFooter nav ul li:first-child a {
        border-top: solid 1px rgba(112, 112, 112, 0.20);
    }

    .circle-base {
        stroke: #fff;
        stroke-width: 2px;
    }

    footer .topFooter {
        padding: 0 5.556vw;
        display: block;
        margin-bottom: var(--scale-80);
    }

    footer .topFooter {
        margin-bottom: var(--scale-0);
    }

    footer hr {
        display: none;
    }

    footer .bottomFooter {
        padding: 0 5.556vw;
        display: block;
        margin-bottom: var(--scale-0);
        margin-top: var(--scale-32);
        text-align: center;
    }

    .pageTOpSp {
        display: block;
        margin-top: var(--scale-53);
        margin-bottom: var(--scale-32);
    }

    footer .bottomFooter .flogo {
        margin-bottom: var(--scale-26);
    }

    .pageTOpPc {
        display: none;
    }

    footer {
        overflow: hidden;
    }

    footer .pageTOp a {
        width: 44px;
        height: 44px;
        margin: 0 auto;
    }

    footer .bottomFooter .copyw small {
        font-size: var(--scale-24);
        position: relative;
        bottom: -7px;
    }



    .udCommonHero img {
        height: 400px;
    }

    .requiInner table th {
        font-size: var(--scale-16);
    }

    .requiInner tr {
        padding: var(--scale-24) 0;
    }

    #entry {
        display: block;
    }

    #philosophy {
        display: block;
    }

    #philosophy .texttBox p {
        margin-bottom: var(--scale-32);
    }

    #philosophy .texttBox {
        margin-top: var(--scale-88);
    }

    #philosophy {
        padding: var(--scale-120) 5.556vw;
    }

    #access .map {
        margin-top: 56px;
        padding-top: 60%;
    }

    #access address {
        margin-top: var(--scale-32);
    }

    #access {
        padding: var(--scale-144) 5.556vw var(--scale-100) 5.556vw;
    }

    #philosophy .texttBox {
        margin-top: 0;
    }

    .indexBox .titleBox {
        grid-column: 1 / -1;
    }

    .indexBox .index01 {
        grid-column: 1 / span 2;
    }

    .indexBox .index02 {
        grid-column: 3 / -1;
    }

    .indexBox {
        padding: var(--scale-88) 5.556vw var(--scale-144) 5.556vw;
        display: grid;
        gap: 32px;
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .indexBox .indexitem .title {
        font-size: var(--scale-21);
        margin-bottom: var(--scale-0);
    }


    .indexBox {
        padding: var(--scale-56) 5.556vw var(--scale-100) 5.556vw;
    }

    .serviceitem {
        display: block;
    }

    .serviceitem .imgBox img {
        width: 100%;
        aspect-ratio: 16 / 9;
    }

    .serviceitem .imgBox {
        max-width: none;
        margin-bottom: 40px;
    }

    .serviceitem .textBox {
        margin-top: 40px;
    }

    .serviceitem .titleBox .title {
        font-size: var(--scale-26);
    }

    .serviceitem {
        padding: var(--scale-88) 5.556vw var(--scale-100) 5.556vw;
    }

    .indexBox .indexitem .enTilte {
        margin-bottom: var(--scale-12);
    }
.eqconBox {
    display: block;
}
    
    
    
    
    .eqconBoxWrap {
    padding-top: 88px;
}
    .eqCatBox ul {
   display: flex;
        flex-wrap: wrap;
        gap:8px;
}
    
    .eqCatBox>div {
    width: auto;
}
    
    .eqCatBox a {
    font-size: 15px;
    transition: .4s;
    padding: 2px 20px;
}
    
    .eqCatBox p {
    margin-bottom: 10px;
}
    
    .eqCatBox{
        margin-bottom: 56px;
    }
    #formWrap .conDesBox {
    font-size: var(--scale-13);
}
    
    
    

}














@media screen and (max-width: 650px) {
    #hero h2 {
        font-size: var(--scale-39);
        margin-bottom: var(--scale-26);
        line-height: 56px;
    }

    #hero .inWrap span::after {
        bottom: var(--scale-6);
    }

    .menu {
        height: 10px;
        width: 32px;
    }

    .LatestBlog .ActionBox {
        display: none;
    }

    #hero .mainCopyBox p {
        font-size: var(--scale-13);
        margin-bottom: var(--scale-80);
    }

    #hero .mainCopyBox {
        left: 24px;
        right: 24px;
    }

    header .logoBox img {
        width: 178px;
    }

    .gnavFlex .Gnwlogo img {
        width: 178px;
    }

    header {
        padding: 16px 24px;
    }

    #hero .hero__lead {
        right: var(--scale-24);
        top: var(--scale-94);
        font-size: var(--scale-10);
    }

    .LatestBlog .BlogItem {
        border-radius: 8px;
        padding: var(--scale-16);
    }

    #hero .hero__tagline {
        letter-spacing: 0;
    }

    .LatestBlog .ContentBox {
        padding: 0 var(--scale-21);
    }

    .LatestBlog .LatestTitle {
        margin-bottom: var(--scale-6);
        padding-left: var(--scale-16);
    }

    header {
        padding: 14px 24px;
    }

    .Gnwlogo.logo {
        padding: 14px 24px;
    }

    .LatestBlog {
        margin-bottom: var(--scale-100);
    }

    #hero .mainCopyBox {
        bottom: 18vh;
    }

    #about {
        padding: 0 24px;
        padding-bottom: var(--scale-88);
        margin-bottom: var(--scale-88);

    }

    #about p br {
        display: none;
    }

    #about .comonSbtn {
        margin: 0;
    }

    #about p {
        text-align: left;
        line-height: 2;
        font-weight: 400;
        margin-bottom: var(--scale-22);
        letter-spacing: .06em;
    }

    .commonTItle .space {
        width: 10px;
    }

    .commonTItle .jaITlte::after {
        top: 5px;
    }

    #service .contBox .imgBox::after {
        top: -19%;
    }

    #service .contBox .imgBox::after {
        border-radius: 0 4px 4px 0;
    }

    #service .contBox .imgBox img {
        border-radius: 4px;
    }

    #about .title {
        font-size: 6.2vw;
        text-align: left;
        line-height: 1.5;
        margin-bottom: var(--scale-40);
    }

    #service .desBox p {
        font-size: var(--scale-18);
    }

    #service .contBox .imgBox > div {
        border-radius: 4px;
    }

    .pcBr {
        display: none;
    }

    .commonTItle .jaITlte {
        padding-left: 12px;
        font-size: var(--scale-13);
        margin-bottom: var(--scale-12);
    }

    #about .secTitle {
        margin-bottom: var(--scale-24);
        text-align: left;
    }

    .commonTItle .nams {
        font-size: var(--scale-10);
    }

    .commonTItle .enFont {
        font-size: var(--scale-26);
        letter-spacing: 0;
    }

    #hero .loopSlide {
        height: 48px;
    }

    #projects .nam {
        font-size: var(--scale-10);
    }

    #equipment .listflex img {
        max-width: 112px;
    }

    #equipment .commonTItle {
        padding: 20px 24px 0 24px;
    }

    #equipment .listflex a {
        padding: var(--scale-16) var(--scale-15) var(--scale-27) var(--scale-15);
    }

    #equipment .commonTItle p {
        margin-top: var(--scale-12);
        font-size: var(--scale-13);
        letter-spacing: .04em;
    }

    #equipment .commonTItle {
        margin-bottom: var(--scale-31);
    }

    .spBr {
        display: block;
    }

    #projects .textBox {
        margin-bottom: var(--scale-54);
    }

    #projects .commonTItle {
        margin-bottom: var(--scale-40);
    }

   body.open .menu__line--bottom {
    bottom: 7px !important;
}
body.open .menu {
    top: 46px;
}
    #projects .proTitle {
        font-size: var(--scale-18);
        margin-top: var(--scale-10);
    }

    #blog .flexBox .MetaRow {
        column-gap: 12px;
    }

    .commonTItle .enFont {
        font-size: var(--scale-26);
    }

    #blog .TagBadge {
        font-size: var(--scale-11);
        padding: 3px 10px;
        border-radius: 80px;
    }

    #commonCta .commonTItle p br {
        display: none;

    }

    footer .topFooter nav ul {
        margin-top: var(--scale-40);
    }

    #commonCta .arrowBox {
        width: 88px;
        height: 88px;
        margin-top: 40px;
    }

    .pageTOpSp {
        margin-top: var(--scale-48);
        margin-bottom: var(--scale-24);
    }

    footer .bottomFooter .flogo {
        margin-bottom: var(--scale-32);
    }

    footer .topFooter .fcopy img {
        max-width: 274px;
    }

    footer .topFooter nav ul a::after {
        top: 26px;
    }

    footer .bottomFooter .flogo img {
        max-width: 212px;
    }

    #commonCta svg {
        width: 88px;
        height: 88px;
    }

    footer .topFooter nav ul a {
        padding: var(--scale-16) var(--scale-8);
        font-size: var(--scale-13);
    }

    #commonCta .commonCtaInner::after {
        background: rgba(4, 33, 54, 0.85);
    }

    #commonCta .commonCtaInner {
        height: 378px;
        padding: 0 24px;
    }

    #commonCta .commonTItle p {
        margin-top: var(--scale-25);
        font-size: var(--scale-13);
    }

    .LatestBlog .MainTitle {
        font-size: var(--scale-12);
        letter-spacing: 0;
        line-height: 1.6;
    }

    #blog .commonBtnWrap {
        justify-content: center;
    }

    .categorylist ul a {
        padding: var(--scale-6) var(--scale-12) var(--scale-7) var(--scale-12);
    }

    #commonCta .commonTItle .jaITlte {
        display: inline-block;
    }

    #commonCta .commonCtaInner {
        flex-direction: column;
        justify-content: center;
        text-align: center;
    }


    #blog .commonArrowCircle {
        display: none;
    }

    #blog .MainTitle {
        font-size: var(--scale-12);
        letter-spacing: 0;
    }

    #blog {
        padding: var(--scale-56) 24px;
    }

    #blog .flexBox li a {
        padding: var(--scale-21) 0;
        column-gap: 24px;
    }

    #blog .flexBox .imgBox img {
        max-width: 139px;
    }

    .categorylist .enFont {
        font-size: var(--scale-14);
        margin-bottom: var(--scale-6);
    }

    #equipment {
        margin-bottom: var(--scale-88);
    }

    .logoBox img {
        transition: .4s;
    }

  .change-color .menu {
    top: 28px;
}

    #projects .comonCta {
        margin-top: var(--scale-48);
    }

    .menu {
        right: 24px;
    }

    .open .change-color .menu {
        top: 33px;
    }

    .udPage header .blacklogo {
        left: 24px;
    }

    .gnav__menu {
        margin-top: 16px;
    }

    .Gnwlogo.logo {
        transition: .4s;
    }

    .change-color .Gnwlogo.logo {
        padding: 10px 24px;
    }

    .Gnwlogo img {
        transition: .4s;
    }

    .change-color .gnavFlex .Gnwlogo img {
        width: 128px;
    }

    .change-color .logoBox img {
        width: 128px;
    }

    header.change-color {
        padding: 10px 24px;
    }

    .gnav .gnavFlex .copyw {
        bottom: -9px;
        letter-spacing: 0;
        font-size: 7vw;
    }

    .gnav__wrap {
        align-items: center;
        display: flex;
        height: 100%;
        width: 100%;
        flex-direction: column;
        align-items: anchor-center;
        justify-content: flex-start;
    }

    #service .commonTItle {
        margin-bottom: var(--scale-80);
    }

    #service {
        margin-bottom: var(--scale-88);
    }

    #about .desBox {
        margin-bottom: var(--scale-72);
    }

    #projects {
        padding: var(--scale-56) 24px;
    }

    .gnav__menu .hmlist a {
        font-size: var(--scale-13);
        padding: 16px 8px;
        border-bottom: solid 1px rgba(112, 112, 112, 0.20);
    }

    #requi {
        padding: var(--scale-56) 24px;
    }

    .udCommonHero img {
        height: 340px;
    }

    .breackWrap {
        margin-top: 86px;
        padding: 0 var(--scale-8);
    }

    #requi table {
        margin-top: var(--scale-56);
    }

    #entry {
        padding: var(--scale-56) 24px;
        display: block;
    }

    .udCommonTitle .commonTItle .enFont {
        font-size: var(--scale-26);
    }

    .requiInner table td {
        line-height: 1.6;
    }

    .udCommonTitle {
        padding: 0 var(--scale-24);
        margin-top: var(--scale-56);
        margin-bottom: var(--scale-24);
    }

    #requi table strong::after {
        width: 4px;
        height: 4px;
        top: 10px;
    }

    #requi table strong {
        padding-left: 12px;
    }

    #requi .inList p {
        padding-left: 12px;
    }

    .requiInner tr {
        gap: 16px;
        grid-template-columns: repeat(8, minmax(0, 1fr));
    }

    .commonTItle .jaITlte::after {
        left: 1px;
    }

    .breack {
        font-size: 10px;
        padding: 10px 21px;
        column-gap: 12px;
    }

    .requiInner table th {
        font-size: var(--scale-13);
    }

    .udPage .udPage header .blacklogo {
        left: 24px;
    }

    .requiInner table td {
        grid-column: 3 / -1;
        font-size: 13px;
        line-height: 1.8;
        font-weight: 400;
    }

    .udPage header .logoBox img {
        width: 150px;
    }

    .udPage .menu {
        top: 37px;
    }

    .Related h2 {
        margin-bottom: 34px;
    }

    .udPage header.change-color .blacklogo {
        left: 24px;
    }

    .udPage .change-color .menu {
        top: 31px;
    }

    .post_page_navi {
        margin-top: 56px;
        border-radius: 4px;
        padding: 21px 24px;
    }

    .Related h2 .enFont {
        font-size: 21px;
    }

    .Related .flexBox {
        gap: 34px 16px;
    }

    .blog-main .meta-info {
        column-gap: 10px;
    }

    .BlogSingleContInner {
        padding: 0 24px;
    }

    .Related .blog-main .article-title {
        font-size: var(--scale-14);
        line-height: 1.4;
        margin: 0 0 8px 0;
    }

    .Related {
        padding-top: 56px;
        padding-bottom: 56px;
    }

    .RelatedInner {
        padding: 0 24px;
    }

    #postnavi {
        padding: 0 24px;
    }

    .post_page_navi span {
        font-size: 12px;
    }

    #philosophy .texttBox {
        margin-top: var(--scale-56);
    }

    .BlogSingleContInner .blog-main .article-title {
        font-size: var(--scale-26);
        margin-top: var(--scale-12);
    }

    .BlogSingleContInner .mainContents p {
        font-size: 15px;
        margin-top: 6px;
        line-height: 24px;
    }

    #requi.overview table strong::after {
        top: 11px;
    }

    #philosophy {
        padding: var(--scale-88) 24px;
    }

  #philosophy .texttBox p {
    line-height: 2;
    font-weight: 400;
    font-size: 15px;
    margin-bottom: var(--scale-32);
    letter-spacing: .06em;
}

    #access address {
        margin-top: var(--scale-21);
        font-size: var(--scale-13);
        line-height: 1.4;
    }

    #access .map {
        margin-top: 40px;
        padding-top: 70%;
    }

    #requi.overview table p {
        line-height: 1.3;
    }

    #requi.overview table strong {
        margin-bottom: 2px;
    }

    #access {
        padding: var(--scale-88) 24px var(--scale-56) 24px;
    }

    .indexBox .index01 {
        grid-column: 1 / -1;
        margin-bottom: var(--scale-24);
    }

    .indexBox .index02 {
        grid-column: 1 / -1;
    }

    .indexBox .titleBox {
        font-size: var(--scale-18);
    }

    .commonArrowCircle {
        width: 26px;
        min-width: 26px;
        height: 26px;
    }

    .serviceitem .textBox .desBox p {
        line-height: 2;
        font-size: var(--scale-15);
        margin-bottom: var(--scale-26);
    }

    .indexBox .indexitem .title {
        font-size: var(--scale-16);
    }

    .indexBox {
        gap: 18px;
    }
.eqconBoxWrap dl div dd {
    padding: 0  12px;
    font-size: 13px;
}
    .serviceitem .enTilte {
        margin-bottom: var(--scale-12);
    }
    .eqconBox .inFlexBox {
    gap: 56px 0;
}
    .eqconBox .cardBox {
    padding: 18px 16px 16px;
    box-sizing: border-box;
}
.eqconBoxWrap {
    padding-top: 56px;
}
    .indexBox {
        padding: var(--scale-56) 24px var(--scale-88) 24px;
    }
.checkbox p {
    font-size: 12px;
}
    .serviceitem .titleBox .title {
        font-size: var(--scale-24);
    }
.eqCatBox li {
    margin-bottom: 0;
}
    .submitBox {
    margin-top: 40px;
}
    .checkbox input {
    width: 24px;
    height: 24px;
}
    .serviceitem {
        padding: var(--scale-40) 24px var(--scale-88) 24px;
    }
    .form_contentBox {
    margin-bottom: 16px;
}
.eqCatBox ul {
    gap:4px  8px;
}
    .submitBox input {
    font-size: 15px;
    height: 64px;
    max-width: 248px;
    margin: 0 auto;
}
    .form_flexBox_list {
    margin-bottom: 3px;
}
    input {
    height: 56px;
    padding: 0 16px;
}
    .form_flexBox {
    margin-bottom: 15px;
}
   textarea {
    padding: 16px;
    line-height: 1.4;
    height: 238px;
}
    .eqCatBox a {
    font-size: 13px;
        line-height: 1;
    padding: 6px 12px;
}
    
    .form_flexBox_list {
    font-size: 14px;
}
    
.eqconBox .inFlexBox .itemBox {
    width: auto;
}
    .serviceitem .textBox ul {
        gap: 8px 6px;
    }

.eqconBoxWrap {
    padding-bottom: 56px;
}
.form .radioBox span {
    font-size: 15px;
    margin-top: 0px;
    top: 2px;
}
#formWrap .conDesBox {
    font-size: var(--scale-12);
    margin-top: var(--scale-23);
    margin-bottom: var(--scale-34);
}
 .privacyWrap .commonDesBox {
    margin-bottom: 34px;
}
    #blog.udBlogWrap {
    padding: var(--scale-24) 24px var(--scale-56) ;
}
    .privacyWrap h2 {
    font-size: 16px;
}
    #blog .flexBox li:nth-child(even) {
    margin-left: 0;
}
    .privacyWrap ul li {
    letter-spacing: 0.08em;
    font-weight: 400;
    line-height: 24px;
    font-size: 13px;
}
    .form .radioBox input {
    width: 24px;
    font-size: 15px;
    height: 24px;
}
    .privacyWrap h1 {
    font-size: 26px;
    margin-bottom: 27px;
    letter-spacing: 0;
}
    .privacyWrap .des {
    font-size: 13px;
    font-weight: 400;
    letter-spacing: 0.08em;
    line-height: 24px;
}
    .privacyWrap {
    padding: 0 24px;
    padding-top: 56px;
    padding-bottom: 56px;
}
    .thankYou .ContactWrap .contaFlex {
    margin-bottom: 56px;
}
    .thankYou .formBox, .thankYou .commonBtnWrap {
    padding: 0 24px;
}
    .menu {
    top: 42px;
}
    .menu__line--bottom {
    bottom: 1px;
}
    .thankYou .ContactWrap .atenBox {
    font-size: 13px;
    font-weight: 500;
    line-height: 26px;
}
    .menu__line {
    height: 3px;
}
/*
.gnav .gnavFlex {
    min-height: 150px;
    overflow: auto;
}
*/
}
