@charset "UTF-8";

.prologue {
    margin-top: 16rem;

    @media screen and (max-width: 767px) {
        margin-top: 8rem;
    }

    .blue-title {
        font-family: 'Zen Kaku Gothic Antique';
        font-weight: 700;
        font-size: 3.2rem;
        line-height: 1.72;
        letter-spacing: 0.05em;
        color: var(--blue);

        @media screen and (max-width: 767px) {
            font-size: 2rem;
        }
    }

    .introduction {
        margin-top: 2.8rem;

        @media screen and (max-width: 767px) {
            margin-top: 2rem;
        }
    }
}

.specialities {
    margin: 10rem 0 15rem;

    @media screen and (max-width: 767px) {
        margin: 6rem 0 8rem;
    }

    .speciality {
        margin-top: 8rem;

        @media screen and (max-width: 767px) {
            margin-top: 6rem;
        }

        .number {
            font-weight: 700;
            line-height: 1.5;
            letter-spacing: 0.05em;
            color: var(--blue);
        }

        .underlined-title {
            margin-top: 1.6rem;
            position: relative;
            width: 100%;
            border-bottom: 0.2rem solid var(--blue);
            padding-left: 3.5rem;
            font-family: 'Zen Kaku Gothic Antique';
            font-weight: 700;
            font-size: 2.6rem;
            line-height: 1.5;
            padding-bottom: 0.6rem;

            &::before {
                content: "";
                height: 4.9rem;
                width: 1rem;
                background-color: var(--blue);
                position: absolute;
                left: 0;
                top: 50%;
                transform: translateY(-50%) skewX(-10deg);
            }

            @media screen and (max-width: 767px) {
                margin-top: 1rem;
                padding-left: 2rem;
                font-size: 2rem;
                padding-bottom: 0.5rem;

                &::before {
                    height: 3.8rem;
                    width: 0.6rem;
                }
            }
        }

        .statement {
            margin-top: 2rem;
            letter-spacing: 0.05em;
        }

        & img {
            margin-top: 3rem;

            @media screen and (max-width: 767px) {
                margin-top: 2rem;
            }
        }
    }
}

.achievements {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 6.3rem 3rem;

    @media screen and (max-width: 767px) {
        grid-template-columns: repeat(2, 1fr);
        gap: 4rem 1rem;
    }

    .achievement {

        & img {}

        .caption {
            margin-top: 1.5rem;
            font-weight: 700;
            font-size: 2rem;
            line-height: 1.5;
            letter-spacing: 0.05em;

            @media screen and (max-width: 767px) {
                margin-top: 1rem;
                font-size: 1.2rem;
            }
        }

        .location {
            width: fit-content;
            margin-top: 1.5rem;
            background-color: var(--blue);
            padding: 0.7rem 1.3rem;
            font-weight: 700;
            font-size: 1.4rem;
            line-height: 1;
            color: #FFFFFF;

            @media screen and (max-width: 767px) {
                margin-top: 0.5rem;
                padding: 0.5rem 1rem;
                font-size: 1.1rem;
            }
        }
    }
}