/* ──────────────────────────────────────────────────────────────
   Base — reset + typography + layout primitives
   ────────────────────────────────────────────────────────────── */

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  background: var(--tcs-bg);
  color: var(--tcs-text);
  font-family: var(--tcs-font-body);
  font-size: var(--tcs-body-size-mobile);
  line-height: var(--tcs-body-leading);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}
@media (min-width: 768px) {
  body { font-size: var(--tcs-body-size-desktop); }
}

img, svg, video { max-width: 100%; display: block; height: auto; }
button, input, select, textarea { font: inherit; color: inherit; }
a { color: var(--tcs-link); text-decoration: none; transition: color var(--tcs-dur) var(--tcs-ease); }
a:hover { color: var(--tcs-link-hover); }

h1, h2, h3, h4, h5, h6 {
  font-family: var(--tcs-font-heading);
  color: var(--tcs-text);
  margin: 0 0 var(--tcs-space-5);
  font-weight: 700;
  line-height: var(--tcs-h2-leading);
  letter-spacing: -0.01em;
}
h1 {
  font-size: var(--tcs-h1-size-mobile);
  line-height: var(--tcs-h1-leading);
  letter-spacing: -0.02em;
}
h2 { font-size: var(--tcs-h2-size-mobile); }
h3 { font-size: var(--tcs-h3-size-mobile); font-weight: 600; line-height: var(--tcs-h3-leading); }

@media (min-width: 768px) {
  h1 { font-size: var(--tcs-h1-size-desktop); }
  h2 { font-size: var(--tcs-h2-size-desktop); }
  h3 { font-size: var(--tcs-h3-size-desktop); }
}

p { margin: 0 0 var(--tcs-space-5); color: var(--tcs-muted); }
p.lead { color: var(--tcs-text); font-size: 1.15em; }

/* Eyebrow label — small-caps-ish */
.tcs-eyebrow {
  display: inline-block;
  font-family: var(--tcs-font-body);
  font-size: var(--tcs-eyebrow-size-mobile);
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--tcs-accent);
  margin-bottom: var(--tcs-space-4);
}
@media (min-width: 768px) {
  .tcs-eyebrow { font-size: var(--tcs-eyebrow-size-desktop); }
}

/* Layout primitives */
.tcs-container {
  width: 100%;
  max-width: var(--tcs-container-max);
  margin: 0 auto;
  padding: 0 var(--tcs-container-pad);
}
.tcs-section {
  padding: var(--tcs-section-gap-mobile) 0;
}
@media (min-width: 768px) {
  .tcs-section { padding: var(--tcs-section-gap-desktop) 0; }
}
.tcs-section--tight { padding: var(--tcs-space-7) 0; }

/* Accent utilities */
.tcs-highlight { color: var(--tcs-accent); }

/* Skip-link for a11y */
.tcs-skip-link {
  position: absolute; left: -9999px; top: 0;
  background: var(--tcs-primary); color: #fff;
  padding: var(--tcs-space-3) var(--tcs-space-5);
  z-index: 100; border-radius: var(--tcs-radius-sm);
}
.tcs-skip-link:focus { left: var(--tcs-space-4); top: var(--tcs-space-4); }
