@charset "UTF-8";

@keyframes modal-video {
    0% {
        opacity: 0
    }

    to {
        opacity: 1
    }
}

@keyframes modal-video-inner {
    0% {
        transform: translateY(100px)
    }

    to {
        transform: translate(0)
    }
}

.modal-video {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: #00000080;
    z-index: 1000000;
    cursor: pointer;
    opacity: 1;
    animation-timing-function: ease-out;
    animation-duration: .3s;
    animation-name: modal-video;
    transition: opacity .3s ease-out
}

.modal-video-close {
    opacity: 0
}

.modal-video-close .modal-video-movie-wrap {
    transform: translateY(100px)
}

.modal-video-body {
    max-width: 960px;
    width: 100%;
    height: 100%;
    margin: 0 auto;
    padding: 0 10px;
    display: flex;
    justify-content: center;
    box-sizing: border-box
}

.modal-video-inner {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    height: 100%
}

@media (orientation: landscape) {
    .modal-video-inner {
        padding: 10px 60px;
        box-sizing: border-box
    }
}

.modal-video-movie-wrap {
    width: 100%;
    height: 0;
    position: relative;
    padding-bottom: 56.25%;
    background-color: #333;
    animation-timing-function: ease-out;
    animation-duration: .3s;
    animation-name: modal-video-inner;
    transform: translate(0);
    transition: transform .3s ease-out
}

.modal-video-movie-wrap iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%
}

.modal-video-close-btn {
    position: absolute;
    z-index: 2;
    top: -45px;
    right: 0;
    display: inline-block;
    width: 35px;
    height: 35px;
    overflow: hidden;
    border: none;
    background: transparent
}

@media (orientation: landscape) {
    .modal-video-close-btn {
        top: 0;
        right: -45px
    }
}

.modal-video-close-btn:before {
    transform: rotate(45deg)
}

.modal-video-close-btn:after {
    transform: rotate(-45deg)
}

.modal-video-close-btn:before,
.modal-video-close-btn:after {
    content: "";
    position: absolute;
    height: 2px;
    width: 100%;
    top: 50%;
    left: 0;
    background: #fff;
    border-radius: 5px;
    margin-top: -6px
}

.splide__container {
    box-sizing: border-box;
    position: relative
}

.splide__list {
    backface-visibility: hidden;
    display: flex;
    height: 100%;
    margin: 0 !important;
    padding: 0 !important
}

.splide.is-initialized:not(.is-active) .splide__list {
    display: block
}

.splide__pagination {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    margin: 0;
    pointer-events: none
}

.splide__pagination li {
    display: inline-block;
    line-height: 1;
    list-style-type: none;
    margin: 0;
    pointer-events: auto
}

.splide:not(.is-overflow) .splide__pagination {
    display: none
}

.splide__progress__bar {
    width: 0
}

.splide {
    position: relative;
    visibility: hidden
}

.splide.is-initialized,
.splide.is-rendered {
    visibility: visible
}

.splide__slide {
    backface-visibility: hidden;
    box-sizing: border-box;
    flex-shrink: 0;
    list-style-type: none !important;
    margin: 0;
    position: relative
}

.splide__slide img {
    vertical-align: bottom
}

.splide__spinner {
    animation: splide-loading 1s linear infinite;
    border: 2px solid #999;
    border-left-color: transparent;
    border-radius: 50%;
    bottom: 0;
    contain: strict;
    display: inline-block;
    height: 20px;
    left: 0;
    margin: auto;
    position: absolute;
    right: 0;
    top: 0;
    width: 20px
}

.splide__sr {
    clip: rect(0 0 0 0);
    border: 0;
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px
}

.splide__toggle.is-active .splide__toggle__play,
.splide__toggle__pause {
    display: none
}

.splide__toggle.is-active .splide__toggle__pause {
    display: inline
}

.splide__track {
    overflow: hidden;
    position: relative;
    z-index: 0
}

@keyframes splide-loading {
    0% {
        transform: rotate(0)
    }

    to {
        transform: rotate(1turn)
    }
}

.splide__track--draggable {
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    -moz-user-select: none;
    user-select: none
}

.splide__track--fade>.splide__list>.splide__slide {
    margin: 0 !important;
    opacity: 0;
    z-index: 0
}

.splide__track--fade>.splide__list>.splide__slide.is-active {
    opacity: 1;
    z-index: 1
}

.splide--rtl {
    direction: rtl
}

.splide__track--ttb>.splide__list {
    display: block
}

.splide__arrow {
    align-items: center;
    background: #ccc;
    border: 0;
    border-radius: 50%;
    cursor: pointer;
    display: flex;
    height: 2em;
    justify-content: center;
    opacity: .7;
    padding: 0;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 2em;
    z-index: 1
}

.splide__arrow svg {
    fill: #000;
    height: 1.2em;
    width: 1.2em
}

.splide__arrow:hover:not(:disabled) {
    opacity: .9
}

.splide__arrow:disabled {
    opacity: .3
}

.splide__arrow:focus-visible {
    outline: 3px solid #0bf;
    outline-offset: 3px
}

.splide__arrow--prev {
    left: 1em
}

.splide__arrow--prev svg {
    transform: scaleX(-1)
}

.splide__arrow--next {
    right: 1em
}

.splide.is-focus-in .splide__arrow:focus {
    outline: 3px solid #0bf;
    outline-offset: 3px
}

.splide__pagination {
    bottom: .5em;
    left: 0;
    padding: 0 1em;
    position: absolute;
    right: 0;
    z-index: 1
}

.splide__pagination__page {
    background: #ccc;
    border: 0;
    border-radius: 50%;
    display: inline-block;
    height: 8px;
    margin: 3px;
    opacity: .7;
    padding: 0;
    position: relative;
    transition: transform .2s linear;
    width: 8px
}

.splide__pagination__page.is-active {
    background: #fff;
    transform: scale(1.4);
    z-index: 1
}

.splide__pagination__page:hover {
    cursor: pointer;
    opacity: .9
}

.splide__pagination__page:focus-visible {
    outline: 3px solid #0bf;
    outline-offset: 3px
}

.splide.is-focus-in .splide__pagination__page:focus {
    outline: 3px solid #0bf;
    outline-offset: 3px
}

.splide__progress__bar {
    background: #ccc;
    height: 3px
}

.splide__slide {
    -webkit-tap-highlight-color: rgba(0, 0, 0, 0)
}

.splide__slide:focus {
    outline: 0
}

@supports (outline-offset: -3px) {
    .splide__slide:focus-visible {
        outline: 3px solid #0bf;
        outline-offset: -3px
    }
}

@media screen and (-ms-high-contrast: none) {
    .splide__slide:focus-visible {
        border: 3px solid #0bf
    }
}

@supports (outline-offset: -3px) {
    .splide.is-focus-in .splide__slide:focus {
        outline: 3px solid #0bf;
        outline-offset: -3px
    }
}

@media screen and (-ms-high-contrast: none) {
    .splide.is-focus-in .splide__slide:focus {
        border: 3px solid #0bf
    }

    .splide.is-focus-in .splide__track>.splide__list>.splide__slide:focus {
        border-color: #0bf
    }
}

.splide__toggle {
    cursor: pointer
}

.splide__toggle:focus-visible {
    outline: 3px solid #0bf;
    outline-offset: 3px
}

.splide.is-focus-in .splide__toggle:focus {
    outline: 3px solid #0bf;
    outline-offset: 3px
}

.splide__track--nav>.splide__list>.splide__slide {
    border: 3px solid transparent;
    cursor: pointer
}

.splide__track--nav>.splide__list>.splide__slide.is-active {
    border: 3px solid #000
}

.splide__arrows--rtl .splide__arrow--prev {
    left: auto;
    right: 1em
}

.splide__arrows--rtl .splide__arrow--prev svg {
    transform: scaleX(1)
}

.splide__arrows--rtl .splide__arrow--next {
    left: 1em;
    right: auto
}

.splide__arrows--rtl .splide__arrow--next svg {
    transform: scaleX(-1)
}

.splide__arrows--ttb .splide__arrow {
    left: 50%;
    transform: translate(-50%)
}

.splide__arrows--ttb .splide__arrow--prev {
    top: 1em
}

.splide__arrows--ttb .splide__arrow--prev svg {
    transform: rotate(-90deg)
}

.splide__arrows--ttb .splide__arrow--next {
    bottom: 1em;
    top: auto
}

.splide__arrows--ttb .splide__arrow--next svg {
    transform: rotate(90deg)
}

.splide__pagination--ttb {
    bottom: 0;
    display: flex;
    flex-direction: column;
    left: auto;
    padding: 1em 0;
    right: .5em;
    top: 0
}

.visually-hidden {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important
}

@media only screen and (max-width: 1023.98px) {
    .d-none-sp {
        display: none
    }
}

@media print,
screen and (min-width: 1024px) {
    .d-none-pc {
        display: none
    }
}

.text {
    color: var(--black);
    font-size: 1.5rem;
    font-style: normal;
    font-weight: 400;
    margin-block-start: 0
}

