.philosophy {
    padding: 60px 5%;
    background-color: var(--background-color-lightgrey);
}

.philosophy .zebraList {
    width: 100%;
    margin-top: 64px;
}

.philosophy .zebraList--item {
    padding: 8px 5% 8px 10%;
}

.philosophy .zebraList--item:nth-of-type(odd) {
    background-color: var(--background-color-list);
}

.philosophy .zebraList--textBox {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    max-width: 880px;
    margin: 0 auto;
    column-gap: 80px;
}

.philosophy .zebraListItem--number {
    font-size: 5.2rem;
    font-weight: bold;
    font-style: italic;
    color: var(--secondary-bland-color);
    position: relative;
    line-height: 1.3;
}

.philosophy .zebraListItem--number::before {
    position: absolute;
    content: "";
    width: 36px;
    height: 50px;
    top: 50%;
    transform: translate(-120%, -50%);
    background-image: url(../img/icon_hand_tool.png);
    background-position: center center;
    background-repeat: no-repeat;
    background-size: contain;
}

.philosophy .zebraListItem--number::after {
    position: absolute;
    content: "";
    width: 14px;
    height: 16px;
    top: 50%;
    transform: translate(100%, -50%);
    background-image: url(../img/rounded-triangle-right-yellow.png);
    background-position: center center;
    background-repeat: no-repeat;
    background-size: contain;
}

.philosophy .zebraListItem--text {
    font-size: 1.6rem;
    font-weight: bold;
}

@media screen and (max-width: 1024px) {
    /* 1024pxまでの幅の場合に適応される */
    
    .philosophy .zebraList--textBox {
        max-width: 100%;
        column-gap: 64px;
    }
}

@media screen and (max-width: 599px) {
    /* 599pxまでの幅の場合に適応される */

    .philosophy {
        padding-top: 40px;
        padding-bottom: 0;
    }
    
    .philosophy .zebraList {
        margin-top: 24px;
    }
    
    .philosophy .zebraList--textBox {
        max-width: 100%;
        column-gap: 40px;
    }
    
    .philosophy .zebraList--text {
        font-size: 1.4rem;
    }

    .philosophy .zebraListItem--number {
        font-size: 3.6rem;
        line-height: 1.3;
    }
    
    .philosophy .zebraListItem--number::before {
        width: 22px;
        height: 30px;
    }
    
    .philosophy .zebraListItem--number::after {
        width: 9px;
        height: 10px;
    }

    .philosophy .zebraList--item {
        padding-left: 12.5%;
    }
    
}

.ceoGreeting {
    padding: 60px 5%;
    background-color: var(--background-color-lightgrey);
}

.ceoGreeting .content--textBox {
    margin-top: 40px;
}

.ceoGreeting .content--text {
    font-size: 4.2rem;
    /* font-weight: bold; */
    text-align: center;
    font-family: "Times New Roman", "YuMincho", "Hiragino Mincho ProN", "Yu Mincho", "MS PMincho", serif;
}

.ceoGreeting .emphasis {
    color: var(--accent-color);
}

.ceoGreeting .message {
    width: 100%;
    max-width: 1200px;
    margin-top: 40px;
    padding: 60px 40px;
    background-color: var(--white);
    font-family: "Times New Roman", "YuMincho", "Hiragino Mincho ProN", "Yu Mincho", "MS PMincho", serif;
}

.ceoGreeting .message--text {
    font-size: 1.8rem;
    line-height: 2.5;
}

.ceoGreeting .message--imgBox {
    display: grid;
    justify-content: flex-end;
    margin-top: 32px;
}

.ceoGreeting .message--img {
    width: 100%;
}

.ceoGreeting .splide {
    margin-top: 32px;
}

.ceoGreeting .splide__slide .slideImage {
    width: 100%;
    height: auto;
}

@media screen and (max-width: 1024px) {
    /* 1024pxまでの幅の場合に適応される */
    .ceoGreeting .content--text {
        font-size: 3.2rem;
    }
}

