@charset "utf-8";

html {
    scrollbar-gutter: stable;
}

/*-----------------------------------------------
    secCmnTop
-----------------------------------------------*/
.secCmnTop {
    background: url(../img/concept/bgTop.jpg) center / cover no-repeat;
    position: relative;
    z-index: 2;
}

.pnkzWrapper {
    position: relative;
    z-index: 2;
}

@media only screen and (max-width:1215px) {
    .secCmnTop {
        background: url(../img/concept/bgTop_sp.jpg) center / cover no-repeat;
    }
}

/* ???: ?????.pnkzWrapper?? .secLogin ????#container ? flex + order ?????? */
@media only screen and (max-width: 1215px) {
    #container {
        display: flex;
        flex-direction: column;
    }

    #container>header.cmnHeader {
        order: 1;
    }

    #container>.secCmnTop {
        order: 2;
    }

    #container>.main {
        order: 3;
    }

    #container>.pnkzWrapper {
        order: 4;
        height: 3.5rem;
    }

    #container>footer.cmnFooter {
        order: 6;
    }

    /* <?parts_footer?> ?? #container ???????????????????? */
    #container>*:not(header.cmnHeader):not(.secCmnTop):not(.main):not(.pnkzWrapper):not(footer.cmnFooter) {
        order: 5;
    }
}

/*-----------------------------------------------
    secConceptHero?Brand Concept ??????
-----------------------------------------------*/
.secConceptHero {
    position: relative;
    overflow: visible;
    --concept-bg-fade: 0;
}

.secConceptHero:after,
.secConceptHero:before {
    position: absolute;
    content: '';
    margin: auto;
    display: block;
    left: 0;
    width: 100%;
    bottom: 0;
    height: 12rem;
    -webkit-mask-image: linear-gradient(to bottom, transparent 0%, black 100%);
    mask-image: linear-gradient(to bottom, transparent 0%, black 100%);
    background: #e3e2d9;
    z-index: 1;
}

.secConceptHero:after {
    bottom: -12rem;
    height: 12rem;
    -webkit-mask-image: linear-gradient(to top, transparent 0%, black 100%);
    mask-image: linear-gradient(to top, transparent 0%, black 100%);
    background: #e3e2d9;
}

.secConceptHero.is-inview {
    z-index: 1;
}

/* 離脱中は次セクション（secPoint）より下へ。セクション単位の重ね順だけ下げる */
.secConceptHero.is-past.is-releasing {
    z-index: 0;
}

.secConceptHero.is-past.is-releasing .hero2Inner {
    z-index: 0;
    pointer-events: none;
}

/* ロゴは背景(z-index:0)より上を維持。0にするとピン解除で背景下に回り消えて見える */
.secConceptHero.is-past.is-releasing .boxHeroLogo {
    z-index: 3;
    pointer-events: none;
}

.secConceptHeroBg {
    position: fixed;
    inset: 0;
    z-index: 0;
    opacity: 0;
    pointer-events: none;
    background: url(../img/concept/bgHero.jpg) top center / cover no-repeat;
    will-change: opacity, filter;
}

.secConceptHero.is-past .secConceptHeroBg {
    position: absolute;
    filter: blur(0px) !important;
    background-position: bottom;
    height: 100vh;
    bottom: 0;
    top: auto;
}

.secConceptHeroBgFog {
    position: absolute;
    top: 0;
    left: 0;
    width: 200%;
    height: 100%;
    inset: 0;
    pointer-events: none;
    background: rgba(207, 195, 184, 0.72);
    filter: blur(1.4rem);
    backdrop-filter: brightness(1.7);
    -webkit-backdrop-filter: brightness(1.7);
    opacity: 0;
    transition: none;
}

@media only screen and (min-width: 1216px) {
    .secConceptHero.is-past .secConceptHeroBg {
        opacity: 1 !important;
    }

    /* opacity is driven by JS scroll; no CSS transition */
    .secConceptHero .boxTxtPhase1,
    .secConceptHero .boxTxtPhase2 {
        transition: none;
    }

    /* readability: soft light plate behind hero text so it does not sink into the photo */
    .secConceptHero .boxHero04 .boxTxt::after {
        content: '';
        position: absolute;
        z-index: 0;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        width: calc(100% + 14rem);
        height: calc(100% + 10rem);
        border-radius: 3rem;
        background: rgba(245, 240, 234, 0.6);
        filter: blur(2.4rem);
        opacity: var(--concept-bg-fade);
        pointer-events: none;
    }

    .secConceptHero .txtHero {
        text-shadow: 0 0 1.2rem rgba(245, 240, 234, 0.85), 0 0 0.4rem rgba(245, 240, 234, 0.9);
    }
}

.secConceptHeroScroll {
    position: relative;
    z-index: 2;
}

.secConceptHero .heroInner01.hero2 {
    min-height: 100vh;
    height: 330rem;
    display: flex;
    align-items: flex-start;
}

.secConceptHero .heroInner01.hero2.is-end {
    align-items: flex-end;
}

@media only screen and (min-width: 1216px) {
    .secConceptHero .heroInner01.hero2.is-end {
        align-items: flex-end;
    }

    .secConceptHero .heroInner01.hero2.is-end .hero2Inner {
        align-items: center;
        padding-bottom: 0;
    }
}

.secConceptHero .hero2Inner {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    width: 100%;
    height: 100vh;
    z-index: 3;
    box-sizing: border-box;
}

.secConceptHero .hero2Inner.is-fixed {
    position: fixed;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 140rem;
    max-width: calc(100% - 10rem);
    box-sizing: border-box;
    will-change: transform;
}

.secConceptHero .boxHeroLogo {
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    align-items: center;
    width: 140rem;
    max-width: calc(100% - 10rem);
    height: 100vh;
    z-index: 3;
    box-sizing: border-box;
    pointer-events: none;
    mix-blend-mode: overlay;
    opacity: 0;
    will-change: opacity, filter, transform;
    /* opacity/filter は JS が毎フレーム制御するため transition するとガタつく */
    transition: none;
}

.secConceptHero .boxHeroLogo img {
    width: 100%;
    height: auto;
}

.secConceptHero .boxHeroLogo .boxImg {
    width: 64.3rem;
    max-width: 100%;
    flex-shrink: 0;
}

.secConceptHero .boxHeroLogo.is-fixed {
    position: fixed;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 140rem;
    max-width: calc(100% - 10rem);
    height: 100vh;
    box-sizing: border-box;
    will-change: transform;
}

/* ???? is-fixed + translateY ????????? fixed ????????? */
.secConceptHero:has(.hero2.is-end) .boxHeroLogo:not(.is-fixed) {
    top: auto;
    bottom: 0;
    opacity: 1 !important;
    filter: blur(0px) !important;
}

.secConceptHero .boxFlex {
    display: flex;
    align-items: center;
    justify-content: flex-end;
}

.secConceptHero .boxHero04 {
    display: flex;
    gap: 5rem;
    z-index: 2;
    position: relative;
    margin-left: auto;
    top: 5rem;
}

.secConceptHero .boxHero04 .boxTxt {
    position: relative;
    display: flex;
    align-items: center;
    flex: 0 0 auto;
    width: auto;
    min-width: 52rem;
    min-height: 70rem;
    box-sizing: border-box;
    justify-content: flex-end;
}

.secConceptHero .boxTxtPhase1 {
    position: relative;
    top: 3.5rem;
    opacity: 1;
    z-index: 2;
}

.secConceptHero .boxTxtPhase1.is-hide {
    pointer-events: none;
}

.secConceptHero .boxTxtPhase2 {
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    opacity: 0;
    pointer-events: none;
    z-index: 1;
}

.secConceptHero .boxTxtPhase2.is-show {
    pointer-events: auto;
    z-index: 3;
}

.secConceptHero .txtHero {
    font-size: var(--pcFontSize18);
    letter-spacing: var(--pcLetterSpacing30);
    text-align: right;
    white-space: nowrap;
}

.secConceptHero .boxTxtPhase1 .titHero {
    font-size: var(--pcFontSize65);
    letter-spacing: var(--pcLetterSpacing50);
    white-space: nowrap;
}

/* コンセプトTOP Phase1：大きなタイトルは blur 遷移だとスクロール中にガタつく */
.secConceptHero:has(.boxHeroLogo) .boxTxtPhase1 .jsConceptLine {
    transform: none;
    filter: none;
    transition: opacity 0.55s ease-out;
}

.secConceptHero:has(.boxHeroLogo) .boxTxtPhase1 .jsConceptLine.is-show {
    transform: none;
    filter: none;
}

.secConceptHero .boxTxtPhase1 .txtHero+.txtHero {
    margin-top: 3.6rem;
}

.secConceptHero .boxTxtPhase2 .txtHero {
    font-size: var(--pcFontSize16);
    letter-spacing: 0.3rem;
    white-space: normal;
    line-height: 2.48;
}

.secConceptHero .boxTxtPhase2 .txtHero+.txtHero {
    margin-top: 0;
}

.secConceptHero .txtHero+.txtHero {
    margin-top: 1.2rem;
}

.secConceptHero .boxTxtPhase2 .txtHero.txtHeroGap {
    margin-top: 4.6rem;
}

.secConceptHero .boxHero04 .boxTxt::before {
    content: '';
    position: absolute;
    right: -4rem;
    top: 7.5rem;
    height: 55.7rem;
    width: 0.1rem;
    background: rgba(36, 36, 35, 0.15);
    opacity: var(--concept-bg-fade);
}

.secConceptHero .boxConcept {
    flex-shrink: 0;
    padding-top: 7.5rem;
    opacity: var(--concept-bg-fade);
    transform: translateY(calc((1 - var(--concept-bg-fade)) * 0.8rem));
    filter: blur(calc((1 - var(--concept-bg-fade)) * 4px));
    will-change: opacity, transform, filter;
}

.secConceptHero .boxConcept img {
    width: 1.3rem;
    height: auto;
}

.secConceptHero .jsConceptLine {
    opacity: 0;
    transform: translateY(0.8rem);
    filter: blur(4px);
    transition: opacity 1.0s ease-out, transform 1.0s ease-out, filter 1.0s ease-out;

}

.secConceptHero .jsConceptLine.is-show {
    opacity: 1;
    transform: translateY(0);
    filter: blur(0);
}

/* scroll cue: shows that content continues below the pinned hero */
.conceptScrollHint {
    position: fixed;
    left: 50%;
    bottom: 3.2rem;
    transform: translateX(-50%);
    z-index: 5;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1.2rem;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.6s ease;
    /* ???????????????????????????????? */
    filter: drop-shadow(0 0 0.3rem rgba(255, 255, 255, 1)) drop-shadow(0 0 0.6rem rgba(255, 255, 255, 1)) drop-shadow(0 0 1.2rem rgba(255, 255, 255, 0.85));
}

.secConceptHero.is-inview .conceptScrollHint {
    opacity: 1;
}

.secConceptHero.is-past .conceptScrollHint,
.secConceptHero.is-pin-fallback .conceptScrollHint,
.secConceptHero.is-phase2 .conceptScrollHint,
.secConceptHero:has(.hero2.is-end) .conceptScrollHint {
    opacity: 0;
}

.conceptScrollHint .conceptScrollHintTxt {
    font-size: 1.2rem;
    letter-spacing: 0.28em;
    text-indent: 0.28em;
    line-height: 1;
    color: var(--colorBrown);
    animation: conceptScrollHintFloat 2.4s ease-in-out infinite;
}

.conceptScrollHint .conceptScrollHintLine {
    position: relative;
    width: 0.1rem;
    height: 5.6rem;
    overflow: hidden;
    background: rgba(48, 43, 41, 0.18);
}

.conceptScrollHint .conceptScrollHintLine::after {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 45%;
    background: var(--colorBrown);
    animation: conceptScrollHintFlow 2.4s cubic-bezier(0.4, 0, 0.2, 1) infinite;
}

@keyframes conceptScrollHintFlow {
    0% {
        transform: translateY(-100%);
    }

    60%,
    100% {
        transform: translateY(280%);
    }
}

@keyframes conceptScrollHintFloat {

    0%,
    100% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(0.4rem);
    }
}

@media (prefers-reduced-motion: reduce) {

    .conceptScrollHint .conceptScrollHintTxt,
    .conceptScrollHint .conceptScrollHintLine::after {
        animation: none;
    }
}

@media only screen and (max-width: 1215px) {
    .conceptScrollHint {
        bottom: 2rem;
        gap: 0.9rem;
    }

    .conceptScrollHint .conceptScrollHintTxt {
        font-size: 1rem;
    }

    .conceptScrollHint .conceptScrollHintLine {
        height: 4.2rem;
    }
}

/* PC????????????????????????JS ? .is-text-pan ???? */
@media only screen and (min-width: 1216px) {
    .secConceptHero .heroInner01.hero2 {
        height: calc(330rem + var(--concept-hero-track-extra, 0px));
    }

    /* Phase2 表示中のみ上寄せ（Phase1 は元の中央寄せを維持） */
    .secConceptHero.is-text-pan.is-phase2 .hero2Inner,
    .secConceptHero.is-text-pan.is-phase2 .hero2Inner.is-fixed,
    .secConceptHero.is-text-pan.is-phase2 .heroInner01.hero2.is-end .hero2Inner {
        align-items: flex-start;
        padding-top: calc(11.5rem + 2.5rem + var(--wp-admin--admin-bar--height, 0px));
        padding-bottom: 2rem;
        overflow: hidden;
        box-sizing: border-box;
    }

    .secConceptHero.is-text-pan.is-phase2 .boxFlex {
        align-items: flex-start;
    }

    .secConceptHero.is-text-pan.is-phase2 .boxHero04 {
        top: 0;
    }

    .secConceptHero.is-text-pan.is-phase2 .boxHero04 .boxTxt {
        align-items: flex-start;
        min-height: 0;
    }

    .secConceptHero.is-text-pan.is-phase2 .boxTxtPhase1 {
        top: 0;
    }

    .secConceptHero.is-text-pan .boxTxtPhase2 {
        will-change: transform;
    }

    .secConceptHero.is-text-pan.is-phase2 .boxHero04 .boxTxt::before {
        top: 0;
        height: 100%;
    }

    .secConceptHero.is-text-pan.is-phase2 .boxConcept {
        padding-top: 0;
    }
}

