:root {
  --elso-red: #ed1b2f;
  --elso-red-dark: #c91527;
  --elso-ink: #101418;
  --elso-surface-dark: #1e2226;
  --elso-text: #171a1d;
  --elso-muted: #626a72;
  --elso-line: #dde1e5;
  --elso-soft: #f5f6f7;
  --elso-white: #fff;
  --elso-content: 1280px;
  --elso-gutter: clamp(18px, 3vw, 32px);
  --elso-radius: 6px;
  --elso-shadow-1: 0 6px 20px rgba(10, 14, 18, 0.08);
  --elso-shadow-2: 0 18px 44px rgba(10, 14, 18, 0.14);
  --elso-space-1: 8px;
  --elso-space-2: 12px;
  --elso-space-3: 16px;
  --elso-space-4: 24px;
  --elso-space-5: 32px;
  --elso-space-6: 48px;
  --elso-space-7: 64px;
}

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

.elso-redesign .elso-page-shell {
  color: var(--elso-text);
  background: var(--elso-white);
}

.elso-redesign .elso-container {
  width: min(100% - (2 * var(--elso-gutter)), var(--elso-content));
  margin-inline: auto;
}

.elso-redesign .elso-section {
  padding-block: clamp(40px, 6vw, 72px);
}

.elso-redesign .elso-section--soft {
  background: var(--elso-soft);
}

.elso-redesign .elso-section--dark {
  color: var(--elso-white);
  background: var(--elso-ink);
}

.elso-redesign .elso-eyebrow {
  color: var(--elso-red);
  font: 800 12px/1.2 Montserrat, Arial, sans-serif;
  text-transform: uppercase;
}

.elso-redesign .elso-title {
  margin: 0;
  color: inherit;
  font: 800 clamp(30px, 4vw, 48px)/1.08 Montserrat, Arial, sans-serif;
  letter-spacing: 0;
}

.elso-redesign .elso-section-title {
  margin: 0;
  color: inherit;
  font: 800 clamp(24px, 3vw, 34px)/1.16 Montserrat, Arial, sans-serif;
  letter-spacing: 0;
}

.elso-redesign .elso-copy {
  color: var(--elso-muted);
  font: 400 16px/1.65 "Open Sans", Arial, sans-serif;
}

.elso-redesign .elso-button {
  display: inline-flex;
  min-height: 48px;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 0 24px;
  border: 1px solid transparent;
  border-radius: 4px;
  font: 800 12px/1 Montserrat, Arial, sans-serif;
  text-decoration: none;
  text-transform: uppercase;
  transition: background-color 0.18s ease, border-color 0.18s ease, color 0.18s ease;
}

.elso-redesign .elso-button--primary {
  color: var(--elso-white);
  background: var(--elso-red);
}

.elso-redesign .elso-button--primary:hover,
.elso-redesign .elso-button--primary:focus-visible {
  color: var(--elso-white);
  background: var(--elso-red-dark);
}

.elso-redesign .elso-button--secondary {
  color: var(--elso-ink);
  border-color: currentColor;
  background: transparent;
}

.elso-redesign .elso-card {
  border: 1px solid var(--elso-line);
  border-radius: var(--elso-radius);
  background: var(--elso-white);
  box-shadow: var(--elso-shadow-1);
}

.elso-redesign :where(a, button, input, select, textarea, [tabindex]):focus-visible {
  outline: 3px solid rgba(237, 27, 47, 0.35);
  outline-offset: 3px;
}

.elso-redesign img {
  max-width: 100%;
  height: auto;
}

@media (max-width: 767px) {
  :root {
    --elso-gutter: 18px;
  }

  .elso-redesign .elso-section {
    padding-block: 40px;
  }

  .elso-redesign .elso-button {
    min-height: 50px;
  }
}