@media screen and (max-width: 599px) {
    /* 599pxまでの幅の場合に適応される */

    .ceoGreeting {
        padding-top: 40px;
        padding-bottom: 40px;
    }
    
    .ceoGreeting .content--text {
        font-size: 2.8rem;
    }

    .ceoGreeting .splide {
        margin-top: 24px;
    }

    .ceoGreeting .message {
        margin-top: 24px;
        padding: 24px;
    }

    .ceoGreeting .message--text {
        font-size: 1.6rem;
    }
}

.appearance {
    background-color: var(--background-color-lightgrey);
}

.introduction {
    padding: 40px 5%;
    background-color: var(--white);
}

.introduction .mediaBox {
    width: 100%;
}

.introduction .mediaBox--inner {
    width: 100%;
    max-width: 1400px;
    margin: 0 auto;
}

.introduction .media {
    background-color: var(--background-color-lightgrey);
    margin-bottom: 120px;
    margin-left: 7.1428571428571vw;
    position: relative;
    justify-content: space-between;
    align-items: flex-start;
}

.introduction .media-rowReverse {
    margin-left: 0;
    margin-right: 7.1428571428571vw;
}

.introduction .media::after {
    background-color: var(--background-color-lightgrey);
    display: block;
    position: absolute;
    top: 0;
    right: 0;
    transform: translateX(100%);
    width: 100vw;
    height: 100%;
    content: "";
}

.introduction .media-rowReverse::after {
    right: auto;
    left: 0;
    transform: translateX(-100%);
}

.introduction .media--index {
    display: block;
    position: absolute;
    top: 20px;
    right: calc(5vw);
    font-size: 11rem;
    line-height: 1;
    z-index: 1;
    font-style: italic;
    color: var(--secondary-bland-color);
}

.introduction .media-rowReverse .media--index {
    left: 4.2857142857143vw;
}

