.header {
    mix-blend-mode: normal;
}
.header__logo svg {
    color: #000;
}
.gnav__link {
    color: #000;
    mix-blend-mode: normal;
}
.headerDropdownButton span {
    background-color: #000;
    mix-blend-mode: normal;
}

.company .subpage__container {
    padding: 0;
}

@media (max-width: 48rem) {
    .subpage__container {
        padding-block: 3rem 4rem;
    }
}

/* About */
.about {
    height: 59.7222vw;
    position: relative;
}

.about__container {
    height: 100%;
    margin-inline: auto;
    max-width: 75.75rem;
    opacity: 0;
    position: relative;
    width: 100%;
}

.about__text {
    left: 14.6%;
    position: absolute;
    top: 18.0556vw;
}

.about__title {
    color: var(--color-text-base);
}

.about__title .sectionTitle__en {
    color: var(--color-text-base);
}

.about__lead {
    font-size: var(--text-2xl);
    font-weight: 600;
    letter-spacing: 0.04em;
    line-height: 1.4;
    margin-top: 2.25rem;
}

.about__lead span {
    display: block;
}

@media (max-width: 90rem) {
    .about__title .sectionTitle__en {
        font-size: 2.5vw;
    }

    .about__title .sectionTitle__ja {
        font-size: 1.25vw;
    }

    .about__lead {
        font-size: 2.5vw;
    }
}

/* Main Visual Gallery */
.mv__gallery {
    --delay-1: 0.2s;
    --delay-2: 0.4s;
    --delay-3: 0.6s;
    --delay-4: 0.8s;
    --delay-5: 1s;
    --delay-6: 1.2s;
    --delay-7: 1.4s;
    --delay-8: 1.6s;

    --position-1: 14.7vw 7.8vw;
    --position-2: 7.4vw 33.3vw;
    --position-3: 11.1vw 51.6vw;
    --position-4: 14.7vw 66.1vw;
    --position-5: 43.9vw 15.05vw;
    --position-6: 36.7vw 40.6vw;
    --position-7: 43.9vw 62.5vw;
    --position-8: 33vw 79.7vw;
}

@media (max-width: 48rem) {
    .about {
        height: 168vw;
    }
    .about__text {
        left: 50%;
        padding-inline: 2.25rem;
        top: 25.3968253%;
        transform: translateX(-50%);
        width: 100%;
    }

    .about__title .sectionTitle__en {
        font-size: 7.467vw;
    }

    .about__title .sectionTitle__ja {
        font-size: 3.73vw;
    }

    .about__lead {
        font-size: 7.467vw;
    }
    .mv__gallery {
        --position-2: 12.8vw auto auto 28vw;
        --position-3: 9.6vw 58.5vw;
        --position-4: 19.9vw 58.9vw;
        --position-5: 118vw 9.8vw;
        --position-6: 136.9vw 68.3vw;
        --position-7: 127.2vw 78.2vw;
        --position-8: 98.5vw 59vw;
    }
}

@media (max-width: 36rem) {
    .mv__gallery {
        --position-3: 9.6vw 58.5vw;
        --position-4: 19.7vw 58.4vw;
        --position-5: 117.1vw 9.6vw;
        --position-6: 136.9vw 68.3vw;
        --position-7: 126.8vw 77.9vw;
        --position-8: 97.6vw 58.5vw;
    }
}

.mv__gallery img {
    object-fit: cover;
    position: absolute;
}

.mv__image {
    animation: mvImageFadeIn 2s forwards 4s;
    opacity: 0;
    transition: opacity 1s ease-in-out;
}

.mv__image.--1 {
    animation-delay: var(--delay-3);
    height: 7.3vw;
    inset: var(--position-1);
    width: 7.3vw;
}

.mv__image.--2 {
    animation-delay: var(--delay-1);
    height: 7.3vw;
    inset: var(--position-2);
    width: 7.3vw;
}

.mv__image.--3 {
    animation-delay: var(--delay-6);
    height: 7.2vw;
    inset: var(--position-3);
    width: 10.9vw;
}

