/* xaviers.ai — feuille de style du site d'inscription (direction B « Première page »)
   Mise en page : une colonne éditoriale de 72 rem, filets de une, encart marine pour les chiffres.
   Polices auto-hébergées (SIL Open Font License) : aucun appel à un serveur tiers. */

@import url("fonts.css");

:root {
  --fond: #f5f3ec;
  --papier: #ffffff;
  --encre: #0c2340;
  --texte: #2b3443;
  --doux: #5d6677;
  --or: #9c7400;
  --or-clair: #d6a935;
  --filet: #d9d5c9;
  --marine: #0c2340;
  --sur-marine: #e9edf3;
  --sur-marine-doux: #b9c3d2;
  --ombre: 0 1px 2px rgba(12, 35, 64, .06), 0 4px 16px rgba(12, 35, 64, .05);
  --f-titre: "Archivo Black", "Arial Black", Impact, sans-serif;
  --f-texte: "Quicksand", "Avenir Next", "Segoe UI", system-ui, sans-serif;
  color-scheme: light;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body {
  margin: 0; background: var(--fond); color: var(--texte);
  font-family: var(--f-texte); font-weight: 500; font-size: 1.0625rem; line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
a { color: var(--or); text-decoration: underline; text-underline-offset: 2px; text-decoration-thickness: 1px; }
a:hover { text-decoration-thickness: 2px; }
:focus-visible { outline: 2px solid var(--or); outline-offset: 2px; border-radius: 3px; }
h1, h2, h3 { text-wrap: balance; }
strong { color: var(--encre); font-weight: 700; }

.page {
  max-width: 72rem; margin-inline: auto;
  padding-block: 2.25rem 2.5rem;
  padding-left: max(16px, env(safe-area-inset-left, 0px));
  padding-right: max(16px, env(safe-area-inset-right, 0px));
}
.filet-epais { height: 7px; background: var(--encre); }
.filet-fin { height: 1px; background: var(--encre); }
.filet-leger { height: 1px; background: var(--filet); }

/* Une */
.une { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 1rem 2rem; padding-block: 1.5rem 1.25rem; }
.marque { display: flex; flex-direction: column; gap: .35rem; min-width: 0; flex: 1 1 32rem; }
.marque h1 { margin: 0; font-family: var(--f-titre); font-weight: 400; font-size: clamp(3.4rem, 10.5vw, 7rem); line-height: .9; letter-spacing: -.015em; color: var(--encre); }
.marque h1 .tld { color: var(--or); }
.marque .signature { margin: .4rem 0 0; font-size: clamp(1.15rem, 2.6vw, 1.75rem); font-weight: 700; color: var(--encre); line-height: 1.25; }
.ours { display: flex; flex-direction: column; align-items: flex-end; text-align: right; gap: .1rem; font-size: 1rem; flex: 0 1 auto; }
.ours .hebdo { font-size: .76rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--or); }
.ours .fort { font-weight: 700; color: var(--encre); }
.ours .doux { color: var(--doux); }
@media (max-width: 640px) { .ours { align-items: flex-start; text-align: left; } }

/* Chapeau et inscription */
.chapeau { display: flex; flex-wrap: wrap; gap: 2rem 3.5rem; padding-block: 2.25rem 2.75rem; align-items: stretch; }
.appel { flex: 1 1 30rem; min-width: 0; display: flex; flex-direction: column; justify-content: center; gap: 1.25rem; }
.appel h2 { margin: 0; font-family: var(--f-titre); font-weight: 400; font-size: clamp(1.45rem, 3.3vw, 2.15rem); line-height: 1.15; color: var(--encre); max-width: 24em; }
.appel .lede { margin: 0; font-size: clamp(1.1rem, 2vw, 1.3rem); line-height: 1.5; font-weight: 600; color: var(--encre); max-width: 32em; }
.formulaire { display: flex; flex-direction: column; gap: .6rem; max-width: 36rem; }
.formulaire label { font-size: .76rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--doux); }
.champs { display: flex; flex-wrap: wrap; gap: .6rem; }
.champs input[type="email"] { flex: 1 1 16rem; min-width: 0; height: 3.4rem; padding: 0 1rem; font: inherit; font-size: 1.05rem; color: var(--encre); background: var(--papier); border: 1px solid var(--encre); border-radius: 4px; }
.champs input[type="email"]::placeholder { color: #8a93a3; }
.bouton { display: inline-flex; align-items: center; justify-content: center; height: 3.4rem; padding: 0 1.6rem; font: inherit; font-size: 1rem; font-weight: 700; color: var(--fond); background: var(--encre); border: 0; border-radius: 4px; cursor: pointer; text-decoration: none; white-space: nowrap; }
.bouton:hover { background: #17304f; }
.reassurance { margin: 0; font-size: .9rem; color: var(--doux); }
.piege { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.confirmation { margin: 0; font-size: .95rem; font-weight: 700; color: var(--encre); }

.chiffres { flex: 1 1 19rem; min-width: 0; max-width: 26rem; background: var(--marine); color: var(--sur-marine); border-radius: 10px; padding: 1.35rem 1.6rem 1.1rem; display: flex; flex-direction: column; }
.chiffres h3 { margin: 0 0 .5rem; font-size: .82rem; font-weight: 700; color: var(--or-clair); }
.chiffre { display: flex; flex-direction: column; gap: .1rem; padding-block: .65rem; border-top: 1px solid rgba(255,255,255,.14); }
.chiffre .v { font-family: var(--f-titre); font-size: 1.65rem; line-height: 1.1; color: var(--or-clair); font-variant-numeric: tabular-nums; }
.chiffre .t { font-size: .82rem; line-height: 1.45; color: var(--sur-marine-doux); }
.chiffres .lire { margin: .9rem 0 0; font-size: .88rem; font-weight: 700; }
.chiffres .lire a { color: var(--or-clair); }

/* Sommaire */
.sommaire { padding-block: 2.5rem 2.5rem; display: flex; flex-direction: column; gap: 1.25rem; }
.sur-titre { margin: 0; font-family: var(--f-titre); font-weight: 400; font-size: 1.3rem; letter-spacing: .04em; text-transform: uppercase; color: var(--or); }
.rubriques { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 30rem), 1fr)); gap: 0 3rem; }
.rubriques li { display: flex; gap: 1rem; padding: .9rem 0; border-top: 1px solid var(--filet); }
.rubriques .num { font-family: var(--f-titre); font-size: 1.1rem; color: var(--or); min-width: 4.4rem; padding-top: .1rem; }
.rubriques .num.annexe { font-size: .8rem; letter-spacing: .06em; text-transform: uppercase; padding-top: .3rem; }
.rubriques p { margin: 0; font-size: 1rem; }
.rubriques .fin { border-bottom: 1px solid var(--filet); }
@media (max-width: 760px) { .rubriques .fin { border-bottom: 0; } .rubriques li:last-child { border-bottom: 1px solid var(--filet); } }

