/* --------------------
 Company
-------------------- */
.com-page-title {
    background-image: url(../images/pages/company/company-page-title-bg.webp);
}

.main {
    margin: 0 0 120px;
}

@media (min-width: 768px) {
    .main {
        margin: 0 0 200px;
    }
}

.menu {
    align-items: flex-start;
    display: flex;
    flex-flow: row wrap;
    gap: var(--c-pad);
    justify-content: flex-start;
    margin: 0 auto 120px;
    max-width: calc(var(--container-width) + var(--c-pad)*2);
    padding: 0 var(--c-pad);
    width: 100%;
}

@media (min-width: 768px) {
    .menu {
        gap: 0 30px;
        margin: 0 auto 150px;
    }
}

@media (min-width: 992px) {
    .menu {
        gap: 0 40px;
    }
}

@media (min-width: 1240px) {
    .menu {
        gap: 0 58px;
    }
}

.menu__item {
    flex: 0 0 calc(33.33333% - var(--c-pad)*0.66667);
}

@media (min-width: 768px) {
    .menu__item {
        flex: 0 0 calc(20% - 24px);
    }
}

@media (min-width: 992px) {
    .menu__item {
        flex: 0 0 calc(20% - 32px);
    }
}

@media (min-width: 1240px) {
    .menu__item {
        flex: 0 0 calc(20% - 46.4px);
    }
}

.menu__item a {
    align-items: center;
    background-color: var(--color-white);
    border: 1px solid var(--color-vermilion);
    color: var(--color-vermilion);
    display: flex;
    flex-flow: row nowrap;
    font-size: var(--fs14);
    height: 50px;
    justify-content: center;
    line-height: 1.4;
    text-decoration: none;
    transition: background-color var(--duration) var(--cubic) 0s, color var(--duration) var(--cubic) 0s;
    width: 100%;
}

@media (min-width: 768px) {
    .menu__item a {
        font-size: var(--fs16);
        height: 58px;
    }
}

@media (min-width: 992px) {
    .menu__item a {
        font-size: var(--fs18);
    }
}

.menu__item a:focus {
    background-color: var(--color-vermilion);
    color: var(--color-white);
}

@media (hover: hover) and (pointer: fine) {
    .menu__item a:hover {
        background-color: var(--color-vermilion);
        color: var(--color-white);
    }
}

.message {
    margin: 0 auto 120px;
    max-width: calc(var(--container-width) + var(--c-pad)*2);
    padding: 0 var(--c-pad);
    width: 100%;
}

@media (min-width: 768px) {
    .message {
        margin: 0 auto 150px;
    }
}

.message__title {
    margin: 0 0 50px;
}

.message__title__en {
    color: var(--color-vermilion);
    font-size: var(--fs18);
    font-weight: 700;
    line-height: 1.4;
    margin: 0 0 8px;
    text-align: center;
}

@media (min-width: 768px) {
    .message__title__en {
        font-size: var(--fs20);
        margin: 0 0 12px;
    }
}

@media (min-width: 992px) {
    .message__title__en {
        font-size: var(--fs23);
    }
}

.message__title__ja {
    color: var(--color-rich-black);
    font-size: var(--fs32);
    font-weight: 700;
    line-height: 1.4;
    margin: 0;
    text-align: center;
}

@media (min-width: 768px) {
    .message__title__ja {
        font-size: var(--fs36);
    }
}

@media (min-width: 992px) {
    .message__title__ja {
        font-size: var(--fs40);
    }
}

.message__contents__content {
    margin: 0 0 11px;
}

.message__contents__content p {
    color: var(--color-rich-black);
    font-size: var(--fs14);
    line-height: 1.66;
    margin: 0;
}

@media (min-width: 768px) {
    .message__contents__content p {
        font-size: var(--fs16);
    }
}

@media (min-width: 992px) {
    .message__contents__content p {
        font-size: var(--fs18);
    }
}

.message__contents__name {
    color: var(--color-rich-black);
    font-size: var(--fs14);
    line-height: 1.4;
    margin: 0;
    text-align: right;
}

@media (min-width: 768px) {
    .message__contents__name {
        font-size: var(--fs16);
    }
}

@media (min-width: 992px) {
    .message__contents__name {
        font-size: var(--fs18);
    }
}

