/* GIG Kuwait Design System — base (reset, document, type defaults)
   Loads after every token file. Page-level CSS references tokens only. */
*, *::before, *::after { box-sizing: border-box; }

/* The hidden attribute always wins over component display rules */
[hidden] { display: none !important; }

html, body {
  margin: 0;
  padding: 0;
  background: var(--surface-page);
  color: var(--text-strong);
  font-family: var(--font-body);
  font-size: var(--text-body);
  line-height: var(--leading-body);
  font-weight: var(--weight-body);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

[dir="rtl"] body { text-align: start; }

/* Numerals, prices, timers and codes always read LTR, even inside Arabic UI */
[dir="rtl"] .ltr,
[dir="rtl"] .tabular,
[dir="rtl"] time,
[dir="rtl"] code,
[dir="rtl"] .price,
[dir="rtl"] .gig-price,
[dir="rtl"] .gig-countdown {
  direction: ltr;
  unicode-bidi: isolate;
}

a {
  color: var(--text-structure);
  text-decoration: none;
  transition: color var(--dur-fast) var(--ease);
}
a:hover { text-decoration: underline; }

h1, h2, h3, h4, h5 {
  color: var(--text-structure);
  margin: 0 0 var(--space-3);
  line-height: var(--leading-tight);
  text-wrap: balance;
}
h1 { font-family: var(--font-display); font-size: clamp(32px, 4vw, var(--text-h1)); font-weight: var(--weight-display); letter-spacing: var(--tracking-display); }
h2 { font-family: var(--font-display); font-size: clamp(26px, 3vw, var(--text-h2)); font-weight: var(--weight-display); letter-spacing: -0.02em; }
h3 { font-size: var(--text-h2-sm); font-weight: var(--weight-strong); }
h4 { font-size: var(--text-h3);    font-weight: var(--weight-strong); }
h5 { font-size: var(--text-body);  font-weight: var(--weight-strong); }

p { margin: 0 0 var(--space-3); color: var(--text-body); }

small, .small { font-size: var(--text-sm); }

img, svg, video { max-width: 100%; height: auto; }

button, input, select, textarea { font: inherit; color: inherit; }

:focus-visible {
  outline: 2px solid var(--gig-indigo);
  outline-offset: 2px;
}

::selection { background: var(--gig-mint-light); color: var(--gig-indigo-800); }

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