@charset "UTF-8";

/* =========================================================
   PC用レスポンシブ変数 (1400px基準)
========================================================= */
:root {
  /* JSが読み込まれる前の初期値を設定し、画面の広がり（レイアウト崩れ）を防止 */
  --vw: 100vw;
  --vw-pcunit: calc(var(--vw) / 1400);
}
/* 1400px以上はサイズを上限固定 */
@media screen and (min-width: 1400px) {
  :root {
    --vw-pcunit: 1px;
  }
}

/* =========================================================
   レイアウト (PC用)
========================================================= */
@media screen and (min-width: 751px) {

    /* =========================================================
       共通・ベース・フォント・カラー
    ========================================================= */
    .l-container {
      width: 100%;
    }

    .l-footer {
      padding: 0;
    }

    .pc-footer {
      margin: 0;
    }

    #feature {
        background-color: #f2eee4; /* 全体のベース背景色 */
        box-sizing: border-box;
        text-align: center;
        position: relative;
        overflow-x: clip;
        opacity: 0;
        transition: opacity 0.3s;
    }
    #feature.is_show {
        opacity: 1;
    }

    #feature figure {
        padding: 0;
        margin: 0;
        box-sizing: border-box;
        background-color: transparent;
    }

    /* リンクホバー設定 */
    #feature a {
        text-decoration: none;
        display: block;
        transition: opacity 0.3s ease;
    }
    #feature a:hover {
        opacity: 0.7;
    }

    #feature img {
        width: 100%;
        height: auto;
        display: block;
    }

    /* フォント指定 */
    #feature .orpheus {
        font-family: "orpheuspro", serif;
        font-weight: 400;
        font-style: normal;
    }
    #feature .noto {
        font-family: "Noto Sans JP", sans-serif;
        font-weight: 400;
        font-style: normal;
        font-feature-settings: "palt";
    }
    #feature .effra {
        font-family: "effra", sans-serif;
        font-weight: 400;
        font-style: normal;
    }

    /* カラー指定 (詳細度を上げる) */
    #feature .text-color-main {
        color: #977547 !important;
    }
    #feature .text-color-sub {
        color: #333333 !important;
    }
    #feature .bg-color-f2eee4 {
        background-color: #f2eee4 !important;
    }
    #feature .bg-color-dae3e8 {
        background-color: #dae3e8 !important;
    }

    /* =========================================================
       アニメーション
    ========================================================= */
    #feature .js-blur {
        opacity: 0;
        filter: blur(4px);
        transition: opacity 1s cubic-bezier(0.51, 0.21, 0.41, 1), filter 1s cubic-bezier(0.51, 0.21, 0.41, 1);
    }
    #feature .js-blur.is-show {
        opacity: 1;
        filter: blur(0px);
    }

    #feature .js-text-up {
        opacity: 0;
        transform: translateY(20px);
        transition: opacity 0.8s ease, transform 0.8s ease;
    }
    #feature .js-text-up.is-show {
        opacity: 1;
        transform: translateY(0);
    }

    /* =========================================================
       PC用 3カラムレイアウト
    ========================================================= */
    #feature .main {
        display: flex;
        justify-content: center;
        position: relative;
        z-index: 2;
        width: 100%;
        margin: 0 auto;
    }

    /* 左カラム (タイトルロゴ) */
    #feature .main .left {
        height: calc(100vh - 80px);
        flex: 1;
        position: sticky;
        top: 80px;
        z-index: 3;
        display: flex;
        align-items: center;
        justify-content: center;
        border: none !important;
    }
    #feature .main .left .left__txt {
        text-align: center;
        width: calc(300 * var(--vw-pcunit));
    }

    /* 右カラム (ナビゲーション) */
    #feature .main .right {
        height: calc(100vh - 80px);
        flex: 1;
        position: sticky;
        top: 80px;
        z-index: 3;
        display: flex;
        align-items: center;
        justify-content: center;
        border: none !important;
    }
    #feature .pc_right_section_nav {
        list-style: none;
        text-align: left;
        padding: 0;
        margin: 0;
    }
    #feature .pc_right_section_nav li {
        margin-bottom: calc(14 * var(--vw-pcunit));
        display: flex;
        align-items: center;
    }
    #feature .pc_right_section_nav li a {
        font-size: calc(24 * var(--vw-pcunit));
        color: #977547;
        letter-spacing: 0.05em;
        position: relative;
        padding-left: 1em;
        transition: opacity 0.3s;
    }
    #feature .pc_right_section_nav li a:hover {
        opacity: 0.7;
    }
    
    #feature .pc_right_section_nav li a::before {
        content: "";
        position: absolute;
        left: 0;
        top: 50%;
        transform: translateY(-50%);
        width: calc(13 * var(--vw-pcunit));
        height: calc(13 * var(--vw-pcunit));
        border-radius: 50%;
        background-color: #977547;
        opacity: 0;
        transition: opacity 0.3s;
    }
    #feature .pc_right_section_nav li a.is-active::before {
        opacity: 1;
    }

    /* 中央カラム (SPメインコンテンツ) */
    #feature .main .center {
        width: calc(440 * var(--vw-pcunit));
        flex-shrink: 0;
        background-color: #fff;
        border: none !important;
        outline: none !important;
        box-shadow: none !important;
    }

    /* 各セクションの背景色を画面左右幅（100vw）に拡張 */
    #feature .main .center .sec {
        margin-left: calc(-50vw + 50%);
        margin-right: calc(-50vw + 50%);
        padding-left: calc(50vw - 50%);
        padding-right: calc(50vw - 50%);
        box-sizing: border-box;
    }

    /* =========================================================
       中央カラム内の各要素 (可変単位 var(--vw-pcunit) へ置換)
    ========================================================= */
    #feature .section_lead {
        font-size: calc(15 * var(--vw-pcunit));
        line-height: 1.9;
        margin-top: calc(50 * var(--vw-pcunit));
        margin-left: calc(5 * var(--vw-pcunit));
        letter-spacing: 0.08em;
    }
    #feature .section_lead p:nth-child(2) {
        margin-top: calc(20 * var(--vw-pcunit));
    }

    /* ページ内ナビゲーション（SP配置用） */
    #feature .sp_page_nav {
        background-color: #977547;
        margin-top: calc(51.4 * var(--vw-pcunit));
    }
    #feature .sp_page_nav ul {
        display: flex;
        justify-content: center;
        align-items: center;
        list-style: none;
        padding: calc(15.5 * var(--vw-pcunit)) 0;
        margin: 0;
    }
    #feature .sp_page_nav li {
        flex: 1;
        position: relative;
        display: flex;
        justify-content: center;
        align-items: center;
    }
    #feature .sp_page_nav li:not(:first-child)::before {
        content: "";
        position: absolute;
        left: 0;
        top: -7%;
        width: 1px;
        height: 112%;
        background-color: #fff;
    }
    #feature .sp_page_nav li a {
        width: 60%;
        display: block;
    }

    #feature .section_main_title_en {
        font-size: calc(62 * var(--vw-pcunit));
    }
    #feature .section_main_title_jp {
        font-size: calc(19 * var(--vw-pcunit));
        margin-top: calc(-4 * var(--vw-pcunit));
        margin-bottom: calc(29 * var(--vw-pcunit));
        letter-spacing: 0.06em;
    }
    #feature [class^="section_sub_title_en"] {
        font-size: calc(30 * var(--vw-pcunit));
    }
    #feature [class^="section_sub_title_jp"] {
        font-size: calc(18 * var(--vw-pcunit));
        letter-spacing: 0.15em;
        font-weight: 500;
    }
    #feature .section_text {
        font-size: calc(14 * var(--vw-pcunit));
        line-height: 1.9;
        margin-top: calc(5 * var(--vw-pcunit));
        margin-left: calc(9 * var(--vw-pcunit));
        padding: 0 calc(24 * var(--vw-pcunit));
        margin-bottom: calc(37 * var(--vw-pcunit));
        letter-spacing: 0.16em;
    }

    /* 画像・フレックス・スクロール 共通 */
    #feature .sec__img {
        margin: 0 auto;
        position: relative;
    }
    #feature .sec__flexarea {
        display: flex;
        justify-content: center;
        gap: calc(14 * var(--vw-pcunit));
        padding: 0 calc(24 * var(--vw-pcunit));
    }
    #feature .sec__scrollarea {
        width: 100%;
        overflow-x: scroll;
        overflow-y: hidden !important; /* Y軸スクロール防止 */
        scrollbar-width: none;
    }
    #feature .sec__scrollarea::-webkit-scrollbar {
        display: none;
    }
    #feature .sec__scrollareainner {
        width: fit-content;
        padding: 0 calc(24 * var(--vw-pcunit));
        display: flex;
        gap: 0 calc(20 * var(--vw-pcunit));
        flex-wrap: nowrap;
    }

    /* SimpleBar カスタマイズ */
    #feature .simplebar-track.simplebar-horizontal {
        height: calc(8 * var(--vw-pcunit)) !important;
        width: calc(295 * var(--vw-pcunit));
        background: #fff;
        margin: calc(24 * var(--vw-pcunit)) auto 0;
        border-radius: calc(5 * var(--vw-pcunit));
    }
    #feature .simplebar-track.simplebar-horizontal .simplebar-scrollbar {
        top: 0px;
        height: calc(8 * var(--vw-pcunit));
        border-radius: calc(5 * var(--vw-pcunit));
        background-color: #977547;
    }
    #feature .simplebar-track.simplebar-horizontal .simplebar-scrollbar::before {
        background: #977547;
    }

    /* SimpleBar 縦トラック完全に非表示 */
    #feature .simplebar-track.simplebar-vertical {
        display: none !important;
    }

    #feature .simplebar-content-wrapper img {
        pointer-events: none;
    }
    #feature .simplebar-content-wrapper a {
        -webkit-user-drag: none;
    }

    /* クレジット */
    #feature .sec__credit {
        margin-top: calc(12 * var(--vw-pcunit));
        text-align: left;
    }
    #feature .sec__credit ul {
        padding: 0;
        margin: 0;
    }
    #feature .sec__credit .item {
        list-style: none;
    }
    #feature .sec__credit .txt {
        font-family: "Noto Sans JP", sans-serif;
        font-weight: 400;
        font-style: normal;
        font-size: calc(14 * var(--vw-pcunit));
        line-height: 1.6;
        margin-bottom: 0;
    }
    #feature .sec__credit .price {
        font-family: "effra", sans-serif;
        font-weight: 400;
        font-style: normal;
        font-size: calc(15 * var(--vw-pcunit));
        margin-top: calc(5 * var(--vw-pcunit));
        letter-spacing: 0.03em;
    }

    #feature .view_all_btn {
        padding: calc(82 * var(--vw-pcunit)) calc(48 * var(--vw-pcunit));
    }
    #feature .view_all_btn img {
        width: 100%;
        margin: 0 auto;
    }

    /* =========================================================
       個別クラス (可変単位への置換)
    ========================================================= */
    #feature .img_main_hero { width: 100%; }

    /* Sec1 */
    #feature .section_1 {
      margin-top: calc(60 * var(--vw-pcunit));
      padding: calc(68 * var(--vw-pcunit)) 0 calc(106 * var(--vw-pcunit));
    }
    #feature .img_01 { width: 80%; margin-top: calc(26 * var(--vw-pcunit)); }
    #feature .img_02, #feature .img_03, #feature .img_04 { width: calc(182 * var(--vw-pcunit)); }

    #feature .section_1 .style01 .simplebar-placeholder { margin-bottom: calc(35 * var(--vw-pcunit)); }
    #feature .section_1 .section_sub_title_en01 { margin-top: calc(47 * var(--vw-pcunit)); }
    #feature .section_1 .section_sub_title_jp01 {
      margin-top: calc(36 * var(--vw-pcunit));
      margin-bottom: calc(17 * var(--vw-pcunit));
    }
    #feature .section_1 .section_sub_title_jp02 {
      margin-top: calc(37 * var(--vw-pcunit));
      margin-bottom: calc(14 * var(--vw-pcunit));
    }
    #feature .section_1 .section_sub_title_jp03 {
      margin-top: calc(41 * var(--vw-pcunit));
      margin-bottom: calc(14 * var(--vw-pcunit));
    }
    #feature .section_1 .section_sub_title_en02 { margin-top: calc(93 * var(--vw-pcunit)); }
    
    #feature .img_05 { width: 80%; margin-top: calc(26 * var(--vw-pcunit)); margin-bottom: calc(24 * var(--vw-pcunit)); }
    #feature .img_06, #feature .img_07 { width: calc(202 * var(--vw-pcunit)); }

    #feature .section_1 .section_sub_title_en03 { margin-top: calc(87 * var(--vw-pcunit)); }
    
    #feature .img_08 { width: 80%; margin-top: calc(24 * var(--vw-pcunit)); margin-bottom: calc(24 * var(--vw-pcunit)); }
    #feature .img_09, #feature .img_10, #feature .img_11 { width: calc(182 * var(--vw-pcunit)); }

    #feature .section_1 .style03 .simplebar-placeholder {
      margin-bottom: calc(36 * var(--vw-pcunit));
    }

    /* Sec2 */
    #feature .section_2 {
        padding: calc(61 * var(--vw-pcunit)) 0 calc(101 * var(--vw-pcunit));
    }
    #feature .section_2 .section_sub_title_en01 { margin-top: calc(53 * var(--vw-pcunit)); }
    #feature .section_2 .section_sub_title_jp01 {
      margin-top: calc(35 * var(--vw-pcunit));
      margin-bottom: calc(14 * var(--vw-pcunit));
    }
    #feature .section_2 .section_sub_title_jp02 {
      margin-top: calc(37 * var(--vw-pcunit));
      margin-bottom: calc(16 * var(--vw-pcunit));
    }
    #feature .section_2 .section_sub_title_jp03 {
      margin-top: calc(36 * var(--vw-pcunit));
      margin-bottom: calc(12 * var(--vw-pcunit));
    }
    #feature .section_2 .section_sub_title_en02 {
      margin-top: calc(86 * var(--vw-pcunit));
    }

    #feature .img_12 { width: 80%; margin-top: calc(23 * var(--vw-pcunit)); }
    #feature .img_13, #feature .img_14 { width: calc(202 * var(--vw-pcunit)); }
    #feature .img_15 { width: 80%; margin-top: calc(25 * var(--vw-pcunit)); margin-bottom: calc(24 * var(--vw-pcunit)); }
    #feature .img_16, #feature .img_17, #feature .img_18 { width: calc(184 * var(--vw-pcunit)); }

    #feature .section_2 .style02 .simplebar-placeholder {
      margin-bottom: calc(32 * var(--vw-pcunit));
    }
    #feature .section_2 .section_sub_title_en03 { margin-top: calc(95 * var(--vw-pcunit)); }

    #feature .img_19 { width: 80%; margin-top: calc(26 * var(--vw-pcunit)); margin-bottom: calc(24 * var(--vw-pcunit)); }
    #feature .img_20, #feature .img_21 { width: calc(190 * var(--vw-pcunit)); }

    /* Sec3 */
    #feature .section_3 {
        padding: calc(68 * var(--vw-pcunit)) 0 calc(98 * var(--vw-pcunit));
    }
    #feature .section_3 .section_sub_title_en01 { margin-top: calc(51 * var(--vw-pcunit)); }
    #feature .section_3 .section_sub_title_jp01 {
      margin-top: calc(36 * var(--vw-pcunit));
      margin-bottom: calc(16 * var(--vw-pcunit));
    }
    #feature .section_3 .section_sub_title_jp02 {
      margin-top: calc(36 * var(--vw-pcunit));
      margin-bottom: calc(16 * var(--vw-pcunit));
    }
    #feature .section_3 .section_sub_title_jp03 {
      margin-top: calc(40 * var(--vw-pcunit));
      margin-bottom: calc(16 * var(--vw-pcunit));
    }
    #feature .section_3 .section_sub_title_en02 {
      margin-top: calc(91 * var(--vw-pcunit));
    }

    #feature .img_22 { width: 80%; margin-top: calc(24 * var(--vw-pcunit)); }
    #feature .img_23, #feature .img_24 {
      margin-top: calc(-28 * var(--vw-pcunit));
      width: calc(184 * var(--vw-pcunit));
    }
    #feature .img_25 { width: 80%; margin-top: calc(24 * var(--vw-pcunit)); }
    #feature .img_26, #feature .img_27 { width: calc(184 * var(--vw-pcunit)); }

    #feature .section_3 .section_sub_title_en03 { margin-top: calc(90 * var(--vw-pcunit)); }

    #feature .img_28 { width: 80%; margin-top: calc(24 * var(--vw-pcunit)); }
    #feature .img_29, #feature .img_30, #feature .img_31 { width: calc(183 * var(--vw-pcunit)); }

    #feature .section_3 .style03 .simplebar-placeholder { margin-bottom: calc(34 * var(--vw-pcunit)); }

}

.efs-system-notification { display: none !important; }