/* =========================================================
   現行の紙メニュー（国際通り松尾店 matsuo-menu.pdf）の再現テーマ
   - 1ページ = A4 1枚。寸法は mm で書く（元のPDFを 210mm 幅として測った値）。
   - ページごとの見た目は .p-page--{variant}（データのページの「見た目」）で分ける。
   - 確認用のテーマなので、Web・サイネージでも紙と同じ見た目（A4を並べた表示）にする。
   NOTE: CSSネストは使わない（GASのPDF変換を比較対象に残しているため）。
   ========================================================= */

:root {
  --print-content-width: 210mm;
  --print-content-height: 297mm;

  --c-ink: #1a1a1a;
  --c-red: #e0261b;
  --c-blue: #2c5fb8;
  --c-navy: #1d3f94;
  --c-rule: #8ea6cf;
  --c-gray: #a5a5a5;

  --f-mincho: "Shippori Mincho B1", "Noto Serif JP", serif;
  --f-gothic: "Zen Kaku Gothic New", "Noto Sans JP", sans-serif;
  --f-maru: "Zen Maru Gothic", "Zen Kaku Gothic New", sans-serif;
  --f-slab: "Roboto Slab", "Shippori Mincho B1", serif;
  --f-ud: "BIZ UDPGothic", "Zen Kaku Gothic New", sans-serif;
  /* 元のメニューの HG正楷書体PRO（1〜4ページ）に近い、筆書きの楷書 */
  --f-kai: "Yuji Syuku", "Shippori Mincho B1", serif;
}