@media only screen and (max-width: 1215px) {
    .secConceptHero {
        --concept-sp-bg-top: 0;
    }
    .secConceptHero.isMvDemo.isConceptTop .boxTxtPhase2 {
        top: 4rem !important;
    }
    .secConceptHeroBg {
        /* SP: .wrapperFit（max-width: 40rem / 中央寄せ）に合わせて全幅カバー */
        position: absolute;
        inset: auto;
        top: 0;
        right: 0;
        bottom: auto;
        left: 0;
        width: 100%;
        max-width: 40rem;
        margin-inline: auto;
        height: 100vh;
        height: 100lvh;
        background-image: url(../img/concept/bgHero_sp.jpg);
        background-repeat: no-repeat;
        background-position: center top;
        background-size: cover;
        background-color: transparent;
        opacity: 1;
        filter: none;
        will-change: auto;
        transition: none;
        clip-path: none;
    }

    /* fog も wrapperFit 幅いっぱいに合わせる。
       filter: blur / backdrop-filter: brightness は SP では切る */
    .secConceptHeroBgFog {
        inset: 0;
        width: 100%;
        height: 100%;
        transform: none;
        filter: none;
        backdrop-filter: none;
        -webkit-backdrop-filter: none;
    }

    /* Phase2：本文可読性のため、wrapperFit 幅内で背景ぼかしを強化 */
    .secConceptHero.is-phase2 .secConceptHeroBgFog {
        background: rgba(222, 212, 202, 0.88);
        backdrop-filter: blur(1.8rem);
        -webkit-backdrop-filter: blur(1.8rem);
    }

    .secConceptHero:not(.is-inview) .secConceptHeroBg {
        opacity: 0;
    }

    /* スクロール中／離脱中とも fixed を維持（absolute 切替は白抜けの原因になる） */
    .secConceptHero.is-scrolling .secConceptHeroBg,
    .secConceptHero.is-past .secConceptHeroBg {
        position: fixed;
        inset: auto;
        top: 0;
        right: 0;
        bottom: auto;
        left: 0;
        width: 100%;
        max-width: 40rem;
        margin-inline: auto;
        height: 100vh;
        height: 100lvh;
        min-height: 0;
        clip-path: none;
        background-position: center top;
        background-size: cover;
        background-color: transparent;
        filter: none;
    }

    .secConceptHero .heroInner01.hero2 {
        /* Phase2 全文表示後の冗長スクロールを抑える（旧 300rem） */
        height: calc(150rem + var(--concept-hero-track-extra, 0px));
    }

    .secConceptHero .hero2Inner {
        flex-direction: column;
        justify-content: center;
        align-items: center;
        gap: 3rem;
        height: var(--concept-hero-inner-h, 100vh);
        height: var(--concept-hero-inner-h, 100lvh);
        width: 100%;
        max-width: none;
        box-sizing: border-box;
    }

    .secConceptHero .hero2Inner.is-fixed {
        position: fixed;
        top: 0;
        /* translateX(-50%) ?????????????????? auto ????? */
        left: 0;
        right: 0;
        transform: none;
        margin-left: auto;
        margin-right: auto;
        width: calc((335 / 375) * 100%);
        max-width: none;
        justify-content: flex-start;
        will-change: auto;
        /* Phase2 ?????? secPoint ??????????????? JS ???? */
        overflow: hidden;
    }

    /* コンセプトTOP：フェーズ切替で justify を動かさず、上寄せ固定（performance 準拠） */
    .secConceptHero:has(.boxHeroLogo) .hero2Inner.is-fixed {
        align-items: center;
        overflow: hidden;
        padding-top: calc(var(--concept-header-h, 6.5rem) + 4rem);
        padding-bottom: 2rem;
        box-sizing: border-box;
    }

    .secConceptHero .boxHeroLogo {
        width: 60%;
        max-width: none;
        padding-top: 0;
        box-sizing: border-box;
        justify-content: center;
    }

    .secConceptHero .boxHeroLogo.is-fixed {
        position: fixed;
        top: 16rem;
        left: 0;
        right: 0;
        transform: none;
        margin-left: auto;
        margin-right: auto;
        width: 60%;
        max-width: none;
        will-change: auto;
    }

    .secConceptHero .boxHeroLogo .boxImg {
        width: 29.6rem;
    }

    .secConceptHero .heroInner01.hero2.is-end {
        align-items: flex-end;
        padding-bottom: 0;
    }

    .secConceptHero .heroInner01.hero2.is-end .hero2Inner {
        /* fixed ????????????center ?????????????????????? */
        justify-content: flex-start;
        align-items: center;
        padding-bottom: 0;
        box-sizing: border-box;
    }

    .secConceptHero:has(.boxHeroLogo) .heroInner01.hero2.is-end .hero2Inner {
        padding-top: calc(var(--concept-header-h, 6.5rem) + 4rem);
    }

    .secConceptHero .boxHero04 {
        flex-direction: column;
        align-items: center;
        width: 100%;
        max-width: 100%;
        padding-bottom: 0;
    }

    .secConceptHero:has(.boxHeroLogo) .boxHero04 {
        justify-content: flex-start;
        top: 0;
    }

    .secConceptHero .boxHero04 .boxTxt {
        width: 100%;
        min-width: 0;
        min-height: 28rem;
        justify-content: center;
    }

    .secConceptHero:has(.boxHeroLogo) .boxHero04 .boxTxt {
        position: relative;
        display: flex;
        align-items: flex-start;
        justify-content: center;
    }

    /* コンセプトTOP（boxHeroLogoあり）：ロゴは固定位置、テキストは absolute 重ねで opacity 切替 */
    .secConceptHero:has(.boxHeroLogo) {
        --hero-intro-logo-pad: clamp(7rem, 14vh, 11rem);
    }

    .secConceptHero:has(.boxHeroLogo) .boxHeroLogo.is-fixed {
        width: auto;
        max-width: calc(100% - 4rem);
    }

    /* ロゴ位置はフェーズ切替で動かさない（JS の opacity/blur のみ） */
    .secConceptHero:has(.boxHeroLogo) .boxHeroLogo,
    .secConceptHero:has(.boxHeroLogo) .boxHeroLogo.is-fixed {
        align-items: flex-start;
        padding-top: var(--hero-intro-logo-pad);
        box-sizing: border-box;
    }

    .secConceptHero:has(.boxHeroLogo) .boxHeroLogo .boxImg {
        width: clamp(24rem, 79vw, 29.6rem);
        flex-shrink: 0;
        max-width: 80%;
    }

    .secConceptHero .boxTxtPhase1 {
        display: none;
    }

    .secConceptHero:has(.boxHeroLogo) .boxTxtPhase1 {
        display: block;
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        width: 100%;
        text-align: center;
        opacity: 1;
        z-index: 2;
        /* JS が opacity をスクロール連動で書くため transition は切る */
        transition: none;
        backface-visibility: hidden;
        -webkit-font-smoothing: antialiased;
    }

    .secConceptHero:has(.boxHeroLogo) .boxTxtPhase1 .jsConceptLine {
        opacity: 1;
        transform: none;
        filter: none;
        transition: none;
    }

    .secConceptHero:has(.boxHeroLogo) .boxTxtPhase1 .titHero {
        font-size: 2rem;
        letter-spacing: 0.12em;
        line-height: 1.7;
        text-align: center;
        white-space: nowrap;
        font-size: 2.5rem;
        letter-spacing: 0;
    }

    .secConceptHero:has(.boxHeroLogo) .boxTxtPhase1 .txtHero+.txtHero {
        margin-top: 0.4rem;
    }

    .secConceptHero .boxTxtPhase2 {
        position: relative;
    }

    .secConceptHero:has(.boxHeroLogo) .boxTxtPhase2 {
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        width: 100%;
        transition: none;
    }

    .secConceptHero .txtHero {
        text-align: center;
        font-size: 1.5rem;
        line-height: 2.4;
        text-shadow: 0 0 0.9rem rgba(245, 240, 234, 0.75);
    }

    /* concept top: big title sits on the photo, so give it a stronger glow */
    .secConceptHero:has(.boxHeroLogo) .boxTxtPhase1 .titHero {
        text-shadow:
            0 0 0.4rem rgba(245, 240, 234, 1),
            0 0 0.8rem rgba(245, 240, 234, 1),
            0 0 1.6rem rgba(245, 240, 234, 0.95),
            0 0 2.4rem rgba(245, 240, 234, 0.8);
    }

    .secConceptHero .boxTxtPhase2 .txtHero {
        font-size: var(--spFontSize12);
        letter-spacing: 0;
        line-height: calc(30 / 14);
        text-align: center;
        font-feature-settings: "palt";
        white-space: nowrap;
    }

    .secConceptHero .boxTxtPhase2 .txtHero+.txtHero {
        margin-top: 0;
    }

    .secConceptHero .boxTxtPhase2 .txtHero.txtHeroGap {
        margin-top: 2rem;
    }

    .secConceptHero .boxHero04 .boxTxt::before {
        display: none;
    }

    .secConceptHero .boxConcept {
        display: none;
    }

    /* 短身長SP：ピン中に Phase2 をパン（離脱時の白グラデ重なりを避ける） */
    .secConceptHero.is-text-pan.is-phase2 .boxTxtPhase2 {
        will-change: transform;
    }

    .secConceptHero.is-text-pan.is-phase2 .hero2Inner.is-fixed {
        overflow: hidden;
    }
}

@media (max-width: 1215px) and (max-height: 670px) {
    .secConceptHero:has(.boxHeroLogo) .boxHeroLogo .boxImg {
        max-width: 70%;
    }

    .secConceptHero:has(.boxHeroLogo) .boxHeroLogo,
    .secConceptHero:has(.boxHeroLogo) .boxHeroLogo.is-fixed {
        padding-top: clamp(5rem, 10vh, 8rem);
    }

    .secConceptHero .heroInner01.hero2 {
        height: calc(160rem + var(--concept-hero-track-extra, 0px));
    }
}

/* ???SP?????????????????????? */
@media (max-width: 1215px) and (max-height: 500px) {

    .secConceptHeroBg,
    .secConceptHero.is-past .secConceptHeroBg {
        position: absolute;
        inset: 0;
        top: 0;
        right: 0;
        bottom: 0;
        left: 0;
        opacity: 1 !important;
        filter: none !important;
        width: 100%;
        max-width: 40rem;
        margin-inline: auto;
        background-size: cover;
        background-color: transparent;
        background-position: center top;
        clip-path: none;
    }

    .secConceptHero:not(.is-inview) .secConceptHeroBg {
        opacity: 1 !important;
    }

    .secConceptHeroBgFog {
        opacity: 1;
    }

    .secConceptHero .heroInner01.hero2 {
        height: auto;
        min-height: 0;
        padding: 4rem 0 6rem;
        align-items: flex-start;
    }

    .secConceptHero .hero2Inner,
    .secConceptHero .hero2Inner.is-fixed {
        position: relative;
        top: auto;
        left: auto;
        transform: none;
        width: 100%;
        max-width: none;
        height: auto;
        will-change: auto;
        justify-content: flex-start;
    }

    .secConceptHero .boxHeroLogo,
    .secConceptHero .boxHeroLogo.is-fixed {
        position: relative;
        top: auto;
        left: auto;
        transform: none;
        width: auto;
        max-width: calc(100% - 4rem);
        height: auto;
        margin: 0 auto 2rem;
        padding-top: 0;
        opacity: 1;
        filter: none;
        will-change: auto;
        justify-content: center;
        display: none;

    }

    .secConceptHero:has(.boxHeroLogo) .boxHeroLogo .boxImg {
        width: clamp(18rem, 50vw, 24rem);
        max-width: 60%;
    }

    .secConceptHero:has(.boxHeroLogo) .boxHero04 .boxTxt {
        transform: none;
        min-height: 0;
        flex-direction: column;
    }

    .secConceptHero:has(.boxHeroLogo) .boxTxtPhase1 {
        position: relative;
        top: auto;
        margin-bottom: 2rem;
    }

    .secConceptHero:has(.boxHeroLogo) .boxTxtPhase2 {
        position: relative;
        top: auto;
        right: auto;
        left: auto;
    }

    .secConceptHero .jsConceptLine {
        opacity: 1;
        transform: none;
        filter: none;
    }
}

/*-----------------------------------------------
    secPoint
-----------------------------------------------*/
.secPoint {
    padding: 8rem 0 10rem;
    position: relative;
    z-index: 2;
}

.secPoint .poinTit {
    text-align: center;
}

.secPoint .pointSubTit {
    margin: 0 0 0.8rem;
    color: var(--colorBrown);
    font-size: var(--pcFontSize30);
    letter-spacing: var(--pcLetterSpacing100);
    line-height: 1.6;
}

.secPoint .pointMainTit {
    margin: 0;
    color: var(--colorBrown);
    font-size: var(--pcFontSize60);
    letter-spacing: var(--pcLetterSpacing100);
    line-height: 1.2;
    font-weight: 400;
}

.secPoint .pointNum {
    display: inline-block;
    font-size: var(--pcFontSize100);
    line-height: 1;
}

.secPoint .pointList {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 4rem;
    margin: 4rem 0 0;
    padding: 0;
    list-style: none;
}

.secPoint .pointList .item {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    flex-shrink: 0;
    box-sizing: border-box;
    width: 44rem;
    height: 57rem;
    padding: 4.5rem 4rem 5rem;
    background: var(--whiteColor);
    box-shadow: 0px 0px 9.5px 0.5px rgba(0, 0, 0, 0.15);
}

.secPoint .itemTit {
    margin: 0;
    color: var(--colorBrown);
    font-size: var(--pcFontSize30);
    letter-spacing: var(--pcLetterSpacing150);
    font-weight: bold;
    line-height: 1.4;
    text-align: center;
}

.secPoint .itemEng {
    margin: 0.8rem 0 0;
    color: var(--colorBrown);
    font-size: var(--pcFontSize18);
    letter-spacing: var(--pcLetterSpacing30);
    line-height: 1;
    text-align: center;
    font-weight: 300;
}

.secPoint .itemImg {
    width: 100%;
    margin-top: 2.4rem;
}

.secPoint .itemImg picture,
.secPoint .itemImg img {
    display: block;
    width: 100%;
    height: auto;
}

