/* ==========================================================================
   Seqo · page passeport exemple (passeport/gg-ess-004821.html et ses
   traductions). Chargée après seqo.css. Page autonome, sans navigation
   marketing : un bandeau collant sombre, le passeport sur fond clair,
   un bandeau final en aplat jaune. Les règles .pp-* de seqo.css sont écrites pour
   l'écran d'un téléphone de maquette : elles sont réagrandies ici.
   ========================================================================== */

/* ----------------------------------------------------------------- page -- */

.pp-corps {
  background: #fafaf7;
  color: #0a0a0a;
  overflow-x: hidden;
}

.pp-wrap {
  width: 100%;
  max-width: 1080px;
  margin-inline: auto;
  padding-inline: var(--gouttiere);
}

.pp-page {
  border-top: 0;
  padding-block: clamp(36px, 5vw, 64px) clamp(56px, 7vw, 88px);
}

/* ------------------------------------------------- bandeau supérieur -- */

.pp-bandeau {
  position: sticky;
  top: 0;
  z-index: 100;
  background: rgba(0, 0, 0, .92);
  -webkit-backdrop-filter: saturate(140%) blur(14px);
  backdrop-filter: saturate(140%) blur(14px);
  border-bottom: 1px solid var(--ligne);
  color: var(--blanc);
}
.pp-bandeau-wrap {
  width: 100%;
  max-width: 1080px;
  margin-inline: auto;
  padding: 12px var(--gouttiere);
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px 20px;
  min-height: var(--nav-h);
}
.pp-bandeau .logo { flex: 0 0 auto; }
.pp-bandeau-titre {
  flex: 1 1 320px;
  margin: 0;
  font-size: 14px;
  line-height: 1.4;
  color: #cfcbc2;
}
.pp-bandeau-droite {
  display: flex;
  align-items: center;
  gap: 14px;
  flex: 0 0 auto;
  margin-left: auto;
}
.pp-bandeau .langues { margin-left: 0; }
.pp-retour {
  font-size: 14px;
  font-weight: 500;
  color: var(--blanc);
  white-space: nowrap;
  border: 1px solid rgba(255, 255, 255, .22);
  border-radius: 999px;
  padding: 8px 16px;
  line-height: 1;
  transition: border-color .2s ease;
}
.pp-retour:hover { color: var(--blanc); border-color: var(--blanc); }
.pp-bandeau-mention {
  flex: 1 1 100%;
  margin: 0;
  font-family: var(--mono);
  font-size: 10.5px;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: #96968e;
  line-height: 1.4;
}
@media (min-width: 900px) {
  /* Une seule ligne : logo, puis titre et mention empilés, puis langues et retour */
  .pp-bandeau-wrap {
    display: grid;
    grid-template-columns: auto 1fr auto;
    grid-template-areas: "logo titre droite" "logo mention droite";
    align-items: center;
    column-gap: 24px;
    row-gap: 2px;
  }
  .pp-bandeau .logo { grid-area: logo; }
  .pp-bandeau-titre { grid-area: titre; align-self: end; }
  .pp-bandeau-mention { grid-area: mention; align-self: start; }
  .pp-bandeau-droite { grid-area: droite; margin-left: 0; }
}
@media (max-width: 899px) {
  .pp-bandeau-wrap { padding-block: 10px; }
  .pp-bandeau-titre { flex: 1 1 200px; font-size: 13px; }
  .pp-bandeau-droite { flex: 1 1 100%; margin-left: 0; justify-content: space-between; }
  .pp-bandeau-mention { order: 5; }
}

/* ------------------------------------------ en-tête du passeport + QR -- */

