/* ==========================================================================
   LocaTrack — feuille de style principale (refonte « portail pro », 2026)

   ORGANISATION
   1. Polices    2. Jetons de thème    3. Base    4. Mise en page
   5. Boutons    6. En-tête           7. Héros   8. Recherche
   9. Cartes    10. Sections d'accueil 11. Annonces 12. Fiche bien
   13. Formulaires 14. Espaces & tableaux 15. Facture 16. Pied de page
   17. Responsive  18. Impression

   THÈMES. Les couleurs sont nommées par leur RÔLE, pas par leur teinte :
   changer de thème revient à redéfinir un bloc de jetons, rien d'autre.
   Quatre thèmes sont livrés — « locatrack » (par défaut), « sahel »,
   « bogolan » et « nuit ». On les active avec <html data-theme="nuit"> ;
   le sélecteur en pied de page mémorise le choix du visiteur.

   Le logo a ses propres jetons (--logo-*) : ce sont les couleurs de la
   marque, elles ne suivent pas le thème, sauf en mode nuit.
   ========================================================================== */

/* =============================================================== 1. polices */
/* Plus Jakarta Sans, variable, EMBARQUÉE dans la feuille de style.
   Pourquoi pas un fichier .woff2 à côté ? Parce que le site doit aussi
   fonctionner en double-cliquant sur index.html : en protocole file://, un
   navigateur refuse de charger une police externe (règle d'origine croisée)
   et retombe sur la police système. Ici, la police voyage avec le CSS —
   une requête de moins, et la même typographie partout. */

@font-face {
  font-family: "Jakarta";
  src: url("data:font/woff2;base64,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") format("woff2");
  font-weight: 200 800;
  font-style: normal;
  font-display: swap;
}

/* ========================================================= 2. jetons thème */

:root,
[data-theme="locatrack"] {
  /* Marque — le vert acide, repris sur les boutons, les liens et les états
     actifs. Sur fond noir, un vert saturé porte plus loin qu'un vert sage. */
  --primaire-900: #E2FF8C;          /* survol : on éclaircit au lieu d'assombrir */
  --primaire-800: #C7F24B;
  --primaire-600: #D8FF6B;
  --primaire-100: #1E2712;          /* pastille sombre teintée de vert */
  --primaire-050: #161B0D;
  --sur-primaire: #0A0A0B;          /* texte noir sur un aplat vert acide */

  /* Aplats — le héros, le bandeau et le pied de page sont du noir pur. */
  --aplat-900: #050506;
  --aplat-800: #0F0F11;
  --aplat-750: #09090A;
  --sur-aplat: #FFFFFF;

  /* Accent — l'or de la clé du logo, conservé pour les étiquettes */
  --accent-600: #F0BC5B;
  --accent-500: #E9A93A;
  --accent-100: #2A2113;
  --sur-accent: #0A0A0B;

  /* Alerte */
  --rouge: #FF5C72;
  --rouge-100: #2A1218;

  /* Texte */
  --encre: #F4F4F5;
  --gris-700: #C4C4C9;
  --gris-500: #8E8E96;
  --gris-300: #56565E;

  /* Surfaces — trois noirs successifs, jamais de gris bleuté */
  --fond: #0A0A0B;
  --carte: #131315;
  --bordure: #232327;
  --bordure-forte: #33333A;
  --surface-2: #191A1D;
  --surface-3: #1D1E21;
  --neutre-100: #1E1F22;
  --neutre-200: #191A1D;
  --noir-media: #000000;
  --entete-fond: rgba(10, 10, 11, .82);
  --voile-photo: linear-gradient(100deg, rgba(0, 0, 0, .92) 0%, rgba(0, 0, 0, .66) 46%, rgba(0, 0, 0, .32) 78%),
                 linear-gradient(180deg, rgba(0, 0, 0, .55) 0%, transparent 38%, rgba(0, 0, 0, .82) 100%);

  /* Teintes d'état */
  --sur-primaire-clair: #C7F24B;
  --bord-primaire-clair: #33421C;
  --accent-texte: #F0BC5B;
  --bord-accent: #4A3A1B;
  --sur-accent-clair: #F3CE86;
  --sur-rouge: #FF8C9C;
  --bord-rouge: #4A2028;

  /* Couleurs propres au logo — le corps s'éclaircit pour tenir sur le noir */
  --logo-toit: #C7F24B;
  --logo-corps: #E8E8EA;
  --logo-cle: #E9A93A;
  --logo-oeil: #0A0A0B;

  /* Formes */
  --rayon-xs: 8px;
  --rayon-sm: 12px;
  --rayon: 16px;
  --rayon-lg: 22px;
  --rayon-rond: 999px;

  --ombre-sm: 0 1px 2px rgba(0, 0, 0, .5), 0 2px 8px rgba(0, 0, 0, .35);
  --ombre-md: 0 6px 18px rgba(0, 0, 0, .55), 0 18px 44px rgba(0, 0, 0, .45);
  --ombre-lg: 0 14px 40px rgba(0, 0, 0, .6), 0 36px 90px rgba(0, 0, 0, .55);

  --largeur: 1220px;
  --transition: 200ms cubic-bezier(.4, 0, .2, 1);

  --police: "Jakarta", "Segoe UI", -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif;

  /* Glyphes utilisés en masque, donc colorables par le thème */
  --coche: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E");
  --croix: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3.5' stroke-linecap='round'%3E%3Cpath d='M6 6l12 12M18 6L6 18'/%3E%3C/svg%3E");
  --loupe: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2.4' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M20 20l-3.6-3.6'/%3E%3C/svg%3E");
}

/* --- thème « sahel » : vert profond et or, d'après le drapeau malien ----- */

[data-theme="sahel"] {
  --primaire-900: #06341F;
  --primaire-800: #0B6E3F;
  --primaire-600: #12A15B;
  --primaire-100: #E4F3EA;
  --primaire-050: #F2F9F5;
  --sur-primaire: #FFFFFF;

  --aplat-900: #06341F;
  --aplat-800: #0B6E3F;
  --aplat-750: #0A5231;
  --sur-aplat: #FFFFFF;

  --accent-600: #B57C05;
  --accent-500: #EBA80B;
  --accent-100: #FDF3DC;
  --sur-accent: #06341F;

  --encre: #10231A;
  --gris-700: #3F5148;
  --gris-500: #647668;
  --gris-300: #B9C4BD;

  --fond: #F7F8F4;
  --carte: #FFFFFF;
  --bordure: #E3E8E4;
  --bordure-forte: #D3DAD5;
  --surface-2: #F4F7F4;
  --surface-3: #FBFCFB;
  --neutre-100: #EEF1EF;
  --neutre-200: #F1F3F1;
  --noir-media: #0C1A13;
  --entete-fond: rgba(255, 255, 255, .88);
  --voile-photo: linear-gradient(100deg, rgba(6, 52, 31, .88) 0%, rgba(6, 52, 31, .62) 45%, rgba(6, 52, 31, .34) 75%),
                 linear-gradient(180deg, rgba(6, 52, 31, .35) 0%, transparent 40%, rgba(6, 52, 31, .55) 100%);

  --sur-primaire-clair: #0A4A2B;
  --bord-primaire-clair: #BFE3CE;
  --accent-texte: #85600A;
  --bord-accent: #F2DFAE;
  --sur-accent-clair: #6B4E05;

  --logo-toit: #12A15B;
  --logo-corps: #0B6E3F;

  --ombre-sm: 0 1px 2px rgba(16, 35, 26, .05), 0 2px 6px rgba(16, 35, 26, .05);
  --ombre-md: 0 2px 6px rgba(16, 35, 26, .05), 0 12px 28px rgba(16, 35, 26, .09);
  --ombre-lg: 0 8px 24px rgba(16, 35, 26, .10), 0 28px 64px rgba(16, 35, 26, .16);
}

/* --- thème « bogolan » : indigo et terre cuite ---------------------------- */

[data-theme="bogolan"] {
  --primaire-900: #14264A;
  --primaire-800: #1E3A6B;
  --primaire-600: #2F5498;
  --primaire-100: #E7ECF6;
  --primaire-050: #F4F7FC;
  --sur-primaire: #FFFFFF;

  --aplat-900: #131E38;
  --aplat-800: #1E3A6B;
  --aplat-750: #182C52;
  --sur-aplat: #FFFFFF;

  --accent-600: #A8461C;
  --accent-500: #D9662F;
  --accent-100: #FBEDE5;
  --sur-accent: #FFFFFF;

  --encre: #16203A;
  --gris-700: #3E4A66;
  --gris-500: #64708C;
  --gris-300: #B7BECE;

  --fond: #F6F6F9;
  --carte: #FFFFFF;
  --bordure: #E4E6EE;
  --bordure-forte: #D3D7E3;
  --surface-2: #F1F2F8;
  --surface-3: #FAFAFD;
  --neutre-100: #EBEDF5;
  --neutre-200: #F1F2F8;
  --noir-media: #0F1728;
  --entete-fond: rgba(255, 255, 255, .88);
  --voile-photo: linear-gradient(100deg, rgba(19, 30, 56, .88) 0%, rgba(19, 30, 56, .62) 45%, rgba(19, 30, 56, .34) 75%),
                 linear-gradient(180deg, rgba(19, 30, 56, .35) 0%, transparent 40%, rgba(19, 30, 56, .55) 100%);

  --sur-primaire-clair: #1A3160;
  --bord-primaire-clair: #C4D0E8;
  --accent-texte: #96401A;
  --bord-accent: #F3D4C3;
  --sur-accent-clair: #7C3313;

  --logo-toit: #2F5498;
  --logo-corps: #1E3A6B;
  --logo-cle: #D9662F;

  --ombre-sm: 0 1px 2px rgba(22, 32, 58, .05), 0 2px 6px rgba(22, 32, 58, .05);
  --ombre-md: 0 2px 6px rgba(22, 32, 58, .05), 0 12px 28px rgba(22, 32, 58, .09);
  --ombre-lg: 0 8px 24px rgba(22, 32, 58, .10), 0 28px 64px rgba(22, 32, 58, .16);
}

