/* ========================================
   CSS変数定義（Figma: 602:829）
   説明：サイト全体で使い回す色やフォントを定義
   CSS変数は「--変数名」で定義し、「var(--変数名)」で使用
======================================== */
:root {
    /* 色定義（Figmaから抽出）
       rgba(赤, 緑, 青, 透明度)の形式
       透明度は0（完全に透明）～1（完全に不透明） */
    --color-primary: #562416;
    --color-secondary: #71483A;
    --color-text-dark: #471F15;
    --color-text-medium: #4B4B4B;
    --color-text-light: #212121;
    --color-text-date: rgba(86, 36, 22, 0.56);
    --color-bg-main: #FFFFFF;
    --color-bg-light: #F4EDE2;
    --color-bg-beige: rgba(235, 217, 181, 0.6);
    --color-bg-coffee: rgba(244, 237, 226, 0.57);
    --color-bg-paring: rgba(251, 249, 245, 0.6);
    --color-bg-news-ticker: rgba(255, 255, 255, 0.63);
    --color-bg-news-overlay: rgba(255, 255, 255, 0.84);
    --color-bg-footer: #D0C3B7;
    --color-border: #484D3A;
    --color-footer-title: #AB7319;
    --color-menu-arrow: #7D7F78;
    
    /* フォント定義（Figmaから抽出）
       font-family: フォント名1, フォント名2, フォントタイプ;
       複数指定することで、最初のフォントがなければ次を使う */
    --font-heading-en: 'Noticia Text', serif;
    --font-heading-ja: 'Hiragino Mincho ProN', 'ヒラギノ明朝 ProN W6', serif;
    --font-body: 'Hiragino Mincho ProN', 'ヒラギノ明朝 ProN W3', serif;
    --font-emoji: 'Noto Emoji', 'Noto Sans JP', sans-serif;
    
    /* コンテンツ最大幅 */
    --max-content-width: 1200px;
    
    /* 間隔定義 - 一貫したスペーシング */
    --spacing-xs: 8px;
    --spacing-sm: 15px;
    --spacing-md: 20px;
    --spacing-lg: 30px;
    --spacing-xl: 40px;
    --spacing-xxl: 60px;
    
    /* z-index（重なり順）の統一管理
       説明：数値が大きいほど前面に表示される
       初学者向け：z-indexは重なる要素の前後関係を決める大切な設定 */
    --z-background: 1;          /* 背景要素（一番後ろ） */
    --z-content: 2;             /* 通常のコンテンツ */
    --z-section: 2;             /* セクション全体 */
    --z-overlay: 5;             /* オーバーレイ（重ね合わせ）要素 */
    --z-header: 10;             /* ヘッダー（一番前面） */
    
    /* レイアウトの標準値（保守性向上） */
    --section-padding: 40px;           /* 標準セクション間余白 */
    --section-padding-large: 80px;     /* 大きなセクション間余白 */
    --section-min-height: 400px;       /* セクション最小高さ */

    /* ブレイクポイント定義（レスポンシブデザイン用）
       注意：CSS変数はメディアクエリで直接使用できないため、コメントとして記載
       実際のメディアクエリでは以下の値を直接指定する：
       - モバイル最小幅: 375px
       - SP/モバイル最大幅: 899px
       - PC開始幅: 900px
       - 大画面開始幅: 1920px */
}

/* ========================================
   リセットCSS
   説明：ブラウザごとの見た目の違いをなくす設定
   全要素の余白を0にし、見た目を統一する
======================================== */
*,
*::before,
*::after {
    margin: 0;              /* 外側の余白を0に */
    padding: 0;             /* 内側の余白を0に */
    box-sizing: border-box; /* 要素のサイズに境界線と余白を含める */
}

/* パフォーマンス最適化：適切な要素にのみ適用 */
.hero,
.bg-decoration,
[class*="bg-decoration"] {
    will-change: transform;        /* 変形する要素のみ最適化 */
    backface-visibility: hidden;   /* 裏面を非表示にしてパフォーマンス向上 */
}

html {
    scroll-behavior: smooth; /* ページ内リンクをクリックした時、スムーズにスクロール */
}

body {
    font-family: var(--font-body);      /* 本文用のフォントを設定 */
    color: var(--color-text-light);     /* 文字色を設定 */
    background: var(--color-bg-main);   /* 背景色を白に設定 */
    line-height: 1.5;                   /* 行間を文字サイズの1.5倍に */
    overflow-x: hidden;                 /* 横スクロールを無効にする */
}

img {
    max-width: 100%;    /* 画像の最大幅を親要素の100%に制限 */
    height: auto;       /* 高さは縦横比を保って自動調整 */
    display: block;     /* インライン要素からブロック要素に変更 */
}

button {
    background: none;
    border: none;
    cursor: pointer;
    font-family: inherit;
}

a {
    text-decoration: none;
    color: inherit;
}

/* ========================================
   SPコンテナ（390px基準）
   説明：スマートフォン用のコンテナ
   画面幅390pxを基準にデザインを作成
======================================== */
.sp-container {
    position: relative;                 /* 子要素の配置基準にする */
    width: 100%;                       /* 幅を100%に */
    max-width: var(--max-content-width);  /* 最大幅を1200pxに制限 */
    margin: 0 auto;                    /* 左右中央寄せ */
    background: transparent;            /* 背景を透明に（ヒーローセクションの画像を見せるため） */
    overflow-x: hidden;                /* 横スクロールのみ隠す（縦は表示する） */
    min-height: 100vh;                 /* 画面高さを最小値に */
}

/* ========================================
   全セクション共通スタイル
   説明：各セクションの重なりを防ぐための基本設定
   重要：これによりセクションが正しく上から順番に並ぶ
======================================== */
section {
    position: relative;                          /* 相対配置（親要素に対する位置） */
    width: 100%;                                /* 幅を100%にする */
    min-height: var(--section-min-height);     /* CSS変数使用で統一管理 */
    padding-bottom: var(--section-padding);    /* CSS変数使用で統一管理 */
    margin-bottom: 0;                           /* セクション間の余白は0（paddingで調整） */
    box-sizing: border-box;                     /* パディングとボーダーを含めたサイズ計算 */
    overflow: visible;                          /* 子要素がはみ出しても表示する */
    isolation: isolate;                         /* スタッキングコンテキストを作成（z-index問題対策） */
    
    /* 初学者向けの説明：
       - position: relative で通常の文書フローに従う
       - CSS変数で値を統一管理し、保守性を向上
       - isolation: isolate でz-indexの競合を防ぐ
       - overflow: visible で装飾要素が見えるようにする */
}

/* ========================================
   背景装飾要素群
   説明：サイトの装飾用の背景画像の配置
   
   ✅ 修正完了：
   localhost URLを相対パス（../images/filename.jpg）に変更しました
   本番環境でも画像が正常に表示されます
   
   【難しいCSSの説明】
   ■ position: absolute = 絶対配置（親要素を基準に自由に配置）
   ■ z-index = 重なり順（数値が大きいほど前面に表示）
   ■ transform = 要素を回転・拡大縮小・移動させる
   ■ ::before = 疑似要素（CSSで作る仮想的な要素）
======================================== */
/* ========== 装飾画像：コーヒー豆のイラスト（大） ==========
   画像の内容：コーヒー豆の装飾イラスト（大きいサイズ）
   表示場所：フィーチャーセクション付近の背景装飾
   画像ファイル：031e67e3...png（コーヒー豆イラスト）
========================================== */
.bg-decoration--k2-large {
    position: absolute;
    left: -274px;              /* 左側に大きくはみ出して配置 */
    top: 1710px;               /* 上から1710pxの位置 */
    width: 739px;              /* 幅739px */
    height: 778px;             /* 高さ778px */
    
    /* コーヒー豆の装飾画像 */
    background: url('../images/feature.png') no-repeat;
    background-size: 167.26% 92.22%;      /* 画像サイズを横167%、縦92%に拡大 */
    background-position: 100% 100.37%;    /* 画像の位置を右下に設定 */
    z-index: var(--z-background);  /* 背景として表示（CSS変数使用） */
}

/* おK 3 (小) */
.bg-decoration--k3-small {
    position: absolute;
    left: -31px;
    top: 1608px;
    width: 450px;
    height: 164px;
    background: url('../images/feature.png') no-repeat;
    background-size: 307.47% 488.07%;
    background-position: 93.41% -10.65%;
    z-index: var(--z-background);  /* 背景要素として配置 */
}

/* おK 1 */
.bg-decoration--k1 {
    position: absolute;
    left: 193px;
    top: 2231px;
    width: 199px;
    height: 228px;
    background: url('../images/feature.png') no-repeat;
    background-size: 489.06% 248.37%;
    background-position: 100% 99.95%;
    z-index: var(--z-background);  /* 背景要素として配置 */
}