.philosophy {
    margin: 0 auto 120px;
    max-width: calc(var(--container-width) + var(--c-pad)*2);
    padding: 0 var(--c-pad);
    width: 100%;
}

@media (min-width: 768px) {
    .philosophy {
        margin: 0 auto 150px;
    }
}

.philosophy__title {
    margin: 0 0 50px;
}

@media (min-width: 768px) {
    .philosophy__title {
        margin: 0 0 55px;
    }
}

.philosophy__title__en {
    color: var(--color-vermilion);
    font-size: var(--fs18);
    font-weight: 700;
    line-height: 1.4;
    margin: 0 0 8px;
    text-align: center;
}

@media (min-width: 768px) {
    .philosophy__title__en {
        font-size: var(--fs20);
        margin: 0 0 12px;
    }
}

@media (min-width: 992px) {
    .philosophy__title__en {
        font-size: var(--fs23);
    }
}

.philosophy__title__ja {
    color: var(--color-rich-black);
    font-size: var(--fs32);
    font-weight: 700;
    line-height: 1.4;
    margin: 0;
    text-align: center;
}

@media (min-width: 768px) {
    .philosophy__title__ja {
        font-size: var(--fs36);
    }
}

@media (min-width: 992px) {
    .philosophy__title__ja {
        font-size: var(--fs40);
    }
}

.philosophy__subtitle {
    color: var(--color-vermilion);
    font-size: var(--fs32);
    font-weight: 700;
    line-height: 1.4;
    margin: 0 0 20px;
    text-align: center;
}

@media (min-width: 768px) {
    .philosophy__subtitle {
        font-size: var(--fs36);
    }
}

@media (min-width: 992px) {
    .philosophy__subtitle {
        font-size: var(--fs40);
    }
}

.philosophy__content p {
    color: var(--color-rich-black);
    font-size: var(--fs14);
    line-height: 1.66;
    margin: 0;
    text-align: center;
    width: 100%;
}

@media (min-width: 768px) {
    .philosophy__content p {
        font-size: var(--fs16);
    }
}

@media (min-width: 992px) {
    .philosophy__content p {
        font-size: var(--fs18);
    }
}

.profile {
    margin: 0 auto 120px;
    max-width: calc(var(--container-width) + var(--c-pad)*2);
    padding: 0 var(--c-pad);
    width: 100%;
}

@media (min-width: 768px) {
    .profile {
        margin: 0 auto 150px;
    }
}

@media (min-width: 992px) {
    .profile {
        margin: 0 auto 200px;
    }
}

.profile__title {
    margin: 0 0 50px;
}

.profile__title__en {
    color: var(--color-vermilion);
    font-size: var(--fs18);
    font-weight: 700;
    line-height: 1.4;
    margin: 0 0 8px;
    text-align: center;
}

@media (min-width: 768px) {
    .profile__title__en {
        font-size: var(--fs20);
        margin: 0 0 12px;
    }
}

@media (min-width: 992px) {
    .profile__title__en {
        font-size: var(--fs23);
    }
}

.profile__title__ja {
    color: var(--color-rich-black);
    font-size: var(--fs32);
    font-weight: 700;
    line-height: 1.4;
    margin: 0;
    text-align: center;
}

@media (min-width: 768px) {
    .profile__title__ja {
        font-size: var(--fs36);
    }
}

@media (min-width: 992px) {
    .profile__title__ja {
        font-size: var(--fs40);
    }
}

.profile__table-wrapper {
    margin: 0 -5px 40px;
}

@media (min-width: 768px) {
    .profile__table-wrapper {
        margin: 0 -5px 45px;
    }
}

.profile__table {
    border: none;
    border-collapse: separate;
    border-spacing: 5px 6px;
    margin: 0;
    width: 100%;
}

.profile__table > tbody > tr > th, .profile__table > tbody > tr > td {
    font-size: var(--fs14);
    line-height: 1.66;
    vertical-align: middle;
    width: auto;
}

@media (min-width: 992px) {
    .profile__table > tbody > tr > th, .profile__table > tbody > tr > td {
        font-size: var(--fs18);
    }
}