.mv__image.--4 {
    animation-delay: var(--delay-7);
    height: 11vw;
    inset: var(--position-4);
    width: 14.8vw;
}

.mv__image.--5 {
    animation-delay: var(--delay-5);
    height: 11.2vw;
    inset: var(--position-5);
    width: 11vw;
}

.mv__image.--6 {
    animation-delay: var(--delay-5);
    height: 7.3vw;
    inset: var(--position-6);
    width: 7.3vw;
}

.mv__image.--7 {
    animation-delay: var(--delay-2);
    height: 11.2vw;
    inset: var(--position-7);
    width: 11.2vw;
}

.mv__image.--8 {
    animation-delay: var(--delay-3);
    height: 8.1vw;
    inset: var(--position-8);
    width: 12vw;
}

@keyframes mvImageFadeIn {
    0% {
        opacity: 0;
        visibility: hidden;
    }
    100% {
        opacity: 1;
        visibility: visible;
    }
}

@media (max-width: 48rem) {
    .mv__image.--1 {
        display: none;
        height: 19.6vw;
        width: 19.5vw;
    }

    .mv__image.--2 {
        height: 19.6vw;
        width: 19.5vw;
    }

    .mv__image.--3 {
        display: none;
        height: 19.8vw;
        width: 29.3vw;
    }

    .mv__image.--4 {
        height: 19.8vw;
        width: 29.6vw;
    }

    .mv__image.--5 {
        height: 19.6vw;
        width: 19.5vw;
    }

    .mv__image.--6 {
        display: none;
        height: 19.6vw;
        width: 29.2vw;
    }

    .mv__image.--7 {
        height: 19.7vw;
        width: 19.2vw;
    }

    .mv__image.--8 {
        height: 19.3vw;
        width: 29.3vw;
    }
}

/* Main Visual Square */
.mv__figure {
    --delay-1: 0.2s;
    --delay-2: 0.5s;
    --delay-3: 0.65s;
    --delay-4: 0.8s;
    --delay-5: 0.95s;
    --delay-6: 1.05s;

    --position-1: 11vw 22.3vw;
    --position-2: 25.6vw 58.7vw;
    --position-3: 14.7vw 84.3vw;
    --position-4: 47.6vw 33.3vw;
    --position-5: 40.2vw 51.5vw;
    --position-6: 51.2vw 84.3vw;
}

@media (max-width: 48rem) {
    .mv__figure {
        --position-1: 19.7vw 0vw;
        --position-3: 59vw 78.3vw;
        --position-4: 78.5vw 39.2vw;
        --position-5: 107.9vw 39.1vw;
        --position-6: 127.6vw 58.8vw;
    }
}

@media (max-width: 36rem) {
    .mv__figure {
        --position-1: 19.7vw 0vw;
        --position-3: 58.7vw 77.8vw;
        --position-4: 78.2vw 39vw;
        --position-5: 107.5vw 39.1vw;
        --position-6: 126.7vw 58.2vw;
    }
}

.mv__square {
    animation: squareFadeIn 1s forwards;
    opacity: 0;
    position: absolute;
    transition: opacity 1s ease-in-out;
    width: 3.75vw;
}

.mv__square.square--orange.square--opacity20 {
    background-color: rgb(225 77 33 / 20%);
}

.mv__square.square--yellow.square--opacity20 {
    background-color: rgb(255 153 64 / 20%);
}

.mv__square.--1 {
    animation-delay: var(--delay-4);
    inset: var(--position-1);
}

.mv__square.--2 {
    animation-delay: var(--delay-6);
    inset: var(--position-2);
}

.mv__square.--3 {
    animation-delay: var(--delay-6);
    inset: var(--position-3);
}

.mv__square.--4 {
    animation-delay: var(--delay-3);
    inset: var(--position-4);
}

.mv__square.--5 {
    animation-delay: var(--delay-5);
    inset: var(--position-5);
}

.mv__square.--6 {
    animation-delay: var(--delay-1);
    inset: var(--position-6);
}

@keyframes squareFadeIn {
    0% {
        opacity: 0;
        visibility: hidden;
    }
    100% {
        opacity: 1;
        visibility: visible;
    }
}