@media only screen and (max-width: 767.98px) {
    .text {
        font-size: 1.25rem
    }
}

.text-center {
    line-height: 1.75
}

@media print,
screen and (min-width: 375px) {
    .text-center {
        text-align: center
    }
}

.heading-wrapper {
    flex-shrink: 0
}

.circle {
    width: 1rem;
    height: 1rem;
    background-color: #2851a1;
    border-radius: 50%;
    position: absolute
}

.circle.about-title,
.circle.outline-title {
    left: -1rem;
    top: -.5rem
}

.circle.news-title {
    left: -1.5rem;
    top: -1rem
}

.circle.related {
    top: 50%;
    transform: translateY(-50%);
    left: 0;
    width: .75rem;
    height: .75rem
}

.heading-alphabet {
    display: inline-flex;
    align-items: flex-end;
    gap: 1rem;
    width: -moz-fit-content;
    width: fit-content;
    position: relative
}

.heading-alphabet h2 {
    display: block;
    line-height: 1;
    font-size: 5rem;
    word-break: keep-all;
    font-family: var(--f-english);
    font-weight: 700;
    font-kerning: normal;
    color: #5676dd
}

@media only screen and (max-width: 767.98px) {
    .heading-alphabet h2 {
        font-size: 3.5rem
    }
}

.heading-alphabet h2.kerning-2 {
    letter-spacing: -.125rem
}

.heading-alphabet h2.kerning-1 {
    letter-spacing: -.0625rem
}

.heading-alphabet h2.kerning-0 {
    letter-spacing: 0
}

.heading-alphabet h2.white-title {
    color: var(--c-white)
}

.heading-alphabet p {
    display: block;
    font-size: 1rem;
    font-family: var(--f-default);
    font-weight: 700;
    line-height: 1;
    white-space: nowrap;
    min-width: -moz-max-content;
    min-width: max-content;
    padding-block-end: .375rem
}

@media only screen and (max-width: 767.98px) {
    .heading-alphabet p {
        font-size: .75rem
    }
}

.heading-japanese {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 1.5rem
}

@media only screen and (max-width: 767.98px) {
    .heading-japanese {
        gap: .5rem
    }
}

.heading-japanese h2,
.heading-japanese h3 {
    display: flex;
    flex-direction: column-reverse;
    line-height: 1;
    font-size: 3rem;
    word-break: keep-all;
    font-weight: 600
}

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

    .heading-japanese h2,
    .heading-japanese h3 {
        font-size: 2rem
    }
}

.heading-japanese p {
    font-size: 1.25rem;
    font-family: var(--f-default);
    font-weight: 700;
    line-height: 1;
    color: #5676dd
}

@media only screen and (max-width: 767.98px) {
    .heading-japanese p {
        font-size: .75rem
    }
}

.heading-japanese.detail h3 {
    font-size: 2rem;
    line-height: 1.35
}

@media only screen and (max-width: 1023.98px) {
    .heading-japanese.detail h3 {
        font-size: 1.75rem
    }
}

@media only screen and (max-width: 1023.98px) {
    .heading-japanese.title-introduction {
        padding-block-end: 5rem
    }
}

.heading-japanese.title-introduction p {
    color: var(--c-white)
}

.button-capsule,
.button-capsule__white {
    display: flex;
    align-items: center;
    margin-block-start: 3.2em;
    margin-inline: auto;
    padding-inline: 1.2em 2.4em;
    width: 12.8em;
    height: 3.2em;
    border-radius: 100vmax;
    position: relative;
    background-color: var(--c-red);
    color: var(--c-white);
    font-weight: 700;
    line-height: 1;
    overflow: hidden
}

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

    .button-capsule,
    .button-capsule__white {
        font-size: 1rem
    }
}

@media print,
screen and (min-width: 1024px) {

    .button-capsule,
    .button-capsule__white {
        font-size: 1.25rem
    }
}

.button-capsule .label-wrapper,
.button-capsule__white .label-wrapper {
    position: relative;
    overflow: hidden
}

.button-capsule__white {
    color: #5676dd;
    background-color: var(--c-white)
}

.button-capsule:after,
.button-capsule__white:after {
    content: "";
    contain: strict;
    contain-intrinsic-size: 1.6em;
    aspect-ratio: 1/1;
    position: absolute;
    right: .8em;
    top: .8em;
    border-radius: 50%;
    background-color: currentColor;
    background-image: url(/image/common/icon_arrow_red.svg);
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain
}

@supports not (contain-intrinsic-size: 1.6em) {

    .button-capsule:after,
    .button-capsule__white:after {
        width: 1.6em
    }
}

@media (hover: hover) {

    .button-capsule:after,
    .button-capsule__white:after {
        transition: scale .3s ease-out
    }

    .button-capsule:hover:after,
    .button-capsule__white:hover:after {
        scale: 118.75%
    }
}

.link-text {
    display: inline-flex;
    -moz-column-gap: .25em;
    column-gap: .25em;
    margin-inline: .25em;
    text-decoration: underline;
    color: #5676dd
}

.link-text[href$=pdf]:after {
    content: "";
    contain: strict;
    contain-intrinsic-size: 1.066em;
    display: inline-block;
    aspect-ratio: 1/1;
    background-image: url(/image/common/icon_pdf_blue.svg);
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain
}

@supports not (contain-intrinsic-size: 1.066em) {
    .link-text[href$=pdf]:after {
        width: 1.066em
    }
}

@media (hover: hover) {
    .link-text {
        transition: opacity .3s ease-out
    }

    .link-text:hover {
        opacity: .7
    }
}

.link-text.en {
    margin: 0;
    display: flow;
    justify-content: center
}

.link-text.en:after {
    position: relative;
    top: .25rem;
    left: .25rem
}

.table-dl {
    display: grid;
    row-gap: 2.5rem;
    width: 100%
}

@media print,
screen and (min-width: 1024px) {
    .table-dl {
        grid-template-columns: auto 1fr;
        -moz-column-gap: 10rem;
        column-gap: 10rem
    }
}

@media only screen and (max-width: 1023.98px) {
    .table-dl {
        -moz-column-gap: 5rem;
        column-gap: 5rem
    }
}

@media print,
screen and (min-width: 1440px) {
    .table-dl {
        grid-template-columns: auto 1fr;
        -moz-column-gap: 25rem;
        column-gap: 25rem
    }
}

@media print,
screen and (min-width: 1920px) {
    .table-dl {
        grid-template-columns: auto 1fr;
        -moz-column-gap: 35rem;
        column-gap: 35rem
    }
}

.table-dl>div {
    display: grid
}

@media print,
screen and (min-width: 768px) {
    .table-dl>div {
        grid-template-columns: subgrid;
        grid-column: span 2
    }
}

.table-dl>div:not(:last-of-type) {
    padding-block-end: 2.5rem;
    border-block-end: 1px solid var(--c-gray-30)
}

@media only screen and (max-width: 1023.98px) {
    .table-dl>div {
        row-gap: .5rem
    }
}

.table-dl dt {
    font-weight: 400
}

@media only screen and (max-width: 1023.98px) {
    .table-dl dt {
        font-size: .875rem
    }
}

.table-dl dd {
    text-align: right;
    font-weight: 400
}

@media only screen and (max-width: 1023.98px) {
    .table-dl dd {
        text-align: left
    }
}

.table-dl dd .button {
    margin-left: auto
}

@media only screen and (max-width: 1023.98px) {
    .table-dl dd .button {
        margin: 0
    }
}

.pagetop {
    background-color: var(--c-white);
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-inline: 1.25rem;
    margin: auto;
    width: 13rem;
    height: 3.25rem;
    border-radius: 1.75rem;
    margin-bottom: 5rem;
    border-width: .125rem;
    border-color: var(--c-gray-10)
}

.pagetop svg {
    transform: rotate(-90deg)
}

main {
    overflow: hidden;
    position: relative
}

.main-2 {
    padding-block-start: 4rem
}

@media only screen and (max-width: 1023.98px) {
    .main-2 {
        padding-block-start: 3.125rem
    }
}

.annotation {
    padding-block-start: .25rem;
    font-size: 1rem
}

.annotation:before {
    content: "※";
    flex-shrink: 0
}

.english {
    font-family: var(--f-english)
}

.message-banner {
    position: fixed;
    z-index: var(--z-fixed);
    background-color: #404040;
    display: block;
    width: 23.75rem;
    height: 12.25rem;
    border-radius: 1rem;
    filter: drop-shadow(0 0 .5rem rgba(23, 28, 97, .5));
    transition: opacity .3s ease-in-out, visibility .3s linear
}

.message-banner[aria-expanded=false] {
    display: none
}

.message-banner[aria-hidden=true] {
    visibility: hidden;
    opacity: 0
}

@media only screen and (max-width: 1023.98px) {
    .message-banner {
        width: 21rem;
        height: 10rem;
        right: 50%;
        bottom: 2rem;
        transform: translate(50%)
    }
}