.profile__table > tbody > tr > th {
    background-color: rgba(var(--color-vermilion-rgb), 0.8);
    border-radius: 5px;
    color: var(--color-white);
    font-weight: 400;
    min-width: 100px;
    padding: 12px 4px;
    text-align: center;
    width: 100px;
}

@media (min-width: 768px) {
    .profile__table > tbody > tr > th {
        min-width: 120px;
        width: 120px;
    }
}

@media (min-width: 992px) {
    .profile__table > tbody > tr > th {
        min-width: 147px;
        width: 147px;
    }
}

.profile__table > tbody > tr > td {
    background-color: #FAE7D9;
    border-radius: 5px;
    color: var(--color-rich-black);
    padding: 12px;
    text-align: left;
}

@media (min-width: 992px) {
    .profile__table > tbody > tr > td {
        padding: 12px 22px;
    }
}

.profile__table > tbody > tr > td p {
    color: var(--color-rich-black);
    line-height: 1.66;
    margin: 0 0 1.5em;
}

.profile__table > tbody > tr > td p:last-child {
    margin-bottom: 0;
}

.profile__group {
    align-items: center;
    display: flex;
    flex-flow: row wrap;
    gap: 16px 20px;
    justify-content: center;
    margin: 0 auto;
    max-width: 360px;
    width: 100%;
}

@media (min-width: 768px) {
    .profile__group {
        gap: 30px 16px;
        max-width: none;
    }
}

@media (min-width: 992px) {
    .profile__group {
        gap: 30px 24px;
    }
}

.profile__group__item {
    align-items: center;
    aspect-ratio: 1/1;
    background-color: #fae7d9;
    border: 2px solid var(--color-vermilion);
    border-radius: 50%;
    display: flex;
    flex: 0 0 calc(50% - 10px);
    flex-flow: row nowrap;
    justify-content: center;
}

@media (min-width: 768px) {
    .profile__group__item {
        flex: 0 0 calc(25% - 12px);
    }
}

@media (min-width: 992px) {
    .profile__group__item {
        flex: 0 0 calc(25% - 18px);
    }
}

.profile__group__item-inner {
    padding: 0 8px;
}

@media (min-width: 1240px) {
    .profile__group__item-inner {
        padding: 0 12px;
    }
}

.profile__group__item__title {
    color: var(--color-vermilion);
    font-size: var(--fs18);
    font-weight: 700;
    line-height: 1.33;
    margin: 0 0 12px;
    text-align: center;
}

@media (min-width: 768px) {
    .profile__group__item__title {
        font-size: var(--fs18);
    }
}

@media (min-width: 992px) {
    .profile__group__item__title {
        font-size: var(--fs25);
        margin: 0 0 20px;
    }
}

@media (min-width: 1240px) {
    .profile__group__item__title {
        font-size: var(--fs26);
    }
}

.profile__group__item__content p {
    color: var(--color-rich-black);
    font-size: var(--fs12);
    line-height: 1.66;
    margin: 0;
    text-align: center;
}

@media (min-width: 768px) {
    .profile__group__item__content p {
        font-size: var(--fs14);
    }
}

@media (min-width: 992px) {
    .profile__group__item__content p {
        font-size: var(--fs16);
    }
}

.history {
    margin: 0 auto 120px;
    max-width: calc(var(--container-width) + var(--c-pad)*2);
    padding: 0 var(--c-pad);
    width: 100%;
}

@media (min-width: 768px) {
    .history {
        margin: 0 auto 150px;
    }
}

.history__title {
    margin: 0 0 50px;
}

@media (min-width: 768px) {
    .history__title {
        margin: 0 0 45px;
    }
}

.history__title__en {
    color: var(--color-vermilion);
    font-size: var(--fs18);
    font-weight: 700;
    line-height: 1.4;
    margin: 0 0 8px;
    text-align: center;
}

@media (min-width: 768px) {
    .history__title__en {
        font-size: var(--fs20);
        margin: 0 0 12px;
    }
}

@media (min-width: 992px) {
    .history__title__en {
        font-size: var(--fs23);
    }
}

.history__title__ja {
    color: var(--color-rich-black);
    font-size: var(--fs32);
    font-weight: 700;
    line-height: 1.4;
    margin: 0;
    text-align: center;
}

@media (min-width: 768px) {
    .history__title__ja {
        font-size: var(--fs36);
    }
}