/* ========== 装飾画像：コーヒーの背景（回転） ==========
   画像の内容：コーヒー関連の背景画像（上下反転）
   表示場所：スペシャリティセクションの背景装飾
   画像ファイル：8a4131b3...png（コーヒー背景画像）
========================================== */
.bg-decoration--unsplash-rotated {
    position: absolute;
    left: -13.35px;
    top: 2459.21px;            /* スペシャリティセクション付近 */
    width: 415.657px;
    height: 2120.082px;
    transform: rotate(179.743deg);   /* 179.743度回転（ほぼ上下反転） */
    z-index: var(--z-background);  /* 背景要素として配置 */
}

.bg-decoration--unsplash-rotated::before {
    content: '';
    position: absolute;
    width: 406.168px;
    height: 2118.29px;
    background: url('../images/daryl-han-wbrdzuoosBw-unsplash.jpg') no-repeat;
    background-size: 152.38% 100.11%;
    background-position: 21.61% -31.1%;
    filter: blur(2.5px);   /* 2.5pxのぼかし効果を追加 */
}

/* グラデーション装飾要素群 */
.bg-decoration--gradient-1 {
    position: absolute;
    left: 31.8px;
    top: 3827px;
    width: 415.142px;
    height: 233.135px;
    transform: rotate(269.68deg);   /* 269.68度回転（ほぼ90度左回転） */
    z-index: var(--z-background);  /* 背景要素として配置 */
}

.bg-decoration--gradient-1::before {
    content: '';
    position: absolute;
    width: 230.84px;
    height: 413.87px;
    background: url('../images/bg_grd.png') center/cover no-repeat;
}

.bg-decoration--gradient-2 {
    position: absolute;
    left: -4px;
    top: 3250px;
    width: 387.916px;
    height: 228.921px;
    transform: rotate(270.32deg) scaleY(-100%);
    /* 270.32度回転 + 上下反転（scaleYでY軸方向を-100%に） */
    z-index: var(--z-background);  /* 背景要素として配置 */
}

.bg-decoration--gradient-2::before {
    content: '';
    position: absolute;
    width: 226.768px;
    height: 386.669px;
    background: url('../images/bg_grd.png') center/cover no-repeat;
}

.bg-decoration--gradient-3 {
    position: absolute;
    left: 67px;
    top: 2674px;
    width: 331.711px;
    height: 250.387px;
    transform: rotate(269.68deg);
    z-index: var(--z-background);  /* 背景要素として配置 */
}

.bg-decoration--gradient-3::before {
    content: '';
    position: absolute;
    width: 248.555px;
    height: 330.332px;
    background: url('../images/bg_grd.png') center/cover no-repeat;
}

.bg-decoration--gradient-bottom {
    position: absolute;
    left: -142.09px;
    top: 8182px;
    width: 686.842px;
    height: 559.668px;
    transform: rotate(179.508deg);
    z-index: var(--z-background);  /* 背景要素として配置 */
}

.bg-decoration--gradient-bottom::before {
    content: '';
    position: absolute;
    width: 682.117px;
    height: 553.83px;
    background: url('../images/bg_grd.png') center/cover no-repeat;
    filter: blur(8.5px);
    opacity: 0.6;
}

/* ベクター装飾要素群 */
.bg-decoration--vector-1 {
    position: absolute;
    left: -109px;
    top: 6220px;
    width: 495.886px;
    height: 103.098px;
    transform: rotate(171.12deg) scaleY(-100%);
    z-index: var(--z-background);  /* 背景要素として配置 */
}

.bg-decoration--vector-1::before {
    content: '';
    position: absolute;
    width: 497.765px;
    height: 26.585px;
    background: url('../images/br_waveline.svg') no-repeat;
    background-size: contain;
}

.bg-decoration--vector-2 {
    position: absolute;
    left: -6px;
    top: 4735px;
    width: 490.984px;
    height: 137.799px;
    transform: rotate(347.008deg);
    z-index: var(--z-background);  /* 背景要素として配置 */
}

.bg-decoration--vector-2::before {
    content: '';
    position: absolute;
    width: 497.765px;
    height: 26.585px;
    background: url('../images/br_waveline.svg') no-repeat;
    background-size: contain;
}

.bg-decoration--vector-3 {
    position: absolute;
    left: 191px;
    top: 1041px;
    width: 216.167px;
    height: 57.958px;
    transform: rotate(186.344deg) scaleY(-100%);
    z-index: var(--z-background);  /* 背景要素として配置 */
}

.bg-decoration--vector-3::before {
    content: '';
    position: absolute;
    width: 213.667px;
    height: 34.567px;
    background: url('../images/br_waveline.svg') no-repeat;
    background-size: contain;
}

.bg-decoration--vector-4 {
    position: absolute;
    left: -70px;
    top: 8589px;
    width: 216.167px;
    height: 57.958px;
    transform: rotate(186.344deg) scaleY(-100%);
    z-index: var(--z-background);  /* 背景要素として配置 */
}

.bg-decoration--vector-4::before {
    content: '';
    position: absolute;
    width: 213.667px;
    height: 34.567px;
    background: url('../images/br_waveline.svg') no-repeat;
    background-size: contain;
}

.bg-decoration--vector-5 {
    position: absolute;
    left: 93px;
    top: 8248px;
    width: 216.167px;
    height: 57.958px;
    transform: rotate(186.344deg) scaleY(-100%);
    z-index: var(--z-background);  /* 背景要素として配置 */
}

.bg-decoration--vector-5::before {
    content: '';
    position: absolute;
    width: 213.667px;
    height: 34.567px;
    background: url('../images/br_waveline.svg') no-repeat;
    background-size: contain;
}

.bg-decoration--vector-6 {
    position: absolute;
    left: 177px;
    top: 2414px;
    width: 214.937px;
    height: 43.655px;
    transform: rotate(182.448deg) scaleY(-100%);
    z-index: var(--z-background);  /* 背景要素として配置 */
}

.bg-decoration--vector-6::before {
    content: '';
    position: absolute;
    width: 213.667px;
    height: 34.567px;
    background: url('../images/br_waveline.svg') no-repeat;
    background-size: contain;
}

.bg-decoration--vector-7 {
    position: absolute;
    left: -105px;
    top: 5439px;
    width: 599.954px;
    height: 240.331px;
    transform: rotate(12.895deg);
    z-index: var(--z-background);  /* 背景要素として配置 */
}

.bg-decoration--vector-7::before {
    content: '';
    position: absolute;
    width: 589.964px;
    height: 111.498px;
    background: url('../images/br_waveline.svg') no-repeat;
    background-size: contain;
}

/* メインコーヒー背景 */
.hero-bg {
    position: absolute;
    left: -138.7px;
    top: -2.07px;
    width: 627.351px;
    height: 978.162px;
    transform: rotate(270.183deg);
    z-index: 0;
}

.hero-bg::before {
    content: '';
    position: absolute;
    width: 976.182px;
    height: 624.238px;
    background: url('../images/kv_hero.png') center/cover no-repeat;
}

/* ========================================
   ヒーローセクション（メイン画像部分）
   説明：サイトのメイン画面、画面全体に表示
   高さ：画面の高さ（100vh）を基準に設定
======================================== */
.hero {
    position: relative;         /* 【専門用語解説】子要素でposition: absoluteを使う時の基準点になる。
                                    この設定により、子要素（ロゴ、メニューボタンなど）を
                                    このセクション内の好きな場所に正確に配置できる */
    width: 100%;               /* 幅を画面いっぱいに */
    min-height: 100vh;         /* 画面高さを最小値に（スマホでも画面いっぱい） */
    height: 100vh;             /* 固定で画面高さに設定 */
    padding-bottom: 0;         /* ヒーローは下の余白なし（画面ぴったり） */
    margin-bottom: 0;          /* セクション間の余白なし */
    display: flex;             /* 【専門用語解説】flexboxレイアウト＝柔軟で簡単な配置システム。
                                   子要素を縦並び・横並び・中央寄せなどが簡単にできる */
    flex-direction: column;    /* 縦方向に配置 */
    justify-content: space-between; /* 上下に分散 */
    
    /* ========== ヒーローセクションのメイン背景画像 ==========
       画像の内容：コーヒーカップの大きな写真
       表示場所：ページトップの全体背景
       画像ファイル：44c325c6...png（コーヒー画像）
    ========================================== */
    background-image: url(../images/kv_hero.png);
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center top;
}

