@charset "utf-8";

/* ===== style.css ===== */
/* -- font -- */
/* 和文: DNP 秀英角ゴシック金 Std */
/* 欧文①: Jost */
/* 欧文②: Oxygen */
:root {
    --font-ja: "dnp-shuei-gothic-kin-std", "DNP Shuei Gothic Kin Std", sans-serif;
    --font-en1: "Jost", sans-serif;
    --font-en2: "Oxygen", sans-serif;
    /* カンプ基準幅 1366px / 画像は2倍書き出し → 表示は 実寸/2 */
    --design-width: 1366;
}

/* 画像配置はそのまま、ビューポート外への描画で横スクロールしない */
html {
    overflow-x: hidden;
    overflow-x: clip;
}
.wrapper {
    max-width: 100%;
    overflow-x: clip;
}

/* -- body -- */
body {
    font-family: var(--font-ja);
    font-weight: 400;
    font-style: normal;
    font-size: 14px;
    line-height: 2.14;
    color: #1A1311;
    background: #F8F6EF;
}
@media screen and ( max-width: 901px ) {
    body {
        font-size: 12px;
        line-height: 2.5;
    }
}

/* -- inner -- */
.inner {
    margin: 0 auto;
    width: 100%;
    max-width: 1247px;
    box-sizing: border-box;
}
@media screen and ( max-width: 1306px ) {
    .inner {
        margin: 0 20px;
        width: auto;
    }
}

img {
    max-width: 100%;
    height: auto;
}

@media screen and ( max-width: 900px ) {
    img {
        width: 100%;
    }
}


/*
    common
*/
/* -- hide -- */
@media screen and ( min-width: 901px ) {
    .pc_hide { display: none!important; }
}
@media screen and ( max-width: 900px ) {
    .sp_hide { display: none!important; }
}

/* -- fixed title -- */
.site-title {
    position: fixed;
    top: 33px;
    left: 33px;
    z-index: 2;
    margin: 0;
    line-height: 0;
}
.site-title a {
    display: block;
    transition: opacity 0.3s;
}
.site-title a:hover {
    opacity: 0.7;
}
.site-title img {
    display: block;
    width: auto;
    height: auto;
    max-width: none;
}