.secPoint .itemTxt {
    margin: 2.2rem 0 0;
    color: var(--colorBrown);
    font-size: var(--pcFontSize15);
    line-height: 2;
    letter-spacing: var(--pcLetterSpacing100);
    text-align: center;
    font-weight: bold;
    font-feature-settings: "palt";
}

.secPoint .itemBtn {
    width: 100%;
    margin-top: auto;
    padding-top: 1.6rem;
    display: flex;
    justify-content: center;
}

.secPoint .itemBtn .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.8rem;
    margin: 0 auto;
    position: relative;
    overflow: hidden;
    isolation: isolate;
    box-sizing: border-box;
    width: 30rem;
    height: 5.3rem;
    padding: 1.2rem 1.6rem;
    border: 0.1rem solid var(--orangeColor);
    background: var(--orangeColor);
    color: var(--whiteColor);
    font-size: var(--pcFontSize14);
    letter-spacing: var(--pcLetterSpacing50);
    text-decoration: none;
    transition: color 0.4s ease, border-color 0.4s ease;
}
.secPoint .itemBtn .btn::before {
    content: "";
    position: absolute;
    inset: 0;
    background-color: var(--whiteColor);
    transform: scaleX(0);
    transform-origin: left center;
    transition: transform 0.4s ease;
    z-index: -1;
}
.secPoint .itemBtn .btn:hover {
    opacity: 1;
    color: var(--orangeColor);
    border-color: var(--orangeColor);
}
.secPoint .itemBtn .btn:hover::before {
    transform: scaleX(1);
}
.secPoint .itemBtn .btn::after {
    content: "";
    position: relative;
    z-index: 1;
    flex-shrink: 0;
    width: 1.5rem;
    height: 1.5rem;
    background: url(../img/concept/pointArrow.png) center / contain no-repeat;
}
.secPoint .itemBtn .btn:hover::after {
    background-image: url(../img/common/iconArrowOrange_on.png);
}

@media only screen and (max-width: 1215px) {
    /* ヒーロー末尾→secPoint：写真→白を一続きのグラデでつなぐ */
    .secConceptHero,
    .secPoint {
        --concept-hero-fade-h: 26rem;
        --concept-point-overlap: 18rem;
        --concept-point-bridge: 20rem;
    }

    .secConceptHero:before {
        height: var(--concept-hero-fade-h);
        background: linear-gradient(
            to bottom,
            rgba(255, 255, 255, 0) 0%,
            rgba(255, 255, 255, 0.14) 22%,
            rgba(255, 255, 255, 0.4) 42%,
            rgba(255, 255, 255, 0.72) 62%,
            rgba(255, 255, 255, 0.92) 80%,
            #fff 100%
        );
        -webkit-mask-image: none;
        mask-image: none;
    }

    /*
     * ヒーロー下端より下へ白を伸ばす（透明に戻さない）。
     * 透明へ落とすと固定写真が再露出し、水平の切れ目になる。
     */
    .secConceptHero:after {
        display: block;
        bottom: calc(-1 * var(--concept-point-bridge));
        height: var(--concept-point-bridge);
        background: #fff;
        -webkit-mask-image: none;
        mask-image: none;
        z-index: 1;
    }

    .secPoint {
        margin-top: calc(-1 * var(--concept-point-overlap, 18rem));
        /* 見出しを溶け帯のすぐ下に置き、写真→白→3つの柱を一連に見せる */
        padding: calc(1.2rem + var(--concept-point-overlap, 18rem)) 0 4.4rem;
        z-index: 2;
        background: transparent;
        isolation: isolate;
    }

    /*
     * 重なり帯の先頭から白へ溶かし、ヒーロー下端以降は不透明白を維持。
     * （以前の top: overlap+2rem だと下端で固定写真が再露出し水平線になる）
     */
    .secPoint::before {
        content: "";
        position: absolute;
        left: 0;
        right: 0;
        top: 0;
        bottom: 0;
        z-index: 0;
        pointer-events: none;
        background: linear-gradient(
            to bottom,
            rgba(255, 255, 255, 0) 0%,
            rgba(255, 255, 255, 0.1) calc(var(--concept-point-overlap, 18rem) * 0.28),
            rgba(255, 255, 255, 0.38) calc(var(--concept-point-overlap, 18rem) * 0.55),
            rgba(255, 255, 255, 0.78) calc(var(--concept-point-overlap, 18rem) * 0.78),
            rgba(255, 255, 255, 0.96) calc(var(--concept-point-overlap, 18rem) * 0.92),
            #fff var(--concept-point-overlap, 18rem),
            #fff 100%
        );
    }

    .secPoint > * {
        position: relative;
        z-index: 1;
    }

    .secPoint .pointSubTit {
        margin-bottom: 0.2rem;
        font-size: var(--spFontSize18);
        letter-spacing: var(--spLetterSpacing50);
        line-height: 1.6;
    }

    .secPoint .pointMainTit {
        font-size: var(--spFontSize26);
        letter-spacing: var(--spLetterSpacing50);
    }

    .secPoint .pointNum {
        font-size: var(--spFontSize36);
    }

    .secPoint .pointList {
        flex-direction: column;
        align-items: center;
        gap: 2.4rem;
        /* ?3???????????????????? */
        margin: 2.8rem auto 0;
    }

    .secPoint .pointList .item {
        width: 100%;
        max-width: none;
        height: auto;
        min-height: 0;
        padding: 2.3rem 2rem 2.5rem;
    }

    .secPoint .itemTit {
        font-size: var(--spFontSize20);
        line-height: 1.3;
    }

    .secPoint .itemEng {
        margin-top: 0.4rem;
        font-size: var(--spFontSize12);
        letter-spacing: var(--spLetterSpacing50);
    }

    .secPoint .itemImg {
        width: 100%;
        margin-top: 1.8rem;
    }

    .secPoint .itemImg picture,
    .secPoint .itemImg img {
        max-width: 100%;
    }

    .secPoint .itemTxt {
        margin-top: 1.8rem;
        font-size: var(--spFontSize13);
        line-height: calc(20 / 13);
        font-weight: bold;
        white-space: nowrap;
    }

    .secPoint .itemBtn {
        margin-top: auto;
        padding: 2rem 1.5rem 0;
    }

    .secPoint .itemBtn .btn {
        width: 100%;
        height: auto;
        min-height: 4.6rem;
        padding: 1.2rem 1.6rem;
        font-size: var(--spFontSize13);
    }

    .secPoint .itemBtn .btn::after {
        width: 1.5rem;
        height: 1.5rem;
    }
}

/* 短身長SP：一般SPブロックより後で変数を上書き（カスケード順を確保） */
@media (max-width: 1215px) and (max-height: 670px) {
    .secConceptHero,
    .secPoint {
        /* 溶け帯を短くし、Phase2 末尾が白グラデに沈むのを防ぐ */
        --concept-hero-fade-h: 14rem;
        --concept-point-overlap: 10rem;
        --concept-point-bridge: 12rem;
    }
}

/*-----------------------------------------------
    secZeh
-----------------------------------------------*/
.secZeh {
    padding: 0rem 0 6rem;
    background: var(--whiteColor);
}

.secZeh .zehInner {
    position: relative;
    min-height: 73.2rem;
}

.secZeh .boxZehContent {
    position: relative;
    z-index: 2;
    width: 64rem;
    max-width: 100%;
    padding-top: 9.4rem;
    font-feature-settings: "palt";
}

.secZeh .zehLead {
    margin: 0;
    color: var(--colorBrown);
}

.secZeh .zehLeadLine {
    display: block;
}

.secZeh .zehLeadLine+.zehLeadLine {
    margin-top: 1.3rem;
}

.secZeh .zehLeadLineSub {
    font-size: var(--pcFontSize30);
    letter-spacing: var(--pcLetterSpacing100);
    line-height: 1.5;
}

.secZeh .zehLeadLineMain {
    font-size: var(--pcFontSize50);
    letter-spacing: var(--pcLetterSpacing80);
    line-height: 1.35;
}

.secZeh .zehTit {
    margin: 6.2rem 0 0;
    padding: 0 0 1.1rem;
    border-bottom: 0.1rem solid rgba(48, 43, 41, 0.25);
    color: var(--colorBrown);
    font-size: var(--pcFontSize25);
    font-weight: bold;
    letter-spacing: var(--pcLetterSpacing100);
    line-height: 1.4;
}

.secZeh .zehTxt {
    margin: 2.2rem 0 0;
    color: var(--colorBrown);
    font-size: var(--pcFontSize15);
    letter-spacing: var(--pcLetterSpacing50);
    line-height: 2;
}

.secZeh .zehNote {
    margin: 2.2rem 0 0;
    color: var(--colorBrown);
    font-size: var(--pcFontSize13);
    letter-spacing: var(--pcLetterSpacing50);
    line-height: 1.6;
}

.secZeh .boxZehImages {
    position: absolute;
    right: 0;
    bottom: 0;
    z-index: 1;
    width: 66rem;
    height: 73.2rem;
}

.secZeh .imgZeh {
    position: absolute;
}

.secZeh .imgZeh img {
    display: block;
    width: 100%;
    height: auto;
    box-shadow: 0px 0px 9.5px 0.5px rgba(0, 0, 0, 0.15);
}

.secZeh .imgZeh01 {
    right: 0;
    top: 0;
    width: 55rem;
}

.secZeh .imgZeh02 {
    bottom: 0;
    left: 0;
    width: 26rem;
}

@media only screen and (max-width: 1215px) {
    .secZeh {
        padding: 0 0 6rem;
    }

    .secZeh .zehInner {
        min-height: 0;
        display: flex;
        flex-direction: column;
    }

    .secZeh .boxZehContent {
        width: 100%;
        padding-top: 0;
    }

    .secZeh .zehLead {
        text-align: center;
    }

    .secZeh .zehLeadLine+.zehLeadLine {
        margin-top: 0.6rem;
    }

    .secZeh .zehLeadLineSub {
        font-size: var(--spFontSize18);
        letter-spacing: var(--spLetterSpacing50);
        line-height: 1.5;
    }

    .secZeh .zehLeadLineMain {
        font-size: var(--spFontSize26);
        letter-spacing: var(--spLetterSpacing50);
        line-height: 1.35;
    }

    .secZeh .zehTit {
        margin-top: 3rem;
        padding-bottom: 1.1rem;
        font-size: var(--spFontSize14);
        letter-spacing: var(--spLetterSpacing50);
    }

    .secZeh .zehTxt {
        margin-top: 1.4rem;
        font-size: var(--spFontSize12);
        line-height: calc(22 / 12);
    }

    .secZeh .zehNote {
        margin-top: 1.5rem;
        font-size: var(--spFontSize11);
        line-height: 1.6;
    }

    .secZeh .boxZehImages {
        position: relative;
        right: auto;
        bottom: auto;
        left: auto;
        width: 100%;
        height: auto;
        margin: 3.2rem auto 0;
    }

    .secZeh .imgZeh img {
        box-shadow: 0 0 0.5rem rgba(237, 237, 228, 1);
    }

    .secZeh .imgZeh01 {
        position: relative;
        top: auto;
        right: auto;
        left: 2.5rem;
        width: calc((247 / 335) * 100%);
        max-width: 24.7rem;
        margin: 0 auto;
    }

    .secZeh .imgZeh02 {
        bottom: -2.3rem;
        left: 1.9rem;
        top: auto;
        right: auto;
        width: calc((117 / 335) * 100%);
        max-width: 11.7rem;
        margin: 0 auto;
    }
}

/*-----------------------------------------------
    secBgStrength / secStrength
-----------------------------------------------*/
.secBgStrength.lazyloaded {
    background: #fff url(../img/concept/bgStrength.jpg) center top / 100% auto no-repeat;
}

.secBgStrength {
    position: relative;
}



.secStrength {
    position: relative;
}

.secStrength .boxStrengthInner {
    position: relative;
    z-index: 1;
    padding: 7.2rem 0 13rem;
}

.secStrength .boxStrengthHead {
    margin: 0 0 5.6rem;
    color: var(--colorBrown);
}

.secStrength .strengthLead {
    margin: 0;
}

.secStrength .strengthLeadLine {
    display: block;
    font-size: var(--pcFontSize50);
    letter-spacing: var(--pcLetterSpacing100);
    line-height: 1.6;
}

.secStrength .strengthLeadLine .smallTxt {
    font-size: var(--pcFontSize35);
}

.secStrength .strengthLeadLineEm {
    line-height: 1.3;
    margin-top: 1rem;
}

.secStrength .strengthLeadEm {
    color: var(--orangeColor);
    font-size: var(--pcFontSize70);
    letter-spacing: var(--pcLetterSpacing50);
}

.secStrength .strengthTxt {
    margin: 3rem 0 0;
    font-size: var(--pcFontSize24);
    letter-spacing: var(--pcLetterSpacing100);
    line-height: 2.6;
}

.secStrength .strengthTxt .bigTxt {
    font-size: var(--pcFontSize30);
    line-height: 2;
}

.secStrength .boxStrengthPrice {
    display: inline-grid;
    grid-template-columns: 13rem auto;
    align-items: center;
    vertical-align: top;
    color: var(--colorBrown);
    padding: 0 0 6.2rem;
}

.secStrength .txtStrengthPlan {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 0.4rem;
    width: 13rem;
    height: 13rem;
    margin: 0 2rem 0 0;
    border-radius: 50%;
    background-color: var(--orangeColor);
    color: var(--whiteColor);
    align-items: center;
}

.secStrength .txtStrengthPlanHead {
    display: flex;
    align-items: baseline;
    justify-content: center;
}

.secStrength .txtStrengthPlanNum {
    font-size: var(--pcFontSize55);
}

.secStrength .txtStrengthPlanTsubo {
    margin-left: 0.2rem;
    font-size: var(--pcFontSize27);
}

.secStrength .txtStrengthPrice {
    display: flex;
    align-items: flex-end;
    grid-column: 2;
    grid-row: 1;
    margin: 0;
    color: var(--orangeColor);
}

.secStrength .txtStrengthPriceNum {
    font-size: var(--pcFontSize150);
}

.secStrength .txtStrengthPriceNum .smallNum {
    font-size: var(--pcFontSize100);
}

