/* =========================================================
   SITE 115 — CONCAFE MENU & GOODS / デザイントークン
   配色: アイボリー #FFF9F1 / コーラル #E2736A / ブルー #5B7DB5 / チャコール #30343A
   書体: Poppins + Noto Sans JP（システムフォールバック必須）
   角丸: 8px に統一（0/4/8/12/16 のうち 8 を採用。混在させない）
   影  : 2段階まで
   文字の載る面はコントラスト実測（下記コメント）で 4.5:1 を満たす組み合わせのみ使用する。
   ========================================================= */
:root {
  /* --- 基本色 --- */
  --c-ivory: #fff9f1;
  --c-ivory-100: #fef3e6;
  --c-ivory-band: #fdf0e3;
  --c-coral: #e2736a;          /* 装飾・アイコン・大きい要素専用（本文文字色には使わない） */
  --c-coral-tint: #fbe4e1;
  --c-coral-strong: #b23f38;   /* 対 白 = 5.7:1（本文リンク・ボタン文字用） */
  --c-blue: #5b7db5;           /* 装飾・アイコン専用 */
  --c-blue-tint: #e6ecf6;
  --c-blue-strong: #3f5c8f;    /* 対 白 = 6.7:1（本文リンク・二次ボタン用） */
  --c-charcoal: #30343a;

  /* --- 用途色 --- */
  --c-bg: var(--c-ivory);
  --c-bg-alt: var(--c-ivory-band);
  --c-surface: #ffffff;
  --c-ink: var(--c-charcoal);       /* 対 アイボリー ≈ 13.8:1 */
  --c-ink-muted: #565c66;           /* 対 アイボリー ≈ 7.2:1 */
  --c-accent: var(--c-coral);
  --c-accent-strong: var(--c-coral-strong);
  --c-accent-hover: #9c332d;
  --c-secondary: var(--c-blue);
  --c-secondary-strong: var(--c-blue-strong);
  --c-line: #e8dcd0;
  --c-line-strong: #d8c6b4;
  --c-focus: var(--c-coral-strong);
  --c-warn-bg: #fdf3e6;
  --c-warn-line: #e2c79a;
  --c-warn-ink: #7a4a11;
  --c-ok-bg: #eaf5ef;
  --c-ok-line: #a8cfb9;
  --c-ok-ink: #1f6b45;
  --c-error: #a3243f;               /* 対 白 = 7.5:1 */
  --c-error-bg: #fdeef1;
  --c-soldout-bg: #efe9e4;
  --c-soldout-ink: #6b6459;

  /* --- 書体 --- */
  --f-display: "Poppins", "Hiragino Sans", "Yu Gothic UI", "Meiryo", system-ui, sans-serif;
  --f-body: "Noto Sans JP", "Hiragino Sans", "Yu Gothic UI", "Meiryo", system-ui, sans-serif;

  /* --- 文字サイズ（14px 未満を作らない） --- */
  --fs-body: 1rem;         /* 16px */
  --fs-body-lg: 1.0625rem; /* 17px */
  --fs-note: 0.875rem;     /* 14px */
  --fs-label: 0.9375rem;   /* 15px */
  --fs-h1: clamp(1.75rem, 1.15rem + 2.2vw, 2.75rem);
  --fs-h2: clamp(1.375rem, 1.05rem + 1.2vw, 1.875rem);
  --fs-h3: clamp(1.125rem, 1rem + 0.5vw, 1.375rem);
  --fs-h4: 1.0625rem;
  --fs-hero: clamp(1.625rem, 1.15rem + 1.8vw, 2.5rem);
  --fs-eyebrow: 0.875rem; /* 14px。14px未満は作らない */

  /* --- 行間 --- */
  --lh-head: 1.32;
  --lh-body: 1.75;
  --lh-tight: 1.45;

  /* --- 余白 --- */
  --sp-1: 4px;
  --sp-2: 8px;
  --sp-3: 12px;
  --sp-4: 16px;
  --sp-5: 24px;
  --sp-6: 32px;
  --sp-7: 48px;
  --sp-8: 64px;
  --sp-9: 88px;

  /* --- 幅 --- */
  --w-container: 1200px;
  --w-narrow: 800px;
  --gutter: 20px;

  /* --- 角丸（8px 統一） --- */
  --r: 8px;
  --r-sm: 4px;

  /* --- 影（2段階まで） --- */
  --sh-1: 0 1px 2px rgba(48, 52, 58, 0.07), 0 2px 8px rgba(48, 52, 58, 0.05);
  --sh-2: 0 8px 26px rgba(48, 52, 58, 0.14);

  /* --- 部品寸法 --- */
  --h-header: 72px;
  --h-ctabar: 60px;
  --tap: 44px;
}

html { font-size: 100%; }

body {
  background: var(--c-bg);
  color: var(--c-ink);
  font-family: var(--f-body);
  font-size: var(--fs-body);
  line-height: var(--lh-body);
  font-weight: 400;
  letter-spacing: 0.01em;
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4 {
  font-family: var(--f-display);
  line-height: var(--lh-head);
  font-weight: 600;
  letter-spacing: 0.005em;
  color: var(--c-ink);
}

strong { font-weight: 700; }

a { text-decoration: none; }
a.textlink, .link { color: var(--c-coral-strong); text-decoration: underline; text-underline-offset: 2px; }
a.textlink:hover, .link:hover { color: var(--c-accent-hover); }

/* 数値・時刻・料金は等幅数字で揃える */
.num, time, .price, .tel { font-variant-numeric: tabular-nums; }