/* ヘッダー部分の設定（ロゴとメニューを含む上部エリア） */
.hero__header {
    position: relative;         /* 子要素の配置基準 */
    width: 100%;               /* 幅を100%に */
    z-index: var(--z-header);      /* 【専門用語解説】要素の重なり順序を指定。数値が大きいほど手前に表示される。
                                       ヘッダーは他の要素より前面に表示する必要があるため高い値を設定 */
}

/* ロゴ（h1タグ）の位置設定 */
.hero__header h1 {
    position: absolute;         /* 【専門用語解説】親要素（.hero）を基準にして、
                                    left・topで指定した位置に正確に配置される。
                                    他の要素の影響を受けず、重なりも可能 */
    left: 30px;                /* 左から30pxの位置 */
    top: 28px;                 /* 上から28pxの位置 */
    margin: 0;                 /* デフォルトの余白を消す */
}

/* ロゴのリンク部分のスタイル */
.hero__header h1 a {
    /* フォント設定 */
    font-family: var(--font-heading-en);   /* 英語用のフォント */
    font-weight: 700;                      /* 太字（700 = bold） */
    font-size: 25px;                       /* 文字の大きさ */
    line-height: normal;                   /* 行の高さを標準に */
    letter-spacing: 2.5px;                 /* 文字と文字の間隔 */
    
    /* 色の設定 */
    color: white;                          /* 文字色を白に */
    text-decoration: none;                 /* リンクの下線を消す */
}

/* ハンバーガーメニューボタン（画像）の設定 */
.header__btn {
    position: absolute;         /* 絶対位置で配置 */
    right: 16px;               /* 右から16pxの位置 */
    top: 30px;                 /* 上から30pxの位置 */
    width: 55px;               /* 幅55px */
    height: 58px;              /* 高さ58px */
    z-index: var(--z-header);      /* ヘッダー要素として配置 */
    cursor: pointer;           /* マウスを重ねた時、指マークに変える */
}

/* ========== チーズケーキの商品画像 ==========
   画像の内容：チーズケーキの写真
   表示場所：ヒーローセクションの左側中央
   画像ファイル：5c12e39a...png（チーズケーキ画像）
========================================== */
.hero__cheesecake {
    position: absolute;         /* 絶対位置で配置 */
    left: 27px;                /* 左から27pxの位置 */
    top: 156px;                /* 上から156pxの位置（ロゴの下） */
    width: 363px;              /* 幅363px */
    height: 213px;             /* 高さ213px */
    
    /* チーズケーキの画像を背景として表示 */
    /* background-image: url('../images/concept.png'); */
    background-repeat: no-repeat;      /* 画像を繰り返さない */
    background-size: cover;            /* 画像で全体を覆う */
    background-position: center;       /* 画像を中央に配置 */
    
    border-radius: 3px;               /* 角を3px丸める */
    z-index: var(--z-overlay);     /* オーバーレイ要素として配置 */
}

/* 縦書きテキスト「ごほうびは」（日本語の縦書き表示） */
.hero__text-reward {
    position: absolute;
    left: calc(50% + 104px);
    top: 157px;
    transform: translateX(-50%);  /* 【専門用語解説】要素を自分の幅の半分だけ左に移動。
                                      leftで指定した位置を中心にして左右対称に配置される */
    width: 24px;
    font-family: var(--font-heading-ja);
    font-weight: 600;
    font-size: 22px;
    line-height: normal;
    letter-spacing: 0.5em;
    color: white;
    writing-mode: vertical-rl;
    text-orientation: upright;
    z-index: var(--z-overlay);
}

/* 縦書きテキスト「甘さと静けさ」（日本語の縦書き表示） */
.hero__text-sweetness {
    position: absolute;
    left: calc(50% + 63px);
    top: 283px;
    transform: translateX(-50%);
    width: 24px;
    font-family: var(--font-heading-ja);
    font-weight: 600;
    font-size: 22px;
    line-height: normal;
    color: white;
    letter-spacing: 0.5em;
    writing-mode: vertical-rl;
    text-orientation: upright;
    z-index: var(--z-overlay);
}

/* ニュースティッカー（お知らせ表示エリア） */
.hero__news {
    position: absolute;
    bottom: 24px;
    width: 342px;
    height: 72px;
    background: rgba(255, 255, 255, 0.63);
    backdrop-filter: blur(10px);
    border-radius: 5px;
    z-index: var(--z-overlay);
    /* SP: 画面中央配置 */
    left: 50%;
    transform: translateX(-50%);
}

/* PC: 左端に配置 */
@media (min-width: 900px) {
    .hero {
        background-image: url(../images/hp_hero_bg.png);
    }

    .hero__news {
        left: 0;
        transform: none;
        border-radius: 0 5px 5px 0; /* 左端の角を直角に、右側の角は丸く */
    }

    .hero__text-reward,
    .hero__text-sweetness {
        font-size: 38px;
    }

    .hero__text-sweetness {
        left: calc(63% + 63px + 50px + 30px);
        top: 313px;
    }

    .hero__text-reward {
        left: calc(70% + 104px + 50px);
        top: 200px;
    }
}

.hero__news-label {
    position: absolute;
    left: 40px;
    top: 30%;
    transform: translateY(-50%);
    font-family: var(--font-heading-en);
    font-weight: 700;
    font-size: 18px;
    line-height: normal;
    letter-spacing: 1.8px;
    color: black;
}

.hero__news-date {
    position: absolute;
    left: 40px;
    top: 65%;
    transform: translateY(-50%);
    font-family: var(--font-body);
    font-weight: 300;
    font-size: 14px;
    line-height: normal;
    color: black;
}

.hero__news-text {
    position: absolute;
    left: 130px;
    top: 65%;
    transform: translateY(-50%);
    font-family: var(--font-body);
    font-weight: 300;
    font-size: 14px;
    line-height: normal;
    color: black;
}

/* ========================================
   コンセプトセクション（お店の想い）
   説明：カフェのコンセプトを説明するセクション
   高さ：内容に合わせて自動調整、最小600px
======================================== */
.concept {
    position: relative;
    width: 100%;              /* 幅を100%に変更して隙間をなくす */
    min-height: 750px;        /* 最小高さを少し増やして余裕を持たせる */
    height: auto;             /* コンテンツに応じて可変（文章量で高さ変わる） */
    padding-top: 0px;        /* 上部に余白を追加（前のセクションとの間隔） */
    padding-bottom: 0px;     /* 下部に余白を追加（次のセクションとの間隔） */
    margin-top: 0;            /* セクション間の余白は padding で調整 */
    
    /* ========== コンセプトセクションの背景画像 ==========
       画像の内容：コーヒーカップを持つ手の写真
       表示場所：コンセプトセクション全体の背景
       画像ファイル：13a66e2a...png（手とコーヒーカップ）
    ========================================== */
    background: url(../images/sp_concept.png) lightgray 50% center/cover no-repeat;
    /* 背景画像を設定: center(中央配置) / cover(全体を覆う) / no-repeat(繰り返さない) */

    
    z-index: var(--z-section);     /* セクション要素として配置 */
    margin-bottom: 0;         /* 下マージンを0にして隙間をなくす */
}

/* concept */
.concept__title {
    position: absolute;
    left: 30px;
    top: 80px;
    font-family: var(--font-heading-en);
    font-weight: 700;
    font-size: 25px;
    line-height: normal;
    letter-spacing: 2.5px;
    color: white;
    z-index: var(--z-overlay);     /* オーバーレイ要素として配置 */
}

/* コンセプト */
.concept__subtitle {
    position: absolute;
    left: 40px;
    top: 140px;
    font-family: var(--font-heading-ja);
    font-weight: 600;
    font-size: 14px;
    line-height: normal;
    letter-spacing: 1.4px;
    color: white;
    z-index: var(--z-overlay);     /* オーバーレイ要素として配置 */
}

/* ライン */
.concept__line {
    display: none;
}

/* 装飾 */
.wave__line{
    position: absolute;
    right: -0.5px;
    top: 80px;
    
}
/* 本文 */
.concept__catchphrase {
    position: absolute;
    left: 30px;
    top: 233px;
    transform: none;
    width: 269px;
    font-family: var(--font-heading-ja);
    font-weight: 600;
    font-size: 20px;
    line-height: normal;
    letter-spacing: 2px;
    text-align: left;
    white-space: nowrap;
    color: white;
    z-index: var(--z-overlay);     /* オーバーレイ要素として配置 */
}


.concept__text {
    position: absolute;
    left: calc(50% - 158.5px);
    top: 298px;
    width: 317px;
    font-family: var(--font-body);
    font-weight: 300;
    font-size: 14px;
    line-height: 30px;
    color: white;
    z-index: var(--z-overlay);     /* オーバーレイ要素として配置 */
}