.secStrength .txtStrengthPriceUnit {
    margin: 0 0 2rem 1rem;
    color: var(--colorBrown);
    font-size: var(--pcFontSize30);
    font-weight: 700;
    letter-spacing: var(--pcLetterSpacing50);
    display: flex;
    text-shadow:
        0 0 8px rgba(255, 255, 255, 0.9),
        /* ?????????????? */
        0 0 15px rgba(255, 255, 255, 0.7),
        /* ?????? */
        0 0 30px rgba(255, 255, 255, 0.5),
        /* ??????? */
        0 0 50px rgba(255, 255, 255, 0.3);
    /* ??????????? */
}

.secStrength .txtStrengthPriceUnit .txtTax {
    font-size: var(--pcFontSize14);
    display: block;
    padding: 1rem 0 0;
}

.secStrength .txtStrengthPriceSub {
    font-size: var(--pcFontSize16);
    font-weight: 700;
    letter-spacing: var(--pcLetterSpacing50);
    text-align: right;
    margin-top: -0.8rem;
    text-shadow:
        0 0 8px rgba(255, 255, 255, 0.9),
        0 0 15px rgba(255, 255, 255, 0.7),
        0 0 30px rgba(255, 255, 255, 0.5),
        0 0 50px rgba(255, 255, 255, 0.3);
}

.secStrength .txtStrengthPriceSub .txtTax {
    font-size: var(--pcFontSize11);
}

.secStrength .boxStrengthSpec {
    display: inline-flex;
    margin: 0;
    position: relative;
}

.secStrength .boxStrengthSpecItem {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 33rem;
    height: 33rem;
    padding-top: 9rem;
    border: 1px solid #bbbab9;
    border-radius: 50%;
    text-align: center;
    text-shadow: 0 0 2rem rgba(255, 255, 255, 1), 0 0 2rem rgba(255, 255, 255, 1), 0 0 2rem rgba(255, 255, 255, 1);
    position: relative;
    z-index: 2;
}

.secStrength .boxStrengthSpecItem:nth-child(2) {
    z-index: 1;
    border-color: transparent;
}

.secStrength .boxStrengthSpecItem+.boxStrengthSpecItem:not(.isCover) {
    margin-left: -1.8rem;
}

.secStrength .boxStrengthSpecItem.isCover {
    z-index: 3;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    margin: 0 auto;
    box-shadow: none;
    text-shadow: none;
}

.secStrength .txtStrengthSpecLabel {
    margin: 0 0 0;
    color: var(--orangeColor);
    font-size: var(--pcFontSize33);
    line-height: 1.25;
    letter-spacing: var(--pcLetterSpacing30);
    font-weight: 700;
}

.secStrength .txtStrengthSpecNum {
    margin: 0;
    color: var(--orangeColor);
    font-size: var(--pcFontSize77);
    line-height: 0.95;
    letter-spacing: 0;
}

.secStrength .txtStrengthSpecNum .txtStrengthSpecAvg {
    margin: 0 0 0.8rem;
    color: var(--orangeColor);
    font-size: var(--pcFontSize33);
    line-height: 1.25;
    letter-spacing: var(--pcLetterSpacing30);
    font-weight: 700;
}

.secStrength .txtStrengthSpecNum .txtSmall {
    font-size: var(--pcFontSize33);
    letter-spacing: var(--pcLetterSpacing50);
}

.secStrength .txtStrengthSpecNote {
    margin: 0.8rem 0 0;
    color: var(--colorBrown);
    font-size: var(--pcFontSize25);
    line-height: 1.45;
    letter-spacing: var(--pcLetterSpacing50);
}

.secStrength .boxStrengthImages {
    position: absolute;
    right: -27rem;
    bottom: 53rem;
    z-index: 2;
    width: 87.2rem;
    height: 54.7rem;
}

.secStrength .imgStrength img {
    width: 100%;
    height: auto;
}

.secStrength .imgStrength {
    width: 30rem;
    position: absolute;
    top: 0;
}

.secStrength .imgStrength01 {
    left: 0rem;
}

.secStrength .imgStrength02 {
    top: 14.7rem;
    right: 30.9rem;
}

.secStrength .imgStrength03 {
    right: 0rem;
}

@media only screen and (max-width: 1600px) {
    .secStrength .boxStrengthImages {
        right: -10rem;
    }
}

@media only screen and (max-width: 1215px) {
    .secBgStrength.lazyloaded {
        background-image: url(../img/concept/bgStrength_sp.jpg);
    }

    .secBgStrength {
        background-color: #edede5;
        background-position: center bottom;
        background-size: 100% auto;
        overflow: hidden;
    }

    .secStrength .boxStrengthInner {
        position: relative;
        z-index: 1;
        padding: 3.7rem 0 36.4rem;
        display: flex;
        flex-direction: column;
        align-items: center;
    }

    .secStrength .boxStrengthHead {
        width: 100%;
        margin: 0 0 1.8rem;
        text-align: center;
    }

    .secStrength .strengthLeadLine {
        font-size: var(--spFontSize26);
        letter-spacing: var(--spLetterSpacing50);
        line-height: 1.6;
    }

    .secStrength .strengthLeadLine .smallTxt {
        font-size: var(--spFontSize20);
    }

    .secStrength .strengthLeadLineEm {
        margin-top: 0;
        line-height: 1.4;
    }

    .secStrength .strengthLeadEm {
        font-size: var(--spFontSize30);
        letter-spacing: var(--spLetterSpacing50);
    }

    .secStrength .strengthTxt {
        margin-top: 1rem;
        font-size: var(--spFontSize14);
        letter-spacing: var(--spLetterSpacing50);
        line-height: calc(32 / 18);
        text-align: center;
        text-shadow: 0 0 2rem rgba(237, 237, 228, 1), 0 0 2rem rgba(237, 237, 228, 1), 0 0 2rem rgba(237, 237, 228, 1);
        white-space: nowrap;
        font-feature-settings: "palt";
    }

    .secStrength .strengthTxt .bigTxt {
        font-size: var(--spFontSize18);
        line-height: calc(32/18);
    }

    .secStrength .boxStrengthPrice {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 0;
        width: 100%;
        padding: 0 0 3rem;
        font-feature-settings: "palt";
        white-space: nowrap;
    }

    .secStrength .txtStrengthPlan {
        flex-shrink: 0;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 0;
        width: 5.5rem;
        height: 5.5rem;
        margin: 0;
        border-radius: 50%;
        background-color: var(--orangeColor);
        color: var(--whiteColor);
        margin-bottom: 2rem;
    }

    .secStrength .txtStrengthPlanNum {
        font-size: var(--spFontSize22);
    }

    .secStrength .txtStrengthPlanTsubo {
        margin-left: 0.1rem;
        font-size: var(--spFontSize15);
    }

    .secStrength .boxStrengthPriceRight {
        flex-shrink: 1;
        min-width: 0;
        text-shadow: 0 0 2rem rgba(237, 237, 228, 1), 0 0 2rem rgba(237, 237, 228, 1), 0 0 2rem rgba(237, 237, 228, 1);
    }

    .secStrength .txtStrengthPrice {
        display: inline-flex;
        align-items: flex-end;
    }

    .secStrength .txtStrengthPriceNum {
        font-size: var(--spFontSize70);
        line-height: 1;
    }

    .secStrength .txtStrengthPriceNum .smallNum {
        font-size: var(--spFontSize45);
    }

    .secStrength .txtStrengthPriceUnit {
        margin: 0 0 0.6rem 0.4rem;
        font-size: var(--spFontSize15);
        letter-spacing: 0;
    }

    .secStrength .txtStrengthPriceUnit .txtTax {
        font-size: var(--spFontSize11);
        padding: 0.2rem 0 0;
    }

    .secStrength .txtStrengthPriceSub {
        margin: 0.7rem 5.5rem 0 0;
        font-size: var(--spFontSize14);
        text-align: center;
    }

    .secStrength .txtStrengthPriceSub .txtTax {
        font-size: var(--spFontSize11);
    }

    .secStrength .boxStrengthSpec {
        display: flex;
        justify-content: center;
        position: relative;
        top: auto;
        left: auto;
        width: 100%;
        max-width: 33.5rem;
        margin: 0 auto;
    }

    .secStrength .boxStrengthSpecItem {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        flex-shrink: 0;
        box-sizing: border-box;
        width: min(15rem, calc((100vw + 2.4rem) / 3));
        height: min(15rem, calc((100vw + 2.4rem) / 3));
        padding: 1.6rem 0.8rem 1.2rem;
        box-shadow: none;
        text-shadow: none;
    }

    .secStrength .boxStrengthSpecItem+.boxStrengthSpecItem:not(.isCover) {
        margin-left: -1.2rem;
    }

    .secStrength .boxStrengthSpecItem.isCover {
        width: min(15rem, calc((100vw + 2.4rem) / 3));
        height: min(15rem, calc((100vw + 2.4rem) / 3));
    }

    .secStrength .txtStrengthSpecLabel {
        margin-bottom: 0;
        font-size: clamp(1.4rem, 4.8vw, 1.8rem);
        letter-spacing: var(--spLetterSpacing30);
        line-height: 1.2;
    }

    .secStrength .txtStrengthSpecNum {
        font-size: clamp(4rem, 14.9vw, 5.6rem);
        line-height: 1;
    }

    .secStrength .txtStrengthSpecNum .txtSmall {
        font-size: clamp(1.1rem, 3.7vw, 1.4rem);
    }

    .secStrength .txtStrengthSpecNum .txtStrengthSpecAvg {
        margin: 0 0 0.2rem;
        font-size: clamp(1.1rem, 3.7vw, 1.4rem);
        line-height: 1.2;
        letter-spacing: var(--spLetterSpacing30);
        font-weight: 700;
    }

    .secStrength .txtStrengthSpecNote {
        margin-top: 0.2rem;
        font-size: clamp(0.9rem, 2.9vw, 1.1rem);
        line-height: 1.3;
        letter-spacing: var(--spLetterSpacing50);
    }

    .secStrength .boxStrengthImages {
        position: absolute;
        right: 0;
        left: 0;
        bottom: 5.5rem;
        max-width: 100%;
        width: 35.4rem;
        height: 22.1rem;
        margin: 0 auto;
    }

    .secStrength .imgStrength {
        width: 12.2rem;
    }

    .secStrength .imgStrength img {
        filter: drop-shadow(0 0 0.5rem rgba(237, 237, 228, 1));
    }

    .secStrength .imgStrength01 {
        left: -1rem;
    }

    .secStrength .imgStrength02 {
        top: 5.9rem;
        right: 11.6rem;
    }

    .secStrength .imgStrength03 {
        right: -1rem;
    }
}


/*-----------------------------------------------
    secSecret
-----------------------------------------------*/
.secSecret {
    padding: 0 0 11.5rem;
}

.secSecret .secretTit {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    width: 100%;
    height: 30rem;
    text-align: center;
    color: var(--whiteColor);
}

.secSecret .secretTit.lazyloaded {
    background: #fff url(../img/concept/bgSecretTit.jpg) center top / cover no-repeat;
}

.secSecret .secretSubTit {
    margin-bottom: 3rem;
    font-size: var(--pcFontSize30);
    letter-spacing: var(--pcLetterSpacing100);
}

.secSecret .secretMainTit {
    font-size: var(--pcFontSize50);
    letter-spacing: var(--pcLetterSpacing100);
}

.secSecret .list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8.7rem 4rem;
    margin: 9rem 0 0;
    padding: 0;
    list-style: none;
}

.secSecret .item {
    display: flex;
    flex-direction: column;
}

.secSecret .itemImg picture,
.secSecret .itemImg img {
    display: block;
    width: 100%;
    height: auto;
}

.secSecret .itemBody {
    position: relative;
    z-index: 1;
    width: calc(100% - 4rem);
    max-width: 45rem;
    margin: -10rem 0 0;
    padding: 2.6rem 3rem 0;
    background: var(--whiteColor);
    box-sizing: border-box;
}

.secSecret .itemNum {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin: 0 0 0.8rem;
    color: var(--orangeColor);
    font-size: var(--pcFontSize40);
    font-weight: 300;
    line-height: 1;
    letter-spacing: 0;
}

.secSecret .itemNum::after {
    content: "";
    flex-shrink: 0;
    width: 5rem;
    height: 0.1rem;
    background: var(--orangeColor);
}

.secSecret .itemTit {
    margin: 0 0 1.3rem;
    color: var(--textColor);
    font-size: var(--pcFontSize24);
    font-weight: bold;
    letter-spacing: var(--pcLetterSpacing100);
    line-height: calc(50 / 24);
    font-feature-settings: "palt";
}

.secSecret .itemTxt {
    margin: 0;
    color: var(--textColor);
    font-size: var(--pcFontSize16);
    letter-spacing: var(--pcLetterSpacing150);
    line-height: calc(38 /16);
    font-feature-settings: "palt";
    padding: 0 0 0 3rem;
}

@media only screen and (max-width: 1215px) {
    .secSecret {
        padding: 0 0 4.5rem;
    }

    .secSecret .secretTit.lazyloaded {
        background: #fff url(../img/concept/bgSecretTit_sp.jpg) center top / cover no-repeat;
    }

    .secSecret .secretTit {
        height: 12rem;
    }

    .secSecret .secretSubTit {
        margin-bottom: 1.5rem;
        font-size: var(--spFontSize16);
        letter-spacing: var(--spLetterSpacing50);
    }

    .secSecret .secretMainTit {
        font-size: var(--spFontSize22);
        letter-spacing: var(--spLetterSpacing50);
    }

    .secSecret .list {
        grid-template-columns: minmax(0, 1fr);
        gap: 3.2rem;
        margin-top: 4rem;
    }

    .secSecret .itemImg {
        width: 100%;
    }

    .secSecret .itemBody {
        position: static;
        z-index: auto;
        width: 59.705%;
        margin: -3.5rem 0 0;
        max-width: none;
        padding: 2rem 0 0;
    }

    .secSecret .itemNum {
        gap: 0.5rem;
        margin-bottom: 1.1rem;
        font-size: var(--spFontSize22);
    }

    .secSecret .itemNum::after {
        width: 3.5rem;
    }

    .secSecret .itemTit {
        margin: 0;
        padding: 0 0 0.9rem;
        font-size: var(--spFontSize16);
        letter-spacing: var(--spLetterSpacing50);
        line-height: 2;
        white-space: nowrap;
    }

    .secSecret .itemTxt {
        padding: 1.6rem 0 0;
        font-size: var(--spFontSize14);
        letter-spacing: var(--spLetterSpacing50);
        line-height: calc(24 / 14);
        border-top: 0.1rem solid var(--borderColor);
    }
}



