/* =========================================================
   JAGROOK — Base: reset, typography, layout, utilities
   ========================================================= */
*, *::before, *::after { box-sizing: border-box; }
html { font-size: 100%; -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
html.jg-text-sm { font-size: 87.5%; }
html.jg-text-lg { font-size: 112.5%; }
html.jg-text-xl { font-size: 125%; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}
body {
  margin: 0; background: var(--jg-surface); color: var(--jg-text);
  font-family: var(--jg-font); font-size: var(--jg-fs-md); line-height: var(--jg-lh);
  text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased;
}
img, svg, video { max-width: 100%; height: auto; display: block; }
h1, h2, h3, h4 { margin: 0 0 var(--jg-s4); line-height: var(--jg-lh-tight); font-weight: 500; }
h1 { font-size: var(--jg-fs-3xl); }
h2 { font-size: var(--jg-fs-2xl); }
h3 { font-size: var(--jg-fs-lg); }
p { margin: 0 0 var(--jg-s4); }
ul, ol { margin: 0; padding: 0; }
a { color: var(--jg-primary); text-underline-offset: 3px; }
a:hover { color: var(--jg-primary-dark); }
button, input, select, textarea { font: inherit; color: inherit; }
button { cursor: pointer; }
:focus { outline: none; }
:focus-visible { outline: none; box-shadow: var(--jg-focus); border-radius: var(--jg-radius-sm); }
::selection { background: var(--jg-primary); color: #fff; }
[hidden] { display: none !important; }

/* Layout */
.jg-container { width: 100%; max-width: calc(var(--jg-container) + 2 * var(--jg-gutter)); margin-inline: auto; padding-inline: var(--jg-gutter); }
.jg-section { padding-block: var(--jg-s7); }
@media (min-width: 1024px) { .jg-section { padding-block: var(--jg-s8); } }
.jg-grid { display: grid; gap: var(--jg-s5); }
@media (min-width: 640px)  { .jg-grid--2, .jg-grid--3 { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .jg-grid--3 { grid-template-columns: repeat(3, 1fr); } }

/* Utilities */
.jg-sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.jg-text-accent { color: var(--jg-accent-text); }
.jg-text-center { text-align: center; }
.jg-eyebrow { display: block; margin-bottom: var(--jg-s2); font-size: var(--jg-fs-xs); font-weight: 500; letter-spacing: .12em; text-transform: uppercase; color: var(--jg-accent-text); }
.jg-lead { font-size: var(--jg-fs-md); color: var(--jg-text-muted); max-width: 60ch; }
.jg-placeholder { background: repeating-linear-gradient(45deg, #E9ECF1 0 12px, #F3F5F8 12px 24px); color: var(--jg-text-muted); display: grid; place-items: center; font-size: var(--jg-fs-sm); text-align: center; }
