.company-profile,
.history {
    max-width: 1280px;
    margin: 0 auto;
    margin-top: 140px;
}

.company-profile {
    margin-bottom: 200px;
}

.history {
    margin-bottom: 390px;
}

.profile__heading {
    display: flex;
    flex-direction: column;
}

.profile__heading__en {
    font-size: clamp(2.75rem, 0.417rem + 4.86vw, 6.25rem);
    line-height: 1.25;
}

.profile__heading__ja {
    display: inline-block;
    font-size: clamp(22px, calc(32 / 1200 * 100vw), 32px);
    line-height: 1;
    padding: .01em .075em .09em;
    background: rgb(var(--color-red));
    width: fit-content;
}

.profile__about {
    max-width: 640px;
    margin-top: 48px;
    margin-bottom: 80px;
}

.profile__table__title {
    line-height: 1.438;
    border-left: 3px solid rgb(var(--color-red));
    padding-left: 20px;
    margin-bottom: 32px;
}

.profile__table__box {
    font-size: 16px;
    line-height: 1.438;
}

.profile__table__box__item {
    display: grid;
    grid-template-columns: minmax(0, 128px) 1fr;
    padding: 32px 0;
    align-items: center;
}

.profile__table__box__item__head p {
    padding: 0 16px;
}

.profile__table__box__item__data p {
    padding: 0 16px;
}

.data-2 {
    display: flex;
    margin-bottom: 16px;
}

.data-2:last-child {
    margin-bottom: 0px;
}

.data-2 .sp-bl {
    margin-left: 20px;
}

.border {
    position: relative;
    display: block;
    background-color: #C1C1C1;
    width: 100%;
    height: 1px;
}

.border::after {
    position: absolute;
    content: "";
    background-color: #555555;
    width: 128px;
    height: 1px;
}

.access {
    margin-top: 80px;
}

.access__box {
    display: grid;
    grid-template-columns: minmax(320px, 672px) minmax(320px, 576px);
    gap: 32px;
    margin-bottom: 86px;
}

.access__box__title {
    font-size: 24px;
    line-height: 1.458;
    margin-bottom: 16px;
}

.access .profile__table__box__item {
    padding: 43.5px 0;
}

.map {
    position: relative;
    z-index: 1;
    background-color: #D9D9D9;
    border-radius: 4px;
    width: 100%;
    aspect-ratio: 576 / 432;
    overflow: hidden;
}

.map iframe {
    position: absolute;
    z-index: 1;
    inset: 0;
    width: 100%;
    height: 100%;
}

.access__map__link {
    display: flex;
    gap: 16px;
    align-items: center;
    justify-content: end;
    width: fit-content;
    margin-top: 8px;
    margin-left: auto;
    border-bottom: 1px solid #222222;
}

.access__icon {
    width: 14px;
}

.history__container {
    display: grid;
    grid-template-columns: 1fr minmax(320px, 1024px);
    gap: 99px;
}

.history__container__year {
    font-size: 26px;
    line-height: 1.269;
    background-color: rgb(var(--color-red));
    padding: 4px 12px;
    width: fit-content;
    height: fit-content;
    position: sticky;
    top: 100px;
    margin-bottom: 30px;
}

@media screen and (max-width: 767px) {

    .company-profile,
    .history {
        max-width: 560px;
    }

    .company-profile {
        margin-top: 50px;
        margin-bottom: 47px;
    }

    .history {
        margin-top: 60px;
        margin-bottom: 167px;
    }


    .profile__heading__ja {
        font-size: 20px;
        margin-top: 10px;
    }

    .profile__about {
        margin-top: 30px;
        margin-bottom: 60px;
    }

    .profile__table__box__item {
        padding: 30px 0;
    }

    .profile__table__box__item__head {
        display: flex;
        align-items: center;
    }

    .data-2 {
        margin-bottom: 0px;
        display: block;
        padding-bottom: 18px;
    }

    .data-2:last-child {
        padding-bottom: 0px;
    }

    .access {
        margin-top: 60px;
    }

    .profile__table__title {
        line-height: 1.45;
        padding-left: 18px;
    }

    .access__box {
        grid-template-columns: 1fr;
        gap: 25px;
        margin-bottom: 61px;
    }

    .access__box__title {
        font-size: 18px;
        line-height: 1.444;
        margin-bottom: 25px;
    }

    .access .profile__table__box__item {
        padding: 30px 0;
    }

    .access__map__link {
        margin-top: 4px;
    }

    .history__container {
        grid-template-columns: 1fr;
        gap: 30px;
        margin-top: 60px;
    }

    .history__container__year {
        font-size: 20px;
        line-height: 1.25;
        padding: 2px 4px;
        position: sticky;
        top: 100px;
        z-index: 10;
        margin-bottom: 0px;
    }

    .border-sp {
        position: relative;
        display: block;
        background-color: #C1C1C1;
        width: 100%;
        height: 1px;
    }

    .border-sp::after {
        position: absolute;
        content: "";
        background-color: #555555;
        width: 128px;
        height: 1px;
    }
}