@media (max-width: 48rem) {
    .mv__square {
        width: 9.8vw;
    }

    .mv__square.--2 {
        display: none;
    }

    .mv__square.--6.square--yellow.square--opacity20 {
        background-color: rgb(255 153 64 / 20%);
    }
}

/* Message */
.message {
    background: linear-gradient(0deg, var(--color-orange), var(--color-orange-light));
    color: var(--color-text-white);
    position: relative;

    --content-width: 50rem;
}

.message__image {
    left: 50%;
    padding-inline: 1.125rem;
    position: absolute;
    top: 6.25rem;
    transform: translateX(-50%);
}

.message__container {
    padding-block: 20.625rem 7.5rem;
}

.message__title {
    padding-left: 1.375rem;
    position: relative;
}

.message__title::before {
    background-color: var(--bgc-white);
    content: "";
    height: 0.375rem;
    left: 0;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 0.375rem;
}

.message__text {
    font-size: var(--text-lg);
    line-height: 2;
    margin-inline: auto;
    max-width: var(--content-width);
}

.message__text:nth-of-type(1) {
    margin-top: 7.125rem;
}

.message__text + .message__text {
    margin-top: 2rem;
}

.message__credit {
    align-items: center;
    display: grid;
    gap: 0.5rem 1.5rem;
    grid-template-columns: 1fr auto;
    justify-items: end;
    margin-inline: auto;
    margin-top: 3rem;
    max-width: var(--content-width);
}

@media (max-width: 48rem) {
    .message__image {
        left: auto;
        right: auto;
        top: 4rem;
        transform: none;
    }

    .message__container {
        padding-block: 13.125rem 4rem;
    }

    .message__title {
        font-size: 1.25rem;
    }

    .message__text:nth-of-type(1) {
        margin-top: 2.25rem;
    }

    .message__credit {
        font-size: 0.875rem;
        margin-top: 2.5rem;
    }

    .message__credit img {
        max-width: 8rem;
    }
}

/* Company Profile */
.profile {
    padding-block: 7.5rem;
}

.profileTable {
    border-radius: var(--rounded-lg);
    box-shadow: 0 0 1.875rem rgb(255 153 64 / 20%);
    margin-top: 3rem;
    padding: 1.5rem 2.5rem;
}

.profileTable__column {
    align-items: start;
    border-bottom: 0.25rem solid transparent;
    border-image: url("/assets/images/common/img-divider-dotted.svg") 1;
    display: grid;
    gap: 0.25rem 1rem;
    grid-template-columns: 11.875rem 1fr;
    padding-block: 1rem;
    padding-left: 0.5rem;
}

.profileTable__column:last-child {
    border-bottom: none;
}

.profileTable dt {
    font-size: 1rem;
    font-weight: 500;
    line-height: 1.8;
}

.profileTable dd {
    font-family: var(--font-ibm);
    font-weight: 400;
    line-height: 1.6;
}

.profileTable .block {
    display: block;
}

.profileTable .list {
    align-items: start;
    display: grid;
    gap: 0.5rem;
    grid-template-columns: auto 1fr;
}

.profileTable .list + .list {
    margin-top: 0.25rem;
}

.profileTable .list::before {
    aspect-ratio: 1;
    background-color: var(--color-orange);
    content: "";
    display: inline-block;
    margin-top: 0.45rem;
    width: 0.375rem;
}

.profileTable .list a {
    color: var(--color-orange);
    font-weight: 400;
    line-height: 1.6;
    text-decoration: underline;
    width: fit-content;
}

@media (max-width: 48rem) {
    .profile {
        padding-block: 4rem;
    }

    .profileTable {
        padding: 0.75rem 1.25rem;
    }

    .profileTable__column {
        border-bottom: 0.125rem solid transparent;
        border-image: url("/assets/images/common/img-divider-dotted-sp.svg") 1 fill;
        grid-template-columns: 1fr;
        padding-block: 1rem;
    }

    .profileTable dd {
        font-size: 0.875rem;
    }
}