@media print,
screen and (min-width: 1024px) {
    .message-banner {
        right: 2rem;
        top: 6.75rem
    }
}

.message-banner a {
    width: 100%;
    height: 100%;
    justify-content: center;
    align-items: center;
    display: flex;
    padding: 2rem
}

@media only screen and (max-width: 1023.98px) {
    .message-banner a {
        padding: 1.5rem
    }
}

.message-banner a .button-inner {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    gap: 1.5rem
}

@media only screen and (max-width: 1023.98px) {
    .message-banner a .button-inner {
        gap: 1rem
    }
}

.banner-photo {
    position: relative;
    overflow: hidden;
    height: 100%;
    aspect-ratio: 1;
    border-radius: .5rem
}

.banner-photo img {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) scale(1.875)
}

.floating-text {
    color: var(--c-white);
    font-size: 1.25rem;
    word-wrap: break-word;
    font-weight: 500;
    line-height: 1.5;
    flex-shrink: 0;
    white-space: nowrap;
    width: -moz-max-content;
    width: max-content
}

@media only screen and (max-width: 1023.98px) {
    .floating-text {
        font-size: 1.25rem
    }
}

.view-more {
    margin-block-start: .75rem;
    display: flex;
    gap: .25rem
}

.view-more p {
    color: var(--c-white);
    font-size: 1rem;
    font-weight: 600
}

@media only screen and (max-width: 1023.98px) {
    .view-more p {
        font-size: 1rem
    }
}

.view-more img {
    transition: transform .3s ease
}

@media (hover: hover) {
    a:hover .arrow-floating {
        transform: scale(1.15)
    }
}

.deadline-floating {
    position: absolute;
    top: 2.6875rem;
    right: -2.0625rem
}

.mv {
    margin-block-start: 0;
    position: relative;
    width: 100%;
    overflow: hidden
}

@media only screen and (max-width: 767.98px) {
    .mv {
        height: 100svh
    }
}

@media print,
screen and (min-width: 768px) {
    .mv {
        height: 100vh;
        min-height: 48rem
    }
}

.mv .mv-photo {
    position: absolute;
    overflow: hidden;
    display: block;
    -o-object-fit: cover;
    object-fit: cover;
    width: 100%;
    height: auto
}

@media only screen and (max-width: 1023.98px) {
    .mv .mv-photo {
        height: 100%;
        width: auto
    }
}

@media print,
screen and (min-width: 1024px) {
    .mv .mv-photo {
        height: 125%
    }
}

.background-gradient-blue {
    width: 100%;
    height: 12rem;
    background: linear-gradient(180deg, rgba(86, 118, 221, 0) 0%, rgb(86, 118, 221) 100%);
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translate(-50%)
}

@media only screen and (max-width: 1023.98px) {
    .background-gradient-blue {
        height: 10rem
    }
}

.copy-pc,
.copy-sp {
    position: absolute;
    width: 78%;
    left: 50%;
    transform: translate(-50%)
}

.copy-pc {
    bottom: 11rem;
    max-width: 100rem
}

@media only screen and (max-width: 767.98px) {
    .copy-pc {
        display: none
    }
}

@media print,
screen and (min-width: 1024px) {
    .copy-pc {
        bottom: 10rem
    }
}

@media print,
screen and (min-width: 1920px) {
    .copy-pc {
        bottom: 10rem
    }
}

.copy-sp {
    bottom: 12rem;
    max-width: 20rem
}

@media print,
screen and (min-width: 768px) {
    .copy-sp {
        display: none
    }
}

.close-message {
    background-color: var(--c-white);
    color: var(--c-blue);
    font-size: 1.125rem;
    padding: 1rem;
    text-align: center;
    width: 78%;
    margin-inline: auto;
    position: absolute;
    word-break: keep-all;
    bottom: 0;
    left: 50%;
    transform: translate(-50%);
    border-radius: .5rem;
    letter-spacing: -0.02em;
}

@media only screen and (max-width: 1199.98px) {
    .close-message {
        font-size: 0.875rem;
        width: 100%;
        bottom: 0;
        border-radius: 0;
    }
}

@media print,
screen and (max-width: 767.98px) {
    .sp-none {
        display: none;
    }
}

.background-white {
    background-color: var(--c-white);
    z-index: -2
}

.status {
    background-color: var(--c-blue);
    padding-block: 4rem 0
}

.heading-status {
    color: var(--c-white);
    padding-bottom: 2rem;
    padding-inline: 2rem
}

.heading-status h2 {
    font-size: 1.5rem
}

.heading-status p {
    font-size: 2rem;
    font-weight: 500;
    width: 100%;
    text-align: center
}

.heading-status .heading-alphabet {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-inline: auto
}

.heading-status .circle {
    position: absolute;
    top: .25rem;
    left: 1.5rem
}

.splide.js-splide[data-role=status] .splide__slide {
    cursor: pointer
}

.splide.js-splide[data-role=status] .splide__slide img {
    aspect-ratio: 3/2;
    -o-object-fit: cover;
    object-fit: cover
}

[data-role=status] .splide__pagination {
    position: static;
    padding-top: 2rem;
    gap: .25rem
}

[data-role=status] .splide__pagination .splide__pagination__page {
    background-color: var(--c-white);
    opacity: .25
}

[data-role=status] .splide__pagination .is-active {
    opacity: 1
}

[data-role=status] .arrow {
    width: 3rem;
    height: 3rem;
    border-radius: .75rem;
    background-color: var(--c-white);
    opacity: 1;
    transform: none;
    padding: 1rem;
    top: calc(50% - 3rem)
}

[data-role=status] .arrow svg {
    fill: var(--c-black)
}

@media (hover: hover) {
    [data-role=status] .arrow [data-role=status] .arrow:hover {
        opacity: 1
    }
}

.banner-movie {
    padding-top: 7.5rem;
    padding-inline: 4rem;
    background-color: var(--c-blue);
    padding-bottom: 4rem
}

@media only screen and (max-width: 767.98px) {
    .banner-movie {
        padding-inline: 0
    }
}

.vurtual-copy {
    color: var(--c-white);
    text-align: center;
    font-size: 1rem;
    padding-top: 2rem
}

@media only screen and (max-width: 767.98px) {
    .vurtual-copy {
        font-size: 1rem
    }
}

.status-banner-wrapper {
    display: flex;
    gap: 1.5rem;
    max-width: 60rem;
    margin-inline: auto
}

@media only screen and (max-width: 767.98px) {
    .status-banner-wrapper {
        padding-inline: 2rem;
        gap: 2.5rem;
        flex-flow: column
    }
}

.status-banner-inner {
    margin-inline: auto;
    width: 62.5%;
    flex-shrink: 0;
    display: flex;
    flex-flow: column
}

@media only screen and (max-width: 767.98px) {
    .status-banner-inner {
        width: 100%
    }
}

.status-banner-inner img {
    height: 100%
}

.virtual-guide {
    display: flex;
    margin-top: 1.25rem
}

.virtual-guide p {
    margin-inline: auto;
    color: #fff;
    display: flex;
    align-items: center;
    line-height: 100%
}

.virtual-guide a {
    display: flex;
    align-items: center;
    border-color: var(--c-white);
    border-bottom-width: .0625rem;
    margin-right: .25rem;
    gap: .125rem
}

@media only screen and (max-width: 767.98px) {
    .virtual-guide {
        font-size: .875rem
    }
}

.begin-voyage {
    padding-block: 7.5rem 0;
    background-color: var(--c-blue)
}

@media only screen and (max-width: 1439.98px) {
    .begin-voyage {
        padding-inline: 8rem
    }
}

@media only screen and (max-width: 767.98px) {
    .begin-voyage {
        padding-inline: 2rem
    }
}

.background-blue {
    display: flex;
    padding-inline: 12.5rem;
    flex-direction: column;
    align-items: center;
    gap: 10rem;
    background: #5676DD;
    color: var(--c-white)
}

@media only screen and (max-width: 1439.98px) {
    .background-blue {
        padding-block: 4rem 0;
        padding-inline: 8rem
    }
}

@media only screen and (max-width: 767.98px) {
    .background-blue {
        padding-block: 4rem 0;
        padding-inline: 2rem
    }
}

@media print,
screen and (min-width: 1440px) {
    .background-blue {
        padding-block-start: 6rem
    }
}

@media print,
screen and (min-width: 1920px) {
    .background-blue {
        padding-block-start: 6rem
    }
}

.background-blue .squarepattern-wrapper {
    position: absolute;
    width: 100%;
    max-width: 120rem;
    opacity: .3
}

@media only screen and (max-width: 2559.98px) {
    .background-blue .squarepattern-wrapper {
        top: 10rem
    }
}

@media only screen and (max-width: 1919.98px) {
    .background-blue .squarepattern-wrapper {
        top: 2rem
    }
}

@media only screen and (max-width: 767.98px) {
    .background-blue .squarepattern-wrapper {
        top: 5rem
    }
}

