@import url("https://fonts.googleapis.com/css2?family=Manrope:wght@200..800&display=swap");

@font-face {
  font-family: "New Spirit";
  src: url("public/fonts/NewSpirit-Light.otf") format("opentype");
  font-weight: 300;
  font-style: normal;
}

@font-face {
  font-family: "New Spirit";
  src: url("public/fonts/NewSpirit-Regular.otf") format("opentype");
  font-weight: 400;
  font-style: normal;
}

@font-face {
  font-family: "New Spirit";
  src: url("public/fonts/NewSpirit-Medium.otf") format("opentype");
  font-weight: 500;
  font-style: normal;
}

@font-face {
  font-family: "New Spirit";
  src: url("public/fonts/NewSpirit-SemiBold.otf") format("opentype");
  font-weight: 600;
  font-style: normal;
}

@font-face {
  font-family: "New Spirit";
  src: url("public/fonts/NewSpirit-Bold.otf") format("opentype");
  font-weight: 700;
  font-style: normal;
}

@font-face {
  font-family: "New Spirit";
  src: url("public/fonts/NewSpirit-Bold.otf") format("opentype");
  font-weight: 800;
  font-style: normal;
}

*,
*::before,
*::after {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

button,
input,
select,
textarea {
  font: inherit;
  color: inherit;
}

:root {
  /* --- Layout Base (Mobile default) --- */
  --content-padding-horizontal: 12px;
  --content-padding-top: 52px;
  --content-padding-bottom: 32px;
}

/* --- Layout Responsive Overrides --- */
@media (min-width: 768px) {
  :root {
    --content-padding-horizontal: 32px;
  }
}

:root {
  /* --- Colors --- */

  /* Content Colors */
  --content-primary: #324038;
  --content-secondary: rgba(50, 64, 56, 0.8);
  --content-tertiary: rgba(50, 64, 56, 0.75);
  --content-primary-inverse: #ffffff;
  --content-disabled: rgba(50, 64, 56, 0.4);
  --content-brand: #dcd70c;
  --content-notice: #ff9d00;
  --content-negative: #cc2f26;
  --content-positive: #00c159;

  /* Background Colors */
  --background-primary: #ffffff;
  --background-secondary: #f9f7f2;
  --background-tertiary: #f5f5f5;
  --background-inverse: #324038;
  --background-alternate: #6b202c;

  /* Border Colors */
  --border-primary: #eff0ef;
  --border-secondary: #dee0df;
  --border-tertiary: #68726d;
  --border-inverse: #324038;
  --border-brand: #dcd70c;

  /* --- Font Families --- */
  --font-family-heading: "New Spirit", system-ui;
  --font-family-body: "Manrope", sans-serif;
  --font-family-label: var(--font-family-body);
}

/* --- Elements & Typography Classes (Mobile Default) --- */

/* Display Heading */
.display {
  font-family: var(--font-family-heading);
  font-weight: 800;
  font-size: 64px;
  line-height: 68px;
  letter-spacing: -1.6px;
}

/* Headings */
h1 {
  font-family: var(--font-family-heading);
  font-weight: 400;
  font-size: 32px;
  line-height: 36px;
  letter-spacing: -0.6px;
}

h2 {
  font-family: var(--font-family-heading);
  font-weight: 400;
  font-size: 28px;
  line-height: 32px;
  letter-spacing: -0.4px;
}

h3 {
  font-family: var(--font-family-heading);
  font-weight: 400;
  font-size: 24px;
  line-height: 28px;
  letter-spacing: -0.2px;
}

h4 {
  font-family: var(--font-family-heading);
  font-weight: 400;
  font-size: 20px;
  line-height: 24px;
  letter-spacing: -0.2px;
}

h5 {
  font-family: var(--font-family-heading);
  font-weight: 400;
  font-size: 18px;
  line-height: 22px;
  letter-spacing: -0.2px;
}

h6 {
  font-family: var(--font-family-heading);
  font-weight: 400;
  font-size: 16px;
  line-height: 20px;
  letter-spacing: 0px;
}

/* Body Text */
.body-large {
  font-family: var(--font-family-body);
  font-size: 16px;
  line-height: 24px;
  letter-spacing: -0.2px;
}

.body-base {
  font-family: var(--font-family-body);
  font-size: 14px;
  line-height: 22px;
  letter-spacing: -0.2px;
}

.body-small {
  font-family: var(--font-family-body);
  font-size: 12px;
  line-height: 20px;
  letter-spacing: 0px;
}

/* Label Utility Classes */
.label-l {
  font-family: var(--font-family-label);
  font-weight: 400;
  font-size: 18px;
  line-height: 22px;
  letter-spacing: -0.6px;
}

.label-m {
  font-family: var(--font-family-label);
  font-weight: 400;
  font-size: 16px;
  line-height: 20px;
  letter-spacing: -0.4px;
}

.label-s {
  font-family: var(--font-family-label);
  font-weight: 400;
  font-size: 14px;
  line-height: 18px;
  letter-spacing: -0.2px;
}

.label-xs {
  font-family: var(--font-family-label);
  font-weight: 400;
  font-size: 12px;
  line-height: 16px;
  letter-spacing: 0px;
}

/* --- Responsive Overrides --- */

/* Tablet Overrides */
@media (min-width: 768px) {
  .display {
    font-size: 56px;
    line-height: 64px;
    letter-spacing: -1.2px;
  }

  h1 {
    font-size: 36px;
    line-height: 40px;
    letter-spacing: -0.6px;
  }

  h2 {
    font-size: 32px;
    line-height: 36px;
    letter-spacing: -0.6px;
  }

  h3 {
    font-size: 28px;
    line-height: 32px;
    letter-spacing: -0.4px;
  }

  h4 {
    font-size: 24px;
    line-height: 28px;
    letter-spacing: -0.2px;
  }

  h5 {
    font-size: 20px;
    line-height: 24px;
    letter-spacing: -0.2px;
  }

  /* h6 values remain identical to mobile, so no override is declared */
}

/* Desktop Overrides (1024px and up) */
@media (min-width: 1024px) {
  .display {
    font-size: 72px;
    line-height: 80px;
    letter-spacing: -2px;
  }

  h1 {
    font-size: 40px;
    line-height: 44px;
    letter-spacing: -0.8px;
  }

  h2 {
    font-size: 36px;
    line-height: 40px;
    letter-spacing: -0.6px;
  }

  h3 {
    font-size: 32px;
    line-height: 36px;
    letter-spacing: -0.6px;
  }

  h4 {
    font-size: 28px;
    line-height: 32px;
    letter-spacing: -0.4px;
  }

  h5 {
    font-size: 24px;
    line-height: 28px;
    letter-spacing: -0.2px;
  }

  h6 {
    font-size: 18px;
    line-height: 22px;
    letter-spacing: -0.2px;
  }
}

/* --- Responsive Utilities --- */
@media (max-width: 767px) {
  .desktop-only {
    display: none !important;
  }
}

@media (min-width: 768px) {
  .mobile-only {
    display: none !important;
  }
}
