/* ============================================================================
   Go Chat ! — feuille de style partagée (landing + pages légales)

   Direction artistique reprise de l'app : lavande + saumon sur fond de carte,
   formes très rondes, aplats saturés, ombres douces, et les emoji comme art
   (c'est le vocabulaire visuel du jeu, pas de la décoration).
   Aucune dépendance : polices système uniquement, rien à télécharger.
   ========================================================================= */

:root {
  /* Fonds : le ciel pâle de la carte de jour */
  --sky:        #C3DBF0;
  --ground:     #F5F2FA;
  --surface:    #FFFFFF;
  --surface-2:  #EFE9F7;

  /* Chrome lavande : les boutons ronds de l'app */
  --lavande:    #9B7FC7;
  --lavande-2:  #C3B0E4;
  --lavande-bg: #EDE5F8;

  /* Panneaux chauds : la feuille d'équipement + le HUD du rôle */
  --tan:        #C08F6D;
  --tan-bg:     #F6E7DA;
  --or:         #F0BE2E;

  /* Actions, reprises telles quelles de l'app */
  --vert:       #4FBF44;
  --rouge:      #D24B47;

  --ink:        #241C38;   /* violet très sombre, jamais du noir pur */
  --ink-muted:  #6B6288;
  --line:       #DDD4EC;

  --measure:    68ch;
  --radius:     22px;
  --radius-lg:  32px;
  --radius-sm:  14px;
  --shadow:     0 2px 0 rgba(36, 28, 56, .06), 0 14px 30px -18px rgba(36, 28, 56, .5);
  --shadow-lg:  0 4px 0 rgba(36, 28, 56, .07), 0 26px 50px -24px rgba(36, 28, 56, .55);

  /* SF Pro Rounded sur Apple (la police de l'app), repli propre ailleurs. */
  --font-body: ui-rounded, "SF Pro Rounded", "Hiragino Maru Gothic ProN", "Varela Round",
               system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;

  color-scheme: light dark;
}

/* Thème sombre = la carte au crépuscule des captures : bleu-violet profond. */
@media (prefers-color-scheme: dark) {
  :root {
    --sky:        #35406B;
    --ground:     #211D33;
    --surface:    #2C2743;
    --surface-2:  #372F52;
    --lavande:    #B69BE4;
    --lavande-2:  #8A72B8;
    --lavande-bg: #352C52;
    --tan:        #D8A681;
    --tan-bg:     #3B2E2C;
    --ink:        #F2ECFC;
    --ink-muted:  #ABA0C8;
    --line:       #423961;
    --shadow:     0 2px 0 rgba(0,0,0,.25), 0 14px 30px -18px rgba(0,0,0,.9);
    --shadow-lg:  0 4px 0 rgba(0,0,0,.3), 0 26px 50px -24px rgba(0,0,0,.95);
  }
}
:root[data-theme="dark"] {
  --sky: #35406B; --ground: #211D33; --surface: #2C2743; --surface-2: #372F52;
  --lavande: #B69BE4; --lavande-2: #8A72B8; --lavande-bg: #352C52;
  --tan: #D8A681; --tan-bg: #3B2E2C;
  --ink: #F2ECFC; --ink-muted: #ABA0C8; --line: #423961;
  --shadow: 0 2px 0 rgba(0,0,0,.25), 0 14px 30px -18px rgba(0,0,0,.9);
  --shadow-lg: 0 4px 0 rgba(0,0,0,.3), 0 26px 50px -24px rgba(0,0,0,.95);
}
:root[data-theme="light"] {
  --sky: #C3DBF0; --ground: #F5F2FA; --surface: #FFFFFF; --surface-2: #EFE9F7;
  --lavande: #9B7FC7; --lavande-2: #C3B0E4; --lavande-bg: #EDE5F8;
  --tan: #C08F6D; --tan-bg: #F6E7DA;
  --ink: #241C38; --ink-muted: #6B6288; --line: #DDD4EC;
  --shadow: 0 2px 0 rgba(36,28,56,.06), 0 14px 30px -18px rgba(36,28,56,.5);
  --shadow-lg: 0 4px 0 rgba(36,28,56,.07), 0 26px 50px -24px rgba(36,28,56,.55);
}