.background-blue .squarepattern-wrapper .squarepattern-left {
    position: absolute
}

@media print,
screen and (min-width: 1440px) {
    .background-blue .squarepattern-wrapper .squarepattern-left {
        left: 0;
        width: 30rem
    }
}

@media only screen and (max-width: 1439.98px) {
    .background-blue .squarepattern-wrapper .squarepattern-left {
        left: -2rem;
        width: 20rem
    }
}

@media only screen and (max-width: 1023.98px) {
    .background-blue .squarepattern-wrapper .squarepattern-left {
        left: 0;
        width: 12rem
    }
}

@media only screen and (max-width: 767.98px) {
    .background-blue .squarepattern-wrapper .squarepattern-left {
        left: -3rem;
        width: 8rem
    }
}

.background-blue .squarepattern-wrapper .squarepattern-right {
    position: absolute
}

@media print,
screen and (min-width: 1440px) {
    .background-blue .squarepattern-wrapper .squarepattern-right {
        right: 0;
        width: 30rem
    }
}

@media only screen and (max-width: 1439.98px) {
    .background-blue .squarepattern-wrapper .squarepattern-right {
        right: -2rem;
        width: 20rem
    }
}

@media only screen and (max-width: 1023.98px) {
    .background-blue .squarepattern-wrapper .squarepattern-right {
        right: 0;
        width: 12rem
    }
}

@media only screen and (max-width: 767.98px) {
    .background-blue .squarepattern-wrapper .squarepattern-right {
        right: -3rem;
        width: 8rem
    }
}

.about {
    position: relative
}

.about-explanation {
    display: flex;
    max-width: 48rem;
    flex-direction: column;
    align-items: flex-start;
    gap: 2rem;
    position: relative;
    overflow: visible
}

@media only screen and (max-width: 1023.98px) {
    .about-explanation {
        width: 100%
    }
}

.about-explanation .section-inner {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2.5rem;
    padding-block-end: 8rem;
    position: relative
}

.about-explanation .section-inner .wave {
    position: absolute;
    width: 160rem;
    left: 50%;
    transform: translate(-50%);
    bottom: -1px;
    max-width: none
}

.about-explanation .section-inner .wave:nth-child(2) {
    transform: translate(-45%)
}

.about-explanation .text-group {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2rem
}

@media only screen and (max-width: 1023.98px) {
    .about-explanation .heading-wrapper .heading-alphabet.en {
        flex-direction: column;
        align-items: normal
    }
}

.about-explanation .heading-wrapper .heading-alphabet h2 {
    flex-shrink: 0
}

.about-explanation .text-box {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2rem
}

.about-explanation .text-box .about-text {
    line-height: 2
}

.movie-thumbnail-wrapper {
    max-width: 48rem;
    display: block;
    border-radius: .5rem;
    container-type: inline-size;
    width: 100%;
    position: relative;
    border-width: .375rem;
    border-color: var(--c-white);
    margin-inline: auto
}

.square-pattern {
    position: absolute;
    top: -5rem;
    right: -5rem;
    pointer-events: none
}

.movie-thumbnail {
    overflow: hidden;
    position: relative;
    width: 100%
}

@media only screen and (min-width: 768px) and (max-width: 1023.98px) {
    .movie-thumbnail.virtual-movie:before {
        width: 3rem;
        height: 2.5rem;
        top: 40%
    }
}

@media only screen and (min-width: 768px) and (max-width: 1023.98px) {
    .movie-thumbnail.virtual-movie:after {
        border-width: 7px 0 7px 12px;
        left: calc(50% + 1.5px);
        top: 40%
    }
}

.movie-thumbnail:before {
    content: "";
    aspect-ratio: 1/1;
    width: 5rem;
    height: 3.75rem;
    border-radius: 1rem;
    border: .1875rem solid var(--c-white);
    background-color: #fff;
    position: absolute;
    left: 50%;
    top: 50%;
    translate: -50% -50%
}

.movie-thumbnail:after {
    content: "";
    display: inline-block;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 12.25px 0 12.25px 21px;
    border-color: transparent transparent transparent var(--c-red);
    position: absolute;
    left: calc(50% + 4px);
    top: 50%;
    translate: -50% -50%
}

@media (hover: hover) {
    .movie-thumbnail:before {
        transition: scale .3s ease-out, background-color .3s ease-out
    }

    .movie-thumbnail:after {
        transition: scale .3s ease-out, border-color .3s ease-out
    }

    .movie-thumbnail:hover:before {
        scale: 112.5%;
        background-color: var(--c-red)
    }

    .movie-thumbnail:hover:after {
        scale: 112.5%;
        border-color: transparent transparent transparent var(--c-white)
    }
}

.movie-thumbnail.virtual-movie {
    width: auto
}

.virtual-movie-wrapper {
    position: relative;
    border-radius: .5rem;
    border-width: .375rem;
    border-color: var(--c-white);
    margin-inline: auto;
    height: -moz-fit-content;
    height: fit-content;
    width: 37.5%
}

.virtual-movie-wrapper h3 {
    position: absolute;
    bottom: .5rem;
    left: 50%;
    transform: translate(-50%);
    background-color: var(--c-white);
    white-space: nowrap;
    padding-inline: .5rem;
    padding-block: .25rem;
    border-radius: .25rem
}

@media only screen and (max-width: 767.98px) {
    .virtual-movie-wrapper {
        width: 100%
    }
}

.runrun {
    position: absolute;
    width: 12rem;
    height: auto;
    left: -5rem;
    bottom: -2rem;
    animation: runrun 1.5s ease-in-out infinite;
    z-index: 1
}

@media only screen and (max-width: 1023.98px) {
    .runrun {
        width: 6rem;
        left: -1rem;
        bottom: 3.5rem
    }
}

@keyframes runrun {
    0% {
        transform: rotate(-12deg)
    }

    50% {
        transform: rotate(1deg)
    }

    to {
        transform: rotate(-12deg)
    }
}

.background-lightblue {
    display: flex;
    padding-block: 3.5rem 8rem;
    padding-inline: 4rem;
    flex-direction: column;
    align-items: center;
    gap: 10rem;
    background: #DBECFC;
    position: relative
}

@media only screen and (max-width: 767.98px) {
    .background-lightblue {
        padding-inline: 2rem;
        padding-block: 0 8rem
    }
}

@media print,
screen and (min-width: 1024px) {
    .background-lightblue {
        padding-inline: 4rem
    }
}

@media print,
screen and (min-width: 1440px) {
    .background-lightblue {
        padding-inline: 4rem;
        padding-block: 0 8rem
    }
}

@media print,
screen and (min-width: 1920px) {
    .background-lightblue {
        padding-block: 0 8rem
    }
}

.background-lightblue .wave {
    position: absolute;
    width: 160rem;
    left: 50%;
    transform: translate(-50%);
    bottom: -1px;
    max-width: none
}

.background-lightblue.vivid {
    background: #0968b7;
    padding-block: 0 8rem
}

.fivevalue {
    display: flex;
    align-items: center;
    gap: 3.5rem;
    width: 100%;
    max-width: 92.5rem;
    padding-block-start: 4rem
}

@media only screen and (max-width: 1439.98px) {
    .fivevalue {
        flex-flow: column
    }
}

@media only screen and (max-width: 1023.98px) {
    .fivevalue {
        padding-block-start: 2rem
    }
}

.fivevalue .text-group {
    width: 32rem;
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2rem;
    background-color: var(--c-white);
    padding: 4.5rem;
    border-radius: 1rem;
    position: relative;
    overflow: hidden
}

.fivevalue .text-group h3 {
    line-height: 130%;
    font-size: 2.25rem
}

@media only screen and (max-width: 767.98px) {
    .fivevalue .text-group h3 {
        font-size: 1.5rem
    }
}

@media only screen and (max-width: 1439.98px) {
    .fivevalue .text-group {
        width: 100%
    }
}

@media only screen and (max-width: 767.98px) {
    .fivevalue .text-group {
        padding: 2rem
    }
}

.fivevalue .fivevalue-image {
    width: 100%;
    height: auto;
    flex-grow: 1
}

.fivevalue .global-image {
    position: absolute;
    right: -60px;
    bottom: -50px
}

@media only screen and (max-width: 1439.98px) {
    .fivevalue .global-image {
        right: -60px;
        bottom: -220px
    }
}

@media only screen and (max-width: 1023.98px) {
    .fivevalue .global-image {
        right: -60px;
        bottom: 0
    }
}

.introduction {
    gap: 3.5rem;
    width: 100%;
    max-width: 92.5rem;
    color: var(--c-white);
    padding-block-start: 4rem
}

@media only screen and (max-width: 1023.98px) {
    .introduction {
        padding-block-start: 2rem
    }
}

.introduction .area-content {
    display: flex;
    padding-block-end: 4rem;
    gap: 3rem
}

@media only screen and (max-width: 1023.98px) {
    .introduction .area-content {
        flex-direction: column;
        gap: 1.5rem;
        padding-block-end: 3rem
    }
}

