/* ===========================================================================
   Assh Design System — 統合CSSトークン
   (fonts / colors / typography / spacing / effects / base をまとめたもの)
   =========================================================================== */

/* ---------- Fonts ---------- */
/* Google Fonts は functions.php で wp_enqueue_style 済み */

/* ---------- Color tokens ---------- */
:root {
  --assh-blue:        #1991D0;
  --assh-blue-deep:   #0E72AE;
  --assh-blue-dark:   #0A4F7D;
  --assh-teal:        #3ABCC3;
  --assh-teal-deep:   #2A9EA6;
  --assh-cyan:        #44C5C0;

  --blue-50:   #F0F8FD;
  --blue-100:  #DCEFFA;
  --blue-200:  #BDE0F4;
  --blue-300:  #8FCBEC;
  --blue-400:  #57B0E0;
  --blue-500:  #1991D0;
  --blue-600:  #0E72AE;
  --blue-700:  #0A5888;
  --blue-800:  #0A4364;

  --teal-50:   #ECFAFA;
  --teal-100:  #D2F2F2;
  --teal-200:  #A8E5E6;
  --teal-300:  #74D2D4;
  --teal-400:  #4AC4C5;
  --teal-500:  #3ABCC3;
  --teal-600:  #2A9EA6;

  --ink-900:   #102A3F;
  --ink-800:   #1C3A52;
  --ink-700:   #33506A;
  --ink-600:   #4E687F;
  --ink-500:   #6E8499;
  --ink-400:   #9AABBA;
  --ink-300:   #C2CFD9;
  --ink-200:   #DEE7ED;
  --ink-100:   #EDF2F6;
  --ink-50:    #F6F9FB;
  --paper:     #FFFFFF;

  --success:   #2BB673;
  --warning:   #F2A93B;
  --danger:    #E5604D;
  --info:      var(--assh-blue);

  --grad-brand:   linear-gradient(135deg, #1991D0 0%, #3ABCC3 100%);
  --grad-brand-v: linear-gradient(180deg, #1991D0 0%, #3ABCC3 100%);
  --grad-soft:    linear-gradient(135deg, #2BA3DA 0%, #44C5C0 100%);
  --grad-wash:    linear-gradient(160deg, #F0F8FD 0%, #ECFAFA 100%);
  --grad-deep:    linear-gradient(150deg, #0E72AE 0%, #2A9EA6 100%);

  --primary:          var(--assh-blue);
  --primary-hover:    var(--assh-blue-deep);
  --primary-active:   var(--assh-blue-dark);
  --accent:           var(--assh-teal);
  --accent-hover:     var(--assh-teal-deep);

  --text-heading:     var(--ink-900);
  --text-body:        var(--ink-600);
  --text-strong:      var(--ink-700);
  --text-muted:       var(--ink-500);
  --text-caption:     var(--ink-400);
  --text-on-brand:    #FFFFFF;
  --text-link:        var(--assh-blue);

  --surface-page:     var(--paper);
  --surface-wash:     var(--blue-50);
  --surface-tint:     var(--blue-100);
  --surface-card:     #FFFFFF;
  --surface-brand:    var(--grad-brand);

  --border:           var(--ink-200);
  --border-strong:    var(--ink-300);
  --border-brand:     var(--blue-200);

  --focus-ring:       rgba(25, 145, 208, 0.40);
}

/* ---------- Typography tokens ---------- */
:root {
  --font-base:    "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, system-ui, sans-serif;
  --font-display: "Jost", "Noto Sans JP", system-ui, sans-serif;
  --font-num:     "Jost", "Noto Sans JP", system-ui, sans-serif;

  --fw-regular:  400;
  --fw-medium:   500;
  --fw-bold:     700;
  --fw-black:    900;

  --fs-display:  clamp(2.75rem, 1.6rem + 4.6vw, 5rem);
  --fs-h1:       clamp(2rem, 1.3rem + 2.8vw, 3.25rem);
  --fs-h2:       clamp(1.625rem, 1.1rem + 2vw, 2.5rem);
  --fs-h3:       clamp(1.25rem, 1rem + 1vw, 1.625rem);
  --fs-h4:       1.25rem;
  --fs-lead:     1.125rem;
  --fs-body:     1rem;
  --fs-sm:       0.875rem;
  --fs-xs:       0.75rem;
  --fs-stat:     clamp(2.5rem, 1.5rem + 4vw, 4.5rem);

  --lh-tight:    1.15;
  --lh-heading:  1.35;
  --lh-body:     1.85;
  --lh-snug:     1.5;

  --ls-tight:    -0.01em;
  --ls-normal:   0.02em;
  --ls-wide:     0.08em;
  --ls-caps:     0.18em;
}

/* ---------- Spacing / radius tokens ---------- */
:root {
  --sp-1:  4px;  --sp-2:  8px;  --sp-3:  12px; --sp-4:  16px;
  --sp-5:  20px; --sp-6:  24px; --sp-8:  32px; --sp-10: 40px;
  --sp-12: 48px; --sp-16: 64px; --sp-20: 80px; --sp-24: 96px;
  --sp-32: 128px;

  --section-y:         clamp(72px, 8vw, 140px);
  --container:         1200px;
  --container-narrow:  880px;
  --gutter:            clamp(20px, 5vw, 48px);

  --r-xs:   8px;  --r-sm:  12px; --r-md:  18px;
  --r-lg:   24px; --r-xl:  32px; --r-2xl: 44px;
  --r-pill: 999px;
  --r-blob: 42% 58% 60% 40% / 50% 44% 56% 50%;
}

/* ---------- Effects tokens ---------- */
:root {
  --shadow-xs:    0 1px 2px rgba(16, 42, 63, 0.06);
  --shadow-sm:    0 2px 8px rgba(16, 60, 95, 0.07);
  --shadow-md:    0 10px 28px rgba(14, 86, 136, 0.10);
  --shadow-lg:    0 22px 50px rgba(14, 86, 136, 0.14);
  --shadow-xl:    0 34px 80px rgba(10, 67, 100, 0.18);
  --shadow-brand: 0 18px 40px rgba(25, 145, 208, 0.28);
  --shadow-teal:  0 18px 40px rgba(58, 188, 195, 0.26);

  --blur-sm: blur(8px);
  --blur-md: blur(18px);

  --ease-out:    cubic-bezier(0.22, 0.61, 0.36, 1);
  --ease-soft:   cubic-bezier(0.33, 1, 0.68, 1);
  --ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
  --dur-fast:    160ms;
  --dur-base:    280ms;
  --dur-slow:    520ms;
  --dur-reveal:  720ms;
}

/* ---------- Base reset ---------- */
*, *::before, *::after { box-sizing: border-box; }

body {
  margin: 0;
  font-family: var(--font-base);
  font-weight: var(--fw-regular);
  font-size: var(--fs-body);
  line-height: var(--lh-body);
  color: var(--text-body);
  background: var(--surface-page);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

h1, h2, h3, h4 {
  margin: 0;
  color: var(--text-heading);
  font-weight: var(--fw-bold);
  line-height: var(--lh-heading);
  letter-spacing: var(--ls-normal);
}

a { color: var(--text-link); text-decoration: none; }

.num { font-family: var(--font-num); font-feature-settings: "tnum" 1; }

.text-gradient {
  background: var(--grad-brand);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.container {
  width: 100%;
  max-width: var(--container);
  margin-inline: auto;
  padding-inline: var(--gutter);
}