/*-----------------------------------------------
    secFlow
-----------------------------------------------*/
.secFlow {
    padding: 0 0 2.5rem;
}

.secFlow .flowTit {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    width: 100%;
    height: 30rem;
    text-align: center;
    color: var(--whiteColor);
}

.secFlow .flowTit.lazyloaded {
    background: #fff url(../img/concept/bgFlowTit.jpg) center top / cover no-repeat;
}

.secFlow .flowSubTit {
    margin-bottom: 3rem;
    font-size: var(--pcFontSize30);
    letter-spacing: var(--pcLetterSpacing100);
}

.secFlow .flowMainTit {
    font-size: var(--pcFontSize50);
    letter-spacing: var(--pcLetterSpacing100);
}

.secFlow .boxFlowList.lazyloaded {
    background: url(../img/common/bgBeige.png) #e7e7db repeat;
}

.secFlow .boxFlowList {
    position: relative;
    padding: 6rem 0 0;
}

.secFlow .boxFlowList::before {
    position: absolute;
    content: '';
    margin: auto;
    display: block;
    left: 0;
    width: 100%;
    top: -16rem;
    height: 16rem;
    -webkit-mask-image: linear-gradient(to bottom, transparent 0%, black 100%);
    mask-image: linear-gradient(to bottom, transparent 0%, black 100%);
    background: repeat, #e7e7db;
    z-index: -1;
}

.secFlow .boxFlowList.lazyloaded::before {
    background-image: url(../img/common/bgBeige.png);
}


.secFlow .boxFlowList::after {
    content: "";
    display: block;
    width: 100%;
    height: 100rem;
    background: linear-gradient(to top, rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 0) 100%);
    position: absolute;
    bottom: 0;
    left: 0;
    z-index: 0;
}

.secFlow .flowList {
    position: relative;
    margin: 0;
    padding: 0 0 10rem 10rem;
    list-style: none;
    z-index: 10;
}

.secFlow .flowItem {
    display: flex;
    position: relative;
    width: 100%;
}

.secFlow .flowItem::before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: -9rem;
    width: 0.1rem;
    height: calc(100% + 4rem);
    background: var(--whiteColor);
}

.secFlow .flowItem:first-child::before {
    top: 4.8rem;
}

.secFlow .flowItem:last-child::before {
    bottom: auto;
    height: 5rem;
}

.secFlow .flowItem+.flowItem {
    margin-top: 4.7rem;
}

.secFlow .flowMarker {
    position: absolute;
    top: 4.8rem;
    left: -10rem;
    z-index: 2;
    width: 2rem;
    height: 2rem;
    border-radius: 50%;
    background: var(--orangeColor);
}

.secFlow .flowCard {
    display: flex;
    flex: 1 1 auto;
    align-items: stretch;
    min-width: 0;
    min-height: 40rem;
    background: var(--whiteColor05);
}

.secFlow .flowCardBody {
    display: flex;
    flex-direction: column;
    min-width: 0;
    width: 76rem;
    padding: 4.6rem 4rem 5.5rem 6rem;
    box-sizing: border-box;
}

.secFlow .flowCardHead {
    flex-shrink: 0;
}

.secFlow .flowStep {
    margin: 0 0 1.2rem;
    color: var(--orangeColor);
    font-size: var(--pcFontSize22);
    font-weight: 300;
    letter-spacing: var(--pcLetterSpacing30);
    line-height: 1;
}

.secFlow .flowCardTit {
    margin: 0;
    padding: 0 0 1.8rem;
    border-bottom: 0.1rem solid var(--borderColorLightGrey);
    color: var(--textColor);
    font-size: var(--pcFontSize30);
    font-weight: bold;
    letter-spacing: var(--pcLetterSpacing100);
    line-height: 1.5;
    font-feature-settings: "palt";
}

.secFlow .flowCardCont {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    min-height: 0;
}

.secFlow .flowCardTxt {
    margin: 2.5rem 0 0;
    color: var(--colorBrown);
    font-size: var(--pcFontSize16);
    letter-spacing: var(--pcLetterSpacing150);
    line-height: 2.3;
    font-feature-settings: "palt";
}

.secFlow .flowBtn {
    margin-top: 3.1rem;
}

.secFlow .flowBtn .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 1.1rem;
    min-height: 7rem;
    width: 40rem;
    padding: 1.2rem 5rem;
    position: relative;
    overflow: hidden;
    isolation: isolate;
    box-sizing: border-box;
    border: 0.1rem solid var(--colorDarkBrown);
    background: var(--colorDarkBrown);
    color: var(--whiteColor);
    font-size: var(--pcFontSize16);
    font-weight: bold;
    letter-spacing: var(--pcLetterSpacing100);
    line-height: 1.5;
    text-decoration: none;
    font-feature-settings: "palt";
    transition: color 0.4s ease, border-color 0.4s ease;
}
.secFlow .flowBtn .btn::before {
    content: "";
    position: absolute;
    inset: 0;
    background-color: var(--whiteColor);
    transform: scaleX(0);
    transform-origin: left center;
    transition: transform 0.4s ease;
    z-index: -1;
}
.secFlow .flowBtn .btn:hover {
    opacity: 1;
    color: var(--colorDarkBrown);
}
.secFlow .flowBtn .btn:hover::before {
    transform: scaleX(1);
}
.secFlow .flowBtn .btnArrow {
    position: relative;
    z-index: 1;
    display: block;
    flex-shrink: 0;
    width: 0.7rem;
    height: 0.7rem;
    background: url(../img/concept/btnArrow.png) center / contain no-repeat;
}
.secFlow .flowBtn .btn:hover .btnArrow {
    filter: invert(1);
}

.secFlow .flowBtn .btn.isLink {
    position: relative;
    justify-content: center;
    gap: 0;
    padding: 1.2rem 5.5rem;
    border: 0.1rem solid var(--colorBorderGray02);
    background: transparent;
    color: var(--colorBrown);
}
.secFlow .flowBtn .btn.isLink::before {
    background-color: var(--colorDarkBrown);
}
.secFlow .flowBtn .btn.isLink:hover {
    color: var(--whiteColor);
    border-color: var(--colorDarkBrown);
}
.secFlow .flowBtn .btn.isLink:hover .btnArrow {
    filter: none;
}

.secFlow .flowBtn .btn.isLink .btnIco {
    position: absolute;
    z-index: 1;
    top: 50%;
    right: 2rem;
    width: 2.4rem;
    height: 2.4rem;
    border-radius: 50%;
    background: var(--colorDarkBrown);
    transform: translateY(-50%);
}
.secFlow .flowBtn .btn.isLink:hover .btnIco {
    background: var(--whiteColor);
}

.secFlow .flowBtn .btn.isLink .btnIco::before,
.secFlow .flowBtn .btn.isLink .btnIco::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    background: var(--whiteColor);
    transform: translate(-50%, -50%);
}
.secFlow .flowBtn .btn.isLink:hover .btnIco::before,
.secFlow .flowBtn .btn.isLink:hover .btnIco::after {
    background: var(--colorDarkBrown);
}

.secFlow .flowBtn .btn.isLink .btnIco::before {
    width: 1rem;
    height: 0.1rem;
}

.secFlow .flowBtn .btn.isLink .btnIco::after {
    width: 0.1rem;
    height: 1rem;
}

.secFlow .flowCardImg {
    flex: 0 0 50%;
    max-width: 48rem;
    min-width: 0;
    max-height: 40rem;
    padding: 5rem 0 5rem 0;
    box-sizing: border-box;
}

.secFlow .flowCardImg img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

@media only screen and (max-width: 1215px) {
    .secFlow {
        padding: 0 0 1rem;
    }

    .secFlow .flowTit.lazyloaded {
        background: #fff url(../img/concept/bgFlowTit_sp.jpg) center top / cover no-repeat;
    }

    .secFlow .flowTit {
        position: relative;
        height: 12rem;
        overflow: hidden;
    }

    /* ???????????????????????? */
    .secFlow .flowTit::before {
        content: "";
        position: absolute;
        top: 0;
        right: 0;
        bottom: 0;
        left: 0;
        background: linear-gradient(to bottom,
                rgba(0, 0, 0, 0.35) 0%,
                rgba(0, 0, 0, 0.5) 50%,
                rgba(0, 0, 0, 0.45) 100%);
        z-index: 1;
        pointer-events: none;
    }

    .secFlow .flowSubTit,
    .secFlow .flowMainTit {
        position: relative;
        z-index: 2;
    }

    .secFlow .flowSubTit {
        margin-bottom: 1.5rem;
        font-size: var(--spFontSize16);
        letter-spacing: var(--spLetterSpacing50);
        line-height: 1.5;
    }

    .secFlow .flowMainTit {
        font-size: var(--spFontSize22);
        letter-spacing: var(--spLetterSpacing50);
    }

    .secFlow .boxFlowList {
        padding-top: 4rem;
    }

    .secFlow .boxFlowList::before {
        height: 16rem;
    }

    .secFlow .boxFlowList::after {
        height: 4rem;
    }

    .secFlow .flowList {
        padding: 0 0 4rem 2.8rem;
    }

    .secFlow .flowItem::before {
        left: -2.2rem;
        height: calc(100% + 2.5rem);
    }

    .secFlow .flowItem:first-child::before {
        top: 2.4rem;
    }

    .secFlow .flowItem:last-child::before {
        height: 2.5rem;
    }

    .secFlow .flowItem+.flowItem {
        margin-top: 2.5rem;
    }

    .secFlow .flowMarker {
        top: 1.9rem;
        left: -2.7rem;
        width: 1rem;
        height: 1rem;
    }

    .secFlow .flowCard {
        flex-direction: column;
        height: auto;
        padding: 1.7rem 2rem 2rem;
        min-height: auto;
    }

    .secFlow .flowCardBody {
        display: contents;
        width: auto;
        padding: 0;
    }

    .secFlow .flowCardHead {
        order: 1;
    }

    .secFlow .flowCardCont {
        order: 2;
        padding: 0;
        border-top: none;
        flex: none;
    }

    .secFlow .flowCardImg {
        order: 3;
        flex: 0 0 auto;
        max-width: none;
        width: 100%;
        padding: 1.5rem 0 0;
    }

    .secFlow .flowCardImg img {
        height: auto;
        aspect-ratio: 480 / 300;
    }

    .secFlow .flowStep {
        margin-bottom: 0.5rem;
        font-size: var(--spFontSize14);
        letter-spacing: var(--spLetterSpacing30);
    }

    .secFlow .flowCardTit {
        padding: 0 0 0.7rem;
        border-bottom: 0.1rem solid var(--borderColorLightGrey);
        font-size: var(--spFontSize18);
        letter-spacing: var(--spLetterSpacing50);
        line-height: 1.55;
    }

    .secFlow .flowCardTxt {
        margin-top: 1.2rem;
        font-size: var(--spFontSize12);
        letter-spacing: var(--spLetterSpacing50);
        line-height: calc(22 / 12);
    }

    .secFlow .flowBtn {
        margin-top: 1.5rem;
        display: flex;
        justify-content: center;
    }

    .secFlow .flowBtn .btn {
        gap: 0.8rem;
        width: 91.765%;
        min-height: 4.6rem;
        padding: 1rem 1.6rem;
        font-size: var(--spFontSize13);
        letter-spacing: var(--spLetterSpacing50);
    }

    .secFlow .flowBtn .btn.isLink {
        padding: 1rem 4.6rem 1rem 1.6rem;
        background: transparent;
        color: var(--colorBrown);
    }

    .secFlow .flowBtn .btn.isLink .btnIco {
        right: 1.6rem;
        width: 2rem;
        height: 2rem;
    }

    .secFlow .flowBtn .btn.isLink .btnIco::before {
        width: 0.8rem;
    }

    .secFlow .flowBtn .btn.isLink .btnIco::after {
        height: 0.8rem;
    }
}

@media only screen and (max-width:1215px) {
    .secFlow .flowBtn .btn.isLink {
        padding: 1rem 4rem 1rem 1.6rem;
    }

    .secFlow .flowBtn .btn {
        font-size: var(--spFontSize12);
    }
}

/*-----------------------------------------------
    landModalArea
-----------------------------------------------*/
.landModalArea {
    position: fixed;
    inset: 0;
    z-index: 10000;
    overflow: hidden;
    visibility: hidden;
    opacity: 0;
    transition: opacity 0.3s ease, visibility 0.3s ease;
    pointer-events: none;
    background: var(--colorModalOverlay);
}

.landModalArea.is-open {
    visibility: visible;
    opacity: 1;
    pointer-events: auto;
}

.landModalOverlay {
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
}

/* fixed 要素自体ではなく内側レイヤーをスクロール（見た目は従来どおり全体スクロール） */
.landModalScroll {
    position: absolute;
    inset: 0;
    z-index: 1;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding: 4rem 2rem;
    box-sizing: border-box;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
    cursor: pointer;
}

.landModalPanel {
    position: relative;
    z-index: 1;
    display: none;
    width: 100%;
    max-width: 140rem;
    cursor: default;
}

.landModalPanel.is-active {
    display: block;
}

.landModalDialog {
    position: relative;
    width: 100%;
    transform: translateY(2rem);
    transition: transform 0.3s ease;
}

.landModalArea.is-open .landModalPanel.is-active .landModalDialog {
    transform: translateY(0);
}

.btnLandModalClose {
    position: absolute;
    top: -8rem;
    right: 0rem;
    z-index: 2;
    width: 6.5rem;
    height: 6.5rem;
    padding: 0;
    border: 0.1rem solid var(--whiteColor);
    border-radius: 50%;
    background: transparent;
    cursor: pointer;
    transition: opacity 0.2s ease;
    background-color: var(--colorModalOverlay);
}

.btnLandModalClose:hover {
    opacity: 0.8;
}

.btnLandModalCloseIcon {
    display: block;
    position: relative;
    width: 100%;
    height: 100%;
}

.btnLandModalCloseIcon::before,
.btnLandModalCloseIcon::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 3.5rem;
    height: 0.1rem;
    background: var(--whiteColor);
}

