@charset "UTF-8";

.reveal-in {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity .8s ease, transform .8s ease
}

.reveal-in.is-visible {
    opacity: 1;
    transform: translateY(0)
}

*,
*:before,
*:after {
    box-sizing: border-box
}

html,
body,
div,
span,
applet,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
a,
abbr,
acronym,
address,
big,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
s,
samp,
small,
strike,
strong,
sub,
sup,
tt,
var,
b,
u,
i,
center,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
embed,
figure,
figcaption,
footer,
header,
hgroup,
menu,
nav,
output,
ruby,
section,
summary,
time,
mark,
audio,
video {
    margin: 0;
    padding: 0;
    border: 0;
    font-size: 100%;
    font: inherit;
    vertical-align: baseline
}

article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section {
    display: block
}

body {
    line-height: 1
}

ol,
ul {
    list-style: none
}

blockquote,
q {
    quotes: none
}

blockquote:before,
blockquote:after,
q:before,
q:after {
    content: "";
    content: none
}

table {
    border-collapse: collapse;
    border-spacing: 0
}

html {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility
}

button {
    background: transparent;
    border: none;
    cursor: pointer;
    outline: none;
    padding: 0
}

a {
    text-decoration: none;
    color: inherit
}

img {
    max-width: 100%;
    height: auto;
    vertical-align: middle
}

input,
textarea,
select,
button {
    font-family: inherit;
    font-size: inherit;
    color: inherit
}

:focus {
    outline: 0
}

html {
    scrollbar-width: thin;
    width: 100vw;
    height: 100%;
    overflow-x: hidden;
    overscroll-behavior-y: none;
    font-size: calc(100vw / 1440 * 16);
    font-feature-settings: "palt" on
}

@media (max-width: 1440px) {
    html {
        font-size: clamp(14.4px, 14.4px + (16 - 14.4) * (100vw - 960px) / (1440 - 960), 16px)
    }
}

@media (max-width: 960px) {
    html {
        font-size: calc(100vw / 393 * 16)
    }
}

body {
    font-family: Noto Sans JP, sans-serif;
    font-optical-sizing: auto;
    font-weight: 400;
    font-style: normal;
    color: #fff;
    position: relative;
    -webkit-font-smoothing: antialiased;
    background: #433831
}

img {
    width: 100%
}

a {
    transition: opacity .25s ease-in-out
}

a:hover {
    opacity: .75
}

.section-identifier {
    font-family: minion-pro-display, serif;
    font-style: italic;
    font-weight: 400;
    font-size: 1.5rem;
    letter-spacing: 0;
    line-height: 1.16
}

@media (max-width: 960px) {
    .section-identifier {
        font-size: 1.125rem
    }
}

.only-sm {
    display: none
}

@media (max-width: 960px) {
    .only-sm {
        display: unset
    }
}

@media (max-width: 960px) {
    .hide-sm {
        display: none
    }
}

@media (max-width: 960px) {
    .sm-flex {
        display: flex
    }
}

.items-center {
    align-items: center
}

.justify-between {
    justify-content: space-between
}

.sticky-contents {
    position: relative;
    width: 100%
}

.sticky-bg {
    position: sticky;
    top: 0;
    z-index: -1
}

.sticky-bg img {
    position: absolute;
    width: 100%;
    height: 100lvh;
    z-index: -1;
    object-fit: cover
}

.hero {
    position: relative;
    width: 100vw;
    height: 100vh;
    min-height: 100vh
}

@supports (-webkit-touch-callout: none) {
    .hero {
        height: -webkit-fill-available;
        min-height: -webkit-fill-available
    }
}

@supports (height: 100lvh) {
    .hero {
        height: 100lvh;
        min-height: 100lvh
    }
}

.hero__container {
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: 3.75rem 4.5rem 3.444375rem
}

@media (max-width: 960px) {
    .hero__container {
        padding: 3.5rem 1.25rem 2.963125rem
    }
}

.hero__visual {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100lvh;
    z-index: -1
}

.hero__visual-wrapper {
    width: 100%;
    height: 6.075rem;
    position: absolute;
    top: 50svh;
    transform: translateY(-50%);
    display: grid;
    place-items: center;
    overflow: hidden;
    will-change: transform;
    backface-visibility: hidden
}

@supports (-webkit-touch-callout: none) {
    .hero__visual-wrapper {
        transform: translateY(-50%) translateZ(0)
    }
}

.hero__visual-image {
    width: 10rem;
    height: 5.625rem;
    object-fit: cover;
    object-position: center;
    display: block;
    will-change: transform;
    backface-visibility: hidden
}

.hero__title h1 {
    width: 100%
}

.hero__title h1 .hero__title-kinujo-wrapper {
    overflow: hidden;
    width: 100%
}

.hero__title h1 .hero__title-kinujo-wrapper img {
    clip-path: inset(100% 0 0 0)
}

.hero__message-wrapper {
    overflow: hidden;
    width: 23.325rem;
    position: absolute;
    bottom: 3.4625rem;
    right: 4.615625rem
}

@media (max-width: 960px) {
    .hero__message-wrapper {
        width: 15.55rem;
        top: calc(100svh - 7.58125rem);
        bottom: unset;
        right: 1.375rem
    }
}

.hero__message-wrapper img {
    clip-path: inset(100% 0 0 0)
}

.gallery {
    margin-top: 11.8125rem
}

@media (max-width: 960px) {
    .gallery {
        margin-top: 8.625rem
    }
}

.gallery__container {
    width: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    padding-inline: 3.625rem 3.6875rem
}

@media (max-width: 960px) {
    .gallery__container {
        padding-inline: 1.25rem
    }
}

.gallery__section-identifier {
    font-size: 1.125rem
}