/* PC版コンセプトセクション */
@media (min-width: 900px) {
    .concept {
        min-height: 700px;
        padding: 0;
        background: url(../images/hp_concept_bg.png) lightgray 50% center/cover no-repeat;
    }

    .concept__catchphrase {
        position: absolute;
        left: 30px;
        top: 200px;
        width: 500px;
        transform: none;
        text-align: left;
        font-size: 30px;
        white-space: nowrap;
    }

    .concept__text {
        position: absolute;
        left: calc(50% - 50px + 60px);
        top: 200px;
        width: 426px;
        font-size: 16px;
        line-height: calc(1.8 + 2px);
        letter-spacing: 4px;
    }

    .concept__text br {
        display: none;
    }
}

/* ========================================
   フィーチャーセクション  
   説明：お店の特徴を紹介する部分
======================================== */



.feature {
    position: relative;
    width: 100%;
    min-height: 100vh;
    background-image: url(../images/NW_bgfeature.jpg);
    background-repeat: no-repeat;
    background-size: cover;
    background-position: bottom;
    z-index: var(--z-section);     /* セクション要素として配置 */
    padding: 4rem 1.5rem 4rem;          /* レスポンシブな内側余白 */
    display: flex;
    flex-direction: column;
}

/* Featureセクションのコンテンツコンテナ */
.feature__content {
    position: relative;
    width: 100%;
    max-width: min(90%, 25rem);        /* レスポンシブな最大幅 */
    margin: 0 auto;
    flex: 1;
    flex-direction: column;
}



.feature__title {
    font-family: var(--font-heading-en);
    font-weight: 700;
    font-size: clamp(1.5rem, 4vw, 1.875rem);  /* レスポンシブフォントサイズ */
    line-height: 1.2;
    letter-spacing: 0.1em;
    color: black;
    margin-bottom: 0.5rem;
}




.feature__subtitle {
    font-family: var(--font-heading-ja);
    font-weight: 600;
    font-size: clamp(0.875rem, 2vw, 1rem);
    line-height: 1.5;
    letter-spacing: 0.4em;
    color: black;
    margin-bottom: 1rem;
    margin-left: 0.5rem;
}

.feature__line {
    width: 40%;
    max-width: 9.5rem;
    height: 0;
    border-bottom: 0.7px solid black;
    margin-bottom: 1rem;           /* subtitleとの間隔を調整 */
    margin-top: 0.75rem;             /* titleとの間隔を調整 */
    margin-left: -20px;            /* 左端まで移動 */
}

/* 縦書きテキスト群（日本語の特徴を縦に並べる） */
.feature__vertical {
    display: flex;
    flex-direction: row-reverse;       /* 右から左への順番に配置 */
    justify-content: center;
    gap: clamp(1.5rem, 4vw, 2rem);     /* レスポンシブな間隔 */
    margin: 2rem auto 0;
    height: clamp(12rem, 30vh, 15rem); /* レスポンシブな高さ */
}

/* 縦書きテキスト共通スタイル */
.feature__text01,
.feature__text02,
.feature__text03 {
    font-family: var(--font-heading-ja);
    font-weight: 600;
    font-size: clamp(1rem, 2.5vw, 1.125rem);  /* レスポンシブフォントサイズ */
    line-height: 1;
    color: var(--color-text-medium);
    letter-spacing: 0.8em;
    writing-mode: vertical-rl;     /* 縦書きモード（右から左へ） */
    text-orientation: upright;     /* 文字を正立させる */
    white-space: nowrap;           /* 改行しない */
}


/* 縦書きアイテムの個別設定（不要なため削除） */

.feature__text {
    width: 100%;
    margin: 0 0 1rem 0;
    font-family: var(--font-body);
    font-weight: 300;
    font-size: clamp(0.9375rem, 2.5vw, 1rem);
    line-height: 1.8;
    color: black;
    text-align: left;
    padding: 0 10px 0 0px;
    letter-spacing: 0.5px;
}

/* 「view more」ボタン（もっと見るボタン） */
.feature__more {
    align-self: flex-start;
    margin-left: 0;
    margin-top: 2rem;
    margin-bottom: 8rem;               /* 画像のスペースを確保 */
    font-family: var(--font-heading-en);
    font-size: clamp(0.75rem, 1.5vw, 0.875rem);
    line-height: 1;
    letter-spacing: 0.1em;
    color: var(--color-text-light);
    background: none;
    border: none;
    cursor: pointer;
    position: relative;
}

/* view moreボタンの装飾線 */
.feature__more::after {
    content: '';
    position: absolute;
    right: -2rem;
    top: 50%;
    transform: translateY(-50%);
    width: 1.5rem;
    height: 1px;
    background-color: var(--color-text-light);
}

/* view moreボタンの円 */
.feature__more::before {
    content: '';
    position: absolute;
    right: -2.5rem;
    top: 50%;
    transform: translateY(-50%);
    width: 0.875rem;
    height: 0.875rem;
    border: 1px solid var(--color-text-light);
    border-radius: 50%;
}

/* view moreボタンのコンテナ（将来的に使用） */
.feature__more-container {
    position: absolute;
    left: 30%;                         /* 左から30%の位置 */
    transform: translateX(-50%);       /* 中央揃え */
    bottom: 40px;                      /* 下から40pxの位置 */
    display: flex;                     /* フレックスボックス */
    align-items: center;               /* 縦中央揃え */
    gap: 10px;                         /* 要素間の隙間 */
}

.feature__more-btn {
    font-family: var(--font-heading-en);
    font-size: 12px;
    line-height: normal;
    letter-spacing: 1.2px;
    color: var(--color-text-light);
    background: none;
    border: none;
    cursor: pointer;
}

.feature__more-circle {
    width: 15px;
    height: 15px;
    background: url('../images/br_waveline.svg') no-repeat;
    background-size: contain;
}

.feature__more-vector {
    width: 21px;
    height: 1px;
    background: var(--color-text-light);
}