*,
*::before,
*::after {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

body {
  background: #e9e7e3;
  font-family: var(--f-mincho);
  font-weight: 800;
  color: var(--c-ink);
  line-height: 1.5;
  font-feature-settings: "palt";
  -webkit-font-smoothing: antialiased;
}

table {
  border-collapse: collapse;
}

th {
  font-weight: inherit;
  text-align: inherit;
}

ul {
  list-style: none;
}

img {
  display: block;
  max-width: 100%;
  height: auto;
}

.c-em {
  font-style: normal;
  color: var(--c-red);
}

.c-small {
  font-size: 0.72em;
}

.c-item__line {
  display: block;
}

/* ---------- 用紙 ---------- */

@page {
  size: A4;
  margin: 0;
}

.l-header,
.c-tax-note {
  display: none;
}

.l-print,
.l-main,
.l-signage {
  display: grid;
  gap: 8mm;
  justify-content: center;
  padding: 8mm 0;
}

.p-page {
  position: relative;
  display: flex;
  flex-direction: column;
  width: 210mm;
  min-height: 297mm;
  padding: 11mm 13mm;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 1mm 4mm rgb(0 0 0 / 0.15);
}

@media print {
  body {
    background: #fff;
  }

  .l-print {
    display: block;
    padding: 0;
  }

  /* WHY: ちょうど297mmだと小数点の誤差で白紙のページが挟まるため、わずかに短くする */
  .p-page {
    min-height: 296.5mm;
    box-shadow: none;
    break-after: page;
  }

  .p-page:last-child {
    break-after: auto;
  }
}

.c-section {
  display: contents;
}

/* 枚数を測るときは最小の高さを外す（src/output.mjs）。下寄せの余白も詰めて本当の高さを測る */
html.is-measuring .p-page {
  min-height: 0;
}

html.is-measuring .c-note--red,
html.is-measuring .c-price-table--kids-drinks {
  margin-top: 0;
}

.p-page__title {
  align-self: center;
  font-size: 7mm;
  font-weight: 800;
  line-height: 1.3;
  letter-spacing: 0.15em;
}

.c-price {
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}

.c-price__unit {
  margin-left: 0.25em;
}

.c-price__tax {
  margin-left: 0.6em;
  font-size: 0.62em;
}

/* ============ 1. ランチ ============ */

/* 楷書体は太字がないので、ブラウザの太字（字画を太らせる）で元の太さに寄せる。
   数字は元のメニューでも欧文書体の形なので、価格の数字だけ明朝にする */
.p-page--lunch,
.p-page--grand,
.p-page--steakset,
.p-page--additional {
  font-family: var(--f-kai);
  font-weight: 700;
}

.p-page--lunch .c-price,
.p-page--grand .c-price,
.p-page--grand .c-no,
.p-page--steakset .c-price,
.p-page--additional .c-price,
.p-page--additional .c-no {
  font-family: var(--f-mincho);
}

/* オプションの枠だけは明朝（元は HGS明朝B） */
.c-price-table--option {
  font-family: var(--f-mincho);
  font-weight: 700;
}

.p-page--lunch {
  padding: 9mm 12mm 4mm;
}

.p-page--lunch .p-page__title,
.p-page--grand .p-page__title {
  margin-bottom: 1.8mm;
  padding: 0 1mm 0.3mm;
  border-bottom: 0.35mm solid currentColor;
  font-size: 6.1mm;
  letter-spacing: 0.02em;
}

.c-lead--course {
  font-size: 3.9mm;
  line-height: 1.8;
  letter-spacing: 0.12em;
  text-align: center;
}

.c-lead--choose {
  margin: 0.3mm 0 1.6mm;
  font-size: 4.5mm;
  letter-spacing: 0.14em;
  text-align: center;
  color: var(--c-red);
}

/* ご飯の変更は、紙では税込の金額だけを書いている（「＋990 円」） */
.c-note--rice {
  margin: -1.2mm 0 2.8mm;
  font-size: 2.9mm;
  font-weight: 500;
  letter-spacing: 0.2em;
  text-align: center;
}

.c-note--rice .c-price__main,
.c-note--rice .c-price__paren,
.c-note--rice .c-price__tax-label {
  display: none;
}

.c-note--rice .c-price__tax {
  margin: 0;
  font-size: 1em;
}

/* 青い枠の価格リスト */
.c-price-table--box {
  margin: 1mm 1.2mm 0 -1.4mm;
  padding: 2.3mm 2mm 0.5mm;
  border: 0.8mm solid var(--c-blue);
  box-shadow: 0.4mm 0.6mm 0 #4a6fb5;
}

.c-price-table--box table {
  width: 100%;
}

.c-price-table--box .c-price-table__name,
.c-price-table--box .c-price-table__price {
  height: 15mm;
  padding: 0;
  vertical-align: middle;
}

.c-price-table--box .c-price-table__name {
  font-size: 4mm;
  letter-spacing: 0.12em;
}

.c-price-table--box .c-small {
  font-size: 0.82em;
}

.c-price-table--box .c-price-table__price {
  width: 1%;
  padding: 0 3mm 0 4mm;
  font-size: 4.1mm;
  font-weight: 500;
}

.c-price-table--box .c-price__unit,
.c-price-table--option .c-price__main .c-price__unit {
  margin-left: 0.35em;
}

.c-price-table--box .c-price__tax {
  margin-left: 0.9em;
  font-size: 0.56em;
}

.c-price-table--box .c-price__tax .c-price__unit {
  display: none;
}

.c-note--center {
  margin-top: 3.7mm;
  font-size: 3.15mm;
  letter-spacing: 0.1em;
  text-align: center;
}

.c-images--photo {
  margin-top: 2mm;
}

.c-image--photo img {
  width: 142.2mm;
  margin-left: 19.5mm;
}

/* オプションの枠 */
.c-price-table--option {
  align-self: center;
  width: 154mm;
  margin-top: 4mm;
  padding: 2.6mm 6mm 1.5mm 10mm;
  border: 0.55mm solid #2b4a8f;
}

.c-price-table__caption {
  display: inline-block;
  font-size: 4.1mm;
  letter-spacing: 0.06em;
  text-decoration: underline;
  text-underline-offset: 0.6mm;
}

.c-price-table--option table {
  width: 100%;
}

.c-price-table--option .c-price-table__name {
  padding: 0.2mm 0;
  font-size: 4.1mm;
  letter-spacing: 0.04em;
}

.c-price-table--option .c-price-table__price {
  width: 1%;
  padding-left: 8mm;
  font-size: 4mm;
  font-weight: 500;
}

.c-price-table--option .c-price__main::before {
  content: "＋";
}

.c-price-table--option .c-price__tax {
  margin-left: 0;
  font-size: 1em;
}

/* かっこは全角（「（税込 330）」） */
.c-price-table--option .c-price__paren,
.c-cards--box .c-price__paren,
.c-price-table--kids .c-price__paren {
  font-size: 0;
}

.c-price-table--option .c-price__paren:first-child::before,
.c-cards--box .c-price__paren:first-child::before,
.c-price-table--kids .c-price__paren:first-child::before {
  content: "（";
}

.c-price-table--option .c-price__paren:last-child::after,
.c-cards--box .c-price__paren:last-child::after,
.c-price-table--kids .c-price__paren:last-child::after {
  content: "）";
}

.c-price-table--option .c-price__paren::before,
.c-price-table--option .c-price__paren::after {
  font-size: 4mm;
}

.p-page--lunch .c-price-table--option .c-price__tax .c-price__unit {
  display: none;
}

.c-note--allergy {
  margin-top: 1mm;
  font-size: 3.5mm;
  letter-spacing: 0.11em;
  text-align: center;
}

/* ============ 2. グランド ============ */

.p-page--grand {
  padding: 9mm 13.2mm 6mm 13mm;
}

.c-price-table--grand {
  position: relative;
  margin-top: 3.6mm;
  padding: 0 1.3mm 1.3mm 0.5mm;
  border: 1mm solid #2a62c4;
  box-shadow: 0.5mm 0.6mm 0 #4a6fb5;
}

.c-price-table--grand table {
  width: 100%;
  table-layout: fixed;
  border-collapse: separate;
  border-spacing: 0;
}

/* 「(円)」は枠の外、右上に置く */
.c-price-table--grand thead .c-price-table__unit {
  border: 0;
  position: absolute;
  top: -9.5mm;
  right: -1mm;
  font-size: 3.8mm;
  font-weight: 500;
}

.c-price-table--grand thead th,
.c-price-table--grand thead td {
  height: 10.3mm;
  border-bottom: 0.3mm solid var(--c-rule);
}

.c-price-table--grand thead th {
  width: 24mm;
  font-size: 3.5mm;
  font-weight: 500;
  text-align: center;
}

.c-price-table--grand .c-price-table__group th {
  position: relative;
  top: 2mm;
  height: 5.2mm;
  padding: 0 0 0 3.4mm;
  line-height: 1.2;
  vertical-align: bottom;
  font-size: 3.9mm;
  font-style: italic;
  letter-spacing: 0.08em;
  color: var(--c-navy);
}

.c-price-table--grand tbody tr.c-price-table__group:not(:first-child) th {
  border-top: 0.3mm solid var(--c-rule);
}

.c-price-table--grand .c-price-table__row > * {
  height: 13mm;
}

.c-price-table--grand .c-price-table__row--tight > * {
  height: 11.3mm;
}

.c-price-table--grand .c-price-table__row.is-separated > * {
  height: 13.5mm;
}

/* 見出しのすぐ下の分類名は、行と重なるくらい詰めて置く（元のメニューの組み方） */
.c-price-table--grand tbody .c-price-table__group:first-child th {
  top: 1.9mm;
  height: 3.4mm;
  line-height: 3.4mm;
}

.c-price-table--grand tbody .c-price-table__group:nth-last-child(2) th {
  height: 5.8mm;
}

.c-price-table--grand .c-price-table__name {
  padding: 0 0 0 1mm;
  vertical-align: middle;
}

.c-price-table--grand .c-item {
  display: flex;
  gap: 6.5mm;
  align-items: center;
}

.c-price-table--grand .c-no {
  flex: none;
  width: 7mm;
  font-size: 4.3mm;
  font-weight: 500;
  text-align: right;
}

.c-price-table--grand .c-item__line {
  white-space: nowrap;
  font-size: 4.2mm;
  line-height: 1.22;
  letter-spacing: 0.1em;
}

.c-price-table--grand .c-price-table__price {
  padding: 0;
  text-align: center;
  vertical-align: middle;
}

.c-price-table--grand .c-price {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  font-size: 4.3mm;
  font-weight: 500;
  line-height: 1.35;
}

.c-price-table--grand .c-price__unit {
  display: none;
}

.c-price-table--grand .c-price__tax {
  margin: 0.6mm 0 0;
  font-size: 0.55em;
}

/* 組（〜と久米島車えび２尾）の区切り線は、番号列を空けて引く */
.c-price-table--grand .is-separated > * {
  border-top: 0.3mm solid var(--c-rule);
}

.c-price-table--grand .is-separated > .c-price-table__name {
  border-image: linear-gradient(to right, transparent 13mm, var(--c-rule) 13mm) 1;
}

.c-price-table--grand .c-price-table__note td {
  height: 3.4mm;
  padding: 0 3.8mm 0 0;
  line-height: 1;
  font-size: 2.9mm;
  font-weight: 500;
  letter-spacing: 0.1em;
  text-align: right;
}

.p-page--grand .c-note--allergy {
  margin-top: 1.6mm;
}

/* ============ 3. ステーキセット ============ */

.p-page--steakset {
  display: block;
  padding: 29.8mm 24.4mm 10mm 22mm;
}

/* 紺の太枠と、外側の水色の線（四隅は二重の四角）。Wordのページ罫線を、元のPDFで測った位置でSVGに起こした */
.p-page--steakset::before {
  content: "";
  position: absolute;
  inset: 0;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 210 297' preserveAspectRatio='none'%3E%3Cdefs%3E%3Cpath id='c' d='M8.7 148.5V16.9H15.2V8.7H8.7V15.2H17.4V8.7H105' fill='none' stroke='%236a99d0' stroke-width='.35'/%3E%3C/defs%3E%3Crect x='11.65' y='11.65' width='186.7' height='273.7' fill='none' stroke='%2300007b' stroke-width='2.8'/%3E%3Cuse href='%23c'/%3E%3Cuse href='%23c' transform='matrix(-1 0 0 1 210 0)'/%3E%3Cuse href='%23c' transform='matrix(1 0 0 -1 0 297)'/%3E%3Cuse href='%23c' transform='matrix(-1 0 0 -1 210 297)'/%3E%3C/svg%3E") 0 0 / 100% 100% no-repeat;
  pointer-events: none;
}

.p-page--steakset .p-page__title {
  display: inline-block;
  margin: 0 0 5.9mm 2.4mm;
  padding: 0 0.6mm;
  border-bottom: 0.4mm solid currentColor;
  font-size: 9.4mm;
  font-style: oblique 14deg;
  line-height: 1.1;
  letter-spacing: 0.1em;
}

.c-images--float {
  float: right;
  width: 67mm;
  margin: 0 -5.3mm 0 0;
}

.p-page--steakset .c-images--float {
  margin-top: 0;
}

.c-lead--intro {
  margin-left: -0.3mm;
  font-size: 3.8mm;
  line-height: 6.33mm;
  letter-spacing: 0.12em;
}

.c-lead--gold {
  clear: both;
  margin: -1.4mm 0 -0.1mm;
  padding-left: 1.4mm;
  font-size: 4.7mm;
  letter-spacing: 0.06em;
  text-align: center;
  color: #b88a2e;
}

.c-cards--box {
  display: grid;
  grid-template-columns: 80.9mm 81.2mm;
  gap: 1.6mm 1.5mm;
}

.c-cards--box .c-card {
  display: grid;
  align-content: start;
  height: 60.1mm;
  padding: 3.7mm 2.5mm 0 3.2mm;
  border: 0.5mm solid #33508f;
}

.c-cards--box .c-card__name {
  margin-bottom: 3.7mm;
}

.c-cards--box .c-card:nth-child(n + 3) .c-card__name {
  margin-bottom: 1.2mm;
}

.c-cards--box .c-item__line {
  padding-left: 5mm;
  font-size: 4.6mm;
  line-height: 1.4;
  letter-spacing: 0.12em;
}

.c-cards--box .c-item__line .c-small {
  display: block;
  margin: 0 0 1.4mm -5mm;
  font-size: 3.7mm;
  line-height: 1.2;
  letter-spacing: 0.08em;
}

.c-cards--box .c-price-list {
  display: grid;
  gap: 4.3mm;
}

.c-cards--box .c-card:nth-child(n + 3) .c-price-list {
  gap: 2.2mm;
}

.c-cards--box .c-price-list__item {
  display: flex;
  align-items: baseline;
  padding-left: 1mm;
  font-size: 4mm;
  font-weight: 500;
}

.c-cards--box .c-price-list__form {
  display: inline-flex;
  flex: none;
  width: 18mm;
  white-space: nowrap;
}

.c-cards--box .c-price-list__form::after {
  content: "：";
  flex: 1;
  text-align: center;
}

.c-cards--box .c-price {
  display: inline-flex;
  align-items: baseline;
}

.c-cards--box .c-price__main {
  min-width: 18.5mm;
  text-align: right;
}

.c-cards--box .c-price__tax {
  margin-left: 3mm;
  font-size: 3.4mm;
}

.c-cards--box .c-price__paren::before,
.c-cards--box .c-price__paren::after {
  font-size: 3.4mm;
}

.c-cards--box .c-card__note {
  margin-top: 4.5mm;
  padding-left: 1em;
  text-indent: -1em;
  font-size: 3mm;
  line-height: 4.3mm;
  letter-spacing: 0.08em;
}

.c-lead--included {
  margin: 4.3mm 0 1.4mm;
  padding-left: 3.2mm;
  font-size: 4.2mm;
  font-style: oblique 14deg;
  line-height: 1.2;
  letter-spacing: 0.05em;
  text-align: center;
}

.c-images--pair {
  display: flex;
}

.c-image--pair:first-child {
  width: 50.4mm;
  margin-left: 15.3mm;
}

.c-image--pair + .c-image--pair {
  width: 52.4mm;
  margin-left: 32.4mm;
}

.c-image--pair img {
  width: 100%;
}

.p-page--steakset .c-price-table--option {
  display: block;
  width: 148.7mm;
  margin: 0.6mm 0 0 7.4mm;
  padding: 1.6mm 3.4mm 1.6mm 4.5mm;
}

.p-page--steakset .c-price-table--option .c-price-table__name,
.p-page--steakset .c-price-table--option .c-price-table__price {
  padding: 0.6mm 0;
  font-size: 3.4mm;
  letter-spacing: 0;
}

.p-page--steakset .c-price-table--option .c-price__paren::before,
.p-page--steakset .c-price-table--option .c-price__paren::after {
  font-size: 3.4mm;
}

.p-page--steakset .c-price-table__caption {
  font-size: 3.8mm;
}

/* ============ 4. 追加 ============ */

.p-page--additional {
  padding: 18.5mm 23.6mm 22.3mm 20mm;
}

/* 水色の太線と細線の枠（四隅は内側に折れたL字）。元のPDFで測った位置でSVGに起こした */
.p-page--additional::before {
  content: "";
  position: absolute;
  inset: 0;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 210 297' preserveAspectRatio='none'%3E%3Cdefs%3E%3Cpath id='c' d='M14.8 8.5H105V10.5H14.8ZM8.5 14.8H10.5V148.5H8.5ZM10 10.25H14.8V12.4H12V14.8H10Z' fill='%23a4c1e2'/%3E%3Cpath id='l' d='M14.8 11.75H105M11.5 14.8V148.5' fill='none' stroke='%23c9daee' stroke-width='.3'/%3E%3C/defs%3E%3Cg%3E%3Cuse href='%23c'/%3E%3Cuse href='%23l'/%3E%3C/g%3E%3Cg transform='matrix(-1 0 0 1 210 0)'%3E%3Cuse href='%23c'/%3E%3Cuse href='%23l'/%3E%3C/g%3E%3Cg transform='matrix(1 0 0 -1 0 297)'%3E%3Cuse href='%23c'/%3E%3Cuse href='%23l'/%3E%3C/g%3E%3Cg transform='matrix(-1 0 0 -1 210 297)'%3E%3Cuse href='%23c'/%3E%3Cuse href='%23l'/%3E%3C/g%3E%3C/svg%3E") 0 0 / 100% 100% no-repeat;
  pointer-events: none;
}

.p-page--additional .p-page__title {
  margin: 0 0 7.8mm;
  padding-left: 3.6mm;
  font-size: 7.5mm;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: 0.14em;
}

.p-page--additional .c-heading {
  font-size: 3.9mm;
  line-height: 6.35mm;
  letter-spacing: 0.06em;
  color: var(--c-red);
}

.p-page--additional .c-heading::before {
  content: "■";
}

/* 分類の間の灰色の線は、本文より少し左右に長い */
.p-page--additional .c-section + .c-section .c-heading {
  margin: 2.1mm -2mm 0 -0.5mm;
  padding: 3.7mm 2mm 0 0.5mm;
  border-top: 0.5mm solid var(--c-gray);
}

.p-page--additional table {
  width: 100%;
}

.p-page--additional .c-price-table__name,
.p-page--additional .c-price-table__price {
  padding: 0;
  font-size: 4mm;
  line-height: 6.35mm;
  letter-spacing: 0.12em;
  vertical-align: baseline;
}

.p-page--additional .c-item {
  display: flex;
}

/* 番号は「．」の位置をそろえる（10．は1．より左に出る） */
.p-page--additional .c-no {
  flex: none;
  width: 8mm;
  height: 6.35mm;
  margin-right: 0.3mm;
  font-weight: 500;
  letter-spacing: 0;
  text-align: right;
}

.p-page--additional .c-no__dot {
  font-size: 0;
}

.p-page--additional .c-no__dot::after {
  content: "．";
  font-size: 4mm;
}

.p-page--additional .c-price-table__price {
  width: 57mm;
  padding-left: 7mm;
  font-weight: 500;
  letter-spacing: 0.04em;
  white-space: nowrap;
}

/* 価格の列: 提供形態 / 金額（右ぞろえ。桁が多いと左へ伸びる） / 税込（左ぞろえ） */
.p-page--additional .c-price-table .c-price-list__item {
  display: grid;
  grid-template-columns: 12mm 15.4mm auto;
}

.p-page--additional .c-price-table .c-price-list__item > .c-price {
  display: contents;
}

.p-page--additional .c-price-table .c-price__main {
  grid-column: 2;
  justify-self: end;
}

.p-page--additional .c-price-table .c-price__tax {
  margin-left: 6.8mm;
  font-size: 3.5mm;
}

.p-page--additional .c-price__tax .c-price__unit {
  display: none;
}

.c-lead--veg {
  margin: 0 0 0 4.2mm;
  font-size: 4mm;
  line-height: 6.35mm;
  letter-spacing: 0.08em;
}

.p-page--additional .c-price-table__row--small .c-price-table__name {
  padding-left: 14.1mm;
}

.c-price-table__row--small .c-item__line {
  font-size: 3mm;
  letter-spacing: 0.06em;
}

/* 写真付きの5品は、元のメニューの位置に1品ずつ置く（品目の中心＝写真の中心） */
.c-cards--photo {
  position: relative;
  height: 0;
}

.c-cards--photo .c-card {
  position: absolute;
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 70mm;
  text-align: center;
}

.c-cards--photo .c-card:nth-child(1) { top: calc(171.6mm - var(--photo-top)); left: calc(46.75mm - 35mm - 20mm); }
.c-cards--photo .c-card:nth-child(2) { top: calc(172.6mm - var(--photo-top)); left: calc(108.4mm - 35mm - 20mm); }
.c-cards--photo .c-card:nth-child(3) { top: calc(172.3mm - var(--photo-top)); left: calc(168.8mm - 35mm - 20mm); }
.c-cards--photo .c-card:nth-child(4) { top: calc(213.4mm - var(--photo-top)); left: calc(69.6mm - 35mm - 20mm); }
.c-cards--photo .c-card:nth-child(5) { top: calc(212.6mm - var(--photo-top)); left: calc(138.2mm - 35mm - 20mm); }

.c-cards--photo .c-card:nth-child(1) .c-card__photo { width: 56.9mm; margin-top: 1.2mm; }
.c-cards--photo .c-card:nth-child(2) .c-card__photo { width: 30.7mm; }
.c-cards--photo .c-card:nth-child(3) .c-card__photo { width: 33.2mm; }
.c-cards--photo .c-card:nth-child(4) .c-card__photo { width: 32.8mm; margin-top: 0.4mm; }
.c-cards--photo .c-card:nth-child(5) .c-card__photo { width: 32.2mm; margin-top: -1.2mm; }

.c-cards--photo .c-card__photo {
  order: 3;
  height: auto;
}

.c-cards--photo .c-card__name,
.c-cards--photo .c-card__price {
  font-size: 3.8mm;
  line-height: 5.3mm;
  white-space: nowrap;
}

.c-cards--photo .c-card__name {
  letter-spacing: 0.1em;
}

.c-cards--photo .c-card__price {
  margin-top: -0.6mm;
  font-size: 4.2mm;
  font-weight: 500;
}

.c-cards--photo .c-price__tax {
  margin-left: 0;
  font-size: 0.8em;
}

.c-cards--photo .c-price__tax .c-price__unit {
  display: none;
}

.p-page--additional .c-card .c-no {
  width: auto;
  margin: 0;
}

.p-page--additional .c-card .c-no__dot::after {
  font-size: 3.8mm;
}

/* 写真の位置はページ上端からの値で書く。直前の表の下端（＝ここ）の位置をCSSで知る手段がないため、
   表の高さが固定のこのページでは、表の下端の位置を変数で持つ */
.p-page--additional {
  --photo-top: 150.4mm;
}

.c-note--red {
  margin-top: auto;
  padding-top: 6mm;
  font-size: 3.4mm;
  letter-spacing: 0.1em;
  line-height: 1.7;
  text-align: center;
  color: var(--c-red);
}

.p-page--additional .c-note--red {
  margin-left: 14.1mm;
  padding-left: 1em;
  line-height: 5.3mm;
  text-indent: -1em;
  text-align: left;
}

/* ============ 5. お子様 ============ */

/* 元のメニューは BIZ UDPゴシック（Google Fonts にある） */
.p-page--kids {
  padding: 13mm 15mm 8mm 25.3mm;
  font-family: var(--f-ud);
  font-weight: 400;
}

.p-page--kids::before {
  content: "";
  position: absolute;
  inset: 8.8mm 7.3mm 13.1mm 7.4mm;
  border: 1.1mm solid #f9da78;
  pointer-events: none;
}

/* 題字は画像（色付きの丸）を使うので、文字の題は読み上げ用にだけ残す */
.p-page--kids .p-page__title {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
}

.p-page--kids .c-images--title img {
  width: 129mm;
  margin-left: 17.3mm;
}

.c-lead--kids-sub {
  margin-top: 1.9mm;
  padding-left: 3.4mm;
  font-size: 4mm;
  line-height: 1.3;
  text-align: center;
}

.c-images--kids-photo {
  margin-top: 1.2mm;
}

.c-image--kids-photo {
  position: relative;
  width: 118.7mm;
  margin-left: 21.6mm;
}

.c-image--kids-photo figcaption {
  position: absolute;
  top: 67mm;
  left: 5.3mm;
  padding: 0 2mm;
  background: #fff;
  font-size: 3.9mm;
  line-height: 4.6mm;
}

.c-image--kids-boy,
.c-image--kids-girl {
  position: absolute;
}

.c-image--kids-boy img,
.c-image--kids-girl img {
  width: 100%;
  height: 100%;
}

.c-image--kids-boy { height: 29mm; }
.c-image--kids-girl { height: 36.1mm; }

.c-image--kids-boy {
  top: 85.5mm;
  left: 13.9mm;
  width: 19.8mm;
}

.c-image--kids-girl {
  top: 166.2mm;
  left: 163.9mm;
  width: 33.3mm;
}

/* 雲形の吹き出し（Wordの「雲形吹き出し」を、元のPDFで測った形でSVGに起こした） */
.c-lead--bubble {
  position: absolute;
  top: 40.5mm;
  left: 13.5mm;
  width: 53mm;
  height: 46.5mm;
  padding: 16.4mm 0 0 7.9mm;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 53 46.5'%3E%3Ccircle cx='9.21' cy='8.38' r='5.25' fill='%235b7d3a' stroke='%235b7d3a' stroke-width='0.7'/%3E%3Ccircle cx='17.26' cy='5.42' r='5.25' fill='%235b7d3a' stroke='%235b7d3a' stroke-width='0.7'/%3E%3Ccircle cx='25.74' cy='9.06' r='5.25' fill='%235b7d3a' stroke='%235b7d3a' stroke-width='0.7'/%3E%3Ccircle cx='33.79' cy='14.57' r='6.10' fill='%235b7d3a' stroke='%235b7d3a' stroke-width='0.7'/%3E%3Ccircle cx='38.45' cy='22.62' r='5.59' fill='%235b7d3a' stroke='%235b7d3a' stroke-width='0.7'/%3E%3Ccircle cx='36.33' cy='31.52' r='5.59' fill='%235b7d3a' stroke='%235b7d3a' stroke-width='0.7'/%3E%3Ccircle cx='28.70' cy='37.03' r='5.93' fill='%235b7d3a' stroke='%235b7d3a' stroke-width='0.7'/%3E%3Ccircle cx='18.53' cy='38.72' r='5.76' fill='%235b7d3a' stroke='%235b7d3a' stroke-width='0.7'/%3E%3Ccircle cx='9.21' cy='35.33' r='5.42' fill='%235b7d3a' stroke='%235b7d3a' stroke-width='0.7'/%3E%3Ccircle cx='5.31' cy='26.43' r='4.66' fill='%235b7d3a' stroke='%235b7d3a' stroke-width='0.7'/%3E%3Ccircle cx='5.82' cy='16.52' r='4.66' fill='%235b7d3a' stroke='%235b7d3a' stroke-width='0.7'/%3E%3Ccircle cx='21.92' cy='22.62' r='16.95' fill='%235b7d3a' stroke='%235b7d3a' stroke-width='0.7'/%3E%3Ccircle cx='9.21' cy='8.38' r='5.25' fill='white'/%3E%3Ccircle cx='17.26' cy='5.42' r='5.25' fill='white'/%3E%3Ccircle cx='25.74' cy='9.06' r='5.25' fill='white'/%3E%3Ccircle cx='33.79' cy='14.57' r='6.10' fill='white'/%3E%3Ccircle cx='38.45' cy='22.62' r='5.59' fill='white'/%3E%3Ccircle cx='36.33' cy='31.52' r='5.59' fill='white'/%3E%3Ccircle cx='28.70' cy='37.03' r='5.93' fill='white'/%3E%3Ccircle cx='18.53' cy='38.72' r='5.76' fill='white'/%3E%3Ccircle cx='9.21' cy='35.33' r='5.42' fill='white'/%3E%3Ccircle cx='5.31' cy='26.43' r='4.66' fill='white'/%3E%3Ccircle cx='5.82' cy='16.52' r='4.66' fill='white'/%3E%3Ccircle cx='21.92' cy='22.62' r='16.95' fill='white'/%3E%3Ccircle cx='42.94' cy='39.14' r='3.39' fill='white' stroke='%235b7d3a' stroke-width='0.35'/%3E%3Ccircle cx='48.19' cy='42.79' r='2.12' fill='white' stroke='%235b7d3a' stroke-width='0.35'/%3E%3Ccircle cx='51.42' cy='45.08' r='1.10' fill='white' stroke='%235b7d3a' stroke-width='0.35'/%3E%3C/svg%3E") 0 0 / 100% 100% no-repeat;
  font-size: 4.4mm;
  font-weight: 700;
  line-height: 6mm;
}

.c-price-table--kids {
  margin-top: 6.65mm;
}

.c-price-table--kids table,
.c-price-table--kids tbody,
.c-price-table--kids tr,
.c-price-table--kids th,
.c-price-table--kids td,
.c-price-table--kids-drinks table,
.c-price-table--kids-drinks tbody,
.c-price-table--kids-drinks tr,
.c-price-table--kids-drinks th,
.c-price-table--kids-drinks td {
  display: block;
}

.c-price-table--kids .c-price-table__row {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  font-size: 5.8mm;
  font-weight: 700;
  line-height: 7mm;
  color: #2f6eba;
}

/* 行の間の空きは元のメニューのまま（Bの説明は詰まり、CとDの前は広い） */
.c-price-table--kids tr:nth-child(2) { margin-top: 4.6mm; }
.c-price-table--kids tr:nth-child(3) { margin-top: 11.4mm; }
.c-price-table--kids tr:nth-child(4) { margin-top: 7.1mm; }
.c-price-table--kids tr:nth-child(1) .c-item__desc { margin-top: 2.4mm; line-height: 7.6mm; }
.c-price-table--kids tr:nth-child(2) .c-item__desc { margin-top: -1mm; }

.c-price-table--kids .c-price-table__name,
.c-price-table--kids .c-item,
.c-price-table--kids .c-item__body {
  display: contents;
}

.c-price-table--kids .c-item__line {
  display: inline;
}

.c-price-table--kids-drinks .c-item__line {
  white-space: nowrap;
}

.c-price-table--kids .c-item__name::before {
  content: "★";
  color: #f9da78;
}

.c-price-table--kids .c-price-table__row--green .c-item__name::before {
  color: #7eab55;
}

.c-price-table--kids .c-price-table__price {
  height: 7mm;
  margin-left: 4mm;
}

.c-price-table--kids .c-price__unit {
  margin-left: 0;
}

.c-price-table--kids .c-price__tax {
  margin-left: 1mm;
  font-size: 1em;
}

.c-price-table--kids .c-price__paren::before,
.c-price-table--kids .c-price__paren::after {
  font-size: 5.8mm;
}

.c-price-table--kids .c-price__tax-label {
  font-size: 0;
}

.c-price-table--kids .c-price__tax-label::before {
  content: "税込　";
  font-size: 5.8mm;
}

/* 説明は「(」のあとで折り返し、2行目を字下げする */
.c-price-table--kids .c-item__desc {
  flex-basis: 100%;
  order: 3;
  padding-left: 6.9mm;
  font-size: 5.2mm;
  font-weight: 400;
  line-height: 7.1mm;
  text-indent: -6.9mm;
  color: #000;
}

.c-price-table--kids .c-price-table__note {
  margin: 1.2mm 0 0;
  font-size: 4.6mm;
  line-height: 4.6mm;
  text-align: right;
}

.c-price-table--kids .c-price-table__row:last-child {
  margin-top: 8.35mm;
}

/* お飲み物の枠 */
.c-price-table--kids-drinks {
  position: absolute;
  top: 238.8mm;
  left: 26.2mm;
  width: 157.5mm;
  height: 43.7mm;
  padding: 7.2mm 0 0 20.4mm;
  border: 0.35mm solid #de8344;
  border-radius: 7mm;
}

.c-price-table--kids-drinks .c-price-table__caption {
  margin-left: 5.8mm;
  border-bottom: 0.3mm solid #2f6eba;
  font-size: 5.6mm;
  font-weight: 700;
  line-height: 1.1;
  text-decoration: none;
  color: #2f6eba;
}

.c-price-table--kids-drinks .c-item__name {
  display: grid;
  grid-template-columns: 62.8mm auto;
  grid-template-rows: repeat(4, 7.07mm);
  grid-auto-flow: column;
  margin-top: -0.4mm;
  font-size: 5.1mm;
  line-height: 7.07mm;
}

.c-price-table--kids-drinks .c-item__line:nth-child(5) {
  grid-row: 2;
}

.c-price-table--kids-drinks .c-item__line::before {
  content: "★";
  margin-right: 2.2mm;
  color: #f9da78;
}

.c-price-table--kids-drinks .c-price-table__price {
  position: absolute;
  top: 5.6mm;
  right: 13.5mm;
  font-size: 5.6mm;
  font-weight: 700;
  color: #2f6eba;
}

.c-price-table--kids-drinks .c-price__main::before {
  content: "各+";
}

.c-price-table--kids-drinks .c-price__unit {
  margin-left: 0;
}

.c-price-table--kids-drinks .c-price__tax {
  margin-left: 0;
  font-size: 1em;
}

/* ============ 6・7. お飲物 ============ */

/*
 * 列の位置（ページ左端からのmm）は変数で持ち、2枚目（#drink-2）だけ値を変える。
 * 元のメニューは2枚で列の位置が少しずつ違う。
 *   --label: 分類名の列の幅 / --mk: 価格の列の左端から「・」や括弧までの位置
 *   --cols: 価格の列の内訳（目印 / 提供形態 / ・・ / 金額 / 税込 / 税込の金額）
 */
.p-page--drink {
  --label: 27.2mm;
  --mk: 2.8mm;
  --cols: 13.6mm 15.4mm 8.3mm 16mm 9.7mm 9.5mm;
  --pitch: 6.2mm;
  --name: 4.1mm;
  padding: 11.5mm 25.5mm 3mm 20mm;
  font-family: var(--f-gothic);
  font-weight: 900;
}

#drink-2 {
  --label: 28mm;
  --mk: 17.6mm;
  --cols: 23.8mm 15.4mm 5.3mm 11.8mm 8.7mm 8.4mm;
  --pitch: 5.45mm;
  --name: 4mm;
  padding: 8.6mm 24.6mm 3mm 16.2mm;
}