.gallery__heading {
    font-family: Zen Old Mincho, serif;
    font-size: 2.25rem;
    line-height: 1.6;
    letter-spacing: .05em;
    margin-top: 1.5rem
}

@media (max-width: 960px) {
    .gallery__heading {
        font-size: 1.625rem;
        margin-top: 1.1875rem
    }
}

.gallery .video-container ul {
    width: 100%;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 2.25rem;
    margin-top: 5.6875rem
}

@media (max-width: 960px) {
    .gallery .video-container ul {
        flex-direction: column;
        gap: 1.25rem;
        margin-top: 2.875rem
    }
}

.gallery .video-container ul li {
    flex: 0 0 calc(50% - 1.125rem);
    display: flex;
    flex-direction: column;
    gap: .75rem
}

@media (max-width: 960px) {
    .gallery .video-container ul li {
        flex: 1 1 100%;
        gap: 1rem
    }
}

.gallery .video-container ul li:last-child:nth-child(odd) {
    flex: 0 0 calc(50% - 1.125rem);
    margin: 0 auto
}

@media (max-width: 960px) {
    .gallery .video-container ul li:last-child:nth-child(odd) {
        flex: 1 1 100%;
        margin: 0
    }
}

.gallery .video-container .play-video-button {
    position: relative
}

.gallery .video-container .play-video-icon {
    width: 6.25rem;
    height: 6.25rem;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%)
}

.gallery .video-container .play-video-icon svg {
    width: 100%;
    height: 100%
}

.gallery .video-container p {
    text-align: center;
    font-size: .9375rem;
    font-weight: 500;
    line-height: 2.2;
    letter-spacing: .08em
}

@media (max-width: 960px) {
    .gallery .video-container p {
        font-size: .8125rem;
        line-height: 1
    }
}

.concept {
    padding-top: 10.3125rem;
    margin-bottom: 8.9375rem
}

@media (max-width: 960px) {
    .concept {
        padding-top: 8.625rem;
        margin-bottom: 6.8125rem
    }
}

.concept__container {
    width: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    align-self: stretch;
    padding-inline: 20.4375rem
}

@media (max-width: 1440px) {
    .concept__container {
        padding-inline: clamp(130.8px, 130.8px + (327 - 130.8) * (100vw - 960px) / (1440 - 960), 327px)
    }
}

@media (max-width: 960px) {
    .concept__container {
        padding-inline: 2.4375rem
    }
}

.concept__heading {
    font-feature-settings: "pkna" on;
    font-family: Zen Old Mincho, serif;
    font-size: 2.25rem;
    line-height: 1.6;
    letter-spacing: .05em;
    text-align: center;
    margin-top: 3.25rem
}

@media (max-width: 960px) {
    .concept__heading {
        font-size: 1.5625rem;
        margin-top: 2.3125rem
    }
}

.concept__description-wrapper {
    margin-top: 4.5rem
}

@media (max-width: 960px) {
    .concept__description-wrapper {
        margin-top: 2.3125rem
    }
}

.concept__description {
    font-feature-settings: "palt" on;
    font-family: Zen Old Mincho, serif;
    font-size: 1.1875rem;
    font-weight: 500;
    line-height: 2.1;
    letter-spacing: .05em;
    text-align: center
}

@media (max-width: 960px) {
    .concept__description {
        font-size: .9375rem
    }
}

.concept__video-container {
    position: relative;
    width: 100vw;
    height: 100lvh;
    display: grid;
    place-items: center;
    margin-top: 13.9375rem
}

@media (max-width: 960px) {
    .concept__video-container {
        margin-top: 3.75rem;
        height: auto
    }
}

.concept__video-wrapper {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 25.25rem;
    height: 33.625rem;
    will-change: width, height
}

@media (max-width: 960px) {
    .concept__video-wrapper {
        position: initial;
        width: 100%;
        height: auto;
        top: unset;
        left: unset;
        transform: unset
    }
}

.concept__video {
    width: 100%;
    height: 100%;
    object-fit: cover
}

.concept__core-values {
    width: 100%;
    display: flex;
    justify-content: space-between;
    gap: 10.8125rem;
    padding-inline: 3.625rem 6.3125rem;
    margin-top: 19rem
}

@media (max-width: 1440px) {
    .concept__core-values {
        gap: clamp(69.2px, 69.2px + (173 - 69.2) * (100vw - 960px) / (1440 - 960), 173px);
        padding-inline: clamp(23.2px, 23.2px + (58 - 23.2) * (100vw - 960px) / (1440 - 960), 58px) clamp(40.4px, 40.4px + (101 - 40.4) * (100vw - 960px) / (1440 - 960), 101px)
    }
}

@media (max-width: 960px) {
    .concept__core-values {
        flex-direction: column;
        gap: 3.5rem;
        padding-inline: 0;
        margin-top: 8.24625rem
    }
}

.concept__core-values--img-wrapper {
    width: 35.0625rem;
    padding-top: 4.375rem;
    position: sticky;
    top: 0;
    align-self: flex-start
}

@media (max-width: 960px) {
    .concept__core-values--img-wrapper {
        width: 100%;
        padding-inline: 2.625rem 0;
        padding-top: 0;
        position: inherit
    }
}

.concept__core-value-list {
    width: 34.1875rem;
    display: flex;
    flex-direction: column;
    gap: 4.5rem;
    padding-block: 14.75rem 4.0625rem
}

@media (max-width: 1440px) {
    .concept__core-value-list {
        width: clamp(437.6px, 437.6px + (547 - 437.6) * (100vw - 960px) / (1440 - 960), 547px);
        gap: clamp(57.6px, 57.6px + (72 - 57.6) * (100vw - 960px) / (1440 - 960), 72px);
        padding-block: clamp(188.8px, 188.8px + (236 - 188.8) * (100vw - 960px) / (1440 - 960), 236px) clamp(52px, 52px + (65 - 52) * (100vw - 960px) / (1440 - 960), 65px)
    }
}