/* Qui écrit */
.auteur { display: flex; flex-wrap: wrap; gap: 1.75rem 3rem; padding-block: 1.5rem 3rem; align-items: flex-start; }
.portrait { flex: 0 0 9rem; width: 9rem; height: 11.5rem; background: var(--filet); display: flex; align-items: center; justify-content: center; font-size: .8rem; font-weight: 700; color: var(--doux); text-align: center; padding: .5rem; }
.portrait .monogramme { font-family: var(--f-titre); font-size: 3rem; color: var(--encre); letter-spacing: .02em; }
.portrait img { width: 100%; height: 100%; object-fit: cover; display: block; }
.auteur .texte { flex: 1 1 30rem; min-width: 0; display: flex; flex-direction: column; gap: .6rem; }
.auteur p { margin: 0; max-width: 44em; }
.auteur .nom { font-family: var(--f-titre); font-size: 1.15rem; color: var(--encre); margin-top: .25rem; }
.actions { display: flex; flex-wrap: wrap; gap: .9rem; align-items: center; margin-top: .5rem; }
.actions a:not(.bouton) { font-weight: 700; }

/* Pied */
.pied { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .5rem 1.5rem; padding-block: 1.1rem 0; font-size: .85rem; color: var(--doux); }
.pied strong { color: var(--encre); }

/* Pages juridiques */
.juridique { max-width: 46rem; padding-block: 1.5rem 3rem; }
.juridique h1 { margin: 0 0 1.5rem; font-family: var(--f-titre); font-weight: 400; font-size: clamp(1.8rem, 4vw, 2.5rem); line-height: 1.1; color: var(--encre); }
.juridique h2 { margin: 2rem 0 .6rem; font-size: 1.15rem; font-weight: 700; color: var(--encre); }
.juridique p, .juridique li { font-size: 1rem; }
.juridique dl { margin: 0; display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: .35rem 1.25rem; }
.juridique dt { font-weight: 700; color: var(--encre); }
.juridique dd { margin: 0; }
@media (max-width: 560px) { .juridique dl { grid-template-columns: minmax(0, 1fr); } .juridique dd { margin-bottom: .5rem; } }
.a-completer { background: #fbefb5; padding: 0 .2em; border-radius: 2px; }
.retour { display: inline-block; margin-bottom: 1.5rem; font-weight: 700; }
.mini-une { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: .5rem 1.5rem; padding-block: 1rem; }
.mini-une .m { font-family: var(--f-titre); font-size: 1.6rem; color: var(--encre); text-decoration: none; }
.mini-une .m .tld { color: var(--or); }
.mini-une .s { font-size: .95rem; font-weight: 700; color: var(--encre); }

/* Chapeau justifié (demande du 3 novembre 2026) */
.appel .lede { text-align: justify; text-align-last: left; hyphens: manual; -webkit-hyphens: manual; }