/* Strength */
.strength {
    display: grid;
    gap: 4rem;
    overflow: hidden;
    padding-block: 5rem 7.5rem;
}

.strength__container {
    position: relative;
}

.strength__square {
    display: inline-block;
    height: 3.6805556vw;
    position: absolute;
    width: 3.6805556vw;
    z-index: -1;
}

.mission .strength__square.--1 {
    inset: 23.25rem auto auto 9.5rem;
}
.mission .strength__square.--2 {
    inset: 3.8125rem auto auto 41.375rem;
}
.mission .strength__square.--3 {
    inset: 12.8125rem 9.0625rem auto auto;
}
.mission .strength__square.--4 {
    display: none;
}

.vision .strength__square.--1 {
    inset: auto 10.75rem 4rem auto;
}
.vision .strength__square.--2 {
    inset: 5rem 4rem auto auto;
}
.vision .strength__square.--3 {
    display: none;
}

.value .strength__square.--1 {
    inset: 4rem auto auto 2.8rem;
}
.value .strength__square.--2 {
    inset: 18.5rem auto auto 10rem;
}
.value .strength__square.--3 {
    inset: auto 1rem 2rem auto;
}

@media (max-width: 48rem) {
    .strength__square {
        height: 10.133vw;
        width: 10.133vw;
    }

    .mission .strength__square.--1 {
        display: none;
    }
    .mission .strength__square.--2 {
        inset: -1.1875rem 1.5rem auto auto;
    }
    .mission .strength__square.--3 {
        display: none;
    }
    .mission .strength__square.--4 {
        display: inline-block;
        inset: 20.8rem 46% auto auto;
    }

    .vision .strength__square.--1 {
        inset: -3rem auto auto 37.8%;
    }
    .vision .strength__square.--2 {
        display: none;
    }
    .vision .strength__square.--3 {
        display: inline-block;
        inset: 4.4rem 2rem auto auto;
    }

    .value .strength__square.--1 {
        inset: 0.5rem auto auto 3.3rem;
    }
    .value .strength__square.--2 {
        inset: auto 3rem -0.5rem auto;
    }
    .value .strength__square.--3 {
        display: none;
    }
}

.strength__title {
    background: linear-gradient(0deg, var(--color-orange), var(--color-orange-light));
    -webkit-background-clip: text;
    background-clip: text;
    color: var(--color-orange);
    font-size: 10.25rem;
    font-weight: 600;
    letter-spacing: -0.01em;
    line-height: 1.1;
    padding-bottom: 1.875rem;
    -webkit-text-fill-color: transparent;
}

.strength__section--reverse .strength__title {
    margin-inline: auto 0;
    max-width: 48.5rem;
    text-align: right;
}

.strength__column {
    column-gap: 6.375rem;
    display: grid;
    grid-template-columns: auto 1fr;
}

.strength__section--reverse .strength__column {
    margin-inline: auto 0;
    max-width: 48.5rem;
}

.strength__column--1col {
    grid-template-columns: 1fr;
    row-gap: 2.25rem;
}

.strength__heading {
    align-items: center;
    display: flex;
    gap: 0.5rem;
    height: fit-content;
    width: fit-content;
}

.strength__heading::before {
    aspect-ratio: 1;
    background-color: var(--color-orange);
    content: "";
    display: inline-block;
    width: 0.375rem;
}

.strength__heading::after {
    background-color: var(--color-orange);
    content: "";
    display: inline-block;
    flex: 1;
    height: 0.125rem;
    margin-left: 0.5rem;
    width: 6.75rem;
}

.strength .divider {
    margin-block: 2.5rem;
}

.strength .block {
    display: block;
}

.strength p.lg {
    font-family: var(--font-ibm);
    font-size: 2rem;
    letter-spacing: 0.04em;
    line-height: 1.4;
}

.strength p.md {
    font-family: var(--font-ibm);
    font-size: 1.25rem;
    letter-spacing: 0.02em;
    line-height: 1.6;
}

.strength p.accent {
    color: var(--color-orange);
    margin-bottom: 0.75rem;
}

.strength ol {
    display: grid;
    gap: 1rem;
}