@media (max-width: 960px) {
    .concept__core-value-list {
        width: 100%;
        gap: 1.5625rem;
        padding-block: 0;
        padding-inline: 2.4375rem 2.5rem
    }
}

.concept__core-value-item {
    font-family: minion-pro-display, serif;
    font-style: italic;
    letter-spacing: 0;
    line-height: 1.16
}

.concept__core-value-item-number {
    font-size: 1.3125rem
}

@media (max-width: 960px) {
    .concept__core-value-item-number {
        font-size: 1.0625rem
    }
}

.concept__core-value-item-title {
    font-size: 5.75rem;
    margin-top: 1.125rem
}

@media (max-width: 960px) {
    .concept__core-value-item-title {
        font-size: 2.625rem;
        margin-top: 1.0625rem
    }
}

.concept__core-value-item-description {
    font-family: Noto Sans JP, sans-serif;
    font-style: normal;
    font-size: 1rem;
    font-weight: 500;
    line-height: 1.6;
    letter-spacing: .08em;
    margin-top: 1.625rem
}

@media (max-width: 960px) {
    .concept__core-value-item-description {
        font-size: .875rem;
        margin-top: 1.375rem
    }
}

.footer__link,
.lineup__product-content-link {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    gap: .625rem;
    font-size: .875rem;
    font-weight: 600;
    line-height: 1;
    background: #ffffff1a;
    border-radius: 3.75rem;
    padding: 1rem 1.625rem
}

.lineup {
    overflow: hidden
}

.lineup__container {
    font-family: Zen Old Mincho, serif;
    display: flex;
    flex-direction: column;
    align-items: center;
    position: relative
}

@media (max-width: 960px) {
    .lineup__container {
        padding-inline: 1.5625rem
    }
}

.lineup__container.catalog {
    padding-inline: 12.625rem;
    padding-block: 8.3125rem
}

@media (max-width: 1440px) {
    .lineup__container.catalog {
        padding-inline: clamp(80.8px, 80.8px + (202 - 80.8) * (100vw - 960px) / (1440 - 960), 202px)
    }
}

@media (max-width: 960px) {
    .lineup__container.catalog {
        padding-block: 6.25rem 12.625rem
    }
}

.lineup__container.product-wrapper {
    position: relative;
    min-height: 100lvh;
    width: 100%;
    overflow: hidden
}

.lineup__heading {
    font-size: 2.25rem;
    font-weight: 400;
    line-height: 1.6;
    margin-top: 1.5rem
}

@media (max-width: 960px) {
    .lineup__heading {
        font-size: 1.5rem
    }
}

.lineup__list {
    display: flex;
    gap: 2rem;
    margin-top: 3.6875rem
}

@media (max-width: 960px) {
    .lineup__list {
        flex-direction: column;
        gap: 1.875rem;
        margin-top: 3.125rem
    }
}

.lineup__item {
    width: 20.25rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .625rem
}

@media (max-width: 960px) {
    .lineup__item {
        width: 17.1875rem
    }
}

.lineup__item-heading {
    font-family: minion-pro-display, serif;
    font-style: italic;
    font-size: 1.5rem;
    letter-spacing: 0;
    line-height: 1.16
}

@media (max-width: 960px) {
    .lineup__item-heading {
        font-size: 1.125rem
    }
}

.lineup__scroll-trigger {
    position: relative;
    top: 0;
    left: 0;
    width: 100%;
    height: 540lvh;
    pointer-events: none;
    z-index: -1
}

.lineup__indicator {
    position: absolute;
    top: 10lvh;
    left: 2.5rem;
    transform: rotate(90deg);
    transform-origin: left bottom;
    gap: 4.6913580247lvh;
    display: flex;
    align-self: start
}

@media (max-width: 960px) {
    .lineup__indicator {
        display: none
    }
}

.lineup__indicator-item {
    font-family: minion-pro-display, serif;
    font-style: italic;
    letter-spacing: 0;
    line-height: 1;
    font-size: .8125rem;
    width: 21.8518518519lvh;
    padding-bottom: .5rem;
    border-bottom: 1px solid #ffffff;
    opacity: .4;
    transition: opacity .3s ease
}

.lineup__indicator-item span>span {
    display: inline-block;
    margin-right: .625rem
}

