/* –––––––––––––––––––––––––––––– RESET & BASE STYLES –––––––––––––––––––––––––––––––––*/
*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  --text-color: var(--c-text-dark);
  font-size: 16px;
  scroll-behavior: smooth;
  color: var(--text-color);
}

.dark-bg {
  --text-color: var(--c-white);
  color: var(--text-color);
}

body {
  font-family: var(--font-primary);
  letter-spacing: -0.01em;
  line-height: var(--lh-m);
  background-color: var(--bg-bright-1);
  overflow-x: hidden;
}

/* –––––––––––––––––––––––––––––– LAYOUT & CONTAINERS –––––––––––––––––––––––––––––––––*/
section {
  position: relative;
  display: flex;
  justify-content: center;
  padding: var(--spacing-2xl) 0;
}

section.no-padding {
  padding: 0;
}

.container {
  width: 100%;
  max-width: var(--site-max-width);
  margin: 0 auto;
  padding: 0 var(--spacing-m);
}

/* –––––––––––––––––––––––––––––– MEDIA ELEMENTS –––––––––––––––––––––––––––––––––*/
img, svg {
  max-width: 100%;
  height: auto;
  display: block;
}

/* –––––––––––––––––––––––––––––– TYPOGRAPHY BASE –––––––––––––––––––––––––––––––––*/
a {
  color: var(--c-primary-1);
  text-decoration: none;
  transition: color var(--transition-normal);
}

a:hover {
  color: var(--c-primary-1);
}

h1, h2, h3, h4, h5, h6 {
  line-height: 1.2;
  font-weight: 700;
  margin: 0;
}

/* –––––––––––––––––––––––––––––– LONG TEXT –––––––––––––––––––––––––––––––––*/
.long-text h1, .long-text h2, .long-text h3, .long-text h4, .long-text h5, .long-text h6 {
  margin-top: 1em;
  margin-bottom: 0.5em;
}

.long-text h1:first-child, .long-text h2:first-child, .long-text h3:first-child, .long-text h4:first-child, .long-text h5:first-child, .long-text h6:first-child {
  margin-top: 0;
}

.long-text p {
  margin-bottom: var(--spacing-s);
}

.long-text ul {
  padding-left: 1.5em;
}

.long-text ul:not(:last-child) {
  margin-bottom: 3em;
}

.long-text ul li {
  padding-left: 0.25em;
}

.long-text ul li:not(:last-child) {
  padding-bottom: 0.5em;
}

/* –––––––––––––––––––––––––––––– FONT SIZE UTILITIES –––––––––––––––––––––––––––––––––*/
.fs-4xl {
  font-size: var(--fs-4xl);
  letter-spacing: -0.03em;
}

.fs-3xl {
  font-size: var(--fs-3xl);
  letter-spacing: -0.02em;
}   

.fs-2xl {
  font-size: var(--fs-2xl);
  letter-spacing: -0.02em;
}

.fs-xl { font-size: var(--fs-xl); }
.fs-l { font-size: var(--fs-l); }
.fs-m { font-size: var(--fs-m); }
.fs-s { font-size: var(--fs-s); }
.fs-xs { font-size: var(--fs-xs); }

/* –––––––––––––––––––––––––––––– FONT WEIGHT UTILITIES –––––––––––––––––––––––––––––––––*/
.fw-100 { font-weight: 100; }
.fw-200 { font-weight: 200; }
.fw-300 { font-weight: 300; }
.fw-400 { font-weight: 400; }
.fw-500 { font-weight: 500; }
.fw-600 { font-weight: 600; }
.fw-700 { font-weight: 700; }
.fw-800 { font-weight: 800; }
.fw-900 { font-weight: 900; }

/* –––––––––––––––––––––––––––––– LINE HEIGHT & SPACING UTILITIES –––––––––––––––––––––––––––––––––*/
.lh-xs { line-height: 1; }
.lh-s { line-height: 1.1; }
.lh-m { line-height: 1.5; }
.lh-l { line-height: 1.8; }

.ls-xs { letter-spacing: -0.05em; }
.ls-s { letter-spacing: 0em; }
.ls-m { letter-spacing: 0.05em; }
.ls-l { letter-spacing: 0.1em; }

/* –––––––––––––––––––––––––––––– TEXT TRANSFORM UTILITIES –––––––––––––––––––––––––––––––––*/
.no-wrap { white-space: nowrap; }
.text-center { text-align: center; }
.text-left { text-align: left; }
.text-right { text-align: right; }
.text-uppercase { text-transform: uppercase; }
.text-strike { text-decoration: line-through; }
.text-lowercase { text-transform: lowercase; }
.text-capitalize { text-transform: capitalize; }
.text-normalcase { text-transform: none !important; }

/* –––––––––––––––––––––––––––––– COLOR UTILITIES –––––––––––––––––––––––––––––––––*/
.c-primary-1 { color: var(--c-primary-1); }
.c-primary-2 { color: var(--c-primary-2); }
.c-primary-3 { color: var(--c-primary-3); }
.c-primary-4 { color: var(--c-primary-4); }

.c-secondary-1 { color: var(--c-secondary-1); }
.c-secondary-2 { color: var(--c-secondary-2); }
.c-secondary-3 { color: var(--c-secondary-3); }
.c-secondary-4 { color: var(--c-secondary-4); }

.c-accent-1 { color: var(--c-accent-1); }
.c-accent-2 { color: var(--c-accent-2); }
.c-text-dark { color: var(--c-text-dark); }
.c-text-medium { color: var(--c-text-medium); }
.c-white { color: var(--c-white); }
.c-border-light { color: var(--c-border-light); }

/* –––––––––––––––––––––––––––––– BACKGROUND UTILITIES –––––––––––––––––––––––––––––––––*/
.bg-b-1 { background-color: var(--bg-bright-1); }
.bg-b-2 { background-color: var(--bg-bright-2); }
.bg-b-3 { background-color: var(--bg-bright-3); }
.bg-b-4 { background-color: var(--bg-bright-4); }
.bg-b-5 { background-color: var(--bg-bright-5); }
.bg-b-6 { background-color: var(--bg-bright-6); }
.bg-b-7 { background-color: var(--bg-bright-7); }
.bg-b-8 { background-color: var(--bg-bright-8); }

.bg-d-1 { background-color: var(--bg-dark-1); }
.bg-d-2 { background-color: var(--bg-dark-2); }
.bg-d-3 { background-color: var(--bg-dark-3); }
.bg-d-4 { background-color: var(--bg-dark-4); }
.bg-d-5 { background-color: var(--bg-dark-5); }
.bg-d-6 { background-color: var(--bg-dark-6); }
.bg-d-7 { background-color: var(--bg-dark-7); }
.bg-d-8 { background-color: var(--bg-dark-8); }