/* 2枚目は節ごとに上下の空きが違う（元のメニューの値） */
#drink-2 .c-section:nth-of-type(2) { padding: 4.3mm 0 3.8mm; }
#drink-2 .c-section:nth-of-type(3) { padding: 5.5mm 0 3.6mm; }
#drink-2 .c-section:nth-of-type(4) { padding: 6.6mm 0 0; height: calc(160.7mm - 81.3mm); align-content: start; }
#drink-2 .c-section:nth-of-type(5) { padding: 7mm 0 3.2mm; }
#drink-2 .c-section:nth-of-type(6) { padding: 7.3mm 0 2mm; }
#drink-2 .c-section:nth-of-type(7) { padding: 1.5mm 0 0; }
#drink-2 .c-price-table + .c-lead--base { margin-top: 1.4mm; }

.p-page--drink .p-page__title {
  margin: 0 0 0 6.8mm;
  padding: 0.6mm 30mm;
  background: radial-gradient(ellipse 50% 50% at center, #f6c9a0 0%, #fbe0c6 45%, transparent 100%);
  font-size: 5.4mm;
  line-height: 1.2;
  letter-spacing: 0.02em;
  color: #8d3a65;
}

.c-lead--wine-list {
  margin: 5mm 0 4.7mm 0.6mm;
  font-size: 3.5mm;
  line-height: 1.2;
  text-align: center;
  color: #ea3323;
}

/* 分類名を左の列、品目を右の列に置き、分類の間を水色の線で区切る */
.p-page--drink .c-section {
  position: relative;
  display: grid;
  grid-template-columns: var(--label) 1fr;
  align-items: center;
  padding: 5.7mm 0 3.4mm;
  border-bottom: 0.3mm solid #4eadea;
}

.p-page--drink .c-section:last-child {
  border-bottom: 0;
}

/* 区切りごとの空きの違いは元のメニューに合わせる */
#drink-1 .c-section:has(.c-lead--keep) {
  padding: 6.9mm 0 1.6mm;
}