/* SP版でのfeatureセクションのレイアウト調整 */
.feature__layout {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.feature__left {
    order: 2; /* SP版では下に配置 */
    max-width: 20rem;
    margin: 0 auto;
}

.feature__right {
    order: 1; /* SP版では上に配置 */
    display: flex;
    justify-content: center;
}

/* PC版でのfeatureセクションのレイアウト調整 */
@media (min-width: 900px) {
    .feature {
        background-image: url(../images/hp_feature_bg.png);
        min-height: 700px;
    }

    .feature__layout {
        display: flex;
        flex-direction: row;
        align-items: flex-start;
        gap: 4rem;
        margin-top: 3rem;
    }

    .feature__left {
        flex: 1;
        order: 1; /* PC版では左に配置 */
        max-width: none;
        margin: 0;
    }

    .feature__right {
        flex: 1;
        order: 2; /* PC版では右に配置 */
        display: flex;
        justify-content: center;
        align-items: center;
    }

    .feature__text {
        margin-bottom: 2rem;
        max-width: none;
        letter-spacing: 2px;

    }

    .feature__more {
        margin-top: 0;
        margin-bottom: 0;
    }

    .feature__vertical {
        margin: 0;
        height: auto;
        min-height: 15rem;
        letter-spacing: 5px;
    }

    .feature__text01,
    .feature__text02,
    .feature__text03 {
        font-size: 25px;
        letter-spacing: 1.5rem;
    }
}

/* ========================================
   スペシャリティセクション（特別メニュー）
   説明：チーズケーキ、コーヒー、ペアリングの3つを紹介
   高さ：内容が多いため大きめに設定
======================================== */
.speciality{
    position: relative;
    width: 100%;
    min-height: 2150px;              /* SP版でコンテンツが収まるよう高さを調整 */
    background-image: url(../images/new_bgsp.png);
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    margin: 0 0 30px 0;              /* 下に30pxのマージンでMenuセクションとの間隔を調整 */
    overflow: hidden;
    padding: 0 20px;
}

.speciality__title {
    position: absolute;
    top: 75px;
    font-family: var(--font-heading-en);
    font-weight: 700;
    font-size: 25px;
    line-height: normal;
    letter-spacing: 2.5px;
    color: black;
    margin-left: 20px;
    margin-bottom: 12px;
}

.sp__border{
    position: absolute;
    top: 115px;
    width: 245px;
    border: solid 0.7px black;
    margin-left: -20px;
}

.speciality__subtitle{
    position: absolute;
    top: 130px;
    font-family: var(--font-heading-en);
    font-weight: 700;
    font-size: 14px;
    line-height: normal;
    letter-spacing: 2.5px;
    color: black;
    margin-left: 20px;
}

.speciality__content{
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 5rem;
}

.speciality__content li .speciality_img__cc{
    margin-top: 264px;
}

.speciality__content li{
    padding-bottom: 50px;
    display: flex;
    flex-direction: column;
}

.box__cc{
    position: absolute;
    top: 450px;
    left: 0;
    width: 350px;
    height: 250px;
    background: rgba(244, 237, 226, 0.57);
    z-index: 1;
}

.box__cf{
    position: absolute;
    left: 15px;
    top: 1020px;
    width: 359px;
    height: 226px;
    background: rgba(235, 217, 181, 0.60);
    z-index: 1;
}

.box__pr{
    position: absolute;
    top: 1550px;
    left: 0;
    width: 375px;
    height: 405px;
    flex-shrink: 0;
    background: rgba(251, 249, 245, 0.60);
    z-index: 1;
}

.speciality__content li .speciality__name{
    position: relative;
    z-index: 100;
    color: #562416;
    font-family: "Noticia Text";
    font-size: 22px;
    font-style: normal;
    font-weight: 700;
    line-height: normal;
    letter-spacing: 2.2px;
    margin: 0;
    margin-bottom: 10px;
    gap: 2rem;
}

.speciality__content li .speciality__sub{
    position: relative;
    z-index: 100;
    color: #471F15;
    font-family: "Hiragino Mincho Pro";
    font-size: 14px;
    font-style: normal;
    font-weight: 600;
    line-height: 35px;
    margin: 0;
    margin-bottom: 10px;
}

.speciality__maintxt {
    background: rgba(244, 237, 226, 0.57);
    padding: 30px;
    margin: 0px;
    margin-left: -20px;
    padding-left: 50px;
}

.speciality__item_cf {
    background: #EFE4CF;
    padding: 30px;
    margin: 0px;
    margin-right: -20px;
    padding-right: 50px;
}

.pairing_content {
    background: rgba(244, 237, 226, 0.57);
    padding: 30px;
    margin: 0px;
    margin-left: -20px;
    margin-right: -20px;
    padding-left: 50px;
    padding-right: 50px;
}

.speciality__content li .speciality__caption{
    position: relative;
    z-index: 100;
    margin-top: 2rem;
    font-size: 14px;
    color: #562416;
    font-family: "Hiragino Mincho ProN";
    font-size: 14px;
    font-style: normal;
    font-weight: 300;
    line-height: 28px;
    margin: 0;
    margin-top: 5px;
    word-wrap: break-word;
}

/* ========================================
   PC版 Specialityセクション
======================================== */
@media (min-width: 900px) {
    .speciality {
        min-height: 1000px;
        padding: 80px 90px;
        display: flex;
        flex-direction: column;
        align-items: center;
    }

    .speciality__section {
        text-align: left;
        margin-bottom: 80px;
        align-self: flex-start;
        width: 100%;
        padding-left: 40px;
    }

    .speciality__title {
        position: static;
        margin-left: 0;
        font-size: 35px;
        margin-bottom: 20px;
    }

    .sp__border {
        position: static;
        width: 245px;
        margin: 20px 0;
        margin-left: -40px;
    }

    .speciality__subtitle {
        position: static;
        margin-left: 40px;
        font-size: 16px;
    }

    .speciality__content {
        max-width: 1200px;
        display: flex;
        flex-direction: column;
        gap: 100px;
    }

    .speciality__content li {
        display: flex;
        flex-direction: row;
        align-items: center;
        gap: 80px;
        padding-bottom: 0;
    }

    /* チーズケーキ: 画像左、文字右 */
    .speciality__content li.speciality__item {
        flex-direction: row-reverse;
    }

    /* コーヒー: 文字左、画像右 */
    .speciality__content li.speciality__item:nth-child(2) {
        flex-direction: row;
    }

    /* ペアリング: 画像左、文字右 */
    .speciality__content li.pairing__item {
        flex-direction: row-reverse;
    }

    .speciality__content li .speciality_img__cc,
    .speciality__content li .speciality__img__cf,
    .speciality__content li .speciality__img__pr {
        margin: 0;
        flex: 0 0 500px;
    }

    .speciality__content li .speciality_img__cc img,
    .speciality__content li .speciality__img__cf img,
    .speciality__content li .speciality__img__pr img {
        width: 100%;
        height: 300px;
        object-fit: cover;
        border-radius: 12px;
        box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);
    }

    .speciality__maintxt {
        flex: 1;
        text-align: left;
        padding: 40px 50px;
        background: rgba(244, 237, 226, 0.57);
        border-radius: 8px;
        position: relative;
        margin: 20px 0 0 20px;
    }

    .speciality__item_cf {
        flex: 1;
        text-align: left;
        padding: 40px 50px;
        background: #EFE4CF;
        border-radius: 8px;
        position: relative;
        margin: 20px 0 0 20px;
    }

    .pairing_content {
        flex: 1;
        text-align: left;
        padding: 40px 50px;
        background: rgba(244, 237, 226, 0.57);
        border-radius: 8px;
        position: relative;
        margin: 20px -20px 0 -20px;
        width: calc(100% + 40px);
    }

    .speciality__content li .speciality__name {
        margin: 0 0 20px 0;
        font-size: 32px;
        font-weight: 700;
    }

    .speciality__content li .speciality__sub {
        margin: 0 0 15px 0;
        font-size: 18px;
        color: var(--color-text-medium);
    }

    .speciality__content li .speciality__caption {
        margin: 0;
        font-size: 18px;
        line-height: 1.8;
        color: var(--color-text-dark);
    }

    /* PC版 News Section */
    .news__header {
        margin-left: 0px;              /* PC版でもheaderの余白をリセット */
    }

    .news__title {
        position: relative;
        left: -25px;                   /* 60px(news padding) - 25px = 35pxの位置に配置 */
    }

    .news__line {
        margin-left: -130px;       /* PC版で完全に左端に余白なく配置 */
    }
}

/* ========================================
   メニューセクション
   説明：カフェのメニューを表示するセクション
   重要：要素のはみ出しを防ぐため十分な高さを確保
======================================== */
.menu {
    position: relative;           /* 子要素の基準位置 */
    width: 100%;                 /* 幅100% */
    min-height: 850px;           /* 最小高さを増加（メニューアイテム分を考慮） */
    padding: 30px 0 120px 0;     /* 上30px、下120pxの余白（調整済み） */
    z-index: var(--z-section);     /* セクション要素として配置 */
    overflow: visible;           /* 子要素の表示を確保 */
    
    /* 初学者向け説明：
       - min-height でメニューアイテムが収まる高さを確保
       - padding で前後セクションとの適切な間隔を設定
       - overflow: visible で装飾要素が見えるようにする */
}

.menu__header {
    position: relative;
}

.menu__title {
    position: absolute;
    top: -40px;
    left: 35px;
    font-family: var(--font-heading-en);
    font-weight: 700;
    font-size: 25px;
    line-height: normal;
    letter-spacing: 2.5px;
    color: var(--color-primary);
    /* margin-bottom: 8px; */
}

.menu__subtitle_m{
    position: absolute;
    top: 10px;
    left: 35px;
    font-family: var(--font-heading-ja);
    font-weight: 600;
    font-size: 14px;
    line-height: 35px;
    letter-spacing: 1.4px;
    color: var(--color-primary);
    margin-bottom: 0px;
}

.menu__line {
    width: 161px;
    height: 0;
    border-bottom: 1px solid var(--color-primary);
    margin-bottom: 60px;
}

/* メニューアイテムコンテナ - タイトル部分が通常フローになったためmargin-topは不要 */

/* メニューアイテムのラッパー（写真+説明テキストの全体） */
.menu__item-wrapper {
    margin: 0 auto 50px;           /* 中央配置、下に50pxのマージン */
    text-align: center;
}

.menu__item {
    position: relative;
    width: 340px;                  /* Figmaデザインに合わせて幅を広く */
    height: 260px;                 /* Figmaデザインに合わせて高さを低く（横長に） */
    margin: 0 auto;                /* 中央配置 */
}

.menu__item-bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    border-radius: 0;               /* Figmaデザインに合わせて角丸なし */
    z-index: 1;
}

/* 各メニューアイテムの背景画像 - wrapper構造に対応 */
.menu__item-wrapper:nth-child(1) .menu__item-bg {
    background-image: url('../images/menu_paring.png');
}

.menu__item-wrapper:nth-child(2) .menu__item-bg {
    background-image: url('../images/menu_cheesecake.png');
}

.menu__item-wrapper:nth-child(3) .menu__item-bg {
    background-image: url('../images/menu_coffee.png');
}

.menu__item-wrapper:nth-child(4) .menu__item-bg {
    background-image: url('../images/menu_seasonal.jpg');
    background-position: center bottom 20%
}

