@charset "utf-8";

* {
    box-sizing: border-box;
}
:root{
    --sub-font:'Roboto', sans-serif;
    --fa: "Font Awesome 6 Free"; /* https://fontawesome.com/search?o=r&m=free */
}
html {
    font-size: 62.5%;
    /* 15px x 0.625 = 10px(=1rem) */
}

body {
    background: #132b46;
    font-family: "Noto Sans JP", sans-serif;
    font-weight: 500;
    font-size: 1.6rem;
    -webkit-text-size-adjust: 100%;
    font-feature-settings: "palt";
    line-height: 1.7;
}

img {
    pointer-events: none;
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    -moz-touch-callout: none;
    -moz-user-select: none;
    user-select: none;
}

/* ------------------------------------------------------- */
/* layout ------------------------------------------------ */
/* ------------------------------------------------------- */

.inner {
    max-width: 1165px;
    padding: 0 25px;
    margin: 0 auto;
}

.indexTopTxt {
    position: relative;
    padding: 140px 0 170px;
	margin-bottom:60px;
    @media (width <= 1500px) {
        padding: 12.1vw 0;
        @media (width <= 999px) {
            letter-spacing: 0;
			margin-bottom:25px;
            @media (width <= 600px) {
                padding: 12vw 0 15vw;
            }
        }
    }
    h1 {
        font-size: 6rem;
        @media (width <= 1500px) {
            font-size: 5rem;

            @media (width <=1400px) {
                font-size: 3.35vw;
                @media (width <= 999px) {
                  font-size: 4.5vw;
                  @media (width <= 600px) {
                    font-size: 2.2rem;
                  }
                }
            }
        }
        font-weight: bold;
        color: #f0f0f0;
        letter-spacing: 0;
        line-height: 1;
        text-align: center;
        position: relative;
        z-index: 2;
    }

    .subTxt {
        position: absolute;
        top: 50%;
        transform: translateY(-50%);
        left: 0;
        right: 0;
        width: 100%;

        font-family: var(--sub-font);
        font-size: 40rem;

        text-align: center;
        letter-spacing: 0.06em;
        color: #132b46;
        text-shadow:
            1px 1px 0px #656565,
            -1px 1px 0px #656565,
            1px -1px 0px #656565,
            -1px -1px 0px #656565,
            1px 0px 0px #656565,
            0px 1px 0px #656565,
            -1px 0px 0px #656565,
            0px -1px 0px #656565;
        line-height: 1;
        z-index: 0;
        pointer-events: none;
        @media (width <=1500px) {
                font-size: 27.25vw;
        
                @media (width <=999px) {
                    letter-spacing: 0;
        
                    @media (width <=600px) {
                        top: 2vw;
                        transform: translateY(0);
                    }
                }
            }
    }
}

.topMessage{
	--topMessage-width:780px;
    margin-bottom: 0px;
    padding: 0px;
	width:var(--topMessage-width);
    margin-top: 60px;
    margin-left: calc(50% - (var(--topMessage-width) + -90px));
	@media (width <= 1400px) {
	  --topMessage-width:42.31vw;
	  margin-left:calc(50% - (var(--topMessage-width) + 3.85vw));
	    @media (width <= 999px) {
			--topMessage-width:85%;
		    padding: 0px;
            margin: 40px auto 0;
		}
	}	
    img{
        width: 100%;
        display: block;
    }
    
}

