/* ============================================================
   EDA-LIVESTOCK Core CSS
   全ページ共通: ベースカラー / フォント / リセット / a11y
   ページ固有: 各 HTML 内 <style> に維持
   ============================================================ */
:root {
  /* Colors */
  --color-forest: #0F3D2E;
  --color-forest-deep: #0A2D21;
  --color-forest-light: #143D2B;
  --color-gold: #D4A93B;
  --color-gold-soft: #B8932F;
  --color-cream: #FAF7F0;
  --color-paper: #F5EFE3;
  --color-bone: #EFE8D7;
  --color-ink: #1A1A1A;
  --color-ink-muted: #5C5C5C;
  --color-ink-light: #5C5C5C;
  --color-red: #C8102E;
  --color-line: rgba(212, 169, 59, 0.18);

  /* === Fonts: サイト全体で 2 種類のみ ===
     1. Shippori Mincho (serif) — display, heading, large display Japanese
     2. Inter + Noto Sans JP (sans) — body, UI, numeric */
  --font-display: 'Shippori Mincho', 'Noto Serif JP', 'Yu Mincho', serif;
  --font-jp-serif: 'Shippori Mincho', 'Noto Serif JP', 'Yu Mincho', serif;
  --font-jp: 'Inter', 'Noto Sans JP', -apple-system, BlinkMacSystemFont, sans-serif;
  --font-body: 'Inter', 'Noto Sans JP', -apple-system, BlinkMacSystemFont, sans-serif;
  --font-numeric: 'Inter', 'Noto Sans JP', -apple-system, BlinkMacSystemFont, sans-serif;
  --font-mono: 'SF Mono', 'Monaco', 'Menlo', monospace;

  /* Easing */
  --ease-out-expo: cubic-bezier(0.19, 1, 0.22, 1);
  --ease-in-out-cubic: cubic-bezier(0.65, 0, 0.35, 1);

  /* Letter spacing tokens */
  --tracking-widest: 0.2em;
  --tracking-wide: 0.08em;

  /* Shadows */
  --shadow-sm: 0 2px 8px rgba(15, 61, 46, 0.05);
  --shadow-md: 0 8px 24px rgba(15, 61, 46, 0.08);
  --shadow-lg: 0 16px 40px rgba(15, 61, 46, 0.12);
}

/* === Reset === */
*, *::before, *::after { box-sizing: border-box; }
html {
  scroll-behavior: smooth;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}
body {
  margin: 0;
  font-family: var(--font-body);
  font-size: 17px;
  line-height: 1.8;
  color: var(--color-ink);
  background: var(--color-cream);
  -webkit-text-size-adjust: 100%;
}
img, picture { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button { border: 0; background: transparent; cursor: pointer; font: inherit; color: inherit; }
ul, ol { list-style: none; padding: 0; margin: 0; }
h1, h2, h3, h4 { font-weight: 500; margin: 0; }

/* === Performance: reduce motion === */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/* === Mobile-first text wrap for headlines === */
h1, h2, h3 {
  text-wrap: balance;
}

/* === Animation pause for offscreen elements === */
.animate-paused-when-offscreen { animation-play-state: paused; }
.animate-paused-when-offscreen.in-view { animation-play-state: running; }

/* === Content-visibility for off-viewport sections === */
.cv-auto {
  content-visibility: auto;
  contain-intrinsic-size: 800px;
}

/* ================================================================
   NUMERIC OVERRIDE — 価格・数字は Cormorant italic ではなく
   Inter / SF Pro で確実に読める形に統一
   ※ !important で各 HTML 内の <style> ブロックを上書き
   ================================================================ */
.price,
[class*="-price"],
[class*="price-"],
.num,
[class*="-num"],
[class*="num-"],
[class*="stat-num"],
.amount, .total, .cost, .qty, .quantity,
.hero-stat-num, .sub-stat-num,
.cover-stat-num, .global-stat-num,
.welcome-stat-num, .vision-problem-stat,
.product-price, .pdp-price, .pdp-price-note,
.sub-plan-price, .sub-plan-old-price, .sub-plan-savings,
.order-total-price, .order-number-value,
.cart-item-price, .cart-subtotal-price, .cart-subtotal,
.sub-addon-price, .sub-addons-cart-total, .sub-addons-suggest-price,
.summary-item-price, .summary-row-total, .summary-row.total,
.gift-product-price, .dyn-card-price, .p-card-price,
.counter-num, .three-good-num, .brand-tier-num,
.guide-card-num, .step-num, .stepper-num,
.checkout-block-num, .flow-num, .cut-num,
.growth-num, .form-section-num,
.welcome-stat, .trust-stat,
.line-track-copy-num,
.sub-promo-banner-num, .wagyu-guide-num-label,
.unboxing-step-num, .vision-card-num,
.sticky-cart-total,
.audience-phone-num, .contact-phone-num,
.product-stat-item strong,
.pdp-spec-row > dd,
.pdp-sticky-cta-price,
.sub-hero-promo-text,
.sub-hero-promo-text strong,
[data-numeric] {
  font-family: var(--font-numeric) !important;
  font-style: normal !important;
  font-variant-numeric: tabular-nums !important;
  -webkit-font-smoothing: antialiased;
  letter-spacing: 0 !important;
}

/* 価格表記は太めで力強く */
.product-price, .pdp-price, .sub-plan-price,
.hero-stat-num, .cover-stat-num, .global-stat-num,
.welcome-stat-num, .sub-stat-num,
[class*="-stat-num"], .counter-num,
.cart-subtotal-price, .order-total-price,
.sticky-cart-total, .pdp-sticky-cta-price {
  font-weight: 600 !important;
}

/* 「¥」マークは少し細く */
.price::first-letter,
[class*="-price"]:not(:empty)::first-letter {
  font-weight: 500;
  opacity: 0.85;
}