/* --- thème « nuit » : sombre, pour lire le soir --------------------------- */

[data-theme="nuit"] {
  --primaire-900: #1F8F5C;
  --primaire-800: #2FBF7A;
  --primaire-600: #52D294;
  --primaire-100: #14342A;
  --primaire-050: #10281F;
  --sur-primaire: #04150E;

  --aplat-900: #070F16;
  --aplat-800: #0E1C27;
  --aplat-750: #0B1620;
  --sur-aplat: #EAF2F7;

  --accent-600: #F0B54B;
  --accent-500: #F5C46B;
  --accent-100: #3A2E14;
  --sur-accent: #12100A;

  --rouge: #FF6B7E;
  --rouge-100: #3A1B22;

  --encre: #E9F1F6;
  --gris-700: #B7C6D2;
  --gris-500: #8A9BAA;
  --gris-300: #55697A;

  --fond: #080F16;
  --carte: #101C26;
  --bordure: #1E2E3B;
  --bordure-forte: #2A3D4C;
  --surface-2: #16242F;
  --surface-3: #14212C;
  --neutre-100: #1A2831;
  --neutre-200: #16242F;
  --noir-media: #040B10;
  --entete-fond: rgba(8, 15, 22, .88);
  --voile-photo: linear-gradient(100deg, rgba(4, 10, 16, .92) 0%, rgba(4, 10, 16, .70) 45%, rgba(4, 10, 16, .45) 75%),
                 linear-gradient(180deg, rgba(4, 10, 16, .40) 0%, transparent 40%, rgba(4, 10, 16, .65) 100%);

  --sur-primaire-clair: #7BE0AC;
  --bord-primaire-clair: #24513C;
  --accent-texte: #F0C87C;
  --bord-accent: #4A3B1C;
  --sur-accent-clair: #F0C87C;
  --sur-rouge: #FF9AA8;
  --bord-rouge: #6B2E36;

  --logo-toit: #2FBF7A;
  --logo-corps: #7FB2E8;
  --logo-oeil: #0A1E35;

  --ombre-sm: 0 1px 2px rgba(0, 0, 0, .40), 0 2px 8px rgba(0, 0, 0, .30);
  --ombre-md: 0 4px 12px rgba(0, 0, 0, .45), 0 12px 32px rgba(0, 0, 0, .40);
  --ombre-lg: 0 18px 50px rgba(0, 0, 0, .55);
}

/* ================================================================= 3. base */

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

html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  font-family: var(--police);
  font-size: 16px;
  line-height: 1.62;
  color: var(--encre);
  background: var(--fond);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

img, svg, video { max-width: 100%; display: block; }

a { color: var(--primaire-800); text-decoration: none; }
a:hover { color: var(--primaire-600); }

h1, h2, h3, h4 {
  margin: 0 0 .5em;
  line-height: 1.15;
  letter-spacing: -.028em;
  font-weight: 800;
}

h1 { font-size: clamp(2.2rem, 5vw, 3.7rem); letter-spacing: -.038em; }
h2 { font-size: clamp(1.6rem, 3.1vw, 2.4rem); letter-spacing: -.034em; }
h3 { font-size: 1.15rem; font-weight: 700; }

p { margin: 0 0 1em; }
strong, b { font-weight: 700; }

ul { margin: 0; padding: 0; list-style: none; }

:focus-visible {
  outline: 3px solid var(--accent-500);
  outline-offset: 2px;
  border-radius: 6px;
}

::selection { background: var(--primaire-100); color: var(--primaire-900); }

.saut-contenu {
  position: absolute;
  left: -9999px;
  top: 0;
  background: var(--primaire-800);
  color: var(--sur-primaire);
  padding: .75rem 1.25rem;
  border-radius: 0 0 var(--rayon-sm) 0;
  z-index: 999;
}
.saut-contenu:focus { left: 0; top: 0; color: var(--sur-primaire); }

.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;
}

/* ========================================================= 4. mise en page */

.conteneur {
  width: 100%;
  max-width: var(--largeur);
  margin-inline: auto;
  padding-inline: 1.25rem;
}

.section { padding: 4.75rem 0; }
.section--serree { padding: 2.5rem 0; }
.section--claire { background: var(--surface-2); border-block: 1px solid var(--bordure); }

.section__entete {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1.5rem;
  margin-bottom: 2.25rem;
}
.section__entete p { margin: 0; color: var(--gris-500); max-width: 58ch; font-size: 1.02rem; }
.section__entete h2 { margin-bottom: .4rem; }

.section--centree .section__entete {
  flex-direction: column;
  align-items: center;
  text-align: center;
}
.section--centree .section__entete p { margin-inline: auto; }

.surtitre {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  margin-bottom: .7rem;
  padding: .3rem .7rem .3rem .55rem;
  border-radius: var(--rayon-rond);
  background: var(--primaire-100);
  color: var(--sur-primaire-clair);
  font-size: .74rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.surtitre::before {
  content: "";
  width: 6px; height: 6px;
  border-radius: 50%;
  background: var(--primaire-600);
}

/* Apparition au défilement. Conditionnée à la classe « js » posée dès le
   <head> : sans JavaScript, rien n'est masqué et la page reste lisible. */
.js .revele {
  opacity: 0;
  transform: translateY(18px);
  transition: opacity .55s ease, transform .55s cubic-bezier(.22, .8, .3, 1);
}
.js .revele--vu { opacity: 1; transform: none; }

/* ============================================================= 5. boutons */

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  padding: .82rem 1.45rem;
  border: 1px solid transparent;
  border-radius: var(--rayon-rond);
  font: inherit;
  font-size: .84rem;
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: .05em;
  text-transform: uppercase;
  cursor: pointer;
  text-align: center;
  transition: var(--transition);
}

/* L'action principale est un aplat vert acide ; sa lueur remplace l'ombre,
   qui ne se verrait pas sur un fond noir. */
.btn--primaire {
  background: var(--primaire-800);
  color: var(--sur-primaire);
  box-shadow: 0 6px 22px -8px var(--primaire-800);
}
.btn--primaire:hover {
  background: var(--primaire-900);
  color: var(--sur-primaire);
  transform: translateY(-1px);
  box-shadow: 0 10px 30px -8px var(--primaire-800);
}