.btnLandModalCloseIcon::before {
    transform: translate(-50%, -50%) rotate(45deg);
}

.btnLandModalCloseIcon::after {
    transform: translate(-50%, -50%) rotate(-45deg);
}

.landModalInner {
    background: var(--whiteColor);
    margin-top: 6rem;
}

.landModalHead {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    height: 30rem;
    padding: 4.8rem 3rem 4rem;
    box-sizing: border-box;
    background: url(../img/concept/bgPopupPlan.jpg) center / cover no-repeat;
    text-align: center;
}

.landModalHeadSub,
.landModalHeadTit {
    position: relative;
    z-index: 1;
    margin: 0;
    color: var(--whiteColor);
}

.landModalHeadSub {
    font-size: var(--pcFontSize30);
    letter-spacing: var(--pcLetterSpacing100);
    line-height: 1.6;
    font-feature-settings: "palt";
}

.landModalHeadTit {
    font-size: var(--pcFontSize40);
    letter-spacing: var(--pcLetterSpacing100);
    line-height: 1.5;
    font-feature-settings: "palt";
    display: flex;
    align-items: baseline;
}

.landModalHeadNum {
    display: inline-block;
    margin: 0 0.2rem;
    font-size: var(--pcFontSize75);
    font-weight: 400;
    letter-spacing: 0;
    line-height: 1;
    vertical-align: middle;
}

.landModalHeadPercent {
    display: inline-block;
    font-size: var(--pcFontSize50);
    font-weight: 400;
    letter-spacing: 0;
    line-height: 1;
    vertical-align: middle;
}

.landModalBody {
    padding: 8rem 8.5rem 5.8rem;
    box-sizing: border-box;
}

.landModalList {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 3rem 2.5rem;
    margin: 0 auto;
    padding: 0;
}

.landModalItem {
    text-align: center;
}

.landModalIco {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 22rem;
    height: 22rem;
    margin: 0 auto;
    background-color: var(--ColorTagBg);
    border-radius: 50%;
}

.landModalIco img {
    display: block;
    width: 12rem;
    height: 13.2rem;
    object-fit: contain;
}

.landModalItemTit {
    margin: 2.8rem 0 0;
    color: var(--orangeColor);
    font-size: var(--pcFontSize20);
    font-weight: bold;
    letter-spacing: var(--pcLetterSpacing100);
    line-height: 1.7;
    font-feature-settings: "palt";
}

.landModalItemTxt {
    margin: 0.8rem 0 0;
    color: var(--colorBrown);
    font-size: var(--pcFontSize15);
    letter-spacing: var(--pcLetterSpacing100);
    line-height: 2;
    font-feature-settings: "palt";
}

.landModalFoot {
    padding: 0 6rem 10rem;
    box-sizing: border-box;
    text-align: center;
}

.landModalFootTxt {
    margin: 0;
    color: var(--colorBrown);
    font-size: var(--pcFontSize30);
    letter-spacing: var(--pcLetterSpacing100);
    line-height: 2;
    font-feature-settings: "palt";
}

body.isLandModalOpen {
    overflow: hidden;
}

html.isLandModalOpen {
    overflow: hidden;
}

body.isLandModalOpen .cmnHeader {
    visibility: hidden;
    pointer-events: none;
}

@media only screen and (max-width: 1215px) {
    .landModalScroll {
        padding: 2rem;
    }

    .landModalInner {
        margin-top: 4rem;
    }

    .btnLandModalClose {
        top: -2rem;
        right: -0.5rem;
        width: 4rem;
        height: 4rem;
    }

    .btnLandModalCloseIcon::before,
    .btnLandModalCloseIcon::after {
        width: 2rem;
    }

    .landModalHead {
        height: auto;
        min-height: calc((120 / 375) * var(--widthBase));
        padding: 1.4rem;
    }

    .landModalHeadSub {
        font-size: var(--spFontSize16);
        letter-spacing: var(--spLetterSpacing50);
    }

    .landModalHeadTit {
        display: block;
        margin-top: 0.7rem;
        font-size: var(--spFontSize18);
        letter-spacing: var(--spLetterSpacing50);
        text-align: center;
    }

    .landModalHeadNum,
    .landModalHeadPercent {
        display: inline;
        vertical-align: baseline;
    }

    .landModalHeadNum {
        font-size: var(--spFontSize30);
    }

    .landModalHeadPercent {
        font-size: var(--spFontSize22);
    }

    .landModalBody {
        padding: 3rem 2rem 2rem;
    }

    .landModalList {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 2rem 1.5rem;
        max-width: 37rem;
    }

    .landModalIco {
        width: calc((110 / 375) * var(--widthBase));
        height: calc((110 / 375) * var(--widthBase));
    }

    .landModalIco img {
        width: calc((75 / 375) * var(--widthBase));
        height: auto;
    }

    .landModalItemTit {
        margin-top: 1.1rem;
        font-size: var(--spFontSize14);
        letter-spacing: var(--spLetterSpacing50);
        line-height: calc(22 / 14);
    }

    .landModalItemTxt {
        margin-top: 0.4rem;
        font-size: var(--spFontSize12);
        letter-spacing: var(--spLetterSpacing50);
        line-height: calc(22 /12);
        white-space: nowrap;
    }

    .landModalFoot {
        padding: 0 1.5rem 3rem;
    }

    .landModalFootTxt {
        font-size: var(--spFontSize16);
        letter-spacing: var(--spLetterSpacing50);
        line-height: 2;
    }
}

/*-----------------------------------------------
    airtightModalArea
-----------------------------------------------*/
.airtightModalArea {
    position: fixed;
    inset: 0;
    z-index: 10000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 4rem 2rem;
    box-sizing: border-box;
    scrollbar-gutter: stable;
    visibility: hidden;
    opacity: 0;
    transition: opacity 0.3s ease, visibility 0.3s ease;
    pointer-events: none;
}

.airtightModalArea.is-open {
    visibility: visible;
    opacity: 1;
    pointer-events: auto;
}

.airtightModalOverlay {
    position: absolute;
    inset: 0;
    background: var(--colorModalOverlay);
    cursor: pointer;
}

.airtightModalPanel {
    position: relative;
    z-index: 1;
    display: none;
    width: 100%;
    max-width: 140rem;
}

.airtightModalPanel.is-active {
    display: block;
}

.airtightModalDialog {
    position: relative;
    width: 100%;
    transform: translateY(2rem);
    transition: transform 0.3s ease;
}

.airtightModalArea.is-open .airtightModalPanel.is-active .airtightModalDialog {
    transform: translateY(0);
}

.btnAirtightModalClose {
    position: absolute;
    top: -8rem;
    right: 0;
    z-index: 2;
    width: 6.5rem;
    height: 6.5rem;
    padding: 0;
    border: 0.1rem solid var(--whiteColor);
    border-radius: 50%;
    background-color: var(--colorModalOverlay);
    cursor: pointer;
    transition: opacity 0.2s ease;
}

.btnAirtightModalClose:hover {
    opacity: 0.8;
}

.btnAirtightModalCloseIcon {
    display: block;
    position: relative;
    width: 100%;
    height: 100%;
}

.btnAirtightModalCloseIcon::before,
.btnAirtightModalCloseIcon::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 3.5rem;
    height: 0.1rem;
    background: var(--whiteColor);
}

.btnAirtightModalCloseIcon::before {
    transform: translate(-50%, -50%) rotate(45deg);
}

.btnAirtightModalCloseIcon::after {
    transform: translate(-50%, -50%) rotate(-45deg);
}

.airtightModalInner {
    display: flex;
    align-items: stretch;
    gap: 8rem;
    width: 100%;
    max-width: 140rem;
    max-height: calc(100vh - 8rem);
    padding: 6rem;
    box-sizing: border-box;
    overflow: auto;
    scrollbar-gutter: stable;
    background: var(--whiteColor);
}

.airtightModalImg {
    flex: 0 0 62rem;
    min-width: 0;
}

.airtightModalImg img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.airtightModalContent {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    justify-content: center;
    min-width: 0;
}

.airtightModalTit {
    margin: 1.5rem 0 0;
    padding: 0 0 1.5rem;
    border-bottom: 0.1rem solid var(--borderColorLightGrey);
    color: var(--textColor);
    font-size: var(--pcFontSize45);
    letter-spacing: var(--pcLetterSpacing100);
    line-height: 1.5;
    font-feature-settings: "palt";
}

.airtightModalTitNum {
    font-size: var(--pcFontSize70);
}

.airtightModalTxt {
    margin: 2.9rem 0 0;
    color: var(--colorBrown);
    font-size: var(--pcFontSize18);
    letter-spacing: var(--pcLetterSpacing100);
    line-height: 2.78;
    font-feature-settings: "palt";
}

body.isAirtightModalOpen {
    overflow: hidden;
}

html.isAirtightModalOpen {
    overflow: hidden;
}

body.isAirtightModalOpen .cmnHeader {
    visibility: hidden;
    pointer-events: none;
}

@media only screen and (max-width: 1215px) {
    .airtightModalArea {
        padding: 2rem;
    }

    .airtightModalPanel {}

    .airtightModalDialog {}

    .airtightModalInner {
        flex-direction: column;
        gap: 0;
        max-height: calc(100vh - 2rem);
        margin-top: 4rem;
        padding: 0;
    }

    .btnAirtightModalClose {
        top: -2rem;
        right: -0.5rem;
        width: 4rem;
        height: 4rem;
    }

    .btnAirtightModalCloseIcon::before,
    .btnAirtightModalCloseIcon::after {
        width: 2rem;
    }

    .airtightModalImg {
        flex: 0 0 auto;
        width: 100%;
        padding: 2rem 2rem 0;
    }

    .airtightModalImg img {
        width: 100%;
        height: auto;
        aspect-ratio: unset;
    }

    .airtightModalContent {
        padding: 1rem 2rem 2.8rem;
    }

    .airtightModalTit {
        text-align: center;
        padding-bottom: 0.5rem;
        font-size: var(--spFontSize18);
        letter-spacing: var(--spLetterSpacing100);
        line-height: 1.55;
    }

    .airtightModalTitNum {
        font-size: var(--spFontSize30);
    }

    .airtightModalTxt {
        margin-top: 1.2rem;
        font-size: var(--spFontSize14);
        letter-spacing: var(--spLetterSpacing50);
        line-height: calc(30 / 14);
        text-align: left;
    }
}

/*-----------------------------------------------
    secModelHouse
-----------------------------------------------*/
.secModelHouse {
    padding: 0 0 10rem;
}

.secModelHouse .boxModelHouse {
    position: relative;
}

.secModelHouse .imgModelhouse {
    display: block;
    width: 100%;
    height: auto;
}

.secModelHouse .btnModelHouse {
    position: absolute;
    right: 0;
    bottom: -4.7rem;
    width: 46.875%;
}

.secModelHouse .btnModelHouseLink {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 1.5rem;
    min-height: 9rem;
    padding: 1.2rem 4rem;
    position: relative;
    overflow: hidden;
    isolation: isolate;
    box-sizing: border-box;
    border: 0.1rem solid var(--orangeColor);
    background: var(--orangeColor);
    color: var(--whiteColor);
    font-size: var(--pcFontSize18);
    /* font-weight: bold; */
    letter-spacing: var(--pcLetterSpacing100);
    line-height: 1.5;
    text-decoration: none;
    font-feature-settings: "palt";
    transition: color 0.4s ease, border-color 0.4s ease, filter 0.2s ease-out;
}
.secModelHouse .btnModelHouseLink::before {
    content: "";
    position: absolute;
    inset: 0;
    background-color: var(--whiteColor);
    transform: scaleX(0);
    transform-origin: left center;
    transition: transform 0.4s ease;
    z-index: -1;
}
.secModelHouse .btnModelHouseLink:hover {
    opacity: 1;
    filter: none;
    color: var(--orangeColor);
}
.secModelHouse .btnModelHouseLink:hover::before {
    transform: scaleX(1);
}
.secModelHouse .btnModelHouseTxt {
    position: relative;
    z-index: 1;
}

.secModelHouse .btnModelHouseIco {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 1.5rem;
    height: 1.5rem;
}
.secModelHouse .btnModelHouseLink:hover .btnModelHouseIco {
    background: url(../img/common/iconArrowOrange_on.png) center / contain no-repeat;
}
.secModelHouse .btnModelHouseLink:hover .btnModelHouseIco img {
    opacity: 0;
}

@media only screen and (max-width: 1215px) {
    .secModelHouse {
        padding: 0;
    }

    .secModelHouse .boxModelHouseSp {
        padding: 4.8rem 2rem 0;
        color: var(--whiteColor);
        font-feature-settings: "palt";
    }

    .secModelHouse .boxModelHouseHead {
        text-align: center;
    }

    .secModelHouse .txtModelhouseLead {
        margin: 0;
        font-size: var(--spFontSize14);
        letter-spacing: var(--spLetterSpacing50);
        line-height: 1.8;
    }

    .secModelHouse .txtModelhouseEm {
        margin: 1.2rem 0;
    }

    .secModelHouse .txtModelhouseEm img {
        display: block;
        width: 28rem;
        margin: 0 auto;
    }

    .secModelHouse .txtModelhouseTit {
        margin: 1.2rem 0 0;
        font-size: var(--spFontSize18);
        font-weight: bold;
        letter-spacing: var(--spLetterSpacing50);
        line-height: 1.6;
    }

    .secModelHouse .boxModelHousePhotos {
        margin: 2.4rem -2rem 0;
    }

    .secModelHouse .boxModelHousePhotos img {
        display: block;
        width: 100%;
        height: auto;
    }

    .secModelHouse .txtModelhouseFoot {
        margin: 1.6rem 0 0;
        font-size: var(--spFontSize12);
        letter-spacing: var(--spLetterSpacing50);
        line-height: calc(22 / 12);
        text-align: right;
    }

    .secModelHouse .btnModelHouse {
        position: absolute;
        right: 0;
        left: auto;
        bottom: auto;
        width: 78.67%;
        margin-top: -2.5rem;
        box-shadow: 0px 0px 9.5px 0.5px rgba(0, 0, 0, 0.2);
    }

    .secModelHouse .btnModelHouseLink {
        gap: 0;
        min-height: 5rem;
        padding: 1.4rem 1.6rem;
        font-size: var(--spFontSize13);
        letter-spacing: var(--spLetterSpacing50);
        line-height: 1.5;
    }
}

