/* –––––––––––––––––––––––––––––– 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);
}

html[lang] {
  margin: 0 !important;
}

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

h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-primary);
}

body {
  font-family: var(--font-secondary);
  letter-spacing: -0.03em;
  line-height: var(--lh-m);
  background-color: var(--bg-dark-1);
  overflow-x: hidden;
  position: relative;
}

main {
  z-index: 2;
}

@media screen and (max-width: 749px) {
  body {
    background-color: #0e0e0e;
  }
}

/* –––––––––––––––––––––––––––––– LAYOUT & CONTAINERS –––––––––––––––––––––––––––––––––*/
section,
footer {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  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 screen and (max-width: 749px) {
  .container {
    padding: 0 var(--spacing-l);
    margin-bottom: 0;
  }
}

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

/* –––––––––––––––––––––––––––––– TYPOGRAPHY BASE –––––––––––––––––––––––––––––––––*/
.f-primary {
  font-family: var(--font-primary);
}

.f-secondary {
  font-family: var(--font-secondary);
}

a {
  color: var(--text-color);
  text-decoration: none;
  transition: color var(--transition-normal);
}

.long-text a:hover {
  text-decoration: underline;
  text-underline-offset: 4px;
  text-decoration-thickness: 0.1em;
}

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: 2em;
  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 b,
.long-text strong {
  font-weight: 700;
}

.long-text p {
  line-height: var(--lh-l);
}

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

.long-text sup {
  line-height: 0;
  top: 0.12em;
  position: relative;
}

.long-text ol,
.long-text ul {
  padding-left: 20px;
}

.long-text ul {
  list-style-type: "›";
}

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

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

.long-text ol li:not(:last-child),
.long-text ul li:not(:last-child) {
  margin-bottom: 1em;
}

.long-text a:not(.button) {
  text-decoration: underline;
  text-underline-offset: 2px;
  text-decoration-thickness: 0.1em;
}

.long-text a:not(.button):hover {
  text-decoration: none;
}

/* –––––––––––––––––––––––––––––– INPUT FIELDS –––––––––––––––––––––––––––––––––*/
input, textarea {
  font-family: var(--font-secondary);
  letter-spacing: -0.01em;
  line-height: var(--lh-xs);
  
}

/* –––––––––––––––––––––––––––––– FONT SIZE UTILITIES –––––––––––––––––––––––––––––––––*/
.fs-3xl { font-size: var(--fs-3xl); }
.fs-2xl { font-size: var(--fs-2xl); }
.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: 0.77; }
.lh-s { line-height: 1; }
.lh-m { line-height: 1.3; }
.lh-l { line-height: 1.5; }
.lh-xl { 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; }

/* –––––––––––––––––––––––––––––– FONT STYLE & DECORATION UTILITIES –––––––––––––––––––––––––––––––––*/
.f-italic { font-style: italic; }
.f-normal { font-style: normal; }
.f-underline { text-decoration: underline; }
.f-no-underline { text-decoration: none; }

/* –––––––––––––––––––––––––––––– TEXT ALIGNMENT UTILITIES –––––––––––––––––––––––––––––––––*/
.no-wrap { white-space: nowrap; }
.text-center { text-align: center; }
.text-left { text-align: left; }
.text-right { text-align: right; }

/* –––––––––––––––––––––––––––––– TEXT TRANSFORM UTILITIES –––––––––––––––––––––––––––––––––*/
.text-uppercase { text-transform: uppercase; }
.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 { color: var(--c-accent); }
.c-accent-light { color: var(--c-accent-light); }
.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); }