#drink-1 .c-section:has(.c-price-table__row--loose) {
  padding-bottom: 1.5mm;
}

/* 洋酒: 銘柄ごとに少し空ける */
.p-page--drink .c-price-table__row:has(.c-price-list__item + .c-price-list__item) + .c-price-table__row:has(.c-price-list__item + .c-price-list__item) > * {
  padding-top: 2mm;
}

.p-page--drink .c-section > * {
  grid-column: 2;
}

.p-page--drink .c-heading {
  position: relative;
  grid-column: 1;
  grid-row: 1 / span 12;
  align-self: center;
  font-size: 4.1mm;
  line-height: 1.2;
  text-align: center;
  color: #0000f5;
}

.p-page--drink .c-heading__main {
  display: block;
}

/* 「★3か月間 ボトルキープできます」は分類名の下にぶら下げる（分類名は行の中央のまま） */
.p-page--drink .c-heading__sub {
  position: absolute;
  top: 100%;
  left: 0.8mm;
  display: block;
  margin-top: 2.6mm;
  font-size: 3mm;
  line-height: 4mm;
  white-space: nowrap;
  text-align: left;
  color: #8d3a65;
}

.p-page--drink .c-heading--small .c-heading__main,
.p-page--drink .c-heading--small .c-heading__sub {
  position: static;
  margin: 0;
  font-size: 2.9mm;
  line-height: 3.8mm;
  letter-spacing: -0.02em;
  white-space: nowrap;
  text-align: center;
  color: inherit;
}

.p-page--drink .c-heading--two-line .c-heading__sub {
  position: static;
  margin: 0;
  font-size: 1em;
  line-height: 1.05;
  text-align: center;
  color: inherit;
}

.p-page--drink table {
  width: 100%;
  table-layout: fixed;
  border-collapse: collapse;
}

.p-page--drink .c-price-table__row > * {
  padding: 0;
  vertical-align: middle;
}

.p-page--drink .c-price-table__name {
  font-size: var(--name);
  line-height: var(--pitch);
  white-space: nowrap;
}

.p-page--drink .c-item {
  display: flex;
  align-items: baseline;
}

.p-page--drink .c-item__line {
  display: block;
  letter-spacing: -0.15em;
}