/*-----------------------------------------------
    secConcept
-----------------------------------------------*/
.secConcept {
    padding: 10rem 0;
}

.secConcept .boxTopSectionHead {
    margin-bottom: 3rem;
}

.secConcept .titTopSection {
    display: flex;
    align-items: center;
    gap: 1.4rem;
    margin: 0;
    color: var(--orangeColor);
    font-size: var(--pcFontSize50);
    line-height: 1;
    letter-spacing: var(--pcLetterSpacing30);
    font-weight: 300;
}

.secConcept .titTopSection::after {
    content: "";
    width: 10rem;
    height: 0.1rem;
    background-color: var(--orangeColor);
}

.secConcept .txtTopSectionSub {
    margin: 0.9rem 0 0;
    color: var(--colorBrown);
    font-size: var(--pcFontSize20);
    line-height: 1.5;
    letter-spacing: var(--pcLetterSpacing100);
}

.secConcept .boxConceptList {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0.1rem;
}

.secConcept .boxConceptCard .linkConceptCard {
    position: relative;
    display: block;
    aspect-ratio: 640 / 960;
    overflow: hidden;
    color: var(--whiteColor);
}

.secConcept .boxConceptCard img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.secConcept .boxConceptCard .linkConceptCard:hover img {
    transform: scale(1.08);
}

.secConcept .boxConceptText {
    position: absolute;
    top: 50%;
    left: 50%;
    z-index: 2;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 40rem;
    height: 40rem;
    padding: 4rem 3rem 3.6rem;
    border-radius: 50%;
    background-color: rgba(34, 32, 31, 0.9);
    text-align: center;
    transform: translate(-50%, -50%);
}

.secConcept .titConceptCard {
    margin: 0 0 1.2rem;
    font-size: var(--pcFontSize35);
    line-height: calc(55 / 35);
    letter-spacing: var(--pcLetterSpacing200);
    font-weight: 700;
}

.secConcept .txtConceptEng {
    margin: 0 0 2rem;
    font-size: var(--pcFontSize14);
    line-height: 1;
    letter-spacing: var(--pcLetterSpacing100);
    font-weight: 400;
}

.secConcept .txtConceptCard {
    margin: 0;
    font-size: var(--pcFontSize15);
    line-height: calc(30 / 15);
    letter-spacing: var(--pcLetterSpacing100);
    font-weight: 700;
}

.secConcept .iconConceptArrow {
    display: block;
    width: 3rem;
    height: 1.4rem;
    margin-top: 3rem;
    background: url(../img/common/iconArrow05.png) center / contain no-repeat;
}

.secConcept .boxConceptCard.isViewing .linkConceptCard {
    pointer-events: none;
    cursor: default;
    color: var(--colorBrown);
}

.secConcept .boxConceptCard.isViewing .linkConceptCard::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    background: rgba(0, 0, 0, 0.45);
}

.secConcept .boxConceptCard.isViewing .boxConceptText {
    background-color: var(--whiteColor);
}

.secConcept .boxConceptCard.isViewing .linkConceptCard:hover img {
    transform: none;
}

.secConcept .txtConceptViewing {
    display: block;
    margin-top: 3rem;
    color: var(--orangeColor);
    font-size: var(--pcFontSize14);
    line-height: 1;
    letter-spacing: var(--pcLetterSpacing100);
    font-weight: 400;
}

@media only screen and (max-width: 1215px) {
    .secConcept {
        padding: 7rem 0 0;
    }

    .secConcept .boxTopSectionHead {
        margin-bottom: 2.5rem;
    }

    .secConcept .titTopSection {
        gap: 1rem;
        font-size: var(--spFontSize30);
        letter-spacing: var(--spLetterSpacing30);
    }

    .secConcept .titTopSection::after {
        width: 4.8rem;
    }

    .secConcept .txtTopSectionSub {
        margin-top: 0.4rem;
        font-size: var(--spFontSize13);
        letter-spacing: var(--spLetterSpacing50);
    }

    .secConcept .boxConceptList {
        grid-template-columns: minmax(0, 1fr);
    }

    .secConcept .boxConceptCard .linkConceptCard {
        aspect-ratio: 1 / 1;
    }

    .secConcept .boxConceptText {
        width: 24rem;
        height: 24rem;
        padding: 2.4rem 1.8rem 2rem;
    }

    .secConcept .titConceptCard {
        margin-bottom: 0.4rem;
        font-size: var(--spFontSize26);
        letter-spacing: var(--spLetterSpacing100);
        line-height: calc(33 / 22);
    }

    .secConcept .txtConceptEng {
        margin-bottom: 1.6rem;
        font-size: var(--spFontSize14);
        letter-spacing: var(--spLetterSpacing100);
    }

    .secConcept .txtConceptCard {
        font-size: var(--spFontSize13);
        letter-spacing: var(--spLetterSpacing100);
        line-height: calc(20 / 13);
    }

    .secConcept .iconConceptArrow {
        width: 1.8rem;
        height: 0.8rem;
        margin-top: 1.6rem;
    }

    .secConcept .txtConceptViewing {
        margin-top: 1.6rem;
        font-size: var(--spFontSize14);
    }
}

/*-----------------------------------------------
    secBnr
-----------------------------------------------*/
.secBnr {
    padding: 2rem 0;
    position: relative;
    z-index: 1;
}

.secBnr+.secBnr {
    padding-top: 5rem;
    padding-bottom: 0;
}

.secBnr .boxBnrHead {
    position: relative;
    margin-bottom: 4rem;
    padding-bottom: 2.1rem;
    text-align: center;
}

.secBnr .boxBnrHead::before {
    content: "";
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 90rem;
    height: 0.1rem;
    background-color: var(--colorBrown);
}

.secBnr .boxBnrHead::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 50%;
    z-index: 1;
    width: 0.1rem;
    height: 4rem;
    background-color: var(--colorBrown);
    transform: translate(-50%, 50%) rotate(42deg);
}

.secBnr .bnrTopTxt {
    margin: 0;
    color: var(--colorBrown);
    font-size: var(--pcFontSize28);
    letter-spacing: var(--pcLetterSpacing100);
    line-height: 1.8;
    font-feature-settings: "palt";
}

.secBnr .bnrCatalog,
.secBnr .bnrReserve {
    display: block;
    margin: 0 auto;
    box-shadow: 0 0.2rem 1.3rem rgba(0, 0, 0, 0.08);
}

.secBnr .bnrCatalog img,
.secBnr .bnrReserve img {
    display: block;
    width: 100%;
    height: auto;
}

@media only screen and (max-width: 1215px) {
    .secBnr {
        padding: 4rem 0 3rem;
    }

    .secBnr+.secBnr {
        padding-top: 0;
        /* padding-bottom: 4rem; */
    }

    .secBnr .boxBnrHead::before,
    .secBnr .boxBnrHead::after {
        display: none;
    }

    .secBnr .boxBnrHead {
        margin-bottom: 2rem;
        padding-bottom: 0;
    }

    .secBnr .boxBnrHeadLines {
        display: flex;
        flex-direction: column;
        gap: 0.8rem;
    }

    .secBnr .bnrTopTxtLine {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 0.4rem;
        margin: 0;
    }

    .secBnr .bnrTopTxtInner {
        position: relative;
        color: var(--colorBrown);
        font-size: var(--spFontSize16);
        letter-spacing: var(--spLetterSpacing50);
        line-height: 1.6;
        font-feature-settings: "palt";
    }

    .secBnr .bnrTopTxtInner::after {
        content: "";
        position: absolute;
        bottom: 0;
        left: 0;
        width: 100%;
        height: 0.1rem;
        background-color: var(--borderColorLightGrey);
    }

    .secBnr .bnrTopTxtSlash {
        display: none;
    }

    .secBnr .bnrTopTxtSlash.isRight {
        display: none;
    }

    .secBnr .linkBnr {
        display: block;
        box-shadow: 0 0.2rem 1.3rem rgba(0, 0, 0, 0.08);
        text-decoration: none;
    }
}

/*-----------------------------------------------
    secArea
-----------------------------------------------*/
.secArea {
    position: relative;
    top: -10rem;
    margin-bottom: -5rem;
}

.secArea.lazyloaded {
    background: url(../img/concept/bgArea.jpg) center top / cover no-repeat;
}

.secArea .boxAreaInner {
    position: relative;
    z-index: 1;
    min-height: 110rem;
    padding: 22.2rem 0 0;
}

.secArea .boxAreaHead {
    position: relative;
    z-index: 2;
    color: var(--colorBrown);
    font-feature-settings: "palt";
}

.secArea .titArea {
    display: flex;
    align-items: center;
    gap: 1.4rem;
    margin: 0;
    color: var(--orangeColor);
    font-size: var(--pcFontSize50);
    line-height: 1;
    letter-spacing: var(--pcLetterSpacing30);
    font-weight: 300;
}

.secArea .titArea::after {
    content: "";
    width: 10rem;
    height: 0.1rem;
    background-color: var(--orangeColor);
}

.secArea .titAreaMain {
    margin: 1.5rem 0 0;
    font-size: var(--pcFontSize50);
    letter-spacing: var(--pcLetterSpacing100);
    line-height: 1.5;
}

.secArea .txtAreaLead {
    margin: 1.5rem 0 0;
    font-size: var(--pcFontSize22);
    letter-spacing: var(--pcLetterSpacing100);
    line-height: 1.8;
}

.secArea .boxAreaImages {
    position: absolute;
    left: 0;
    top: 23rem;
    z-index: 2;
    width: 40.4rem;
    height: 43.8rem;
}

.secArea .imgArea img {
    box-shadow: 0 0.2rem 1.3rem rgba(0, 0, 0, 0.08);
}

.secArea .imgArea {
    position: absolute;
}

.secArea .imgArea01 {
    top: 25.6rem;
    left: 0;
    width: 35.4rem;
}

.secArea .imgArea02 {
    right: -15rem;
    bottom: -34.8rem;
    z-index: 2;
    width: 23.9rem;
}

@media only screen and (max-width: 1215px) {
    .secArea.lazyloaded {
        background: url(../img/concept/bgArea_sp.jpg) center -4.8rem/100% auto no-repeat;
    }

    .secArea {
        padding-bottom: clamp(20rem, 82vw, 33rem);
        top: 0;
    }


    .secArea .boxAreaInner {
        min-height: 0;
        padding: 4.8rem 0 0;
    }

    .secArea .titArea {
        font-size: var(--spFontSize30);
        letter-spacing: var(--spLetterSpacing30);
    }

    .secArea .titArea::after {
        width: 3.5rem;
    }

    .secArea .titAreaMain {
        margin-top: 1.6rem;
        font-size: var(--spFontSize26);
        letter-spacing: var(--spLetterSpacing50);
        line-height: 1.5;
    }

    .secArea .txtAreaLead {
        margin-top: 0.8rem;
        font-size: var(--spFontSize18);
        letter-spacing: var(--spLetterSpacing50);
        line-height: calc(32 / 18);
    }

    .secArea .boxAreaImages {
        display: none;
    }
}

/*-----------------------------------------------
    secLineup
-----------------------------------------------*/

.secLineup .lineupTit {
    margin-bottom: 4.6rem;
    text-align: center;
}

.secLineup .lineupTit .tit {
    font-size: var(--pcFontSize40);
    letter-spacing: var(--pcLetterSpacing50);
    line-height: 1.5;
}

@media only screen and (max-width: 1215px) {
    .secLineup .lineupTit {
        margin-bottom: 2.3rem;
        text-align: center;
    }

    .secLineup .lineupTit .tit {
        font-size: var(--spFontSize20);
        letter-spacing: var(--pcLetterSpacing50);
        line-height: 1.5;
    }
}