.introduction .area-content .text-group {
    min-width: 0;
    width: 100%;
    padding-block-start: .125rem
}

@media only screen and (max-width: 1023.98px) {
    .introduction .area-content .text-group {
        padding-block-start: 0
    }
}

.introduction .area-content picture {
    width: 100%;
    height: -moz-fit-content;
    height: fit-content
}

.introduction .area-content picture img {
    min-width: 0;
    height: auto;
    aspect-ratio: 16/9
}

.introduction .area-content:nth-of-type(1),
.introduction .area-content:nth-of-type(3) {
    flex-direction: row-reverse
}

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

    .introduction .area-content:nth-of-type(1),
    .introduction .area-content:nth-of-type(3) {
        flex-direction: column;
        gap: 1.5rem
    }
}

.introduction .area-content:nth-of-type(4) {
    padding-block-end: 0
}

.introduction hgroup {
    padding-block-end: 4rem
}

@media only screen and (max-width: 1023.98px) {
    .introduction hgroup {
        padding-block-end: 2rem !important
    }
}

.introduction h4 {
    font-size: 2.125rem;
    font-weight: 500;
    line-height: 1;
    border-bottom-width: .0625rem;
    border-color: var(--c-white);
    padding-block-end: 2.25rem
}

@media only screen and (max-width: 1023.98px) {
    .introduction h4 {
        font-size: 1.675rem;
        padding-block-end: 1.5rem
    }
}

.introduction h5 {
    font-size: 1.375rem;
    font-weight: 500;
    line-height: 1;
    padding-block-start: 2.25rem;
    padding-block-end: 1.25rem
}

@media only screen and (max-width: 1023.98px) {
    .introduction h5 {
        font-size: 1.125rem;
        padding-block-start: 1.5rem;
        padding-block-end: .875rem
    }
}

.birdsview-wrapper {
    width: 100%;
    display: flex;
    justify-content: center;
    padding-block-end: 4rem
}

.birdsview-wrapper img {
    width: 100%;
    height: auto
}

