@charset "UTF-8";

.feature__container {
    font-family: "Yu Gothic Pr6N M", "Yu Gothic", "游ゴシック体", "YuGothic", sans-serif;
    font-weight: 500;
    letter-spacing: .04em;
    line-height: 1.8;
}

/* 左のコンテンツ */
.left__content {
    position: sticky;
    top: 8rem;
    flex-shrink: 0;
    left: 0;
    height: calc(100vh - 8rem);
    height: calc(100dvh - 8rem);
    width: 55%;
    overflow: hidden;
    container-type: inline-size;
    container-name: leftside;
}

.left__content .content__inner {
    max-width: 470px;
}

/* 右のコンテンツ */
.right__content {
    width: 45%;
}

/* MV */
.section-mv {
    background: url(../img/story_mv_pc.webp)no-repeat;
    background-size: cover;
    background-position: right top;
    width: 100%;
    height: 100%;
}

.mv__inner {
    position: relative;
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
}

.mv__title {
    color: #fff;
}

.mv__title-top {
    position: absolute;
    top: 2cqw;
    left: 0;
    max-width: 80cqw;
    width: 100%;
    padding: 0 3cqw;
    font-family: "futura-pt", "Futura", "Avenir Next", "Lato", sans-serif;
    font-weight: normal;
}

.mv__title-bottom {
    position: absolute;
    bottom: 3cqw;
    left: 0;
    padding: 0 2cqw;
}

.title-name {
    display: flex;
    align-items: center;
    font-size: 3.4cqw;
}

.title-name span:first-of-type {
    position: relative;
}

.title-name span:first-of-type::after {
    position: absolute;
    content: "";
    top: 0;
    bottom: 0;
    margin: auto 1.5cqw;
    background: #ded6bf;
    width: 0.15rem;
    height: 2.5cqw;
}

.title-name span:last-of-type {
    margin-left: 1.5cqw;
    padding-left: 1.5cqw;
    font-size: 3.3cqw;
}

.title-page {
    display: flex;
    flex-direction: column;
    margin-top: 0.3cqw;
    font-size: 3.1cqw;
}

.page--title,
.page--num {
    line-height: 1;
    letter-spacing: 0.06em;
}

.page--num {
    margin-top: 0.5cqw;
    letter-spacing: 0.02em;
}

.page--num span:first-of-type {
    position: relative;
}

.page--num span:first-of-type::after {
    position: absolute;
    content: "";
    background: url(../img/page_arrow.webp)no-repeat;
    background-size: contain;
    width: 1.5cqw;
    height: 2.2cqw;
    top: 50%;
    right: -1.8cqw;
    transform: translateY(-50%);
    /*opacity: 0;
    transition: all 1.5s ease;
    transition-delay: 2s;*/
}

/*.fadein-late.is-inview .page--num span:first-of-type::after {
    opacity: 1;
}*/

.page--num span:last-of-type {
    margin-left: 2.2cqw;
}

.title-main {
    width: 85cqw;
    filter: drop-shadow(0 0 5px rgba(88, 78, 54, 0.5));
    mix-blend-mode: multiply;
}

.title-main span {
    display: block;
    max-width: 100%;
}

.title-main span:first-of-type {
    width: 49.5cqw;
}

.title-main span:last-of-type {
    width: 83cqw;
    margin-top: 1.6cqw;
}

.title-sub {
    width: 90cqw;
    margin-top: 0.6cqw;
    font-family: "Yu Mincho", "YuMincho", serif;
    font-size: 2.53cqw;
    filter: drop-shadow(0 0 5px rgba(88, 78, 54, 0.5));
    mix-blend-mode: multiply;
}

/* テキスト */
.section-lead {
    position: relative;
    font-family: "Yu Mincho", "YuMincho", serif;
    overflow: hidden;
}

.video-background {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
    display: block;
    object-fit: cover;
}

