
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+Thai:wght@300;400;500;600;700;800;900&family=Saira+Condensed:wght@400;500;600;700;800&family=Saira:wght@400;500;600;700&display=swap');

/* === tokens/fonts.css === */
/* Motoyuki Design System — Webfonts
 * Thai-primary, engineered/industrial pairing.
 *   Noto Sans Thai  — headings + body (Thai & Latin), sturdy and legible
 *   Saira Condensed — part codes, spec numerals, technical data
 *   Saira           — Latin display companion (semi-condensed, mechanical)
 * Loaded from Google Fonts CDN. If you need self-hosted binaries, replace
 * this @import with local @font-face rules and ship the .woff2 files.
 */


/* === tokens/colors.css === */
/* Motoyuki Design System — Color tokens
 * Blue / white with red as a sparing accent, per the Global Saw + TechD logos.
 * Red NEVER becomes a dominant surface — it marks danger, key CTAs, and hot specs only.
 */
:root {
  /* ---- Brand core ---- */
  --blue-900: #103675;  /* deep navy — dark sections, footers */
  --blue-800: #103675;
  --blue-700: #103675;  /* PRIMARY brand blue (Global Saw / TechD) */
  --blue-600: #14479f;
  --blue-500: #1d5bc2;
  --blue-400: #3f7ad8;
  --blue-300: #7ba4e6;
  --blue-200: #b9d0f2;
  --blue-100: #e3ecfa;
  --blue-50:  #f2f6fd;

  --red-700: #a8101a;
  --red-600: #d8161e;   /* ACCENT red — use sparingly */
  --red-500: #e63b42;
  --red-100: #fbe2e3;
  --red-50:  #fdf1f1;

  /* ---- Neutrals / steel ---- */
  --white:     #ffffff;
  --steel-50:  #f6f7f9;
  --steel-100: #eceef2;
  --steel-200: #dde1e8;
  --steel-300: #c3cad6;
  --steel-400: #9aa3b3;
  --steel-500: #5a6477;  /* secondary text — steel grey */
  --steel-600: #444c5c;
  --steel-700: #313847;
  --steel-800: #1f2530;
  --steel-900: #11151c;
  --black:     #0a0c10;

  /* ---- Semantic: text ---- */
  --text-strong:   var(--blue-900);
  --text-default:  var(--steel-800);
  --text-secondary:var(--steel-500);
  --text-muted:    var(--steel-400);
  --text-inverse:  var(--white);
  --text-link:     var(--blue-700);
  --text-accent:   var(--red-600);

  /* ---- Semantic: surfaces ---- */
  --surface-page:     var(--white);
  --surface-subtle:   var(--steel-50);
  --surface-muted:    var(--steel-100);
  --surface-card:     var(--white);
  --surface-inverse:  var(--blue-900);
  --surface-brand:    var(--blue-700);
  --surface-brand-hover: var(--blue-800);
  --surface-accent:   var(--red-600);
  --surface-accent-hover: var(--red-700);

  /* ---- Semantic: borders ---- */
  --border-subtle:  var(--steel-200);
  --border-default: var(--steel-300);
  --border-strong:  var(--steel-500);
  --border-brand:   var(--blue-700);

  /* ---- Semantic: status ---- */
  --status-info:    var(--blue-700);
  --status-success: #1d8a4e;
  --status-warning: #d98a0b;
  --status-danger:  var(--red-600);

  /* ---- Focus ring ---- */
  --focus-ring: 0 0 0 3px rgba(16, 54, 117, 0.35);
}

/* === tokens/typography.css === */
/* Motoyuki Design System — Typography tokens
 * Engineered, dense, catalogue-grade. Thai primary / EN secondary.
 */
:root {
  /* ---- Families ---- */
  --font-heading: 'Noto Sans Thai', system-ui, sans-serif;
  --font-body:    'Noto Sans Thai', system-ui, sans-serif;
  --font-mono:    'Noto Sans Thai', system-ui, sans-serif; /* part codes, spec numerals */
  --font-display: 'Noto Sans Thai', system-ui, sans-serif;          /* Latin display / eyebrows */

  /* ---- Weights ---- */
  --fw-light:    300; /* @kind font */
  --fw-regular:  400; /* @kind font */
  --fw-medium:   500; /* @kind font */
  --fw-semibold: 600; /* @kind font */
  --fw-bold:     700; /* @kind font */
  --fw-extra:    800; /* @kind font */
  --fw-black:    900; /* @kind font */

  /* ---- Type scale (px / rem) — catalogue ramp ---- */
  --fs-display: 4.5rem;   /* 72 — hero numerals / statements */
  --fs-h1: 3.25rem;          /* 48 */
  --fs-h2: 2.5rem;       /* 36 */
  --fs-h3: 1.75rem;      /* 26 */
  --fs-h4: 1.375rem;       /* 20 */
  --fs-lg: 1.25rem;      /* 18 */
  --fs-base: 1.125rem;        /* 16 */
  --fs-sm: 1rem;      /* 14 */
  --fs-xs: 1rem;      /* 14 — raised to meet 14px minimum (was 12) */
  --fs-2xs: 1rem;     /* 14 — raised to meet 14px minimum (was 11) */

  /* ---- Line heights ---- */
  --lh-tight:   1.1;  /* @kind font */
  --lh-snug:    1.25; /* @kind font */
  --lh-heading: 1.3;  /* @kind font */
  --lh-normal:  1.55; /* @kind font */
  --lh-relaxed: 1.7;  /* @kind font */

  /* ---- Letter spacing ---- */
  --ls-tight:   -0.02em; /* @kind font */
  --ls-normal:  0;       /* @kind font */
  --ls-wide:    0.04em;  /* @kind font */
  --ls-eyebrow: 0.14em;  /* @kind font */
}

