/* PCS — Base element defaults + typographic role utilities.
   Light, non-invasive. Sets the page on warm paper with Hanken body text,
   and exposes role classes that match the brand type spec. */

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

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

body {
  margin: 0;
  font-family: var(--font-sans);
  font-size: var(--text-base);
  line-height: var(--leading-relaxed);
  font-weight: var(--weight-regular);
  color: var(--text-body);
  background: var(--surface-page);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

::selection {
  background: var(--pcs-blue-tint);
  color: var(--pcs-ink);
}

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

img,
svg,
video {
  max-width: 100%;
  display: block;
}

/* ---- Typographic roles (brand spec) ---- */
.pcs-display {
  font-family: var(--font-display);
  font-weight: var(--weight-extrabold);
  font-size: var(--text-display);
  line-height: var(--leading-tight);
  letter-spacing: var(--tracking-display);
  color: var(--text-strong);
}
.pcs-hero {
  font-family: var(--font-display);
  font-weight: var(--weight-extrabold);
  font-size: clamp(2.75rem, 1.6rem + 4.6vw, 4.5rem);
  line-height: 1.02;
  letter-spacing: var(--tracking-display);
  color: var(--text-strong);
}
.pcs-h1,
.pcs-h2 {
  font-family: var(--font-display);
  font-weight: var(--weight-bold);
  line-height: var(--leading-snug);
  letter-spacing: var(--tracking-heading);
  color: var(--text-strong);
}
.pcs-h1 { font-size: var(--text-h1); }
.pcs-h2 { font-size: var(--text-h2); }
.pcs-h3 {
  font-family: var(--font-display);
  font-weight: var(--weight-bold);
  font-size: var(--text-h3);
  line-height: var(--leading-snug);
  letter-spacing: var(--tracking-heading);
  color: var(--text-strong);
}
.pcs-subhead {
  font-family: var(--font-sans);
  font-weight: var(--weight-semibold);
  font-size: var(--text-h4);
  line-height: var(--leading-normal);
  color: var(--text-strong);
}
.pcs-body {
  font-family: var(--font-sans);
  font-weight: var(--weight-regular);
  font-size: var(--text-base);
  line-height: var(--leading-relaxed);
  color: var(--text-body);
}
.pcs-label {
  font-family: var(--font-sans);
  font-weight: var(--weight-bold);
  font-size: var(--text-xs);
  line-height: 1.2;
  letter-spacing: var(--tracking-label);
  text-transform: uppercase;
  color: var(--text-muted);
}