.strength ol li {
    counter-increment: section;
    display: grid;
    font-size: var(--text-xl);
    gap: 0.625rem;
    grid-template-columns: auto 1fr;
}

.strength ol li::before {
    color: var(--color-orange);
    content: counter(section, decimal-leading-zero);
    font-family: var(--font-inter);
    font-size: 1rem;
    font-weight: 500;
    letter-spacing: -0.01em;
    margin-top: 0.0625rem;
    width: 1.3125rem;
}

@media (max-width: 62rem) {
    .strength__column {
        grid-template-columns: 1fr;
    }

    .strength__body {
        margin-top: 2.25rem;
    }
}

@media (max-width: 48rem) {
    .strength {
        padding-block: 4.875rem 4rem;
    }

    .strength__container {
        padding-inline: 2rem;
    }

    .strength__title {
        font-size: 4rem;
        padding-bottom: 0.625rem;
    }

    .strength p.md {
        font-size: 1.125rem;
    }

    .strength .divider {
        margin-block: 2.25rem;
    }

    .strength p.lg {
        font-size: 1.5rem;
    }

    .strength__column--1col {
        row-gap: 0;
    }

    .strength__heading {
        width: 100%;
    }
}

/* Our History */
.history {
    padding-block: 7.5rem 7rem;
    position: relative;
}

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

.historyList {
    margin-top: 1.5rem;
}

.historyList__column {
    border-bottom: 0.325rem solid transparent;
    border-image: url("/assets/images/common/img-divider-dotted.svg") 1 fill;
    display: flex;
    gap: 0.5rem 1.5rem;
    padding-block: 1.5rem;
}

.historyList__column dt {
    color: var(--color-orange);
    flex: 0 1 5.25rem;
    font-size: 1.5rem;
    font-weight: 600;
    letter-spacing: -0.01em;
    line-height: 1.1;
}

.historyList__column dd {
    flex: 1;
    font-family: var(--font-ibm);
    font-size: var(--text-md);
    font-weight: 400;
    line-height: 1.8;
}

.historyList__column dd .block {
    display: block;
}

@media (max-width: 48rem) {
    .history {
        padding-block: 4rem;
    }

    .historyList {
        margin-top: 0.75rem;
    }

    .historyList__column {
        border-bottom: 0.125rem solid transparent;
        border-image: url("/assets/images/common/img-divider-dotted-sp.svg") 1 fill;
        flex-direction: column;
    }

    .historyList__column dt {
        flex: auto;
    }
}

/* Organization Chart */
.organization {
    padding-block: 7.5rem;
}

.organization__chart,
.organization__chart--sp {
    border-radius: var(--rounded-lg);
    box-shadow: 0 0 1.875rem rgb(255 153 64 / 20%);
    margin-top: 2.25rem;
    padding: 3rem 2.5rem;
}

.organization__guide {
    align-items: center;
    display: none;
    gap: 0.25rem;
    grid-template-columns: auto auto;
    justify-content: center;
    margin-top: 1.25rem;
}

.organization__chart--sp {
    display: none;
    padding: 0.75rem 0.625rem;
}

.organization__dialog {
    background-color: #fff;
    box-sizing: border-box;
    max-width: none;
    opacity: 0;
    overflow-x: scroll;
    position: relative;
    transition:
        opacity 0.3s,
        display 0.3s allow-discrete;
}

.subpage .organization__dialog[open] {
    margin: 0;
    opacity: 1;
}

@starting-style {
    .organization__dialog[open] {
        opacity: 0;
    }
}

.organization__dialog {
    border: none;
    height: fit-content;
    left: 50%;
    margin: 0;
    overflow: visible;
    padding: 0;
    position: fixed;
    top: 50%;
    transform: translate(-50%, -50%);
    width: 100vw;
}

.organization__dialogHidden {
    height: auto;
    overflow: scroll;
    width: 100%;
}

.organization__dialogInner {
    display: grid;
    gap: 2.25rem;
    height: 100%;
    padding: 4rem 2.25rem;
    width: 48rem;
}

