/* Font Families */
body {
  font-family: var(--font-sans);
  font-size: 1.8rem;
  font-weight: 400;
  line-height: 1.4;
}

.font-disp {
  font-family: var(--font-disp);
}

/* Headings */
.h3 {
  font-family: var(--font-disp);
  font-size: 4rem;
  letter-spacing: -0.025em;
  line-height: 1;
}

@media (min-width: 1100px) {
  .h3 {
    font-size: 6rem;
  }
}

.h3.--menu {
  font-size: 3.5rem;
}

@media (min-width: 1100px) {
  .h3.--menu {
    font-size: 5rem;
  }
}

.h4 {
  font-family: var(--font-disp);
  font-size: 4rem;
  letter-spacing: -0.025em;
  line-height: 1.1;
}

@media (min-width: 650px) {
  .h4 {
    font-size: 5rem;
  }
}

.h5 {
  font-family: var(--font-disp);
  font-size: 2.6rem;
  letter-spacing: -0.025em;
  line-height: 1.3;
}

.label {
  font-size: 1.4rem;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.1em;
}

/* Rich Text Container */
.txt > :not(:last-child) {
  margin-bottom: 2.5rem;
}

.txt ol,
.txt ul {
  display: flex;
  flex-direction: column;
  gap: 0.2em 0;
  list-style-type: none;
}

.txt ol li,
.txt ul li {
  padding-left: 1em;
  position: relative;
}

.txt ol li::before,
.txt ul li::before {
  background-color: currentColor;
  border-radius: 99px;
  content: "";
  height: 0.25em;
  left: 0.15em;
  position: absolute;
  top: 0.5em;
  width: 0.25em;
}

/* Size Utilities */
.text-12 { font-size: 1.2rem; }
.text-14 { font-size: 1.4rem; }
.text-15 { font-size: 1.5rem; }
.text-16 { font-size: 1.6rem; }
.text-18 { font-size: 1.8rem; }
.text-22 { font-size: 2.2rem; }
.text-26 { font-size: 2.6rem; }
.text-30 { font-size: 3rem; }
.text-35 { font-size: 3.5rem; }
.text-40 { font-size: 4rem; }
.text-45 { font-size: 4.5rem; }
.text-50 { font-size: 5rem; }

@media (min-width: 650px) {
  .s\:text-12 { font-size: 1.2rem; }
  .s\:text-14 { font-size: 1.4rem; }
  .s\:text-16 { font-size: 1.6rem; }
  .s\:text-18 { font-size: 1.8rem; }
  .s\:text-26 { font-size: 2.6rem; }
  .s\:text-40 { font-size: 4rem; }
  .s\:text-45 { font-size: 4.5rem; }
  .s\:text-90 { font-size: 9rem; }
  .s\:text-100 { font-size: 10rem; }
}

@media (orientation: portrait) and (min-width: 650px) and (max-width: 1100px) {
  .mp\:text-14 { font-size: 1.4rem; }
  .mp\:text-80 { font-size: 8rem; }
}

/* Utilities */
.uppercase { text-transform: uppercase; }
.font-medium { font-weight: 500; }
.font-normal { font-weight: 400; }
.text-center { text-align: center; }
.text-left { text-align: left; }
.text-right { text-align: right; }

.text-gold { color: var(--color-gold); }
.text-white { color: var(--color-white); }

.leading-none { line-height: 1; }
.leading-\[1\.05\] { line-height: 1.05; }
.leading-\[1\.4\] { line-height: 1.4; }

.tracking-\[-\.02em\] { letter-spacing: -0.02em; }
.tracking-\[\.03em\] { letter-spacing: 0.03em; }
.tracking-\[\.1em\] { letter-spacing: 0.1em; }
.tracking-\[\.2em\] { letter-spacing: 0.2em; }
.tracking-\[\.375em\] { letter-spacing: 0.375em; }

@media (min-width: 650px) {
  .s\:tracking-\[-\.025em\] { letter-spacing: -0.025em; }
}

/* Custom superscript for numbers */
.ordinal {
  font-variant-numeric: ordinal;
  font-size: 0.6em;
  vertical-align: super;
}
