/* Formidio — base.css : reset, tokens, typography, utilities */

/* ---- Minimal reset ---- */
* { margin: 0; padding: 0; box-sizing: border-box; }
html { font-size: 100%; -webkit-text-size-adjust: 100%; }
body { font-family: Georgia, 'Times New Roman', serif; line-height: 1.6; }
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; }
button { font-family: inherit; }
ul { list-style: none; }

/* ---- Tokens (basic colour variables + golden-ratio rhythm) ---- */
:root {
  --color-primary: #e2542b;
  --color-primary-dark: #bd401d;
  --color-ink: #1b2030;
  --color-ink-soft: #262c40;
  --color-bg: #ffffff;
  --color-bg-soft: #f5f1ea;
  --color-text: #2a2d38;
  --color-muted: #6c707d;
  --color-light: #f4f2ee;
  --color-line: #e4ddd0;

  --space-1: 0.618rem;
  --space-2: 1rem;
  --space-3: 1.618rem;
  --space-4: 2.618rem;
  --space-5: 4.236rem;

  --shell: 71rem;

  /* Cookie-consent module theme overrides */
  --cc-bg: #ffffff;
  --cc-text: #2a2d38;
  --cc-text-secondary: #6c707d;
  --cc-border: rgba(27, 32, 48, 0.12);
  --cc-primary: #e2542b;
  --cc-primary-hover: #bd401d;
  --cc-secondary: #ffffff;
  --cc-secondary-hover: #f5f1ea;
  --cc-secondary-border: #d8cfbf;
  --cc-toggle-bg: #d8cfbf;
  --cc-toggle-active: #e2542b;
  --cc-radius: 4px;
  --cc-radius-sm: 3px;
}

/* ---- Editorial typography ---- */
body {
  color: var(--color-text);
  background: var(--color-bg);
  font-size: 1.0625rem;
}
h1, h2, h3, h4 {
  font-family: Georgia, 'Times New Roman', serif;
  font-weight: 400;
  line-height: 1.18;
  letter-spacing: -0.01em;
}
h1 { font-size: 3rem; }
h2 { font-size: 2.4rem; }
h3 { font-size: 1.55rem; }
h4 { font-size: 1.2rem; }
p { font-size: 1.2rem; line-height: 1.8; }
small { font-size: 0.85rem; }

@media (max-width: 768px) {
  h1 { font-size: 2.1rem; }
  h2 { font-size: 1.85rem; }
  h3 { font-size: 1.35rem; }
  p { font-size: 1.08rem; }
}

/* ---- Atomic utility classes (single purpose) ---- */
.d-flex { display: flex; }
.d-grid { display: grid; }
.d-block { display: block; }
.ai-c { align-items: center; }
.jc-between { justify-content: space-between; }
.jc-center { justify-content: center; }
.fw-wrap { flex-wrap: wrap; }
.ta-c { text-align: center; }
.mt-1 { margin-top: var(--space-1); }
.mt-2 { margin-top: var(--space-2); }
.mt-3 { margin-top: var(--space-3); }
.mt-4 { margin-top: var(--space-4); }
.mb-2 { margin-bottom: var(--space-2); }
.mb-3 { margin-bottom: var(--space-3); }
.mb-4 { margin-bottom: var(--space-4); }
.muted { color: var(--color-muted); }
.accent { color: var(--color-primary); }
.eyebrow {
  font-family: -apple-system, 'Segoe UI', Roboto, sans-serif;
  font-size: 0.78rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--color-primary);
  margin-bottom: var(--space-1);
}
.eyebrow.on-dark { color: #f0a98f; }

:focus-visible { outline: 2px solid var(--color-primary); outline-offset: 3px; }