/* ── Base ─────────────────────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; }

/* Le canevas, au-delà de la page, prend la couleur de fond. Sans ça, tout espace
   non couvert par le <body> se voyait comme une bande vide plus claire. */
html { background: var(--ground); }

body {
  margin: 0;
  /* Une page courte doit quand même occuper l'écran : sinon le pied de page
     remonte au milieu et laisse un grand vide en dessous. `dvh` suit la barre
     d'adresse mobile, qui se replie au scroll et découvre de la hauteur. */
  min-height: 100vh;
  min-height: 100dvh;
  display: flex;
  flex-direction: column;

  /* Le ciel de la carte descend derrière le héros, puis laisse place au fond.
     `no-repeat` + couleur de fond : sinon le dégradé se répète en mosaïque
     dès que la page dépasse la hauteur de son propre dégradé. */
  background: var(--ground)
    linear-gradient(180deg, var(--sky) 0%, var(--ground) 620px, var(--ground) 100%)
    no-repeat;

  color: var(--ink);
  font-family: var(--font-body);
  font-size: 17px;
  line-height: 1.6;
  overflow-wrap: break-word;   /* une longue adresse ne pousse pas la page en largeur */
  -webkit-font-smoothing: antialiased;
}

/* Occupe la hauteur restante : le pied de page reste collé en bas. */
main { flex: 1 0 auto; }

a { color: inherit; }
img { max-width: 100%; height: auto; display: block; }

:where(a, button, summary):focus-visible {
  outline: 3px solid var(--lavande);
  outline-offset: 3px;
  border-radius: 6px;
}

h1, h2, h3 {
  margin: 0;
  text-wrap: balance;
  line-height: 1.05;
  letter-spacing: -0.02em;
  font-weight: 800;
}
h1 { font-size: clamp(2.6rem, 7.5vw, 4.6rem); }
h2 { font-size: clamp(1.8rem, 4vw, 2.7rem); }
h3 { font-size: 1.2rem; line-height: 1.25; }

p { margin: 0; max-width: var(--measure); }

/* Étiquette : petite, ronde, en majuscules — le style des pastilles de l'app. */
.tag {
  display: inline-block;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--ink-muted);
}

/* ── Gabarit ──────────────────────────────────────────────────────────────── */
.wrap { width: min(1120px, 100% - 2.5rem); margin-inline: auto; }
section { padding-block: clamp(3.5rem, 8vw, 6rem); }


/* ── En-tête ──────────────────────────────────────────────────────────────── */
.top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
  padding-block: 1.25rem;
}
.mark {
  font-weight: 800;
  font-size: 1.15rem;
  letter-spacing: -0.02em;
  text-decoration: none;
}
.mark span { color: var(--tan); }

.badge {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  padding: .45rem .9rem;
  border-radius: 999px;
  background: var(--surface);
  box-shadow: var(--shadow);
  color: var(--ink-muted);
}
.dot {
  width: 7px; height: 7px; border-radius: 50%;
  background: var(--vert);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--vert) 25%, transparent);
}

/* ── Héros ────────────────────────────────────────────────────────────────── */
.hero {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr);
  gap: clamp(2rem, 5vw, 3.5rem);
  align-items: center;
  padding-block: clamp(2rem, 6vw, 4rem) clamp(3rem, 7vw, 5rem);
}
@media (max-width: 860px) { .hero { grid-template-columns: 1fr; } }

.hero-copy { display: flex; flex-direction: column; gap: 1.4rem; align-items: start; }
.lead { font-size: 1.15rem; color: var(--ink-muted); max-width: 46ch; }

.hero-visual img {
  width: min(88vw, 460px);
  height: auto;
  border-radius: 28px;
  box-shadow: var(--shadow-lg);
  margin-inline: auto;
}

/* ── Boutons ──────────────────────────────────────────────────────────────── */
.cta-row { display: flex; flex-wrap: wrap; gap: .75rem; align-items: center; }