.exhibition {
    display: flex;
    position: relative;
    padding-block: 4rem 8rem;
    padding-inline: 4rem;
    background: var(--gray-5, #F5F5F5);
    flex-direction: column;
    gap: 4rem
}

.exhibition .text-group {
    display: flex;
    gap: 2rem;
    align-items: end
}

@media only screen and (max-width: 1439.98px) {
    .exhibition .text-group {
        flex-flow: column;
        align-items: normal
    }
}

@media print,
screen and (min-width: 1440px) {
    .exhibition .text-group.en {
        flex-direction: column;
        align-items: normal
    }
}

@media only screen and (max-width: 767.98px) {
    .exhibition {
        padding-inline: 2rem
    }
}

@media only screen and (max-width: 1023.98px) {
    .exhibition {
        padding-block: 2rem 8rem
    }
}

@media print,
screen and (min-width: 1024px) {
    .exhibition {
        padding-inline: 4rem
    }
}

@media print,
screen and (min-width: 1440px) {
    .exhibition {
        padding-inline: 4rem
    }
}

@media print,
screen and (min-width: 1920px) {
    .exhibition {
        padding-inline: 8rem
    }
}

.message-to-future {
    display: flex;
    padding-inline: 4rem;
    padding-block-end: 8rem;
    flex-direction: column;
    justify-content: center;
    gap: 4rem;
    align-self: stretch;
    background: var(--gray-5, #F5F5F5);
    position: relative
}

@media only screen and (max-width: 767.98px) {
    .message-to-future {
        gap: 4rem;
        padding-inline: 2rem;
        padding-block-end: 8rem
    }
}

@media only screen and (max-width: 1023.98px) {
    .message-to-future {
        gap: 4rem;
        padding-block-end: 8rem
    }
}

@media print,
screen and (min-width: 1024px) {
    .message-to-future {
        padding-inline: 4rem
    }
}

@media print,
screen and (min-width: 1440px) {
    .message-to-future {
        padding-block: 0 8rem;
        padding-inline: 4rem
    }
}

@media print,
screen and (min-width: 1920px) {
    .message-to-future {
        padding-block: 0 8rem;
        padding-inline: 8rem
    }
}

.message-to-future .text-group {
    display: flex;
    gap: 2rem;
    align-items: end
}

@media only screen and (max-width: 1439.98px) {
    .message-to-future .text-group {
        flex-flow: column;
        align-items: normal
    }
}

@media print,
screen and (min-width: 1440px) {
    .message-to-future .text-group.en {
        flex-direction: column;
        align-items: normal
    }
}

.kihon {
    position: absolute;
    width: 12rem;
    height: auto;
    right: 4rem;
    top: -13rem;
    animation: bound 3s infinite
}

@media only screen and (max-width: 1023.98px) {
    .kihon {
        width: 6rem;
        right: 2.5rem;
        top: -7rem
    }
}

@keyframes bound {
    0% {
        transform: translateY(0)
    }

    10% {
        transform: translateY(0)
    }

    20% {
        transform: translateY(-1.5625rem)
    }

    25% {
        transform: translateY(0)
    }

    30% {
        transform: translateY(-.9375rem)
    }

    50% {
        transform: translateY(0)
    }

    to {
        transform: translateY(0)
    }
}

.background-gradient-gray {
    width: 100%;
    height: 8rem;
    background: linear-gradient(0deg, #FFF 0%, #F5F5F5 100%);
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translate(-50%)
}

@media print,
screen and (min-width: 768px) {
    .background-gradient-gray {
        height: 6rem
    }
}

@media print,
screen and (min-width: 1920px) {
    .background-gradient-gray {
        height: 8rem
    }
}

.message-list-wrapper {
    overflow: visible;
    width: 100%
}

.message-list {
    display: flex;
    gap: 1rem;
    width: -moz-fit-content;
    width: fit-content;
    justify-content: center;
    animation: scroll-animation 24s linear infinite
}

@keyframes scroll-animation {
    0% {
        transform: translate(0)
    }

    to {
        transform: translate(-50%)
    }
}

.message-group {
    display: flex;
    width: 21.625rem;
    flex-direction: column;
    align-items: flex-start;
    gap: 1rem
}

.message-group.up {
    padding-block-end: 4rem
}

.message-group.down {
    padding-block-start: 4rem
}

@media only screen and (max-width: 767.98px) {
    .message-group {
        width: 20rem
    }
}

.message-item {
    height: 20rem;
    align-self: stretch;
    border-radius: 1.5rem;
    background: var(--white, #FFF);
    position: relative;
    box-shadow: 0 0 .125rem #00000014;
    pointer-events: none
}

.message-item a {
    width: 100%;
    height: 100%;
    padding-inline: 3rem;
    padding-block-start: 1.25rem;
    display: flex;
    justify-content: center;
    align-items: center
}

.message-item .double-quotes {
    position: absolute;
    left: 1.75rem;
    top: 1.75rem
}

.message-item .message-content {
    display: flex;
    gap: 1.5rem;
    flex-direction: column
}

.message-item .text-box {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 1rem
}

.message-item .text-box .message-text {
    color: var(--c-black);
    font-size: 1.125rem;
    font-weight: 500;
    line-height: 1.4;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
    -webkit-line-clamp: 5
}

.message-item .text-box .company-name {
    color: var(--c-black);
    font-size: .875rem;
    font-weight: 500;
    line-height: 1.25;
    word-wrap: break-word
}

@media (hover: hover) {
    .message-item {
        transition: .2s ease-out
    }

    .message-item:hover {
        transform: scale(1.01);
        box-shadow: 0 .25rem 1.25rem #0000000f
    }
}

.category:not(:empty) {
    padding: .5rem;
    border-width: .0625rem;
    border-color: #e66eb0;
    border-radius: .25rem;
    color: #e66eb0;
    width: -moz-fit-content;
    width: fit-content;
    font-size: .875rem;
    line-height: 1;
    word-wrap: break-word;
    font-weight: 400;
    background-color: var(--c-white)
}

.industry {
    display: flex;
    align-items: center;
    gap: .0625rem;
    font-weight: 400;
    color: var(--gray-100, #444);
    line-height: 1;
    font-size: .875rem
}

.industry:before {
    content: "#";
    font-size: 1.125rem
}

.message-button-wrapper {
    display: flex;
    width: 100%;
    justify-content: space-between;
    align-items: center;
    gap: 1.5rem
}

@media only screen and (max-width: 1439.98px) {
    .message-button-wrapper {
        flex-flow: column;
        align-items: flex-start
    }
}

.message-button-wrapper p {
    color: var(--gray-50, #888);
    font-size: .875rem;
    font-style: normal;
    font-weight: 400;
    line-height: 150%
}

.message-button-wrapper a {
    display: flex;
    padding: 1rem;
    justify-content: center;
    align-items: center;
    gap: 7.5rem;
    border-radius: .75rem;
    border: .0625rem solid var(--blue-text, #5676DD);
    background: var(--blue-text, #5676DD);
    transition: .3s ease-out
}

.message-button-wrapper a svg path {
    fill: var(--c-white);
    transition: .3s fill ease-out
}

@media (hover: hover) {
    .message-button-wrapper a:hover {
        background-color: var(--c-white)
    }

    .message-button-wrapper a:hover p {
        color: var(--blue-text, #5676DD)
    }

    .message-button-wrapper a:hover svg path {
        fill: var(--blue-text, #5676DD)
    }
}

@media only screen and (max-width: 1439.98px) {
    .message-button-wrapper a {
        width: 100%;
        justify-content: space-between;
        gap: 0
    }
}

.message-button-wrapper a p {
    color: var(--c-white);
    font-family: Noto Sans JP;
    font-size: 1rem;
    font-style: normal;
    font-weight: 500;
    line-height: 175%;
    transition: .3s ease-out
}

.outline {
    display: flex;
    padding-inline: 4rem;
    padding-block: 0 1rem;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 8rem;
    position: relative
}

@media print,
screen and (min-width: 1920px) {
    .outline {
        padding-inline: 8rem
    }
}

@media print,
screen and (min-width: 1440px) {
    .outline {
        padding-block-end: 8rem
    }
}

@media only screen and (max-width: 1439.98px) {
    .outline {
        padding-block-end: 8rem;
        padding-inline: 4rem
    }
}

@media only screen and (max-width: 1023.98px) {
    .outline {
        padding-block-end: 8rem
    }
}

@media only screen and (max-width: 767.98px) {
    .outline {
        padding: 2rem 2rem 14rem
    }
}

.outline .outline-inner {
    display: flex;
    justify-content: space-between;
    gap: 7rem;
    align-self: stretch;
    position: relative
}

@media only screen and (max-width: 1439.98px) {
    .outline .outline-inner {
        gap: 2rem
    }
}

@media only screen and (max-width: 1439.98px) {
    .outline .outline-inner {
        flex-flow: column
    }
}

@media only screen and (max-width: 1023.98px) {
    .outline .outline-inner {
        flex-flow: column
    }
}

@media only screen and (max-width: 767.98px) {
    .outline .outline-inner {
        flex-flow: column
    }
}

.outline .outline-inner .heading-alphabet {
    flex-direction: column;
    align-items: normal
}

@media only screen and (max-width: 1439.98px) {
    .outline .outline-inner .heading-alphabet {
        flex-direction: row;
        align-items: flex-end
    }
}

.outline .outline-inner .heading-alphabet h2 {
    flex-shrink: 0
}

@media only screen and (max-width: 1023.98px) {
    .outline .outline-inner .heading-alphabet.en {
        flex-direction: column;
        align-items: normal
    }
}

.outline .map {
    width: 100%;
    height: auto;
    aspect-ratio: 4/3
}

.outline a {
    display: flex;
    padding: 1rem;
    justify-content: space-between;
    align-items: center;
    gap: 2rem;
    border-radius: .75rem;
    border: .0625rem solid var(--blue-text, #5676DD);
    background: var(--blue-text, #5676DD);
    transition: .3s ease-out;
    max-width: 26rem
}

.outline a svg path {
    fill: var(--c-white);
    transition: .3s fill ease-out
}

@media (hover: hover) {
    .outline a:hover {
        background-color: var(--c-white)
    }

    .outline a:hover p {
        color: var(--blue-text, #5676DD)
    }

    .outline a:hover svg path {
        fill: var(--blue-text, #5676DD)
    }
}

@media only screen and (max-width: 1023.98px) {
    .outline a {
        width: 100%;
        justify-content: space-between;
        gap: 0;
        max-width: none
    }
}

.outline a p {
    color: var(--c-white);
    font-family: Noto Sans JP;
    font-size: 1rem;
    font-style: normal;
    font-weight: 500;
    line-height: 175%;
    transition: .3s ease-out;
    word-break: auto-phrase
}

.outline .yubisashi {
    width: 9rem;
    height: auto;
    position: absolute;
    left: 0
}

@media only screen and (max-width: 767.98px) {
    .outline .yubisashi {
        left: -1rem;
        bottom: -12rem
    }
}

@media only screen and (min-width: 768px) and (max-width: 1439.98px) {
    .outline .yubisashi {
        left: -2rem;
        bottom: 5.625rem
    }
}

@media print,
screen and (min-width: 1440px) {
    .outline .yubisashi {
        width: 18rem;
        bottom: 0
    }
}

.news {
    display: flex;
    padding-block: 0 8rem;
    flex-direction: column;
    align-items: flex-start;
    gap: 2rem;
    align-self: stretch;
    padding-inline: 4rem
}

@media only screen and (max-width: 1439.98px) {
    .news {
        padding-block-start: 0;
        padding-inline: 4rem
    }
}

@media only screen and (max-width: 767.98px) {
    .news {
        padding: 0 2rem 8rem
    }
}

@media print,
screen and (min-width: 1440px) {
    .news {
        padding-block-start: 0
    }
}

@media print,
screen and (min-width: 1920px) {
    .news {
        padding-block: 0 8rem;
        padding-inline: 8rem
    }
}

.news .news-list {
    width: 100%;
    display: grid;
    border-radius: .5rem;
    background: var(--gray-5, #F5F5F5);
    padding: 2rem 4rem
}

@media only screen and (max-width: 767.98px) {
    .news .news-list {
        padding: 0 2rem
    }
}

.news .news-item {
    display: flex;
    padding: 2rem 0rem;
    align-items: center;
    gap: 4rem;
    align-self: stretch
}

@media print,
screen and (min-width: 1024px) {
    .news .news-item {
        grid-template-columns: auto 1fr
    }
}

@media only screen and (max-width: 1023.98px) {
    .news .news-item {
        flex-flow: column;
        align-items: flex-start;
        gap: 1rem
    }
}

.news .news-item:not(:first-of-type) {
    border-block-start: .0625rem solid #DDDDDD
}

.news .news-item a {
    display: flex;
    padding: 2rem 0rem;
    align-items: center;
    gap: 4rem;
    width: 100%;
    height: 100%
}

.news .news-item a h4 {
    text-decoration: underline
}

@media print,
screen and (min-width: 1024px) {
    .news .news-item a {
        grid-template-columns: auto 1fr
    }
}

@media only screen and (max-width: 1023.98px) {
    .news .news-item a {
        flex-flow: column;
        align-items: flex-start;
        gap: 1rem
    }
}

@media (hover: hover) {
    .news .news-item a:hover h4 {
        text-decoration: none
    }
}

.news .news-item:has(a) {
    padding: 0
}

@media print,
screen and (min-width: 1024px) {
    .news .news-item:has(a) {
        padding-inline-end: 2.4em
    }
}

.news .news-item .news-date {
    color: var(--gray-50, #888);
    font-size: 1rem;
    font-style: normal;
    font-weight: 400;
    line-height: 175%
}

@media print,
screen and (min-width: 1024px) {
    .news .news-item .news-date {
        width: 5rem;
        flex-shrink: 0
    }
}

.news .news-item .news-title-wrapper {
    display: flex;
    gap: 1rem;
    flex-wrap: wrap
}

.news .news-item .news-title-wrapper .news-title {
    color: var(--black, #080808);
    font-size: 1rem;
    font-weight: 400;
    line-height: 175%
}

.underline-none {
    text-decoration: none !important;
}

.underline {
    text-decoration: underline !important;
}

@media (hover: hover) {
    .news-item a:hover .underline {
        text-decoration: none !important;
    }
}

.new {
    background-color: var(--c-blue);
    padding-inline: .375rem;
    padding-block: .125rem;
    color: var(--c-white);
    border-radius: .25rem;
    width: -moz-fit-content;
    width: fit-content;
    display: flex;
    justify-content: center;
    align-items: center;
    white-space: nowrap
}

.jgoodtech-message {
    display: flex;
    padding: 0rem 4rem 6rem;
    flex-direction: column;
    align-items: flex-start;
    gap: 2rem;
    align-self: stretch
}

@media only screen and (max-width: 767.98px) {
    .jgoodtech-message {
        padding: 0 2rem 6rem
    }
}

@media print,
screen and (min-width: 1440px) {
    .jgoodtech-message {
        padding-block-start: 0
    }
}

@media print,
screen and (min-width: 1920px) {
    .jgoodtech-message {
        padding-block: 0 8rem;
        padding-inline: 8rem
    }
}

.jgoodtech-message .heading-wrapper {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2rem
}

.jgoodtech-message .heading-wrapper .heading-alphabet {
    width: 100%
}

@media only screen and (max-width: 1439.98px) {
    .jgoodtech-message .heading-wrapper .heading-alphabet p {
        width: 100%;
        min-width: 0;
        word-break: normal;
        white-space: normal;
        line-height: 1.5
    }
}

@media print,
screen and (min-width: 1440px) {
    .jgoodtech-message .heading-wrapper .heading-alphabet.en {
        flex-direction: column;
        align-items: normal
    }
}

.jgoodtech-message h2 {
    font-size: 3rem
}

.jgoodtech-message-list {
    width: 100%;
    display: grid;
    gap: 1rem
}

@media print,
screen and (min-width: 1024px) {
    .jgoodtech-message-list {
        grid-template-columns: repeat(auto-fit, minmax(23rem, 1fr))
    }
}

@media only screen and (max-width: 1023.98px) {
    .jgoodtech-message-list {
        grid-template-columns: repeat(auto-fit, minmax(20rem, 1fr))
    }
}

.jgoodtech-message-item {
    display: flex;
    flex-direction: column;
    border-radius: 1.5rem;
    gap: 1.75rem;
    background: #F5F5F5;
    position: relative;
    padding: 2.25rem;
    grid-template-columns: subgrid
}

.jgoodtech-heading-wrapper {
    display: flex;
    flex-direction: column;
    gap: .75rem
}

.jgoodtech-heading-wrapper h3 {
    font-size: 1.5rem;
    line-height: 1.3;
    font-weight: 700
}

.category-group {
    display: flex;
    flex-direction: column;
    gap: .4375rem
}

.link-group {
    display: flex;
    align-items: flex-start;
    flex-direction: column;
    gap: 1rem;
    margin-top: auto
}

.official-site,
.jgoodtech-site {
    border-width: .0625rem;
    border-color: var(--c-blue);
    font-size: 1rem;
    width: 100%;
    line-height: 1;
    display: flex;
    align-items: center;
    background-color: var(--c-blue);
    color: var(--c-white);
    justify-content: space-between;
    padding-inline: 1.5rem;
    padding-block: 1rem;
    border-radius: .5rem
}

@media (hover: hover) {

    .official-site,
    .jgoodtech-site {
        transition: .2s
    }

    .official-site:hover,
    .jgoodtech-site:hover {
        background-color: var(--c-white);
        color: var(--blue-text, #5676DD)
    }

    .official-site:hover svg path,
    .jgoodtech-site:hover svg path {
        stroke: var(--blue-text, #5676DD)
    }
}

.detail-text-wrapper {
    display: flex;
    flex-direction: column;
    gap: 1rem
}

.detail-text {
    font-size: 1rem;
    background-color: var(--c-white);
    padding: 1rem 1rem 1rem 1.25rem;
    border-radius: .5rem;
    border-inline-start-width: .625rem;
    border-inline-color: var(--c-blue)
}

.detail-text h3 {
    font-size: 1.125rem;
    font-weight: 500;
    padding-block-end: .25rem
}

.footer-banner-container {
    display: flex;
    flex-direction: column;
    gap: 5rem;
    padding: 0rem 8rem 4rem
}

@media only screen and (max-width: 767.98px) {
    .footer-banner-container {
        padding: 0rem 2rem 4rem
    }
}

@media print,
screen and (min-width: 1920px) {
    .footer-banner-container {
        padding-block-end: 4rem
    }
}

.footer-banner-container .footer-banner-wrapper {
    max-width: 450px;
    margin: auto;
    width: 100%
}

.footer-banner-container .footer-banner-wrapper p {
    word-break: keep-all;
    position: relative;
    width: -moz-fit-content;
    width: fit-content;
    display: flex;
    font-size: 1rem;
    font-weight: 400;
    margin: auto;
    text-align: center;
    padding-block-end: .75rem;
    color: var(--c-black)
}

.footer-banner-container .footer-banner-wrapper p .talkingline {
    position: absolute;
    top: 1.25rem;
    display: block;
    height: .125rem;
    width: 3rem;
    background-color: var(--c-black);
    border-radius: .09375rem
}

.footer-banner-container .footer-banner-wrapper p .talkingline:first-child {
    transform: rotate(70deg);
    left: -3rem
}

.footer-banner-container .footer-banner-wrapper p .talkingline:last-child {
    transform: rotate(110deg);
    right: -3rem
}

.footer-banner-container .footer-banner img {
    width: 100%
}

.footer-banner-container .logo-outline-wrapper {
    max-width: 48rem;
    width: 100%;
    border-width: .0625rem;
    border-color: var(--c-gray-20);
    border-radius: .5rem;
    position: relative;
    padding: 1rem 1rem 2rem
}

.application-wrapper {
    padding-top: 3rem;
    margin-block-start: calc(var(--s-container-block) * 1.39 - 3rem)
}

.application {
    margin-top: 0;
    margin-inline: var(--s-container-inline);
    position: relative;
    padding-block: calc(var(--s-container-block) / 2);
    border-radius: 1.5rem;
    background-color: #000000bf;
    color: var(--c-white)
}

@media only screen and (max-width: 1023.98px) {
    .application {
        padding-inline: var(--s-container-inline)
    }
}

@media only screen and (min-width: 768px) and (max-width: 1023.98px) {
    .application {
        padding-block-start: var(--s-container-inline)
    }
}

@media print,
screen and (min-width: 1024px) {
    .application {
        padding-inline: 4rem
    }
}

.application-title {
    margin-block-end: .5em;
    font-weight: 600;
    line-height: 1
}

@media only screen and (max-width: 1023.98px) {
    .application-title {
        font-size: 1.5rem;
        line-height: 1.2
    }
}

@media print,
screen and (min-width: 1024px) {
    .application-title {
        font-size: 2rem;
        line-height: 1.2
    }
}

@media only screen and (max-width: 374.98px) {
    .application-title {
        text-align: left;
        line-height: 1.2
    }
}

.message-application {
    position: relative;
    margin-top: 2.5rem
}

.point {
    margin-inline: auto;
    justify-content: center;
    padding-bottom: 2rem;
    border-radius: .5rem;
    margin-top: 4rem;
    width: 100%
}

@media only screen and (max-width: 1023.98px) {
    .point {
        max-width: 24rem
    }
}

.point h3 {
    padding-block: .5rem;
    margin: auto;
    text-align: center;
    font-size: 1.5rem;
    color: var(--c-white)
}

.point-wrapper {
    padding-top: 1rem;
    display: flex;
    justify-content: center;
    gap: 2%;
    padding-inline: .5rem
}

@media only screen and (max-width: 1023.98px) {
    .point-wrapper {
        flex-flow: column;
        max-width: 15rem;
        justify-content: center;
        margin: auto;
        padding-inline: 0;
        gap: .5rem
    }
}

.point-wrapper img {
    width: 100%
}

.exhibition-item {
    align-self: stretch;
    position: relative;
    pointer-events: none
}

.exhibition-item .message-content {
    display: flex;
    gap: 1rem;
    flex-direction: column
}

.exhibition-item .message-content .image-wrapper {
    overflow: hidden;
    position: relative;
    background-color: var(--c-white);
    padding: 2rem;
    border-radius: 1.5rem;
    aspect-ratio: 1/1;
    display: flex;
    justify-content: center;
    align-items: center
}

.exhibition-item .message-content .image-wrapper img {
    width: 100%;
    height: 100%;
    -o-object-fit: contain;
    object-fit: contain
}

.exhibition-item .exhibition-text-box {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: .75rem
}

.exhibition-item .exhibition-text-box .company-name {
    color: var(--c-black);
    font-size: 1.5rem;
    font-weight: 500;
    line-height: 1.25;
    word-wrap: break-word
}

@media (hover: hover) {
    .exhibition-item img {
        transition: .2s ease-out
    }

    .exhibition-item:hover img {
        transform: scale(1.01);
        box-shadow: 0 .25rem 1.25rem #0000000f
    }
}

.splide__track {
    overflow: visible
}

.exhibition-button-wrapper {
    display: flex;
    width: 100%;
    justify-content: space-between;
    align-items: center;
    gap: 1.5rem;
    padding-top: 3rem
}

@media only screen and (max-width: 1439.98px) {
    .exhibition-button-wrapper {
        flex-flow: column;
        align-items: flex-start
    }
}

.exhibition-button-wrapper p {
    color: var(--gray-50, #888);
    font-size: .875rem;
    font-style: normal;
    font-weight: 400;
    line-height: 150%
}

.exhibition-button-wrapper a {
    display: flex;
    padding: 1rem;
    justify-content: center;
    align-items: center;
    gap: 7.5rem;
    border-radius: .75rem;
    border: .0625rem solid var(--blue-text, #5676DD);
    background: var(--blue-text, #5676DD);
    transition: .3s ease-out
}

.exhibition-button-wrapper a svg path {
    fill: var(--c-white);
    transition: .3s fill ease-out
}

@media (hover: hover) {
    .exhibition-button-wrapper a:hover {
        background-color: var(--c-white)
    }

    .exhibition-button-wrapper a:hover p {
        color: var(--blue-text, #5676DD)
    }

    .exhibition-button-wrapper a:hover svg path {
        fill: var(--blue-text, #5676DD)
    }
}

@media only screen and (max-width: 1439.98px) {
    .exhibition-button-wrapper a {
        width: 100%;
        justify-content: space-between;
        gap: 0
    }
}

.exhibition-button-wrapper a p {
    color: var(--c-white);
    font-family: Noto Sans JP;
    font-size: 1rem;
    font-style: normal;
    font-weight: 500;
    line-height: 175%;
    transition: .3s ease-out
}

.arrows-wrapper {
    display: flex;
    align-items: center;
    gap: 1rem
}

@media only screen and (max-width: 1023.98px) {
    .arrows-wrapper {
        flex-direction: column;
        align-items: start
    }
}

[data-role=exhibition] .splide__arrows {
    width: -moz-fit-content;
    width: fit-content;
    display: flex;
    gap: .5rem
}

[data-role=exhibition] .arrow {
    position: static;
    width: 3rem;
    height: 3rem;
    border-radius: .75rem;
    background-color: var(--c-white);
    opacity: 1;
    transform: none;
    padding: 1rem
}

[data-role=exhibition] .arrow svg {
    fill: var(--c-black)
}

.message-example {
    margin-block: 2.5rem;
    display: flex;
    flex-flow: column;
    gap: 2rem;
    text-align: center;
    justify-content: center;
    background-color: #ffffff24;
    border-radius: .5rem;
    padding-block: 2.5rem 3.5rem;
    padding-inline: 2rem
}

.message-example-title {
    padding-block: .5rem;
    margin: auto;
    text-align: center;
    width: 100%;
    max-width: 32.5rem;
    font-size: 1rem;
    line-height: 1;
    background: linear-gradient(90deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, .15) 45%, rgba(255, 255, 255, .15) 55%, rgba(255, 255, 255, 0) 100%)
}

.message-example-item {
    display: flex;
    flex-flow: column;
    justify-content: center;
    gap: 1.25rem
}

.message-example-item p {
    word-break: keep-all
}

.about-note {
    margin-block-start: 2.5rem;
    font-size: .875rem
}

@media print,
screen and (min-width: 375px) {
    .about-note {
        width: -moz-fit-content;
        width: fit-content
    }
}

.about-note p:before {
    content: "※"
}

.button-wrapper {
    display: grid;
    margin-block-start: 4rem;
    gap: 1rem 1.5rem
}

@media print,
screen and (min-width: 1024px) {
    .button-wrapper {
        grid-template-columns: auto 1fr
    }
}

.button-wrapper .button-capsule,
.button-wrapper .button-capsule__white {
    margin-block-start: 0;
    padding-inline-end: 0;
    justify-content: center;
    -moz-column-gap: .8em;
    column-gap: .8em;
    height: 4.8em
}

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

    .button-wrapper .button-capsule,
    .button-wrapper .button-capsule__white {
        font-size: 1.125rem
    }
}

.button-wrapper .button-capsule:after,
.button-wrapper .button-capsule__white:after {
    position: static
}

.button-wrapper .button-capsule {
    width: 100%
}

@media only screen and (max-width: 1023.98px) {
    .button-wrapper .button-capsule__white {
        width: 100%
    }
}

.button-wrapper .button-capsule__white:after {
    rotate: 0deg;
    background-image: url(/image/common/icon_pdf_white.svg);
    background-size: .75em
}

.button-wrapper .application-button {
    margin-bottom: .5rem
}

.mv-2 {
    margin-block-start: 0;
    overflow: hidden;
    position: absolute;
    z-index: -1;
    width: 100%
}

@media only screen and (max-width: 767.98px) {
    .mv-2 {
        height: 44rem
    }
}

@media only screen and (min-width: 768px) and (max-width: 1439.98px) {
    .mv-2 {
        height: 56.25rem
    }
}

@media print,
screen and (min-width: 1440px) {
    .mv-2 {
        height: 72rem
    }
}

.mv-2 .mv-photo {
    display: block;
    position: absolute;
    -o-object-fit: cover;
    object-fit: cover;
    height: 100%
}

.mv-2 .mv-photo picture img {
    width: 100%
}

.countdown {
    z-index: var(--z-fixed);
    position: fixed;
    display: flex;
    flex-direction: column;
    align-items: center;
    background-color: #dbecfc;
    border-width: .25rem;
    border-color: var(--c-white);
    border-radius: 50%;
    justify-content: center;
    gap: .125rem;
    box-shadow: 0 0 .5rem #00000014;
    padding-inline: .5rem
}

@media only screen and (max-width: 1439.98px) {
    .countdown {
        left: 1rem;
        top: 5rem;
        width: 6.75rem;
        height: 6.55rem
    }
}

@media print,
screen and (min-width: 1440px) {
    .countdown {
        right: 1.5rem;
        top: 6.875rem;
        width: 8rem;
        height: 8rem
    }
}

.countdown-text {
    text-align: center;
    line-height: 1.25;
    color: var(--c-blue)
}

@media only screen and (max-width: 1439.98px) {
    .countdown-text {
        font-size: .675rem
    }
}

@media print,
screen and (min-width: 1440px) {
    .countdown-text {
        font-size: .75rem
    }
}

.countdown-day {
    width: -moz-fit-content;
    width: fit-content;
    color: var(--c-blue);
    padding-inline-start: .125rem;
    padding-block-end: .125rem
}

@media only screen and (max-width: 1439.98px) {
    .countdown-day {
        padding-inline-start: .125rem;
        padding-block-end: 0
    }
}

@media print,
screen and (min-width: 1440px) {
    .countdown-day {
        padding-inline-start: .125rem;
        padding-block-end: .125rem
    }
}

.countdown-day .day {
    line-height: 1;
    font-weight: 600;
    letter-spacing: -.05em
}

@media only screen and (max-width: 1439.98px) {
    .countdown-day .day {
        font-size: 1.875rem;
        padding-inline-end: .125rem
    }
}

@media print,
screen and (min-width: 1440px) {
    .countdown-day .day {
        font-size: 2.5rem;
        padding-inline-end: .125rem
    }
}

:root {
    --lb-backdrop: rgba(0, 0, 0, .7)
}

html.is-lb-open {
    overflow: hidden
}

#lb-root[aria-hidden=true] {
    display: none
}

#lb-root {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 1000;
    display: grid;
    place-items: center
}

.lb-backdrop {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    background: var(--lb-backdrop);
    opacity: 0;
    animation: lbFade .18s ease forwards
}

.lb-stage {
    position: relative;
    max-width: min(96vw, 960px);
    max-height: 90vh;
    width: -moz-fit-content;
    width: fit-content;
    display: grid;
    grid-template-columns: auto;
    grid-template-rows: auto;
    outline: none;
    transform: translateY(3.5rem)
}

.lb-figure {
    margin: auto;
    display: grid;
    grid-template-rows: 1fr auto;
    gap: .5rem;
    align-items: center;
    justify-items: center;
    height: 100%;
    width: -moz-fit-content;
    width: fit-content
}

.lb-img {
    max-width: 100%;
    max-height: 72vh;
    transform: scale(.985);
    opacity: 0;
    transition: transform .22s ease, opacity .22s ease
}

.lb-img.is-show {
    transform: scale(1);
    opacity: 1
}

.lb-caption {
    font-size: .95rem;
    line-height: 1.6;
    color: #fff;
    text-align: center;
    background: rgba(0, 0, 0, .3);
    padding: .4rem .75rem;
    border-radius: .5rem;
    max-width: 90%;
    -webkit-backdrop-filter: blur(2px);
    backdrop-filter: blur(2px)
}

.lb-btn {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    border: 0;
    color: #fff;
    width: 3rem;
    height: 3rem;
    border-radius: 50%;
    cursor: pointer;
    display: grid;
    place-items: center;
    z-index: 1
}

.lb-btn svg {
    width: 1.25rem;
    height: 1.25rem;
    fill: var(--c-white)
}

@media only screen and (max-width: 1023.98px) {
    .lb-btn svg {
        width: 1rem;
        height: 1rem
    }
}

.lb-prev {
    left: -3rem
}

@media only screen and (max-width: 1023.98px) {
    .lb-prev {
        left: 1rem;
        background: rgba(0, 0, 0, .75)
    }
}

@media only screen and (max-width: 1023.98px) {
    .lb-prev {
        width: 2.5rem;
        height: 2.5rem
    }
}

.lb-next {
    right: -3rem
}

@media only screen and (max-width: 1023.98px) {
    .lb-next {
        right: 1rem;
        background: rgba(0, 0, 0, .75)
    }
}

@media only screen and (max-width: 1023.98px) {
    .lb-next {
        width: 2.5rem;
        height: 2.5rem
    }
}

.lb-close {
    top: -3rem;
    right: -1rem;
    transform: none;
    font-size: 1.25rem
}

.lb-btn:disabled {
    opacity: .4;
    cursor: default
}

@keyframes lbFade {
    0% {
        opacity: 0
    }

    to {
        opacity: 1
    }
}



/* Style for J-GoodTech inline link */
.jgoodtech-inline-link {
    text-decoration: underline;
    font-weight: normal;
    font-size: inherit;
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    font-weight: bold;
}

.jgoodtech-inline-link svg path {
    stroke: var(--c-blue);
    fill: none;
}