.introduction .media--body {
    flex-basis: 50%;
    padding: 50px 5vw 60px 5vw;

    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.introduction .media--bodyTop {
}

.introduction .media--bodyBottom {
    margin-top: 240px;
}

.introduction .media--titleBox {
}

.introduction .media--title {
    color: var(--font-color-darkgrey);
    font-size: 2.2rem;
}

.introduction .media--textBox {
    margin-top: 32px;
}

.introduction .media--text {
    color: var(--font-color-darkgrey);
    font-size: 1.5rem;
    margin-top: 2em;
}

.introduction .media--imgBox {
    flex-basis: 50%;
    transform: translateY(60px);
    line-height: 0;
}

.introduction .media--imgTitle {
    position: absolute;
    top: -40px;
    right: calc( 5vw + 2.8571428571429vw);
    font-size: 13.68rem;
    font-style: italic;
    line-height: 1;
}

.introduction .media-rowReverse .media--imgTitle {
    left: 4.2857142857143vw;
}

.introduction .media--img {
    width: 100%;
    height: auto;
}

@media screen and (max-width: 1024px) {
    /* 1024pxまでの幅の場合に適応される */

    .introduction {
        padding-top: 64px;
        padding-bottom: 24px;
    }

    .introduction .media {
        margin-bottom: 64px;
    }

    .introduction .media::after {
        width: 4%;
    }

    .introduction .media--bodyBottom {
        margin-top: 104px;
    }

    .introduction .media--index {
        font-size: 7rem;
    }

    .introduction .media-rowReverse .media--index {
        left: 2vw;
    }
}

@media screen and (max-width: 599px) {
    /* 599pxまでの幅の場合に適応される */
    .introduction {
        margin: 0;
        padding-bottom: 64px;
    }

    /* common.css上書き */
    .introduction .widthFullsizeIgnoreParentElement-spOnly {
        margin-top: 40px;
    }

    .introduction .widthFullsizeIgnoreParentElement-spOnly:first-of-type {
        margin-top: 0;
    }

    .introduction .media {
        width: 100%;
        margin-bottom: 0;
        margin-left: 0;
        padding: 24px;
        position: relative;
        flex-direction: column;
        justify-content: space-between;
        align-items: flex-start;
    }

    .introduction .media-rowReverse {
        margin-right: 0;
    }

    .introduction .media::after,
    .introduction .media-rowReverse::after {
        width: 0;
        height: 0;
    }

    .introduction .media--index,
    .introduction .media-rowReverse .media--index {
        position: static;
        font-size: 5rem;
        z-index: 1;
    }

    .introduction .media--body {
        flex: initial;
        width: 100%;
        padding: 24px 0;
    }

    .introduction .media--textBox {
        margin-top: 1em;
    }

    .introduction .media--text {
        margin-top: 1em;
    }

    .introduction .media--bodyBottom {
        margin-top: 16px;
    }

    .introduction .media--imgBox {
        flex: initial;
        width: 100%;
        transform: translateY(0);
    }

    .introduction .media--imgTitle,
    .introduction .media-rowReverse .media--imgTitle {
        position: static;
        font-size: 7rem;
        z-index: 1;
    }
}

.appearance .content--img {
    width: 100%;
}

.access {
    padding: 60px 5%;
    background-color: var(--background-color-lightgrey);
}

.access .titleBox {
    margin-top: 24px;
}

.access .title {
    text-align: center;
    line-height: 1.5;
    font-size: 3.6rem;
}

.access .textBox {
    margin-top: 24px;
}

.access .text {
    text-align: center;
    line-height: 1.5;
    font-size: 2.2rem;
    font-weight: bold;
}

.access .arrowBtn {
    font-size: 2.8rem;
    margin-top: 32px;
    max-width: 800px;
    margin: 32px auto 0;
}

@media screen and (max-width: 1024px) {
    /* 1024pxまでの幅の場合に適応される */

    .access .message {
        font-size: 2.8rem;
    }

    .access .arrowBtn {
        max-width: 560px;
    }
}

@media screen and (max-width: 599px) {
    /* 599pxまでの幅の場合に適応される */
    .access .message {
        font-size: 2.2rem;
        text-align: left;
    }

    .access .arrowBtn {
        font-size: 1.6rem;
    }

    .access .arrowBtn::after {
        width: 16px;
        height: 12px;
    }

    .access .text {
        text-align: left;
    }
}

.company {
    padding: 64px 5%;
    background-color: var(--background-color-lightgrey);
}

.company .horizontalTableBox {
    margin-top: 48px;
}

.company .horizontalTable {
    width: 100%;
    border-collapse: collapse;
    border-spacing: 0;
    font-size: 1.4rem;
}

.company .horizontalTable--body {
    display: table-row-group;
    vertical-align: middle;
    border-color: inherit;
}

.company .horizontalTable--bodyRow {
    display: table-row;
    vertical-align: inherit;
    border-color: inherit;
}

.company .horizontalTable--header {
    width: 25%;
    min-width: 240px;
    color: var(--font-color-black);
    text-align: left;
    font-size: 1.6rem;
    font-weight: bold;
    background-color: var(--background-color-grey);
    padding: 15px 18px;
    border-bottom: 1px solid var(--table-border-color-lightgrey);
}

.company .horizontalTable--text {
    width: auto;
    color: var(--font-color-black);
    text-align: left;
    font-size: 1.6rem;
    font-weight: bold;
    background-color: var(--white);
    padding: 15px 18px;
    border-bottom: 1px solid var(--table-border-color-lightgrey);
    line-height: 1.5;
}

@media screen and (max-width: 599px) {
    /* 599pxまでの幅の場合に適応される */

    .company .horizontalTableBox {
        margin-top: 24px;
    }

    .company .horizontalTable--body {
        display: block;
    }

    .company .horizontalTable--bodyRow {
        display: block;
        margin-top: 8px;
    }

    .company .horizontalTable--header {
        display: block;
        width: 100%;
        padding: 8px 5%;
        font-size: 1.2rem;
    }
    
    .company .horizontalTable--text {
        display: block;
        width: 100%;
        padding: 12px 5%;
        font-size: 1.4rem;
        background-color: transparent;
    }
}