@media (min-width: 992px) {
    .history__title__ja {
        font-size: var(--fs40);
    }
}

.history__table-wrapper {
    margin: 0 -5px;
}

.history__table {
    border: none;
    border-collapse: separate;
    border-spacing: 5px 6px;
    margin: 0;
    width: 100%;
}

.history__table > tbody > tr > th, .history__table > tbody > tr > td {
    font-size: var(--fs14);
    line-height: 1.66;
    vertical-align: middle;
    width: auto;
}

@media (min-width: 992px) {
    .history__table > tbody > tr > th, .history__table > tbody > tr > td {
        font-size: var(--fs18);
    }
}

.history__table > tbody > tr > th {
    background-color: rgba(var(--color-vermilion-rgb), 0.8);
    border-radius: 5px;
    color: var(--color-white);
    font-weight: 400;
    min-width: 80px;
    padding: 12px 4px;
    text-align: center;
    width: 80px;
}

@media (min-width: 768px) {
    .history__table > tbody > tr > th {
        min-width: 120px;
        width: 120px;
    }
}

@media (min-width: 992px) {
    .history__table > tbody > tr > th {
        min-width: 147px;
        width: 147px;
    }
}

.history__table > tbody > tr > td {
    background-color: #FAE7D9;
    border-radius: 5px;
    color: var(--color-rich-black);
    padding: 12px;
    text-align: left;
}

@media (min-width: 992px) {
    .history__table > tbody > tr > td {
        padding: 12px 22px;
    }
}

.history__table > tbody > tr > td p {
    color: var(--color-rich-black);
    line-height: 1.66;
    margin: 0 0 1.5em;
}

.history__table > tbody > tr > td p:last-child {
    margin-bottom: 0;
}

.access {
    margin: 0 auto 120px;
    max-width: calc(var(--container-width) + var(--c-pad)*2);
    padding: 0 var(--c-pad);
    width: 100%;
}

@media (min-width: 768px) {
    .access {
        margin: 0 auto 150px;
    }
}

.access__title {
    margin: 0 0 50px;
}

.access__title__en {
    color: var(--color-vermilion);
    font-size: var(--fs18);
    font-weight: 700;
    line-height: 1.4;
    margin: 0 0 8px;
    text-align: center;
}

@media (min-width: 768px) {
    .access__title__en {
        font-size: var(--fs20);
        margin: 0 0 12px;
    }
}

@media (min-width: 992px) {
    .access__title__en {
        font-size: var(--fs23);
    }
}

.access__title__ja {
    color: var(--color-rich-black);
    font-size: var(--fs32);
    font-weight: 700;
    line-height: 1.4;
    margin: 0;
    text-align: center;
}

@media (min-width: 768px) {
    .access__title__ja {
        font-size: var(--fs36);
    }
}

@media (min-width: 992px) {
    .access__title__ja {
        font-size: var(--fs40);
    }
}

.access__map {
    margin: 0 0 40px;
}

@media (min-width: 768px) {
    .access__map {
        margin: 0 0 50px;
    }
}

.access__map iframe {
    border: none;
    display: block;
    height: 280px;
    width: 100%;
}

@media (min-width: 768px) {
    .access__map iframe {
        height: 400px;
    }
}

.access__main {
    align-items: center;
    display: flex;
    flex-flow: row wrap;
    gap: 30px 48px;
}

.access__main__fig {
    flex: 0 0 100%;
}

@media (min-width: 768px) {
    .access__main__fig {
        flex: 0 0 50%;
    }
}

.access__main__fig img {
    border-radius: 10px;
}

@media (max-width: 767px) {
    .access__main__fig img {
        width: 100%;
    }
}

.access__main__contents {
    flex: 0 0 100%;
}

@media (min-width: 768px) {
    .access__main__contents {
        flex: 0 0 calc(50% - 48px);
    }
}

.access__main__contents__address {
    color: var(--color-rich-black);
    display: block;
    font-size: var(--fs16);
    line-height: 1.5;
    margin: 0 0 30px;
}

@media (min-width: 768px) {
    .access__main__contents__address {
        font-size: var(--fs18);
    }
}

@media (min-width: 992px) {
    .access__main__contents__address {
        font-size: var(--fs20);
    }
}

