/* EK4YOU Design System – Reset & Basis */
@layer reset {
  *, *::before, *::after { box-sizing: border-box; }
  html { -webkit-text-size-adjust: 100%; -webkit-tap-highlight-color: transparent; }
  body, h1, h2, h3, h4, h5, h6, p, figure, blockquote, dl, dd { margin: 0; }
  img, svg, video, canvas { vertical-align: middle; }
  img, video { max-width: 100%; height: auto; }
  button, input, select, textarea, optgroup { font: inherit; color: inherit; margin: 0; }
  button, [type='button'], [type='submit'], [type='reset'] { -webkit-appearance: button; cursor: pointer; }
  button:disabled { cursor: not-allowed; }
  table { border-collapse: collapse; }
  th { text-align: inherit; text-align: -webkit-match-parent; }
  hr { border: 0; border-top: 1px solid var(--ds-border); margin: 1rem 0; opacity: 1; }
  [hidden] { display: none !important; }
  ul, ol { padding-left: 2rem; margin: 0 0 1rem; }
  abbr[title] { text-decoration: underline dotted; cursor: help; }
}

@layer base {
  html { font-family: var(--ds-font); font-size: calc(100% * var(--ds-ui-scale, 1)); }
  body {
    font-family: var(--ds-font);
    font-size: var(--ds-text-base);
    line-height: var(--ds-lh);
    color: var(--ds-text);
    background-color: var(--ds-bg);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
  }
  h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 {
    margin-bottom: .5rem; font-weight: 650; line-height: 1.25; letter-spacing: -.01em; color: var(--ds-text);
  }
  h1, .h1 { font-size: var(--ds-text-3xl); }
  h2, .h2 { font-size: var(--ds-text-2xl); }
  h3, .h3 { font-size: 1.3125rem; }
  h4, .h4 { font-size: var(--ds-text-xl); }
  h5, .h5 { font-size: var(--ds-text-lg); }
  h6, .h6 { font-size: var(--ds-text-base); }
  p { margin-bottom: 1rem; }
  a { color: var(--ds-accent); text-decoration: none; transition: color var(--ds-dur-fast) var(--ds-ease); }
  a:hover { color: var(--ds-accent-hover); text-decoration: underline; text-underline-offset: 2px; }
  b, strong { font-weight: 650; }
  small { font-size: .875em; }
  mark { background: var(--ds-warning-soft); color: inherit; padding: .1em .25em; border-radius: 3px; }
  code, kbd, pre, samp { font-family: var(--ds-font-mono); font-size: .875em; }
  code { color: var(--ds-danger-text); background: var(--ds-surface-3); padding: .1em .35em; border-radius: var(--ds-radius-xs); }
  pre { display: block; margin: 0 0 1rem; overflow: auto; padding: .75rem 1rem; background: var(--ds-surface-3); border-radius: var(--ds-radius-sm); }
  pre code { background: none; padding: 0; color: inherit; }
  kbd { padding: .15rem .4rem; border: 1px solid var(--ds-border-strong); border-bottom-width: 2px; border-radius: var(--ds-radius-xs); background: var(--ds-surface); font-size: .8em; }
  label { display: inline-block; }
  ::selection { background: var(--ds-accent-soft); color: var(--ds-text); }
  :focus-visible { outline: 2px solid var(--ds-accent-fill); outline-offset: 2px; }
  :where(button, a, input, select, textarea, [tabindex]):focus:not(:focus-visible) { outline: none; }

  /* Scrollbars */
  * { scrollbar-width: thin; scrollbar-color: var(--ds-scrollbar) transparent; }
  ::-webkit-scrollbar { width: 10px; height: 10px; }
  ::-webkit-scrollbar-thumb { background: var(--ds-scrollbar); border-radius: 10px; border: 2px solid transparent; background-clip: content-box; }
  ::-webkit-scrollbar-track { background: transparent; }

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