.top-menu::after {
    background-image: url("/company/images/top-menu-bg.webp");
}

.s-company .contents-body {
    padding-top: 10.6667vw;
}
.s-company-about .contents-body {
    padding-top: 6.9333vw;
}
.s-company-message .contents-body {
    padding-top: 6.4vw;
}
.s-company-safety .contents-body {
    padding-top: 1px;
}
.top-description .text {
    font-size: 3.2vw;
    line-height: 2;
}

.index-list {
    display: flex;
    flex-flow: row wrap;
    justify-content: center;
    align-items: stretch;
    gap: 1.25rem;
}
.index-list > .index-list_item {
    background-color: #ffffff;
    padding-bottom: 1.75rem;
    width: 100%;
    text-align: center;
}
.index-list > .index-list_item .icon {
    display: flex;
    position: relative;
    flex-flow: column nowrap;
    justify-content: flex-end;
    align-items: center;
    padding-top: 6.4vw;
    min-height: 17.0667vw;
}
.index-list > .index-list_item .icon > .label {
    grid-area: label;
    padding: 0.25em;
    color: #3b3b3b;
    font-weight: 700;
    font-size: 5.6vw;
    text-align: center;
}
.index-list > .index-list_item .photo {
    transition: filter 360ms ease, opacity 360ms ease;
    margin-right: auto;
    margin-left: auto;
}
.index-list .link-list {
    margin: 1.75rem auto 0;
    border-top: 1px solid #b2b2b2;
    padding: 0;
    width: 80%;
}
.index-list .link-list > .link-list_item {
    border-bottom: 1px solid #b2b2b2;
    list-style: none;
    text-align: left;
}
.index-list .link-list .u-link {
    display: block;
    padding: 2.4vw;
    color: #383838;
    font-size: 4.8vw;
    text-decoration: none;
}
.index-list .link-list .u-link.arrow {
    background-image: url("/company/images/index_list-arrow.svg");
    background-position: right 1.125rem center;
    background-size: 1.625rem auto;
}

