/* ========================================================================
   layout.css — header, nav, footer scaffolds
   ======================================================================== */

@layer components {
  /* --- Header --------------------------------------------------------- */
  .site-header {
    position: sticky;
    top: 0;
    z-index: var(--z-fixed);
    background: var(--bg-nav);
    backdrop-filter: blur(18px);
    border-bottom: 1px solid var(--border);
  }

  .site-header__inner {
    display: flex;
    align-items: center;
    gap: var(--space-m);
    padding-block: var(--space-s);
  }

  .site-header__logo {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
  }

  /* --- Nav primaire -------------------------------------------------- */
  .site-nav {
    flex: 1 1 auto;
    display: flex;
    gap: var(--space-m);
    justify-content: center;
    flex-wrap: wrap;
  }

  .site-nav a {
    position: relative;
    font-family: var(--font-body);
    font-size: var(--step--1);
    font-weight: 500;
    color: var(--text-muted);
    letter-spacing: var(--tracking-wide);
    text-transform: uppercase;
    padding-block: 0.25em;
    transition: color var(--motion-fast) ease;
  }
  .site-nav a:hover { color: var(--ink); }
  .site-nav a[aria-current="page"] { color: var(--ink); }
  .site-nav a[aria-current="page"]::after {
    content: "";
    position: absolute;
    inset: auto 0 -2px 0;
    height: 2px;
    background: var(--accent-red);
  }

  @media (max-width: 56rem) {
    .site-nav { display: none; }
  }

  /* --- Footer -------------------------------------------------------- */
  .site-footer {
    border-top: 1px solid var(--border);
    margin-top: var(--space-3xl);
  }

  /* --- Hero ---------------------------------------------------------- */
  .hero {
    position: relative;
    isolation: isolate;
    overflow: hidden;
  }
  .hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
      radial-gradient(60% 80% at 80% 0%, color-mix(in oklch, var(--accent-red) 18%, transparent), transparent 60%),
      radial-gradient(40% 60% at 0% 100%, color-mix(in oklch, var(--qc-blue) 10%, transparent), transparent 60%);
    z-index: -1;
    pointer-events: none;
  }
}
