/* ==========================================================================
   base.css
   Fonts, colour tokens, reset, typography and layout primitives shared by every page.
   ========================================================================== */

/* Every shared and page rule lives in the "site" layer, in load order:
   base.css -> components.css -> pages/<name>.css (later files override earlier ones).
   The element styles at the end of each page file are outside the layer on purpose:
   unlayered rules beat layered ones, exactly like the inline styles they replace. */
@layer site;

@layer site {
  * {
    box-sizing: border-box;
  }

  h1,
  h2,
  h3,
  h4,
  p,
  ul,
  ol,
  figure {
    margin: 0;
    padding: 0;
  }

  ul,
  ol {
    list-style: none;
  }

  a {
    color: #1a1a1a;
    text-decoration: underline;
  }

  .container {
    width: 100%;
    max-width: 1180px;
    margin: 0 auto;
    padding-left: 20px;
    padding-right: 20px;
  }

  .section {
    padding-top: 80px;
    padding-bottom: 80px;
  }

  .bg-alt {
    background: #ececea;
  }

  .bg-dark {
    background: #262626;
    color: #f2f2f0;
  }

  .eyebrow {
    display: block;
    font-family: var(--mono);
    font-size: 10px;
    line-height: 1.2;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: #6a6a6a;
    margin-bottom: 28px;
  }

  .bg-dark .eyebrow {
    color: #a0a0a0;
  }

  .mono {
    font-family: var(--mono);
    font-size: 10px;
    line-height: 1.3;
    letter-spacing: 0.12em;
    text-transform: uppercase;
  }

  .heading {
    font-weight: 400;
    line-height: 1.08;
    margin-bottom: 24px;
  }

  .heading em {
    font-style: italic;
  }

  .heading-xl {
    font-size: 76px;
    letter-spacing: -0.02em;
  }

  .heading-l {
    font-size: 44px;
    letter-spacing: -0.01em;
  }

  .heading-s {
    font-size: 30px;
  }

  .text {
    font-size: 14px;
    line-height: 1.7;
    color: #6a6a6a;
  }

  .card-title {
    font-size: 18px;
    line-height: 1.2;
    font-weight: 700;
  }

  .text-sm {
    font-size: 13px;
    line-height: 1.6;
  }

  .placeholder {
    background: #fff0a8;
    color: #1a1a1a;
    font-family: var(--mono);
    font-size: 10px;
    padding: 1px 5px;
    letter-spacing: 0.02em;
    text-transform: none;
    font-weight: 400;
    white-space: nowrap;
  }

  .link-cta {
    display: inline-block;
    font-family: var(--mono);
    font-size: 11px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: #1a1a1a;
    text-decoration: none;
    border-bottom: 1px solid #1a1a1a;
    padding-bottom: 2px;
  }

  .grid-lines {
    display: grid;
    gap: 1px;
    background: #d0d0ce;
    border: 1px solid #d0d0ce;
  }

  .cols-2 {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 64px;
    align-items: start;
  }

  @media (max-width:900px) {
    .heading-xl {
      font-size: 44px;
    }

    .heading-l {
      font-size: 32px;
    }
  }

  .grid {
    display: grid;
    gap: 24px;
  }

  .c2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .c3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .c4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  h1,
  h2,
  h3,
  h4,
  .heading,
  .card-title,
  .tt,
  .ttl,
  .name,
  .stat .v,
  .step .n,
  details.faq summary {
    font-family: "Maison Neue Mono", "Maison Neue Mono Bold", "Maison Neue", ui-monospace, Menlo, Consolas, monospace !important;
    font-weight: 700 !important;
  }

  :root {
    --mono: Verdana, Geneva, sans-serif;
  }

  @media (max-width:900px) {
    html {
      -webkit-text-size-adjust: 100%;
    }

    body {
      overflow-x: hidden;
    }

    img {
      max-width: 100%;
    }

    .section {
      padding-top: 56px;
      padding-bottom: 56px;
    }

    .heading.heading-xl,
    h1.heading {
      overflow-wrap: break-word;
    }
  }

  @media (max-width:600px) {
    .heading-xl {
      font-size: 38px !important;
      line-height: 1.1;
    }

    .heading-l {
      font-size: 30px !important;
    }

    .heading-s {
      font-size: 24px !important;
    }

    h1.heading {
      font-size: 38px !important;
    }

    .grid {
      gap: 16px;
    }

    .container {
      padding-left: 20px;
      padding-right: 20px;
    }
  }
}
