/* layout.css – chargé par toutes les pages.
   Largeur de page, en-tête, menu sommital, pied de page, dialogue de connexion. */

.wrap { width: min(100% - 2rem, 62rem); margin-inline: auto; }
main { min-height: 50vh; }

/* En-tête : marque à gauche, compte à droite, menu sur toute la largeur dessous */
.site-header { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: .75rem 1rem; padding-top: 1.25rem; }
/* Bouton de langue (site allemand) en haut à droite, après le compte */
.site-header:has(> .langue) { grid-template-columns: 1fr auto auto; }
.langue { flex: none; display: inline-grid; place-items: center; min-width: 2.25rem; height: 2.25rem; padding: 0 .4rem;
          border: 1px solid var(--accent); border-radius: 999px; color: var(--accent); background: transparent;
          font: 700 .8rem/1 var(--sans); letter-spacing: .06em; text-decoration: none; }
.langue:hover, .langue:focus-visible { background: var(--accent); color: var(--accent-ink); }
.brand { display: flex; align-items: center; gap: .85rem; color: var(--ink); text-decoration: none; }
.logo { height: 3.25rem; width: auto; flex: none; }
.brand-text { font: 700 1.25rem/1 var(--serif); letter-spacing: .02em; }
.brand-text span { display: block; margin-top: .3rem; font: 400 .8rem/1.3 var(--sans); color: var(--muted); letter-spacing: 0; }
@media (max-width: 40rem) { .logo { height: 2.5rem; } }
.account { display: flex; gap: .75rem; align-items: baseline; font-size: .9rem; }
.who { color: var(--member); }
.account { align-items: center; }
.join-btn { min-height: 2.25rem; padding: 0 1rem; font-size: .9rem; }
aveg-menu { grid-column: 1 / -1; }

/* Menu sommital */
.site-menu { border-block: 1px solid var(--rule); }
.site-menu ul { display: flex; flex-wrap: wrap; gap: 0 1.75rem; list-style: none; margin: 0; padding: 0; }
.site-menu a { display: block; padding: .7rem 0; color: var(--ink); text-decoration: none; font-weight: 500; border-bottom: 3px solid transparent; }
.site-menu a:hover { color: var(--accent); }
.site-menu a[aria-current="page"] { border-bottom-color: var(--accent); }
.menu-toggle { display: none; }

@media (max-width: 40rem) {
  .site-header { grid-template-columns: 1fr; }
  .site-header:has(> .langue) { grid-template-columns: 1fr auto; }
  .site-header:has(> .langue) .langue { grid-column: 2; grid-row: 1; }
  .site-header:has(> .langue) .account { grid-column: 1 / -1; grid-row: 2; }
  .menu-toggle {
    display: block; width: 100%; text-align: left; background: none; border: 0;
    padding: .7rem 0; color: var(--ink); font-weight: 600;
  }
  .menu-toggle::after { content: "+"; float: right; }
  .menu-toggle[aria-expanded="true"]::after { content: "–"; }
  .site-menu ul { display: none; flex-direction: column; padding-bottom: .5rem; }
  .site-menu.open ul { display: flex; }
  .site-menu a { padding: .55rem 0; border-bottom: 0; }
  .site-menu a[aria-current="page"] { color: var(--accent); }
}

/* Titre de page (pages autres que l'accueil) */
.page-head { padding: 2rem 0 .5rem; }
.page-head h1 { font-size: clamp(1.6rem, 4vw, 2.25rem); margin: 0 0 .5rem; }
.page-head p { margin: 0; color: var(--muted); max-width: 60ch; }

/* Pied de page */
.site-footer { border-top: 1px solid var(--rule); margin-top: 3rem; padding: 1.5rem 0 2rem;
               display: flex; justify-content: space-between; gap: 1rem; flex-wrap: wrap; color: var(--muted); font-size: .85rem; }
.site-footer p { margin: 0; }
.site-footer ul { display: flex; flex-wrap: wrap; gap: .25rem 1.25rem; list-style: none; margin: 0; padding: 0; }
.site-footer a { color: var(--muted); }

/* Dialogue de connexion */
aveg-login dialog { border: 1px solid var(--rule); border-radius: var(--radius); background: var(--surface);
                    color: var(--ink); padding: 0; width: min(100% - 2rem, 24rem); }
aveg-login dialog::backdrop { background: rgb(0 0 0 / .45); }
aveg-login form { padding: 1.5rem; display: grid; gap: .9rem; }
aveg-login h2 { margin: 0; font-size: 1.3rem; }
aveg-login p { margin: 0; color: var(--muted); font-size: .9rem; }
aveg-login .error { color: var(--accent); }
aveg-login .actions { display: flex; justify-content: flex-end; gap: 1rem; align-items: center; }