.section-title {
    position: relative;
    left: -4vw;
    margin: 6.4vw 0;
}
.section-title > span {
    display: inline-block;
    background-color: var(--accent, #1c50a5);
    padding: 0.25em 4vw;
    color: #ffffff;
    font-weight: 900;
    font-size: 4.8vw;
}

.c-section-content {
    margin-right: auto;
    margin-left: auto;
    background-color: #ffffff;
    padding: 6.4vw;
    width: 92vw;
}
.section-container + .section-container {
    margin-top: 12.5333vw;
}
.section-container .heading {
    color: #0053a2;
    font-size: 6.6667vw;
}
.section-container .heading + .c-section-content {
    margin-top: 2.4vw;
}
.section-container .c-section-content {
    box-shadow: 0 3px 6px rgba(0, 0, 0, 0.34);
    border-radius: 2.6667vw;
    padding: 8.5333vw 6.1333vw 8.5333vw;
}
.section-container .c-section-content > .track + .track {
    margin-top: 2rem;
}
.section-container .c-section-content > .track .caption {
    font-weight: 700;
    font-size: 4vw;
    line-height: 1.3;
}
.section-container .c-section-content > .track .caption + .text {
    margin-top: 1.25em;
}
.section-container .c-section-content > .track .text {
    font-size: 3.4667vw;
    line-height: 1.6;
}
.section-container .c-section-content > .track .text > strong {
    display: block;
    margin: 2.25em 0;
}
.section-container .c-section-content > .track.leg figure {
    padding: 2rem;
}
.section-container .image-track {
    display: flex;
    flex-flow: column nowrap;
    gap: 6.4vw;
    margin-top: 6.1333vw;
}
.section-container .image-track .figure {
    width: 100%;
}
.section-container .image-track .figure img {
    width: 100%;
}
.section-container .description + .data {
    margin-top: 2rem;
}

.document + .document {
    margin-top: 2.25em;
}
.document > .caption {
    color: #0053a2;
    font-weight: 700;
    font-size: 5.3333vw;
    line-height: 2.22;
}
.document h3 {
    color: #002372;
    font-weight: 700;
    font-size: 4.8vw;
    line-height: 2;
}
.document .plain-list {
    padding-left: 1.25em;
    text-indent: 0em;
}
.document .plain-list > .item {
    font-size: 2.9333vw;
}
.document .plain-list > .item + .item {
    margin-top: 0.34em;
}
.document .text {
    font-size: 3.4667vw;
    line-height: 2;
}
.document .text + .image-set {
    margin-top: 2.25rem;
}
.document .image-set {
    display: flex;
    flex-flow: row wrap;
    justify-content: center;
    align-items: flex-start;
    gap: 6.4vw 4.8vw;
}
.document .image-set figcaption {
    font-size: 3.2vw;
    line-height: 1.8;
}

.access {
    margin-top: 12.5333vw;
}
.access .column {
    display: flex;
    flex-flow: column-reverse nowrap;
    justify-content: center;
    align-items: center;
    gap: 9.6vw;
    margin-top: 1.25em;
    margin-right: auto;
    margin-left: auto;
}
.access .column > .item address {
    font-feature-settings: "palt" 1;
    hanging-punctuation: allow-end;
    font-style: normal;
    font-kerning: normal;
    line-break: auto;
}
.access .column > .item .postalcode {
    display: block;
}
.access .column > .item .heading {
    margin: 1em 0;
    color: #0053a2;
    font-weight: 700;
}
.access .column > .item .text {
    font-size: 3.2vw;
    line-height: 1.6;
}
.access .column > .item .note {
    font-size: 2.9333vw;
}
.access .googlemap-wrapper {
    margin-top: 8.5333vw;
    margin-right: auto;
    margin-left: auto;
}
.access .googlemap-wrapper > iframe {
    overflow: hidden;
}

.s-company-message section + section {
    margin-top: 3.75em;
}
.first-message .section-caption {
    color: #0053a2;
    text-align: center;
}
.first-message .section-caption > span {
    display: inline-block;
    position: relative;
    border-bottom: 1px solid #707070;
    padding: 1.6vw 6.9333vw;
    font-weight: 700;
    font-size: 3.7333vw;
    text-align: left;
}
.first-message .title > .line {
    display: block;
    font-weight: 400;
    font-size: 4vw;
    line-height: 2;
}
.first-message .title strong {
    display: inline;
    background-image: linear-gradient(0deg, #bad9ff, #bad9ff);
    background-position: left bottom;
    background-size: 100% 0.67em;
    background-repeat: repeat-x;
    padding: 0 0.34rem;
    font-weight: 700;
    font-size: 5.3333vw;
    line-height: 2;
}
.first-message .title strong > small {
    font-size: 4.8vw;
}
.first-message .photo {
    margin-right: auto;
    margin-left: auto;
    padding: 6.9333vw 0;
    width: 45.3333vw;
}
.first-message .message-text {
    padding-top: 6.6667vw;
}
.first-message .message-text .text {
    font-size: 3.2vw;
}
.first-message .message-text .text.sign {
    padding-top: 1.75rem;
    text-align: right;
}
.first-message .message-text .text + .text {
    margin-top: 1.25em;
}

.message-section:not(.first-message) > .c-section-content {
    padding: 6.4vw 5.3333vw;
}
.message-section:not(.first-message)
    > .c-section-content
    + .c-section-content
    > .heading {
    border-top: 1px solid #707070;
}
.message-section:not(.first-message) .heading {
    padding: 7.4667vw 0 4.2667vw;
    color: #002372;
    font-size: 4.8vw;
    line-height: 1.33;
}
.message-section:not(.first-message) .text {
    font-size: 3.2vw;
}
.message-section:not(.first-message) .text + .text {
    margin-top: 1.25em;
}
.message-section:not(.first-message) .text .line {
    display: block;
}
.message-section:not(.first-message) .logo,
.message-section:not(.first-message) .photo {
    margin: 4.2667vw auto;
    text-align: center;
}

.elbatide pre {
    margin: 0;
    font-family: "Noto Sans JP", sans-serif;
}
.elbatide dl + dl {
    margin-top: 1.6vw;
}
.elbatide .col1 {
    width: 100%;
}
.elbatide .col2 {
    width: 100%;
}
.elbatide .col3 {
    width: 100%;
}
.elbatide .table {
    display: flex;
    flex-flow: row nowrap;
    justify-content: stretch;
    align-items: stretch;
    gap: 1.3333vw;
}
.elbatide .table dt {
    display: inline-block;
    background-image: linear-gradient(0deg, #178df2, #178df2);
    background-position: left bottom;
    background-size: 100% 0.2667vw;
    padding: 1em 0.5em;
    min-width: 18.6667vw;
    max-width: 18.6667vw;
    color: #0053a2;
    font-weight: 700;
    font-size: 3.2vw;
    line-height: 1.6;
    text-align: right;
}
.elbatide .table dd {
    background-image: linear-gradient(0deg, #0053a2, #0053a2);
    background-position: left bottom 1px;
    background-size: 100% 1px;
    padding: 1em 0 1.75em;
    font-size: 3.2vw;
    line-height: 1.6;
}
.elbatide .track {
    display: flex;
    flex-flow: row nowrap;
    justify-content: flex-start;
    align-items: stretch;
}
.elbatide .track dt {
    background-image: linear-gradient(0deg, #0053a2, #0053a2);
    background-position: right 0.75em top;
    background-size: 0.8vw 100%;
    padding: 0.34em 0;
    min-width: 7.6em;
    color: #0053a2;
    font-weight: 700;
    font-size: 3.2vw;
    line-height: 1.6;
}
.elbatide .track dd {
    padding: 0.34em 0;
    font-size: 3.2vw;
    line-height: 1.6;
    white-space: pre-line;
}
.elbatide .track + .track {
    margin-top: 1.6vw;
}
.elbatide .plain .heading {
    border-bottom: 1px solid #c7c7c7;
    padding: 0.34em 0.75em;
    color: #0053a2;
    font-weight: 700;
    font-size: 4vw;
    line-height: 1.5;
}
.elbatide .plain div:not([class]) {
    font-size: 3.2vw;
    line-height: 2;
}
@media (min-width: 62em) {
    .s-company-about .top-menu::after {
        background-image: url("/company/about/images/top-menu_bg.webp");
    }
    .s-company-message .top-menu::after {
        background-image: url("/company/message/images/top-menu_bg.webp");
    }
    .s-company-safety .top-menu::after {
        background-image: url("/company/safety/images/top-menu_bg.webp");
    }
    .s-company .contents-body {
        padding-top: clamp(4.875rem, -5.8393rem + 22.3214vw, 14.25rem);
    }
    .s-company-about .contents-body {
        padding-top: 4.75rem;
    }
    .s-company-message .contents-body {
        padding-top: 10.4375rem;
    }
    .s-company-safety .contents-body {
        padding-top: 4.75rem;
    }
    .top-description {
        margin-right: auto;
        margin-left: auto;
        padding: 3.125rem;
        max-width: 68.75rem;
    }
    .top-description .text {
        font-size: 1.375rem;
        line-height: 1.8;
    }
    .index-list {
        padding: 0 clamp(0.9375rem, -0.1339rem + 2.2321vw, 1.875rem);
    }
    .index-list > .index-list_item {
        width: clamp(11.25rem, 0.5357rem + 22.3214vw, 20.625rem);
    }
    .index-list > .index-list_item .icon {
        padding-top: 2.25rem;
        min-height: 7.625rem;
    }
    .index-list > .index-list_item .icon svg {
        vertical-align: top;
        min-height: 4.625rem;
    }
    .index-list > .index-list_item .icon > .label {
        padding: 0rem 0 2.625rem;
        font-size: clamp(1.125rem, 0.2679rem + 1.7857vw, 1.875rem);
        text-align: left;
    }
    .index-list .link-list > .link-list_item {
        padding: 0;
        font-size: 1.125rem;
    }
    .index-list .link-list .u-link {
        padding: 1.125rem;
        font-size: 1.125rem;
    }
    .section-title {
        left: -1.5rem;
        align-self: center;
        margin: 4rem 0 3rem;
    }
    .section-title::after {
        display: block;
        position: absolute;
        bottom: -1.0625rem;
        background-image: url("/images/ribbon-title-bg.png");
        background-position: left bottom;
        background-size: contain;
        width: 1.5rem;
        height: 1.0625rem;
        content: "";
    }
    .section-title > span {
        padding: 0.875rem 3rem;
        font-size: 2.25rem;
        line-height: 1.33;
        letter-spacing: 0.02em;
    }
    .c-section-content {
        padding: 3rem;
        width: 100%;
        max-width: 65.375rem;
    }
    .section-container {
        margin-right: auto;
        margin-left: auto;
        max-width: 72rem;
    }
    .section-container + .section-container {
        margin-top: 5.875rem;
    }
    .section-container .heading {
        padding-left: 1.25rem;
        font-size: 2.5rem;
    }
    .section-container .heading + .c-section-content {
        margin-top: 1.125rem;
    }
    .section-container .c-section-content {
        border-radius: 1.25rem;
        padding: 3.5rem 4.1875rem 4.1875rem;
    }
    .section-container .c-section-content > .track + .track {
        margin-top: 4rem;
    }
    .section-container .c-section-content > .track .caption {
        font-size: 1.875rem;
        line-height: 1.6;
    }
    .section-container .c-section-content > .track .text {
        font-size: 1.125rem;
        line-height: 2.22;
    }
    .section-container .c-section-content > .track.leg {
        display: grid;
        grid-template-rows: min-content auto;
        grid-template-columns: 1fr auto;
        grid-template-areas: "caption figure" "text figure";
        align-items: start;
        gap: 0 3rem;
    }
    .section-container .c-section-content > .track.leg .caption {
        grid-area: caption;
    }
    .section-container .c-section-content > .track.leg .text {
        grid-area: text;
    }
    .section-container .c-section-content > .track.leg figure {
        grid-area: figure;
        justify-self: end;
    }
    .section-container .image-track {
        flex-flow: row nowrap;
        gap: 1.5rem;
        margin-top: 2.875rem;
    }
    .section-container .image-track .figure {
        width: 50%;
    }
    .section-container .description > .text {
        font-size: 1.125rem;
        line-height: 2.22;
    }
    .section-container .data {
        display: flex;
        flex-flow: row nowrap;
        justify-content: center;
        align-items: stretch;
        gap: 2rem 2rem;
    }
    .document > .caption {
        font-size: 1.875rem;
    }
    .document h3 {
        font-size: 1.375rem;
    }
    .document .plain-list > .item {
        font-size: 1.125rem;
    }
    .document .text {
        font-size: 1.25rem;
    }
    .document .image-set {
        align-items: center;
        gap: clamp(1.6875rem, -0.0982rem + 3.7202vw, 3.25rem)
            clamp(2.8125rem, -0.4018rem + 6.6964vw, 5.625rem);
    }
    .document .image-set figcaption {
        padding: 0.25em 0;
        font-size: 1.125rem;
        line-height: 1.33;
    }
    .access {
        margin-top: 5.875rem;
        margin-right: auto;
        margin-left: auto;
    }
    .access .column {
        display: flex;
        flex-flow: row nowrap;
        justify-content: space-between;
        align-items: stretch;
        gap: 1.5rem;
        max-width: 72rem;
    }
    .access .column > .item {
        width: 56%;
        font-size: 1.25rem;
        line-height: 1.5;
    }
    .access .column > .item + .item {
        width: 44%;
    }
    .access .column > .item address {
        font-size: 1.25rem;
        line-height: 1.5;
    }
    .access .column > .item .postalcode {
        display: inline;
        margin-right: 1.25em;
    }
    .access .column > .item .heading {
        font-size: 1.25rem;
        line-height: 1.5;
    }
    .access .column > .item .text {
        font-size: 1.25rem;
        line-height: 1.8;
    }
    .access .column > .item .note {
        margin-top: 1.25em;
        font-size: 80%;
    }
    .access .googlemap-wrapper {
        margin-top: 3rem;
        max-width: 72rem;
    }
    .first-message > .c-section-content {
        display: grid;
        grid-template-rows: min-content auto auto;
        grid-template-columns: auto 1fr;
        grid-template-areas: "caption caption" "image title" "description description";
        gap: 0;
        font-size: 2.25rem;
        line-height: 3.625rem;
        letter-spacing: 0.02em;
    }
    .first-message .section-caption {
        position: relative;
        grid-area: caption;
        color: #0053a2;
        text-align: right;
    }
    .first-message .section-caption > span {
        right: -3rem;
        padding: 0.25em 0;
        min-width: 10.3125rem;
        font-size: 1.5rem;
        line-height: 1.5;
    }
    .first-message .title {
        grid-area: title;
        margin-left: 12%;
    }
    .first-message .title > .line {
        font-size: 1.875rem;
        line-height: 1.75;
    }
    .first-message .title strong {
        font-size: 2.5rem;
        line-height: 1.75;
    }
    .first-message .title strong > small {
        font-size: 2.25rem;
    }
    .first-message .photo {
        grid-area: image;
        justify-self: start;
        margin-right: 0;
        margin-left: unset;
        padding: 0;
        width: unset;
    }
    .first-message .message-text {
        grid-area: description;
        padding-top: 3.6875rem;
    }
    .first-message .message-text .text {
        font-size: 1.25rem;
        line-height: 2;
    }
    .message-section:not(.first-message) > .c-section-content {
        padding: 3rem 3.25rem;
    }
    .message-section:not(.first-message)
        > .c-section-content
        + .c-section-content {
        padding-top: 0;
    }
    .message-section:not(.first-message) > .l-image-left {
        display: grid;
        grid-template-rows: auto auto;
        grid-template-columns: auto auto;
        grid-template-areas: "heading heading" "image text";
        gap: 0 2.25rem;
    }
    .message-section:not(.first-message) > .l-image-right {
        display: grid;
        grid-template-rows: auto auto;
        grid-template-columns: auto auto;
        grid-template-areas: "heading heading" "text image";
        gap: 0 2.25rem;
    }
    .message-section:not(.first-message) .heading {
        grid-area: heading;
        padding: 0.87em 0;
        font-size: 2.25rem;
        line-height: 1.5;
    }
    .message-section:not(.first-message) .text {
        grid-area: text;
        font-size: 1.25rem;
        line-height: 2;
    }
    .message-section:not(.first-message) .logo,
    .message-section:not(.first-message) .photo {
        grid-area: image;
        margin: 0;
    }
    .elbatide dl + dl {
        margin-top: 0;
    }
    .elbatide .col2 {
        width: calc(50% - 1rem);
    }
    .elbatide .col3 {
        width: 33.3%;
    }
    .elbatide .split {
        display: flex;
        flex-flow: row wrap;
        justify-content: space-between;
        align-items: stretch;
    }
    .elbatide .table {
        gap: 0.3125rem;
    }
    .elbatide .table dt {
        flex-grow: 0;
        background-size: 100% 0.125rem;
        padding: 1em 1.25em;
        min-width: 11em;
        max-width: unset;
        font-size: 1.25rem;
    }
    .elbatide .table dd {
        flex-grow: 1;
        padding: 1em 1.25em;
        font-size: 1.25rem;
    }
    .elbatide .track dt {
        background-size: 0.25rem 100%;
        min-width: 7.6em;
        font-size: 1.25rem;
    }
    .elbatide .track dd {
        font-size: 1.25rem;
    }
    .elbatide .track + .track {
        margin-top: 0.75rem;
    }
    .elbatide .plain .heading {
        font-size: 1.625rem;
        line-height: 1.33;
    }
    .elbatide .plain div:not([class]) {
        font-size: 1.25rem;
        line-height: 1.6;
    }
}
@media not all and (min-width: 62em) {
    .s-company-about .top-menu .top-container {
        background-image: url("/company/about/images/top-menu_bg.webp");
    }
    .s-company-message .top-menu .top-container {
        background-image: url("/company/message/images/top-menu_bg.webp");
    }
    .s-company-safety .top-menu .top-container {
        background-image: url("/company/safety/images/top-menu_bg.webp");
    }
    .index-list > .index-list_item .icon svg {
        width: 100%;
        max-width: 12.8vw;
        height: 100%;
        max-height: 12.8vw;
    }
    .index-list > .index-list_item .photo {
        width: 48%;
    }
    .section-title + .c-section-content {
        margin-top: 4.2667vw;
    }
    .document .image-set figure {
        width: 46%;
    }
    .first-message .message-text .text.sign {
        margin-left: auto;
        padding-top: 4.2667vw;
        width: 32vw;
    }
    .elbatide .table + .table {
        margin-top: 4.2667vw;
    }
}
@media (hover: hover) and (pointer: fine) {
    .index-list > .index-list_item .photo:hover {
        opacity: 0.92;
        filter: brightness(1.08);
    }
    .index-list .link-list .u-link:hover {
        text-decoration: underline;
    }
}