.pp-tete {
  display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
  background: #0a0a0a;
  color: #fafaf7;
  border-radius: 12px;
  padding: clamp(24px, 4vw, 40px);
  margin-bottom: clamp(20px, 3vw, 32px);
}
.pp-tete-texte { min-width: 0; }
.pp-page .pp-tete .pp-sur {
  font-family: var(--mono);
  font-size: 11.5px;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: #ffeb99;
  margin: 0 0 16px;
}
.pp-page .pp-tete h1 {
  font-size: clamp(30px, 4.6vw, 52px);
  color: #fafaf7;
  margin: 0 0 10px;
}
.pp-page .pp-tete .pp-id {
  font-family: var(--mono);
  font-size: 15px;
  letter-spacing: .04em;
  color: #9a9a94;
  word-break: break-all;
  margin: 0 0 8px;
}
.pp-page .pp-tete .pp-cat { font-size: 16px; color: #cfcbc2; margin: 0; }

.pp-qr {
  margin: 0;
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: 18px;
}
.pp-qr img {
  width: 168px;
  height: 168px;
  max-width: 100%;
  background: #fff;
  padding: 10px;
  border-radius: 8px;
  box-sizing: content-box;
}
.pp-page .pp-qr figcaption {
  font-size: 14px;
  line-height: 1.55;
  color: #6d6a62;
  max-width: 34ch;
}
@media (max-width: 520px) {
  .pp-qr { grid-template-columns: 1fr; justify-items: start; }
}
@media (min-width: 900px) {
  .pp-tete { grid-template-columns: 1fr auto; align-items: center; gap: 40px; }
  .pp-qr { grid-template-columns: auto; justify-items: end; text-align: right; gap: 12px; }
  .pp-page .pp-qr figcaption { max-width: 26ch; font-size: 13px; }
}

/* ----------------------------------------------------- grille de blocs -- */

.pp-grille {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
}
@media (min-width: 900px) {
  .pp-grille { grid-template-columns: 1fr 1fr; gap: 20px; }
  .pp-grille .pp-bloc--verrou { grid-column: 1 / -1; }
}

/* Réagrandissement des règles .pp-* pensées pour l'écran du téléphone */
.pp-page .pp-bloc {
  padding: 22px 24px;
  background: #fff;
  border: 1px solid rgba(0, 0, 0, .1);
  border-radius: 10px;
  min-width: 0;
}
.pp-page .pp-bloc:last-of-type { border-bottom: 1px solid rgba(0, 0, 0, .1); }
.pp-page .pp-bloc-titre {
  font-size: 11.5px;
  letter-spacing: .16em;
  color: #6b6b66;
  margin: 0 0 14px;
}
.pp-page .pp-cadenas { width: 13px; height: 13px; }
.pp-page .pp-paire { gap: 12px; }
.pp-page .pp-champ {
  background: #fafaf7;
  border-color: rgba(0, 0, 0, .1);
  border-radius: 8px;
  padding: 12px 14px;
  min-width: 0;
}
.pp-page .pp-champ b { font-size: 22px; }
.pp-page .pp-champ span { font-size: 13px; margin-top: 4px; }
.pp-page .pp-ligne {
  font-size: 15px;
  padding: 8px 0;
  border-top: 1px solid rgba(0, 0, 0, .06);
  align-items: baseline;
}
.pp-page .pp-ligne:first-of-type { border-top: 0; }
.pp-page .pp-ligne span { min-width: 0; }
.pp-page .pp-ligne b { font-size: 14.5px; text-align: right; }
.pp-page .pp-note { font-size: 14px; line-height: 1.55; color: #6b6b66; margin: 10px 0 0; }
.pp-page .pp-bloc-titre + .pp-note { margin: 0 0 10px; }
.pp-page .pp-doc {
  font-size: 15px;
  padding: 11px 14px;
  margin-bottom: 8px;
  background: #fafaf7;
  border-radius: 8px;
}
.pp-page .pp-doc:last-child { margin-bottom: 0; }
.pp-page .pp-doc b { font-size: 11px; padding: 2px 7px; }
.pp-page .pp-bloc--verrou { background: #f1efe9; }
.pp-page .pp-bloc--verrou .pp-champ,
.pp-page .pp-bloc--verrou .pp-doc { background: #fff; }

/* ---------------------------------------------------------------- pied -- */

.pp-pied-page {
  margin-top: clamp(20px, 3vw, 28px);
  padding: 18px 4px 0;
  border-top: 1px solid rgba(0, 0, 0, .12);
}
.pp-page .pp-pied,
.pp-page .pp-maj {
  background: transparent;
  padding: 0;
  font-family: var(--mono);
  font-size: 12.5px;
  letter-spacing: .05em;
  color: #6b6b66;
  line-height: 1.6;
  margin: 0 0 4px;
}

/* --------------------------------------------------------- qui voit quoi -- */

.pp-acces {
  margin-top: clamp(48px, 7vw, 80px);
  max-width: 760px;
}
.pp-acces h2 { font-size: clamp(26px, 3.4vw, 40px); margin-bottom: 18px; }
.pp-acces .mesure { margin-bottom: 26px; color: var(--encre-2); }

/* -------------------------------------------------------- bandeau final -- */

.pp-bandeau-fin {
  background: #ffeb99;
  color: #1a1a18;
  border-top: 0;
}
.pp-bandeau-fin h2, .pp-bandeau-fin .dot { color: #1a1a18; }
.pp-bandeau-fin .lede { color: rgba(26, 26, 24, .74); }
.pp-bandeau-fin .btn--jaune { background: #1a1a18; color: #ffeb99; border-color: #1a1a18; }
.pp-bandeau-fin .btn--ghost { color: #1a1a18; border-color: rgba(26, 26, 24, .34); }

/* --------------------------------------------------------------- note -- */

.pp-note-fin {
  border-top: 1px solid rgba(0, 0, 0, .12);
  padding-block: 22px;
}
.pp-note-fin .caption { max-width: 78ch; }

/* ---------------------------------------------------------- impression -- */

@media print {
  .pp-bandeau, .pp-bandeau-fin, .skip-link { display: none !important; }
  .pp-corps { background: #fff; }
  .pp-page { padding-block: 0; }
  .pp-tete { background: #fff; color: #0a0a0a; border: 1px solid #0a0a0a; border-radius: 0; }
  .pp-page .pp-tete h1, .pp-page .pp-tete .pp-sur, .pp-page .pp-tete .pp-cat,
  .pp-page .pp-tete .pp-id, .pp-page .pp-qr figcaption { color: #0a0a0a; }
  .pp-grille { grid-template-columns: 1fr 1fr; gap: 12px; }
  .pp-page .pp-bloc { break-inside: avoid; border-radius: 0; }
  .pp-page .pp-bloc--verrou { grid-column: 1 / -1; }
}

/* --------------------------------------------- bandeau supérieur en blanc --
   Aligné sur le reste du site depuis septembre 2026 : blanc dominant, encre
   noire, pas de grand aplat sombre. */
.pp-bandeau {
  background: rgba(255, 255, 255, .94);
  color: #1a1a18;
  border-bottom: 1px solid rgba(26, 26, 24, .12);
}
.pp-bandeau .logo, .pp-bandeau a, .pp-bandeau-titre { color: #1a1a18; }
.pp-bandeau .logo svg g { fill: #1a1a18; }
.pp-bandeau .logo svg path { stroke: #1a1a18; }
.pp-bandeau-mention { color: #6d6a62; }
.pp-retour { border-color: rgba(26, 26, 24, .24); }
.pp-retour:hover { background: #1a1a18; color: #fff; border-color: #1a1a18; }
.pp-bandeau .logo, .pp-bandeau .logo span, .pp-bandeau .logo:hover { color: #1a1a18; }

/* ------------------------------------------------- affichage embarqué --
   Quand la page est montrée dans un cadre sur l'accueil (?embed=1), on
   masque tout ce qui relève du site pour ne laisser que le document. */
.embarque .pp-bandeau,
.embarque .pp-bandeau-fin,
.embarque .pp-note-fin,
.embarque .skip-link { display: none !important; }
.embarque .pp-page { padding-block: 0; }
.embarque .pp-wrap { padding-block: 26px 30px; }
/* Dans le cadre de l'accueil, le code QR du document ferait doublon avec celui
   affiché à côté du cadre, en plus grand et avec sa consigne : on ne le montre
   donc pas ici. La page complète, elle, le garde. */
.embarque .pp-qr { display: none; }
