/* ============================================
   CSS変数 - カラーパレット
   ============================================ */
   :root {
    /* ベースカラー */
    --color-white: #FFFFFF;
    --color-dark-gray: #333333;
    --color-light-gray: #DBE1DD;
    --color-gray: #8B8B8B;
    --color-light-gray-alt: #C0C1C1;
    --color-light-gray-pale: #f8f8f8;
    
    /* ブランドカラー */
    --color-primary-green: #0D6521;
    --color-light-green: #EDF4F1;
    
    /* アクセントカラー */
    --color-cyan: #63DCFF;
    --color-orange: #FFBB60;
    --color-category-orange: #FFF4E7;
    --color-category-cyan: #E6F9FF;
    
    /* セマンティックカラー */
    --color-background: var(--color-white);
    --color-text-primary: var(--color-dark-gray);
    --color-text-secondary: var(--color-gray);
    --color-border: var(--color-light-gray);
    --color-block: var(--color-light-green);
    --color-product-bg: var(--color-light-gray-pale);
    --color-category-bg: var(--color-category);
  }
  
  /* ============================================
     フォントファミリー
     ============================================ */
  
  :root {
    --font-serif-en: "Cinzel", serif;
    --font-serif-jp: 'Noto Serif JP', serif;
    --font-sans-jp: 'Noto Sans JP', sans-serif;
  }
  
  /* ============================================
     タイポグラフィスケール
     ============================================ */
  :root {
    /* ビューポート幅の基準値（デザインのスマホサイズ）単位なしで定義 */
    --viewport-base-width: 375;
    
    /* フォントサイズ */
    --font-size-xs: 10px;
    --font-size-xs-palmtop: calc(10 / var(--viewport-base-width) * 100vw);
    --font-size-sm: 12px;
    --font-size-sm-palmtop: calc(12 / var(--viewport-base-width) * 100vw);
    --font-size-base: 16px;
    --font-size-base-palmtop: calc(14 / var(--viewport-base-width) * 100vw);
    --font-size-lg: 24px;
    --font-size-lg-palmtop: calc(18 / var(--viewport-base-width) * 100vw);
    --font-size-xl: 48px;
    --font-size-xl-palmtop: calc(48 / var(--viewport-base-width) * 100vw);
    
    /* 行の高さ */
    --line-height-tight: 120%;
    --line-height-normal: 140%;
    --line-height-relaxed: 160%;
    --line-height-relaxed-lg: 165%;
    
    /* レタースペーシング */
    --letter-spacing-normal: 0;
  }
  
  /* ============================================
     スペーシングシステム
     ============================================ */
  :root {
    --spacing-xs: 4px;
    --spacing-sm: 8px;
    --spacing-md: 16px;
    --spacing-lg: 24px;
    --spacing-xl: 32px;
    --spacing-2xl: 48px;
    --spacing-3xl: 64px;
  }
  
  /* ============================================
     ボーダーとシャドウ
     ============================================ */
  :root {
    --border-radius-sm: 4px;
    --border-radius-md: 8px;
    --border-radius-lg: 12px;
    --border-width: 1px;
    --border-color: var(--color-border);
    
    --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.05);
    --shadow-md: 0 4px 6px rgba(0, 0, 0, 0.1);
    --shadow-lg: 0 10px 15px rgba(0, 0, 0, 0.1);
  }
  
  /* ============================================
     ベーススタイル
     ============================================ */
  * {
  }
  
  body {
  }
  
  /* ============================================
     タイポグラフィスタイル
     ============================================ */
  
  /* 見出しスタイル */
  .heading-xl {
    font-family: var(--font-serif-en);
    font-size: var(--font-size-xl-palmtop);
    font-weight: 400;
    line-height: var(--line-height-relaxed);
    letter-spacing: var(--letter-spacing-normal);
    color: var(--color-text-primary);
    @media screen and (min-width: 801px) {
      font-size: var(--font-size-xl);
    }
  }
  
  .heading-lg {
    font-family: var(--font-serif-jp);
    font-size: var(--font-size-lg-palmtop);
    font-weight: 400;
    line-height: var(--line-height-relaxed-lg);
    letter-spacing: var(--letter-spacing-normal);
    color: var(--color-text-primary);
    @media screen and (min-width: 801px) {
      font-size: var(--font-size-lg);
    }
  }
  
  .heading-md {
    font-family: var(--font-serif-jp);
    font-size: var(--font-size-base-palmtop);
    font-weight: 400;
    line-height: var(--line-height-normal);
    letter-spacing: var(--letter-spacing-normal);
    color: var(--color-text-primary);
    @media screen and (min-width: 801px) {
      font-size: var(--font-size-base);
    }
  }
  
  .heading-sm {
    font-family: var(--font-serif-jp);
    font-size: var(--font-size-sm-palmtop);
    font-weight: 400;
    line-height: 16.8px;
    letter-spacing: var(--letter-spacing-normal);
    color: var(--color-text-primary);
    @media screen and (min-width: 801px) {
      font-size: var(--font-size-sm);
    }
  }
  
  /* 本文スタイル */
  .text-base {
    font-family: var(--font-serif-jp);
    font-size: var(--font-size-base-palmtop);
    font-weight: 400;
    line-height: var(--line-height-normal);
    letter-spacing: var(--letter-spacing-normal);
    color: var(--color-text-primary);
    @media screen and (min-width: 801px) {
      font-size: var(--font-size-base);
    }
  }
  
  .text-sm {
    font-family: var(--font-serif-jp);
    font-size: var(--font-size-sm-palmtop);
    font-weight: 400;
    line-height: 16.8px;
    letter-spacing: var(--letter-spacing-normal);
    color: var(--color-text-primary);
    @media screen and (min-width: 801px) {
      font-size: var(--font-size-sm);
    }
  }
  
  .text-xs {
    font-family: var(--font-serif-jp);
    font-size: var(--font-size-xs-palmtop);
    font-weight: 500;
    line-height: var(--line-height-tight);
    letter-spacing: var(--letter-spacing-normal);
    color: var(--color-text-primary);
    @media screen and (min-width: 801px) {
      font-size: var(--font-size-xs);
    }
  }
  
  .text-secondary {
    color: var(--color-text-secondary);
  }
    
  /* ============================================
     ユーティリティスタイル
     ============================================ */
  
  /* スマホのみ表示 */
  .show-palmtop {
    display: block;
    @media screen and (min-width: 801px) {
      display: none;
    }
  }

  /* パソコンのみ表示 */
  .show-desktop {
    display: none;
    @media screen and (min-width: 801px) {
      display: block;
    }
  }