/* -- mv -- */
.mv {
    position: relative;
    z-index: 3;
    width: 100%;
    height: auto;
    padding: 56px 0 0;
    overflow: hidden;
    background: #F8F6EF;
}
@media screen and ( min-width: 901px ) {
    /* リード位置は変えず、左右カードの回転分が切れないようにする。
       横は html / .wrapper の overflow-x: clip でページスクロールは出さない */
    .mv {
        overflow: visible;
    }
}
.mv__heading {
    margin: 0;
    text-align: center;
    font-family: var(--font-en1);
    font-size: 58px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0;
    color: #4B3826;
}
.mv__sub {
    display: block;
    margin-top: 25px;
    margin-left: 12px;
    font-family: var(--font-ja);
    font-size: 27px;
    font-weight: 700;
    letter-spacing: 0.06em;
}
.mv__slider {
    position: relative;
    margin-top: clamp(28px, 4vw, 48px);
}
.mv__stage {
    position: relative;
    height: 575px;
    cursor: grab;
    touch-action: pan-y;
    user-select: none;
}
.mv__stage.is-dragging {
    cursor: grabbing;
}
.mv__stage.is-dragging .mv__slide {
    transition: none;
}
.mv__slide {
    /* 2倍書き出し 680x850 → 表示 340x425 */
    --mv-card-w: 340px;
    --mv-card-h: 425px;
    position: absolute;
    top: 220px;
    left: 50%;
    width: var(--mv-card-w);
    height: var(--mv-card-h);
    margin: 0;
    transform-origin: center center;
    transition: transform 0.7s cubic-bezier(0.45, 0.05, 0.2, 1), opacity 0.7s ease;
    will-change: transform;
}
/*
  タグ位置は各 .mv__slide--XX の変数で調整
  左寄せ: --mv-tag-left を指定し --mv-tag-right: auto
  右寄せ: --mv-tag-right を指定し --mv-tag-left: auto
  画像サイズ基準の % 指定（PC 340x425 時の px / 340 or 425）
*/
.mv__tag {
    position: absolute;
    top: var(--mv-tag-top);
    right: var(--mv-tag-right);
    left: var(--mv-tag-left);
    z-index: 2;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 8px 19px 6px 14px;
    border: 1px solid var(--mv-tag-color);
    border-radius: 999px;
    color: var(--mv-tag-color);
    font-family: var(--font-en1);
    font-size: 15px;
    font-weight: 500;
    letter-spacing: 0;
    line-height: 1;
    white-space: nowrap;
    transform: rotate(var(--mv-tag-rotate));
    pointer-events: none;
}
.mv__slide--01 {
    --mv-tag-top: calc(96 / 425 * 100%);
    --mv-tag-right: auto;
    --mv-tag-left: calc(-33 / 340 * 100%);
    --mv-tag-rotate: 10deg;
    --mv-tag-color: #D56114;
}
.mv__slide--02 {
    --mv-tag-top: calc(96 / 425 * 100%);
    --mv-tag-right: calc(-35 / 340 * 100%);
    --mv-tag-left: auto;
    --mv-tag-rotate: -10deg;
    --mv-tag-color: #343434;
}
.mv__slide--03 {
    --mv-tag-top: calc(274 / 425 * 100%);
    --mv-tag-right: auto;
    --mv-tag-left: calc(-26 / 340 * 100%);
    --mv-tag-rotate: 10deg;
    --mv-tag-color: #BC1610;
}
.mv__slide--04 {
    --mv-tag-top: calc(89 / 425 * 100%);
    --mv-tag-right: calc(-27 / 340 * 100%);
    --mv-tag-left: auto;
    --mv-tag-rotate: -10deg;
    --mv-tag-color: #4B3826;
}
.mv__slide--05 {
    --mv-tag-top: calc(304 / 425 * 100%);
    --mv-tag-right: auto;
    --mv-tag-left: calc(-33 / 340 * 100%);
    --mv-tag-rotate: 10deg;
    --mv-tag-color: #008D81;
}
.mv__slide--06 {
    --mv-tag-top: calc(197 / 425 * 100%);
    --mv-tag-right: auto;
    --mv-tag-left: calc(-39 / 340 * 100%);
    --mv-tag-rotate: -10deg;
    --mv-tag-color: #504F29;
}
.mv__slide--07 {
    --mv-tag-top: calc(121 / 425 * 100%);
    --mv-tag-right: calc(-45 / 340 * 100%);
    --mv-tag-left: auto;
    --mv-tag-rotate: 10deg;
    --mv-tag-color: #6F6656;
}
.mv__slide--08 {
    --mv-tag-top: calc(267 / 425 * 100%);
    --mv-tag-right: auto;
    --mv-tag-left: calc(-28 / 340 * 100%);
    --mv-tag-rotate: -10deg;
    --mv-tag-color: #27349A;
}
.mv__slide--09 {
    --mv-tag-top: calc(132 / 425 * 100%);
    --mv-tag-right: calc(-53 / 340 * 100%);
    --mv-tag-left: auto;
    --mv-tag-rotate: 10deg;
    --mv-tag-color: #505050;
}
.mv__slide--10 {
    --mv-tag-top: calc(257 / 425 * 100%);
    --mv-tag-right: auto;
    --mv-tag-left: calc(27 / 340 * 100%);
    --mv-tag-rotate: 343deg;
    --mv-tag-color: #4E650D;
}
.mv__slide img {
    display: block;
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    object-fit: fill;
    pointer-events: none;
    user-select: none;
    -webkit-user-drag: none;
}
.mv__dots {
    position: absolute;
    /* メイン画像下端 + 60px */
    top: calc(220px + 425px / 2 + 60px);
    left: 0;
    right: 0;
    z-index: 5;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 14px;
    margin: 0;
}
.mv__dot {
    width: 9px;
    height: 9px;
    padding: 0;
    border: 1.5px solid #4B3828;
    border-radius: 50%;
    background: transparent;
    cursor: pointer;
}
.mv__dot.is-active {
    border-color: var(--mv-dot-color, #D56114);
    background: var(--mv-dot-color, #D56114);
}
@media screen and ( max-width: 900px ) {
    .mv {
        height: auto;
        min-height: 0;
        padding-top: 36px;
        padding: 45px 0 0;
    }
    .mv__heading {
        font-size: 35px;
    }
    .mv__sub {
        margin-top: 21px;
        margin-left: 8px;
        font-size: 16px;
        letter-spacing: 0.06em;
    }
    .mv__stage {
        /* ドット下端まで。リード上余白は .lead の margin-top で揃える */
        height: calc(200px + 325px / 2 + 52px + 9px);
    }
    .mv__slide {
        top: 200px;
        --mv-card-w: 260px;
        --mv-card-h: 325px;
    }
    .mv__dots {
        top: calc(200px + 325px / 2 + 52px);
    }
    .mv__slider {
        position: relative;
        margin-top: -2px;
    }
    .mv__tag {
        padding: 8px 19px 6px 14px;
        font-size: 10px;
    }
}

/* -- lead -- */
.lead {
    margin: 0 auto 104px;
    text-align: center;
    font-size: 16px;
    line-height: 1.75;
    letter-spacing: 0.08em;
    font-weight: 500;
}
@media screen and ( max-width: 900px ) {
    .lead {
        /* ドット〜リード ≈ リード〜写真 */
        margin-top: 75px;
        margin-bottom: 70px;
        font-size: 14px;
        line-height: 1.67;
        text-align: center;
    }
}

/* -- section -- */
/*
  セクションカラーは各 .section--XX で上書き
  --section-color / --section-color-rgb を指定するだけ
*/
.section {
    position: relative;
    z-index: 1;
    --section-color: #BC1610;
    --section-color-rgb: 188, 22, 16;
    --img-main-w: 540;
    --img-sub01-w: 320;
    --img-sub02-w: 320;
    --img-sub01-rotate: -7deg;
    --img-sub02-rotate: 6deg;
    --tag-top: 188px;
    --tag-right: -34px;
    --tag-left: auto;
    --tag-rotate: 10deg;
    margin-bottom: 140px;
    color: var(--section-color);
}
.section--01 {
    --section-color: #BC1610;
    --section-color-rgb: 188, 22, 16;
    --img-main-w: 540;    /* 1080/2 */
    --img-sub01-w: 320;   /* 640/2 */
    --img-sub02-w: 320;   /* 640/2 */
    --tag-top: 180px;
    --tag-right: -49px;
    --tag-left: auto;
    --tag-rotate: 10deg;
}
.section--02 {
    --section-color: #4B3826;
    --section-color-rgb: 75, 56, 38;
    --img-main-w: 540;
    --img-sub01-w: 320;
    --img-sub02-w: 320;
    --tag-top: 182px;
    --tag-right: auto;
    --tag-left: -120px;
    --tag-rotate: -10deg;
}
.section--03 {
    --section-color: #008D81;
    --section-color-rgb: 0, 141, 129;
    --img-main-w: 540;
    --img-sub01-w: 320;
    --img-sub02-w: 320;
    --tag-top: 183px;
    --tag-right: -65px;
    --tag-left: auto;
    --tag-rotate: 10deg;
}
.section--04 {
    --section-color: #343434;
    --section-color-rgb: 52, 52, 52;
    --img-main-w: 540;
    --img-sub01-w: 320;
    --img-sub02-w: 320;
    --tag-top: 184px;
    --tag-right: auto;
    --tag-left: -78px;
    --tag-rotate: -10deg;
}
.section--05 {
    --section-color: #D56114;
    --section-color-rgb: 213, 97, 20;
    --img-main-w: 540;
    --img-sub01-w: 320;
    --img-sub02-w: 320;
    --tag-top: 181px;
    --tag-right: -77px;
    --tag-left: auto;
    --tag-rotate: 10deg;
}
.section--06 {
    --section-color: #4E650D;
    --section-color-rgb: 78, 101, 13;
    --img-main-w: 540;
    --img-sub01-w: 320;
    --img-sub02-w: 320;
    --tag-top: 182px;
    --tag-right: auto;
    --tag-left: -48px;
    --tag-rotate: -10deg;
}
.section--07 {
    --section-color: #505050;
    --section-color-rgb: 80, 80, 80;
    --img-main-w: 540;
    --img-sub01-w: 320;
    --img-sub02-w: 320;
    --tag-top: 184px;
    --tag-right: -108px;
    --tag-left: auto;
    --tag-rotate: 10deg;
}
.section--08 {
    --section-color: #28349A;
    --section-color-rgb: 40, 52, 154;
    --img-main-w: 540;
    --img-sub01-w: 320;
    --img-sub02-w: 320;
    --tag-top: 180px;
    --tag-right: auto;
    --tag-left: -62px;
    --tag-rotate: -10deg;
}
.section--09 {
    --section-color: #6F6656;
    --section-color-rgb: 111, 102, 86;
    --img-main-w: 540;
    --img-sub01-w: 320;
    --img-sub02-w: 320;
    --tag-top: 181px;
    --tag-right: -79px;
    --tag-left: auto;
    --tag-rotate: 10deg;
}
.section--10 {
    --section-color: #504F29;
    --section-color-rgb: 80, 79, 41;
    --img-main-w: 540;
    --img-sub01-w: 320;
    --img-sub02-w: 320;
    --tag-top: 192px;
    --tag-right: auto;
    --tag-left: -36px;
    --tag-rotate: -10deg;
}

.section__inner {
    max-width: 1366px;
}
.section__stage {
    position: relative;
    width: 100%;
    height: calc(780 / var(--design-width) * 100vw);
    max-height: 780px;
    margin-bottom: 520px;
}
.section__visual {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
}
.section__img {
    position: absolute;
    margin: 0;
    line-height: 0;
}
.section__img img {
    display: block;
    width: 100%;
    height: auto;
    max-width: none;
    filter: drop-shadow(3px 3px 8px rgba(193, 182, 176, 0.16));
}
/* WebPは正位置書き出し。imgフォルダのPNGと同じ傾きをCSSで付与 */
.section__img--sub01 img {
    transform: rotate(var(--img-sub01-rotate));
}
.section__img--sub02 img {
    transform: rotate(var(--img-sub02-rotate));
}

/* パタパタ表示: PC 寄り→メイン→全身 / SP メイン→全身→寄り */
@keyframes section-patapata {
    0% {
        opacity: 0;
        transform: scale(0.88);
    }
    60% {
        opacity: 1;
        transform: scale(1.03);
    }
    100% {
        opacity: 1;
        transform: scale(1);
    }
}
.has-section-anim .section__img {
    opacity: 0;
    will-change: transform, opacity;
}
.has-section-anim .section.is-inview .section__img {
    animation: section-patapata 0.55s cubic-bezier(0.22, 0.8, 0.28, 1) forwards;
}
/* PC: ①sub01寄り ②main ③sub02全身 */
.has-section-anim .section.is-inview .section__img--sub01 {
    animation-delay: 0s;
}
.has-section-anim .section.is-inview .section__img--main {
    animation-delay: 0.28s;
}
.has-section-anim .section.is-inview .section__img--sub02 {
    animation-delay: 0.56s;
}
@media screen and ( max-width: 900px ) {
    /* SP: ①main ②sub02全身 ③sub01寄り */
    .has-section-anim .section.is-inview .section__img--main {
        animation-delay: 0s;
    }
    .has-section-anim .section.is-inview .section__img--sub02 {
        animation-delay: 0.28s;
    }
    .has-section-anim .section.is-inview .section__img--sub01 {
        animation-delay: 0.56s;
    }
}
@media (prefers-reduced-motion: reduce) {
    .has-section-anim .section__img,
    .has-section-anim .section.is-inview .section__img {
        opacity: 1;
        transform: none;
        animation: none;
    }
}
/* 配置は %（画面幅変化でも比率維持） / 幅は2倍書き出しの半分 */
.section__img--sub01 {
    top: 17.55%;
    left: 14.3%;
    width: min(calc(var(--img-sub01-w) * 1px), calc(var(--img-sub01-w) / var(--design-width) * 100vw));
    z-index: 2;
}
.section__img--sub02 {
    top: 79.6%;
    left: 23.6%;
    width: min(calc(var(--img-sub02-w) * 1px), calc(var(--img-sub02-w) / var(--design-width) * 100vw));
    z-index: 3;
}
.section__img--main {
    top: 0;
    left: 45.5%;
    width: min(calc(var(--img-main-w) * 1px), calc(var(--img-main-w) / var(--design-width) * 100vw));
    z-index: 1;
}
.section__tag {
    position: absolute;
    top: var(--tag-top);
    right: var(--tag-right);
    left: var(--tag-left);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 8px 17px 6px 14px;
    border: 1px solid var(--section-color);
    border-radius: 999px;
    color: var(--section-color);
    font-family: var(--font-en1);
    font-size: 15px;
    font-weight: 500;
    letter-spacing: 0;
    line-height: 1;
    white-space: nowrap;
    transform: rotate(var(--tag-rotate));
    z-index: 4;
}
.section__info {
    position: absolute;
    top: 94%;
    left: 55.4%;
    width: min(calc(var(--img-main-w) * 1px), calc(var(--img-main-w) / var(--design-width) * 100vw));
    z-index: 2;
}

/* 反転（②④…）: left ↔ right */
.section--reverse {
    --img-sub01-rotate: 7deg;
    --img-sub02-rotate: -6deg;
}
.section--reverse .section__img--sub01 {
    left: auto;
    right: 13.2%;
}
.section--reverse .section__img--sub02 {
    left: auto;
    right: 22.8%;
    top: 79.6%;
}
.section--reverse .section__img--main {
    left: auto;
    right: 44.6%;
    top: 0;
}
.section--reverse .section__info {
    left: auto;
    right: 44.6%;
}

@media screen and ( min-width: 1366px ) {
    .section__stage {
        height: 780px;
        max-height: none;
        margin-bottom: 520px;
    }
    .section__img--sub01 {
        width: calc(var(--img-sub01-w) * 1px);
    }
    .section__img--sub02 {
        width: calc(var(--img-sub02-w) * 1px);
    }
    .section__img--main {
        width: calc(var(--img-main-w) * 1px);
    }
    .section__info {
        width: calc(var(--img-main-w) * 1px);
    }
    .footer__btns {
        width: 100%;
        max-width: none;
    }
}

.section__brand {
    margin: 0;
    font-family: var(--font-en1);
    font-size: 33px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0;
}
.section__product {
    margin: 9px 0 0;
    font-family: var(--font-en1);
    font-size: 17px;
    font-weight: 600;
    line-height: 1.125;
    letter-spacing: 0;
    max-width: 390px;
}
.section__buy {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    margin-top: 20px;
    padding: 7px 21px 7px 18px;
    border-radius: 999px;
    background: var(--section-color);
    color: #fff;
    font-family: var(--font-en1);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.05em;
    line-height: 1;
    transition: opacity 0.3s;
}
.section__buy img {
    display: block;
    width: 13px;
    height: auto;
    transition: transform 0.3s ease;
}
.section__buy:hover img {
    transform: translateX(6px);
}
.section__buy.is-off {
    opacity: 0.5;
    pointer-events: none;
}
.section__buy.is-off img {
    transition: none;
}
@media screen and ( min-width: 901px ) {
    .section__buy:hover {
        opacity: 0.6;
    }
}
.section__desc {
    margin-top: 23px;
    font-size: 14px;
    font-weight: 500;
    line-height: 1.71;
    letter-spacing: 0;
    max-width: 406px;
}
.section__styling {
    max-width: 406px;
    margin-top: 22px;
    padding-top: 25px;
    border-top: 1px solid rgba(var(--section-color-rgb), 0.4);
}
.section__label {
    margin: 0 0 4px;
    font-family: var(--font-en1);
    font-size: 12px;
    font-weight: 600;
    line-height: 1;
    letter-spacing: 0;
}
.section__list {
    margin: 0;
    padding: 0;
    list-style: none;
}
.section__list li + li {
    margin-top: 0;
}
.section__list a {
    display: inline-block;
    font-family: var(--font-en2);
    font-size: 12px;
    font-weight: 400;
    line-height: 1;
    letter-spacing: 0;
    padding-bottom: 4px;
    text-decoration: underline;
    text-decoration-color: rgba(var(--section-color-rgb), 0.4);
    text-underline-offset: 3px;
    transition: opacity 0.3s;
}
.section__list a:hover {
    opacity: 0.7;
}
.section__list a.is-off,
a[href="#"] {
    pointer-events: none;
    cursor: default;
    text-decoration: none;
}
.section__list a.is-off:hover,
a[href="#"]:hover {
    opacity: 1;
}
.section__staff {
    max-width: 406px;
    margin-top: 0;
    padding-top: 20px;
}
.section__staff-text {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 9px;
    margin: 14px 0 0;
    font-size: 12px;
    line-height: 1;
    letter-spacing: 0;
}
.section__staff-name {
    font-family: var(--font-en2);
    font-weight: 400;
}
.section__ig {
    display: inline-flex;
    align-items: center;
    margin-left: 9px;
    gap: 5px;
    font-family: var(--font-en2);
    font-weight: 400;
    text-decoration: underline;
    text-decoration-color: rgba(var(--section-color-rgb), 0.4);
    text-underline-offset: 3px;
    transition: opacity 0.3s;
}
.section__ig-icon {
    display: block;
    width: 12px;
    height: 12px;
    margin-top: 1px;
    background-color: var(--section-color);
    -webkit-mask: url("../img01/insta.svg") center / contain no-repeat;
    mask: url("../img01/insta.svg") center / contain no-repeat;
}
.section__ig:hover {
    opacity: 0.7;
}

@media screen and ( max-width: 900px ) {
    .section {
        margin-bottom: 98px;
    }

    .section__list {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
    }
    .section__list::-webkit-scrollbar {
        display: none;
    }
    .section__list li {
        width: max-content;
        min-width: 100%;
        white-space: nowrap;
    }

    /* SP共通：画像は .section__visual、テキストはその下 */
    .section .section__stage {
        height: auto;
        max-height: none;
        margin-bottom: 0;
    }
    .section .section__visual {
        position: relative;
        height: 0;
        padding-bottom: 108%;
        margin-bottom: 12%;
    }
    .section .section__info {
        position: relative;
        top: auto;
        left: auto;
        right: auto;
        width: 100%;
        margin-top: 82.5%;
        padding: 0 12px;
        box-sizing: border-box;
        z-index: 2;
    }

    /* 奇数セクション SP：画像配置 */
    .section:not(.section--reverse) .section__img--main {
        top: 7%;
        left: 8%;
        right: auto;
        width: 83%;
        z-index: 2;
    }
    .section:not(.section--reverse) .section__img--sub01 {
        top: 113.4%;
        left: 1.5%;
        width: 45%;
        z-index: 3;
    }
    .section:not(.section--reverse) .section__img--sub02 {
        top: 97.2%;
        left: auto;
        right: -1.3%;
        width: 45%;
        z-index: 3;
    }
    .section:not(.section--reverse) .section__tag {
        top: 111px;
        right: -40px;
        left: auto;
        padding: 5px 12px 4px;
        font-size: 10px;
        transform: rotate(var(--tag-rotate));
    }

    /* 偶数セクション SP：奇数と左右反転の画像配置 */
    .section--reverse .section__img--main {
        top: 7%;
        left: 8%;
        right: auto;
        width: 83%;
        z-index: 2;
    }
    .section--reverse .section__img--sub01 {
        top: 112.4%;
        left: auto;
        right: -1.5%;
        width: 45%;
        z-index: 3;
    }
    .section--reverse .section__img--sub02 {
        top: 96.2%;
        left: 0.9%;
        right: auto;
        width: 45%;
        z-index: 3;
    }
    .section--reverse .section__tag {
        top: 112px;
        right: auto;
        left: -31px;
        padding: 5px 12px 4px;
        font-size: 10px;
        transform: rotate(var(--tag-rotate));
    }

    .section .section__brand {
        font-size: 25px;
    }
    .section .section__product {
        font-size: 14px;
        max-width: none;
    }
    .section .section__buy {
        margin-top: 16px;
        padding: 8px 15px 7px 17px;
        font-size: 11px;
        gap: 11px;
    }
    .section .section__desc {
        margin-top: 19px;
        font-size: 13px;
        line-height: 1.69;
        max-width: none;
    }
    .section .section__styling {
        max-width: none;
        margin-top: 16px;
        padding-top: 25px;
    }
    .section .section__staff {
        max-width: none;
        margin-top: 9px;
        padding-top: 10px;
    }
    .section .section__label {
        font-size: 12px;
    }
    .section .section__list a {
        font-size: 12px;
    }
    .section .section__staff-text {
        font-size: 12px;
    }
    .section__staff-text {
        font-size: 12px;
        gap: 8px 4px;
    }
    .section__ig {
        flex-basis: 100%;
        margin-left: 0;
        margin-top: 4px;
    }
}

/* -- side nav (PC) -- */
.side-nav {
    position: fixed;
    right: 29px;
    bottom: 27px;
    z-index: 2;
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 16px;
    margin: 0;
    transition: opacity 0.3s;
}
.side-nav.is-on-mv {
    opacity: 0;
    pointer-events: none;
}
.side-nav__link {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    line-height: 0;
    transition: opacity 0.3s;
}
.side-nav__link:hover {
    opacity: 0.7;
}
.side-nav__link img {
    display: block;
    width: auto;
    height: auto;
    max-width: none;
}
.side-nav__link + .side-nav__link {
    margin-top: 22px;
}
.side-nav__link:first-child + .side-nav__link {
    margin-top: 20px;
}
.side-nav__copy {
    position: relative;
    left: 2px;
    flex-shrink: 0;
    margin: 22px 0 0;
    width: 12px;
    height: 70px;
    font-size: 10px;
    line-height: 1;
    letter-spacing: 0.05em;
    color: #4B3826;
}
.side-nav__copy span {
    display: block;
    white-space: nowrap;
    font-family: var(--font-en2);
    font-weight: 400;
    transform: rotate(90deg) translateY(-100%);
    transform-origin: 0 0;
}

/* -- footer -- */
.footer {
    position: relative;
    z-index: 0;
    width: 100%;
    aspect-ratio: 2732 / 1240;
    background: url("../img01/footer_bk_pc.webp") center / cover no-repeat;
}
.footer__btns {
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: min(100%, 1366px);
    height: 100%;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: min(70px, calc(70 / var(--design-width) * 100vw));
}
.footer__btn {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-shrink: 0;
    gap: 0;
    width: min(345px, calc(345 / var(--design-width) * 100vw));
    height: min(90px, calc(90 / var(--design-width) * 100vw));
    max-width: 345px;
    max-height: 90px;
    border-radius: 999px;
    background: #F8F6EF;
    color: #1A1311;
    line-height: 1;
    box-sizing: border-box;
    white-space: nowrap;
    transition: opacity 0.3s;
}
.footer__btn_container {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 75%;
    margin: 0 auto 0 14%;
}
.footer__btn-en {
    font-family: var(--font-en1);
    font-size: 24px;
    font-weight: 500;
    letter-spacing: 0.02em;
    flex-shrink: 0;
    white-space: nowrap;
}
.footer__btn-action {
    display: inline-flex;
    align-items: center;
    flex-shrink: 0;
    gap: clamp(14px, 2vw, 28px);
}
.footer__btn-ja {
    font-size: 15px;
    font-weight: 500;
    letter-spacing: 0.02em;
    flex-shrink: 0;
    white-space: nowrap;
}
.footer__btn img {
    display: block;
    width: 21px;
    height: auto;
    max-width: none;
    flex-shrink: 0;
    transition: transform 0.3s ease;
}

/* PC・タブレット共通: ボタン幅/文字を比例、上下中央（1366pxちょうどは別指定） */
@media screen and ( min-width: 901px ) {
    .footer__btns {
        top: 50%;
        height: auto;
        padding-top: 0;
        justify-content: center;
        transform: translate(-50%, -50%);
        gap: clamp(40px, 5.5vw, 70px);
    }
    .footer__btn {
        width: clamp(310px, 36vw, 345px);
        height: auto;
        aspect-ratio: 345 / 90;
        max-width: none;
        max-height: none;
    }
    .footer__btn-en {
        font-size: clamp(16px, calc(24 / 345 * 36vw), 24px);
    }
    .footer__btn-ja {
        font-size: clamp(12px, calc(15 / 345 * 36vw), 15px);
    }
    .footer__btn img {
        width: clamp(14px, calc(21 / 345 * 36vw), 21px);
    }
    .footer__btn:hover {
        opacity: 0.6;
    }
    .footer__btn:hover img {
        transform: translateX(6px);
    }
}

/* 1366px: カンプどおり上189px / 1367px〜: 背景の上下中央 */
@media screen and ( min-width: 1366px ) and ( max-width: 1366px ) {
    .footer__btns {
        top: 0;
        height: 100%;
        padding-top: calc(189 / var(--design-width) * 100vw);
        justify-content: flex-start;
        transform: translateX(-50%);
    }
}
@media screen and ( min-width: 1367px ) {
    .footer__btns {
        top: 50%;
        height: auto;
        padding-top: 0;
        justify-content: center;
        transform: translate(-50%, -50%);
    }
}

.footer__nav {
    display: none;
}

@media screen and ( max-width: 900px ) {
    .footer {
        aspect-ratio: 375 / 564;
        background-image: url("../img01/footer_bk_sp.webp");
    }
    .footer__btns {
        width: 100%;
        padding-top: 48%;
        gap: 72px;
    }
    .footer__btn {
        width: 254px;
        height: 65px;
        max-width: none;
        max-height: none;
        padding: 0 28px;
    }
    .footer__btn_container {
        width: 96%;
        margin: 0 auto 0 3%;
    }
    .footer__btn-en {
        font-size: 17px;
    }
    .footer__btn-action {
        gap: 19px;
    }
    .footer__btn-ja {
        font-size: 11px;
    }
    .footer__btn img {
        width: 17px;
    }
    .footer__nav {
        position: absolute;
        left: 0;
        right: 0;
        bottom: 23px;
        z-index: 1;
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 19px;
        margin: 0;
    }
    .footer__nav-links {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 30px;
    }
    .footer__nav-link {
        display: flex;
        align-items: center;
        justify-content: center;
        line-height: 0;
    }
    .footer__nav-link img {
        display: block;
        width: auto;
        height: auto;
        max-width: none;
    }
    .footer__nav-copy {
        margin: 0;
        color: #fff;
        font-family: var(--font-en1);
        font-size: 10px;
        font-weight: 400;
        line-height: 1;
        letter-spacing: 0.05em;
        text-align: center;
    }
}


