.ramen-wrap{--c-red:#c40000;--c-black:#111;--c-gray:#666;--bg:#fafafa;font-size:16px;line-height:1.7}
.ramen-container{max-width:1080px;margin:0 auto;padding:0 16px}
.ramen-sec{padding:48px 0}
.ramen-sec.alt{background:var(--bg)}
.ramen-h2{font-size:1.6rem;margin:0 0 12px}
.ramen-lead{color:var(--c-gray);margin:0 0 20px}
.ramen-grid{display:grid;gap:18px}
@media(min-width:980px){.ramen-grid{grid-template-columns:1.1fr .9fr}}
.ramen-card{background:#fff;border:1px solid #eee;border-radius:14px;padding:18px;box-shadow:0 8px 22px rgba(0,0,0,.05)}
.ramen-badges{margin:6px 0 0}
.ramen-badge{display:inline-block;background:#fff3f3;border:1px solid #ffd7d7;color:#b00000;border-radius:999px;padding:4px 10px;margin:0 6px 6px 0;font-size:.9rem;font-weight:700}
.ramen-gallery{display:grid;gap:12px;margin-top:12px}
@media(min-width:720px){.ramen-gallery{grid-template-columns:1fr 1fr}}
.ramen-ph{position:relative;padding-bottom:66%;border-radius:12px;overflow:hidden;background:#000}
.ramen-ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ramen-ph figcaption{position:absolute;left:8px;bottom:8px;padding:4px 8px;border-radius:8px;background:rgba(0,0,0,.55);color:#fff;font-size:.85rem}
.ramen-menugrid{display:grid;gap:12px;margin-top:10px}
@media(min-width:700px){.ramen-menugrid{grid-template-columns:1fr 1fr}}
.ramen-item{background:#fff;border:1px solid #eee;border-radius:12px;padding:12px}
.ramen-cta{display:flex;gap:12px;flex-wrap:wrap;margin-top:14px}
.ramen-btn{display:inline-block;padding:12px 18px;border-radius:10px;font-weight:700;text-decoration:none}
.ramen-btn-red{background:var(--c-red);color:#fff}
.ramen-btn-gray{background:#222;color:#fff}
.ramen-note{color:#777;font-size:.92rem}






/*
  ===============================
  がってんラーメン：メニューページ
  ・ヒーローは動画背景（自動再生/ミュート/ループ/モバイル対応）
  ・セクションごとにアンカーリンク（タブ風ナビ）
  ・カードグリッドはレスポンシブ（3→2→1列）
  ・アクセシビリティ配慮：alt、aria、prefers-reduced-motion、scroll-margin
  ・運用メモ：画像/動画URLはWordPressメディアのパスに差し替え可
  ===============================
*/

/*======== がってんラーメン：メニューページ（動画ヒーロー＆整形済み） ======== */

/* =========================================================
   カラートークンとベース設定
   - 全体の色や文字サイズ、行間などの初期設定
   - :root ではなく .gm-wrap に束ねて、他ページとクラス分離
   ========================================================= */
.gm-wrap{
  --accent:#c40000;  /* コーポレート赤（アクセントカラー） */
  --ink:#111;        /* 文字色の基本 */
  --muted:#666;      /* 補助テキスト用 */
  --chip:#f9f9f9;    /* バッジ/タグの下地などに使用想定 */
  --edge:#eee;       /* 枠線・区切り線 */
  font-size:16px;
  line-height:1.8;
}
.gm-container{ max-width:1080px; margin:0 auto; padding:0 16px }

/* ================= ヒーロー（動画背景） =================
   - 背景に <video> を全面配置（object-fit:cover）
   - 前景テキストは z-index で最前面に
   - グラデーションの黒幕を ::before で重ね、可読性UP
   ======================================================== */
.gm-hero{
  position:relative;
  overflow:hidden;
  color:#fff;
  border-bottom:3px solid var(--accent);
  background:#000; /* 動画の読み込み前に黒を表示 */
}
.gm-hero-inner{ position:relative; z-index:2; padding:48px 0 28px; text-align:center }
.gm-hero h1{ font-size:clamp(28px,4vw,40px); margin:0 0 6px }
.gm-hero p{ color:rgba(255,255,255,.9); margin:0 }
.gm-hero-video{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0 }
/* 文字が読みやすいように黒幕を重ねる */
.gm-hero::before{
  content:"";
  position:absolute; inset:0; z-index:1;
  background: linear-gradient(to bottom, rgba(0,0,0,.45), rgba(0,0,0,.35));
}
/* 動きを減らす設定のユーザーには動画を非表示（アクセシビリティ） */
@media (prefers-reduced-motion: reduce){ .gm-hero-video{ display:none !important } }
/* ヒーロー内タブの視認性UP（ダーク上に置くので白系へ） */
.gm-hero .gm-tabs a{ border-color: rgba(255,255,255,.7); color:#fff; background: rgba(0,0,0,.25); }
.gm-hero .gm-tabs a:hover{ background: rgba(255,255,255,.96); color: var(--accent); }

/* ================= セクション共通 & タブ風ナビ =================
   - セクション上下パディングと見出し装飾
   - タブは <a> の集合。JSなしのページ内リンク
   ======================================================== */
.gm-sec{ padding:40px 0 }
.gm-h2{ font-size:1.6rem; margin:0 0 14px; border-left:6px solid var(--accent); padding-left:10px; }
.gm-tabs{ display:flex; gap:10px; flex-wrap:wrap; justify-content:center; margin:10px 0 18px; }
.gm-tabs a{ display:inline-block; padding:8px 12px; border:1px solid var(--accent); color:var(--accent); border-radius:999px; text-decoration:none; font-weight:700; }

/* ================= カードグリッド（レスポンシブ） =================
   - 900px以上: 3列 / 640-899px: 2列 / 〜639px: 1列
   - gap でカード間の余白を統一
   ======================================================== */
.gm-grid{ display:grid; gap:18px }
@media(min-width:900px){ .gm-grid{ grid-template-columns:repeat(2,1fr) } }
@media(min-width:640px) and (max-width:899px){ .gm-grid{ grid-template-columns:repeat(2,1fr) } }

/* ================= メニューカード =================
   - 角丸+薄い影でカード化
   - .ph は画像プレースホルダー兼ラッパ（aspect-ratio安定）
   ======================================================== */
.gm-card{ border:1px solid var(--edge); border-radius:14px; overflow:hidden; background:#fff; box-shadow:0 8px 20px rgba(0,0,0,.06); }
.gm-card .ph{ aspect-ratio:4/3; background:#f5f5f5 center/cover no-repeat }
.gm-card img{ width:100%; height:100%; object-fit:cover; display:block }
.gm-card .body{ padding:14px }
.gm-card h3{ margin:0 0 6px; font-size:1.1rem }
.gm-card p{ margin:0; color:var(--muted) }

/* ================= バッジ =================
   - 種別で色味を軽く変える（spicy/driver/family）
   - .fill は反転（白地→色地）
   ======================================================== */
.gm-badges{ display:flex; gap:6px; flex-wrap:wrap; margin:8px 0 10px }
.gm-badge{ display:inline-block; padding:2px 10px; border-radius:999px; font-weight:700; font-size:.85rem; border:1.5px solid var(--accent); color:var(--accent); background:#fff; }
.gm-badge.fill{ background:var(--accent); color:#fff; border-color:var(--accent) }
.gm-badge.spicy{ border-color:#d9480f; color:#d9480f }
.gm-badge.driver{ border-color:#0b7285; color:#0b7285 }
.gm-badge.family{ border-color:#5c940d; color:#5c940d }
.gm-badge.red{ border-color:#e03131; color:#e03131 } /* 赤 */
.gm-badge.orange{ border-color:#fd7e14; color:#fd7e14 } /* オレンジ */
.gm-badge.amber{ border-color:#f59f00; color:#f59f00 } /* アンバー */
.gm-badge.yellow { border-color:#fab005; color:#fab005 } /* イエロー */
.gm-badge.green  { border-color:#2f9e44; color:#2f9e44 } /* グリーン */
.gm-badge.cyan   { border-color:#0c8599; color:#0c8599 } /* シアン */
.gm-badge.blue   { border-color:#1c7ed6; color:#1c7ed6 } /* ブルー */
.gm-badge.indigo { border-color:#4263eb; color:#4263eb } /* インディゴ */
.gm-badge.purple { border-color:#7048e8; color:#7048e8 } /* パープル */
.gm-badge.pink   { border-color:#00d011; color:#d04c00 } /* ピンク（必要ならamber/yellowと差し替え可） */
.gm-badge.syouyu   { border-color:#d04c00; color:#d04c00 } /* 醤油 */
.gm-badge.miso   { border-color:#5c2200; color:#5c2200 } /* 味噌 */
.gm-badge.sio   { border-color:#5bcbff; color:#5bcbff } /* 塩 */

/* ================= 売り切れ表示（任意） =================
   - .is-soldout を .gm-card に付与すると写真をグレースケールに
   - 本日分終了のラベルをカード右上に表示
   ======================================================== */
.gm-card.is-soldout .ph{ filter:grayscale(1) brightness(.8) }
.gm-card.is-soldout .body{ position:relative }
.gm-card.is-soldout .body::after{
  content:"本日分終了";
  position:absolute; top:-10px; right:10px;
  background:#333; color:#fff; font-size:.8rem; padding:3px 8px; border-radius:6px;
}

/* ================= 注意ボックス ================= */
.gm-note{ background:#fff6f6; border:1px dashed var(--accent); border-radius:10px; padding:12px 14px; color:#8a2a2a; }

/* ================= 動画埋め込み =================
   - 16:9の比率ボックスを作り、iframe をフィット
   - YouTube は nocookie ドメインを使用
   ======================================================== */
.gm-vidgrid{ display:grid; gap:18px }
@media(min-width:900px){ .gm-vidgrid{ grid-template-columns:repeat(2,1fr) } }
.gm-embed{ position:relative; padding-bottom:56.25%; height:0; overflow:hidden; border-radius:12px; background:#000 }
.gm-embed iframe{ position:absolute; inset:0; width:100%; height:100%; border:0 }

/* ================= アンカーずれ対策 =================
   - 固定ヘッダー等でアンカーが隠れないよう余白
   ======================================================== */
.gm-anchor{ scroll-margin-top:80px }