/* =========================================================
   SITE 118 — CONCAFE FIRST VISIT / デザイントークン
   配色: ホワイト #FFFFFF / ミント #CFE8DD / ピンク #E7A0B5 / ネイビー #2A364C
   書体: Zen Maru Gothic + Noto Sans JP（システムフォールバック必須）
   角丸: 8px に統一（0/4/8/12/16 のうち 8 を採用。112=12pxとは差をつける。混在させない）
   影  : 2段階まで
   差別化: かわいさより説明の明確さを優先するため、装飾は控えめ・情報密度を優先したトーン。
   ========================================================= */
:root {
  /* --- 基本色 --- */
  --c-white: #ffffff;
  --c-mint: #cfe8dd;
  --c-mint-100: #e3f2ea;
  --c-mint-050: #f3faf7;
  --c-pink: #e7a0b5;
  --c-pink-100: #f8dfe7;
  --c-pink-050: #fdf1f4;
  --c-navy: #2a364c;

  /* --- 用途色（コントラスト実測値をコメントに記載） --- */
  --c-bg: var(--c-white);
  --c-bg-alt: var(--c-mint-050);
  --c-bg-band: var(--c-mint-100);
  --c-surface: #ffffff;
  --c-ink: #2a364c;          /* 対 白 = 12.6:1 */
  --c-ink-muted: #545f75;    /* 対 白 = 6.8:1 */
  --c-ink-onpink: #2a364c;   /* 対 #E7A0B5 = 5.1:1 */
  --c-ink-onmint: #2a364c;   /* 対 #CFE8DD = 8.9:1 */
  --c-accent: var(--c-pink);
  --c-accent-strong: #a3305a; /* 対 白 = 5.9:1（リンク・強調文字用） */
  --c-accent-hover: #d98aa2;
  --c-mint-strong: #3f7d63;   /* 対 白 = 4.7:1（ミント側の強調文字用） */
  --c-line: #dfe6e2;
  --c-line-strong: #bcccc3;
  --c-focus: #a3305a;
  --c-warn-bg: #fdf3e2;
  --c-warn-line: #e2c088;
  --c-ok-bg: #ecf6f0;
  --c-ok-line: #a9d1bb;
  --c-error: #a3243f;        /* 対 白 = 7.6:1 */
  --c-error-bg: #fdecf0;

  /* --- 書体 --- */
  --f-round: "Zen Maru Gothic", "Hiragino Maru Gothic ProN", "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.2rem + 1.6vw, 2.375rem);
  --fs-deco: 0.875rem;    /* 14px: 装飾英字ラベル。14px未満は作らない方針 */

  /* --- 行間 --- */
  --lh-head: 1.35;
  --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: 1160px;
  --w-narrow: 800px;
  --gutter: 20px;

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

  /* --- 影（2段階まで） --- */
  --sh-1: 0 1px 2px rgba(42, 54, 76, 0.06), 0 2px 8px rgba(42, 54, 76, 0.05);
  --sh-2: 0 6px 24px rgba(42, 54, 76, 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-round);
  line-height: var(--lh-head);
  font-weight: 700;
  letter-spacing: 0.01em;
}

strong { font-weight: 700; }

/* 数値・時刻・料金は等幅数字で揃える（会計例の読みやすさを最優先） */
.num, time, .price, .tel { font-variant-numeric: tabular-nums; }