/* 番号は右ぞろえ、その後ろに緑の■（番号のない品目にも付ける） */
.p-page--drink .c-no {
  position: relative;
  display: inline-block;
  flex: none;
  width: 9mm;
  margin-right: 1.6mm;
  font-family: var(--f-mincho);
  font-weight: 700;
  text-align: right;
}

.p-page--drink .c-no__dot {
  display: none;
}

.p-page--drink .c-no::after,
.p-page--drink .c-item--group .c-item__line:not(:has(.c-no))::before,
.p-page--drink .c-price-table__row:not(.is-group) .c-item:not(:has(.c-no))::before {
  content: "■";
  position: absolute;
  margin-left: 1.6mm;
  font-family: var(--f-gothic);
  color: #377e22;
}

.p-page--drink .c-no::after {
  left: 100%;
}

.p-page--drink .c-item__text,
.p-page--drink .c-item__body {
  margin-left: 5.1mm;
}

.p-page--drink .c-item--group .c-item__body {
  margin-left: 0;
}

.p-page--drink .c-item--group .c-item__line:not(:has(.c-no))::before,
.p-page--drink .c-price-table__row:not(.is-group) .c-item:not(:has(.c-no))::before {
  position: static;
  margin: 0 1.5mm 0 10.6mm;
}

.p-page--drink .c-item--group .c-item__line:not(:has(.c-no)) .c-item__text {
  margin-left: 0;
}

/* 価格の列 */
.p-page--drink .c-price-table__price {
  position: relative;
  width: calc(13.6mm + 15.4mm + 8.3mm + 16mm + 9.7mm + 9.5mm);
}

#drink-2 .c-price-table__price {
  width: calc(23.8mm + 15.4mm + 5.3mm + 11.8mm + 8.7mm + 8.4mm);
}

.p-page--drink .c-price-list {
  display: grid;
}

.p-page--drink .c-price-list__item {
  display: grid;
  grid-template-columns: var(--cols);
  align-items: baseline;
  height: var(--pitch);
  line-height: var(--pitch);
}

.p-page--drink .c-price-list__item::before {
  content: "・・";
  grid-column: 3;
  grid-row: 1;
  justify-self: end;
  font-size: 2.8mm;
  letter-spacing: -0.25em;
  color: #ea3323;
}

.p-page--drink .c-price-list__form {
  grid-column: 2;
  font-size: 4.1mm;
  letter-spacing: -0.08em;
  white-space: nowrap;
  text-align: center;
}

.p-page--drink .c-price,
.p-page--drink .c-price__tax {
  display: contents;
}

.p-page--drink .c-price__main {
  grid-column: 4;
  justify-self: end;
  font-family: Oswald, var(--f-gothic);
  font-size: 4.6mm;
  font-weight: 400;
}

.p-page--drink .c-price__unit,
.p-page--drink .c-price__paren {
  display: none;
}

.p-page--drink .c-price__tax-label {
  grid-column: 5;
  justify-self: end;
  font-size: 2.2mm;
}

.p-page--drink .c-price__tax > .c-price__num {
  grid-column: 6;
  justify-self: end;
  font-family: Oswald, var(--f-gothic);
  font-size: 2.6mm;
  font-weight: 400;
}

/* 品名と提供形態の間の目印（赤い「・」と括弧）。
   1品1価格: 「・ ・」 / 1品で複数の価格: 「・ [」 / 複数の品で1価格: 「] ・」 */
.p-page--drink .c-price-table__price::before,
.p-page--drink .c-price-table__price::after {
  position: absolute;
  top: 50%;
  translate: 0 -50%;
  font-size: 2.8mm;
  line-height: 1;
  color: #ea3323;
}

.p-page--drink .c-price-table__price::before {
  content: "・ ・";
  left: var(--mk);
  letter-spacing: -0.1em;
}

.p-page--drink .c-price-table__price:has(.c-price-list__item + .c-price-list__item)::before {
  content: "・";
}

.p-page--drink .c-price-table__price:has(.c-price-list__item + .c-price-list__item)::after {
  content: "";
  left: calc(var(--mk) + 1.8mm);
  width: 2.8mm;
  height: calc(100% - 1.6mm);
  border: 0.25mm solid #8d3a65;
  border-right: 0;
  border-radius: 1.2mm 0 0 1.2mm;
}

.p-page--drink .is-group .c-price-table__price:not(:has(.c-price-list__item + .c-price-list__item))::before {
  content: "・";
  left: calc(var(--mk) + 3.6mm);
}

.p-page--drink .is-group .c-price-table__price:not(:has(.c-price-list__item + .c-price-list__item))::after {
  content: "";
  left: calc(var(--mk) + 0.1mm);
  width: 2mm;
  height: calc(100% - 1.6mm);
  border: 0.25mm solid #8d3a65;
  border-left: 0;
  border-radius: 0 1.2mm 1.2mm 0;
}

.c-lead--keep {
  font-size: 3.6mm;
  line-height: var(--pitch);
  color: #8d3a65;
}

/* 泡盛の「★ボトルキープ」は、瑞泉の1行目と同じ高さに置く */
.p-page--drink .c-lead--keep + .c-price-table {
  margin-top: calc(var(--pitch) * -1);
}

.p-page--drink .c-lead--keep {
  padding-left: 11.2mm;
}

#drink-2 .c-lead--keep {
  margin: -4.2mm 0 1.4mm;
  padding-left: 5.6mm;
  font-size: 3.4mm;
}

#drink-2 .c-lead--keep + .c-price-table {
  margin-top: 0;
}

/* 泡盛の写真3枚（元の位置に置く） */
.c-images--awamori {
  display: flex;
  align-items: flex-start;
  margin: 2.3mm 0 3.1mm;
}

.c-image--awamori:nth-child(1) { width: 22.7mm; margin: 1.8mm 0 0 16.6mm; }
.c-image--awamori:nth-child(2) { width: 32.6mm; margin: 3.5mm 0 0 9.4mm; }
.c-image--awamori:nth-child(3) { width: 44.8mm; margin: 0 0 0 6.2mm; }

.c-image--awamori img {
  width: 100%;
}

/* 泡盛の割り方の4品は、少し小さい字で詰めて並べる */
.c-images--awamori + .c-price-table .c-price-table__name {
  font-size: 3.6mm;
  line-height: 5.43mm;
}

/* 焼酎・洋酒: 提供形態の行の間を空ける */
.p-page--drink .c-price-table__row--loose .c-price-list__item {
  height: 8.35mm;
  line-height: 8.35mm;
}

.p-page--drink .c-price-table__row--loose .c-item__line {
  line-height: 14.8mm;
}

.c-lead--base {
  font-size: 3.4mm;
  line-height: 4.4mm;
  color: #c85a19;
}

.c-lead--bubble-blue,
.c-lead--bubble-yellow {
  position: absolute;
  top: 135.5mm;
  width: 47.2mm;
  height: 20.3mm;
  padding: 5.3mm 0 0 9.5mm;
  border: 0.5mm dashed #9bb4dc;
  border-radius: 50%;
  font-size: 2.9mm;
  line-height: 3.75mm;
}

.c-lead--bubble-blue {
  left: 17.9mm;
}

.c-lead--bubble-yellow {
  left: 60.9mm;
  border-color: #f0d36a;
}

.p-page--drink .c-section:has(.c-lead--bubble-blue) {
  position: static;
}

.c-images--cocktails {
  position: absolute;
  top: 125.6mm;
  left: 108.8mm;
  width: 75.2mm;
}

.c-images--cocktails img {
  width: 100%;
  height: 35.8mm;
}

.c-lead--wine-list-inline {
  margin: -0.4mm 0 0 3.7mm;
  font-size: 3.4mm;
  line-height: 4mm;
  color: #8d3a65;
}

/* ============ 8〜11. ワイン ============ */

.p-page--wine {
  padding: 11mm 7mm 8mm;
  font-family: var(--f-gothic);
  font-weight: 900;
}

.p-page--wine .c-section {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 6mm;
  align-content: start;
}

.p-page--wine .c-heading {
  grid-column: 1 / -1;
  justify-self: center;
  margin-bottom: 4mm;
  font-family: var(--f-slab);
  font-size: 7.2mm;
  letter-spacing: 0.02em;
}

.c-heading--glass {
  color: #b8962e;
}

.c-heading--natural {
  margin-top: 18mm;
  color: #c4581f;
}

.c-heading--red {
  color: #b51c1c;
}

.c-heading--white {
  color: #5f8a3a;
}

.c-heading--sparkling {
  margin-top: 5mm;
  color: #3b5ca8;
}

.p-page--wine .c-wines,
.p-page--wine .c-lead--natural-text {
  grid-column: 1 / -1;
}

.p-page--wine .c-wines {
  display: contents;
}

/* 国旗（国コードからテーマ側で出す） */
.c-wine__flag {
  display: block;
  width: 15mm;
  height: 10mm;
  background: center / contain no-repeat;
}

.c-wine__flag[data-country="cl"] { background-image: url("../images/flags/cl.png"); }
.c-wine__flag[data-country="fr"] { background-image: url("../images/flags/fr.png"); }
.c-wine__flag[data-country="it"] { background-image: url("../images/flags/it.png"); }
.c-wine__flag[data-country="au"] { background-image: url("../images/flags/au.jpg"); }
.c-wine__flag[data-country="ar"] { background-image: url("../images/flags/ar.png"); }
.c-wine__flag[data-country="us"] { background-image: url("../images/flags/us.png"); }
.c-wine__flag[data-country="es"] { background-image: url("../images/flags/es.png"); }

.c-wine {
  display: grid;
  grid-template-columns: 17mm 1fr;
  grid-template-areas:
    "flag name"
    "photo spec"
    "photo intro";
  gap: 0 2mm;
  align-content: start;
  margin-bottom: 8mm;
}

.c-wine__flag {
  grid-area: flag;
}

.c-wine__photo {
  grid-area: photo;
  justify-self: center;
  width: auto;
  max-height: 34mm;
}

.c-wine__name {
  grid-area: name;
  align-self: end;
  margin-bottom: 4mm;
  padding-bottom: 1.5mm;
  border-bottom: 1.1mm double #e79a9a;
  font-size: 3.9mm;
  line-height: 1.25;
  letter-spacing: 0.08em;
  text-align: center;
}

/* Glass / Natural は赤ワインがピンク、白ワインが緑の線 */
.c-wines--glass .c-wine:nth-of-type(even) .c-wine__name,
.c-wines--natural .c-wine:nth-of-type(even) .c-wine__name {
  border-bottom-color: #a6c98c;
}