.menu__item-title {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);  /* 写真の中央に配置 */
    font-family: 'Noticia Text', serif; /* Figmaデザインで指定されたフォント */
    font-weight: 400;
    font-size: 36px;               /* Figmaデザインで指定されたサイズ */
    line-height: 1.2;
    color: white;
    text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.7); /* テキストを読みやすく */
    text-align: center;
    white-space: nowrap;           /* 改行を防ぐ */
    z-index: 10;
}

.menu__item-title--overlay {
    text-shadow: 2px 2px 2px rgba(0, 0, 0, 0.45);
}

.menu__item-title--seasonal {
    font-size: 34px;
    letter-spacing: 3.4px;
    line-height: 30px;
}

.menu__item-text {
    margin-top: 20px;              /* 写真の下に20pxのマージン */
    font-family: var(--font-body);
    font-weight: 300;
    font-size: 14px;
    line-height: 1.8;
    color: var(--color-text);      /* 通常のテキスト色 */
    text-align: left;              /* 左配置（Figmaデザインに合わせて） */
    max-width: 340px;              /* メニューアイテムと同じ幅に制限 */
    margin-left: auto;
    margin-right: auto;
}

.menu__item-arrow {
    position: absolute;
    left: 50%;                     /* 横方向の中央に配置 */
    bottom: 60px;                  /* 写真の下部、タイトルの下に配置 */
    transform: translateX(-50%);   /* 中央揃え */
    width: 36px;
    height: 37px;
    background: none;              /* SVGアイコンを使うため背景なし */
    border: none;                  /* ボーダーなし */
    padding: 0;                    /* パディングなし */
    cursor: pointer;
    transition: all 0.3s ease;     /* ホバー効果のトランジション */
    z-index: 10;
}

.menu__item-arrow:hover {
    transform: translateX(-50%) scale(1.05);  /* ホバー時に5%拡大 */
}

.menu__item-arrow rect {
    transition: all 0.4s ease;
}

.menu__item-arrow:hover rect {
    fill: #FFD288;                 /* ホバー時にゴールデンベージュに変更 */
    animation: slideColor 0.4s ease;
}

@keyframes slideColor {
    0% {
        fill: #7D7F78;
    }
    100% {
        fill: #FFD288;
    }
}

.menu__item-arrow img {
    width: 16px;
    height: 16px;
}

.menu__btn {
    position: absolute;
    left: 50%;
    bottom: 60px;                        /* セクション内に配置するため正の値に変更 */
    transform: translateX(-50%);              /* 中央配置 */
    width: 235px;
    height: 44px;
    border: 1px solid #484D3A;               /* 提供されたSVGの色に合わせる */
    border-radius: 21.5px;                   /* SVGの rx="21.5" に合わせる */
    background: transparent;                  /* 背景を透明に */
    font-family: var(--font-heading-en);
    font-size: 14px;
    line-height: normal;
    letter-spacing: 1.4px;
    color: #212121;                          /* SVGのテキスト色に合わせる */
    cursor: pointer;                         /* ホバー時のカーソル */
    transition: all 0.3s ease;              /* ホバー効果用 */
}

.menu__btn:hover {
    background: var(--color-primary);
    color: var(--color-bg-main);
    transform: translateX(-50%) translateY(-1px);     /* 軽く浮き上がる効果 */
    box-shadow: 0 4px 8px rgba(0,0,0,0.1);
}

/* ========================================
   ニュースセクション（お知らせ）
   説明：カフェからのお知らせを表示
   Figmaデザインに合わせて左寄せレイアウトを採用
======================================== */
.news {
    position: relative;
    width: 100%;
    padding: 30px 10px;             /* 上下の余白を少し増やして美しく */
    background: var(--color-bg-light);
    min-height: 450px;              /* 高さを少し増やして余裕を持たせる */
    z-index: var(--z-section);     /* セクション要素として配置 */
    overflow: visible;              /* 背景装飾の表示を確保 */
}

/* オーバーレイ効果を擬似要素で実現（ニュースリスト部分のみ） */
.news::after {
    content: '';
    position: absolute;
    left: -20px;                    /* 左端を超えて配置 */
    right: -20px;                   /* 右端を超えて配置 */
    top: 140px;                     /* タイトル・サブタイトル・線の下から開始 */
    bottom: 0;                      /* セクション下端まで */
    width: auto;                    /* 左右の値で自動計算 */
    height: auto;                   /* 上下の値で自動計算 */
    background: var(--color-bg-news-overlay);
    z-index: -1;
    pointer-events: none;
}

.news__bg {
    /* 背景色は親要素で設定 */
    display: none;
}

.news__overlay {
    /* オーバーレイ効果は擬似要素で実現 */
    display: none;
}

.news__header {
    text-align: left;               /* Figmaに合わせて左寄せ */
    margin-bottom: 35px;            /* 余白を少し調整 */
    margin-left: 0px;               /* 余白をリセット */
    z-index: 3;
}

.news__title {
    font-family: var(--font-heading-en);
    font-weight: 700;
    font-size: 25px;
    line-height: normal;
    letter-spacing: 2.2px;
    color: var(--color-primary);
    margin-bottom: 12px;
    margin-left: 25px;              /* 10px(newsのpadding) + 25px = 35px = menu__titleと同じ */
}

.news__line {
    width: 200px;
    height: 0;
    border-bottom: 1px solid var(--color-primary);
    margin: 0 0;
    margin-left: -100px;        /* 画面の完全な左端に余白なく配置 */
}

.news__subtitle {
    font-family: var(--font-heading-ja);
    font-weight: 600;
    font-size: 14px;
    line-height: 35px;
    letter-spacing: 1.4px;
    color: var(--color-primary);
    margin-bottom: 20px;            /* ニュースリストとの適切な間隔 */
    margin-left: 0px;               /* speciality__titleと同じ位置 */
}

.news__list {
    max-width: 320px;               /* 幅を少し広げて */
    margin: 0 0 35px 20px;          /* 左寄せに変更、左マージンを追加 */
    z-index: 3;
}

.news__item {
    margin-bottom: 32px;            /* アイテム間の余白を調整 */
    padding-left: 0;                /* 左の余白をリセット */
}

.news__date {
    font-family: var(--font-heading-en);
    font-weight: 700;
    font-size: 15px;
    line-height: normal;
    letter-spacing: 1.5px;
    color: var(--color-text-date);
}

.news__text {
    margin-top: 5px;
    font-family: var(--font-body);
    font-weight: 300;
    font-size: 14px;
    line-height: 32px;
    color: black;
}

.news__btn {
    display: block;
    margin: 0 auto;          /* 左寄せに変更、左マージンを追加 */
    width: 235px;
    height: 44px;
    border: 1px solid var(--color-border);
    border-radius: 60px;
    background: transparent;
    font-family: var(--font-heading-en);
    font-size: 14px;
    line-height: normal;
    letter-spacing: 1.4px;
    color: var(--color-text-light);
    cursor: pointer;                /* カーソル表示を追加 */
    transition: all 0.2s ease;      /* ホバー効果のためのトランジション */
}

/* ボタンのホバー効果を追加 */
.news__btn:hover {
    background: var(--color-primary);
    color: var(--color-bg-main);
    transform: translateY(-1px);     /* 軽く浮き上がる効果 */
    box-shadow: 0 4px 8px rgba(0,0,0,0.1);
}

/* ========================================
   アクセスセクション
   説明：店舗へのアクセス方法と地図を表示
======================================== */
.access {
    position: relative;
    width: 100%;
    padding: 50px 20px;                /* Figmaデザインに合わせた左右padding */
    z-index: var(--z-section);         /* セクション要素として配置 */
}

.access__header {
    text-align: left;
    margin-bottom: var(--spacing-xl);
}

.access__title {
    font-family: var(--font-heading-en);
    font-weight: 700;
    font-size: 22px;
    line-height: normal;
    letter-spacing: 2.2px;
    color: var(--color-primary);
    margin-bottom: 8px;
}

.access__subtitle {
    font-family: var(--font-heading-ja);
    font-weight: 600;
    font-size: 14px;
    line-height: 33.865px;
    letter-spacing: 1.4px;
    color: var(--color-primary);
    margin-bottom: 15px;
}

.access__line {
    width: 80px;
    height: 0;
    border-bottom: 1px solid var(--color-primary);
    margin: var(--spacing-xs) 0;
}

.access__info {
    text-align: left;
    margin-bottom: 30px;
}

.access__name {
    font-family: var(--font-heading-en);
    font-weight: 700;
    font-size: 25px;
    line-height: normal;
    letter-spacing: 2.5px;
    color: var(--color-primary);
    margin-bottom: 15px;
}

.access__address {
    font-family: var(--font-body);
    font-weight: 300;
    font-size: 14px;
    line-height: 28px;
    color: black;
    font-style: normal;
    margin-bottom: 30px;
}