.video-background video {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.video-background::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.lead__inner {
    position: relative;
    z-index: 2;
    width: 49.5rem;
    max-width: 100%;
    margin: 0 auto;
    padding: 12rem 2rem;
}

.lead__title {
    margin-left: -1.4rem;
    font-size: 2.4rem;
}

.section-lead__lead {
    margin: 5rem 0 0;
    font-size: 1.8rem;
    line-height: 240%;
}

/* STORY */
.section-story {
    color: #fff;
}

.story__inner {
    padding: 0 0 10rem;
}

.story__bg--lt {
    background: #a99d87;
}

.story__bg--dk {
    background: #878278;
}

.story__content {
    position: relative;
    padding-top: 15rem;
    overflow: hidden;
}

.story__title {
    width: calc(85% - 15px);
    max-width: 100%;
    margin: 0 auto 3rem;
    font-size: 3.4rem;
    font-family: "Yu Mincho", "YuMincho", serif;
    font-weight: bold;
    line-height: 1.5;
    letter-spacing: .01em;
}

.story__title span {
    display:block;
}

.section__story--2 .story__title span {
    margin-left: -1.8rem;
}

.story__num {
    position: absolute;
    top: -2.4rem;
    left: -0.8rem;
    font-family: "din-2014", sans-serif;
    line-height: 1;
}

.story__num--l {
    position: relative;
    font-size: 13rem;
}


.story__num--l::after {
    position: absolute;
    content: "";
    background: url(../img/story_num_slash.webp)no-repeat;
    background-size: contain;
    width: 2.8rem;
    height: 5.5rem;
    right: -3.2rem;
    bottom: 3rem;
}

.section__story--1 .story__num--l::after {
    right: -2.2rem;
}

.story__num--s {
    margin-left: 3.4rem;
    color: #e2d8af;
    font-size: 5.4rem;
    opacity: .7;
}

.section__story--1 .story__num--s {
    margin-left: 2.4rem;
}

.story__label {
    position: absolute;
    top: 3.8rem;
    right: -2.4rem;
    color: #e2d8af;
    font-size: 2.8rem;
    font-family: "din-2014", sans-serif;
    transform: rotate(90deg);
}

.section__story--1 .story__label {
    top: 3.8rem;
}

.section__story--2 .story__label {
    top: 5.4rem;
}

.section__story--3 .story__label {
    top: 4.3rem;
}

.section__story--4 .story__label {
    top: 5rem;
}

.section__story--5 .story__label {
    top: 3.7rem;
}

.story__desc {
    width: calc(85% - 15px);
    max-width: 100%;
    margin: 0 auto;
    font-size: 1.8rem;
    font-family: "Yu Mincho", "YuMincho", serif;
}

.story__desc--1 {
    margin-bottom: 7rem;
}

.story__desc--2 {
    margin-top: 6rem;
}

.section__story--1 .story__gallery figure:first-of-type {
    position: relative;
    width: 63%;
    z-index: 1;
}

.section__story--1 .story__gallery figure:last-of-type {
    width: 44.5%;
    margin: -39% 0 0 auto;
}

.section__story--5 .story__gallery {
    display: flex;
    gap: 4rem;
    width: calc(75% - 15px);
    margin: 6rem auto 0;
}

.section__story--5 .story__gallery figure {
    text-align: center;
}

.section__story--5 .story__gallery figcaption {
    display: inline-block;
    margin-bottom: 3rem;
    padding: 0.6rem 2.3rem;
    font-family: "Yu Mincho", "YuMincho", serif;
    font-size: 2.3rem;
    line-height: 1;
    border: 1px solid;
    border-radius: 50px;
}

/* PRODUCT */
.section-product {
    color: #1b1b1b;
}
.product__inner {
    padding: 8.5rem 0;
    background: #ece8e2;
}

.product__title {
    position: relative;
    margin: 0 auto 6.2rem;
    font-family: "Yu Mincho", "YuMincho", serif;
    font-size: 3rem;
    text-align: center;
}

.product__title::after {
    position: absolute;
    content: "";
    background: #a7947c;
    width: 3.4rem;
    height: 0.2rem;
    right: 0;
    left: 0;
    bottom: -1.7rem;
    margin: 0 auto;
}

.product__item {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 4rem;
}

.product__img {
    width: 17rem;
}

.product__name {
    font-family: "Yu Mincho", "YuMincho", serif;
    font-size: 3rem;
    line-height: 1.2;
}

.product__name-en {
    display: block;
    margin: 2.2rem 0 0;
    font-family: "futura-pt", "Futura", "Avenir Next", "Lato", sans-serif;
    font-weight: lighter;
    font-size: 2.6rem;
    letter-spacing: 0.06em;
}

.product__color {
    display: flex;
    margin-top: 2.2rem;
    gap: 1rem;
}

.product__circle {
    display: block;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 50%;
    border: 1px solid #8e8e8e;
}

.product__circle--white {
    background: #fff;
}

.product__circle--black {
    background: #1b1b1b;
}

.product__circle--neutralbeige {
    background: #d5d2b8;
}

.product__circle--naturalbeige {
    background: #BE9E76;
}

.product__circle--greige {
    background: #ada398;
}

.product__circle--olivestone {
    background: #ada398;
}

.product__circle--ivory {
    background: #ead7c9;
}

.product__circle--brown {
    background: #7e5947;
}

.product__circle--charcoalgray {
    background: #53524E;
}

.product__circle--grayishnavy {
    background: #474354;
}

.product__circle--olivestone {
    background: #7E6E46;
}

.product__item-btn {
    margin: 2.8rem 0 0;
}

.product__item-btn a {
    border: 1px solid #1b1b1b;
    position: relative;
    display: flex;
    justify-content: space-around;
    align-items: center;
    max-width: 11.8rem;
    padding: 0.7rem 1rem;
    color: #1b1b1b;
    font-size: 2.4rem;
    font-family: "futura-pt", "Futura", "Avenir Next", "Lato", sans-serif;
    font-weight: normal;
    letter-spacing: 0.1em;
    line-height: 1;
    text-decoration: none;
    transition: 0.3s ease-in-out;
}

.product__item-btn a:hover {
    border: 1px solid #1b1b1b;
    background: #1b1b1b;
    color: #fff;
    transition: 0.3s ease-in-out;
}

.product__list-btn {
    width: 30rem;
    margin: 12rem auto 0;
}

.product__list-btn a {
    position: relative;
    color: #1b1b1b;
    font-size: 2.4rem;
    font-family: "Yu Mincho", "YuMincho", serif;
    text-align: center;
    letter-spacing: 0.1em;
    text-decoration: none;
    transition: 0.3s ease-in-out;
}

.product__list-btn a::after {
    position: absolute;
    content: "";
    background: #1b1b1b;
    width: auto;
    height: 0.1rem;
    right: 0;
    left: 0;
    bottom: -0.4rem;
    margin: 0 auto;
}

.product__cap {
    margin: 4rem auto 0;
    padding: 0 2rem 0 3.2rem;
    width: fit-content;
    font-family: "Yu Mincho", "YuMincho", serif;
    font-size: 1.5rem;
    letter-spacing: 0;
}

/* Swiper */
.swiper-button-prev,
.swiper-button-next {
    position: absolute;
    width: 4rem;
    height: 4rem;
    margin: auto;
    top: 0;
    bottom: 0;
    overflow: hidden;
    z-index: 100;
}

.swiper-button-prev {
    left: 2rem;
}

.swiper-button-next {
    right: 2rem;
}

.swiper-button-prev::before,
.swiper-button-prev::after {
    left: 0;
}

.swiper-button-next::before,
.swiper-button-next::after {
    right: 0;
}

.swiper-button-prev::before,
.swiper-button-next::before {
    transform: rotate(-40deg);
}

.swiper-button-prev::after,
.swiper-button-next::after {
    transform: rotate(40deg);
}

.swiper-button-prev::before,
.swiper-button-prev::after,
.swiper-button-next::before,
.swiper-button-next::after {
    position: absolute;
    content: "";
    width: 0.1rem;
    height: 4rem;
    background: #171716;
    top: 0;
    bottom: 0px;
}

/* アニメーション */
.char {
    display: inline-block;
    opacity: 0;
    /* 動きはごくわずか（2px）。カタカタ感を消します */
    transform: translateY(3px); 
    /* 1.5sかけて優雅にフェードイン */
    transition: 
        opacity 2.0s cubic-bezier(0.22, 1, 0.36, 1), 
        transform 2.0s cubic-bezier(0.22, 1, 0.36, 1);
    will-change: transform, opacity;
}

.is-visible .char {
    opacity: 1;
    transform: translateY(0);
    filter: blur(0);
}

.js-fade-up {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 1.2s ease-out, transform 1.2s ease-out;
  will-change: opacity, transform;
}

/* 画面に入った時に付与するクラス */
.js-fade-up.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.u-delay-02 { transition-delay: 0.2s; }
.u-delay-03 { transition-delay: 0.3s; }
.u-delay-04 { transition-delay: 0.4s; }
.u-delay-06 { transition-delay: 0.6s; }
.u-delay-08 { transition-delay: 0.8s; }
.u-delay-10 { transition-delay: 1.0s; }
.u-delay-12 { transition-delay: 1.2s; }
.u-delay-14 { transition-delay: 1.4s; }
.u-delay-20 { transition-delay: 2.0s; }
.u-delay-30 { transition-delay: 3.0s; }


@media screen and (max-width:960px) {
    .section-mv {
        background: url(../img/story_mv_sp.webp) no-repeat;
        background-size: cover;
        background-position: center;
        width: 100%;
        height: 100%;
    }
}

/* スマホ表示 */
@media screen and (max-width: 768px) {
    .left__content,
    .right__content {
        width: 100%;
    }

    .left__content {
        position: initial;
        height: auto;
    }

    .right__content {
        padding: 0;
    }

    /* MV */
    .section-mv {
        height: auto;
    }

    .mv__inner {
        height: 148.84vw;
    }

    .mv__title-top {
        top: 1.64vw;
        padding: 0 4.65vw;
    }

    .mv__title-bottom {
        bottom: 4.7vw;
        padding: 0 4.65vw;
    }

    .title-name {
        font-size: 5.813vw;
    }

    .title-name span:last-of-type {
        margin-left: 1.86vw;
        padding-left: 1.86vw;
        font-size: 4.65vw;
    }

    .title-name span:first-of-type::after {
        margin: auto 1.86vw;
        width: 0.232vw;
        height: 3.837vw;
    }

    .title-page {
        font-size: 4.65vw;
    }

    .page--title,
    .page--num {
        line-height: 1;
    }

    .page--title {
        letter-spacing: 0.06em;
    }

    .page--num {
        margin-top: 1.162vw;
    }

    .page--num span:first-of-type::after {
        width: 2.09vw;
        height: 3.49vw;
        right: -2.33vw;
    }

    .page--num span:last-of-type {
        margin-left: 3.02vw;
    }

    .title-main {
        filter: drop-shadow(0 0 4px rgba(88, 78, 54, 0.6));
    }

    .title-main span:first-of-type {
        width: 50.7vw;
    }

    .title-main span:last-of-type {
        margin-top: 3.52vw;
        width: 67.91vw;
    }

    .title-sub {
        margin-top: 2.82vw;
        font-size: 3.49vw;
        filter: drop-shadow(0 0 4px rgba(88, 78, 54, 0.6));
    }

    /* テキスト */
    .lead__inner {
        padding: 20.9vw 3.49vw;
        width: 89.53vw;
    }

    .lead__title {
        margin-left: -2.35vw;
        font-size: 4.4vw;
    }

    .section-lead__lead {
        margin: 9.76vw 0 0;
        font-size: 3.44vw;
        line-height: 2.4;
    }

    /* STORY */
    .story__inner {
        padding: 0 0 16.2vw;
    }

    .story__content {
        padding-top: 31.16vw;
    }

    .story__title {
        margin: 0 auto 4.65vw;
        font-size: 6.5vw;
    }

    .story__num {
        top: -4.65vw;
        left: -1.4vw;
    }

    .story__num--l {
        font-size: 27.4vw;
    }

    .story__num--l::after {
        width: 5.12vw;
        height: 11.4vw;
        right: -6.51vw;
        bottom: 4.65vw;
    }

    .section__story--1 .story__num--l::after {
        right: -3.26vw;
    }

    .story__num--s {
        font-size: 9.07vw;
        margin-left: 6.98vw;
    }

    .section__story--1 .story__num--s {
        margin-left: 4.19vw;
    }

    .story__label {
        top: 3.8rem;
        right: -2.4rem;
        font-size: 4.65vw;
    }

    .section__story--1 .story__label,
    .section__story--5 .story__label {
        top: 6.51vw;
    }

    .section__story--2 .story__label {
        top: 9.3vw;
    }

    .section__story--2 .story__desc {
        letter-spacing: 0.05em;
    }

    .section__story--3 .story__label {
        top: 7.44vw;
    }

    .section__story--3 .story__desc:nth-of-type(2) {
        letter-spacing: 0.05em;
    }

    .section__story--4 .story__label {
        top: 8.6vw;
    }

    .section__story--1 .story__title {
        font-size: 5.95vw;
    }

    .section__story--2 .story__title {
        font-size: 6.97vw;
    }

    .section__story--2 .story__title span {
        display: block;
        margin-left: -4vw;
    }

    .section__story--3 .story__title {
        font-size: 5.4vw;
    }

    .section__story--4 .story__title,
    .section__story--5 .story__title {
        font-size: 7.2vw;
    }

    .section__story--4 .story__desc {
        letter-spacing: 0.03em;
    }

    .story__desc {
        font-size: 3.6vw;
        line-height: 1.9;
        letter-spacing: 0;
    }

    .story__desc--1 {
        margin-bottom: 11.62vw;
    }

    .story__desc--2 {
        margin-top: 10.47vw;
    }

    .section__story--5 .story__gallery {
        gap: 5.8vw;
        width: calc(85% - 15px);
        margin: 11.627vw auto 0;
    }

    .section__story--5 .story__gallery figcaption {
        margin-bottom: 4.186vw;
        padding: 1.63vw 4.88vw 1.38vw;
        font-size: 4.65vw;
    }

    /* PRODUCT */
    .product__inner {
        padding: 15vw 0;
    }

    .product__title {
        margin: 0 auto 12.79vw;
        font-size: 5.697vw;
    }

    .product__title::after {
        width: 3.4rem;
        height: 0.2rem;
        bottom: -1.7rem;
    }

    .product__item {
        gap: 5.8vw;
    }

    .product__img {
        width: 27.44vw;
    }

    .product__name {
        font-size: 5.58vw;
        line-height: 1.16;
        line-height: 1.16;
    }

    .product__name--s {
        font-size: 4.88vw;
    }

    .product__name-en {
        margin: 2.325vw 0 0;
        font-size: 4.186vw;
    }

    .product__color {
        margin-top: 4.186vw;
        gap: 1.627vw;
    }

    .product__circle {
        width: 4.28vw;
        height: 4.28vw;
    }

    .product__item-btn {
        margin: 4.65vw 0 0;
    }

    .product__item-btn a {
        max-width: 19.3vw;
        padding: 1.16vw 2.55vw;
        font-size: 3.72vw;
    }

    .product__list-btn {
        width: 62.5vw;
        margin: 20.93vw auto 0;
    }

    .product__list-btn a {
        font-size: 5.116vw;
    }

    .product__list-btn a::after {
        height: 0.465vw;
        bottom: -0.465vw;
    }

    .product__cap {
        margin: 5.8vw auto 0;
        font-size: 2.325vw;
    }

    /* Swiper */
    .swiper-button-prev,
    .swiper-button-next {
        width: 8.14vw;
        height: 8.14vw;
    }

    .swiper-button-prev::before,
    .swiper-button-prev::after,
    .swiper-button-next::before,
    .swiper-button-next::after {
        width: 0.23vw;
        height: 5.81vw;
    }
}