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

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

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

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

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

body {
  font-family: var(--font-body);
  line-height: var(--lh-m);
  background-color: var(--trixie-beige);
  overflow-x: hidden;
  position: relative;
}

main {
  z-index: 2;
}

/* –––––––––––––––––––––––––––––– LAYOUT & CONTAINERS –––––––––––––––––––––––––––––––––*/
section,
footer {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  padding: var(--spacing-3xl) 0;
  overflow-x: hidden;
}

section {
  flex-direction: column;
}

section:nth-child(2) {
  padding-top: calc(var(--spacing-3xl) + var(--header-height));
}

section.no-padding {
  padding: 0;
}

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

@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;
  aspect-ratio: unset;
}

/* Border radius */
.br-card { border-radius: var(--br-card); }
.br-wrapper { border-radius: var(--br-wrapper); }

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

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

a {
  color: var(--trixie-text-dark);
  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: var(--lh-heading);
  margin: 0;
}

/* Font sizes */
.fs-xs  { font-size: var(--fs-xs); }
.fs-s   { font-size: var(--fs-s); }
.fs-m   { font-size: var(--fs-m); }
.fs-l   { font-size: var(--fs-l); }
.fs-xl  { font-size: var(--fs-xl); }
.fs-2xl { font-size: var(--fs-2xl); }
.fs-3xl { font-size: var(--fs-3xl); }
.fs-4xl { font-size: var(--fs-4xl); }
.fs-5xl { font-size: var(--fs-5xl); }

/* Line heights */
.lh-heading { line-height: var(--lh-heading); }
.lh-body    { line-height: var(--lh-body); }
.lh-btn     { line-height: var(--lh-btn); }

/* Font weights */
.fw-heading { font-weight: var(--fw-heading); }
.fw-body    { font-weight: var(--fw-body); }
.fw-btn     { font-weight: var(--fw-btn); }

.no-wrap { white-space: nowrap; }

/* Text alignment */
.text-center { text-align: center; }

/* –––––––––––––––––––––––––––––– LONG TEXT –––––––––––––––––––––––––––––––––*/
.long-text h1, .long-text h2, .long-text h3, .long-text h4, .long-text h5, .long-text h6 {
  margin-top: var(--spacing-m);
  margin-bottom: var(--spacing-s);
}

.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-body);
}

.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: var(--spacing-s);
}

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

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

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

.long-text ol li:not(:last-child),
.long-text ul li:not(:last-child) {
  margin-bottom: var(--spacing-s);
}

.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;
}

/* –––––––––––––––––––––––––––––– COLORS –––––––––––––––––––––––––––––––––*/

/* Background colors */
.bg-beige {
  background-color: var(--trixie-beige);
}

.bg-blue {
  background-color: var(--trixie-blue);
}

.bg-green {
  background-color: var(--trixie-green);
}

.bg-orange {
  background-color: var(--trixie-orange);
}

.bg-pink {
  background-color: var(--trixie-pink);
}

.bg-red {
  background-color: var(--trixie-red);
}

.bg-white {
  background-color: #ffffff;
}

/* Text colors */
.c-dark {
  color: var(--trixie-text-dark);
}

.c-light {
  color: var(--trixie-text-light);
}

.c-green {
  color: var(--trixie-green);
}

.c-pink {
  color: var(--trixie-pink);
}

.c-red {
  color: var(--trixie-red);
}

.c-orange {
  color: var(--trixie-orange);
}