.c-wine__spec {
  grid-area: spec;
  display: grid;
  gap: 1.2mm;
  font-size: 3.3mm;
  letter-spacing: 0.06em;
}

.c-wine__spec-row {
  display: flex;
  gap: 3mm;
}

.c-wine__spec-row dt {
  letter-spacing: 0.6em;
  white-space: nowrap;
}

.c-wine__spec .c-price-list__form,
.c-wine__spec .c-price__unit,
.c-wine__spec .c-price__paren {
  display: none;
}

.c-wine__spec .c-price {
  font-weight: 500;
}

.c-wine__spec .c-price__main {
  display: inline-block;
  min-width: 14mm;
  text-align: right;
}

.c-wine__spec .c-price__tax {
  margin-left: 7mm;
  font-size: 1em;
}

.c-wine__spec .c-price__tax-label {
  margin-right: 0.5em;
}

.c-wine__intro {
  grid-area: intro;
  margin-top: 10mm;
  font-size: 3.3mm;
  line-height: 1.4;
}

/* Natural Wine の説明文とブドウの絵 */
.c-lead--natural-text {
  margin-top: 6mm;
  font-size: 3.1mm;
  line-height: 1.3;
  letter-spacing: 0.04em;
  text-align: center;
}

.c-images--grapes {
  position: absolute;
  right: 9mm;
  bottom: 9mm;
  width: 26mm;
}

/* ---- Glass / Natural（1枚目）: 元のメニューで測った位置に置く ---- */
.p-page--wine:has(.c-wines--glass) {
  padding: 13.05mm 3mm 0 10mm;
}

.p-page--wine:has(.c-wines--glass) .c-section {
  grid-template-columns: 96.8mm 1fr;
  gap: 0 2mm;
}

.p-page--wine:has(.c-wines--glass) .c-heading {
  translate: -4.3mm 0;
  margin: 0 0 7.25mm;
  font-size: 6.7mm;
  line-height: 10mm;
}

.p-page--wine:has(.c-wines--glass) .c-heading--natural {
  margin: 18.95mm 0 7.35mm;
}

.c-wines--glass .c-wine,
.c-wines--natural .c-wine {
  grid-template-columns: 17.5mm 12mm 1fr;
  grid-template-rows: auto auto 1fr;
  grid-template-areas:
    "flag name name"
    "photo spec spec"
    "photo intro intro";
  gap: 0;
  margin: 0;
}

.c-wines--glass .c-wine__spec,
.c-wines--natural .c-wine__spec,
.c-wines--natural .c-wine__intro {
  align-self: start;
}

.c-wines--glass .c-wine:nth-child(2),
.c-wines--natural .c-wine:nth-child(2) {
  grid-template-columns: 19.5mm 10mm 1fr;
}

.c-wines--glass .c-wine__flag {
  width: 15.2mm;
  height: 9.7mm;
  margin-left: 0.6mm;
}

.c-wines--natural .c-wine__flag {
  width: 13.4mm;
  height: 9.6mm;
  margin-left: 2.1mm;
}

.c-wines--glass .c-wine__name,
.c-wines--natural .c-wine__name {
  justify-self: start;
  width: 57mm;
  margin: 0 0 0 11mm;
  padding-bottom: 2.45mm;
  font-size: 3.9mm;
  letter-spacing: 0.02em;
}

.c-wines--natural .c-wine__name {
  padding-bottom: 0.9mm;
  line-height: 4.3mm;
}

.c-wines--glass .c-wine__photo,
.c-wines--natural .c-wine__photo {
  justify-self: start;
  max-height: none;
}

.c-wines--glass .c-wine:nth-child(1) .c-wine__photo { width: 14.8mm; height: 38.7mm; margin-top: 4.7mm; }
.c-wines--glass .c-wine:nth-child(2) .c-wine__photo { width: 18.2mm; height: 39.2mm; margin-top: 3.5mm; }
.c-wines--natural .c-wine:nth-child(1) .c-wine__photo { width: 16mm; height: 63mm; margin: 9.2mm 0 0 -1mm; }
.c-wines--natural .c-wine:nth-child(2) .c-wine__photo { width: 23.4mm; height: 65.6mm; margin: 8.7mm 0 0 -1mm; }

.c-wines--glass .c-wine__spec,
.c-wines--natural .c-wine__spec {
  gap: 0;
  margin-top: 11.85mm;
  font-size: 3.3mm;
  line-height: 5.9mm;
  letter-spacing: 0;
}

.c-wines--natural .c-wine__spec {
  margin-top: 5.7mm;
  line-height: 6mm;
}

.c-wines--glass .c-wine__spec-row,
.c-wines--natural .c-wine__spec-row {
  gap: 0;
  height: 6mm;
  white-space: nowrap;
}

.c-wines--glass .c-wine:nth-child(2) .c-wine__name,
.c-wines--natural .c-wine:nth-child(2) .c-wine__name {
  margin-left: 8.8mm;
}

.c-wines--glass .c-wine__spec-row dt,
.c-wines--natural .c-wine__spec-row dt {
  flex: none;
  width: 12mm;
  letter-spacing: 0.5em;
}

.c-wines--glass .c-wine__spec .c-price__main,
.c-wines--natural .c-wine__spec .c-price__main {
  min-width: 11mm;
}

.c-wines--glass .c-wine__spec .c-price__tax,
.c-wines--natural .c-wine__spec .c-price__tax {
  margin-left: 6.3mm;
}

.c-wines--natural .c-wine:nth-child(2) .c-wine__intro {
  margin-top: 11.4mm;
}

.c-wines--natural .c-wine__intro {
  margin: 9.1mm 0 0 5.6mm;
  font-size: 3.5mm;
  line-height: 3.95mm;
}

.p-page--wine:has(.c-wines--glass) .c-lead--natural-text {
  translate: -4.3mm 0;
  margin-top: 15.9mm;
  font-size: 3.1mm;
  line-height: 3.6mm;
}

.p-page--wine:has(.c-wines--glass) .c-images--grapes {
  top: 237.4mm;
  right: 3.9mm;
  bottom: auto;
  width: 27.1mm;
}

.p-page--wine:has(.c-wines--glass) .c-images--grapes img {
  width: 100%;
  height: 39.7mm;
}

/* Red Wine: 1行1本の一覧（2・3枚目）。
   1行の高さ・列の位置は元のメニューで測った値。3枚目（#wine-3）は値が少し違う */
.p-page--wine:has(.c-wines--red) {
  --card: 44.2mm;
  --dd: 14.5mm;
  --intro: 117.4mm;
  --spec: 5.8mm;
  --intro-lh: 3.5mm;
  --intro-fs: 3.1mm;
  --name-gap: 1.5mm;
  --spec-top: 0.35mm;
  --intro-top: 6.5mm;
  padding: 0 8.4mm 0 8.9mm;
}

#wine-3 {
  --card: 39mm;
  --dd: 17.9mm;
  --intro: 114.6mm;
  --spec: 5.7mm;
  --intro-lh: 3.7mm;
  --intro-fs: 3.3mm;
  --name-gap: 2mm;
  --spec-top: 1.15mm;
  --intro-top: 5.3mm;
  padding-top: 13.9mm;
}

.p-page--wine .c-section:has(.c-wines--red) {
  grid-template-columns: 1fr;
}

.p-page--wine:has(.c-wines--red) .c-heading {
  translate: -6.45mm 0;
  margin: 10.2mm 0 12.1mm;
  font-size: 6.7mm;
  line-height: 11.6mm;
}

.c-wines--red .c-wine {
  position: relative;
  grid-template-columns: 37.3mm calc(var(--intro) - 37.3mm) 1fr;
  grid-template-rows: 9.8mm 1fr;
  grid-template-areas:
    ". name price"
    ". spec intro";
  gap: 0;
  height: var(--card);
  margin: 0;
}

.c-wines--red .c-wine__flag,
.c-wines--red .c-wine__photo {
  position: absolute;
  max-height: none;
  margin: 0;
}

.c-wines--red .c-wine__name,
.c-wines--red .c-wine__spec-row--price {
  align-self: stretch;
  margin: 0;
  padding: 0 0 var(--name-gap);
  border-bottom: 1.1mm double #e79a9a;
}

.c-wines--red .c-wine__name {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 0 5.6mm calc(var(--name-gap) - 1.5mm) 0;
  font-size: 3.7mm;
  line-height: 4.6mm;
  letter-spacing: 0;
}

.c-wines--red .c-wine__spec {
  display: contents;
}

.c-wines--red .c-wine__spec-row--price {
  grid-area: price;
  align-items: flex-end;
  gap: 0;
  padding-left: 2.4mm;
  font-size: 3.3mm;
  line-height: 4.4mm;
}

.c-wines--red .c-wine__spec-row.c-wine__spec-row--price dt {
  width: auto;
  margin-right: 2.6mm;
  letter-spacing: 0;
}

.c-wines--red .c-wine__spec-row--price .c-price {
  font-weight: inherit;
}

.c-wines--red .c-wine__spec-row--price .c-price__main {
  min-width: 0;
  text-align: left;
}

.c-wines--red .c-wine__spec-row--price dd {
  flex: 1;
}

.c-wines--red .c-wine__spec-row--price .c-price {
  display: grid;
  grid-template-columns: 25.5mm auto;
}

.c-wines--red .c-wine__spec-row--price .c-price__tax {
  margin: 0;
}

/* 産地・品種・風味は名前の列の下に縦に並べる */
.c-wines--red .c-wine__spec-row--region,
.c-wines--red .c-wine__spec-row--grape,
.c-wines--red .c-wine__spec-row--taste {
  grid-area: spec;
  align-self: start;
  gap: 0;
  margin: 0;
  padding: 0 0 0 3.9mm;
  font-size: 3.4mm;
  line-height: var(--spec);
  letter-spacing: 0;
}

.c-wines--red .c-wine__spec-row--region { margin-top: var(--spec-top); }
.c-wines--red .c-wine__spec-row--grape { margin-top: calc(var(--spec-top) + var(--spec)); }
.c-wines--red .c-wine__spec-row--taste { margin-top: calc(var(--spec-top) + var(--spec) * 2); }

.c-wines--red .c-wine__spec-row dt {
  flex: none;
  width: var(--dd);
  letter-spacing: 0.5em;
}

/* 3枚目は元のメニューの字が詰まっている（プロポーショナル書体） */
#wine-3 .c-wine__name,
#wine-3 .c-wine__spec-row,
#wine-3 .c-wine__intro {
  letter-spacing: -0.06em;
}

