/* 共通 */
html {
    font-size: 10px;
    scroll-behavior: smooth;
}
body {
    font-family: "Yu Gothic", "游ゴシック", YuGothic, "游ゴシック体";
    font-weight: bold;
    margin: 0;
    padding: 0;
}
.jump-btn {
    text-align: center;
}
.start {
    background-color: #FFC846;
    border-radius: 6rem;
    box-shadow: 1rem 1rem 1rem rgb(10, 10, 10);
    color: black;
    cursor: pointer;
    display: inline-block;
    font-size: 4rem;
    margin: 4rem;
    padding: 1rem;
    text-decoration: none;
    width: 47rem;
}
.subtitle {
    font-size: 5rem;
    margin-top: 2rem;
    text-align: center;
    white-space: nowrap;
}

/* TORUSロゴ */
.logo img {
    height: 3.2rem;
    left: 1.5rem;
    position: absolute;
    top: 1.5rem;
}

/* スクロール */
.scroll {
    align-items: center;
    display: flex;
    height: 10rem;
    justify-content: center;
    width: 100%;
}
.scroll div {
    color: #000;
    display: inline-block;
    font-size: 2.5rem;
    margin: 0.7rem 1.7rem 0 0;
}
.arrow {
    animation: toggle 0.6s alternate infinite;
    border-bottom: 0.3rem solid black;
    border-left: 0.3rem solid black;
    display: inline-block;
    height: 2rem;
    transform: rotate(-45deg);
    width: 2rem;
}
@keyframes toggle {
    to {
    transform: translateY(-1.5rem) rotate(-45deg);
    }
}

/* first-container */
#first-container {
    align-items: center;
    display: flex;
    flex-direction: column;
    justify-content: space-around;
    min-height: calc(100vh);
    width: 100%;
}
.title {
    font-size: 6rem;
    margin-top: 3rem;
}
.catch-copy {
    background: linear-gradient(to right, #7aabff, #2868d6, #1d2192);
    border-radius: 1rem;
    color: #ffffff;
    font-size: 4.5rem;
    padding: 0 1rem;
    text-align: center;
}

/* second-container */
#second-container {
    align-items: center;
    background-color: rgba(233, 241, 255, 0.95);
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    min-height: calc(100vh);
}
#second-container p {
    font-size: 2rem;
    margin: 0 2rem 5rem;
}
#second-container .first-line {
    letter-spacing: 0.4rem;
}
#second-container .second-line {
    display: block;
}
.image {
    display: flex;
    flex-wrap: wrap;
    gap: 10rem;
    justify-content: center;
}
.image img {
    border-radius: 13%;
    height: 43rem;
}

/* third-container */
#third-container {
    align-items: center;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    min-height: calc(100vh);
}
#third-container p {
    font-size: 2rem;
    margin: 0 2rem 2rem;
}
#third-container .second-line {
    display: block;
    letter-spacing: 0.4rem;
}
.procedure {
    display: flex;
    flex-wrap: wrap;
    gap: 10rem;
    justify-content: center;
    padding: 5rem;
}
.step {
    position: relative;
}
.procedure img {
    border-radius: 13%;
    height: 43rem;
}
.number {
    color: #3e4f6c;
    font-family: Arial;
    font-size: 12rem;
    font-weight: 800;
    left: -1.3rem;
    position: absolute;
    text-shadow: 0.5rem 0.5rem 0 #eeeeee;
    top: -9.4rem;
}
.action {
    background: rgb(76 123 132 / 80%);
    bottom: 5rem;
    color: white;
    font-size: 3rem;
    position: absolute;
    text-align: center;
    width: 100%;
}

/* 会社概要 */
section {
    background-color: #E6E6E6;
    display: flex;
    justify-content: center;
}
.company {
    padding: 3rem;
    width: 40%;
}
.company_content div {
    margin-top: 1.5rem;
}
.display_anime div {
    color: #06326F;
    font-size: 2rem;
}
.display_anime p {
    font-size: 2.5rem;
    margin: 0;
}

/* GoogleMap */
.map {
    display: flex;
    flex-direction: column;
    justify-content: center;
}
iframe {
    height: 35rem;
    width: 30vw;
}

/* 16(横):9(縦)以下の場合 */
@media (max-aspect-ratio: 16/9) {
    /* 共通 */
    .start {
        font-size: 2.2rem;
        padding: 1rem;
        width: 25rem;
    }
    .subtitle {
        font-size: 3.5rem;
    }

    /* TORUSロゴ */
    .logo img {
        height: 3rem;
    }

    /* スクロール */
    .scroll div {
        font-size: 2rem;
    }
    .arrow {
        height: 1.5rem;
        width: 1.5rem;
    }

    /* first-container */
    .title {
        font-size: 4rem;
        text-align: center;
    }
    .title .first-line {
        letter-spacing: 2.8rem;
    }
    #first-container .responsive-break {
        display: block;
    }
    .catch-copy {
        font-size: 2.3rem;
        margin-top: 1.5rem;
        padding: 1rem 0;
    }

    /* second-container */
    #second-container {
        justify-content: center;
    }
    #second-container p {
        font-size: 1.8rem;
    }
    .image {
        gap: 3rem;
    }
    .image img {
        height: auto;
        max-width: 80%;
        width: 40rem;
    }

    /* third-container */
    #third-container p {
        font-size: 1.6rem;
    }
    .procedure {
        gap: 7rem;
        margin-top: 4rem;
        padding: 0;
        text-align: center;
    }
    .procedure img {
        height: auto;
        max-width: 80%;
        width: 40rem;
    }
    .number {
        left: 3rem;
        top: -9rem;
    }
    .action {
        left: 3.8rem;
        width: 80%;
    }

    /* 会社概要 */
    section {
        flex-direction: column;
    }
    .company {
        max-height: calc(100vh);
        padding: 1rem 10%;
        width: 80%;
    }
    .section-title div {
        font-size: 1.8rem;
        text-align: center;
    }
    .section-title p {
        font-size: 2rem;
        text-align: center;
    }
    .display_anime div {
        font-size: 1.8rem;
    }
    .display_anime p {
        font-size: 2rem;
    }

    /* GoogleMap */
    .map {
        flex-direction: row;
    }
    iframe {
        height: 35rem;
        margin: 3rem 0;
        width: 80%;
    }
}

/* 画面幅が600px以下の場合 */
@media (max-width: 600px) {
    /* 共通 */
    .subtitle {
        white-space: normal;
    }

    /* second-container */
    #second-container .responsive-break {
        display: block;
    }
    #second-container .subtitle .first-line {
        letter-spacing: 0.3rem;
    }

    /* third-container */
    #third-container .responsive-break {
        display: block;
    }
    #third-container .subtitle .first-line {
        letter-spacing: 0.5rem;
    }
}