/*
 * ============================================================
 * DESIGN TOKENS
 * ------------------------------------------------------------
 * Valeurs de marque isolées ici, pas éparpillées dans les
 * règles. En cas de migration vers Tailwind, ce bloc devient
 * `theme.extend` dans tailwind.config.js :
 *
 *   colors:     { bg: '#fafafa', fg: '#0a0a0a' }
 *   fontFamily: { display: ['Oswald', 'sans-serif'] }
 *   spacing:    { 18: '4.5rem' }          // valeurs hors échelle par défaut
 *   screens:    { md: '768px' }           // déjà la valeur par défaut Tailwind
 * ============================================================
 */
:root {
  --color-bg: #fafafa;
  --color-fg: #0a0a0a;
  --font-display: 'Oswald', 'Arial Narrow', Arial, sans-serif;

  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-5: 1.25rem;
  --space-8: 2rem;
  --space-12: 3rem;

  --breakpoint-md: 768px; /* documentation seulement : une media query ne peut pas lire une custom property */

  color-scheme: light dark;
}

@media (prefers-color-scheme: dark) {
  :root {
    --color-bg: #0a0a0a;
    --color-fg: #fafafa;
  }
}

/*
 * ============================================================
 * RESET
 * ============================================================
 */
* {
  box-sizing: border-box;
}

html,
body {
  height: 100%;
}

body {
  margin: 0;
  background: var(--color-bg);
  color: var(--color-fg);
  font-family: var(--font-display);
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/*
 * ============================================================
 * LAYOUT
 * ------------------------------------------------------------
 * `.page` = ce que serait le layout racine d'une app React
 * (équivalent d'un composant <Page> ou du wrapper dans _app).
 * ============================================================
 */
.page {
  min-height: 100vh;
  min-height: 100dvh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--space-8);
  padding: var(--space-8) var(--space-5);
  text-align: center;
}

/*
 * ============================================================
 * COMPONENTS
 * ------------------------------------------------------------
 * Un bloc par composant logique. Chacun est écrit pour pouvoir
 * être extrait tel quel en composant React (Logo, ContactLinks)
 * avec ses classes converties en Tailwind ou en CSS Module,
 * sans repenser la structure.
 * ============================================================
 */

/* Component: Logo */
.logo {
  width: 65vw;
  max-width: 560px;
  height: auto;
}

/* Component: ContactLinks */
.contact-links {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-5);
}

.contact-links__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: var(--space-3) var(--space-4);
  color: var(--color-fg);
  text-decoration: none;
  font-size: 1.125rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  background-image: linear-gradient(currentColor, currentColor);
  background-position: 0 100%;
  background-repeat: no-repeat;
  background-size: 100% 1px;
  transition: opacity 0.2s ease, background-size 0.2s ease;
}

.contact-links__link:hover,
.contact-links__link:focus-visible {
  opacity: 0.7;
  background-size: 0% 1px;
}

.contact-links__link:focus-visible {
  outline: 1px solid currentColor;
  outline-offset: 4px;
}

/*
 * ============================================================
 * RESPONSIVE
 * ------------------------------------------------------------
 * Un seul breakpoint, aligné sur le `md` par défaut de
 * Tailwind (768px) pour rester cohérent en cas de migration.
 * ============================================================
 */
@media (min-width: 768px) {
  .contact-links {
    flex-direction: row;
    gap: var(--space-12);
  }
}
