/* ==========================================================
   9周年 お弁当総選挙 結果発表 LP
   --------------------------------------------------------
   ■ 単位のルール
     1rem = デザイン 10px。ルート font-size をビューポート幅に
     連動させることで、PC（1280px 基準）／SP（393px 基準）の
     どちらもデザイン比率どおりに拡縮する。
   ■ ブレイクポイント: 767px
   ■ 装飾見出し（高架下フォント）は Webフォントが無いため画像で配置
   ■ 数字の TT Norms Pro は Montserrat で代替
   ========================================================== */

/* ---------- 拡縮の基準 ---------- */
:root { font-size: 10px; }                                   /* PC 実寸（1280px 以上） */
@media (max-width: 1279px) { :root { font-size: 0.78125vw; } } /* 100vw / 128 */
@media (max-width: 767px)  { :root { font-size: 2.54453vw; } } /* 100vw / 39.3 */

:root {
  --font: #111;
  --wh: #fff;
  --or: #fe6d03;         /* ブランドオレンジ */
  --ye: #f7b818;         /* 数字・第2位 */
  --green: #698d03;      /* 第3位・アクセント */
  --or-bg: #ffd1b0;      /* 第1位パネル */
  --ye-bg: #fff8e6;      /* 第2位パネル・レビュー／データ背景 */
  --green-bg: #cfe1bc;   /* 第3位パネル・賞リボン */
  --quote-bg: #fef7e5;   /* 5〜10位の引用ボックス */
  --mark: #ffd977;       /* 蛍光マーカー・装飾円 */
  --base: #fcfaf4;       /* ページ基調色 */
  /* 皿の切り抜き形状に沿った影なので filter で落とす */
  --shadow-photo: drop-shadow(0.6rem 0.4rem 1.4rem rgba(34, 34, 34, .16));
  --shadow-photo-s: drop-shadow(0.48rem 0.32rem 1.12rem rgba(34, 34, 34, .16));
  --shadow-photo-xs: drop-shadow(0.2123rem 0.1415rem 0.4954rem rgba(34, 34, 34, .16));
  --sans: "Noto Sans JP", sans-serif;
  --num: "Montserrat", sans-serif;
}

* { margin: 0; padding: 0; box-sizing: border-box; }
body {
  font-family: var(--sans);
  color: var(--font);
  background: var(--wh);
  line-height: 1.5;
  overflow-x: hidden;
}

/* ----------------------------------------------------------
   埋め込み先（ecforce テーマ）の既存CSSの打ち消し
   `*` は詳細度 0 なので、テーマ側の `p { margin-bottom: 1em }` の
   ようなタグ1つの指定にも負けてしまう。`main :is(...)` で詳細度を
   1段上げ、余白・行間・書体をこちらの指定に戻す。
   （このLPの各パーツはクラスで指定しているので、そちらが優先される）
   ---------------------------------------------------------- */
main :is(div, span, article, section, header, footer, figure, figcaption,
         h1, h2, h3, h4, h5, h6, p, ul, ol, li, dl, dt, dd,
         blockquote, small, b, i, em, strong, mark, picture, img, br) {
  margin: 0;
  padding: 0;
  font-family: inherit;
  line-height: inherit;
  letter-spacing: inherit;
  color: inherit;
  text-align: inherit;
  text-indent: 0;
  background: none;
  border: 0;
  box-sizing: border-box;
}
main :is(h1, h2, h3, h4, h5, h6, b, strong) { font-size: inherit; font-weight: inherit; }
main :is(ul, ol) { list-style: none; }
main :is(img, picture) { display: block; }
main img { max-width: 100%; height: auto; }

/* 蛍光マーカー（デザインでは行の中央に 16px の帯） */
main mark {
  background: linear-gradient(var(--mark), var(--mark)) center / 100% 1.6rem no-repeat;
  color: inherit;
}
.em-or { color: var(--or); }
.br-sp { display: none; }
.br-pc { display: inline; }

/* 中央寄せステージ（デザインのアートボード幅を保持する） */
.stage { position: relative; width: 128rem; margin-inline: auto; }
/* 装飾レイヤー。画面端から見切れる飾りは left/right を画面端基準で指定し、
   デザイン幅より広いビューポートでも枠内に浮かないようにする。 */
.deco-layer { position: absolute; inset: 0; pointer-events: none; z-index: 0; }
.deco { position: absolute; pointer-events: none; }
.deco-circle { border-radius: 50%; background: var(--mark); }

/* ドットの区切り線（デザインでは高さ 0 の線なのでレイアウトには影響させない）
   --w はデザイン上の線（Vector）の長さ。ドットは線の両端に芯が来るので、
   実際の描画幅は --w + --dot になる。 */
.dots {
  --dot: 0.6rem;   /* ドットの直径 */
  --gap: 1.4rem;   /* ドットの間隔（芯から芯） */
  --w: 28rem;      /* デザイン上の線の長さ */
  --dot-c: var(--or);
  width: calc(var(--w) + var(--dot));
  height: var(--dot);
  margin-block: calc(var(--dot) / -2);
  background-image: radial-gradient(circle at center, var(--dot-c) calc(var(--dot) / 2), transparent calc(var(--dot) / 2 + 0.01rem));
  background-size: var(--gap) var(--dot);
  background-position: calc(var(--dot) / 2 - var(--gap) / 2) center;
  background-repeat: repeat-x;
}
.dots--green { --dot-c: var(--green); }

/* 皿写真
   切り抜き素材は皿の外側に約 3.85% の余白を含むため、104% に拡大して
   配置し、デザインどおり皿が枠いっぱいに収まるようにする。 */
.ph { position: relative; display: block; overflow: hidden; }
.ph img {
  position: absolute;
  left: -2%;
  top: -2%;
  width: 104%;
  height: 104%;
  max-width: none;
  object-fit: contain;
}