.c-wines--red .c-wine__intro {
  align-self: start;
  margin: var(--intro-top) 0 0;
  font-size: var(--intro-fs);
  line-height: var(--intro-lh);
}

.c-wines--red .c-wine:nth-child(1) .c-wine__flag { left: 0.0mm; top: 3.3mm; width: 13.1mm; height: 8.8mm; }
.c-wines--red .c-wine:nth-child(1) .c-wine__photo { left: 20.5mm; top: 9.4mm; width: 7.0mm; height: 24.8mm; }
.c-wines--red .c-wine:nth-child(2) .c-wine__flag { left: -0.1mm; top: 4.0mm; width: 13.1mm; height: 8.8mm; }
.c-wines--red .c-wine:nth-child(2) .c-wine__photo { left: 18.3mm; top: 1.7mm; width: 10.5mm; height: 31.8mm; }
.c-wines--red .c-wine:nth-child(3) .c-wine__flag { left: -0.6mm; top: 2.4mm; width: 13.6mm; height: 9.2mm; }
.c-wines--red .c-wine:nth-child(3) .c-wine__photo { left: 17.3mm; top: 0.5mm; width: 11.8mm; height: 33.0mm; }
.c-wines--red .c-wine:nth-child(4) .c-wine__flag { left: -0.1mm; top: 4.2mm; width: 13.1mm; height: 8.7mm; }
.c-wines--red .c-wine:nth-child(4) .c-wine__photo { left: 4.5mm; top: 2.4mm; width: 37.0mm; height: 35.5mm; }
.c-wines--red .c-wine:nth-child(5) .c-wine__flag { left: -0.3mm; top: 2.5mm; width: 13.4mm; height: 8.7mm; }
.c-wines--red .c-wine:nth-child(5) .c-wine__photo { left: 15.8mm; top: -8.3mm; width: 13.9mm; height: 39.1mm; }
.c-wines--red .c-wine:nth-child(6) .c-wine__flag { left: 0.2mm; top: 1.7mm; width: 13.3mm; height: 8.3mm; }
.c-wines--red .c-wine:nth-child(6) .c-wine__photo { left: 15.6mm; top: -3.0mm; width: 14.3mm; height: 34.9mm; }

#wine-3 .c-wines--red .c-wine:nth-child(1) .c-wine__flag { left: 0.4mm; top: 5.7mm; width: 14.2mm; height: 9.4mm; }
#wine-3 .c-wines--red .c-wine:nth-child(1) .c-wine__photo { left: 19.5mm; top: -1.2mm; width: 13.4mm; height: 35.6mm; }
#wine-3 .c-wines--red .c-wine:nth-child(2) .c-wine__flag { left: 0.4mm; top: 4.9mm; width: 14.8mm; height: 8.4mm; }
#wine-3 .c-wines--red .c-wine:nth-child(2) .c-wine__photo { left: 20.5mm; top: 1.6mm; width: 11.1mm; height: 34.6mm; }
#wine-3 .c-wines--red .c-wine:nth-child(3) .c-wine__flag { left: 1.1mm; top: 4.3mm; width: 14.8mm; height: 8.4mm; }
#wine-3 .c-wines--red .c-wine:nth-child(3) .c-wine__photo { left: 20.9mm; top: 2.2mm; width: 9.7mm; height: 31.2mm; }
#wine-3 .c-wines--red .c-wine:nth-child(4) .c-wine__flag { left: 0.6mm; top: 3.5mm; width: 14.6mm; height: 9.3mm; }
#wine-3 .c-wines--red .c-wine:nth-child(4) .c-wine__photo { left: 21.0mm; top: 0.4mm; width: 8.5mm; height: 33.5mm; }
#wine-3 .c-wines--red .c-wine:nth-child(5) .c-wine__flag { left: 0.3mm; top: 2.8mm; width: 14.8mm; height: 8.6mm; }
#wine-3 .c-wines--red .c-wine:nth-child(5) .c-wine__photo { left: 13.8mm; top: -0.1mm; width: 22.9mm; height: 34.1mm; }
#wine-3 .c-wines--red .c-wine:nth-child(6) .c-wine__flag { left: 1.1mm; top: 5.0mm; width: 14.2mm; height: 9.3mm; }
#wine-3 .c-wines--red .c-wine:nth-child(6) .c-wine__photo { left: 19.7mm; top: 0.4mm; width: 11.4mm; height: 33.6mm; }
#wine-3 .c-wines--red .c-wine:nth-child(7) .c-wine__flag { left: 2.1mm; top: 7.1mm; width: 14.8mm; height: 8.6mm; }
#wine-3 .c-wines--red .c-wine:nth-child(7) .c-wine__photo { left: 18.1mm; top: 0.7mm; width: 14.8mm; height: 33.6mm; }

/* White / Sparkling（4枚目）: 2列のカード。左右のカードは行の高さをそろえる（subgrid） */
.p-page--wine:has(.c-wines--white) {
  padding: 0 0 0 15.3mm;
}

.p-page--wine .c-section:has(.c-wines--white),
.p-page--wine .c-section:has(.c-wines--sparkling) {
  grid-template-columns: 93.8mm 1fr;
  gap: 0;
}

.p-page--wine:has(.c-wines--white) .c-heading {
  margin: 0;
  font-size: 5.6mm;
  line-height: 8mm;
}

.p-page--wine .c-heading--white {
  translate: -4.5mm 0;
  margin-top: 6.1mm !important;
  margin-bottom: 4.9mm !important;
}

.p-page--wine .c-heading--sparkling {
  translate: -5.5mm 0;
  margin-top: 4.3mm !important;
  margin-bottom: 4.6mm !important;
  font-size: 5.6mm !important;
}

.c-wines--white .c-wine,
.c-wines--sparkling .c-wine {
  position: relative;
  grid-row: span 3;
  grid-template-columns: 21.9mm 1fr;
  grid-template-rows: subgrid;
  grid-template-areas:
    "name name"
    ". spec"
    ". intro";
  gap: 0;
  margin: 0 0 9.3mm;
}

/* 行の間の空きは、元のメニューでは行ごとに少しずつ違う */
.c-wines--white .c-wine:nth-child(-n + 2) { margin-bottom: 11.4mm; }
.c-wines--white .c-wine:nth-child(3),
.c-wines--white .c-wine:nth-child(4) { margin-bottom: 8.5mm; }
.c-wines--sparkling .c-wine:nth-child(-n + 2) { margin-bottom: 10.5mm; }
.c-wines--sparkling .c-wine:nth-child(3),
.c-wines--sparkling .c-wine:nth-child(4) { margin-bottom: 7.7mm; }

.c-wines--white .c-wine__flag,
.c-wines--white .c-wine__photo,
.c-wines--sparkling .c-wine__flag,
.c-wines--sparkling .c-wine__photo {
  position: absolute;
  max-height: none;
  margin: 0;
}

.c-wines--white .c-wine__name,
.c-wines--sparkling .c-wine__name {
  justify-self: start;
  align-self: stretch;
  width: 55.6mm;
  min-height: 7.2mm;
  margin: 0 0 0 23.6mm;
  padding: 0 0 1mm;
  border-bottom: 0.9mm double #b6cfa2;
  font-size: 2.9mm;
  line-height: 3.4mm;
  letter-spacing: 0;
  white-space: nowrap;
}