/* === tokens/spacing.css === */
/* Motoyuki Design System — Spacing & layout tokens
 * 4px base grid. Dense, structured — built for spec tables and data, not airy heroes.
 */
:root {
  --space-0: 0;
  --space-1: 0.25rem;  /* 4 */
  --space-2: 0.5rem;   /* 8 */
  --space-3: 0.75rem;  /* 12 */
  --space-4: 1rem;     /* 16 */
  --space-5: 1.25rem;  /* 20 */
  --space-6: 1.5rem;   /* 24 */
  --space-8: 2rem;     /* 32 */
  --space-10: 2.5rem;  /* 40 */
  --space-12: 3rem;    /* 48 */
  --space-16: 4rem;    /* 64 */
  --space-20: 5rem;    /* 80 */
  --space-24: 6rem;    /* 96 */

  /* ---- Layout ---- */
  --container-max: 1240px;
  --container-pad: 1.5rem;
  --section-gap: 5rem;

  /* ---- Radii — small & mechanical, never pill-soft ---- */
  --radius-0: 0;
  --radius-sm: 2px;
  --radius-md: 4px;
  --radius-lg: 6px;
  --radius-xl: 10px;
  --radius-full: 999px;
}

/* === tokens/elevation.css === */
/* Motoyuki Design System — Elevation, borders & motion
 * Industrial: shadows are tight and low; structure comes from crisp 1px borders
 * and rules, not soft floating cards.
 */
:root {
  /* ---- Shadows — restrained, cool-tinted ---- */
  --shadow-none: none;
  --shadow-xs: 0 1px 2px rgba(16, 54, 117, 0.06);
  --shadow-sm: 0 1px 3px rgba(16, 54, 117, 0.10), 0 1px 2px rgba(16, 54, 117, 0.06);
  --shadow-md: 0 4px 10px rgba(16, 54, 117, 0.10), 0 2px 4px rgba(16, 54, 117, 0.06);
  --shadow-lg: 0 12px 28px rgba(16, 54, 117, 0.14), 0 4px 8px rgba(16, 54, 117, 0.08);
  --shadow-inset: inset 0 1px 0 rgba(255, 255, 255, 0.6);

  /* ---- Border widths ---- */
  --bw-hair: 1px;   /* @kind spacing */
  --bw-thick: 2px;  /* @kind spacing */
  --bw-accent: 3px; /* @kind spacing */ /* red/blue top-rule accents on cards */

  /* ---- Motion — quick, mechanical, no bounce ---- */
  --ease-standard: cubic-bezier(0.2, 0, 0, 1); /* @kind other */
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);   /* @kind other */
  --dur-fast: 120ms; /* @kind other */
  --dur-base: 180ms; /* @kind other */
  --dur-slow: 280ms; /* @kind other */

  /* ---- Z-index ---- */
  --z-base: 1;       /* @kind other */
  --z-sticky: 100;   /* @kind other */
  --z-overlay: 800;  /* @kind other */
  --z-modal: 900;    /* @kind other */
  --z-toast: 1000;   /* @kind other */
}

/* === tokens/base.css === */
/* Motoyuki Design System — base element styling & a few utility primitives.
 * Light-touch: sets sensible defaults so raw HTML inherits the brand.
 */
*, *::before, *::after { box-sizing: border-box; }

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

h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-heading);
  color: var(--text-strong);
  line-height: var(--lh-heading);
  font-weight: var(--fw-bold);
  margin: 0 0 var(--space-4);
  text-wrap: balance;
}
h1 { font-size: var(--fs-h1); letter-spacing: var(--ls-tight); }
h2 { font-size: var(--fs-h2); letter-spacing: var(--ls-tight); }
h3 { font-size: var(--fs-h3); }
h4 { font-size: var(--fs-h4); }

p { margin: 0 0 var(--space-4); text-wrap: pretty; }

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

code, kbd, samp {
  font-family: var(--font-mono);
  font-size: 0.95em;
}

/* ---- Eyebrow / overline: the catalogue's signature label ---- */
.ds-eyebrow {
  font-family: var(--font-display);
  font-size: var(--fs-2xs);
  font-weight: var(--fw-bold);
  letter-spacing: 0;
  text-transform: capitalize;
  color: var(--text-accent);
}

/* ---- Part code / spec numerals ---- */
.ds-code {
  font-family: var(--font-mono);
  font-weight: var(--fw-semibold);
  letter-spacing: var(--ls-wide);
  font-variant-numeric: tabular-nums;
}

/* ---- Layout helper ---- */
.ds-container {
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: var(--container-pad);
}

html, body { margin: 0; background: var(--white); }
::selection { background: var(--blue-200); }


html,body{margin:0;background:var(--white)}::selection{background:var(--blue-200)}
a{color:var(--text-link)}a:hover{color:var(--blue-500)}
.hs-on [data-section]{outline:2px dashed #d8161e;outline-offset:-2px;position:relative}
.hs-on [data-section]::before{content:attr(data-section);position:absolute;top:0;left:0;z-index:60;background:#d8161e;color:#fff;font:600 12px/1 'Noto Sans Thai',sans-serif;letter-spacing:.06em;text-transform:uppercase;padding:5px 8px;pointer-events:none}
.hs-toggle{position:fixed;left:16px;bottom:16px;z-index:9999;display:flex;align-items:center;gap:8px;background:#11151c;color:#fff;border:0;border-radius:4px;padding:10px 14px;font:600 13px 'Noto Sans Thai',sans-serif;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;box-shadow:0 4px 14px rgba(0,0,0,.25)}
.hs-toggle:hover{background:#103675}