.indexContainer {
    background: url(../images/index/indexBg.webp);
    background-size: 100%;
    background-repeat: no-repeat;
    background-position: bottom;
    @media (width <= 999px) {
      background-size: 140%;
    }
}
.flexContainer{
    display: flex;
    gap: 50px;
    margin-bottom: 130px;
    @media (width <= 999px) {
      flex-direction: column;
    margin-bottom: min(130px, 15vw);
    }
    >div{
        width: 100%;
        
        /* サムネイル */
       .thum {
            width: 100%;
            margin-bottom: 40px;
            img{
                width: 100%;
                display: block;
            }
            @media (width <= 999px) {
                margin-bottom: 25px;
            }
        }

        /* 名前 */
        .company{
            margin-bottom: 50px;
            @media (width <= 999px) {
                margin-bottom: min(40px, 6vw);
            }

            .subTxt{
                text-align: center;
                font-size: 2rem;
                letter-spacing: 0.06em;
                color: #eee;
                line-height: 1;
                margin-bottom: 20px;
                @media (width <= 999px) {
                    font-size: 1.8rem;
                    margin-bottom: 10px;
                }
            }
            .name{
                font-size: 3.6rem;
                font-weight: bold;
                color: #eee;
                letter-spacing: 0.02em;
                line-height: 1;
                display: flex;
                align-items: center;
                justify-content: center;
                gap: 5px;
                @media (width <= 999px) {
                  font-size: 2.6rem;
                }
                span{
                    font-weight: 400;
                }
                .en{
                    font-family: var(--sub-font);
                    font-size: 4.2rem;
                    font-weight: 500;
                    margin-top: 6px;
                    @media (width <=999px) {
                        font-size: 3.2rem;
                        margin-top: 5px;
                    }
                }
            }
        }

        /* リスト */
        .list{
            li{
                width: 100%;
                font-size: 2.2rem;
                font-weight: bold;
                color: #ddd;
                padding: 20px 0;
                display: flex;
                align-items: baseline;
                justify-content: center;
                border-bottom: 2px solid #888;
                @media (width <= 999px) {
                    font-size: 1.6rem;
                }
                a{
                    color: #ddd;
                    text-decoration: none;
                    @media (width <= 999px) {
                        text-decoration: underline;
                    }
                }
                &:first-child{
                    padding-top: 0;
                }
                &:last-child{
                    border: 0;
                }
                .title{
                    letter-spacing: 0.04em;
                    width: 140px;
                    @media (width <= 999px) {
                      width: min(140px, 28vw);
                      font-size: 1.5rem;
                    }
                }
                .item{
                    letter-spacing: 0.1em;
                    width: calc(100% - 140px);
                    line-height: 1.5;
                    overflow-wrap: break-word;
                    @media (width <=999px) {
                        width:calc(100% - min(140px, 28vw));
                        font-size: 1.5rem;
                    }
                }
                @media (width <= 999px) {
                    .item.mail {font-size: 1.4rem;}
                }
   
            }
            .list-min-height {
                min-height: 4em;

                @media (width <=999px) {
                    min-height: auto;
                }
            }
        }
    }
}
.indexMessage{
    margin: 0 auto;
    text-align: center;
    margin-bottom: 225px;
    @media (width <= 999px) {
        font-size: 180px;
    }
    h2{
        font-size: 4.0rem;
        @media (width <= 999px) {
            font-size: 2.4rem;
        }
        font-weight: bold;
        line-height: 1.5;
        display: inline-block;
        color: #eee;
        background: #103660;
        margin-bottom: 20px;
        padding: 0px 10px;
    }
    .subTxt{
        span{
            font-size: 2.4rem;
            @media (width <=999px) {
                font-size: 1.6rem;
            }
            letter-spacing: 0.08em;
            color: #eee;
            background: #070a0f;
            display: inline-block;
            padding: 0 10px;
            &:first-child{
                margin-bottom: 10px;
            }
        }
    }
}


#copyright {
    text-align: center;
    font-size: 1.8rem;
    font-weight: 500;
    letter-spacing: 0.01em;
    color: #f0f0f0;
    padding-bottom: 30px;
    text-shadow: 0 0 15px rgba(0, 0, 0, 0.5);
    @media (width <= 999px) {
        text-shadow: 0 0 10px rgba(0, 0, 0, 1);
    }
}


/* ------------------------
404ページ
--------------------------*/
.container404{
    text-align: center;
    margin: 0 auto;
    padding-top: 50px;
    h2{
        color: #f0f0f0;
        font-size: 3rem;
        font-weight: 500;
        margin-bottom: 10px;
        @media (width <=999px) {
            font-size: 2.2rem;
        }
    }
    p{
        font-size: 1.8rem;
        color: #f0f0f0;
        margin-bottom: 40px;
        @media (width <=999px) {
            font-size: 1.7rem;
        }
    }

}
.btn404{
    a{
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 15px;
        width: fit-content;
        line-height: 1;
        margin: 0 auto;
        padding: 20px 30px;
        font-size: 2rem;
        font-weight: 500;
        letter-spacing: 0.025em;
        color: #ddd;
        border: 1px solid #ddd;
        text-decoration: none;
        transition: 0.3s;
        ::after {
          font-family: var(--fa);
          content: '\f054'; /* f054 = right arrow */
          font-weight: bold;
        }
        &:hover,&:focus{
            background: #f0f0f0;
            color: #132B46;
        }
        @media (width <=999px) {
            font-size: 1.7rem;
        }
    }
}


/* ------------------------
アニメーション用クラス
--------------------------*/
/* アニメーション設定 */
.fadein {
    opacity: 0;
    filter: blur(12px);
    transform: translateY(20px) scale(1.05);
    transition: opacity 2400ms, filter 2400ms, transform 2400ms;
    transition-timing-function: cubic-bezier(0.1, 1, 0.2, 1);
    will-change: opacity, filter, transform;
}


/* 画面内に入った状態 */

.fadein.scrollin {
    opacity: 1;
    filter: blur(0);
    transform: translateY(0) scale(1);
}


/* 遅延 */
.fadein-delay1 {
    transition-delay: 0.8s;
}

.fadein-delay2 {
    transition-delay: 2s;
    @media (width <= 999px) {
        transition-delay: 2.5s;
    }
}

.fadein-delay3 {
    transition-delay: 2.5s;
    @media (width <=999px) {
        transition-delay: 3s;
    }
}


/* メッセージ用アニメーション */
.fadein.message-up {
    filter: blur(12px);
    opacity: 0;
    transition: opacity 1800ms cubic-bezier(0.2, 0, 0.2, 1);
    will-change: opacity, transform;
}
.fadein.message-up-delay {
    transition-delay: 1s;
    @media (width <= 999px) {
    transition-delay: 1.2s;
    }
}

.fadein.message-up.scrollin {
    opacity: 1;
    filter: blur(0);
}