/* 枠より長い名前は、左右均等にはみ出させる（元のメニューと同じ） */
.c-wines--white .c-wine__name,
.c-wines--sparkling .c-wine__name {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.c-wines--sparkling .c-wine__name {
  border-bottom-color: #a8badf;
}

.c-wines--white .c-wine__spec,
.c-wines--sparkling .c-wine__spec {
  gap: 0;
  margin: -0.9mm 0 0;
  padding: 0 0 0 3.5mm;
  font-size: 2.7mm;
  line-height: 4.5mm;
  letter-spacing: 0;
}

.c-wines--white .c-wine__spec-row,
.c-wines--sparkling .c-wine__spec-row {
  gap: 0;
  white-space: nowrap;
}

.c-wines--white .c-wine__spec-row dt,
.c-wines--sparkling .c-wine__spec-row dt {
  flex: none;
  width: 11.6mm;
  letter-spacing: 0.4em;
}

.c-wines--white .c-wine__spec .c-price__main,
.c-wines--sparkling .c-wine__spec .c-price__main {
  min-width: 17mm;
  text-align: left;
}

.c-wines--white .c-wine__spec .c-price__tax,
.c-wines--sparkling .c-wine__spec .c-price__tax {
  margin: 0;
}

.c-wines--white .c-wine__intro,
.c-wines--sparkling .c-wine__intro {
  margin: 2.2mm 0 0;
  font-size: 2.55mm;
  line-height: 2.85mm;
  letter-spacing: 0;
}

.c-wines--white .c-wine:nth-child(1) .c-wine__flag { left: 0.3mm; top: 2.9mm; width: 10.6mm; height: 7.3mm; }
.c-wines--white .c-wine:nth-child(1) .c-wine__photo { left: 12mm; top: 7.3mm; width: 7.4mm; height: 24.1mm; }
.c-wines--white .c-wine:nth-child(2) .c-wine__flag { left: 0.8mm; top: 3.4mm; width: 11mm; height: 6.4mm; }
.c-wines--white .c-wine:nth-child(2) .c-wine__photo { left: 12.7mm; top: 7.3mm; width: 7.4mm; height: 28.7mm; }
.c-wines--white .c-wine:nth-child(3) .c-wine__flag { left: 0.4mm; top: -0.1mm; width: 10.6mm; height: 8.5mm; }
.c-wines--white .c-wine:nth-child(3) .c-wine__photo { left: 11mm; top: 7.3mm; width: 9.4mm; height: 29.8mm; }
.c-wines--white .c-wine:nth-child(4) .c-wine__flag { left: 0mm; top: 0.8mm; width: 10.8mm; height: 7.2mm; }
.c-wines--white .c-wine:nth-child(4) .c-wine__photo { left: 9.8mm; top: 3.8mm; width: 11.6mm; height: 32.7mm; }
.c-wines--white .c-wine:nth-child(5) .c-wine__flag { left: 0.4mm; top: 0.4mm; width: 10.6mm; height: 7.5mm; }
.c-wines--white .c-wine:nth-child(5) .c-wine__photo { left: 11mm; top: 5.8mm; width: 9.4mm; height: 31.5mm; }
.c-wines--sparkling .c-wine:nth-child(1) .c-wine__flag { left: -0.1mm; top: 0.3mm; width: 10.7mm; height: 7mm; }
.c-wines--sparkling .c-wine:nth-child(1) .c-wine__photo { left: 12.2mm; top: 9.3mm; width: 8mm; height: 25.2mm; }
.c-wines--sparkling .c-wine:nth-child(2) .c-wine__flag { left: -0.1mm; top: -3.3mm; width: 14mm; height: 5.2mm; }
.c-wines--sparkling .c-wine:nth-child(2) .c-wine__photo { left: 12.7mm; top: 6mm; width: 8.4mm; height: 22mm; }
.c-wines--sparkling .c-wine:nth-child(3) .c-wine__flag { left: 0mm; top: 3.2mm; width: 11mm; height: 7.2mm; }
.c-wines--sparkling .c-wine:nth-child(3) .c-wine__photo { left: 11.8mm; top: 7.3mm; width: 8.8mm; height: 29.1mm; }
.c-wines--sparkling .c-wine:nth-child(4) .c-wine__flag { left: -0.1mm; top: 3.2mm; width: 14mm; height: 7.4mm; }
.c-wines--sparkling .c-wine:nth-child(4) .c-wine__photo { left: 12.7mm; top: 7.2mm; width: 8.4mm; height: 28.6mm; }
.c-wines--sparkling .c-wine:nth-child(5) .c-wine__flag { left: 0.4mm; top: 3.1mm; width: 10.6mm; height: 7.5mm; }
.c-wines--sparkling .c-wine:nth-child(5) .c-wine__photo { left: 12mm; top: 4.1mm; width: 8.4mm; height: 31mm; }

/* 最後のカードの下の空きでA4からはみ出さないようにする（瓶の写真は絶対配置なので高さに入らない） */
.c-wines--red .c-wine:last-child {
  height: auto;
}

.c-wines--sparkling .c-wine:last-child {
  margin-bottom: 0;
}

/* =========================================================
   碧 銀座三越店・紺（しゃぶしゃぶ）のページ
   現行のPDFほど作り込まず、同じ型（見出し・価格の一覧・重量の表・ワインのカード）で読みやすく組む。
   ========================================================= */

@font-face {
  font-family: "Hannari Mincho";
  src: url("fonts/hannari/HannariMincho-Regular.otf") format("opentype");
  font-display: block;
}

.p-page[class*="p-page--ginza-"],
.p-page[class*="p-page--kou-"] {
  --ink: #1f2233;
  --accent: #1d3f94;
  --rule: #c9cfe0;
  padding: 14mm 16mm 12mm;
  font-family: var(--f-mincho);
  font-weight: 600;
  color: var(--ink);
}

/* 紺は、はんなり明朝と紺色 */
.p-page[class*="p-page--kou-"] {
  --accent: #23305e;
  --rule: #d6d2c4;
  font-family: "Hannari Mincho", var(--f-mincho);
  font-weight: 400;
}

.p-page[class*="p-page--ginza-"] .p-page__title,
.p-page[class*="p-page--kou-"] .p-page__title {
  align-self: stretch;
  margin-bottom: 5mm;
  padding-bottom: 2mm;
  border-bottom: 0.4mm solid var(--accent);
  font-size: 6.4mm;
  letter-spacing: 0.12em;
  text-align: center;
  color: var(--accent);
}

.p-page[class*="p-page--ginza-"] .c-lead,
.p-page[class*="p-page--kou-"] .c-lead {
  font-size: 3.7mm;
  line-height: 1.75;
  text-align: center;
}

.p-page[class*="p-page--ginza-"] .c-lead--option {
  margin-top: 1.5mm;
  font-size: 3.4mm;
  text-align: left;
}

.p-page[class*="p-page--ginza-"] .c-heading,
.p-page[class*="p-page--kou-"] .c-heading {
  margin: 4.5mm 0 1.5mm;
  padding-left: 2.5mm;
  border-left: 1.2mm solid var(--accent);
  font-size: 4.3mm;
  line-height: 1.35;
  color: var(--accent);
}

.p-page[class*="p-page--ginza-"] .c-note,
.p-page[class*="p-page--kou-"] .c-note {
  margin: 1mm 0;
  font-size: 3mm;
  font-weight: 500;
  line-height: 1.6;
}

.p-page[class*="p-page--ginza-"] .c-note--allergy {
  margin-top: auto;
  padding-top: 4mm;
  text-align: center;
}

/* 価格の一覧（品名 … 価格） */
.p-page[class*="p-page--ginza-"] .c-price-table table,
.p-page[class*="p-page--kou-"] .c-price-table table {
  width: 100%;
  border-collapse: collapse;
}

.p-page[class*="p-page--ginza-"] .c-price-table--single .c-price-table__row > *,
.p-page[class*="p-page--kou-"] .c-price-table--single .c-price-table__row > * {
  padding: 1.2mm 0;
  border-bottom: 0.25mm dotted var(--rule);
  font-size: 3.7mm;
  line-height: 1.45;
  vertical-align: baseline;
}

.p-page[class*="p-page--ginza-"] .c-price-table__price,
.p-page[class*="p-page--kou-"] .c-price-table__price {
  width: 1%;
  padding-left: 4mm !important;
  font-weight: 500;
  text-align: right;
  white-space: nowrap;
}

.p-page[class*="p-page--ginza-"] .c-item,
.p-page[class*="p-page--kou-"] .c-item {
  display: flex;
  gap: 1.5mm;
}

.p-page[class*="p-page--ginza-"] .c-item--group .c-item__name {
  display: grid;
}

.p-page[class*="p-page--ginza-"] .c-no {
  flex: none;
  min-width: 7mm;
  font-weight: 500;
  text-align: right;
}

.p-page[class*="p-page--ginza-"] .c-item__desc,
.p-page[class*="p-page--kou-"] .c-item__desc {
  display: block;
  font-size: 0.8em;
  font-weight: 400;
}

.p-page[class*="p-page--ginza-"] .c-price-list,
.p-page[class*="p-page--kou-"] .c-price-list {
  display: grid;
  gap: 0.6mm;
}

.p-page[class*="p-page--ginza-"] .c-price-list__item,
.p-page[class*="p-page--kou-"] .c-price-list__item {
  display: flex;
  gap: 2.5mm;
  justify-content: flex-end;
}

.p-page[class*="p-page--ginza-"] .c-price-list__form,
.p-page[class*="p-page--kou-"] .c-price-list__form {
  font-size: 0.85em;
}

.p-page[class*="p-page--ginza-"] .c-price__tax,
.p-page[class*="p-page--kou-"] .c-price__tax {
  margin-left: 1.5mm;
  font-size: 0.72em;
}

/* 重量の表（銀座のグランド・ステーキセット） */
.c-price-table--ginza-grand,
.c-price-table--ginza-steakset {
  margin-top: 2mm;
}

.p-page[class*="p-page--ginza-"] .c-price-table--matrix table {
  table-layout: fixed;
}

.p-page[class*="p-page--ginza-"] .c-price-table--matrix thead th,
.p-page[class*="p-page--ginza-"] .c-price-table--matrix thead td {
  padding: 1.5mm 0;
  border-bottom: 0.4mm solid var(--accent);
  font-size: 3.4mm;
  font-weight: 500;
  text-align: center;
}

.p-page[class*="p-page--ginza-"] .c-price-table--matrix thead .c-price-table__unit {
  width: 38%;
  text-align: left;
}

.p-page[class*="p-page--ginza-"] .c-price-table--matrix tbody > tr > * {
  padding: 1.8mm 0;
  border-bottom: 0.25mm dotted var(--rule);
  font-size: 3.6mm;
  line-height: 1.4;
  vertical-align: middle;
}

.p-page[class*="p-page--ginza-"] .c-price-table--matrix .c-price-table__price {
  width: auto;
  padding-left: 0 !important;
  text-align: center;
}

.p-page[class*="p-page--ginza-"] .c-price--stacked {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
}

.p-page[class*="p-page--ginza-"] .c-price--stacked .c-price__tax {
  margin: 0;
}

.p-page[class*="p-page--ginza-"] .c-price-table__group th {
  padding: 3mm 0 0.5mm;
  font-size: 3.6mm;
  color: var(--accent);
}

/* ワイン（銀座）: 2列のカード */
.p-page--ginza-wine .c-section {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3mm 6mm;
}

.p-page--ginza-wine .c-section > .c-heading {
  grid-column: 1 / -1;
}

.p-page--ginza-wine .c-wines {
  display: contents;
}

.p-page--ginza-wine .c-wine {
  grid-template-columns: 13mm 1fr;
  grid-template-areas:
    "flag name"
    "spec spec"
    "intro intro";
  gap: 1mm 2mm;
  margin: 0;
}

.p-page--ginza-wine .c-wine__flag {
  width: 11mm;
  height: 7.5mm;
}

.p-page--ginza-wine .c-wine__name {
  margin: 0;
  padding-bottom: 1mm;
  font-size: 3.3mm;
  text-align: left;
}

.p-page--ginza-wine .c-wine__spec {
  gap: 0.3mm;
  font-size: 2.8mm;
}

.p-page--ginza-wine .c-wine__spec-row dt {
  min-width: 10mm;
  letter-spacing: 0.3em;
}

.p-page--ginza-wine .c-wine__intro {
  margin: 0;
  font-size: 2.6mm;
  font-weight: 400;
  line-height: 1.45;
}

/* 紺: 価格の一覧を詰めて、1ページに収める */
.p-page[class*="p-page--kou-"] .c-price-table--single .c-price-table__row > * {
  padding: 0.8mm 0;
  font-size: 3.5mm;
}

.p-page[class*="p-page--kou-"] .c-heading {
  margin-top: 3.5mm;
}

.p-page--kou-drink .c-price-table--single .c-price-table__row > * {
  padding: 0.4mm 0;
  font-size: 3.1mm;
  line-height: 1.35;
}

.p-page--kou-drink .c-heading {
  margin: 2.5mm 0 0.8mm;
  font-size: 3.8mm;
}

/* 銀座のお飲物は、元のメニューと同じく1枚に収める */
.p-page--ginza-drink .c-price-table--single .c-price-table__row > * {
  padding: 0.5mm 0;
  font-size: 3.3mm;
  line-height: 1.35;
}

.p-page--ginza-drink .c-heading {
  margin: 2.5mm 0 0.6mm;
  font-size: 3.8mm;
}

.p-page--ginza-drink .c-note {
  margin: 0.3mm 0;
  font-size: 2.7mm;
}