.btn {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  padding: .95rem 1.6rem;
  border-radius: var(--radius-sm);
  border: none;
  font: inherit;
  font-weight: 800;
  text-decoration: none;
  cursor: pointer;
  box-shadow: var(--shadow);
  transition: transform .12s ease, filter .12s ease;
}
.btn:hover { transform: translateY(-2px); filter: brightness(1.05); }
.btn:active { transform: translateY(0); }
.btn-primary { background: var(--vert); color: #10310D; }   /* le vert « Équiper » de l'app */

/* Boutons de téléchargement. Ce ne sont PAS les badges officiels Apple/Google :
   ceux-ci sont des ressources de marque, à récupérer chez eux si on les veut
   (cf. README). Ici, deux boutons maison cohérents avec le reste de la page. */
.btn-store {
  flex-direction: column;
  align-items: flex-start;
  gap: 0;
  padding: .7rem 1.4rem;
  background: var(--ink);
  color: var(--ground);
  line-height: 1.2;
}
.btn-store span { font-size: .72rem; font-weight: 600; opacity: .75; }
.btn-store strong { font-size: 1.1rem; font-weight: 800; letter-spacing: -0.01em; }
/* Plateforme détectée : on la met en avant sans masquer l'autre. */
.btn-store-actif { outline: 3px solid var(--or); outline-offset: 2px; }

/* Sortie publique pas encore ouverte : le bouton s'affiche mais n'agit pas.
   Sans href, il n'est déjà ni cliquable ni focusable — le style le rend lisible. */
.btn-store[aria-disabled="true"] {
  background: var(--surface-2);
  color: var(--ink-muted);
  box-shadow: none;
  cursor: not-allowed;
}
.btn-store[aria-disabled="true"]:hover { transform: none; filter: none; }
.btn-store[aria-disabled="true"] strong { color: var(--ink); }
.btn-store[aria-disabled="true"]::after {
  content: "bientôt";
  font-size: .66rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--tan);
}
.btn-ghost { background: var(--surface); color: var(--ink); }
.btn small { font-weight: 600; opacity: .7; font-size: .85rem; }

@media (prefers-reduced-motion: reduce) { .btn:hover { transform: none; } }

/* ── Bandeau bêta ─────────────────────────────────────────────────────────── */
.beta {
  padding: clamp(2rem, 5vw, 3.5rem);
  background: var(--lavande-bg);
  border-radius: var(--radius-lg);
  display: flex; flex-direction: column; gap: 1.3rem; align-items: start;
  box-shadow: var(--shadow);
}

/* ── Pied de page ─────────────────────────────────────────────────────────── */
.foot {
  padding-block: 2.5rem 3.5rem;
  margin-top: 2rem;
  border-top: 2px solid var(--line);
  display: flex; flex-wrap: wrap; gap: 1.5rem;
  justify-content: space-between; align-items: baseline;
}
.foot nav { display: flex; flex-wrap: wrap; gap: 1.25rem; }
.foot a { color: var(--ink-muted); text-decoration: none; font-size: .92rem; font-weight: 600; }
.foot a:hover { color: var(--ink); text-decoration: underline; }

/* ── Pages document (légal, support) ──────────────────────────────────────── */
.doc { padding-block: clamp(2rem, 5vw, 3.5rem) 1rem; }
.doc h1 { font-size: clamp(2rem, 5vw, 3rem); margin-bottom: .5rem; }
.doc h2 { font-size: 1.4rem; margin-top: 2.75rem; margin-bottom: .75rem; }
.doc h3 { margin-top: 1.75rem; margin-bottom: .4rem; }
.doc p, .doc li { font-size: 1rem; }
.doc ul, .doc ol { max-width: var(--measure); padding-left: 1.25rem; display: flex; flex-direction: column; gap: .45rem; margin-block: .5rem; }
.doc > .tag { display: block; margin-bottom: 1.5rem; }

.doc table {
  width: 100%; border-collapse: separate; border-spacing: 0;
  font-size: .93rem; margin-block: 1rem;
  background: var(--surface); border-radius: var(--radius-sm); overflow: hidden;
  box-shadow: var(--shadow);
}
.doc th, .doc td { text-align: left; padding: .75rem .9rem; vertical-align: top; }
.doc th { font-size: .7rem; letter-spacing: .06em; text-transform: uppercase; color: var(--ink-muted); }
.doc tbody tr + tr td { border-top: 1px solid var(--line); }
.scroll-x { overflow-x: auto; }

.note {
  padding: 1rem 1.2rem;
  background: var(--lavande-bg);
  border-radius: var(--radius-sm);
  margin-block: 1.25rem;
  max-width: var(--measure);
}
.note p { font-size: .95rem; }
