/* ============================================================
   COFFEE & CIGARETTES — BASE / RESET
   Minimal, opinionated defaults. Square corners, high contrast.
   ============================================================ */

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

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

body {
  margin: 0;
  background: var(--surface-light);
  color: var(--text-on-light);
  font-family: var(--font-body);
  font-size: var(--type-body);
  line-height: var(--leading-body);
  font-weight: var(--weight-body);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

/* Display / headings — Fira Sans Black, always uppercase */
h1, h2, h3, h4,
.cc-display, .cc-h1, .cc-h2, .cc-h3 {
  font-family: var(--font-display);
  font-weight: var(--weight-display);
  text-transform: uppercase;
  letter-spacing: var(--track-display);
  line-height: var(--leading-tight);
  margin: 0;
}

.cc-display { font-size: var(--type-display); line-height: var(--leading-display); }
.cc-h1 { font-size: var(--type-h1); }
/* H2 — Fira Sans ExtraBold, uppercase */
h2, .cc-h2 { font-size: var(--type-h2); font-weight: var(--weight-h2); }
/* H3 — Fira Sans Bold, MEDIUM, mixed case (the one heading not set in caps) */
h3, .cc-h3 {
  font-size: var(--type-h3);
  font-weight: var(--weight-h3);
  text-transform: none;
  letter-spacing: 0;
  line-height: var(--leading-snug);
}

/* Body / editorial */
p { margin: 0 0 1em; max-width: var(--measure); }
.cc-lead { font-size: var(--type-lead); line-height: var(--leading-snug); }

/* Caption — Literata italic */
.cc-caption {
  font-family: var(--font-body);
  font-style: italic;
  font-size: var(--type-caption);
  color: var(--text-on-light-muted);
}

/* Label — Fira Sans, uppercase, wide tracking */
.cc-label {
  font-family: var(--font-label);
  font-weight: var(--weight-label);
  text-transform: uppercase;
  letter-spacing: var(--track-label);
  font-size: var(--type-label);
  color: var(--text-on-light-muted);
}
.cc-label--sm { font-size: var(--type-label-sm); letter-spacing: var(--track-label-sm); }

a { color: inherit; }

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

::selection { background: var(--cc-blue); color: var(--cc-paper); }