.secLineupPerformance .listPerformanceLineup {
    display: flex;
    flex-wrap: wrap;
    gap: 2rem;
    width: calc(100vw - 16rem);
    max-width: calc(192rem - 16rem);
    margin: 0 auto;
}
.secLineupPerformance .itemPerformanceLineup {
    width: calc((100% - 2rem) / 2);
}
.secLineupPerformance .boxPerformanceLineup {
    height: 100%;
}
.secLineupPerformance .linkPerformanceLineup {
    position: relative;
    display: block;
    overflow: hidden;
    color: var(--whiteColor);
}
.secLineupPerformance .linkPerformanceLineup:hover {
    opacity: 1;
}
.secLineupPerformance .linkPerformanceLineup::after {
    content: "";
    position: absolute;
    inset: 0;
    background: #222428;
    opacity: 0.7;
    pointer-events: none;
    mix-blend-mode: multiply;
}
.secLineupPerformance .imgPerformanceLineup {
    aspect-ratio: 870 / 840;
    overflow: hidden;
}
.secLineupPerformance .imgPerformanceLineup img {
    transition: transform 0.5s ease-out;
}
.secLineupPerformance .linkPerformanceLineup:hover .imgPerformanceLineup img {
    transform: scale(1.05);
}
.secLineupPerformance .boxPerformanceBody {
    position: absolute;
    inset: 0;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 10rem 4rem 20rem;
    text-align: center;
}
.secLineupPerformance .txtPerformanceLabel {
    margin-bottom: 0.4rem;
    font-size: var(--pcFontSize30);
    line-height: calc(50 / 30);
    letter-spacing: var(--pcLetterSpacing30);
    font-weight: 700;
}
.secLineupPerformance .boxPerformanceAward {
    display: flex;
    justify-content: center;
    gap: 9rem;
    margin-bottom: 3rem;
}
.secLineupPerformance .txtPerformanceAward {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.2rem;
    min-width: 17.5rem;
    min-height: 9.2rem;
    margin: 0;
    font-size: var(--pcFontSize32);
    line-height: calc(40 / 32);
    letter-spacing: var(--pcLetterSpacing50);
    font-weight: 700;
    background: linear-gradient(180deg, #c9bb98 0%, #f0ddb0 52%, #f6ecd4 100%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}
.secLineupPerformance .txtPerformanceAward.isPrice {
    min-width: 20rem;
    gap: 0.1rem;
    font-size: var(--pcFontSize22);
    line-height: 1.2;
    letter-spacing: var(--pcLetterSpacing30);
}
.secLineupPerformance .txtAwardNum,
.secLineupPerformance .txtAwardSub,
.secLineupPerformance .txtAwardYen,
.secLineupPerformance .txtAwardTax {
    background: linear-gradient(180deg, #c9bb98 0%, #f0ddb0 52%, #f6ecd4 100%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}
.secLineupPerformance .txtAwardSub {
    font-size: var(--pcFontSize18);
}
.secLineupPerformance .txtAwardNum {
    font-size: var(--pcFontSize26);
    letter-spacing: 0;
}
.secLineupPerformance .txtAwardNum.isLarge {
    font-size: var(--pcFontSize40);
}
.secLineupPerformance .txtAwardYen {
    font-size: var(--pcFontSize22);
}
.secLineupPerformance .txtAwardTax {
    margin-top: 0.2rem;
    font-size: var(--pcFontSize18);
    font-weight: 500;
    letter-spacing: var(--pcLetterSpacing50);
}
.secLineupPerformance .txtPerformanceAward::before,
.secLineupPerformance .txtPerformanceAward::after {
    content: "";
    position: absolute;
    top: 50%;
    width: 4.1rem;
    height: 11rem;
    background: url("../img/lineup/imgLineupAward.png") center / contain no-repeat;
    transform: translateY(-50%);
}
.secLineupPerformance .txtPerformanceAward::before {
    left: -2.6rem;
}
.secLineupPerformance .txtPerformanceAward::after {
    right: -2.6rem;
    transform: translateY(-50%) scaleX(-1);
}
.secLineupPerformance .titPerformanceLogo {
    margin: 1rem 0;
}
.secLineupPerformance .titPerformanceName {
    font-size: var(--pcFontSize22);
    line-height: calc(44 / 22);
    letter-spacing: var(--pcLetterSpacing30);
    margin-bottom: 1.8rem;
}
.secLineupPerformance .boxPerformancePrice {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1.3rem;
    margin: 1.5rem 0 6.3rem;
}
.secLineupPerformance .txtPerformanceBadge {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 0.2rem 0;
    width: 5.7rem;
    height: 5.7rem;
    border-radius: 50%;
    background: var(--orangeColor);
    color: var(--whiteColor);
    font-size: var(--pcFontSize12);
    line-height: calc(16 / 12);
    letter-spacing: 0;
    font-weight: 700;
}
.secLineupPerformance .txtPerformanceRow {
    line-height: 1;
}
.secLineupPerformance .txtPerformanceNum {
    font-size: var(--pcFontSize20);
    letter-spacing: 0;
}
.secLineupPerformance .txtPerformancePrice {
    display: flex;
    align-items: flex-end;
    font-size: var(--pcFontSize15);
    letter-spacing: var(--pcLetterSpacing100);
}
.secLineupPerformance .txtPerformancePriceNum {
    font-size: var(--pcFontSize70);
    line-height: 0.6;
    letter-spacing: 0;
    margin-right: 0.4rem;
}
.secLineupPerformance .txtPerformancePriceNum .txtSmall {
    font-size: var(--pcFontSize50);
}
.secLineupPerformance .txtPerformanceNote {
    margin: 0 0 6.8rem;
    font-size: var(--pcFontSize18);
    line-height: calc(32 / 18);
    letter-spacing: var(--pcLetterSpacing100);
    font-weight: 700;
}
.secLineupPerformance .cmnBtnMore.isLineup {
    min-width: 0;
    max-width: 40rem;
    min-height: 7rem;
    border-color: rgba(255, 255, 255, 0.9);
    color: var(--whiteColor);
    font-size: var(--pcFontSize18);
    position: absolute;
    bottom: 8rem;
    left: 0;
    right: 0;
    margin: 0 auto;
}
.secLineupPerformance .cmnBtnMore.isLineup .cmnIconArrow {
    width: 1.4rem;
    height: 1.4rem;
}
@media only screen and (max-width: 1800px) {
    .secLineupPerformance .listPerformanceLineup {
        max-width: calc(100% - 10rem);
        width: 140rem;
    }
    .secLineupPerformance .boxPerformanceBody {
        padding: 5rem 4rem 20rem;
    }
    .secLineupPerformance .txtPerformanceLabel {
        font-size: var(--pcFontSize20);
    }
    .secLineupPerformance .titPerformanceLogo img {
        width: auto;
        height: 7rem;
    }
    .secLineupPerformance .txtPerformanceNote {
        font-size: var(--pcFontSize16);
    }
    .secLineupPerformance .cmnBtnMore.isLineup {
        max-width: 40rem;
        min-height: 7rem;
        bottom: 5rem;
    }
}
@media only screen and (max-width: 1215px) {
    .secLineupPerformance .listPerformanceLineup {
        gap: 3rem;
        width: 100%;
        max-width: none;
        padding: 0;
    }
    .secLineupPerformance .itemPerformanceLineup {
        width: 100%;
    }
    .secLineupPerformance .imgPerformanceLineup {
        aspect-ratio: 335 / 435;
        min-height: 43.5rem;
    }
    .secLineupPerformance .boxPerformanceBody {
        padding: 7.5rem 2rem 10rem;
    }
    .secLineupPerformance .txtPerformanceLabel {
        margin-bottom: 0.3rem;
        font-size: var(--spFontSize15);
        line-height: calc(25 / 15);
        letter-spacing: var(--spLetterSpacing30);
    }
    .secLineupPerformance .boxPerformanceAward {
        gap: 5rem;
        margin-top: 1rem;
        margin-bottom: 2.8rem;
    }
    .secLineupPerformance .txtPerformanceAward {
        min-width: 8.8rem;
        min-height: 5.2rem;
        font-size: var(--spFontSize18);
        line-height: calc(22 / 18);
    }
    .secLineupPerformance .txtPerformanceAward.isPrice {
        min-width: 11rem;
        font-size: var(--spFontSize14);
        line-height: 1.1;
    }
    .secLineupPerformance .txtAwardSub {
        font-size: var(--spFontSize12);
    }
    .secLineupPerformance .txtAwardNum {
        font-size: var(--spFontSize16);
    }
    .secLineupPerformance .txtAwardNum.isLarge {
        font-size: var(--spFontSize26);
    }
    .secLineupPerformance .txtAwardYen {
        font-size: var(--spFontSize14);
    }
    .secLineupPerformance .txtAwardTax {
        margin-top: 0.1rem;
        font-size: var(--spFontSize12);
    }
    .secLineupPerformance .txtPerformanceAward::before,
    .secLineupPerformance .txtPerformanceAward::after {
        width: 2.4rem;
        height: 6.4rem;
    }
    .secLineupPerformance .txtPerformanceAward::before {
        left: -1.8rem;
    }
    .secLineupPerformance .txtPerformanceAward::after {
        right: -1.8rem;
    }
    .secLineupPerformance .titPerformanceLogo {
        margin: 0.4rem 0 0;
    }
    .secLineupPerformance .titPerformanceLogo img {
        width: auto;
        height: 5.5rem;
    }
    .secLineupPerformance .titPerformanceName {
        margin-bottom: 0.8rem;
        font-size: var(--spFontSize18);
    }
    .secLineupPerformance .boxPerformancePrice {
        gap: 0.8rem;
        margin: 0
    }
    .secLineupPerformance .txtPerformanceBadge {
        width: 5rem;
        height: 5rem;
        font-size: var(--spFontSize10);
        line-height: 1.2;
    }
    .secLineupPerformance .txtPerformanceNum {
        font-size: var(--pcFontSize16);
    }
    .secLineupPerformance .txtPerformancePrice {
        font-size: var(--spFontSize12);
        padding-top: 0.8rem;
    }
    .secLineupPerformance .txtPerformancePriceNum {
        padding-bottom: 0.4rem;
        font-size: var(--spFontSize40);
        line-height: 0.5;
    }
    .secLineupPerformance .txtPerformancePriceNum .txtSmall {
        font-size: var(--pcFontSize30);
    }
    .secLineupPerformance .txtPerformanceNote {
        max-width: 24rem;
        margin-bottom: 1.8rem;
        font-size: var(--spFontSize10);
        line-height: calc(18 / 10);
        letter-spacing: var(--spLetterSpacing50);
    }
    .secLineupPerformance .cmnBtnMore.isLineup {
        min-width: 0;
        width: 100%;
        max-width: 26.5rem;
        min-height: 4.6rem;
        padding: 0.9rem;
        font-size: var(--spFontSize13);
        bottom: 3rem;
    }
    .secLineupPerformance .txtPerformanceDescription {
        margin: 1.4rem 0 0;
        font-size: var(--spFontSize13);
        line-height: calc(26 / 13);
        letter-spacing: var(--spLetterSpacing50);
        text-align: center;
    }
}
@media only screen and (max-width: 360px) {
    .secLineupPerformance .txtPerformancePriceNum {
        font-size: var(--spFontSize46);
    }
}

/*-----------------------------------------------
    secLineupLifestyle
-----------------------------------------------*/
.secLineupLifestyle {
    margin-top: 9rem;
}

.secLineupLifestyle .boxLifestyleSlider {
    overflow: visible;
    padding-bottom: 6rem;
}

.secLineupLifestyle .listLifestyleLineup {
    margin: 0;
    padding: 0;
    list-style: none;
}

.secLineupLifestyle .itemLifestyleLineup {
    height: auto;
}

@media only screen and (min-width: 1216px) {
    .secLineupLifestyle .boxLifestyleSlider {
        margin-top: 0;
    }
}

.secLineupLifestyle .boxLifestyleLineup {
    height: 100%;
}

.secLineupLifestyle .linkLifestyleLineup {
    position: relative;
    display: block;
    min-height: 100%;
    overflow: hidden;
    color: var(--whiteColor);
}

.secLineupLifestyle .linkLifestyleLineup:hover {
    opacity: 1;
}

.secLineupLifestyle .linkLifestyleLineup::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    background: linear-gradient(180deg, rgba(54, 64, 67, .25) 0%, rgba(54, 64, 67, 1) 100%);
    mix-blend-mode: multiply;
    pointer-events: none;
}

.secLineupLifestyle .imgLifestyleMain {
    aspect-ratio: 430 / 600;
    overflow: hidden;
}

.secLineupLifestyle .imgLifestyleMain img {
    transition: transform 0.5s ease-out;
}

.secLineupLifestyle .linkLifestyleLineup:hover .imgLifestyleMain img {
    transform: scale(1.05);
}

.secLineupLifestyle .boxLifestyleBody {
    position: absolute;
    inset: 0;
    z-index: 2;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 8.5rem 2rem 0;
    text-align: center;
    box-shadow: 0 0.2rem 1.5rem rgba(0, 0, 0, 0.18);
}

.secLineupLifestyle .txtLifestyleLabel {
    margin-bottom: 1.2rem;
    font-size: var(--pcFontSize20);
    line-height: 1.4;
    letter-spacing: var(--pcLetterSpacing35);
    font-weight: 200;
}

.secLineupLifestyle .titLifestyleLineup {
    font-size: var(--pcFontSize45);
    line-height: 6.3rem;
    letter-spacing: var(--pcLetterSpacing60);
    font-weight: 700;
}

.secLineupLifestyle .titLifestyleLineup .txtSmall {
    font-size: var(--pcFontSize30);
    letter-spacing: var(--pcLetterSpacing10);
}

.secLineupLifestyle .txtLifestyleLead {
    margin: 0;
    min-height: 5.2rem;
    font-size: var(--pcFontSize13);
    line-height: calc(26 / 13);
    letter-spacing: var(--pcLetterSpacing100);
    font-weight: 700;
}

.secLineupLifestyle .btnLifestyleIcon {
    width: 7rem;
    height: 7rem;
    border: 1px solid rgba(255, 255, 255, 0.5);
    border-radius: 50%;
    background: url("../img/common/iconArrow04.png") rgba(29, 32, 34, 0.5) center / 1.3rem no-repeat;
    margin: 2rem auto 0;
}

.secLineupLifestyle .imgLifestyleSub {
    position: absolute;
    right: 50%;
    bottom: -6rem;
    width: 40rem;
    height: 20rem;
    transform: translateX(50%);
}

@media only screen and (max-width: 1215px) {
    .secLineupLifestyle {
        margin-top: 4rem;
    }

    .secLineupLifestyle .boxLifestyleSlider {
        position: relative;
        width: 21.5rem;
        margin: 0 auto;
        padding-bottom: 0;
    }

    .secLineupLifestyle .listLifestyleLineup {
        gap: 0;
    }

    .secLineupLifestyle .itemLifestyleLineup {
        width: 21.5rem;
    }

    .secLineupLifestyle .swiper-button-prev,
    .secLineupLifestyle .swiper-button-next {
        width: 4rem;
        height: 4rem;
        top: calc(21.5rem * 600 / 430 / 2);
        margin-top: 0;
        transform: translateY(-50%);
    }

    .secLineupLifestyle .swiper-button-prev::before,
    .secLineupLifestyle .swiper-button-next::before {
        width: 0.8rem;
        height: 0.8rem;
    }

    .secLineupLifestyle .swiper-button-prev {
        left: -5rem;
    }

    .secLineupLifestyle .swiper-button-next {
        right: -5rem;
    }

    .secLineupLifestyle .boxLifestyleBody {
        padding: 3.6rem 0.8rem 0;
    }

    .secLineupLifestyle .txtLifestyleLabel {
        margin-bottom: 1rem;
        font-size: var(--spFontSize15);
    }

    .secLineupLifestyle .titLifestyleLineup {
        margin-bottom: 0.5rem;
        font-size: var(--spFontSize35);
        line-height: 3rem;
    }

    .secLineupLifestyle .titLifestyleLineup .txtSmall {
        font-size: var(--spFontSize26);
        display: inline-block;
        vertical-align: top;
        margin-top: 1rem;
    }

    .secLineupLifestyle .titLifestyleLineup .txtLife {
        font-size: var(--spFontSize26);
    }

    .secLineupLifestyle .btnLifestyleIcon {
        width: 4.5rem;
        height: 4.5rem;
        margin: 1rem auto 0;
        background-size: 0.8rem;
    }

    .secLineupLifestyle .imgLifestyleSub {
        bottom: -3.4rem;
        width: 15rem;
        height: 7.5rem;
    }
}