/* ========== アクセスマップ画像 ==========
   画像の内容：Googleマップの地図画像
   表示場所：アクセスセクション
   画像ファイル：7e6dabdb...png（地図画像）
========================================== */
.access__map {
    width: 100%;
    max-width: 341px;
    height: 227.221px;
    margin: 0 0 20px 0;
    
    /* Googleマップの地図画像 */
    background: url('../images/map.png') center/cover no-repeat;
    
    border-radius: 5px;        /* 角を5px丸める */
}

.access__map-link {
    display: block;
    font-family: var(--font-heading-ja);
    font-weight: 600;
    font-size: 13px;
    line-height: 28px;
    color: black;
    text-decoration: underline;         /* 下線をつける */
    text-underline-position: from-font; /* 下線の位置をフォントに合わせる */
    text-decoration-skip-ink: none;     /* 文字と下線が重なってもOK */
    margin-bottom: 20px;
}

.access__btn {
    display: block;
    margin: 0;
    width: 235px;
    height: 44px;
    border: 1px solid var(--color-border);
    border-radius: 60px;
    background: transparent;
    font-family: var(--font-heading-ja);
    font-weight: 600;
    font-size: 14px;
    line-height: normal;
    letter-spacing: 2.8px;
    color: var(--color-text-light);
    cursor: pointer;
    transition: all 0.3s ease;
}

.access__btn:hover {
    background: #D2691E;
    border-color: #D2691E;
    color: white;
    transform: translateY(-1px);
    box-shadow: 0 4px 8px rgba(0,0,0,0.1);
}

/* Accessセクション - クリーンなレイアウト */
.access__header {
    text-align: left;
    margin-bottom: 40px;
}

.access__info {
    text-align: left;
    margin-bottom: 30px;
}

/* 中央揃えが必要な要素のみ指定 */
.access__map-link,
.access__btn {
    text-align: center;
    display: block;
}

.access__btn {
    margin: 20px auto 0;
}

