/* ============================================================
   SMSGate Theme – Typography
   ============================================================ */

h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-sans);
  font-weight: var(--fw-bold);
  color: var(--clr-heading);
  line-height: 1.25;
  letter-spacing: -0.02em;
}

h1 { font-size: clamp(var(--fs-3xl), 5vw, var(--fs-5xl)); font-weight: var(--fw-extrabold); }
h2 { font-size: clamp(var(--fs-2xl), 3.5vw, var(--fs-4xl)); }
h3 { font-size: clamp(var(--fs-xl), 2.5vw, var(--fs-3xl)); }
h4 { font-size: var(--fs-xl); }
h5 { font-size: var(--fs-lg); }
h6 { font-size: var(--fs-base); }

p { margin-bottom: var(--sp-4); color: var(--clr-text); }
p:last-child { margin-bottom: 0; }

.lead {
  font-size: var(--fs-lg);
  color: var(--clr-text-muted);
  line-height: 1.7;
}

a { color: var(--clr-accent); transition: color var(--transition); }
a:hover { color: var(--clr-accent-hover); }

code {
  font-family: var(--font-mono);
  font-size: 0.875em;
  background: var(--clr-accent-light);
  color: var(--clr-accent);
  padding: .1em .35em;
  border-radius: 4px;
}

pre {
  font-family: var(--font-mono);
  font-size: var(--fs-base);
  background: var(--clr-bg-code);
  border: 1px solid var(--clr-border);
  border-radius: var(--radius-md);
  padding: var(--sp-5) var(--sp-6);
  overflow-x: auto;
  line-height: 1.65;
  color: var(--clr-heading);
}

pre code { background: none; padding: 0; color: inherit; font-size: inherit; }

blockquote {
  border-left: 3px solid var(--clr-accent);
  padding: var(--sp-4) var(--sp-6);
  margin: var(--sp-6) 0;
  background: var(--clr-accent-light);
  border-radius: 0 var(--radius-md) var(--radius-md) 0;
  color: var(--clr-text-muted);
}

hr { border: none; border-top: 1px solid var(--clr-border); margin: var(--sp-8) 0; }

/* Tables */
table { width: 100%; border-collapse: collapse; font-size: var(--fs-base); margin: var(--sp-6) 0; }
thead { border-bottom: 2px solid var(--clr-border); }
th { padding: var(--sp-3) var(--sp-4); text-align: left; font-weight: var(--fw-semibold); color: var(--clr-heading); font-size: var(--fs-base); text-transform: uppercase; letter-spacing: .06em; }
td { padding: var(--sp-3) var(--sp-4); border-bottom: 1px solid var(--clr-border); color: var(--clr-text-muted); }
tr:hover td { background: var(--clr-bg-alt); }

/* Content lists */
.text-content ul, .text-content ol,
.field--type-text-long ul, .field--type-text-long ol {
  list-style: none; margin: var(--sp-4) 0; padding-left: var(--sp-5);
}
.text-content ul li::before,
.field--type-text-long ul li::before {
  content: "•";
  color: var(--clr-accent);
  display: inline-block;
  margin-right: var(--sp-2);
  font-weight: bold;
}