.btn--or { background: var(--accent-500); color: var(--sur-accent); }
.btn--or:hover { background: var(--accent-600); color: #fff; transform: translateY(-1px); }

.btn--fantome {
  background: transparent;
  border-color: var(--bordure-forte);
  color: var(--encre);
}
.btn--fantome:hover { border-color: var(--primaire-600); color: var(--primaire-800); background: var(--primaire-050); }

.btn--clair {
  background: rgba(255, 255, 255, .16);
  border-color: rgba(255, 255, 255, .38);
  color: #fff;
  backdrop-filter: blur(6px);
}
.btn--clair:hover { background: rgba(255, 255, 255, .28); color: #fff; }

.btn--bloc { width: 100%; }
.btn--petit { padding: .55rem 1rem; font-size: .76rem; }
.btn svg { width: 18px; height: 18px; flex: none; }

.btn--whatsapp { background: #25D366; border-color: #25D366; color: #06301A; }
.btn--whatsapp:hover { background: #1EBE5A; border-color: #1EBE5A; color: #06301A; }
.btn--whatsapp svg { width: 17px; height: 17px; }

/* ============================================================= 6. en-tête */

.entete {
  position: sticky;
  top: 0;
  z-index: 100;
  background: var(--entete-fond);
  backdrop-filter: saturate(180%) blur(14px);
  border-bottom: 1px solid var(--bordure);
}

.entete__inner {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  min-height: 76px;
}

.logo {
  display: inline-flex;
  align-items: center;
  gap: .6rem;
  font-weight: 800;
  font-size: 1.3rem;
  letter-spacing: -.045em;
  color: var(--encre);
  white-space: nowrap;
}
.logo:hover { color: var(--encre); }

.logo__marque {
  display: grid;
  place-items: center;
  width: 40px; height: 40px;
  flex: 0 0 40px;
}
.logo__marque svg { width: 40px; height: 40px; display: block; }

/* « Loca » en encre, « Track » en vert — le deux-tons du logo. */
.logo em { font-style: normal; color: var(--primaire-800); }
.logo__mot { display: inline-block; }

.pied .logo__marque { --logo-corps: #7FB2E8; --logo-oeil: #0A1E35; }
.pied .logo em { color: var(--accent-500); }

.nav { margin-left: auto; }

.nav__liste {
  display: flex;
  align-items: center;
  gap: .15rem;
}

.nav__lien {
  display: block;
  padding: .6rem .9rem;
  border-radius: var(--rayon-rond);
  font-size: .95rem;
  font-weight: 600;
  color: var(--gris-700);
  transition: var(--transition);
}
.nav__lien { color: var(--gris-500); }
.nav__lien:hover { background: var(--surface-2); color: var(--encre); }
.nav__lien[aria-current="page"] { color: var(--primaire-800); background: transparent; }

.nav .btn { margin-left: .5rem; }

.nav__bascule {
  display: none;
  margin-left: auto;
  width: 46px; height: 46px;
  border: 1px solid var(--bordure-forte);
  border-radius: var(--rayon-sm);
  background: var(--carte);
  cursor: pointer;
  padding: 0;
}
.nav__bascule span,
.nav__bascule span::before,
.nav__bascule span::after {
  display: block;
  width: 18px; height: 2px;
  margin-inline: auto;
  background: var(--encre);
  border-radius: 2px;
  transition: var(--transition);
}
.nav__bascule span { position: relative; }
.nav__bascule span::before,
.nav__bascule span::after { content: ""; position: absolute; left: 0; }
.nav__bascule span::before { top: -6px; }
.nav__bascule span::after { top: 6px; }
.nav__bascule[aria-expanded="true"] span { background: transparent; }
.nav__bascule[aria-expanded="true"] span::before { top: 0; transform: rotate(45deg); }
.nav__bascule[aria-expanded="true"] span::after { top: 0; transform: rotate(-45deg); }

/* Compte connecté */
#zone-compte { display: flex; align-items: center; gap: .1rem; }
.nav__lien--compte { display: inline-flex; align-items: center; gap: .5rem; }
.nav__lien--sortie {
  border: 0;
  background: none;
  font: inherit;
  font-size: .85rem;
  font-weight: 600;
  color: var(--gris-500);
  cursor: pointer;
  padding: .6rem .8rem;
  border-radius: var(--rayon-rond);
}
.nav__lien--sortie:hover { background: var(--rouge-100); color: var(--rouge); }

.pastille {
  display: grid;
  place-items: center;
  width: 28px; height: 28px;
  border-radius: 50%;
  background: linear-gradient(140deg, var(--primaire-800), var(--primaire-600));
  color: var(--sur-primaire);
  font-size: .72rem;
  font-weight: 800;
}

.pastille-role {
  font-style: normal;
  font-size: .66rem;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--accent-600);
}

/* =============================================================== 7. héros */

.heros {
  position: relative;
  isolation: isolate;
  display: grid;
  align-items: center;
  min-height: min(80vh, 660px);
  color: #fff;
  background: linear-gradient(158deg, var(--aplat-900), var(--aplat-750) 55%, var(--aplat-800));
}

/* Photo de fond : elle porte l'ambiance, le voile garantit la lisibilité. */
.heros__fond {
  position: absolute;
  inset: 0;
  z-index: -2;
  width: 100%; height: 100%;
  object-fit: cover;
  object-position: 50% 62%;
}
.heros::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: var(--voile-photo);
}

.heros__contenu {
  display: grid;
  gap: 1rem;
  max-width: 45rem;
  padding: 5.5rem 0 6.5rem;
}

.heros__oeil {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  justify-self: start;
  padding: .4rem .9rem;
  border: 1px solid rgba(255, 255, 255, .3);
  border-radius: var(--rayon-rond);
  background: rgba(255, 255, 255, .12);
  backdrop-filter: blur(6px);
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.heros__oeil::before {
  content: "";
  width: 7px; height: 7px;
  border-radius: 50%;
  background: var(--accent-500);
  box-shadow: 0 0 0 3px rgba(233, 169, 58, .3);
}

.heros h1 {
  color: #fff;
  margin: 0;
  text-shadow: 0 2px 24px rgba(0, 0, 0, .28);
}
.heros h1 em { font-style: normal; color: var(--primaire-800); }

.heros__texte {
  max-width: 52ch;
  margin: 0;
  font-size: 1.1rem;
  color: rgba(255, 255, 255, .88);
  text-shadow: 0 1px 12px rgba(0, 0, 0, .3);
}

/* Preuves de confiance, juste sous le titre */
.puces-confiance {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem .6rem;
  margin-top: .35rem;
}
.puces-confiance li {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  padding: .38rem .8rem;
  border-radius: var(--rayon-rond);
  background: rgba(255, 255, 255, .13);
  border: 1px solid rgba(255, 255, 255, .22);
  font-size: .84rem;
  font-weight: 600;
  color: #fff;
}
.puces-confiance li::before {
  content: "";
  flex: none;
  width: 15px; height: 15px;
  background-color: var(--accent-500);
  -webkit-mask: var(--coche) center / 13px no-repeat;
  mask: var(--coche) center / 13px no-repeat;
}

/* Vignette du bien mis en avant, posée en bas du héros */
.heros__vignette {
  display: none;
  position: absolute;
  right: max(1.25rem, calc(50vw - var(--largeur) / 2 + 1.25rem));
  bottom: 7.5rem;
  z-index: 3;
  align-items: center;
  gap: .9rem;
  width: min(24rem, 40vw);
  padding: .9rem 1.15rem;
  border-radius: var(--rayon);
  background: var(--carte);
  color: var(--encre);
  box-shadow: var(--ombre-lg);
  transition: var(--transition);
}
.heros__vignette:hover { color: var(--encre); transform: translateY(-3px); }
.heros__vignette strong { display: block; font-size: .97rem; }
.heros__vignette span { font-size: .82rem; color: var(--gris-500); }
.heros__vignette .prix {
  margin-left: auto;
  font-weight: 800;
  color: var(--primaire-800);
  white-space: nowrap;
  font-size: .95rem;
}

/* Chiffres clés, en bande sous la recherche */
.heros__stats {
  display: flex;
  flex-wrap: wrap;
  gap: 2.75rem;
  padding: 1.5rem 0 0;
  margin: 0;
}
.heros__stat strong {
  display: block;
  font-size: 1.7rem;
  font-weight: 800;
  letter-spacing: -.04em;
  color: var(--accent-500);
  line-height: 1.1;
}
.heros__stat span { font-size: .87rem; color: rgba(255, 255, 255, .78); }

/* La même trame, mais posée sur fond clair sous la barre de recherche */
.bande-chiffres {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 1.25rem;
  margin: 0;
  padding: 1.5rem 1.75rem;
  border: 1px solid var(--bordure);
  border-radius: var(--rayon);
  background: var(--carte);
  box-shadow: var(--ombre-sm);
}
.bande-chiffres .heros__stat { text-align: center; }
.bande-chiffres .heros__stat strong { color: var(--primaire-800); font-size: 1.85rem; }
.bande-chiffres .heros__stat span { color: var(--gris-500); }

/* Le visuel latéral n'est plus utilisé sur l'accueil, mais reste stylé
   pour toute page qui voudrait reprendre l'ancienne mise en page. */
.heros__grille { display: grid; gap: 2.5rem; padding: 3.5rem 0; align-items: center; }
.heros__visuel {
  position: relative;
  border-radius: var(--rayon-lg);
  overflow: hidden;
  box-shadow: var(--ombre-lg);
}
.heros__visuel img { width: 100%; height: 100%; object-fit: cover; }

/* ============================================================ 8. recherche */

.recherche {
  display: grid;
  grid-template-columns: repeat(4, 1fr) auto;
  gap: .35rem;
  align-items: end;
  padding: .65rem;
  border-radius: var(--rayon-lg);
  background: var(--carte);
  box-shadow: var(--ombre-lg);
}
.recherche--flottante { position: relative; z-index: 5; margin-top: -3.25rem; }

/* Onglets Louer / Acheter — segmented control posé au-dessus de la carte */
.recherche__onglets {
  grid-column: 1 / -1;
  display: flex;
  gap: .25rem;
  padding: .25rem;
  margin-bottom: .35rem;
  border-radius: var(--rayon-rond);
  background: var(--surface-2);
  width: fit-content;
}
.recherche__onglets input { position: absolute; opacity: 0; pointer-events: none; }
.recherche__onglets label {
  padding: .5rem 1.15rem;
  border-radius: var(--rayon-rond);
  font-size: .88rem;
  font-weight: 700;
  color: var(--gris-500);
  cursor: pointer;
  transition: var(--transition);
  white-space: nowrap;
}
.recherche__onglets label:hover { color: var(--encre); }
.recherche__onglets input:checked + label {
  background: var(--carte);
  color: var(--primaire-800);
  box-shadow: var(--ombre-sm);
}
.recherche__onglets input:focus-visible + label { outline: 3px solid var(--accent-500); outline-offset: 2px; }

/* Chaque critère occupe une colonne séparée par un filet fin */
.recherche > .champ {
  padding: .5rem .85rem;
  border-radius: var(--rayon);
  transition: var(--transition);
}
.recherche > .champ + .champ { box-shadow: inset 1px 0 0 var(--bordure); }
.recherche > .champ:hover { background: var(--surface-3); }
.recherche > .champ > label { margin-bottom: .1rem; }
.recherche > .champ input,
.recherche > .champ select {
  padding: 0;
  border: 0;
  background: none;
  font-size: .98rem;
  font-weight: 600;
  height: 1.9rem;
}
.recherche > .champ input:focus,
.recherche > .champ select:focus { box-shadow: none; }

.recherche .btn {
  align-self: stretch;
  min-height: 56px;
  min-width: 56px;
  padding-inline: 1.5rem;
}

.champ { display: flex; flex-direction: column; gap: .25rem; min-width: 0; }
.champ > label {
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .09em;
  text-transform: uppercase;
  color: var(--gris-500);
}

.champ input,
.champ select,
.champ textarea {
  width: 100%;
  padding: .7rem .8rem;
  border: 1px solid var(--bordure-forte);
  border-radius: var(--rayon-sm);
  background: var(--carte);
  font: inherit;
  font-size: .95rem;
  color: var(--encre);
  transition: var(--transition);
}
.champ textarea { resize: vertical; min-height: 130px; line-height: 1.55; }
.champ input:hover, .champ select:hover, .champ textarea:hover { border-color: var(--gris-300); }
.champ input:focus, .champ select:focus, .champ textarea:focus {
  outline: none;
  border-color: var(--primaire-600);
  box-shadow: 0 0 0 3px var(--primaire-100);
}
.champ__aide { font-size: .78rem; color: var(--gris-500); }
.champ__erreur { font-size: .8rem; color: var(--rouge); font-weight: 600; min-height: 1.1em; }
.champ input[aria-invalid="true"],
.champ select[aria-invalid="true"],
.champ textarea[aria-invalid="true"] { border-color: var(--rouge); background: var(--rouge-100); }

/* Raccourcis de recherche sous la barre */
.raccourcis {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .45rem;
  margin-top: 1.1rem;
  font-size: .88rem;
  color: var(--gris-500);
}
.raccourcis a {
  padding: .32rem .8rem;
  border: 1px solid var(--bordure);
  border-radius: var(--rayon-rond);
  background: var(--carte);
  color: var(--gris-700);
  font-weight: 600;
  transition: var(--transition);
}
.raccourcis a:hover { border-color: var(--primaire-600); color: var(--primaire-800); background: var(--primaire-050); }

/* ========================================================= 9. cartes bien */

.grille-biens {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(288px, 1fr));
  gap: 1.75rem 1.5rem;
}

/* Parti pris repris des grandes plateformes de médias : pas de cadre autour
   de la carte, la photo porte le coin arrondi et la légende se pose dessous,
   à même le fond. La photo respire, la page respire. */
.bien-carte {
  display: flex;
  flex-direction: column;
  background: transparent;
  border: 0;
  transition: transform var(--transition);
}
.bien-carte:hover { transform: translateY(-4px); }

.bien-carte__media {
  position: relative;
  aspect-ratio: 4 / 3;
  background: var(--surface-2);
  border-radius: var(--rayon);
  overflow: hidden;
  transition: box-shadow var(--transition);
}
.bien-carte:hover .bien-carte__media { box-shadow: var(--ombre-md); }
.bien-carte__media img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform 600ms cubic-bezier(.22, .8, .3, 1);
}
.bien-carte:hover .bien-carte__media img { transform: scale(1.06); }

.coeur {
  position: absolute;
  right: .7rem; bottom: .7rem;
  z-index: 2;
  display: grid;
  place-items: center;
  width: 36px; height: 36px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: rgba(255, 255, 255, .92);
  backdrop-filter: blur(4px);
  box-shadow: var(--ombre-sm);
  cursor: pointer;
  transition: var(--transition);
}
.coeur svg { width: 18px; height: 18px; fill: none; stroke: #64748C; stroke-width: 2; }
.coeur:hover { transform: scale(1.08); background: #fff; }
.coeur:hover svg { stroke: var(--rouge); }
.coeur--actif svg { fill: var(--rouge); stroke: var(--rouge); }

.dispo {
  position: absolute;
  top: .7rem; right: .7rem;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  gap: .38rem;
  padding: .34rem .7rem;
  border-radius: var(--rayon-rond);
  background: rgba(255, 255, 255, .94);
  backdrop-filter: blur(4px);
  box-shadow: var(--ombre-sm);
  font-size: .74rem;
  font-weight: 800;
  white-space: nowrap;
}
.dispo::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
.dispo--succes  { color: #0A5732; }
.dispo--attente { color: #85600A; }
.dispo--neutre  { color: #61748C; }

.bien-entete .dispo { position: static; box-shadow: none; background: var(--neutre-100); backdrop-filter: none; color: var(--gris-700); }

.bien-carte__etiquettes {
  position: absolute;
  top: .7rem; left: .7rem;
  display: flex;
  gap: .4rem;
  flex-wrap: wrap;
}

.etiquette {
  padding: .3rem .65rem;
  border-radius: var(--rayon-rond);
  font-size: .71rem;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
  background: rgba(255, 255, 255, .94);
  color: #3A4A5E;
  box-shadow: var(--ombre-sm);
}
.etiquette--vente { background: var(--primaire-800); color: var(--sur-primaire); }
.etiquette--location { background: var(--accent-500); color: #0A1E35; }
.etiquette--vedette { background: var(--rouge); color: #fff; }

.bien-carte__corps { display: flex; flex-direction: column; flex: 1; padding: .95rem .15rem 0; }

.bien-carte__prix {
  font-size: 1.28rem;
  font-weight: 800;
  letter-spacing: -.035em;
  color: var(--encre);
  margin-bottom: .2rem;
}
.bien-carte__prix small { font-size: .78rem; font-weight: 600; color: var(--gris-500); letter-spacing: 0; }

.bien-carte__titre { font-size: .97rem; font-weight: 700; margin-bottom: .35rem; line-height: 1.35; }
.bien-carte__titre a { color: var(--encre); }
.bien-carte__titre a:hover { color: var(--primaire-800); }
/* Toute la carte est cliquable, sans perdre le lien réel pour le clavier */
.bien-carte__titre a::after { content: ""; position: absolute; inset: 0; }
.bien-carte { position: relative; }

.bien-carte__lieu {
  display: flex;
  align-items: center;
  gap: .35rem;
  font-size: .88rem;
  color: var(--gris-500);
  min-width: 0;
}
.bien-carte__lieu svg { width: 14px; height: 14px; flex: none; }
.bien-carte__lieu span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.bien-carte__pied {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: .55rem .8rem;
  margin-top: .9rem;
}
/* Discret : la carte entière est déjà cliquable, ce bouton n'est qu'un
   repère visuel — inutile de le peindre en vert plein trois fois par rangée. */
.bien-carte__cta {
  flex: none;
  position: relative;
  z-index: 1;
  padding: .35rem 0;
  background: none;
  border: 0;
  box-shadow: none;
  color: var(--primaire-800);
}
.bien-carte:hover .bien-carte__cta { color: var(--primaire-600); text-decoration: underline; }
.bien-carte__pied .bien-carte__lieu { flex: 1 1 9rem; }

.bien-carte__specs {
  display: flex;
  flex-wrap: wrap;
  gap: .9rem;
  margin-top: auto;
  padding-top: .9rem;
  border-top: 1px solid var(--bordure);
  font-size: .85rem;
  color: var(--gris-700);
}
.bien-carte__specs li { display: flex; align-items: center; gap: .35rem; }
.bien-carte__specs svg { width: 15px; height: 15px; color: var(--primaire-600); flex: none; }

/* ================================================ 10. sections d'accueil */

/* --- villes --- */
.grille-villes {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 1.1rem;
}

.ville-carte {
  position: relative;
  display: block;
  aspect-ratio: 4 / 5;
  border-radius: var(--rayon);
  overflow: hidden;
  color: #fff;
  box-shadow: var(--ombre-sm);
  transition: var(--transition);
}
.ville-carte:hover { transform: translateY(-5px); box-shadow: var(--ombre-md); color: #fff; }
.ville-carte img {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform 700ms cubic-bezier(.22, .8, .3, 1);
}
.ville-carte:hover img { transform: scale(1.07); }
.ville-carte::after {
  content: "";
  position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(8, 20, 35, .9) 6%, rgba(8, 20, 35, .1) 58%);
}
.ville-carte__texte { position: absolute; left: 1.1rem; right: 1.1rem; bottom: 1rem; z-index: 1; }
.ville-carte__texte strong { display: block; font-size: 1.15rem; font-weight: 800; letter-spacing: -.02em; }
.ville-carte__texte span { font-size: .84rem; opacity: .85; }

/* --- atouts --- */
.grille-atouts {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 1.25rem;
}

.atout {
  padding: 1.75rem;
  background: var(--carte);
  border: 1px solid var(--bordure);
  border-radius: var(--rayon);
  transition: var(--transition);
}
.atout:hover { border-color: var(--bordure-forte); box-shadow: var(--ombre-md); transform: translateY(-3px); }
.atout__icone {
  display: grid;
  place-items: center;
  width: 50px; height: 50px;
  margin-bottom: 1.1rem;
  border-radius: 14px;
  background: var(--primaire-100);
  color: var(--primaire-800);
}
.atout__icone svg { width: 24px; height: 24px; }
.atout h3 { margin-bottom: .4rem; }
.atout p { margin: 0; font-size: .93rem; color: var(--gris-500); }

/* --- étapes : rail horizontal sur grand écran --- */
.etapes {
  counter-reset: etape;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 1.5rem;
}
.etape {
  position: relative;
  display: grid;
  gap: .75rem;
  align-content: start;
}
.etape::before {
  counter-increment: etape;
  content: counter(etape);
  display: grid;
  place-items: center;
  width: 40px; height: 40px;
  border-radius: 50%;
  background: var(--primaire-800);
  color: var(--sur-primaire);
  font-weight: 800;
  font-size: 1rem;
  box-shadow: 0 0 0 6px var(--primaire-100);
}
/* Le filet qui relie les étapes s'arrête sur la dernière */
.etape::after {
  content: "";
  position: absolute;
  top: 20px; left: 52px; right: -1.5rem;
  height: 2px;
  background: repeating-linear-gradient(90deg, var(--bordure-forte) 0 6px, transparent 6px 12px);
}
.etape:last-child::after { display: none; }
.etape h3 { margin-bottom: .25rem; font-size: 1.02rem; }
.etape p { margin: 0; font-size: .92rem; color: var(--gris-500); }

/* --- témoignages --- */
.grille-avis {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(290px, 1fr));
  gap: 1.5rem;
}

.avis {
  position: relative;
  display: flex;
  flex-direction: column;
  padding: 1.75rem;
  background: var(--carte);
  border: 1px solid var(--bordure);
  border-radius: var(--rayon);
}
.avis::before {
  content: "”";
  position: absolute;
  top: .1rem; right: 1.1rem;
  font-size: 4.5rem;
  line-height: 1;
  color: var(--primaire-100);
  font-weight: 800;
}
.avis__etoiles { color: var(--accent-500); font-size: 1.05rem; letter-spacing: .12em; margin-bottom: .8rem; }
.avis__texte { flex: 1; font-size: .95rem; color: var(--gris-700); }
.avis__auteur { display: flex; align-items: center; gap: .75rem; margin-top: 1.2rem; padding-top: 1.1rem; border-top: 1px solid var(--bordure); }
.avis__auteur strong { display: block; font-size: .93rem; }
.avis__auteur span { font-size: .84rem; color: var(--gris-500); }

/* --- FAQ --- */
.faq { display: grid; gap: .7rem; max-width: 860px; }

.faq details {
  border: 1px solid var(--bordure);
  border-radius: var(--rayon-sm);
  background: var(--carte);
  transition: var(--transition);
}
.faq details[open] { border-color: var(--primaire-600); box-shadow: var(--ombre-sm); }

.faq summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1.05rem 1.25rem;
  font-weight: 700;
  cursor: pointer;
  list-style: none;
}
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after {
  content: "+";
  flex: none;
  display: grid;
  place-items: center;
  width: 26px; height: 26px;
  border-radius: 50%;
  background: var(--primaire-100);
  color: var(--primaire-800);
  font-size: 1.15rem;
  font-weight: 700;
  line-height: 1;
  transition: var(--transition);
}
.faq details[open] summary::after { content: "−"; background: var(--primaire-800); color: var(--sur-primaire); }
.faq summary:hover { color: var(--primaire-800); }
.faq p { margin: 0; padding: 0 1.25rem 1.25rem; font-size: .94rem; color: var(--gris-700); }

/* --- petits budgets --- */
.ruban-budget {
  display: flex;
  align-items: center;
  gap: .6rem;
  flex-wrap: wrap;
  padding: .95rem 1.25rem;
  margin-bottom: 1.5rem;
  border-radius: var(--rayon-sm);
  background: var(--primaire-100);
  border: 1px solid var(--bord-primaire-clair);
  font-size: .93rem;
  color: var(--sur-primaire-clair);
}
.ruban-budget strong { font-weight: 800; }
.ruban-budget a { margin-left: auto; font-weight: 700; white-space: nowrap; }

/* --- moyens de paiement --- */
.grille-paiement { display: grid; gap: .5rem; }

.paiement {
  display: flex;
  align-items: flex-start;
  gap: .7rem;
  padding: .75rem .9rem;
  border: 1px solid var(--bordure);
  border-radius: var(--rayon-sm);
  cursor: pointer;
  transition: var(--transition);
}
.paiement:hover { border-color: var(--primaire-600); background: var(--surface-3); }
.paiement input { flex: none; margin: .2rem 0 0; accent-color: var(--primaire-800); }
.paiement:has(input:checked) { border-color: var(--primaire-800); background: var(--primaire-100); }
.paiement strong { display: block; font-size: .93rem; }
.paiement span { font-size: .82rem; color: var(--gris-500); }

.badges-paiement { display: flex; flex-wrap: wrap; gap: .45rem; margin-top: .75rem; }
.badges-paiement li {
  padding: .35rem .8rem;
  border-radius: var(--rayon-rond);
  background: var(--primaire-100);
  border: 1px solid var(--bord-primaire-clair);
  color: var(--sur-primaire-clair);
  font-size: .8rem;
  font-weight: 700;
}
.bandeau .badges-paiement li,
.heros .badges-paiement li {
  background: rgba(255, 255, 255, .16);
  border-color: rgba(255, 255, 255, .28);
  color: #fff;
}

/* --- bandeau d'appel à l'action --- */
.bandeau {
  padding: 3.75rem 0;
  color: #fff;
  background:
    radial-gradient(700px 320px at 88% 6%, rgba(233, 169, 58, .28), transparent 62%),
    linear-gradient(140deg, var(--aplat-900), var(--aplat-800));
}
.bandeau__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  flex-wrap: wrap;
}
.bandeau h2 { color: #fff; margin-bottom: .35rem; }
.bandeau p { margin: 0; color: rgba(255, 255, 255, .82); max-width: 54ch; }
.bandeau__actions { display: flex; gap: .75rem; flex-wrap: wrap; }

.lien-whatsapp { display: inline-flex; align-items: center; gap: .45rem; }
.lien-whatsapp svg { width: 15px; height: 15px; flex: none; color: #25D366; }

/* ========================================================== 11. annonces */

/* La liste respire mieux sur une colonne plus large : trois biens de front
   au lieu de deux, sans toucher aux autres pages. */
.page-annonces { --largeur: 1380px; }

.annonces-mise-en-page {
  display: grid;
  grid-template-columns: 300px 1fr;
  gap: 2rem;
  align-items: start;
  padding: 2rem 0 4rem;
}

.filtres {
  position: sticky;
  top: 96px;
  padding: 1.5rem;
  background: var(--carte);
  border: 1px solid var(--bordure);
  border-radius: var(--rayon);
  box-shadow: var(--ombre-sm);
}
.filtres h2 { font-size: 1.05rem; margin-bottom: 1.1rem; }
.filtres .champ + .champ { margin-top: 1rem; }
.filtres__actions { display: flex; gap: .6rem; margin-top: 1.4rem; }

.groupe-boutons { display: flex; gap: .35rem; }
.groupe-boutons input { position: absolute; opacity: 0; pointer-events: none; }
.groupe-boutons label {
  flex: 1;
  padding: .55rem .3rem;
  border: 1px solid var(--bordure-forte);
  border-radius: var(--rayon-sm);
  font-size: .86rem;
  font-weight: 700;
  color: var(--gris-700);
  text-align: center;
  cursor: pointer;
  transition: var(--transition);
}
.groupe-boutons label:hover { border-color: var(--primaire-600); }
.groupe-boutons input:checked + label {
  background: var(--primaire-800);
  border-color: var(--primaire-800);
  color: var(--sur-primaire);
}
.groupe-boutons input:focus-visible + label { outline: 3px solid var(--accent-500); outline-offset: 2px; }

.resultats__barre {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
  margin-bottom: 1.5rem;
}
.resultats__compte { font-weight: 700; font-size: 1.02rem; }
.resultats__compte strong { color: var(--primaire-800); }
.resultats__tri { display: flex; align-items: center; gap: .5rem; font-size: .9rem; color: var(--gris-500); }
.resultats__tri select {
  padding: .5rem .7rem;
  border: 1px solid var(--bordure-forte);
  border-radius: var(--rayon-sm);
  font: inherit;
  font-size: .9rem;
  font-weight: 600;
  background: var(--carte);
  color: var(--encre);
}

.vide {
  padding: 3.5rem 1.5rem;
  text-align: center;
  background: var(--carte);
  border: 1px dashed var(--gris-300);
  border-radius: var(--rayon);
}
.vide h3 { margin-bottom: .35rem; }
.vide p { color: var(--gris-500); margin-bottom: 1.25rem; }

.ariane { padding: 1.15rem 0; font-size: .87rem; color: var(--gris-500); }
.ariane ol { display: flex; flex-wrap: wrap; gap: .45rem; list-style: none; margin: 0; padding: 0; }
.ariane li::after { content: "›"; margin-left: .45rem; color: var(--gris-300); }
.ariane li:last-child::after { content: ""; }

/* ======================================================== 12. fiche bien */

.bien-detail { padding-bottom: 4rem; }

.bien-detail__grille {
  display: grid;
  grid-template-columns: 1fr 360px;
  gap: 2rem;
  align-items: start;
}

.galerie {
  border-radius: var(--rayon);
  overflow: hidden;
  border: 1px solid var(--bordure);
  background: var(--carte);
}
.galerie__principale { aspect-ratio: 16 / 10; background: var(--surface-2); }
.galerie__principale img { width: 100%; height: 100%; object-fit: cover; }
.galerie__miniatures { display: grid; grid-template-columns: repeat(4, 1fr); gap: .5rem; padding: .5rem; }
.galerie__miniatures button {
  padding: 0;
  border: 2px solid transparent;
  border-radius: var(--rayon-xs);
  overflow: hidden;
  background: none;
  cursor: pointer;
  aspect-ratio: 4 / 3;
  transition: var(--transition);
}
.galerie__miniatures button[aria-current="true"] { border-color: var(--primaire-800); }
.galerie__miniatures img { width: 100%; height: 100%; object-fit: cover; }

.bloc {
  padding: 1.6rem;
  margin-top: 1.5rem;
  background: var(--carte);
  border: 1px solid var(--bordure);
  border-radius: var(--rayon);
}
.bloc h2 { font-size: 1.2rem; margin-bottom: .9rem; }

/* Les filets sont portés par les cellules elles-mêmes plutôt que par un fond
   qui transparaît : la fin de la dernière ligne reste blanche. */
.fiche-specs {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 1px;
  padding: 1px;
  background: var(--carte);
  border: 1px solid var(--bordure);
  border-radius: var(--rayon-sm);
  overflow: hidden;
}
.fiche-specs > div { padding: 1rem; background: var(--carte); box-shadow: 0 0 0 1px var(--bordure); }
.fiche-specs dt { font-size: .74rem; letter-spacing: .07em; text-transform: uppercase; color: var(--gris-500); margin-bottom: .2rem; }
.fiche-specs dd { margin: 0; font-weight: 700; font-size: 1.02rem; }

.liste-equipements {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: .6rem 1.25rem;
}
.liste-equipements li { display: flex; align-items: center; gap: .55rem; font-size: .93rem; color: var(--gris-700); }
.liste-equipements li::before {
  content: "";
  flex: none;
  width: 18px; height: 18px;
  background-color: var(--primaire-800);
  -webkit-mask: var(--coche) center / 15px no-repeat;
  mask: var(--coche) center / 15px no-repeat;
}

.panneau-agent { position: sticky; top: 96px; }
.panneau-agent .bloc { margin-top: 0; }
.panneau-agent .bloc + .bloc { margin-top: 1rem; }

.prix-fort {
  font-size: 2rem;
  font-weight: 800;
  letter-spacing: -.04em;
  color: var(--encre);
  line-height: 1.12;
}
.prix-fort small { display: block; font-size: .84rem; font-weight: 600; color: var(--gris-500); letter-spacing: 0; }

.agent {
  display: flex;
  align-items: center;
  gap: .85rem;
  padding-bottom: 1rem;
  margin-bottom: 1rem;
  border-bottom: 1px solid var(--bordure);
}
.agent__avatar {
  display: grid;
  place-items: center;
  flex: none;
  width: 50px; height: 50px;
  border-radius: 50%;
  background: linear-gradient(140deg, var(--primaire-800), var(--primaire-600));
  color: var(--sur-primaire);
  font-weight: 800;
  font-size: 1.05rem;
}
.agent__nom { display: block; font-weight: 700; }
.agent__agence { display: block; font-size: .86rem; color: var(--gris-500); }

.pile { display: grid; gap: .6rem; }

.encart {
  display: flex;
  gap: .7rem;
  padding: .95rem 1.05rem;
  border-radius: var(--rayon-sm);
  background: var(--accent-100);
  border: 1px solid var(--bord-accent);
  font-size: .87rem;
  color: var(--sur-accent-clair);
}
.encart svg { flex: none; width: 18px; height: 18px; margin-top: .15rem; }
.encart p:last-child { margin-bottom: 0; }
.encart--info { background: var(--primaire-100); border-color: var(--bord-primaire-clair); color: var(--sur-primaire-clair); }
.encart code {
  font-family: ui-monospace, "Cascadia Mono", Consolas, monospace;
  background: rgba(255, 255, 255, .1);
  padding: .1rem .35rem;
  border-radius: 4px;
}

.bien-entete { margin-bottom: 1.4rem; }
.bien-entete__etiquettes { display: flex; flex-wrap: wrap; gap: .4rem; margin-bottom: .85rem; }
.bien-entete h1 { font-size: clamp(1.6rem, 3vw, 2.35rem); margin-bottom: .45rem; }
.bien-entete .bien-carte__lieu { margin-bottom: 0; font-size: .97rem; }

.reference {
  font-family: ui-monospace, "Cascadia Mono", "Consolas", monospace;
  font-size: .78rem;
  letter-spacing: .04em;
  color: var(--primaire-800);
  background: var(--primaire-100);
  padding: .25rem .55rem;
  border-radius: 6px;
}

.texte-long { color: var(--gris-700); }
.texte-long p:last-child { margin-bottom: 0; }

/* Budget à prévoir */
.tableau-frais { width: 100%; border-collapse: collapse; font-size: .93rem; }
.tableau-frais th,
.tableau-frais td { padding: .65rem .2rem; text-align: left; border-bottom: 1px solid var(--bordure); }
.tableau-frais td:last-child,
.tableau-frais th:last-child { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.tableau-frais thead th {
  font-size: .73rem;
  letter-spacing: .07em;
  text-transform: uppercase;
  color: var(--gris-500);
  font-weight: 800;
}
.tableau-frais tbody td { color: var(--gris-700); }
.tableau-frais tbody td:last-child { font-weight: 700; color: var(--encre); }
.tableau-frais tfoot td {
  padding-top: .85rem;
  border-bottom: 0;
  font-weight: 800;
  font-size: 1.05rem;
  color: var(--primaire-800);
}
.tableau-frais .detail { display: block; font-size: .8rem; color: var(--gris-500); font-weight: 400; }

/* Barre d'action collante en bas d'écran, sur mobile */
.barre-mobile {
  display: none;
  position: fixed;
  inset: auto 0 0 0;
  z-index: 90;
  gap: .6rem;
  padding: .7rem 1rem calc(.7rem + env(safe-area-inset-bottom));
  background: var(--carte);
  border-top: 1px solid var(--bordure);
  box-shadow: 0 -6px 24px rgba(13, 27, 42, .12);
}
.barre-mobile .btn { flex: 1 1 0; min-width: 0; padding-inline: .85rem; }
.barre-mobile__prix {
  display: grid;
  align-content: center;
  flex: 0 1 auto;
  margin: 0;
  font-size: .97rem;
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: -.03em;
  white-space: nowrap;
}
.barre-mobile__prix small { display: block; font-size: .7rem; font-weight: 600; color: var(--gris-500); letter-spacing: 0; }

/* ====================================================== 13. formulaires */

.formulaire {
  display: grid;
  gap: 1.15rem;
  padding: 1.85rem;
  background: var(--carte);
  border: 1px solid var(--bordure);
  border-radius: var(--rayon);
  box-shadow: var(--ombre-sm);
}
.formulaire__duo { display: grid; grid-template-columns: 1fr 1fr; gap: 1.15rem; }
.formulaire fieldset { border: 0; margin: 0; padding: 0; display: grid; gap: 1.15rem; }
.formulaire legend {
  padding: 0 0 .35rem;
  font-size: .76rem;
  font-weight: 800;
  letter-spacing: .11em;
  text-transform: uppercase;
  color: var(--accent-600);
}
.formulaire__trio { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.15rem; }
.formulaire__separateur { height: 1px; background: var(--bordure); border: 0; }

.case { display: flex; align-items: flex-start; gap: .65rem; font-size: .92rem; color: var(--gris-700); }
.case input { flex: none; width: 18px; height: 18px; margin: .18rem 0 0; accent-color: var(--primaire-800); }

.alerte {
  display: none;
  gap: .7rem;
  padding:1rem 1.15rem;
  border-radius: var(--rayon-sm);
  font-size: .93rem;
}
.alerte--visible { display: flex; }
.alerte--succes { background: var(--primaire-100); border: 1px solid var(--bord-primaire-clair); color: var(--sur-primaire-clair); }
.alerte--erreur { background: var(--rouge-100); border: 1px solid var(--bord-rouge); color: var(--sur-rouge); }
.alerte svg { flex: none; width: 20px; height: 20px; margin-top: .1rem; }
.alerte strong { display: block; }

/* Dépôt photos & vidéo */
.depot {
  display: grid;
  place-items: center;
  gap: .35rem;
  padding: 1.85rem 1.25rem;
  border: 2px dashed var(--gris-300);
  border-radius: var(--rayon);
  background: var(--surface-3);
  text-align: center;
  cursor: pointer;
  transition: var(--transition);
}
.depot:hover { border-color: var(--primaire-600); background: var(--primaire-050); }
.depot--actif { border-color: var(--primaire-800); background: var(--primaire-100); }
.depot:focus-within { border-color: var(--primaire-600); box-shadow: 0 0 0 3px var(--primaire-100); }
.depot svg { width: 32px; height: 32px; color: var(--primaire-800); }
.depot strong { font-size: .97rem; }
.depot span { font-size: .85rem; color: var(--gris-500); }

.apercus {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(126px, 1fr));
  gap: .7rem;
  margin-top: .9rem;
}
.apercus:empty { margin-top: 0; }

.apercu {
  position: relative;
  aspect-ratio: 4 / 3;
  border-radius: var(--rayon-sm);
  overflow: hidden;
  border: 1px solid var(--bordure);
  background: var(--surface-2);
}
.apercu img { width: 100%; height: 100%; object-fit: cover; }

.apercu__badge {
  position: absolute;
  top: .35rem; left: .35rem;
  padding: .18rem .45rem;
  border-radius: var(--rayon-rond);
  background: var(--primaire-800);
  color: var(--sur-primaire);
  font-size: .66rem;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.apercu__actions {
  position: absolute;
  inset: auto 0 0 0;
  display: flex;
  justify-content: space-between;
  gap: 1px;
  background: rgba(8, 20, 35, .78);
}
.apercu__actions button {
  flex: 1;
  padding: .35rem 0;
  border: 0;
  background: none;
  color: #fff;
  font: inherit;
  font-size: .8rem;
  line-height: 1;
  cursor: pointer;
  transition: var(--transition);
}
.apercu__actions button:hover:not(:disabled) { background: rgba(255, 255, 255, .2); }
.apercu__actions button:disabled { opacity: .3; cursor: default; }
.apercu__actions [data-action="supprimer"]:hover { background: var(--rouge); }

.media-video {
  position: relative;
  aspect-ratio: 16 / 9;
  border-radius: var(--rayon-sm);
  overflow: hidden;
  background: var(--noir-media);
}
.media-video iframe,
.media-video video {
  position: absolute;
  inset: 0;
  width: 100%; height: 100%;
  border: 0;
  object-fit: contain;
}

/* Contact */
.contact-grille { display: grid; grid-template-columns: 1fr 360px; gap: 2rem; align-items: start; }

.liste-contact li { display: flex; gap: .85rem; padding: 1rem 0; border-bottom: 1px solid var(--bordure); }
.liste-contact li:last-child { border-bottom: 0; }
.liste-contact svg { flex: none; width: 20px; height: 20px; color: var(--primaire-800); margin-top: .2rem; }
.liste-contact strong { display: block; font-size: .93rem; }
.liste-contact span, .liste-contact a { font-size: .93rem; color: var(--gris-500); }
.liste-contact a:hover { color: var(--primaire-800); }

/* ============================================ 14. espaces & tableaux */

.statut {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  padding: .28rem .68rem;
  border-radius: var(--rayon-rond);
  font-size: .76rem;
  font-weight: 800;
  white-space: nowrap;
}
.statut::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.statut--attente { background: var(--accent-100); color: var(--accent-texte); }
.statut--succes  { background: var(--primaire-100); color: var(--sur-primaire-clair); }
.statut--refus   { background: var(--rouge-100); color: var(--sur-rouge); }
.statut--neutre  { background: var(--neutre-100); color: var(--gris-500); }

.cadre-tableau {
  overflow-x: auto;
  border: 1px solid var(--bordure);
  border-radius: var(--rayon);
  background: var(--carte);
}
.tableau { width: 100%; border-collapse: collapse; font-size: .91rem; min-width: 720px; }
.tableau th, .tableau td { padding: .85rem .95rem; text-align: left; vertical-align: top; }
.tableau thead th {
  background: var(--surface-2);
  border-bottom: 1px solid var(--bordure);
  font-size: .72rem;
  letter-spacing: .07em;
  text-transform: uppercase;
  color: var(--gris-500);
  white-space: nowrap;
  font-weight: 800;
}
.tableau tbody tr + tr td { border-top: 1px solid var(--bordure); }
.tableau tbody tr:hover td { background: var(--surface-3); }
.tableau .principal { font-weight: 700; color: var(--encre); display: block; }
.tableau .secondaire { display: block; font-size: .82rem; color: var(--gris-500); margin-top: .1rem; }
.tableau .montant { font-weight: 700; white-space: nowrap; font-variant-numeric: tabular-nums; }
.tableau .actions { display: flex; gap: .4rem; flex-wrap: wrap; }
.tableau code { font-family: ui-monospace, "Cascadia Mono", Consolas, monospace; font-size: .82rem; color: var(--primaire-800); }

.stat-cartes {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 1rem;
  margin-bottom: 2rem;
}
.stat-carte {
  padding: 1.35rem;
  background: var(--carte);
  border: 1px solid var(--bordure);
  border-radius: var(--rayon);
}
.stat-carte strong {
  display: block;
  font-size: 1.8rem;
  font-weight: 800;
  letter-spacing: -.04em;
  color: var(--primaire-800);
  line-height: 1.15;
}
.stat-carte span { font-size: .85rem; color: var(--gris-500); }
.stat-carte--alerte { border-color: var(--accent-500); background: var(--accent-100); }
.stat-carte--alerte strong { color: var(--accent-600); }

.annonce {
  position: relative;
  padding: 1.3rem 2.5rem 1.3rem 1.4rem;
  margin-bottom: 1.5rem;
  border: 1px solid var(--bord-primaire-clair);
  border-left: 4px solid var(--primaire-800);
  border-radius: var(--rayon);
  background: var(--primaire-100);
  color: var(--sur-primaire-clair);
  box-shadow: var(--ombre-sm);
}
.annonce__titre {
  display: flex;
  align-items: flex-start;
  gap: .6rem;
  font-size: 1.02rem;
  font-weight: 700;
  margin-bottom: .35rem;
}
.annonce__titre svg { flex: none; width: 20px; height: 20px; margin-top: .15rem; color: var(--primaire-800); }
.annonce p { margin: 0 0 .9rem; font-size: .93rem; }
.annonce__actions { display: flex; gap: .5rem; flex-wrap: wrap; }
.annonce__fermer {
  position: absolute;
  top: .7rem; right: .7rem;
  width: 28px; height: 28px;
  border: 0;
  border-radius: 50%;
  background: none;
  color: var(--sur-primaire-clair);
  font-size: .9rem;
  line-height: 1;
  cursor: pointer;
  transition: var(--transition);
}
.annonce__fermer:hover { background: rgba(10, 87, 50, .12); }

.onglets {
  display: flex;
  gap: .3rem;
  flex-wrap: wrap;
  margin-bottom: 1.5rem;
  border-bottom: 1px solid var(--bordure);
}
.onglets button {
  padding: .75rem 1.15rem;
  border: 0;
  border-bottom: 3px solid transparent;
  background: none;
  font: inherit;
  font-size: .95rem;
  font-weight: 700;
  color: var(--gris-500);
  cursor: pointer;
  transition: var(--transition);
}
.onglets button:hover { color: var(--primaire-800); }
.onglets button[aria-selected="true"] { color: var(--primaire-800); border-bottom-color: var(--primaire-800); }
.onglets .compteur {
  margin-left: .4rem;
  padding: .1rem .45rem;
  border-radius: var(--rayon-rond);
  background: var(--primaire-100);
  font-size: .74rem;
  color: var(--primaire-800);
}
.onglets button[aria-selected="true"] .compteur { background: var(--primaire-800); color: var(--sur-primaire); }

.auth-grille { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; align-items: start; padding: 2rem 0 4rem; }
.auth-grille .formulaire { margin: 0; }

/* Tarifs */
.grille-tarifs {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 1.5rem;
  align-items: start;
}

.tarif {
  display: flex;
  flex-direction: column;
  padding: 1.85rem;
  background: var(--carte);
  border: 1px solid var(--bordure);
  border-radius: var(--rayon);
  transition: var(--transition);
}
.tarif:hover { box-shadow: var(--ombre-md); transform: translateY(-3px); }

.tarif--phare { border-color: var(--primaire-800); border-width: 2px; box-shadow: var(--ombre-md); position: relative; }
.tarif--phare::before {
  content: "Le plus choisi";
  position: absolute;
  top: -13px; left: 50%;
  transform: translateX(-50%);
  padding: .3rem .85rem;
  border-radius: var(--rayon-rond);
  background: var(--accent-500);
  color: #0A1E35;
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
  white-space: nowrap;
}

.tarif__nom { font-size: 1.15rem; margin-bottom: .2rem; }
.tarif__cible { font-size: .88rem; color: var(--gris-500); margin-bottom: 1.1rem; min-height: 2.6em; }
.tarif__prix {
  display: flex;
  align-items: baseline;
  gap: .35rem;
  flex-wrap: wrap;
  padding-bottom: 1.1rem;
  margin-bottom: 1.1rem;
  border-bottom: 1px solid var(--bordure);
}
.tarif__prix strong { font-size: 1.95rem; font-weight: 800; letter-spacing: -.04em; color: var(--encre); }
.tarif__prix span { font-size: .87rem; color: var(--gris-500); }

.tarif__liste { display: grid; gap: .6rem; margin-bottom: 1.5rem; }
.tarif__liste li { display: flex; align-items: flex-start; gap: .55rem; font-size: .92rem; color: var(--gris-700); }
.tarif__liste li::before {
  content: "";
  flex: none;
  width: 17px; height: 17px;
  margin-top: .2rem;
  background-color: var(--primaire-800);
  -webkit-mask: var(--coche) center / 15px no-repeat;
  mask: var(--coche) center / 15px no-repeat;
}
.tarif__liste li.absent { color: var(--gris-300); }
.tarif__liste li.absent::before {
  background-color: var(--gris-300);
  -webkit-mask: var(--croix) center / 12px no-repeat;
  mask: var(--croix) center / 12px no-repeat;
}
.tarif .btn { margin-top: auto; }

.grille-options { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 1rem; }
.option { padding: 1.35rem; background: var(--carte); border: 1px solid var(--bordure); border-radius: var(--rayon); }
.option strong { display: block; margin-bottom: .2rem; }
.option .montant { display: block; margin-bottom: .5rem; font-weight: 800; color: var(--accent-600); }
.option p { margin: 0; font-size: .89rem; color: var(--gris-500); }

/* ============================================================ 15. facture */

.facture {
  max-width: 800px;
  margin: 2rem auto 4rem;
  padding: 2.5rem;
  background: var(--carte);
  border: 1px solid var(--bordure);
  border-radius: var(--rayon);
  box-shadow: var(--ombre-sm);
}

.facture__entete {
  display: flex;
  justify-content: space-between;
  gap: 2rem;
  flex-wrap: wrap;
  padding-bottom: 1.75rem;
  border-bottom: 3px solid var(--primaire-800);
}
.facture__entete h1 { font-size: 1.6rem; margin-bottom: .2rem; }
.facture__meta { text-align: right; font-size: .9rem; color: var(--gris-500); }
.facture__meta strong { display: block; font-size: 1.05rem; color: var(--encre); }

.facture__parties { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; padding: 1.75rem 0; }
.facture__partie h2 { font-size: .74rem; letter-spacing: .1em; text-transform: uppercase; color: var(--gris-500); margin-bottom: .6rem; }
.facture__partie p { margin: 0; font-size: .93rem; line-height: 1.7; }
.facture__partie strong { font-size: 1rem; }

.facture__objet { padding: 1rem 1.15rem; margin-bottom: 1.5rem; background: var(--primaire-100); border-radius: var(--rayon-sm); font-size: .93rem; }
.facture__objet strong { display: block; }

.facture__total {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 1rem;
  padding: 1.15rem 1.3rem;
  margin-top: 1.25rem;
  border-radius: var(--rayon-sm);
  background: var(--aplat-900);
  color: #fff;
}
.facture__total span { font-size: .95rem; }
.facture__total strong { font-size: 1.55rem; font-weight: 800; letter-spacing: -.03em; }

.facture__pied { margin-top: 2rem; padding-top: 1.5rem; border-top: 1px solid var(--bordure); font-size: .85rem; color: var(--gris-500); }
.facture__pied p { margin-bottom: .5rem; }

.pile-factures { display: grid; gap: 1.25rem; }

.facture-carte {
  padding: 1.6rem;
  background: var(--carte);
  border: 1px solid var(--bordure);
  border-radius: var(--rayon);
  box-shadow: var(--ombre-sm);
}
.facture-carte__entete {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
  padding-bottom: 1.1rem;
  margin-bottom: 1.1rem;
  border-bottom: 2px solid var(--primaire-800);
}
.facture-carte__entete code {
  display: inline-block;
  margin-bottom: .35rem;
  padding: .2rem .5rem;
  border-radius: 5px;
  background: var(--primaire-100);
  font-family: ui-monospace, "Cascadia Mono", Consolas, monospace;
  font-size: .8rem;
  color: var(--primaire-800);
}
.facture-carte__bien { display: block; font-weight: 700; font-size: 1.05rem; }
.facture-carte__lieu { display: block; font-size: .87rem; color: var(--gris-500); margin-top: .15rem; }
.facture-carte__infos { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 1rem; margin: 1.25rem 0 0; }
.facture-carte__infos dt { font-size: .73rem; letter-spacing: .07em; text-transform: uppercase; color: var(--gris-500); margin-bottom: .2rem; }
.facture-carte__infos dd { margin: 0; font-weight: 700; font-size: .95rem; }
.facture-carte__actions { display: flex; gap: .5rem; flex-wrap: wrap; margin-top: 1.35rem; padding-top: 1.2rem; border-top: 1px solid var(--bordure); }

.facture-actions { display: flex; gap: .7rem; flex-wrap: wrap; justify-content: center; margin-bottom: 1.5rem; }

/* ======================================================= 16. pied de page */

.pied {
  padding: 4rem 0 1.5rem;
  background: var(--aplat-900);
  color: rgba(255, 255, 255, .74);
  font-size: .93rem;
}
.pied__grille {
  display: grid;
  grid-template-columns: 1.7fr repeat(3, 1fr);
  gap: 2.5rem;
  padding-bottom: 2.5rem;
  border-bottom: 1px solid rgba(255, 255, 255, .13);
}
.pied .logo { color: #fff; margin-bottom: .9rem; }
.pied .logo:hover { color: #fff; }
.pied p { max-width: 38ch; }
.pied h3 {
  font-size: .78rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: #fff;
  margin-bottom: 1rem;
}
.pied li { margin-bottom: .55rem; }
.pied a { color: rgba(255, 255, 255, .74); }
.pied a:hover { color: var(--accent-500); }

.choix-theme {
  display: flex;
  align-items: center;
  gap: .5rem;
  flex-wrap: wrap;
  padding-top: 1.5rem;
  font-size: .85rem;
}
.choix-theme > span { color: rgba(255, 255, 255, .55); }
.choix-theme__liste { display: flex; gap: .35rem; flex-wrap: wrap; }
.choix-theme button {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  padding: .38rem .75rem;
  border: 1px solid rgba(255, 255, 255, .22);
  border-radius: var(--rayon-rond);
  background: rgba(255, 255, 255, .06);
  font: inherit;
  font-size: .82rem;
  font-weight: 600;
  color: rgba(255, 255, 255, .78);
  cursor: pointer;
  transition: var(--transition);
}
.choix-theme button:hover { background: rgba(255, 255, 255, .14); color: #fff; }
.choix-theme button[aria-pressed="true"] { background: rgba(255, 255, 255, .16); border-color: rgba(255, 255, 255, .5); color: #fff; }
.choix-theme .pastille-couleur { width: 12px; height: 12px; border-radius: 50%; border: 1px solid rgba(255, 255, 255, .35); }

.pied__bas {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
  padding-top: 1.5rem;
  font-size: .85rem;
  color: rgba(255, 255, 255, .55);
}

/* ========================================================== 17. responsive */

/* La vignette du bien phare ne s'affiche que si elle a la place */
@media (min-width: 1101px) {
  .heros__vignette { display: flex; }
}

@media (max-width: 1000px) {
  .heros__grille { grid-template-columns: 1fr; }
  .annonces-mise-en-page { grid-template-columns: 1fr; }
  .filtres { position: static; }
  .bien-detail__grille { grid-template-columns: 1fr; }
  .panneau-agent { position: static; }
  .contact-grille { grid-template-columns: 1fr; }
  .auth-grille { grid-template-columns: 1fr; }
  .pied__grille { grid-template-columns: 1fr 1fr; }
  .etape::after { display: none; }
}

@media (max-width: 860px) {
  .recherche { grid-template-columns: 1fr 1fr; gap: .5rem; padding: .85rem; }
  .recherche > .champ + .champ { box-shadow: none; }
  .recherche > .champ {
    padding: .55rem .75rem;
    border: 1px solid var(--bordure);
    border-radius: var(--rayon-sm);
  }
  .recherche .btn { grid-column: 1 / -1; min-height: 50px; }
  .recherche--flottante { margin-top: 1.25rem; }
  .formulaire__trio { grid-template-columns: 1fr 1fr; }

  .heros__contenu { padding: 3.5rem 0 2rem; }
  .heros__stats { gap: 1.75rem; }

  .nav__bascule { display: block; }
  .nav {
    display: none;
    position: absolute;
    top: 100%; left: 0; right: 0;
    padding: .85rem 1.25rem 1.25rem;
    background: var(--carte);
    border-bottom: 1px solid var(--bordure);
    box-shadow: var(--ombre-md);
    max-height: calc(100vh - 76px);
    overflow-y: auto;
  }
  .nav--ouvert { display: block; }
  .nav__liste { flex-direction: column; align-items: stretch; gap: .15rem; }
  .nav__lien { padding: .8rem .9rem; border-radius: var(--rayon-sm); }
  .nav .btn { margin: .6rem 0 0; }
  #zone-compte { flex-direction: column; align-items: stretch; }

  /* Barre d'action collante sur la fiche d'un bien */
  .barre-mobile { display: flex; }
  body:has(.barre-mobile) { padding-bottom: 4.75rem; }
}

@media (max-width: 620px) {
  .section { padding: 3.25rem 0; }
  .section__entete { flex-direction: column; align-items: flex-start; }
  .section--centree .section__entete { align-items: center; }
  .recherche { grid-template-columns: 1fr; }
  .recherche__onglets { width: 100%; }
  .recherche__onglets label { flex: 1; text-align: center; padding-inline: .5rem; }
  .formulaire__duo,
  .formulaire__trio { grid-template-columns: 1fr; }
  .formulaire { padding: 1.35rem; }
  .heros__stats { gap: 1.25rem 2rem; }
  .heros__stat strong { font-size: 1.45rem; }
  .facture { padding: 1.5rem; }
  .facture__parties { grid-template-columns: 1fr; gap: 1.25rem; }
  .facture__entete { flex-direction: column; }
  .facture__meta { text-align: left; }
  .pied__grille { grid-template-columns: 1fr; gap: 1.75rem; }
  .grille-villes { grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); }
  .bloc { padding: 1.25rem; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .js .revele { opacity: 1; transform: none; }
  *, *::before, *::after {
    animation-duration: .01ms !important;
    transition-duration: .01ms !important;
  }
}

/* ========================================================= 18. impression */

@media print {
  .entete, .pied, .bandeau, .filtres, .barre-mobile, .panneau-agent .pile { display: none; }
  body { background: #fff; }
  .facture { max-width: none; margin: 0; padding: 0; border: 0; box-shadow: none; }
  .facture-actions, .ariane, .encart { display: none !important; }
  .facture__total { background: #fff !important; color: #000 !important; border: 2px solid #000; }
}