/* ========================================
   インスタグラムセクション
   説明：インスタグラムの投稿写真を表示
======================================== */
.instagram {
    position: relative;
    width: 100%;                              /* Figmaの通り100%幅 */
    padding: 30px 15px;                       /* スマホに適した余白 */
    background: linear-gradient(180deg, #F5E6D3 0%, #C4935A 100%);
    /* グラデーションがsection全体を覆うよう確実に設定 */
    background-size: 100% 100%;
    background-repeat: no-repeat;
}

/* ヘッダー部分のコンテナ */
.instagram__header {
    text-align: center;
    margin-bottom: 24px;                      /* スマホに適した間隔 */
}

.instagram__title {
    font-family: var(--font-heading-en);
    font-weight: 700;
    font-size: 22px;                          /* スマホサイズに適したフォントサイズ */
    line-height: normal;
    letter-spacing: 2.2px;
    color: var(--color-secondary);
    margin-bottom: 16px;                      /* スマホに適した間隔 */
}

/* ハンドルとアイコンのコンテナ */
.instagram__handle-container {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 10px;
}

.instagram__handle {
    font-family: var(--font-heading-en);
    font-size: 13px;                          /* スマホに適したフォントサイズ */
    line-height: normal;
    letter-spacing: 1.3px;
    color: black;
}

.instagram__icon {
    width: 20px;                              /* スマホに適したアイコンサイズ */
    height: 20px;
    color: var(--color-secondary, #8B4513);
}

.instagram__grid {
    display: grid;
    grid-template-columns: repeat(3, 95px);    /* 375px幅に最適化したサイズ */
    gap: 5px;                                  /* 適切なギャップ */
    justify-content: center;                   /* 中央配置 */
    margin: 0 auto;
    max-width: 300px;                          /* グリッド全体の最大幅 */
}

.instagram__image {
    width: 95px;
    height: 95px;                              /* スマホに最適化したサイズ */
    background-size: cover;
    background-position: center;
    border-radius: 0;                          /* 角の丸みなし */
}

/* Instagram画像の背景設定 */
.instagram__image--1 {
    background-image: url('../images/ig_01.png');
}

.instagram__image--2 {
    background-image: url('../images/ig_02.png');
}

.instagram__image--3 {
    background-image: url('../images/ig_03.png');
}

.instagram__image--4 {
    background-image: url('../images/ig_04.png');
}

.instagram__image--5 {
    background-image: url('../images/ig_05.png');
}

.instagram__image--6 {
    background-image: url('../images/ig_06.png');
}

/* Instagramセクションのレスポンシブ対応 */
@media (min-width: 900px) {
    .instagram {
        padding: 80px 40px;
    }

    .instagram__grid {
        grid-template-columns: repeat(3, 150px);  /* PC用サイズ */
        gap: 12px;
    }

    .instagram__image {
        width: 150px;
        height: 150px;
    }

    .instagram__title {
        font-size: 30px;                  /* PCでは少し大きく */
    }
}

/* ========================================
   フッター
   説明：Figmaデザインに合わせたシンプルなレイアウト（店舗情報・営業時間・連絡先など）
======================================== */
.footer {
    background: var(--color-bg-footer);
    padding: 2rem 1.5rem;
    z-index: var(--z-section);     /* セクション要素として配置 */
}

/* メイン情報エリア（左側に配置） */
.footer__main {
    max-width: var(--max-content-width);
    margin: 0 auto;
}

/* ロゴスタイル */
.footer__logo {
    font-family: var(--font-heading-en);
    font-weight: 700;
    font-size: 1.375rem;
    letter-spacing: 0.1375rem; /* 2.2px → rem conversion */
    color: var(--color-text-primary, black);
    margin-bottom: 1.5rem;
}

/* 店舗情報エリア */
.footer__info {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

/* 各セクションの基本スタイル */
.footer__section {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

/* セクションタイトル */
.footer__title {
    font-family: var(--font-heading-en);
    font-weight: 700;
    font-size: 1rem;
    letter-spacing: 1.6px;
    color: var(--color-footer-title);
    margin-bottom: 0.5rem;
}

/* Access セクションの特別スタイル */
.footer__section--access .footer__title {
    font-size: 1.125rem;
    letter-spacing: 1.8px;
}

/* テキストスタイル */
.footer__text {
    font-family: var(--font-body);
    font-weight: 300;
    font-size: 0.875rem;
    line-height: 1.6;
    color: black;
}

/* Google Mapリンク */
.footer__map-link {
    font-family: var(--font-heading-ja);
    font-weight: 600;
    font-size: 0.8125rem;
    color: black;
    text-decoration: underline;
    text-underline-position: from-font;
    text-decoration-skip-ink: none;
    display: inline-block;
    margin-top: 0.25rem;
}

/* お問い合わせセクション */
.footer__contact {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

/* 連絡先アイテム（電話・メール） */
.footer__contact-item {
    display: flex;
    align-items: center;
    gap: 0.625rem;
}

.footer__contact-item svg {
    width: 1.5rem;
    height: 1.5rem;
    flex-shrink: 0;
}

.footer__contact-item span,
.footer__contact-link {
    font-family: var(--font-body);
    font-weight: 300;
    font-size: 0.875rem;
    color: black;
    text-decoration: none;
}

.footer__contact-link:hover {
    text-decoration: underline;
}

/* アクションエリア（予約ボタンとSNS） */
.footer__actions {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    margin: 2rem 0;
}

/* 予約ボタン */
.footer__btn {
    width: 12rem;
    height: 2.1875rem;
    border: 1px solid black;
    border-radius: 60px;
    background: transparent;
    font-family: var(--font-heading-ja);
    font-weight: 600;
    font-size: 0.875rem;
    letter-spacing: 2.8px;
    color: var(--color-text-light);
    cursor: pointer;
    transition: background-color 0.3s ease;
    will-change: background-color;
}

.footer__btn:hover {
    background: #D2691E;
    border-color: #D2691E;
    color: white;
    transform: translateY(-1px);
    box-shadow: 0 4px 8px rgba(0,0,0,0.1);
}

.footer__btn:focus-visible {
    background-color: rgba(0, 0, 0, 0.05);
    outline: 2px solid var(--color-text-primary, black);
    outline-offset: 2px;
}

/* SNSアイコン */
.footer__social {
    width: 1.9375rem;
    height: 1.9375rem;
}

.footer__social img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

/* ボトムエリア */
.footer__bottom {
    border-top: 1px solid rgba(0, 0, 0, 0.1);
    padding-top: 1.5rem;
    text-align: center;
}

/* ナビゲーションリンク */
.footer__nav {
    display: flex;
    justify-content: center;
    gap: 3rem;
    margin-bottom: 1rem;
}

.footer__nav a {
    font-family: var(--font-body);
    font-weight: 300;
    font-size: 0.75rem;
    color: black;
    text-decoration: none;
}

.footer__nav a:hover {
    text-decoration: underline;
}

/* コピーライト */
.footer__copyright {
    font-family: var(--font-heading-en);
    font-size: 0.75rem;
    letter-spacing: 1.2px;
    color: black;
    text-align: center;
}

/* ========================================
   フッター レスポンシブ対応
   説明：Figmaデザインに合わせた各画面サイズでの最適化
======================================== */

/* PC対応（900px以上） */
@media (min-width: 900px) {
    .footer {
        padding: 3rem 2rem;
    }
    
    .footer__main {
        display: flex;
        align-items: flex-start;
        gap: 4rem;
    }
    
    .footer__logo {
        flex-shrink: 0;
        margin-bottom: 0;
        margin-right: 2rem;
    }
    
    .footer__info {
        flex: 1;
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
        gap: 2rem;
    }
    
    .footer__actions {
        justify-content: space-between;
        margin: 3rem 0;
    }
}

/* PC対応（900px以上） */
@media (min-width: 900px) {
    /* ========================================
       PC版でのセクション調整
       説明：大画面では余白を増やして見やすくする
    ======================================== */
    section {
        min-height: 500px;         /* PC版では最小高さを少し増やす */
        padding-bottom: 60px;      /* セクション間の余白も増やす */
    }
    
    .hero {
        min-height: 100vh;         /* ヒーローは画面いっぱいを維持 */
    }

    .menu {
        min-height: 900px;         /* メニューセクションも大きめに */
        padding: 150px 0 180px 0;  /* PC版では余白を増やす */
    }
    
    .speciality {
        min-height: 1600px;        /* スペシャリティは内容が多いのでより大きく */
        padding: 100px 0 150px 0;
    }
    
    .news {
        min-height: 700px;         /* ニュースセクションも余裕を持って */
        padding: 150px 0;
    }
    
    /* フッターの既存スタイル */
    .footer {
        padding: 4rem 2rem;
    }
    
    .footer__info {
        grid-template-columns: repeat(3, 1fr);
        gap: 3rem;
    }
    
    .footer__actions {
        justify-content: center;
        gap: 2rem;
    }
}

/* ========================================
   レスポンシブ対応
   説明：画面幅に応じてデザインを調整
   ブレークポイント：
   - モバイル: 375px〜899px（SPデザイン維持）
   - PC: 900px〜1920px（コンテンツ最大1200px）
======================================== */

/* ========================================
   モバイル対応（375px〜899px）
   説明：最小幅375pxを保証し、SPデザインを維持
======================================== */
@media (max-width: 899px) {
    /* コンテナの基本設定 */
    .sp-container {
        min-width: 375px;           /* 最小幅375pxを保証 */
        max-width: 100%;            /* 画面幅に合わせる */
    }
    
    /* 375px以下の極小画面対応 */
    @media (max-width: 375px) {
        /* 位置調整が必要な要素 */
        .hero__cheesecake {
            width: 345px;           /* 小画面用に固定幅指定 */
            left: 15px;             /* 位置調整 */
        }
        
        .concept__text {
            width: 301px;           /* 小画面用に固定幅指定 */
        }
        .menu__item {
            width: 320px;           /* 小画面でも横長を維持 */
            height: 240px;          /* 高さも調整 */
            margin: 0 auto;         /* 中央配置 */
        }
        .news__list {
            width: 296px;           /* 小画面用に固定幅指定 */
        }
        
        /* フォントサイズの微調整 */
        .hero__title {
            font-size: 42px;        /* 少し小さく */
        }
        
        .concept__catchphrase {
            font-size: 20px;
        }
    }
}


/* ========================================
   PC対応（900px〜1920px）
   説明：最大1200px幅でレイアウトを最適化
======================================== */
@media (min-width: 900px) {
    /* コンテナの設定 */
    .sp-container {
        max-width: 100%;                       /* 画面幅いっぱい */
    }

    /* 各セクションの基本調整（中間サイズ対応） */
    .hero__section,
    .concept__section,
    .menu__section,
    .news__section,
    .pairing__section,
    .feature__section,
    .access__section {
        padding: 40px 30px;         /* 中間サイズでの適切な余白 */
    }
    
    /* ヒーローセクション */
    .hero__section {
        display: flex;
        justify-content: space-between;
        align-items: center;
        min-height: 100vh;          /* 画面の高さいっぱい */
    }
    
    .hero__cheesecake {
        position: relative;
        left: 0;
        width: 544px;              /* PC用に固定幅指定 */
    }
    
    /* メニューセクション - グリッドレイアウト */
    .menu__items {
        display: grid;
        grid-template-columns: repeat(2, 1fr);  /* 2列に変更して中央配置しやすく */
        gap: 40px;
        max-width: 700px;              /* 2列に合わせて幅を調整 */
        margin: 0 auto;                /* 中央配置 */
        justify-items: center;         /* グリッドアイテムを中央に配置 */
    }
    
    .menu__item {
        width: 300px;               /* PC版では少し小さめに */
        height: 250px;              /* 横長比率を維持 */
        margin: 0 auto;             /* 中央配置 */
    }
    
    /* コンセプトセクション - PC版用調整を削除してSP版設定を維持 */
    
    /* ニュースセクション - PC版も左寄せレイアウトを維持 */
    .news {
        padding: 80px 60px;         /* PCサイズでは余白を増やす */
    }
    
    .news__header {
        margin-left: 40px;          /* PC版では左マージンを増やす */
    }
    
    .news__list {
        position: relative;
        left: 0;
        max-width: 600px;           /* 幅を少し狭めて読みやすく */
        margin: 0 0 40px 40px;      /* 左寄せを維持、左マージンを追加 */
        padding: 0;                 /* 不要なpaddingを削除 */
    }
    
    .news__item {
        display: flex;
        align-items: baseline;
        gap: 30px;
        padding: 15px 0;            /* 縦の余白を少し減らす */
        border-bottom: 1px solid rgba(86, 36, 22, 0.15);  /* ボーダーを薄いブラウンに */
    }
    
    .news__btn {
        margin-left: 40px;          /* PC版でも左寄せを維持 */
    }
    
    /* フィーチャーセクション */
    .feature__section {
        padding: 100px 0;
    }
    
    .feature__content {
        max-width: 800px;
        margin: 0 auto;
    }
    
    /* アクセスセクション - PC用レイアウト */
    .access {
        padding: 60px 30px;
        max-width: 1200px;
        margin: 0 auto;
    }

    .access__header {
        text-align: center;
        margin-bottom: 40px;
    }

    .access__title {
        position: static;
        left: auto;
        margin-bottom: 8px;
    }

    .access__subtitle {
        position: static;
        left: auto;
        top: auto;
    }

    .access__line {
        position: static;
        left: auto;
        top: auto;
        width: 80px;
        margin: 15px auto;
    }

    .access__info {
        margin-top: 0;
        text-align: center;
    }
    
    .access__name {
        position: static;
        left: auto;
        top: auto;
        margin-bottom: 15px;
        text-align: center;
    }

    .access__address {
        position: static;
        left: auto;
        top: auto;
        width: auto;
        text-align: center;
        margin-bottom: 30px;
    }

    .access__map {
        position: static;
        left: auto;
        top: auto;
        width: 100%;
        max-width: 400px;
        height: 300px;
        margin: 0 auto 20px;
    }

    .access__map-link {
        position: static;
        left: auto;
        top: auto;
        transform: none;
        margin: 0 auto 20px;
        display: block;
        text-align: center;
    }

    .access__btn {
        position: static;
        left: auto;
        top: auto;
        transform: none;
        margin: 0 auto;
        display: block;
    }
    
    
    /* フォントサイズの調整（中間サイズ対応） */
    .hero__title {
        font-size: 56px;
    }

    .concept__title,
    .menu__title,
    .news__title,
    .access__title {
        font-size: 32px;
    }

    /* 画像サイズの調整 */
    .hero__cheesecake img,
    .concept__image img {
        width: 100%;
        height: auto;
    }

    /* メニューアイテムの背景は高さを保持 */
    .menu__item-bg {
        width: 100%;
        height: 100%;
    }
    h2 { font-size: 48px; }
    h3 { font-size: 32px; }
    p { font-size: 16px; line-height: 1.8; }
}

/* ========================================
   大画面対応（1920px以上）
   説明：大きなモニター用の追加調整
======================================== */
@media (min-width: 1920px) {
    .sp-container {
        max-width: 100%;            /* 画面幅いっぱい */
    }
    
    /* セクション間の余白を広げる */
    /* section {
        margin-bottom: 120px;
    } */
}