.access__main__contents__address a {
    color: inherit;
    text-decoration: none;
}

.access__main__contents__list__item {
    margin: 0 0 30px;
}

.access__main__contents__list__item:last-child {
    margin-bottom: 0;
}

.access__main__contents__list__item__title {
    color: var(--color-vermilion);
    font-size: var(--fs14);
    font-weight: 700;
    line-height: 1.55;
    margin: 0 0 10px;
}

@media (min-width: 768px) {
    .access__main__contents__list__item__title {
        font-size: var(--fs16);
    }
}

@media (min-width: 992px) {
    .access__main__contents__list__item__title {
        font-size: var(--fs18);
    }
}

.access__main__contents__list__item__content p {
    color: var(--color-rich-black);
    font-size: var(--fs16);
    line-height: 1.5;
    margin: 0;
}

@media (min-width: 768px) {
    .access__main__contents__list__item__content p {
        font-size: var(--fs18);
    }
}

@media (min-width: 992px) {
    .access__main__contents__list__item__content p {
        font-size: var(--fs20);
    }
}

.equipment {
    margin: 0 auto;
    max-width: calc(var(--container-width) + var(--c-pad)*2);
    padding: 0 var(--c-pad);
    width: 100%;
}

.equipment__title {
    margin: 0 0 50px;
}

.equipment__title__en {
    color: var(--color-vermilion);
    font-size: var(--fs18);
    font-weight: 700;
    line-height: 1.4;
    margin: 0 0 8px;
    text-align: center;
}

@media (min-width: 768px) {
    .equipment__title__en {
        font-size: var(--fs20);
        margin: 0 0 12px;
    }
}

@media (min-width: 992px) {
    .equipment__title__en {
        font-size: var(--fs23);
    }
}

.equipment__title__ja {
    color: var(--color-rich-black);
    font-size: var(--fs32);
    font-weight: 700;
    line-height: 1.4;
    margin: 0;
    text-align: center;
}

@media (min-width: 768px) {
    .equipment__title__ja {
        font-size: var(--fs36);
    }
}

@media (min-width: 992px) {
    .equipment__title__ja {
        font-size: var(--fs40);
    }
}

.equipment__main {
    align-items: flex-start;
    display: flex;
    flex-flow: row wrap;
    gap: 30px var(--c-pad);
    justify-content: flex-start;
    margin: 0 0 70px;
}

@media (min-width: 768px) {
    .equipment__main {
        gap: 40px 30px;
    }
}

@media (min-width: 992px) {
    .equipment__main {
        gap: 50px 60px;
    }
}

.equipment__main__item {
    flex: 0 0 calc(50% - var(--c-pad)*0.5);
}

@media (min-width: 768px) {
    .equipment__main__item {
        flex: 0 0 calc(33.33333% - 20px);
    }
}

@media (min-width: 992px) {
    .equipment__main__item {
        flex: 0 0 calc(33.33333% - 40px);
    }
}

.equipment__main__item__fig {
    margin: 0 0 12px;
    text-align: center;
}

@media (min-width: 768px) {
    .equipment__main__item__fig {
        margin: 0 0 22px;
    }
}

@media (max-width: 767px) {
    .equipment__main__item__fig img {
        width: 100%;
    }
}

.equipment__main__item__title {
    color: var(--color-rich-black);
    font-size: var(--fs14);
    font-weight: 700;
    line-height: 1.4;
    text-align: center;
}

@media (min-width: 768px) {
    .equipment__main__item__title {
        font-size: var(--fs16);
    }
}

@media (min-width: 992px) {
    .equipment__main__item__title {
        font-size: var(--fs18);
    }
}

.equipment__list__item {
    margin: 0 0 60px;
}

@media (min-width: 768px) {
    .equipment__list__item {
        margin: 0 0 80px;
    }
}

.equipment__list__item:last-child {
    margin-bottom: 0;
}

.equipment__list__item__subtitle {
    background-image: linear-gradient(to top, var(--color-vermilion) 2px, transparent 2px);
    background-position: center calc(100% - 1px);
    background-repeat: repeat-y;
    background-size: 100% 46.8px;
    color: var(--color-rich-black);
    font-size: var(--fs26);
    font-weight: 700;
    line-height: 1.8;
    margin: 0 0 16px;
    padding: 0;
}