@media (max-width: 960px) {
    .lineup__indicator-item span>span {
        margin-right: .625rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 394/844) {
    .lineup__indicator-item span>span {
        margin-right: .625rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 430/844) {
    .lineup__indicator-item span>span {
        margin-right: .59375rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 500/844) {
    .lineup__indicator-item span>span {
        margin-right: .575rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 570/844) {
    .lineup__indicator-item span>span {
        margin-right: .525rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 640/844) {
    .lineup__indicator-item span>span {
        margin-right: .46875rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 710/844) {
    .lineup__indicator-item span>span {
        margin-right: .41875rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 780/844) {
    .lineup__indicator-item span>span {
        margin-right: .375rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 850/844) {
    .lineup__indicator-item span>span {
        margin-right: .325rem
    }
}

.lineup__indicator-item.is-active {
    opacity: 1
}

@media (max-width: 960px) {
    .lineup__indicator-item {
        width: 6.6875rem;
        font-size: .8125rem;
        padding-bottom: .5rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 394/844) {
    .lineup__indicator-item {
        width: 6.6875rem;
        padding-bottom: .5rem;
        font-size: .8125rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 430/844) {
    .lineup__indicator-item {
        width: 6.353125rem;
        padding-bottom: .475rem;
        font-size: .4225rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 500/844) {
    .lineup__indicator-item {
        width: 6.1525rem;
        padding-bottom: .46rem;
        font-size: .4225rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 570/844) {
    .lineup__indicator-item {
        width: 5.6175rem;
        padding-bottom: .42rem;
        font-size: .4225rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 640/844) {
    .lineup__indicator-item {
        width: 5.015625rem;
        padding-bottom: .375rem;
        font-size: .4225rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 710/844) {
    .lineup__indicator-item {
        width: 4.480625rem;
        padding-bottom: .335rem;
        font-size: .4225rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 780/844) {
    .lineup__indicator-item {
        width: 4.0125rem;
        padding-bottom: .3rem;
        font-size: .4225rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 850/844) {
    .lineup__indicator-item {
        width: 3.4775rem;
        padding-bottom: .26rem;
        font-size: .4225rem
    }
}

.lineup__product {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100lvh;
    display: flex;
    align-items: center;
    opacity: 0;
    visibility: hidden
}

@media (max-width: 960px) {
    .lineup__product {
        flex-direction: column;
        height: auto;
        min-height: 100lvh;
        padding-block: 2.5rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 394/844) {
    .lineup__product {
        padding-block: 2.5rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 430/844) {
    .lineup__product {
        padding-block: 2.375rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 500/844) {
    .lineup__product {
        padding-block: 2.3rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 570/844) {
    .lineup__product {
        padding-block: 2.1rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 640/844) {
    .lineup__product {
        padding-block: 1.875rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 710/844) {
    .lineup__product {
        padding-block: 1.675rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 780/844) {
    .lineup__product {
        padding-block: 1.5rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 850/844) {
    .lineup__product {
        padding-block: 1.3rem
    }
}

.lineup__product-content {
    display: flex;
    align-items: center;
    gap: 6.375rem;
    height: 100lvh;
    margin-left: 6.3125rem
}

@media (max-width: 1440px) {
    .lineup__product-content {
        gap: clamp(40.8px, 40.8px + (102 - 40.8) * (100vw - 960px) / (1440 - 960), 102px)
    }
}

@media (max-width: 960px) {
    .lineup__product-content {
        flex-direction: column;
        gap: 1.5625rem;
        height: auto;
        margin-left: 0
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 394/844) {
    .lineup__product-content {
        gap: 1.25rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 430/844) {
    .lineup__product-content {
        gap: 1.1875rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 500/844) {
    .lineup__product-content {
        gap: 1.15rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 570/844) {
    .lineup__product-content {
        gap: 1.05rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 640/844) {
    .lineup__product-content {
        gap: .9375rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 710/844) {
    .lineup__product-content {
        gap: .8375rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 780/844) {
    .lineup__product-content {
        gap: .75rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 850/844) {
    .lineup__product-content {
        gap: .65rem
    }
}

.lineup__product-content-visual {
    width: 39.5625rem;
    height: auto
}

@media (max-width: 1440px) {
    .lineup__product-content-visual {
        width: clamp(506.4px, 506.4px + (633 - 506.4) * (100vw - 960px) / (1440 - 960), 633px)
    }
}

@media (max-width: 960px) {
    .lineup__product-content-visual {
        width: 21.4375rem;
        text-align: center;
        flex-grow: 1
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 394/844) {
    .lineup__product-content-visual {
        width: 21.4375rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 430/844) {
    .lineup__product-content-visual {
        width: 20.365625rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 500/844) {
    .lineup__product-content-visual {
        width: 19.7225rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 570/844) {
    .lineup__product-content-visual {
        width: 18.0075rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 640/844) {
    .lineup__product-content-visual {
        width: 16.078125rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 710/844) {
    .lineup__product-content-visual {
        width: 14.363125rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 780/844) {
    .lineup__product-content-visual {
        width: 12.8625rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 850/844) {
    .lineup__product-content-visual {
        width: 11.1475rem
    }
}

@media (max-width: 960px) {
    .lineup__product-content-visual img {
        aspect-ratio: 1029/900;
        width: auto;
        max-height: 40lvh
    }
}

.lineup__product-content-text {
    width: 27.875rem
}

@media (max-width: 1440px) {
    .lineup__product-content-text {
        width: clamp(356.8px, 356.8px + (446 - 356.8) * (100vw - 960px) / (1440 - 960), 446px)
    }
}

@media (max-width: 960px) {
    .lineup__product-content-text {
        width: 21.4375rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 394/844) {
    .lineup__product-content-text {
        width: 21.4375rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 430/844) {
    .lineup__product-content-text {
        width: 20.365625rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 500/844) {
    .lineup__product-content-text {
        width: 19.7225rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 570/844) {
    .lineup__product-content-text {
        width: 18.0075rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 640/844) {
    .lineup__product-content-text {
        width: 16.078125rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 710/844) {
    .lineup__product-content-text {
        width: 14.988125rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 780/844) {
    .lineup__product-content-text {
        width: 13.4875rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 850/844) {
    .lineup__product-content-text {
        width: 11.7725rem
    }
}

.lineup__product-heading {
    display: flex;
    flex-direction: column;
    gap: .625rem;
    align-items: start
}

@media (max-width: 960px) {
    .lineup__product-heading {
        gap: .25rem
    }
}

.lineup__product-heading .en {
    font-family: minion-pro-display, serif;
    font-style: italic;
    font-weight: 400;
    line-height: 1.2;
    letter-spacing: 0;
    font-size: 5rem
}

@media (max-width: 960px) {
    .lineup__product-heading .en {
        font-size: 2.5rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 394/844) {
    .lineup__product-heading .en {
        font-size: 2.5rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 430/844) {
    .lineup__product-heading .en {
        font-size: 2.375rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 500/844) {
    .lineup__product-heading .en {
        font-size: 2.3rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 570/844) {
    .lineup__product-heading .en {
        font-size: 2.1rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 640/844) {
    .lineup__product-heading .en {
        font-size: 1.875rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 710/844) {
    .lineup__product-heading .en {
        font-size: 1.675rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 780/844) {
    .lineup__product-heading .en {
        font-size: 1.5rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 850/844) {
    .lineup__product-heading .en {
        font-size: 1.3rem
    }
}

.lineup__product-heading .ja {
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.45;
    letter-spacing: .04em
}

@media (max-width: 960px) {
    .lineup__product-heading .ja {
        font-size: .75rem
    }
}

@media (max-width: 960px) and (max-width: 960px) {
    .lineup__product-heading .ja {
        font-size: .75rem
    }
}

@media (max-width: 960px) and (max-width: 960px) and (min-aspect-ratio: 394/844) {
    .lineup__product-heading .ja {
        font-size: .75rem
    }
}

@media (max-width: 960px) and (max-width: 960px) and (min-aspect-ratio: 430/844) {
    .lineup__product-heading .ja {
        font-size: .7125rem
    }
}

@media (max-width: 960px) and (max-width: 960px) and (min-aspect-ratio: 500/844) {
    .lineup__product-heading .ja {
        font-size: .69rem
    }
}

@media (max-width: 960px) and (max-width: 960px) and (min-aspect-ratio: 570/844) {
    .lineup__product-heading .ja {
        font-size: .63rem
    }
}

@media (max-width: 960px) and (max-width: 960px) and (min-aspect-ratio: 640/844) {
    .lineup__product-heading .ja {
        font-size: .5625rem
    }
}

@media (max-width: 960px) and (max-width: 960px) and (min-aspect-ratio: 710/844) {
    .lineup__product-heading .ja {
        font-size: .5025rem
    }
}

@media (max-width: 960px) and (max-width: 960px) and (min-aspect-ratio: 780/844) {
    .lineup__product-heading .ja {
        font-size: .45rem
    }
}

@media (max-width: 960px) and (max-width: 960px) and (min-aspect-ratio: 850/844) {
    .lineup__product-heading .ja {
        font-size: .39rem
    }
}

.lineup__product-description {
    line-height: 1.45;
    letter-spacing: .04em;
    margin-top: 2.5rem
}

@media (max-width: 960px) {
    .lineup__product-description {
        margin-top: .875rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 394/844) {
    .lineup__product-description {
        margin-top: .875rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 430/844) {
    .lineup__product-description {
        margin-top: .83125rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 500/844) {
    .lineup__product-description {
        margin-top: .805rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 570/844) {
    .lineup__product-description {
        margin-top: .735rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 640/844) {
    .lineup__product-description {
        margin-top: .65625rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 710/844) {
    .lineup__product-description {
        margin-top: .58625rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 780/844) {
    .lineup__product-description {
        margin-top: .525rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 850/844) {
    .lineup__product-description {
        margin-top: .455rem
    }
}

.lineup__product-description-lead {
    font-size: 1.5rem
}

@media (max-width: 1440px) {
    .lineup__product-description-lead {
        font-size: clamp(19.2px, 19.2px + (24 - 19.2) * (100vw - 960px) / (1440 - 960), 24px)
    }
}

@media (max-width: 960px) {
    .lineup__product-description-lead {
        font-size: 1.0625rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 394/844) {
    .lineup__product-description-lead {
        font-size: 1.0625rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 430/844) {
    .lineup__product-description-lead {
        font-size: 1.009375rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 500/844) {
    .lineup__product-description-lead {
        font-size: .9775rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 570/844) {
    .lineup__product-description-lead {
        font-size: .8925rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 640/844) {
    .lineup__product-description-lead {
        font-size: .796875rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 710/844) {
    .lineup__product-description-lead {
        font-size: .711875rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 780/844) {
    .lineup__product-description-lead {
        font-size: .6375rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 850/844) {
    .lineup__product-description-lead {
        font-size: .5525rem
    }
}

.lineup__product-description-image {
    width: 9.75rem
}

@media (max-width: 1440px) {
    .lineup__product-description-image {
        width: clamp(124.8px, 124.8px + (156 - 124.8) * (100vw - 960px) / (1440 - 960), 156px)
    }
}

@media (max-width: 960px) {
    .lineup__product-description-image {
        width: 7.31875rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 394/844) {
    .lineup__product-description-image {
        width: 7.31875rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 430/844) {
    .lineup__product-description-image {
        width: 6.9528125rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 500/844) {
    .lineup__product-description-image {
        width: 6.73325rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 570/844) {
    .lineup__product-description-image {
        width: 6.14775rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 640/844) {
    .lineup__product-description-image {
        width: 5.4890625rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 710/844) {
    .lineup__product-description-image {
        width: 4.9035625rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 780/844) {
    .lineup__product-description-image {
        width: 4.39125rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 850/844) {
    .lineup__product-description-image {
        width: 3.80575rem
    }
}

.lineup__product-description-content {
    margin-top: 1.25rem
}

@media (max-width: 960px) {
    .lineup__product-description-content {
        margin-top: .625rem
    }
}

.lineup__product-description-content-detail {
    font-size: 1.125rem;
    font-weight: 400;
    display: flex;
    gap: .6875rem
}

@media (max-width: 1440px) {
    .lineup__product-description-content-detail {
        font-size: clamp(14.4px, 14.4px + (18 - 14.4) * (100vw - 960px) / (1440 - 960), 18px)
    }
}

@media (max-width: 960px) {
    .lineup__product-description-content-detail {
        font-size: .875rem;
        gap: .25rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 394/844) {
    .lineup__product-description-content-detail {
        font-size: .875rem;
        gap: .25rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 430/844) {
    .lineup__product-description-content-detail {
        font-size: .83125rem;
        gap: .2375rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 500/844) {
    .lineup__product-description-content-detail {
        font-size: .805rem;
        gap: .23rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 570/844) {
    .lineup__product-description-content-detail {
        font-size: .735rem;
        gap: .21rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 640/844) {
    .lineup__product-description-content-detail {
        font-size: .65625rem;
        gap: .1875rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 710/844) {
    .lineup__product-description-content-detail {
        font-size: .58625rem;
        gap: .1675rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 780/844) {
    .lineup__product-description-content-detail {
        font-size: .525rem;
        gap: .15rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 850/844) {
    .lineup__product-description-content-detail {
        font-size: .455rem;
        gap: .13rem
    }
}

.lineup__product-description-content-detail sup {
    vertical-align: top;
    font-size: .6em;
    position: relative;
    left: -.8em
}

.lineup__product-description-content-note {
    font-size: .75rem;
    margin-top: .5rem
}

@media (max-width: 960px) {
    .lineup__product-description-content-note {
        font-size: .625rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 394/844) {
    .lineup__product-description-content-note {
        font-size: .625rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 430/844) {
    .lineup__product-description-content-note {
        font-size: .59375rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 500/844) {
    .lineup__product-description-content-note {
        font-size: .575rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 570/844) {
    .lineup__product-description-content-note {
        font-size: .525rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 640/844) {
    .lineup__product-description-content-note {
        font-size: .46875rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 710/844) {
    .lineup__product-description-content-note {
        font-size: .41875rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 780/844) {
    .lineup__product-description-content-note {
        font-size: .375rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 850/844) {
    .lineup__product-description-content-note {
        font-size: .325rem
    }
}

.lineup__product-content-features {
    display: flex;
    gap: 1.25rem;
    margin-top: 2rem
}

@media (max-width: 960px) {
    .lineup__product-content-features {
        width: 12.375rem;
        gap: .75rem;
        margin-top: .875rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 394/844) {
    .lineup__product-content-features {
        width: 12.375rem;
        gap: .75rem;
        margin-top: .875rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 430/844) {
    .lineup__product-content-features {
        width: 11.75625rem;
        gap: .7125rem;
        margin-top: .83125rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 500/844) {
    .lineup__product-content-features {
        width: 11.385rem;
        gap: .69rem;
        margin-top: .805rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 570/844) {
    .lineup__product-content-features {
        width: 10.395rem;
        gap: .63rem;
        margin-top: .735rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 640/844) {
    .lineup__product-content-features {
        width: 9.28125rem;
        gap: .5625rem;
        margin-top: .65625rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 710/844) {
    .lineup__product-content-features {
        width: 8.29125rem;
        gap: .5025rem;
        margin-top: .58625rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 780/844) {
    .lineup__product-content-features {
        width: 7.425rem;
        gap: .45rem;
        margin-top: .525rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 850/844) {
    .lineup__product-content-features {
        width: 6.435rem;
        gap: .39rem;
        margin-top: .455rem
    }
}

.lineup__product-content-features .item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .6875rem
}

@media (max-width: 1440px) {
    .lineup__product-content-features .item {
        gap: clamp(8.8px, 8.8px + (11 - 8.8) * (100vw - 960px) / (1440 - 960), 11px)
    }
}

@media (max-width: 960px) {
    .lineup__product-content-features .item {
        gap: .3125rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 394/844) {
    .lineup__product-content-features .item {
        gap: .3125rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 430/844) {
    .lineup__product-content-features .item {
        gap: .296875rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 500/844) {
    .lineup__product-content-features .item {
        gap: .2875rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 570/844) {
    .lineup__product-content-features .item {
        gap: .2625rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 640/844) {
    .lineup__product-content-features .item {
        gap: .234375rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 710/844) {
    .lineup__product-content-features .item {
        gap: .209375rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 780/844) {
    .lineup__product-content-features .item {
        gap: .1875rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 850/844) {
    .lineup__product-content-features .item {
        gap: .1625rem
    }
}

.lineup__product-content-features .item p {
    font-family: Noto Sans JP, sans-serif;
    font-size: .75rem;
    letter-spacing: .1em;
    font-weight: 500;
    line-height: 1.45;
    text-align: center
}

@media (max-width: 1440px) {
    .lineup__product-content-features .item p {
        font-size: clamp(9.6px, 9.6px + (12 - 9.6) * (100vw - 960px) / (1440 - 960), 12px)
    }
}

@media (max-width: 960px) {
    .lineup__product-content-features .item p {
        font-size: .625rem;
        letter-spacing: 0
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 394/844) {
    .lineup__product-content-features .item p {
        font-size: .625rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 430/844) {
    .lineup__product-content-features .item p {
        font-size: .59375rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 500/844) {
    .lineup__product-content-features .item p {
        font-size: .575rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 570/844) {
    .lineup__product-content-features .item p {
        font-size: .525rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 640/844) {
    .lineup__product-content-features .item p {
        font-size: .46875rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 710/844) {
    .lineup__product-content-features .item p {
        font-size: .41875rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 780/844) {
    .lineup__product-content-features .item p {
        font-size: .375rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 850/844) {
    .lineup__product-content-features .item p {
        font-size: .325rem
    }
}

.lineup__product-content-features img {
    width: 8.4375rem;
    border-radius: .375rem
}

@media (max-width: 960px) {
    .lineup__product-content-features img {
        width: 3.625rem
    }
}

.lineup__product-content-link {
    font-family: Noto Sans JP, sans-serif;
    margin-top: 1.875rem
}

@media (max-width: 960px) {
    .lineup__product-content-link {
        font-size: .75rem;
        margin-top: 0;
        width: 5rem;
        height: 5rem;
        text-align: center;
        padding: 1em
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 394/844) {
    .lineup__product-content-link {
        font-size: .75rem;
        width: 5rem;
        height: 5rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 430/844) {
    .lineup__product-content-link {
        font-size: .7125rem;
        width: 4.75rem;
        height: 4.75rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 500/844) {
    .lineup__product-content-link {
        font-size: .69rem;
        width: 4.6rem;
        height: 4.6rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 570/844) {
    .lineup__product-content-link {
        font-size: .63rem;
        width: 4.2rem;
        height: 4.2rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 640/844) {
    .lineup__product-content-link {
        font-size: .5625rem;
        width: 3.75rem;
        height: 3.75rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 710/844) {
    .lineup__product-content-link {
        font-size: .5025rem;
        width: 3.35rem;
        height: 3.35rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 780/844) {
    .lineup__product-content-link {
        font-size: .45rem;
        width: 3rem;
        height: 3rem
    }
}

@media (max-width: 960px) and (min-aspect-ratio: 850/844) {
    .lineup__product-content-link {
        font-size: .39rem;
        width: 2.6rem;
        height: 2.6rem
    }
}

.lineup__animation-wrapper {
    overflow: hidden
}

.lineup__animation-wrapper>* {
    clip-path: inset(100% 0 0 0)
}

.philosophy {
    width: 100%;
    display: flex;
    flex-direction: row-reverse;
    justify-content: space-between;
    gap: 6.875rem;
    padding-inline: 7.1875rem 3.625rem;
    margin-top: 9.875rem
}

@media (max-width: 1440px) {
    .philosophy {
        gap: clamp(44px, 44px + (110 - 44) * (100vw - 960px) / (1440 - 960), 110px);
        padding-inline: clamp(46px, 46px + (115 - 46) * (100vw - 960px) / (1440 - 960), 115px) clamp(23.2px, 23.2px + (58 - 23.2) * (100vw - 960px) / (1440 - 960), 58px)
    }
}

@media (max-width: 960px) {
    .philosophy {
        flex-direction: column;
        gap: 2.5625rem;
        padding-inline: 0;
        margin-top: 5.6875rem
    }
}

.philosophy--img-wrapper {
    width: 42.25rem;
    padding-top: 3.75rem;
    position: sticky;
    top: 0;
    align-self: flex-start
}

@media (max-width: 1440px) {
    .philosophy--img-wrapper {
        width: clamp(473.2px, 473.2px + (676 - 473.2) * (100vw - 960px) / (1440 - 960), 676px)
    }
}

@media (max-width: 960px) {
    .philosophy--img-wrapper {
        width: 100%;
        padding-inline: 0 2.5rem;
        padding-top: 0;
        position: inherit
    }
}

.philosophy-content {
    font-family: Zen Old Mincho, serif;
    width: 30.25rem;
    padding-block: 18.5rem 0
}

@media (max-width: 1440px) {
    .philosophy-content {
        width: clamp(387.2px, 387.2px + (484 - 387.2) * (100vw - 960px) / (1440 - 960), 484px);
        padding-block: clamp(188.8px, 188.8px + (236 - 188.8) * (100vw - 960px) / (1440 - 960), 236px) 0
    }
}

@media (max-width: 960px) {
    .philosophy-content {
        width: 100%;
        padding-inline: 2.4375rem;
        padding-block: 0
    }
}

.philosophy-heading {
    font-size: 2.75rem;
    line-height: 1.6
}

@media (max-width: 1440px) {
    .philosophy-heading {
        font-size: clamp(30.8px, 30.8px + (44 - 30.8) * (100vw - 960px) / (1440 - 960), 44px)
    }
}

@media (max-width: 960px) {
    .philosophy-heading {
        font-size: 2.25rem
    }
}

.philosophy-description {
    font-size: 1.1875rem;
    line-height: 2.1;
    letter-spacing: .05em;
    margin-top: 4.5rem
}

@media (max-width: 1440px) {
    .philosophy-description {
        font-size: clamp(15.2px, 15.2px + (19 - 15.2) * (100vw - 960px) / (1440 - 960), 19px);
        margin-top: clamp(57.6px, 57.6px + (72 - 57.6) * (100vw - 960px) / (1440 - 960), 72px)
    }
}

@media (max-width: 960px) {
    .philosophy-description {
        width: 100%;
        font-size: .9375rem;
        margin-top: 2.3125rem
    }
}

@media (max-width: 960px) {
    .philosophy-description sup {
        display: inline-block;
        margin-left: -.1em;
        font-size: .98em
    }
}

.footer {
    padding-block: 11.8125rem 2.75rem;
    font-family: Inter Tight, sans-serif;
    font-weight: 600
}

@media (max-width: 960px) {
    .footer {
        padding-block: 8.625rem 2.51125rem
    }
}

.footer__container {
    width: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center
}

@media (max-width: 960px) {
    .footer__container {
        padding-inline: 2.8125rem
    }
}

.footer__title-kinujo-wrapper {
    width: 27.4375rem;
    height: auto
}

@media (max-width: 960px) {
    .footer__title-kinujo-wrapper {
        width: 100%
    }
}

.footer__message-wrapper {
    width: 21.4925rem;
    margin-top: 1.705625rem
}

@media (max-width: 960px) {
    .footer__message-wrapper {
        width: 18.05375rem;
        margin-top: 1.175625rem
    }
}

.footer__link {
    margin-top: 4.75375rem
}

@media (max-width: 960px) {
    .footer__link {
        text-transform: uppercase;
        font-size: .8125rem;
        margin-top: 3.283125rem
    }
}

.footer__copyright {
    font-size: .75rem;
    line-height: 1.4;
    margin-top: 3rem
}

@media (max-width: 960px) {
    .footer__copyright {
        font-size: .625rem;
        line-height: .75;
        margin-top: 1.92rem
    }
}

.play-video-button {
    background: none;
    border: none;
    padding: 0;
    cursor: pointer
}

.play-video-button img {
    display: block
}

.video-modal {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: #000000d9;
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 1000;
    -webkit-backdrop-filter: blur(3px);
    backdrop-filter: blur(3px);
    isolation: isolate
}

.video-modal-inner {
    background-color: #000;
    padding: 15px;
    border-radius: 8px;
    position: relative;
    max-width: 90%;
    max-height: 90%;
    box-shadow: 0 4px 15px #00000080;
    width: 800px;
    z-index: 9999
}

.video-player-wrapper {
    position: relative;
    padding-bottom: 56.25%;
    height: 0;
    overflow: hidden;
    background-color: #000;
    border-radius: 4px;
    box-shadow: 0 0 0 1px #ffffff1a
}

.video-player-wrapper iframe,
.video-player-wrapper video {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: 0;
    border-radius: 4px
}

.close-modal-button {
    position: absolute;
    top: -20px;
    right: -20px;
    color: #fff;
    border: none;
    border-radius: 50%;
    width: 40px;
    height: 40px;
    font-size: 24px;
    line-height: 38px;
    text-align: center;
    cursor: pointer;
    transition: opacity .2s;
    z-index: 10;
    box-shadow: 0 0 10px #00000080
}

.close-modal-button:hover {
    opacity: .75
}

[x-cloak] {
    display: none
}

.visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    border: 0
}

.loading-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100dvh;
    background-color: #31261d;
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: -1;
    opacity: 1;
    transition: opacity .5s ease-in-out
}

.loading-overlay.is-hidden {
    opacity: 0;
    pointer-events: none
}

.loading-logo {
    width: 9.375rem;
    height: auto;
    position: relative;
    mask: linear-gradient(90deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0) 25%, rgba(255, 255, 255, .1) 35%, rgba(255, 255, 255, .5) 42%, #ffffff 46%, #ffffff 54%, rgba(255, 255, 255, .5) 58%, rgba(255, 255, 255, .1) 65%, rgba(255, 255, 255, 0) 75%, rgba(255, 255, 255, 0) 100%);
    -webkit-mask-size: 600% 100%;
    mask-size: 600% 100%;
    animation: gradientMask 6s linear infinite
}

@keyframes gradientMask {
    0% {
        -webkit-mask-position: -30% 0;
        mask-position: -30% 0;
        -webkit-mask-size: 600% 100%;
        mask-size: 600% 100%;
        opacity: 1
    }

    35% {
        -webkit-mask-position: -110% 0;
        mask-position: -110% 0;
        -webkit-mask-size: 600% 100%;
        mask-size: 600% 100%;
        opacity: 1
    }

    36% {
        -webkit-mask-position: -110% 0;
        mask-position: -110% 0;
        -webkit-mask-size: 600% 100%;
        mask-size: 600% 100%;
        opacity: 0
    }

    37% {
        -webkit-mask-position: -150% 0;
        mask-position: -150% 0;
        -webkit-mask-size: 900% 100%;
        mask-size: 900% 100%;
        opacity: 0
    }

    48% {
        -webkit-mask-position: -170% 0;
        mask-position: -170% 0;
        -webkit-mask-size: 1200% 100%;
        mask-size: 1200% 100%;
        opacity: 1
    }

    75% {
        -webkit-mask-position: -170% 0;
        mask-position: -170% 0;
        -webkit-mask-size: 1200% 100%;
        mask-size: 1200% 100%;
        opacity: 1
    }

    85% {
        -webkit-mask-position: -170% 0;
        mask-position: -170% 0;
        -webkit-mask-size: 1200% 100%;
        mask-size: 1200% 100%;
        opacity: .3
    }

    90% {
        -webkit-mask-position: -170% 0;
        mask-position: -170% 0;
        -webkit-mask-size: 1200% 100%;
        mask-size: 1200% 100%;
        opacity: 0
    }

    to {
        -webkit-mask-position: -170% 0;
        mask-position: -170% 0;
        -webkit-mask-size: 1200% 100%;
        mask-size: 1200% 100%;
        opacity: 0
    }
}

.loading-active {
    overflow: hidden !important;
    height: 100lvh !important;
    position: fixed !important;
    width: 100% !important;
    top: 0 !important;
    left: 0 !important;
    -webkit-overflow-scrolling: auto !important;
    overscroll-behavior: none !important
}

@supports (-webkit-touch-callout: none) {
    .loading-active {
        -webkit-overflow-scrolling: auto !important;
        transform: translateZ(0) !important
    }
}

/*20250725*/
.header__lang {
    position: absolute;


    display: flex;

    align-items: center;

    flex-direction: column;
    right: 3.4375rem;
    top: 0;
    color: #70453a;

}

.header__nav__main-item,
.header__lang__current {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    gap: 0.45em;
    white-space: nowrap;
    margin: 1.25rem 0.53125rem;
}

.header__lang .icon {
    display: inline-block;
    color: #70453a;
    height: 1em;
    width: 1em;
    line-height: 1;
    -ms-flex-negative: 0;
    flex-shrink: 0;
    max-width: initial;
}

.header__lang__current .icon-chevron_down {
    width: 0.5625rem;
}

.icon use {
    fill: #70453a;
    stroke: #70453a;
}

.header__lang__options {
    position: absolute;
    top: 100%;
    z-index: 100;
    background: rgba(245, 243, 235, 0.9019607843);
    -webkit-backdrop-filter: blur(12.5px);
    backdrop-filter: blur(12.5px);
    padding: 0.625rem 1.25rem;
    font-size: 0.75rem;
    font-family: Noto Sans JP, sans-serif;
    line-height: 1.8;

    display: flex;

    flex-direction: column;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}

.header__lang__options a {
    display: block;
    text-decoration: none;
    padding: 5px 10px 6px;
    line-height: 1;
    white-space: nowrap;
}

.open-pc .header__lang__options {
    opacity: 1;
    visibility: visible;
    pointer-events: all;
}
.open-sp .header__lang__options {
    opacity: 1;
    visibility: visible;
    pointer-events: all;
}

@media (max-width: 960px) {
    .header__lang {

        right: 1.25rem;

    }


}