/* ==========================================================================
   TasteWorthy — Base element styles & a few brand utilities.
   Lightweight reset + sensible typographic defaults wired to the tokens.
   ========================================================================== */

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

html { -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  font-family: var(--font-body);
  font-weight: var(--fw-light);
  font-size: var(--text-md);
  line-height: var(--leading-normal);
  color: var(--text-primary);
  background: var(--surface-base);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

/* ---- Headings: Neue Haas Medium, tight tracking ------------------------- */
h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-display);
  font-weight: var(--fw-medium);
  line-height: var(--leading-tight);
  letter-spacing: var(--tracking-tight);
  margin: 0 0 0.4em;
  color: var(--text-primary);
  text-wrap: balance;
}
h1 { font-size: var(--text-4xl); letter-spacing: var(--tracking-tighter); }
h2 { font-size: var(--text-3xl); }
h3 { font-size: var(--text-2xl); line-height: var(--leading-snug); }
h4 { font-size: var(--text-xl);  line-height: var(--leading-snug); }
h5 { font-size: var(--text-lg);  line-height: var(--leading-snug); }
h6 { font-size: var(--text-md);  line-height: var(--leading-snug); }

p { margin: 0 0 1em; text-wrap: pretty; }
a { color: var(--text-link); text-decoration: none; }
a:hover { text-decoration: underline; }

strong, b { font-weight: var(--fw-medium); }

small { font-size: var(--text-2xs); }

::selection { background: var(--tw-yellow); color: var(--tw-black); }

:focus-visible {
  outline: var(--focus-ring-width) solid var(--focus-ring);
  outline-offset: 2px;
}

/* ---- Brand utility classes --------------------------------------------- */

/* The ingress / lead paragraph (Neue Haas Medium per guide p.10) */
.tw-ingress {
  font-weight: var(--fw-medium);
  font-size: var(--text-lg);
  line-height: var(--leading-snug);
}

/* Eyebrow / slab label — uppercase, tracked (icon captions, section kickers) */
.tw-label {
  font-family: var(--font-slab);
  font-weight: var(--fw-medium);
  text-transform: uppercase;
  letter-spacing: var(--tracking-label);
  font-size: var(--text-xs);
}

/* Amithen script accent — for short "uppmaningar" / calls only, never body */
.tw-script {
  font-family: var(--font-script);
  font-weight: 400;
  line-height: 1;
}

/* The wedge ("kilen") — clip an image frame into the brand's angled cut */
.tw-wedge        { clip-path: var(--wedge-clip-down); }
.tw-wedge--up    { clip-path: var(--wedge-clip-up); }
.tw-wedge--point { clip-path: var(--wedge-clip-point); }