@media (min-width: 768px) {
    .equipment__list__item__subtitle {
        background-image: linear-gradient(to top, var(--color-vermilion) 3px, transparent 3px);
        background-size: 100% 48.6px;
        font-size: var(--fs27);
        margin: 0 0 20px;
    }
}

@media (min-width: 992px) {
    .equipment__list__item__subtitle {
        background-size: 100% 54px;
        font-size: var(--fs30);
    }
}

@media (max-width: 991px) {
    .equipment__list__item__table-wrapper {
        padding: 0 0 12px;
        white-space: nowrap;
    }
}

.equipment__list__item__table {
    border: none;
    border-collapse: collapse;
    border-spacing: 0;
    margin: 0 auto;
    width: 100%;
}

.equipment__list__item__table > thead > tr {
    background-color: #fe6d30;
}

.equipment__list__item__table > thead > tr > th, .equipment__list__item__table > thead > tr > td {
    color: var(--color-white);
    font-size: var(--fs12);
    line-height: 1.4;
    min-width: 40px;
    padding: 12px 8px;
    text-align: left;
    vertical-align: middle;
    width: auto;
}

@media (min-width: 768px) {
    .equipment__list__item__table > thead > tr > th, .equipment__list__item__table > thead > tr > td {
        font-size: var(--fs16);
        padding: 12px;
    }
}

@media (min-width: 992px) {
    .equipment__list__item__table > thead > tr > th, .equipment__list__item__table > thead > tr > td {
        padding: 18px 12px;
    }
}

.equipment__list__item__table > thead > tr > th:nth-child(1), .equipment__list__item__table > thead > tr > td:nth-child(1) {
    text-align: center;
}

@media (min-width: 992px) {
    .equipment__list__item__table > thead > tr > th:nth-child(1), .equipment__list__item__table > thead > tr > td:nth-child(1) {
        min-width: 80px;
        width: 80px;
    }
}

@media (min-width: 992px) {
    .equipment__list__item__table > thead > tr > th:nth-child(2), .equipment__list__item__table > thead > tr > td:nth-child(2) {
        min-width: 230px;
        width: 230px;
    }
}

@media (min-width: 992px) {
    .equipment__list__item__table > thead > tr > th:nth-child(3), .equipment__list__item__table > thead > tr > td:nth-child(3) {
        min-width: 200px;
        width: 200px;
    }
}

@media (min-width: 992px) {
    .equipment__list__item__table > thead > tr > th:nth-child(4), .equipment__list__item__table > thead > tr > td:nth-child(4) {
        min-width: 180px;
        width: 180px;
    }
}

.equipment__list__item__table > thead > tr > th:nth-child(6), .equipment__list__item__table > thead > tr > td:nth-child(6) {
    text-align: center;
    white-space: nowrap;
}

@media (min-width: 992px) {
    .equipment__list__item__table > thead > tr > th:nth-child(6), .equipment__list__item__table > thead > tr > td:nth-child(6) {
        min-width: 80px;
        width: 80px;
    }
}

.equipment__list__item__table > thead > tr > th {
    font-weight: 700;
}

.equipment__list__item__table > tbody > tr > th, .equipment__list__item__table > tbody > tr > td {
    border-bottom: 1px solid #FE6D30;
    font-size: var(--fs12);
    line-height: 1.66;
    padding: 12px 8px;
    text-align: left;
    vertical-align: top;
    width: auto;
}

@media (min-width: 768px) {
    .equipment__list__item__table > tbody > tr > th, .equipment__list__item__table > tbody > tr > td {
        font-size: var(--fs16);
        padding: 12px 12px;
    }
}

@media (min-width: 992px) {
    .equipment__list__item__table > tbody > tr > th, .equipment__list__item__table > tbody > tr > td {
        padding: 18px 12px;
    }
}

.equipment__list__item__table > tbody > tr > th:nth-child(1), .equipment__list__item__table > tbody > tr > td:nth-child(1) {
    text-align: center;
}

.equipment__list__item__table > tbody > tr > th:nth-child(6), .equipment__list__item__table > tbody > tr > td:nth-child(6) {
    text-align: center;
}

.equipment__list__item__table > tbody > tr > th {
    font-weight: 700;
}