/* =========================================================
   鯉艸郷クリスマスマーケット（/christmas。発注書 S37 X）
   色は既存のトークンだけ：白地に淡い青紫（--c-fuji-pale を白と混ぜた面）と紺の文字（--c-ai・--c-ai-deep）で冬らしく。
   赤・緑のベタ塗り・新しい絵・アニメーション・新しい書体は使わない（ランタンの絵 deco-lantern は既存のもの。浮かせない）。
   年配向け：このページの本文は 18px（× 文字の大きさ）、主なボタンは高さ 56px 以上。
   出店料の表は SP で行ごとのカード（キャンセルポリシーの .cancel-table と同じ作り。項目名は td の data-label）
   ========================================================= */

/* 頭：淡い青紫と白の色面（tone="snow"） */
.phead--snow{
  --tone:var(--c-fuji-pale);
  --tone:color-mix(in srgb, var(--c-fuji-pale) 70%, #fff);
  background:linear-gradient(180deg, #fff 0%, color-mix(in srgb, var(--c-fuji-pale) 45%, #fff) 100%);
}
.phead--snow .phead__title{ color:var(--c-ai-deep); }
.phead--snow .phead__lead{ font-size:calc(18px * var(--fs)); color:var(--c-ink); }
.phead--snow .phead__ill{ animation:none; }
.xmas-greet{
  margin:18px 0 0; font-family:var(--ff-en); font-style:italic; font-weight:600;
  font-size:calc(20px * var(--fs)); line-height:1.5; letter-spacing:.04em; color:var(--c-ai);
}
.xmas-jump .btn{ min-height:56px; font-size:calc(18px * var(--fs)); }

/* ページ全体：本文 18px（--t-body を使う部品：.pcard p・.plist・.dtable・.btn など） */
.xmas{ --t-body:calc(18px * var(--fs)); --snow:color-mix(in srgb, var(--c-fuji-pale) 55%, #fff); background:#fff; }
.xmas .btn,.xmas .btn-line{ min-height:56px; }
.xmas .btn--tel{ font-size:calc(20px * var(--fs)); }
.xmas .sec-lead{ font-size:var(--t-body); }
.xmas .pcard__title{ font-size:calc(20px * var(--fs)); color:var(--c-ai-deep); }
.xmas .num{ font-family:var(--ff-en); font-weight:700; font-variant-numeric:tabular-nums; white-space:nowrap; }
.xmas-band{ background:var(--c-fuji-pale); background:var(--snow); }
.xmas-card{ border:1px solid var(--rule); }
.xmas-sub{ font-size:calc(16px * var(--fs)) !important; color:var(--c-ink-sub); line-height:1.8; }
.xmas-cap{ margin:10px 4px 0; font-size:calc(16px * var(--fs)); color:var(--c-ink-sub); }
.xmas-h3{ margin:0 0 10px; font-size:calc(19px * var(--fs)); color:var(--c-ai-deep); letter-spacing:.06em; }
.xmas-h4{ margin:18px 0 8px; font-size:calc(18px * var(--fs)); color:var(--c-ai); letter-spacing:.06em; }
.xmas-ext{ margin:0 auto 0 -6px; font-family:var(--ff-en); font-weight:700; }

/* 概要 */
.xmas-about{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.1fr); gap:clamp(20px, 3vw, 40px); align-items:start; }
.xmas-about__photo{ margin:0; }
.xmas-about__photo .frame{ aspect-ratio:4/3; }
.xmas-about__photo .frame > .ph{ position:absolute; inset:0; aspect-ratio:auto; height:100%; }
.xmas-about__text{ color:var(--c-ai-deep); font-weight:700; }
.xmas-dl{ margin:0 0 16px; padding:0; }
.xmas-dl > div{ display:grid; grid-template-columns:5.5em minmax(0,1fr); gap:12px; padding:12px 0; border-bottom:1px solid var(--rule); }
.xmas-dl > div:first-child{ border-top:1px solid var(--rule); }
.xmas-dl dt{ font-weight:700; color:var(--c-ai); font-size:var(--t-body); }
.xmas-dl dd{ margin:0; font-size:var(--t-body); line-height:1.8; }
.xmas-dl__strong dd{ font-weight:700; color:var(--c-ai-deep); }
.xmas-fireworks{ padding:10px 16px; border-radius:var(--radius-m); background:var(--snow); color:var(--c-ai-deep); font-weight:700; }

/* 来場される方へ */
.xmas-grid{ display:grid; grid-template-columns:repeat(auto-fit, minmax(min(100%, 340px), 1fr)); gap:20px; align-items:start; }
.xmas-grid--2{ grid-template-columns:repeat(auto-fit, minmax(min(100%, 400px), 1fr)); }
.xmas-grid .pcard + .pcard{ margin-top:0; }
.xmas-grid + .pcard,.pcard + .xmas-grid,.xmas-grid + .xmas-flyers,.pcard + .xmas-flyers{ margin-top:20px; }
.xmas-fee th,.xmas-fee td{ font-size:var(--t-body); }
.xmas-fee td{ text-align:right; }
.xmas-note{ margin-top:10px !important; }
.xmas-list{ margin:4px 0 16px; }
.xmas-notes{ margin:16px 0 0; padding:0 0 0 1.2em; font-size:calc(16px * var(--fs)); line-height:1.8; color:var(--c-ink-sub); }
.xmas-notes--strong{ color:var(--c-ink); font-size:var(--t-body); }
.xmas-notes--strong li{ margin-bottom:4px; }
.xmas-tickets{ margin-top:20px; }
.xmas-tickets__list{ display:grid; grid-template-columns:repeat(auto-fit, minmax(min(100%, 260px), 1fr)); gap:16px; margin:8px 0 0; padding:0; list-style:none; }
.xmas-ticket{ display:flex; flex-direction:column; gap:8px; padding:20px; border-radius:var(--radius-m); background:var(--snow); }
.xmas-ticket__name{ margin:0 !important; font-weight:700; color:var(--c-ai-deep); }
.xmas-ticket__price{ margin:0 0 6px !important; font-size:calc(18px * var(--fs)) !important; }
.xmas-ticket__price .num{ font-size:calc(30px * var(--fs)); color:var(--c-ai-deep); margin-right:2px; }
.xmas-ticket__btn{ margin-top:auto; justify-content:space-between; font-size:calc(18px * var(--fs)); }
.xmas-access{ display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:8px 32px; margin-top:20px; }
.xmas-access .pbtns{ margin-top:0; }

/* クラウドファンディング */
.xmas-funding{ max-width:960px; margin:0 auto; }
.xmas-funding__project{ margin:0 0 18px !important; font-size:calc(22px * var(--fs)) !important; font-weight:700; line-height:1.6 !important; color:var(--c-ai-deep); letter-spacing:.04em; }
.xmas-funding__cols{ display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:24px; margin-top:20px; }
.xmas-steps{ margin:0; padding:0; list-style:none; counter-reset:step; display:grid; gap:10px; }
.xmas-steps li{ counter-increment:step; display:flex; align-items:center; gap:12px; font-size:var(--t-body); line-height:1.6; }
.xmas-steps li::before{ content:counter(step); flex:none; display:grid; place-items:center; width:36px; height:36px; border-radius:50%; background:var(--c-ai); color:#fff; font-family:var(--ff-en); font-weight:700; }
.xmas-support{ font-size:calc(20px * var(--fs)); min-height:64px; padding-left:36px; }
.xmas-funding .pbtns{ margin-top:32px; }

/* 出店したい方へ */
.xmas-vfee th,.xmas-vfee td{ font-size:var(--t-body); }
.xmas-vfee td{ text-align:right; }
.xmas-vfee thead th{ font-size:calc(16px * var(--fs)); white-space:normal; }
.xmas-chips{ display:flex; flex-wrap:wrap; gap:8px; margin:0; padding:0; list-style:none; }
.xmas-chips li{ padding:6px 14px; border-radius:var(--radius-pill); background:var(--snow); color:var(--c-ai-deep); font-size:calc(17px * var(--fs)); line-height:1.6; }
.xmas-rule{ margin-top:16px !important; padding:12px 16px; border:1px solid var(--rule); border-radius:var(--radius-m); background:#fff; }
.xmas-apply{ margin-top:20px; }
/* 出店料とクラウドファンディング（発注書 S37 X4） */
.xmas-vsupport{ margin-top:20px; border:1.5px solid var(--c-ai); border-radius:var(--radius-m); padding:16px; background:#fff; }
.xmas-vsupport__main{ font-weight:700; color:var(--c-ai-deep); }
.xmas-vsupport__example{ padding:12px 16px; border-radius:var(--radius-m); background:var(--snow); }
.xmas-terms{ text-align:center; }
.xmas-flyers__list{ display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:20px; margin:12px 0 0; padding:0; list-style:none; }
.xmas-flyer{ display:block; text-decoration:none; color:var(--c-ai); }
.xmas-flyer .ph{ aspect-ratio:auto; border:6px solid #fff; border-radius:var(--radius-m); box-shadow:var(--shadow-card); background:#fff; }
.xmas-flyer .ph__img{ position:static; height:auto; object-fit:contain; }
.xmas-flyer__label{ display:block; margin-top:8px; font-weight:700; font-size:var(--t-body); text-align:center; }
.xmas-flyer:hover .xmas-flyer__label{ text-decoration:underline; }

/* お問い合わせ・関連ページ */
.xmas .ev-links__link{ min-height:56px; font-size:var(--t-body); }

@media (max-width:767px){
  .xmas{ --t-body:calc(18px * var(--fs)); }
  .xmas-about{ grid-template-columns:minmax(0,1fr); }
  .xmas-dl > div{ grid-template-columns:minmax(0,1fr); gap:2px; padding:10px 0; }
  .xmas-funding__cols{ grid-template-columns:minmax(0,1fr); }
  .xmas-funding__project{ font-size:calc(20px * var(--fs)) !important; }
  .xmas .pbtns{ flex-direction:column; align-items:stretch; }
  .xmas .pbtns .btn,.xmas .pbtns .btn-line{ justify-content:space-between; }
  .xmas .pbtns .btn-line{ justify-content:center; white-space:normal; }
  .xmas-support{ font-size:calc(18px * var(--fs)); padding-left:24px; }
  .xmas-flyers__list{ grid-template-columns:minmax(0,1fr); }
  .xmas-greet{ font-size:calc(18px * var(--fs)); }

  /* 出店料の表 → 行ごとのカード */
  .xmas-vfee{ display:block; background:transparent; box-shadow:none; border-radius:0; overflow:visible; }
  .xmas-vfee thead{ display:none; }
  .xmas-vfee tbody{ display:grid; gap:14px; }
  .xmas-vfee tr{ display:block; background:#fff; border-radius:var(--radius-m); box-shadow:var(--shadow-card); overflow:hidden; }
  .xmas-vfee tbody th{ display:block; padding:12px 16px; background:var(--c-ai); color:#fff; white-space:normal; border-bottom:0; }
  .xmas-vfee tbody tr > td{ display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:baseline; gap:12px; padding:12px 16px; text-align:left; border-bottom:0; white-space:normal; }
  .xmas-vfee tbody tr > td:not(:last-child){ border-bottom:1px solid var(--rule); }
  .xmas-vfee td::before{ content:attr(data-label); white-space:normal; font-family:var(--ff-body); font-weight:700; color:var(--c-ai); font-size:calc(16px * var(--fs)); line-height:1.6; }
}
