@layer components {
  /* ==========================================================================
     Contact Page — Dark Split Layout
     Left: dark panel with noise texture, heading, subtitle, trust signals
     Right: white panel with the contact form
     ========================================================================== */

  .contact-split {
    display: grid;
    grid-template-columns: 1fr;
    min-height: calc(100svh - var(--header-height));
  }

  /* ---------- Dark column ---------- */
  .contact-split-dark {
    background-color: var(--color-lab-900);
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: center;
    padding: var(--spacing-xl) var(--container-padding);
  }

  /* Noise texture overlay — pure CSS via SVG filter */
  .contact-split-dark::before {
    content: "";
    position: absolute;
    inset: 0;
    opacity: 0.04;
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
    background-size: 200px 200px;
    pointer-events: none;
  }

  .contact-split-dark-content {
    position: relative;
    z-index: 1;
    max-width: 28rem;
    margin: 0 auto;
    width: 100%;
  }

  .contact-split-dark h1 {
    font-family: var(--font-heading);
    font-size: var(--font-size-4xl);
    font-weight: 600;
    letter-spacing: -2px;
    color: var(--color-white);
    line-height: 1.1;
    margin: 0;
  }

  .contact-subtitle {
    font-size: var(--font-size-lg);
    color: var(--color-lab-400);
    line-height: 1.6;
    margin-top: 1rem;
  }

  /* Divider */
  .contact-divider {
    border: none;
    border-top: 1px solid var(--color-lab-700);
    margin: 2rem 0;
  }

  /* Trust signals */
  .contact-trust {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
  }

  .contact-trust li {
    font-family: var(--font-body);
    font-size: var(--font-size-sm);
    color: var(--color-lab-400);
    letter-spacing: 0.02em;
  }

  .contact-trust-link {
    color: var(--color-accent) !important;
    text-decoration: none;
    transition: color var(--transition-base);
  }

  .contact-trust-link:hover {
    color: var(--color-accent-light) !important;
  }

  /* ---------- Light column ---------- */
  .contact-split-light {
    background-color: var(--color-white);
    display: flex;
    align-items: center;
    padding: var(--spacing-xl) var(--container-padding);
  }

  .contact-split-light-content {
    max-width: 28rem;
    margin: 0 auto;
    width: 100%;
  }

  /* Override form max-width within split layout */
  .contact-split-light .contact-form {
    max-width: none;
    margin: 0;
  }

  /* ---------- Desktop: side by side ---------- */
  @media (min-width: 48rem) {
    .contact-split {
      grid-template-columns: 45fr 55fr;
    }

    .contact-split-dark {
      padding: var(--spacing-2xl) var(--spacing-lg);
    }

    .contact-split-dark-content {
      margin: 0 0 0 auto;
      padding-right: var(--spacing-lg);
    }

    .contact-split-dark h1 {
      font-size: var(--font-size-5xl);
    }

    .contact-split-light {
      padding: var(--spacing-2xl) var(--spacing-lg);
    }

    .contact-split-light-content {
      margin: 0;
      padding-left: var(--spacing-lg);
      max-width: 32rem;
    }
  }

  /* ---------- Large screens ---------- */
  @media (min-width: 75rem) {
    .contact-split-dark h1 {
      font-size: var(--font-size-6xl);
    }

    .contact-split-dark-content {
      max-width: 32rem;
    }
  }
}