/* 星＋ポイント */
.pt {
  display: flex;
  align-items: flex-end;
  font-family: var(--num);
  font-weight: 700;
  line-height: 1;
}
.pt img { flex: none; }

/* 順位バッジ（スカラップ円＋月桂樹） */
.badge {
  position: absolute;
  z-index: 3;
  display: grid;
  place-items: center;
  color: var(--wh);
  font-weight: 700;
  line-height: normal;
  white-space: nowrap;
  background: center / contain no-repeat;
}
.badge span { display: block; }
.badge b { font-family: var(--num); font-weight: 500; }
.badge::before {                            /* 王冠（左上・-33.02deg） */
  content: "";
  position: absolute;
  background: center / contain no-repeat;
  transform: rotate(-33.02deg);
}

/* ==========================================================
   KV
   ========================================================== */
.kv {
  position: relative;
  overflow: hidden;
  /* 等比のまま拡縮させる（横幅を広げても皿の写真が扁平しない） */
  background: url("https://d2w53g1q050m78.cloudfront.net/masteryourmealjp/uploads/md/pages/9anniversary-senkyo-result/images/kv_bg.png") 36.5% 79.7% / 104.1% auto no-repeat;
}
.kv .stage { height: 83.2rem; }
.kv__circle {
  position: absolute;
  left: 23rem;
  top: 0.6rem;
  width: 82rem;
  height: 82rem;
  border: 0.5rem solid transparent;
  border-radius: 50%;
  background:
    linear-gradient(#fff, #fff) padding-box,
    linear-gradient(90deg, #a57d24 0%, #d8be62 21.12%, #f1dd80 32.8%, #fbf2a8 52.4%, #f1dd80 72.98%, #a57d24 100%) border-box;
  box-shadow: 0 0.252rem 6.2rem rgba(216, 190, 98, .7);
}
.kv__garland { position: absolute; top: 2.2rem; width: 28.6021rem; height: 19.5135rem; }
.kv__garland--l { left: 24.3rem; }
.kv__garland--r { left: 75.098rem; transform: scaleX(-1); }
.kv__emblem { position: absolute; left: 53.7rem; top: 6.3rem; width: 21.4158rem; }
.kv__title  { position: absolute; left: 22.304rem; top: 21.653rem; width: 83.3rem; }
.kv__ribbon { position: absolute; left: 29.5rem;  top: 39.4rem;  width: 67.3rem; }
.kv__lead {
  position: absolute;
  left: 36rem;
  top: 55.7rem;
  width: 56rem;
  font-size: 2.8rem;
  font-weight: 700;
  line-height: 1.5;
  text-align: center;
}

/* KV の紙吹雪・リボン（デザイン座標から算出） */
.kv .deco { background-position: center; background-size: contain; background-repeat: no-repeat; }
.kv-d1  { left: 102.312rem; top: 48.286rem; width: 13.8002rem; height: 6.14587rem; transform: rotate(27.53deg);  background-image: url("https://d2w53g1q050m78.cloudfront.net/masteryourmealjp/uploads/md/pages/9anniversary-senkyo-result/images/kv_ribbon_pink.svg"); }
.kv-d2  { left: 89.905rem;  top: 76.005rem; width: 2.3984rem;  height: 1.75573rem; background-image: url("https://d2w53g1q050m78.cloudfront.net/masteryourmealjp/uploads/md/pages/9anniversary-senkyo-result/images/kv_conf_tri.svg"); }
.kv-d3  { left: 17.105rem;  top: 48.305rem; width: 2.3984rem;  height: 1.75573rem; background-image: url("https://d2w53g1q050m78.cloudfront.net/masteryourmealjp/uploads/md/pages/9anniversary-senkyo-result/images/kv_conf_tri.svg"); }
.kv-d4  { left: 31.94rem;   top: 68.14rem;  width: 5.82rem;    height: 9.02rem;    background-image: url("https://d2w53g1q050m78.cloudfront.net/masteryourmealjp/uploads/md/pages/9anniversary-senkyo-result/images/kv_curl_gold.svg"); }
.kv-d5  { left: 27.934rem;  top: 19.039rem; width: 7.6802rem;  height: 13.2849rem; transform: rotate(96.06deg);  background-image: url("https://d2w53g1q050m78.cloudfront.net/masteryourmealjp/uploads/md/pages/9anniversary-senkyo-result/images/kv_streamer_gold.svg"); }
.kv-d6  { left: 33.165rem;  top: 59.608rem; width: 1.64731rem; height: 1.42579rem; transform: rotate(120deg);    background-image: url("https://d2w53g1q050m78.cloudfront.net/masteryourmealjp/uploads/md/pages/9anniversary-senkyo-result/images/kv_conf_a.svg"); }
.kv-d7  { left: 27.511rem;  top: 25.437rem; width: 2.07862rem; height: 1.69063rem; transform: rotate(-38.3deg);  background-image: url("https://d2w53g1q050m78.cloudfront.net/masteryourmealjp/uploads/md/pages/9anniversary-senkyo-result/images/kv_conf_b.svg"); }
.kv-d8  { left: 19.008rem;  top: 17.359rem; width: 2.35755rem; height: 2.81044rem; background-image: url("https://d2w53g1q050m78.cloudfront.net/masteryourmealjp/uploads/md/pages/9anniversary-senkyo-result/images/kv_conf_c.svg"); }
.kv-d9  { left: 26.57rem;   top: 49.97rem;  width: 1.09821rem; height: 0.950526rem; background-image: url("https://d2w53g1q050m78.cloudfront.net/masteryourmealjp/uploads/md/pages/9anniversary-senkyo-result/images/kv_conf_d.svg"); }
.kv-d10 { left: 95.105rem;  top: 6.105rem;  width: 1.64731rem; height: 1.42579rem; background-image: url("https://d2w53g1q050m78.cloudfront.net/masteryourmealjp/uploads/md/pages/9anniversary-senkyo-result/images/kv_conf_e.svg"); }
.kv-d11 { left: 107.941rem; top: 2.84rem;   width: 3.835rem;   height: 7.67rem;    transform: rotate(42.18deg);  background-image: url("https://d2w53g1q050m78.cloudfront.net/masteryourmealjp/uploads/md/pages/9anniversary-senkyo-result/images/kv_curl_gold2.svg"); }
.kv-d12 { left: 87.305rem;  top: 2.508rem;  width: 2.2425rem;  height: 2.73rem;    background-image: url("https://d2w53g1q050m78.cloudfront.net/masteryourmealjp/uploads/md/pages/9anniversary-senkyo-result/images/kv_conf_f.svg"); }
.kv-d13 { left: 38.856rem;  top: 4.889rem;  width: 1.02289rem; height: 1.15632rem; transform: rotate(180deg);    background-image: url("https://d2w53g1q050m78.cloudfront.net/masteryourmealjp/uploads/md/pages/9anniversary-senkyo-result/images/kv_conf_g.svg"); }

/* ==========================================================
   第1位（祝・センター！）
   ========================================================== */
.rank1 { position: relative; z-index: 1; overflow-x: clip; padding: 8rem 0; background: var(--base); }
.rank1 .stage { width: 108rem; height: 69.799rem; }
.rank1__kamifubuki { left: calc(50% - 69.11rem); top: -6.56rem; width: 143.92rem; }
.rank1__veg--l  { left: -19.936rem; top: 7.59rem;  width: 39.2818rem; height: 7.4rem;     transform: rotate(-22deg); }
.rank1__veg--br { right: -17.45rem; top: 74.91rem; width: 28.565rem;  height: 8.40218rem; transform: rotate(17deg); }

/* 見出し（月桂樹＋祝・センター！） */
.laurel-head {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  gap: 0.8rem;
}
.laurel-head img { flex: none; }
.laurel-head__laurel { width: 5.0344rem; height: 6.09872rem; }
.laurel-head__laurel--flip { transform: scaleX(-1); }
.rank1__head { position: absolute; left: 47.464rem; top: 5rem; width: 37.205rem; }
.rank1__head .laurel-head__text { width: 25.5364rem; height: 4.2671rem; margin: 0.1158rem 0 1.6rem; }

/* 写真＋バッジ＋PT */
.rank1__media { position: absolute; left: 0.2rem; top: 15.5rem; width: 43rem; z-index: 2; }
.rank1__photo { width: 43rem; height: 29rem; filter: var(--shadow-photo); }
.rank1__media .badge {
  left: -2.2rem;
  top: -4.6rem;
  width: 13.4rem;
  height: 13.4rem;
  font-size: 4.267rem;
  background-image: url("https://d2w53g1q050m78.cloudfront.net/masteryourmealjp/uploads/md/pages/9anniversary-senkyo-result/images/badge1_union.svg");
}
.rank1__media .badge b { font-size: 6.4rem; }
.rank1__media .badge::before {
  left: -1.722rem;
  top: -3.13rem;
  width: 6.32002rem;
  height: 4.10561rem;
  background-image: url("https://d2w53g1q050m78.cloudfront.net/masteryourmealjp/uploads/md/pages/9anniversary-senkyo-result/images/badge1_laurel.svg");
}
.rank1__media .pt {
  position: absolute;
  left: 9.2rem;
  top: 29rem;
  height: 9.8rem;
  color: var(--or);
  font-size: 6.8rem;
}
.rank1__media .pt img { width: 8.07489rem; margin: 0 0.863rem 1.42rem 0.862rem; }
.rank1__media .pt small { font-size: 3.6rem; }

/* パネル */
.rank1__panel {
  position: absolute;
  left: 24.266rem;
  top: 12.299rem;
  width: 83.6rem;
  min-height: 52.5rem;
  padding: 3.6rem 8rem 3.6rem 20rem;
  background: var(--or-bg);
  border-radius: 3.6rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2.4rem;
}
.rank1__title-box { display: flex; flex-direction: column; align-items: center; gap: 2.4rem; }
.rank1__title { font-size: 4rem; font-weight: 700; line-height: normal; white-space: nowrap; }
.rank1__title-box .dots { --w: 46.1rem; --dot: 1rem; --gap: 2.305rem; --dot-c: var(--wh); }
.rank1__desc { width: 55.6rem; font-size: 2rem; font-weight: 700; line-height: normal; }

/* お客様の声（吹き出し） */
.voices { display: flex; flex-direction: column; gap: 0.8rem; }
.voice { display: flex; align-items: center; gap: 0.8rem; }
.voice__who {
  flex: none;
  width: 6.5rem;
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  font-size: 1rem;
  font-weight: 500;
  line-height: normal;
  text-align: center;
}
.voice__who img { width: 6.5rem; height: 6.5rem; border-radius: 50%; background: var(--wh); object-fit: cover; }
.voice__bubble {
  position: relative;
  width: 42.8rem;
  padding: 1.2rem 1rem 1.2rem 1.6rem;
  background: var(--wh);
  border-radius: 0.8rem;
}
.voice__bubble::before {                     /* 左向きの三角 */
  content: "";
  position: absolute;
  left: -0.556rem;
  top: 50%;
  transform: translateY(-50%);
  border-block: 0.85rem solid transparent;
  border-right: 0.65rem solid var(--wh);
}
.voice__bubble h4 { font-size: 1.6rem; font-weight: 700; line-height: normal; }
.voice__bubble p { font-size: 1.4rem; font-weight: 500; line-height: 1.5; }

/* ==========================================================
   第2位・第3位・5位〜10位
   ========================================================== */
.rank2 { position: relative; overflow-x: clip; padding: 8rem 0; }
.rank2 .stage { height: auto; }
.rank2__kamifubuki { left: calc(50% - 92.63rem); top: 23.101rem; width: 161.935rem; }
.rank2 .deco--circle2 { left: -9.856rem;  top: 86.3rem;    width: 15.943rem; height: 14.483rem; }
.rank2 .deco--circle3 { right: -11.02rem;  top: 177.38rem;  width: 14.243rem; height: 12.938rem; }
/* 野菜のカット素材はデザイン上の枠に合わせてトリミング配置する */
.rank2 .deco--mushroom,
.rank2 .deco--egg,
.rank2 .deco--paprika2,
.rank2 .deco--broccoli { object-fit: cover; }
/* にんじんは枠内で素材をずらしてトリミングしているので背景で再現する
   （倍率は cover と同じ、位置だけデザインに合わせて動かす） */
.rank2 .deco--carrot {
  left: -6.892rem; top: 5.501rem; width: 17.989rem; height: 13.653rem;
  background: url("https://d2w53g1q050m78.cloudfront.net/masteryourmealjp/uploads/md/pages/9anniversary-senkyo-result/images/deco_carrot.png") -3.528rem 0.3rem / 20.444rem 13.6533rem no-repeat;
}
.rank2 .deco--paprika   { right: -11.675rem; top: -5.489rem;  width: 29.35rem;  height: 30.25rem; }
.rank2 .deco--mushroom  { left: -8.288rem;  top: 103.42rem;   width: 17.396rem; height: 15.019rem; }
.rank2 .deco--egg       { right: -3.714rem;  top: 130.497rem; width: 9.922rem;  height: 7.758rem; }
.rank2 .deco--paprika2  { left: 5.9rem;     top: 171.5rem;   width: 4.2rem;    height: 5rem; object-position: left center; }
.rank2 .deco--broccoli  { right: -7.24rem;   top: 173.94rem;  width: 27.36rem;  height: 18.25rem; }

.rank-row {
  position: relative;
  z-index: 1;
  display: flex;
  justify-content: center;
  align-items: flex-start;
  gap: 1.2rem;
}
.rank-row__tie {
  padding-top: 2.8rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2rem;
}
.rank-row__tie .laurel-head__laurel { width: 5.0344rem; height: 6.09872rem; margin-top: 0.3017rem; }
.rank-row__tie .laurel-head__text { width: 13.5112rem; height: 5.10218rem; margin-bottom: 1.6rem; }
.rank-row__tie-cards { display: flex; gap: 1.2rem; }

/* 2位・3位カード */
.rank-card { position: relative; display: flex; flex-direction: column; align-items: center; }
.rank-card--2nd { width: 35.1rem; }
.rank-card--3rd { width: 35rem; }
.rank-card__media { position: relative; z-index: 2; width: 34.6rem; margin-bottom: -17rem; }
.rank-card__photo { width: 34.6rem; height: 23.5rem; filter: var(--shadow-photo-s); }
.rank-card__media .badge {
  left: -2.37rem;
  top: -0.64rem;
  width: 8.04004rem;
  height: 8.04004rem;
  font-size: 2.56rem;
  background-image: url("https://d2w53g1q050m78.cloudfront.net/masteryourmealjp/uploads/md/pages/9anniversary-senkyo-result/images/badge2_union.svg");
}
.rank-card__media .badge b { font-size: 3.84rem; }
.rank-card__media .badge::before {
  left: -1.033rem;
  top: -1.878rem;
  width: 3.79199rem;
  height: 2.46337rem;
  background-image: url("https://d2w53g1q050m78.cloudfront.net/masteryourmealjp/uploads/md/pages/9anniversary-senkyo-result/images/badge2_laurel.svg");
}
.rank-card--3rd .badge { background-image: url("https://d2w53g1q050m78.cloudfront.net/masteryourmealjp/uploads/md/pages/9anniversary-senkyo-result/images/badge3_union.svg"); }
.rank-card--3rd .badge::before { background-image: url("https://d2w53g1q050m78.cloudfront.net/masteryourmealjp/uploads/md/pages/9anniversary-senkyo-result/images/badge3_laurel.svg"); }
.rank-card__media .pt { position: absolute; left: 23.653rem; top: 18.96rem; height: 4.32rem; font-size: 3rem; }
.rank-card__media .pt img { width: 3.55955rem; margin: 0 0.09rem 0.626rem 0.38rem; }
.rank-card__media .pt small { font-size: 1.6rem; }
.rank-card--2nd .pt { color: var(--ye); }
.rank-card--3rd .pt { color: var(--green); }

.rank-card__panel {
  width: 100%;
  padding: 18rem 1.2rem 3.6rem;
  border-radius: 3.6rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2.4rem;
}
.rank-card--2nd .rank-card__panel { background: var(--ye-bg); min-height: 45.9rem; }
.rank-card--3rd .rank-card__panel { background: var(--green-bg); min-height: 49.7rem; }
/* Title Container はデザインでは高さ固定（2位 124 / 3位 141）。
   本文の行送りが変わっても吹き出しの位置がずれないように高さを固定する。 */
.rank-card__title-box {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.6rem;
}
.rank-card--2nd .rank-card__title-box { height: 12.4rem; }
.rank-card--3rd .rank-card__title-box { height: 14.1rem; }
.rank-card__title { font-size: 2rem; font-weight: 700; line-height: normal; }
.rank-card--2nd .rank-card__title { line-height: 2.4rem; letter-spacing: -0.08rem; }
.rank-card__title-box .dots { --w: 28rem; --dot: 0.7rem; --gap: 1.863rem; }
/* デザインのドット色は 2位=イエロー、3位=白 */
.rank-card--2nd .dots { --dot-c: var(--ye); }
.rank-card--3rd .dots { --dot-c: var(--wh); }
/* デザインの行送りは 17px（Noto Sans JP の normal より詰めてある）。
   行頭に「ー」が来ない strict の禁則で改行位置もデザインに合わせる。 */
.rank-card__desc {
  width: 32rem;
  font-size: 1.4rem;
  font-weight: 700;
  line-height: 1.7rem;
  line-break: strict;
}
.rank-card--2nd .rank-card__desc { width: 32.7rem; }
.rank-card .voice__who { width: 5.8rem; gap: 0.72rem; font-size: 1rem; }
.rank-card .voice__who img { width: 5.8rem; height: 5.8rem; }
.rank-card .voice__bubble { width: 26rem; }
.rank-card .voice__bubble h4 { font-size: 1.4rem; }
.rank-card .voice__bubble p { font-size: 1.2rem; }
/* 2位の吹き出しはデザイン上テキストより下に余白がある固定高さ */
.rank-card--2nd .voice__bubble { height: 9.5rem; }
.rank-card--2nd .voice__bubble h4 { line-height: 1.7rem; }
.rank-card--2nd .voice__who { line-height: 1.2; }

/* 5位〜10位 */
.ranked-list { position: relative; z-index: 1; margin-top: 8rem; }
.ranked-list__head { gap: 2.075rem; }
.ranked-list__head .laurel-head__laurel { width: 4.56529rem; height: 5.71254rem; margin-top: 0.0875rem; }
.ranked-list__text { flex: none; display: block; }
.ranked-list__text img { width: 35.05rem; height: 3.55rem; margin-top: 1.799rem; }
.grid510 {
  display: grid;
  grid-template-columns: repeat(3, 32rem);
  justify-content: center;
  gap: 3.6rem 6rem;
  margin-top: 4.8rem;
}
.mini-card {
  height: 40.4rem;
  padding: 1.4rem 0.6rem 2.2rem;
  background: var(--wh);
  border: 0.2rem solid var(--green);
  border-radius: 3.6rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.8rem;
}
.mini-card__media { position: relative; width: 28rem; height: 18rem; }
.mini-card__photo { width: 28rem; height: 19rem; filter: var(--shadow-photo-s); }
.mini-card__media .pt { position: absolute; left: 20.5rem; top: 14.8rem; height: 3.1rem; color: var(--green); font-size: 2.4rem; }
.mini-card__media .pt img { width: 2.56036rem; margin: 0 0.07rem 0.4rem 0.22rem; }
.mini-card__media .pt small { font-size: 1.4rem; }
.mini-card__title {
  width: 30.4rem;
  font-size: 2rem;
  font-weight: 700;
  line-height: normal;
  letter-spacing: -0.08rem;
  text-align: center;
}
.mini-card__quote {
  position: relative;
  width: 28rem;
  min-height: 11rem;
  padding: 1.2rem;
  background: var(--quote-bg);
  border-radius: 0.8rem;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.mini-card__quote::before,
.mini-card__quote::after {
  content: "";
  position: absolute;
  width: 1.63641rem;
  height: 1.33161rem;
  background: center / contain no-repeat;
}
.mini-card__quote::before { left: -0.2rem; top: -0.7rem; background-image: url("https://d2w53g1q050m78.cloudfront.net/masteryourmealjp/uploads/md/pages/9anniversary-senkyo-result/images/quote_open.svg"); }
.mini-card__quote::after  { left: 26.6rem; top: 10.3rem; background-image: url("https://d2w53g1q050m78.cloudfront.net/masteryourmealjp/uploads/md/pages/9anniversary-senkyo-result/images/quote_close.svg"); transform: rotate(180deg); }
.mini-card__quote h4 { width: 100%; font-size: 1.4rem; font-weight: 700; line-height: normal; }
.mini-card__quote p  { width: 100%; font-size: 1.2rem; font-weight: 500; line-height: 1.5; }
.mini-card__quote figcaption { width: 100%; font-size: 1rem; font-weight: 500; line-height: normal; text-align: right; }

/* ==========================================================
   お客様の推しコメント大賞
   ========================================================== */
.review { position: relative; padding: 8rem 0 3.6rem; }
.review::before {                            /* クリーム色のアーチ背景 */
  content: "";
  position: absolute;
  inset: 14.8rem 0 0;
  background: var(--ye-bg);
  border-radius: 27.5rem 27.5rem 0 0;
}
.review .stage { width: 118rem; display: flex; flex-direction: column; align-items: center; gap: 6.4rem; }
.review__head { width: 84rem; display: flex; flex-direction: column; align-items: center; gap: 1.6rem; }
/* 装飾フォント（高架下フォント）はWebフォントが無いためデザイン画像を使用 */
.review__title { position: relative; width: 100%; height: 9.785rem; }
.review__title img {
  position: absolute;
  left: 50%;
  top: -1.201rem;
  width: 61.6rem;
  height: 11.1rem;
  transform: translateX(-50%);
}
.review__lead { font-size: 2rem; font-weight: 700; line-height: 1.5; text-align: center; }

.review__cards { width: 100%; min-height: 48rem; display: flex; align-items: flex-start; justify-content: space-between; }
.review-card {
  position: relative;
  width: 38.5rem;
  padding: 4rem 4.6rem 2rem;
  background: var(--wh);
  border-radius: 3.6rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2.8rem;
}
.review-card--mid { align-self: flex-end; }
.award { position: absolute; left: 4.75rem; top: -6.55rem; width: 20.2rem; height: 11rem; }
.award img { width: 100%; height: 100%; }
.review-card .dots { --w: 26.6rem; --dot: 0.3rem; --gap: 1.209rem; }
.rev { display: flex; align-items: center; }
.rev--l { padding-right: 5rem; }
.rev--r { padding-left: 5rem; }
.rev__photo { flex: none; width: 12.3839rem; height: 8.4061rem; filter: var(--shadow-photo-xs); }
.rev__body { flex: none; width: 25rem; display: flex; flex-direction: column; gap: 0.4rem; }
.rev__body h4 { font-size: 1.6rem; font-weight: 700; line-height: 1.5; }
.rev__body > p { font-size: 1.4rem; font-weight: 500; line-height: 1.5; text-align: justify; letter-spacing: -0.056rem; }
.rev__body .rev__author { font-size: 1.2rem; font-weight: 400; line-height: 1; text-align: right; }
.rev__body .rev__product {
  display: flex;
  align-items: flex-end;
  justify-content: flex-end;
  gap: 0.4rem;
  font-size: 1.2rem;
  font-weight: 700;
  line-height: 1.5;
  color: var(--green);
}
.rev__body .rev__product img { width: 2.5rem; height: 1.6rem; }
.review-card__sparkle { position: absolute; width: 6.60811rem; height: 5.8916rem; }
.review-card:first-child .review-card__sparkle { left: -1.7rem; top: 36.628rem; }
.review-card:last-child  .review-card__sparkle { left: 31.3rem; top: -1.372rem; }

/* ==========================================================
   投票データ大公開
   ========================================================== */
.data { position: relative; background: var(--ye-bg); padding: 8rem 0; }
.data .stage { display: flex; flex-direction: column; align-items: center; gap: 6.4rem; }
.data__box {
  position: relative;
  width: 108rem;
  padding: 4.4rem 3.2rem 3.6rem;
  border: 0.4rem dotted var(--green);
  border-radius: 3.6rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2.8rem;
}
.data__ribbon {
  position: absolute;
  left: 35rem;
  top: -2.972rem;
  width: 37.1rem;
  height: 5.15967rem;
  background: url("https://d2w53g1q050m78.cloudfront.net/masteryourmealjp/uploads/md/pages/9anniversary-senkyo-result/images/data_ribbon.svg") center / contain no-repeat;
  display: grid;
  place-items: center;
  color: var(--wh);
  font-size: 2.8rem;
  font-weight: 700;
  line-height: 1.5;
  white-space: nowrap;
}
/* 3列はデザインどおり上端揃え（見出しの高さを合わせる）。
   区切り線だけは中央に置く。 */
.data__stats { width: 100%; display: flex; align-items: stretch; justify-content: center; gap: 3.6rem; }
.stat { display: flex; flex-direction: column; align-items: center; gap: 1.6rem; }
.stat h3 { font-size: 2rem; font-weight: 700; line-height: 1.5; text-align: center; }
.stat__figure { display: flex; align-items: center; justify-content: center; gap: 2rem; }
.stat__value { display: flex; align-items: center; line-height: 1.5; white-space: nowrap; }
/* 数字は TT Norms Pro（代替フォント無し）なので画像で配置する */
.stat__num { flex: none; }
.stat--vote .stat__num { width: 14.3rem; height: 12rem; }
.stat--menu .stat__num { width: 9.5rem;  height: 12rem; }
.stat__value span { font-size: 2.8rem; font-weight: 700; }
.stat__note { font-size: 1.6rem; font-weight: 700; line-height: 1.5; text-align: center; }
.stat--vote .stat__figure { align-items: flex-start; }
.stat--vote .stat__figure > img { width: 8rem; height: 10.3rem; }
.stat--menu { gap: 1.6rem; }
.stat--menu .stat__figure > img { width: 12.9949rem; height: 6.4609rem; }
.stat--menu .stat__body { display: flex; flex-direction: column; align-items: center; }
.stat--rank { gap: 2.4rem; }
.stat--rank h3 { white-space: nowrap; }
/* デザインでは幅 0 の Vector なので、線幅ぶんは負マージンで打ち消して
   3列の位置がずれないようにする */
.stat__divider {
  align-self: center;
  width: 0;
  height: 13.7rem;
  margin-inline: -0.15rem;
  border-left: 0.3rem dotted var(--green);
}
.stat__ranks { width: 21.9rem; display: flex; flex-direction: column; gap: 0.4rem; }
.stat__ranks li { display: flex; align-items: center; gap: 0.8rem; font-size: 1.6rem; font-weight: 700; line-height: 1.5; }
.stat__ranks .chip {
  padding-inline: 0.4rem;
  background: var(--green);
  border-radius: 0.8rem;
  color: var(--wh);
  font-size: 1.2rem;
  line-height: 1.5;
}

.thanks {
  position: relative;
  display: grid;
  grid-template-columns: auto auto auto;
  gap: 1.6rem;
  text-align: center;
  white-space: nowrap;
}
.thanks img { width: 9.13057rem; height: 11.4251rem; grid-row: 1 / span 2; align-self: end; }
.thanks img:first-of-type { grid-column: 1; }
.thanks img.is-flip { grid-column: 3; transform: scaleX(-1); }
.thanks h2 { grid-column: 2; grid-row: 1; font-size: 2.8rem; font-weight: 700; line-height: 1.5; color: var(--or); }
.thanks p  { grid-column: 2; grid-row: 2; font-size: 2rem; font-weight: 500; line-height: 1.5; }
.thanks .deco { background-position: center; background-size: contain; background-repeat: no-repeat; }
.thanks .deco--s1 { left: 94.431rem;  top: -3.972rem;  width: 3.9921rem;  height: 3.98304rem; background-image: url("https://d2w53g1q050m78.cloudfront.net/masteryourmealjp/uploads/md/pages/9anniversary-senkyo-result/images/data_sparkle1.svg"); }
.thanks .deco--s2 { left: -12.169rem; top: 11.828rem;  width: 3.9921rem;  height: 3.98304rem; background-image: url("https://d2w53g1q050m78.cloudfront.net/masteryourmealjp/uploads/md/pages/9anniversary-senkyo-result/images/data_sparkle1.svg"); }
.thanks .deco--s3 { left: 97.123rem;  top: -0.612rem;  width: 2.62904rem; height: 2.62307rem; background-image: url("https://d2w53g1q050m78.cloudfront.net/masteryourmealjp/uploads/md/pages/9anniversary-senkyo-result/images/data_sparkle2.svg"); }
.thanks .deco--s4 { left: -6.769rem;  top: 10.828rem;  width: 2.62904rem; height: 2.62307rem; background-image: url("https://d2w53g1q050m78.cloudfront.net/masteryourmealjp/uploads/md/pages/9anniversary-senkyo-result/images/data_sparkle2.svg"); }

/* ==========================================================
   SP（〜767px）— SP デザイン（393px アートボード）に合わせる
   ========================================================== */
@media (max-width: 767px) {
  .br-sp { display: inline; }
  .br-pc { display: none; }
  .stage { width: 39.3rem; }

  /* ---------- KV ---------- */
  .kv { background: url("https://d2w53g1q050m78.cloudfront.net/masteryourmealjp/uploads/md/pages/9anniversary-senkyo-result/images/kv_bg_sp.png") center / cover no-repeat; }
  .kv .stage { height: 70.1rem; }
  .kv__circle { left: -1.5rem; top: 12.1rem; width: 42.4rem; height: 42.4rem; border-width: 0.3rem; box-shadow: 0 0.13rem 3.2rem rgba(216, 190, 98, 1); }
  .kv__garland { top: 12.4rem; width: 14.301rem; height: 9.7567rem; }
  .kv__garland--l { left: 0.8rem; }
  .kv__garland--r { left: 24.199rem; }
  .kv__emblem { left: 13.7rem; top: 16.5rem; width: 12rem; }
  .kv__title  { left: -0.577rem; top: 24.635rem; width: 40.554rem; }
  .kv__ribbon { left: 3.032rem;  top: 33.115rem; width: 34.039rem; }
  .kv__lead   { left: 5.966rem;  top: 41.461rem; width: 28.324rem; font-size: 1.4rem; }
  .kv-d1  { left: 31.017rem; top: 52.787rem; width: 9.757rem;  height: 4.345rem; }
  .kv-d2  { left: 14.2rem;   top: 56.8rem;   width: 1.1rem;    height: 1.4rem; }
  .kv-d3  { left: 38.1rem;   top: 49.2rem;   width: 1.1rem;    height: 1.4rem; }
  .kv-d4  { left: 4.149rem;  top: 50.903rem; width: 4.392rem;  height: 6.807rem; }
  .kv-d5  { left: 27.66rem;  top: 3.897rem;  width: 4.006rem;  height: 6.931rem; transform: rotate(19.74deg); }
  .kv-d6  { left: 32.142rem; top: 17.161rem; width: 1.21rem;   height: 1.116rem; }
  .kv-d7  { left: 2.736rem;  top: 49.9rem;   width: 1.276rem;  height: 1.172rem; }
  .kv-d8  { left: 17.702rem; top: 8.5rem;    width: 1.104rem;  height: 1.214rem; }
  .kv-d9  { left: 23.633rem; top: 58.108rem; width: 1.282rem;  height: 1.357rem; }
  .kv-d10 { left: 39.236rem; top: 41.8rem;   width: 1.276rem;  height: 1.172rem; }
  .kv-d11 { left: 39.572rem; top: 10.154rem; width: 2.456rem;  height: 4.913rem; }
  .kv-d12 { left: 3.4rem;    top: 8.5rem;    width: 0.926rem;  height: 1.073rem; }
  .kv-d13 { left: 27.016rem; top: 5.626rem;  width: 0.803rem;  height: 0.763rem; transform: none; }

  /* ---------- 第1位 ---------- */
  .rank1 .stage { width: 35.8rem; height: 74.179rem; }
  .rank1__kamifubuki { left: calc(50% - 27.569rem); top: -4.7rem; width: 51.445rem; }
  .rank1__veg--l, .rank1__veg--br { display: none; }
  .rank1__head { position: static; width: 29.764rem; margin: 0 auto; gap: 0.64rem; }
  .rank1__head .laurel-head__laurel { width: 4.0275rem; height: 4.879rem; }
  .rank1__head .laurel-head__text { width: 20.4291rem; height: 3.4137rem; margin: 0.0926rem 0 1.28rem; }

  .rank1__media { position: relative; left: auto; top: auto; width: 34.506rem; margin: 0 0 -17rem 0.647rem; }
  .rank1__photo { width: 30rem; height: 20rem; margin-left: 2.253rem; }
  .rank1__media .badge {
    left: -0.349rem;
    top: 1.033rem;
    width: 8.04004rem;
    height: 8.04004rem;
    font-size: 2.56rem;
  }
  .rank1__media .badge b { font-size: 3.84rem; }
  .rank1__media .badge::before { left: -1.398rem; top: -2.712rem; width: 3.79199rem; height: 2.46337rem; }
  .rank1__media .pt { left: 23.653rem; top: 14.96rem; height: 4.32rem; font-size: 3rem; }
  .rank1__media .pt img { width: 3.55955rem; margin: 0 0.09rem 0.626rem 0.38rem; }
  .rank1__media .pt small { font-size: 1.6rem; }

  .rank1__panel {
    position: relative;
    left: auto;
    top: auto;
    width: 100%;
    min-height: 66.3rem;
    padding: 18rem 1.2rem 3.6rem;
  }
  .rank1__title-box { gap: 1.6rem; }
  .rank1__title { font-size: 2.4rem; }
  /* SP はドットがオレンジ・7px・間隔 18.63px（PCは白・10px・23.05px） */
  .rank1__title-box .dots { --w: 28rem; --dot: 0.7rem; --gap: 1.863rem; --dot-c: var(--or); }
  .rank1__desc { width: 33.4rem; font-size: 1.4rem; }
  .voice__bubble { width: 26rem; }
  .voice__bubble h4 { font-size: 1.4rem; }
  .voice__bubble p { font-size: 1.2rem; }
  .voice__who { width: 5.8rem; letter-spacing: -0.05em; }
  .voice__who img { width: 5.8rem; height: 5.8rem; }
  .voices { gap: 0.8rem; }

  /* ---------- 第2位・第3位 ---------- */
  .rank2 .stage { width: 35.8rem; }
  .rank2__kamifubuki { left: calc(50% - 30rem); top: 2rem; width: 60rem; }
  .rank2 .deco--circle2 { left: -9.44rem;  top: 448.321rem; width: 15.943rem; height: 14.483rem; }
  .rank2 .deco--circle3 { right: -7.64rem;  top: 450.25rem; width: 14.243rem; height: 12.938rem; }
  .rank2 .deco--carrot    { left: -4.792rem; top: -4.879rem;  width: 17.989rem; height: 13.653rem; }
  .rank2 .deco--paprika   { right: -15.865rem; top: -16.269rem; width: 29.35rem; height: 30.25rem; }
  .rank2 .deco--mushroom  { left: -8.776rem; top: 443.921rem; width: 21.464rem; height: 18.532rem; }
  .rank2 .deco--egg       { right: -1.3rem;   top: 448.5rem; width: 7.286rem;  height: 6.879rem; }
  .rank2 .deco--paprika2  { display: none; }
  .rank2 .deco--broccoli  { right: 0rem;       top: 450.7rem;   width: 10.5rem;   height: 10.5rem; }

  .rank-row { flex-direction: column; align-items: center; gap: 2.8rem; padding-left: 0.35rem; }
  .rank-row__tie { padding-top: 0; gap: 2.8rem; }
  .rank-row__tie > .laurel-head { display: none; }
  .rank-row__tie-cards { flex-direction: column; gap: 2.8rem; }
  .rank-card--2nd .rank-card__panel { min-height: 47.42rem; }
  .rank-card__media .badge { left: -0.77rem; top: 1.56rem; }

  /* ---------- 5位〜10位 ---------- */
  .ranked-list { margin-top: 8rem; margin-left: -0.15rem; }
  .ranked-list__head { height: 4.8rem; align-items: center; gap: 0.715rem; }
  .ranked-list__head .laurel-head__laurel { width: 3.835rem; height: 4.8rem; margin-top: 0; }
  .ranked-list__text img { width: 26.3rem; height: 2.65rem; margin-top: 0; }
  .grid510 { grid-template-columns: 32rem; gap: 2.8rem; margin-top: 3.6rem; }

  /* ---------- コメント大賞 ---------- */
  .review { padding: 8rem 0 0; }
  .review::before { inset: 13.1rem 0 0; border-radius: 17.3rem 17.3rem 0 0; }
  .review .stage { width: 39.3rem; gap: 10rem; }
  .review__head { width: 34.675rem; gap: 1.6rem; }
  .review__title { height: 5.504rem; }
  .review__title img { top: 0; width: 34.7rem; height: 6.25rem; }
  .review__lead { font-size: 1.6rem; }
  .review__cards { min-height: 0; flex-direction: column; align-items: center; gap: 10rem; }
  .review-card { width: 36rem; padding: 4rem 3rem 2rem; gap: 2rem; }
  .award { top: -6.302rem; }
  .review-card--mid { align-self: center; }
  .rev--l { padding-right: 4.4rem; }
  .rev--r { padding-left: 4.4rem; }
  .review-card .dots { --w: 26.6rem; }
  .review-card:first-child .review-card__sparkle { left: -1.7rem; top: 36.628rem; }
  .review-card:last-child  .review-card__sparkle { left: 31.3rem; top: -1.372rem; }

  /* ---------- 投票データ ---------- */
  .data .stage { gap: 3.6rem; }
  .data__box { width: 29.2rem; padding: 4.4rem 3.2rem 3.6rem; }
  .data__ribbon { left: 0.219rem; top: -2.372rem; width: 27.825rem; height: 3.8698rem; font-size: 2rem; }
  .data__stats { flex-direction: column; gap: 2.4rem; }
  .stat { width: 22rem; }
  .stat__figure { flex-direction: column; gap: 0.8rem; }
  .stat--vote .stat__figure { align-items: center; }
  .stat--vote .stat__figure > img { width: 6rem; height: 7.7382rem; }
  .stat--menu .stat__figure { gap: 0; padding: 0.8rem 0.8rem 0; }
  .stat--menu .stat__figure > img { width: 9.7462rem; height: 4.8457rem; }
  .stat--vote .stat__num { width: 10.725rem; height: 9rem; }
  .stat--menu .stat__num { width: 7.125rem;  height: 9rem; }
  .stat__value span { font-size: 2.1rem; }
  .stat__note { font-size: 1.4rem; }
  .stat--rank { gap: 1.6rem; }
  .stat__divider { width: 13.7rem; height: 0; margin-inline: 0; margin-block: -0.15rem; border-left: none; border-top: 0.3rem dotted var(--green); }

  .thanks { justify-content: center; gap: 1.6rem 0.8rem; }
  .thanks img { width: 4.5653rem; height: 5.7125rem; grid-row: 1; align-self: center; }
  .thanks p { grid-column: 1 / -1; }
  .thanks h2 { font-size: 2rem; }
  .thanks p { font-size: 1.4rem; }
  .thanks .deco--s1 { left: 34.033rem; top: -5.1rem;  width: 1.5673rem; height: 1.56376rem; }
  .thanks .deco--s2 { left: 32.7rem;   top: -3.55rem; width: 2.37991rem; height: 2.37451rem; }
  .thanks .deco--s3 { left: -1.8rem;   top: -0.55rem; width: 2.37991rem; height: 2.37451rem; background-image: url("https://d2w53g1q050m78.cloudfront.net/masteryourmealjp/uploads/md/pages/9anniversary-senkyo-result/images/data_sparkle1.svg"); }
  .thanks .deco--s4 { display: none; }
}
