  :root{
    --vdj-bg:#fff;
    --vdj-text:#111;
    --vdj-muted:#6b7280;
    --vdj-line:#e5e7eb;
    --vdj-brand:#f7b500;     /* ブランド帯(黄) */
    --vdj-accent:#d35400;    /* 価格強調 */
    --vdj-chip:#111;
    --vdj-chip-fg:#fff;
    --vdj-shadow:0 6px 18px rgba(0,0,0,.08);
    --vdj-radius:14px;
    --vdj-gap:20px;
    --vdj-ico:#b19468;       /* アイコン色（添付の金色に寄せる） */
    --vdj-metaTop:#efefef;   /* 店舗名行 背景 */
    --vdj-metaBottom:#f6f6f6;/* おすすめ行 背景 */
  }
.rcs-eyebrow {
    margin: 0 0 4px;
    color: #d77a2d;
    font-weight: 700;
    letter-spacing: .05em;
    text-align: center;
}
  /* セクション */
  .vdj-section{margin:48px auto; max-width:1160px; padding:0 16px;}
  .vdj-eyebrow{color:var(--vdj-muted); font-size:.9rem; text-align:center; letter-spacing:.06em; margin-bottom:6px;}
  .vdj-title{font-size:1.6rem; font-weight:600; text-align:center; margin:0 0 22px;}
  .vdj-sub{
    display:flex; align-items:center; gap:10px; margin:26px 0 14px;
    font-weight:700; color:var(--vdj-text);
  }
  .vdj-sub::before{content:""; width:24px; height:2px; background:var(--vdj-text); display:inline-block;}
  .vdj-desc{color:var(--vdj-muted); font-size:.95rem; margin:0 0 14px;}

  /* グリッド */
  .vdj-grid{ display:grid; grid-template-columns:repeat(12,1fr); gap:var(--vdj-gap); }
  .vdj-col-4{grid-column:span 4;}
  .vdj-col-6{grid-column:span 6;}
  @media (max-width:1024px){ .vdj-col-4{grid-column:span 6;} }
  @media (max-width:720px){
    .vdj-grid{grid-template-columns:repeat(2,1fr);}
    .vdj-col-4,.vdj-col-6{grid-column:span 1;}
  }
  @media (max-width:480px){ .vdj-grid{grid-template-columns:1fr;} }

  /* カード */
  .vdj-card{
    background:var(--vdj-bg);
    border:1px solid var(--vdj-line);
    border-radius:var(--vdj-radius);
    box-shadow:var(--vdj-shadow);
    overflow:hidden;
    transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
  }
  .vdj-card:hover{ transform:translateY(-2px); box-shadow:0 10px 24px rgba(0,0,0,.12); border-color:#ddd; }
  .vdj-card a{ color:inherit; text-decoration:none; display:block; }

  /* メディア領域（figureは使いません） */
  .vdj-media{ position:relative; aspect-ratio:4/3; overflow:hidden; background:#f8f8f8; }
  .vdj-media > img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .35s ease; }
  .vdj-card:hover .vdj-media > img{ transform:scale(1.04); }

  /* ランクバッジ */
  .vdj-rank{
    position:absolute; top:10px; left:10px;
    display:flex; align-items:center; gap:6px; border-radius:999px;
    font-weight:800; font-size:.92rem; letter-spacing:.02em;
  }
  .vdj-rank img{width: 60px;　height: auto; display:block; }

  /* タグ(右上) */
  .vdj-kind{ position:absolute; top:10px; right:10px; display:flex; gap:6px; flex-wrap:wrap; }
  .vdj-chip{ background:var(--vdj-chip); color:var(--vdj-chip-fg); padding:4px 8px; border-radius:999px; font-size:.78rem; letter-spacing:.02em; }

  /* 画像キャプション（下部黒帯） */
  .vdj-caption{
    position:absolute; inset:auto 0 0 0;
    background:linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,.65) 60%, rgba(0,0,0,.8) 100%);
    color:#fff; padding:10px 12px; font-weight:700; line-height:1.2; min-height:56px; display:flex; align-items:flex-end;
  }

  /* 本文 */
  .vdj-body{ padding:12px 14px 10px; }
  .vdj-name{ display:inline-block; font-weight:800; font-size:1.02rem; line-height:1.25; margin:0 0 6px; }
  .vdj-name:hover{ text-decoration:underline; text-underline-offset:2px; }
  .vdj-text{
    color:var(--vdj-text); font-size:.95rem; line-height:1.5; margin:0 0 10px;
    display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
  }

  /* 価格行 */
  .vdj-price{ display:flex; align-items:center; gap:8px; padding:0 14px 12px; }
  .vdj-price i{ color:var(--vdj-muted); }
  .vdj-price .vdj-strong{ font-weight:900; font-size:1.15rem; color:var(--vdj-accent); }
  .vdj-price .vdj-note{ color:var(--vdj-text); font-weight:700; }

  /* ===== 店舗名／おすすめポイント 2段ボックス ===== */
  .vdj-meta{
    border:1px solid var(--vdj-line);
    border-radius:10px;
    overflow:hidden;
    margin:0 14px 14px;
    background:var(--vdj-metaTop);
  }
  .vdj-row{ display:flex; align-items:flex-start; gap:10px; padding:10px 12px; }
  .vdj-row + .vdj-row{ border-top:1px solid var(--vdj-line); background:var(--vdj-metaBottom); }
  .vdj-ico{ width:18px; height:18px; flex:0 0 18px; color:var(--vdj-ico); margin-top:2px; }
  .vdj-row-title{ font-weight:700; color:#222; }
  .vdj-row-note{ color:#333; line-height:1.6; }

  /* 旧クラス互換（既存テンプレの衝突を回避） */
  .surv-flex{ display:contents; }
  .food-33{ display:contents; }
  .caption-food, .food-kinds, .food-rank, .menu-text{ all:unset; }