.organization__dialogInner img {
    width: 100%;
}
.organization__dialog::backdrop {
    backdrop-filter: blur(0.25rem);
    background-color: rgba(0, 0, 0, 0.64);
}

.modal-close__button {
    position: absolute;
    right: 2%;
    top: 0%;
    transform: translate(0%, -50%);
}

@media (any-hover: none) {
    .modal-close__button {
        outline: none;
    }
    .modal-close__button:focus-visible {
        outline: none;
    }
}

@media (max-width: 48rem) {
    .organization {
        padding-block: 4rem 5rem;
    }

    .organization__chart {
        display: none;
    }

    .organization__chart--sp {
        display: block;
    }

    .organization__guide {
        display: grid;
    }
}

/* Access */
.access {
    margin-bottom: 7.5rem;
    padding-top: 6.25rem;
    position: relative;
}

.access::before {
    background: linear-gradient(
        180deg,
        color-mix(in srgb, var(--color-orange-light) 40%, transparent 60%),
        var(--bgc-white)
    );
    content: "";
    height: 8.75rem;
    left: 50%;
    position: absolute;
    top: 0;
    transform: translateX(-50%);
    width: 100%;
    z-index: -1;
}

.access__image {
    margin-top: 2.5rem;
}

.accessList {
    display: grid;
    gap: 1.25rem 2.5rem;
    grid-template-columns: 1fr 1px 1fr 1px 1fr;
    margin-top: 4rem;
    --row-item: 5;
}

.accessList .block {
    display: block;
}

.accessList__item {
    align-items: stretch;
    display: grid;
    grid-row: span var(--row-item);
    grid-template-rows: subgrid;
    row-gap: 0;
}

.accessList__divider {
    border: none;
    border-left: 0.0625rem dashed var(--color-orange);
    grid-row: span var(--row-item);
    height: 100%;
    width: 0.0625rem;
}

.accessList__title {
    font-size: 2rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    line-height: 1.4;
}

.accessList__address {
    font-family: var(--font-ibm);
    font-size: var(--text-sm);
    font-weight: 400;
    line-height: 1.6;
    margin-top: 1rem;
}

.accessList__map {
    aspect-ratio: 327 / 222;
    margin-top: 0.9375rem;
    width: 100%;
}

.accessList__mapLink {
    align-items: center;
    color: var(--color-orange);
    display: inline-flex;
    font-size: var(--text-md);
    font-weight: 700;
    gap: 0.1875rem;
    line-height: 1.6;
    margin-top: 0.9375rem;
    text-decoration: underline;
    text-underline-offset: 0.125rem;
}

.accessList__mapIcon {
    aspect-ratio: 1;
    display: inline-flex;
    width: 1.5rem;
}

.accessList__transport {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    margin-top: 1.125rem;
}

.accessList__transport li {
    align-items: center;
    display: flex;
    font-family: var(--font-ibm);
    font-size: var(--text-sm);
    font-weight: 400;
    gap: 0.5rem;
    line-height: 1.6;
}

.accessList__transport li::before {
    aspect-ratio: 1;
    background-color: var(--color-orange);
    content: "";
    display: inline-block;
    margin-top: -0.1875rem;
    width: 0.375rem;
}

@media (max-width: 74.25rem) {
    .accessList {
        column-gap: 1.25rem;
    }
}

@media (max-width: 53.75rem) {
    .access {
        margin-bottom: 5rem;
        padding-top: 4rem;
    }

    .access::before {
        height: 4rem;
    }

    .accessList {
        grid-template-columns: 1fr;
        margin-top: 2.5rem;
    }

    .accessList__title {
        font-size: 1.5rem;
    }

    .accessList__address {
        margin-top: 0.5rem;
    }

    .accessList__map {
        margin-top: 0.75rem;
    }

    .accessList__mapLink {
        margin-top: 0.75rem;
    }

    .accessList__transport {
        margin-top: 0.75rem;
    }

    .accessList__divider {
        border-left: none;
        border-top: 0.0625rem dashed var(--color-orange);
        grid-row: auto;
        height: 0.0625rem;
        width: 100%;
    }
}
