/* Atlas — feuille du modèle.
   Règles (spec §5) : couleurs UNIQUEMENT dans le premier bloc :root ; coins
   carrés (0, ou 50 % pour un cercle) ; aucune police tierce. Les tâches
   suivantes AJOUTENT leurs sections à la fin, une par écran. */

@font-face { font-family: 'Newsreader'; src: url('../fonts/newsreader-var.woff2') format('woff2'); font-weight: 200 800; font-style: normal; font-display: swap; }
@font-face { font-family: 'Newsreader'; src: url('../fonts/newsreader-italic-var.woff2') format('woff2'); font-weight: 200 800; font-style: italic; font-display: swap; }
@font-face { font-family: 'Inter'; src: url('../fonts/inter-var.woff2') format('woff2'); font-weight: 100 900; font-style: normal; font-display: swap; }

:root {
  --a-fond: #F4F1EB;
  --a-pierre: #E9E4DA;
  --a-trait: #D8D1C4;
  --a-encre: #1C1B19;
  --a-doux: #625D55;
  --a-blanc: #FBFAF7;
  --a-nuit: #1C1B19;
  --a-nuit-texte: #F4F1EB;
  --a-nuit-doux: #B7B0A4;
  --a-nuit-trait: #3A3834;
  --a-voile: rgba(28, 27, 25, 0.5);
  --a-voile-fort: rgba(28, 27, 25, 0.78);
  --a-sur-photo: #F4F1EB;
  --a-squelette-reflet: rgba(255, 255, 255, 0.45);
  --a-ombre: rgba(28, 27, 25, 0.12);
  --a-risque: #8A3B2E;
  --a-accent: var(--color-primary, #B39B6E);
  --a-accent-survol: var(--color-primary-hover, #A68D5F);
  --a-accent-texte: var(--color-primary-sur-clair, #7A6544);
  --a-accent-texte-nuit: var(--color-primary-sur-sombre, #C9B48A);
  --a-sur-accent: var(--color-on-primary, #111111);
  --a-focus: #1C1B19;
  --a-serif: 'Newsreader', Georgia, 'Times New Roman', serif;
  --a-sans: 'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --a-contenu: 1240px;
  --a-gouttiere: clamp(16px, 4vw, 40px);
  --a-entete-h: 76px;
}

/* --- Base --- */
[hidden] { display: none !important; }
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: calc(var(--a-entete-h) + 16px); }
body { margin: 0; background: var(--a-fond); color: var(--a-encre); font: 400 15px/1.6 var(--a-sans); }
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: 3px; }
:focus-visible { outline: 2px solid var(--a-focus); outline-offset: 3px; }
h1, h2, h3, h4 { margin: 0; font-weight: 400; }
p { margin: 0 0 1em; }
ul, ol { margin: 0; padding: 0; list-style: none; }
button { font: inherit; color: inherit; cursor: pointer; }
.a-sprite { position: absolute; width: 0; height: 0; overflow: hidden; }
.a-icone { width: 20px; height: 20px; flex: none; vertical-align: middle; }
.a-evitement { position: absolute; left: -9999px; top: 8px; background: var(--a-encre); color: var(--a-fond); padding: 8px 14px; z-index: 100; }
.a-evitement:focus { left: 16px; }
.a-visuellement-masque { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* --- Mise en page --- */
.a-contenu { width: 100%; max-width: var(--a-contenu); margin: 0 auto; padding: 0 var(--a-gouttiere); }
.a-section { padding: clamp(48px, 7vw, 88px) 0; }
.a-section + .a-section { border-top: 1px solid var(--a-trait); }
.a-deux-colonnes { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2.4fr); gap: clamp(24px, 4vw, 56px); align-items: start; }
@media (max-width: 900px) { .a-deux-colonnes { grid-template-columns: 1fr; } }

/* --- Typographie --- */
.a-surtitre { font: 500 11px/1.4 var(--a-sans); letter-spacing: 0.14em; text-transform: uppercase; color: var(--a-encre); margin: 0 0 14px; }
.a-surtitre--doux { color: var(--a-doux); }
.a-titre-1 { font: 300 clamp(38px, 5.2vw, 64px)/1.04 var(--a-serif); letter-spacing: -0.01em; }
.a-titre-2 { font: 300 clamp(28px, 3.4vw, 40px)/1.12 var(--a-serif); letter-spacing: -0.005em; }
.a-titre-3 { font: 400 22px/1.25 var(--a-serif); }
.a-chapeau { font-size: 15px; line-height: 1.7; color: var(--a-encre); max-width: 46ch; }
.a-texte-doux { color: var(--a-doux); }
.a-filet { width: 40px; height: 1px; background: var(--a-accent); border: 0; margin: 24px 0; }
.a-chiffres { font-variant-numeric: tabular-nums lining-nums; }

/* --- Liens et boutons --- */
.a-lien-fleche { display: inline-flex; align-items: center; gap: 10px; padding-bottom: 6px; border-bottom: 1px solid var(--a-encre); font: 500 11px/1 var(--a-sans); letter-spacing: 0.14em; text-transform: uppercase; text-decoration: none; }
.a-lien-fleche .a-icone { width: 16px; height: 16px; transition: transform 0.2s; }
.a-lien-fleche:hover .a-icone { transform: translateX(3px); }
.a-bouton { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 48px; padding: 0 28px; border: 1px solid var(--a-encre); background: transparent; color: var(--a-encre); font: 500 11px/1 var(--a-sans); letter-spacing: 0.14em; text-transform: uppercase; text-decoration: none; transition: background-color 0.2s, color 0.2s; }
.a-bouton--compact { min-height: 40px; padding: 0 20px; }
.a-bouton.a-bouton--plein { background: var(--a-encre); color: var(--a-fond); }
.a-bouton.a-bouton--plein:hover { background: var(--a-doux); color: var(--a-fond); }
.a-bouton.a-bouton--accent { background: var(--a-accent); border-color: var(--a-accent); color: var(--a-sur-accent); }
.a-bouton.a-bouton--accent:hover { background: var(--a-accent-survol); color: var(--a-sur-accent); }
.a-bouton.a-bouton--trait:hover { background: var(--a-encre); color: var(--a-fond); }
.a-bouton[disabled] { opacity: 0.55; cursor: progress; }
.a-rond { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border: 1px solid var(--a-trait); border-radius: 50%; background: transparent; }
.a-rond:hover { border-color: var(--a-encre); }

/* --- Formulaires --- */
.a-etiquette { display: block; font: 500 10px/1.4 var(--a-sans); letter-spacing: 0.14em; text-transform: uppercase; color: var(--a-doux); margin-bottom: 8px; }
.a-champ { width: 100%; min-height: 46px; padding: 10px 14px; border: 1px solid var(--a-trait); background: var(--a-blanc); color: var(--a-encre); font: 400 14px/1.4 var(--a-sans); }
textarea.a-champ { min-height: 140px; resize: vertical; }
.a-champ:focus { border-color: var(--a-encre); outline: none; box-shadow: 0 0 0 1px var(--a-encre); }
.a-case { display: flex; gap: 10px; align-items: flex-start; font-size: 13px; }
.a-case input { margin-top: 3px; accent-color: var(--a-encre); }
.a-retour-formulaire { margin-top: 14px; font-size: 14px; }

/* --- Ruptures charbon --- */
.a-rupture { --a-fond: var(--a-nuit); --a-encre: var(--a-nuit-texte); --a-doux: var(--a-nuit-doux); --a-trait: var(--a-nuit-trait); --a-accent-texte: var(--a-accent-texte-nuit); --a-focus: var(--a-nuit-texte); --a-blanc: var(--a-nuit); background: var(--a-fond); color: var(--a-encre); }

/* --- Codes cartographiques --- */
.a-coordonnees { font: 500 10px/1.4 var(--a-sans); letter-spacing: 0.16em; text-transform: uppercase; color: var(--a-doux); font-variant-numeric: tabular-nums; }
.a-coordonnees--vertical { writing-mode: vertical-rl; transform: rotate(180deg); }
.a-filigrane { position: absolute; inset: 0; pointer-events: none; color: var(--a-trait); opacity: 0.7; overflow: hidden; }
.a-filigrane svg { width: 100%; height: 100%; }
.a-rail ol { display: grid; gap: 40px; border-left: 1px solid var(--a-trait); padding-left: 18px; }
.a-rail a { display: block; text-decoration: none; font: 500 10px/1.5 var(--a-sans); letter-spacing: 0.14em; text-transform: uppercase; color: var(--a-doux); }
.a-rail a span { display: block; color: var(--a-encre); }

/* --- Tuiles de données --- */
.a-tuiles { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 12px; }
.a-tuile { background: var(--a-pierre); padding: 22px 20px 20px; display: flex; flex-direction: column; min-height: 180px; }
.a-tuile-titre { font: 500 10px/1.4 var(--a-sans); letter-spacing: 0.14em; text-transform: uppercase; margin: 0 0 4px; }
.a-tuile-portee { font-size: 12px; color: var(--a-accent-texte); margin: 0 0 18px; }
.a-tuile-valeur { font: 300 clamp(30px, 3vw, 38px)/1.05 var(--a-serif); font-variant-numeric: lining-nums tabular-nums; margin: 0 0 6px; white-space: nowrap; }
.a-tuile-detail { font-size: 12px; color: var(--a-doux); margin: 0; }
.a-tuile-source { margin: auto 0 0; padding-top: 14px; font-size: 11px; color: var(--a-doux); border-top: 1px solid var(--a-trait); }
.a-barres { display: flex; align-items: flex-end; gap: 6px; height: 46px; margin: 14px 0 0; }
.a-barres span { flex: 1; background: var(--a-accent); min-height: 2px; }
.a-barres-lettres { display: flex; gap: 6px; font-size: 10px; color: var(--a-doux); margin-top: 4px; }
.a-barres-lettres span { flex: 1; text-align: center; }
.a-quartiles { position: relative; height: 2px; background: var(--a-trait); margin: 22px 0 6px; }
.a-quartiles span { position: absolute; top: -3px; height: 8px; background: var(--a-accent); }
.a-quartiles-legende { display: flex; justify-content: space-between; font-size: 10px; color: var(--a-doux); font-variant-numeric: tabular-nums; }

/* --- Squelettes (chargements différés) --- */
.a-squelette { background: linear-gradient(90deg, var(--a-pierre) 0%, var(--a-squelette-reflet) 50%, var(--a-pierre) 100%); background-size: 200% 100%; animation: a-reflet 1.4s linear infinite; }
@keyframes a-reflet { from { background-position: 200% 0; } to { background-position: -200% 0; } }
@media (prefers-reduced-motion: reduce) { .a-squelette { animation: none; } }

/* --- Révélation (classe posée par atlas.js seulement) --- */
.a-revele { opacity: 0; transform: translateY(8px); transition: opacity 0.6s, transform 0.6s; }
.a-revele.a-revele--vu { opacity: 1; transform: none; }

/* --- En-tête --- */
.a-entete { position: sticky; top: 0; z-index: 50; background: var(--a-fond); border-bottom: 1px solid var(--a-trait); }
.a-entete-barre { display: flex; align-items: center; gap: 32px; min-height: var(--a-entete-h); }
.a-logo { display: inline-flex; flex-direction: column; align-items: center; text-decoration: none; line-height: 1; }
.a-logo img { height: 44px; width: auto; }
.a-logo-nom { font: 400 28px/1 var(--a-serif); letter-spacing: 0.06em; text-transform: uppercase; }
.a-logo-soustitre { font: 500 8px/1 var(--a-sans); letter-spacing: 0.32em; text-transform: uppercase; margin-top: 6px; }
.a-nav { margin-left: auto; }
.a-nav ul { display: flex; gap: 36px; }
.a-nav a { font-size: 14px; text-decoration: none; padding: 8px 0; border-bottom: 1px solid transparent; }
.a-nav a:hover, .a-nav a[aria-current] { border-bottom-color: var(--a-encre); }
.a-entete-actions { display: flex; align-items: center; gap: 12px; }
.a-menu { display: none; position: relative; }
.a-menu-bouton { list-style: none; display: inline-flex; width: 44px; height: 44px; align-items: center; justify-content: center; border: 1px solid var(--a-trait); }
.a-menu-bouton::-webkit-details-marker { display: none; }
.a-menu-panneau { position: absolute; right: 0; top: calc(100% + 12px); width: min(320px, 90vw); background: var(--a-fond); border: 1px solid var(--a-trait); padding: 18px 22px; box-shadow: 0 12px 30px var(--a-ombre); }
.a-menu-panneau a { display: flex; gap: 14px; padding: 10px 0; text-decoration: none; border-bottom: 1px solid var(--a-trait); }
.a-menu-index { font: 500 10px/2 var(--a-sans); color: var(--a-doux); min-width: 18px; }
@media (max-width: 1023px) {
  .a-nav { display: none; }
  .a-menu { display: block; }
  .a-entete-actions { margin-left: auto; }
}
@media (max-width: 520px) { .a-entete-actions .a-bouton { display: none; } }

/* --- Pied de page --- */
.a-pied { border-top: 1px solid var(--a-trait); padding: 56px 0 24px; }
.a-pied-grille { display: grid; grid-template-columns: 1.6fr repeat(3, 1fr); gap: 32px; }
.a-pied-marque .a-logo { align-items: flex-start; }
.a-pied-signature { font-size: 13px; color: var(--a-doux); margin: 10px 0 16px; }
.a-pied-titre { font: 500 10px/1.4 var(--a-sans); letter-spacing: 0.14em; text-transform: uppercase; margin: 0 0 14px; }
.a-pied-colonne li { margin-bottom: 8px; }
.a-pied-colonne a, .a-pied-tel a { font-size: 13px; text-decoration: none; }
.a-pied-colonne a:hover { text-decoration: underline; }
.a-pied-adresse { font-style: normal; font-size: 13px; color: var(--a-doux); }
.a-pied-bas { display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-top: 40px; padding-top: 18px; border-top: 1px solid var(--a-trait); font-size: 12px; color: var(--a-doux); }
.a-pied-bas ul { display: flex; gap: 20px; }
@media (max-width: 900px) { .a-pied-grille { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .a-pied-grille { grid-template-columns: 1fr; } }

/* --- Fenêtres modales (contenu DÉPLACÉ par atlas.js) --- */
.a-modale[open] { width: min(720px, calc(100vw - 32px)); max-height: calc(100vh - 48px); padding: 40px clamp(20px, 4vw, 44px); border: 0; background: var(--a-fond); color: var(--a-encre); overflow: auto; }
.a-modale--large[open] { width: min(960px, calc(100vw - 32px)); }
.a-modale::backdrop { background: var(--a-voile-fort); }
.a-modale-fermer { position: absolute; top: 12px; right: 12px; width: 40px; height: 40px; border: 0; background: transparent; font-size: 26px; line-height: 1; }

/* --- Carrousels --- */
.a-carrousel { position: relative; }
.a-carrousel-piste { display: grid; grid-auto-flow: column; grid-auto-columns: var(--a-carrousel-largeur, minmax(220px, 1fr)); gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
.a-carrousel-piste::-webkit-scrollbar { display: none; }
.a-carrousel-piste > * { scroll-snap-align: start; }
.a-carrousel-nav { display: flex; justify-content: flex-end; gap: 10px; margin-top: 18px; }


/* --- Listes déroulantes (atlas-select.js) --- */
.a-select { position: relative; }
/* Une boîte d'un pixel, jamais display:none : un champ requis retiré du rendu
   n'est plus focalisable et le navigateur refuse alors d'émettre « submit ». */
.a-select-natif { position: absolute; left: 16px; bottom: 0; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.a-select-bouton { display: flex; align-items: center; justify-content: space-between; gap: 12px; text-align: left; cursor: pointer; background-image: none; }
.a-select-valeur { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.a-select-chevron { flex: 0 0 auto; width: 7px; height: 7px; margin: -3px 4px 0 0; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(45deg); transition: transform 0.2s, margin 0.2s; }
.a-select--ouvert .a-select-chevron { transform: rotate(225deg); margin-top: 3px; }
.a-select-bouton:focus-visible { outline: 2px solid var(--a-focus); outline-offset: 2px; }
.a-select--ouvert .a-select-bouton { border-color: var(--a-encre); }
.a-select-liste { position: fixed; z-index: 200; top: 0; left: 0; margin: 0; padding: 4px 0; list-style: none; max-height: 280px; overflow-y: auto; overscroll-behavior: contain; background: var(--a-nuit); color: var(--a-nuit-texte); border: 1px solid var(--a-nuit-trait); scrollbar-width: thin; }
.a-select-liste[hidden] { display: none; }
.a-select-option { padding: 12px 16px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-size: 14px; color: var(--a-nuit-texte); cursor: pointer; }
.a-select-option--actif { background: var(--a-nuit-trait); color: var(--a-nuit-texte); }
.a-select-option[aria-selected="true"] { color: var(--a-nuit-texte); font-weight: 600; }
.a-select-option[aria-selected="true"]::after { content: ''; float: right; width: 5px; height: 10px; margin-top: 2px; border-right: 1.5px solid var(--a-accent-texte-nuit); border-bottom: 1.5px solid var(--a-accent-texte-nuit); transform: rotate(45deg); }
.a-select-option[aria-disabled="true"] { opacity: 0.45; cursor: default; }

/* --- Cartes d'annonce --- */
.a-carte { height: 100%; }
.a-carte-lien { display: grid; height: 100%; text-decoration: none; background: var(--a-fond); border-bottom: 1px solid var(--a-trait); }
.a-carte--ligne .a-carte-lien { grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: 24px; padding: 18px 0; }
.a-carte--grille .a-carte-lien, .a-carte--compacte .a-carte-lien { grid-template-rows: auto 1fr; border: 1px solid var(--a-trait); }
.a-carte-image { position: relative; overflow: hidden; background: var(--a-pierre); }
.a-carte-image img { width: 100%; aspect-ratio: 1024 / 682; object-fit: cover; transition: transform 0.6s; }
.a-carte-lien:hover .a-carte-image img { transform: scale(1.03); }
.a-carte-corps { display: flex; flex-direction: column; padding: 4px 0; }
.a-carte--grille .a-carte-corps, .a-carte--compacte .a-carte-corps { padding: 18px; }
.a-carte-titre { font: 400 22px/1.25 var(--a-serif); margin: 0 0 6px; }
.a-carte--compacte .a-carte-titre { font-size: 18px; }
.a-carte-lieu { font: 500 10px/1.4 var(--a-sans); letter-spacing: 0.14em; text-transform: uppercase; color: var(--a-doux); margin: 0 0 12px; }
.a-meta { display: flex; flex-wrap: wrap; gap: 6px 18px; font-size: 12px; color: var(--a-doux); margin: 0 0 14px; }
.a-meta li { display: inline-flex; align-items: center; gap: 6px; }
.a-meta .a-icone { width: 15px; height: 15px; }
.a-carte-prix { display: flex; flex-direction: column; gap: 2px; margin-top: auto; }
.a-prix { font: 300 24px/1.1 var(--a-serif); font-variant-numeric: lining-nums tabular-nums; white-space: nowrap; }
.a-prix-m2 { font-size: 12px; color: var(--a-doux); font-variant-numeric: tabular-nums; white-space: nowrap; }
.a-carte-appel { display: inline-flex; align-items: center; gap: 8px; margin-top: 16px; align-self: flex-start; padding-bottom: 4px; border-bottom: 1px solid var(--a-encre); font: 500 10px/1 var(--a-sans); letter-spacing: 0.14em; text-transform: uppercase; }
.a-carte-appel .a-icone { width: 14px; height: 14px; }
.a-etiquette-bien { position: absolute; top: 14px; left: 14px; background: var(--a-pierre); color: var(--a-encre); padding: 5px 9px; font: 500 9px/1 var(--a-sans); letter-spacing: 0.14em; text-transform: uppercase; }
.a-etiquette-bien--vendu { background: var(--a-encre); color: var(--a-fond); }
.a-commune { color: inherit; }
@media (max-width: 640px) { .a-carte--ligne .a-carte-lien { grid-template-columns: 1fr; } }

/* --- Fil d'Ariane --- */
.a-ariane ol { display: flex; flex-wrap: wrap; gap: 8px; padding: 18px 0; font-size: 12px; color: var(--a-doux); }
.a-ariane li + li::before { content: '›'; margin-right: 8px; }
.a-ariane a { text-decoration: none; }
.a-ariane a:hover { text-decoration: underline; }

/* --- Fiche bien --- */
.a-fiche { display: grid; grid-template-columns: minmax(0, 2fr) minmax(300px, 1fr); gap: clamp(24px, 3vw, 48px); align-items: start; padding-bottom: 64px; }
.a-fiche-laterale { display: grid; gap: 24px; }
@media (min-width: 1024px) and (min-height: 820px) { .a-fiche-laterale { position: sticky; top: calc(var(--a-entete-h) + 24px); } }
@media (max-width: 1023px) { .a-fiche { grid-template-columns: 1fr; } .a-fiche-laterale { order: -1; } }
.a-galerie { display: grid; grid-template-columns: 2fr 1fr; gap: 8px; }
.a-galerie-principale { position: relative; grid-row: span 3; }
.a-galerie-principale img { width: 100%; height: 100%; aspect-ratio: 1024 / 682; object-fit: cover; }
.a-galerie-vignettes { display: grid; gap: 8px; }
.a-galerie-vignette { display: block; width: 100%; padding: 0; border: 0; background: none; }
.a-galerie-vignette img { width: 100%; aspect-ratio: 1024 / 682; object-fit: cover; }
.a-galerie-vignette[aria-current] img { outline: 2px solid var(--a-encre); outline-offset: -2px; }
.a-galerie-compte { grid-column: 1 / -1; display: flex; align-items: center; gap: 8px; font-size: 12px; color: var(--a-doux); margin: 4px 0 0; }
.a-galerie-astuce { display: none; }
.a-zoomable { cursor: zoom-in; }
.a-zoomable + .a-etiquette-bien, .a-galerie-principale .a-etiquette-bien { pointer-events: none; }
@media (max-width: 640px) { .a-galerie { grid-template-columns: 1fr; } .a-galerie-vignettes { grid-template-columns: repeat(3, 1fr); } }
.a-visionneuse[open] { width: 100vw; height: 100vh; max-width: none; max-height: none; margin: 0; padding: 0; border: 0; background: var(--a-voile-fort); display: grid; grid-template-columns: 56px 1fr 56px; align-items: center; }
.a-visionneuse img { max-height: 86vh; width: auto; margin: 0 auto; }
.a-visionneuse-nav { width: 48px; height: 48px; border: 1px solid var(--a-sur-photo); border-radius: 50%; background: transparent; color: var(--a-sur-photo); font-size: 22px; }
.a-visionneuse-compteur { position: absolute; bottom: 18px; left: 0; right: 0; text-align: center; color: var(--a-sur-photo); font-size: 13px; }
.a-visionneuse .a-modale-fermer { color: var(--a-sur-photo); }
.a-onglets-fiche { margin: 32px 0 0; border-bottom: 1px solid var(--a-trait); }
.a-onglets-fiche ul { display: flex; gap: 32px; overflow-x: auto; }
.a-onglets-fiche a { display: block; padding: 14px 0; text-decoration: none; font: 500 11px/1 var(--a-sans); letter-spacing: 0.14em; text-transform: uppercase; color: var(--a-doux); border-bottom: 2px solid transparent; }
.a-onglets-fiche a[aria-selected='true'] { color: var(--a-encre); border-bottom-color: var(--a-encre); }
.a-fiche-panneau { padding: 40px 0; }
.a-fiche-bien { display: grid; grid-template-columns: 1.1fr 1fr; gap: 32px 40px; }
.a-fiche-texte { grid-column: 1 / -1; }
.a-prose { max-width: 68ch; line-height: 1.75; }
.a-tableau { margin: 0; border-top: 1px solid var(--a-trait); }
.a-tableau > div { display: flex; justify-content: space-between; gap: 16px; padding: 11px 0; border-bottom: 1px solid var(--a-trait); font-size: 13px; }
.a-tableau dt { font: 500 10px/1.8 var(--a-sans); letter-spacing: 0.12em; text-transform: uppercase; }
.a-tableau dd { margin: 0; text-align: right; }
.a-prestations ul { display: grid; gap: 12px; font-size: 13px; }
.a-prestations li { display: flex; gap: 10px; align-items: center; }
.a-fiche-blocs { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; margin-top: 40px; padding-top: 32px; border-top: 1px solid var(--a-trait); }
@media (max-width: 760px) { .a-fiche-bien, .a-fiche-blocs { grid-template-columns: 1fr; } }
.a-carte-toile { width: 100%; aspect-ratio: 4 / 3; background: var(--a-pierre); }
.a-carte-invite { font-size: 13px; color: var(--a-doux); }
.a-fiche-precision { font-size: 12px; margin-top: 10px; }
.a-fiche-entete { padding: 8px 0; }
.a-fiche-actions { display: flex; justify-content: space-between; align-items: center; font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase; margin-bottom: 22px; }
.a-lien-icone { display: inline-flex; gap: 8px; align-items: center; border: 0; background: none; padding: 0; font: 500 10px/1 var(--a-sans); letter-spacing: 0.14em; text-transform: uppercase; }
.a-lien-icone .a-icone { width: 16px; height: 16px; }
.a-titre-fiche { font: 300 clamp(28px, 2.6vw, 34px)/1.15 var(--a-serif); margin-bottom: 10px; }
.a-fiche-cles { display: grid; grid-template-columns: repeat(4, 1fr); margin: 26px 0; border-top: 1px solid var(--a-trait); border-bottom: 1px solid var(--a-trait); }
.a-fiche-cles > div { padding: 16px 10px 14px 0; display: flex; flex-direction: column-reverse; }
.a-fiche-cles > div + div { padding-left: 12px; border-left: 1px solid var(--a-trait); }
.a-fiche-cles dt { font-size: 12px; color: var(--a-doux); }
.a-fiche-cles dd { margin: 0; font: 300 26px/1.1 var(--a-serif); }
.a-fiche-cles dd span { font-size: 14px; margin-left: 2px; vertical-align: super; }
.a-fiche-prix .a-prix { font-size: 34px; }
.a-fiche-prix { display: flex; flex-direction: column; gap: 4px; margin-bottom: 24px; }
.a-fiche-boutons { display: grid; gap: 10px; }
.a-encart { padding: 28px 24px; }
.a-conseiller-mini img { width: 96px; height: 96px; border-radius: 50%; object-fit: cover; margin-bottom: 14px; }
.a-conseiller-nom { font: 500 11px/1.4 var(--a-sans); letter-spacing: 0.14em; text-transform: uppercase; margin: 0 0 2px; }
.a-contacts { display: grid; gap: 6px; margin: 14px 0 18px; font-size: 13px; }
.a-contacts li { display: flex; gap: 8px; align-items: center; }
.a-contacts a { text-decoration: none; }
.a-formulaire-grille { display: grid; grid-template-columns: 1fr 1fr; gap: 0 14px; }
.a-formulaire-large { grid-column: 1 / -1; }
@media (max-width: 560px) { .a-formulaire-grille { grid-template-columns: 1fr; } }
.a-piege { position: absolute; left: -9999px; }

/* --- Bloc DPE --- */
.a-dpe-cadre { position: relative; background: var(--a-blanc); color: var(--a-encre); padding: 20px; overflow-x: auto; }
.a-dpe-cadre--vide { overflow: hidden; min-height: 160px; }
.a-dpe-vide { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; opacity: 0.35; }
.a-dpe-vide-titre { font-size: 10px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; margin-bottom: 8px; }
.a-dpe-vide-barre { display: block; margin: 3px 0; padding: 2px 8px; border: 1px solid currentColor; font-size: 11px; }
.a-dpe-filigrane { position: absolute; inset: 0; display: grid; place-items: center; transform: rotate(-10deg); font: 300 clamp(20px, 2.4vw, 28px)/1.2 var(--a-serif); text-align: center; margin: 0; }
.a-dpe-cadre img { max-width: 100%; height: auto; }

/* --- Annonces --- */
.a-annonces-entete { padding: 56px 0 40px; position: relative; }
.a-annonces-entete-grille { display: grid; grid-template-columns: 1fr auto; gap: 40px; align-items: end; }
.a-chiffres-ligne { display: flex; gap: 0; margin: 0; }
.a-chiffres-ligne > div { padding: 0 28px; display: flex; flex-direction: column-reverse; }
.a-chiffres-ligne > div + div { border-left: 1px solid var(--a-trait); }
.a-chiffres-ligne dt { font: 500 9px/1.4 var(--a-sans); letter-spacing: 0.14em; text-transform: uppercase; color: var(--a-doux); }
.a-chiffres-ligne dd { margin: 0 0 4px; font: 300 32px/1.1 var(--a-serif); font-variant-numeric: lining-nums tabular-nums; white-space: nowrap; }
@media (max-width: 900px) { .a-annonces-entete-grille { grid-template-columns: 1fr; } .a-chiffres-ligne > div:first-child { padding-left: 0; } }
.a-outils-barre { display: flex; align-items: center; gap: 16px; min-height: 64px; flex-wrap: wrap; padding-top: 10px; padding-bottom: 10px; }
.a-outils-bouton { display: inline-flex; align-items: center; gap: 10px; border: 1px solid var(--a-trait); background: transparent; padding: 0 16px; min-height: 42px; font: 500 10px/1 var(--a-sans); letter-spacing: 0.14em; text-transform: uppercase; }
.a-outils-form { display: contents; }
.a-outils-mots { flex: 1; display: flex; min-width: 220px; }
.a-outils-mots .a-champ { border-color: var(--a-trait); }
.a-outils-loupe { border: 1px solid var(--a-trait); border-left: 0; background: transparent; width: 46px; }
.a-outils-tri { display: flex; align-items: center; gap: 10px; }
.a-outils-tri .a-etiquette { margin: 0; white-space: nowrap; }
.a-annonces-mise { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 0; border-left: 1px solid var(--a-trait); border-right: 1px solid var(--a-trait); }
@media (max-width: 1023px) { .a-annonces-mise { grid-template-columns: 1fr; border: 0; } }
.a-filtres { padding: 24px 20px; border-right: 1px solid var(--a-trait); }
.a-filtres-entete { display: flex; justify-content: space-between; align-items: baseline; padding-bottom: 14px; border-bottom: 1px solid var(--a-trait); }
.a-filtres-reinit { font: 500 10px/1 var(--a-sans); letter-spacing: 0.14em; text-transform: uppercase; }
.a-filtre { margin: 0; padding: 16px 0; border: 0; border-bottom: 1px solid var(--a-trait); }
.a-filtre-liste { display: grid; gap: 8px; }
.a-filtre-compte { margin-left: auto; color: var(--a-doux); font-size: 11px; }
.a-fourchette { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.a-fourchette legend { grid-column: 1 / -1; }
/* Un <legend> de fieldset ignore le padding-haut de son fieldset : l'espace est porté par le legend. */
fieldset.a-filtre { padding-top: 0; }
fieldset.a-filtre > legend { padding: 16px 0 0; }
.a-glissiere { grid-column: 1 / -1; position: relative; height: 22px; margin-top: 6px; }
/* Le trait de la glissière : les deux <input type=range> ont une piste transparente, celui-ci est commun. */
.a-glissiere::before { content: ''; position: absolute; left: 7px; right: 7px; top: 50%; height: 2px; transform: translateY(-50%); background: var(--a-doux); opacity: .45; }
.a-glissiere input { position: absolute; inset: 0; width: 100%; height: 22px; margin: 0; pointer-events: none; appearance: none; -webkit-appearance: none; background: transparent; }
.a-glissiere input::-webkit-slider-runnable-track { height: 22px; background: transparent; }
.a-glissiere input::-moz-range-track { height: 22px; background: transparent; }
.a-glissiere input::-webkit-slider-thumb { -webkit-appearance: none; appearance: none; pointer-events: auto; width: 14px; height: 14px; margin-top: 4px; border-radius: 50%; border: 2px solid var(--a-fond); background: var(--a-encre); box-shadow: 0 0 0 1px var(--a-encre); cursor: grab; }
.a-glissiere input::-moz-range-thumb { pointer-events: auto; width: 10px; height: 10px; border-radius: 50%; border: 2px solid var(--a-fond); background: var(--a-encre); box-shadow: 0 0 0 1px var(--a-encre); cursor: grab; }
.a-glissiere input:focus-visible::-webkit-slider-thumb { outline: 2px solid var(--a-accent-texte); outline-offset: 2px; }
.a-filtres-envoi { width: 100%; margin-top: 18px; }
.a-conseil { display: flex; gap: 14px; margin-top: 28px; padding: 22px 18px; border: 1px solid var(--a-trait); }
.a-conseil-icone { width: 30px; height: 30px; color: var(--a-accent-texte); }
.a-annonces-colonne { min-width: 0; }
.a-annonces-carte { position: relative; border-bottom: 1px solid var(--a-trait); }
.a-annonces-carte .a-carte-toile { aspect-ratio: auto; height: 340px; }
.a-carte-secteur { position: absolute; right: 16px; bottom: 16px; z-index: 500; background: var(--a-fond); }
.a-puces { display: flex; flex-wrap: wrap; gap: 8px; padding: 0 24px; }
.a-puces:not(:empty) { padding-top: 16px; }
.a-puce button { display: inline-flex; align-items: center; gap: 6px; border: 1px solid var(--a-trait); background: var(--a-pierre); padding: 6px 10px; font-size: 12px; }
.a-puce .a-icone { width: 12px; height: 12px; }
.a-resultats-entete { display: flex; justify-content: space-between; align-items: center; padding: 18px 24px; border-bottom: 1px solid var(--a-trait); }
.a-outils-compte { font: 400 18px/1.2 var(--a-serif); margin: 0; }
.a-outils-vues { display: flex; gap: 6px; }
.a-vue { display: inline-flex; align-items: center; gap: 6px; border: 0; background: transparent; padding: 8px 10px; font-size: 12px; color: var(--a-doux); }
.a-vue[aria-pressed='true'] { color: var(--a-encre); box-shadow: inset 0 -1px 0 var(--a-encre); }
.a-liste { padding: 0 24px; }
.a-liste.a-liste--grille { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 16px; padding-top: 20px; }
.a-liste.a-liste--grille .a-carte--ligne .a-carte-lien { grid-template-columns: 1fr; border: 1px solid var(--a-trait); padding: 0; }
.a-liste.a-liste--grille .a-carte--ligne .a-carte-corps { padding: 16px; }
.a-pagination { display: flex; justify-content: center; gap: 8px; padding: 28px 0; }
.a-page { min-width: 36px; height: 36px; border: 0; background: transparent; font-size: 13px; }
.a-page[aria-current] { background: var(--a-pierre); }
.a-resultat-vide { padding: 48px 24px; }
.a-carte--squelette { border: 1px solid var(--a-trait); padding-bottom: 16px; }
.a-squelette-image { aspect-ratio: 1024 / 682; }
.a-squelette-ligne { height: 14px; margin: 12px 16px 0; width: 60%; }
.a-squelette-ligne--courte { width: 35%; }
.a-secteur { padding: 32px 0 56px; }
.a-secteur > .a-contenu { border: 1px solid var(--a-trait); padding-top: 22px; padding-bottom: 22px; }
.a-secteur-entete { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; flex-wrap: wrap; margin-bottom: 16px; }
.a-secteur .a-tuiles { grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); }
.a-carte-toile--communes .leaflet-marker-icon { cursor: pointer; }

/* --- Pastilles de la carte (atlas-carte.js) --- */
.a-pastille span { display: grid; place-items: center; width: 100%; height: 100%; border-radius: 50%; background: var(--a-encre); color: var(--a-fond); font-family: var(--a-sans); font-size: 12px; font-weight: 600; }
.a-epingle span { display: block; width: 24px; height: 32px; background: var(--a-accent); clip-path: path('M12 0C5.4 0 0 5.4 0 12c0 9 12 20 12 20s12-11 12-20C24 5.4 18.6 0 12 0z'); }
.a-pastille-bulle { text-align: center; }
.a-pastille-bulle p { margin: 0 0 10px; font-family: var(--a-sans); font-size: 13px; }
.a-pastille-bulle form { margin: 0; }
.a-pastille-bulle .a-bouton { font-size: 11px; }

/* --- Accueil --- */
.a-heros { display: grid; grid-template-columns: 1.35fr 1fr; min-height: min(78vh, 640px); }
.a-heros-photo { position: relative; overflow: hidden; background: var(--a-pierre); }
.a-heros-photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.a-heros-quadrillage { position: absolute; inset: 0; background-image: linear-gradient(var(--a-voile) 1px, transparent 1px), linear-gradient(90deg, var(--a-voile) 1px, transparent 1px); background-size: 33.33% 50%; opacity: 0.35; pointer-events: none; }
.a-heros-coord { position: absolute; left: 18px; top: 50%; color: var(--a-sur-photo); }
.a-heros-legende { position: absolute; left: 24px; bottom: 22px; margin: 0; color: var(--a-sur-photo); font: 500 10px/1.5 var(--a-sans); letter-spacing: 0.14em; text-transform: uppercase; }
.a-heros-panneau { position: relative; display: grid; grid-template-columns: 1fr auto; gap: 24px; align-items: center; padding: 48px var(--a-gouttiere); background: var(--a-pierre); overflow: hidden; }
.a-heros-texte { position: relative; max-width: 30rem; }
.a-heros-texte .a-titre-1 { margin-bottom: 22px; }
.a-heros-rail { position: relative; align-self: center; }
@media (max-width: 900px) { .a-heros { grid-template-columns: 1fr; } .a-heros-photo { min-height: 44vh; } .a-heros-rail { display: none; } }
.a-recherche-accueil { position: relative; margin-top: -48px; z-index: 2; padding: 22px 32px 18px; }
.a-recherche-onglets { display: flex; gap: 28px; margin-bottom: 18px; border-bottom: 1px solid var(--a-trait); }
.a-recherche-onglets button { border: 0; background: none; padding: 10px 0; font: 500 11px/1 var(--a-sans); letter-spacing: 0.14em; text-transform: uppercase; color: var(--a-doux); border-bottom: 1px solid transparent; }
.a-recherche-onglets button[aria-selected='true'] { color: var(--a-encre); border-bottom-color: var(--a-encre); }
.a-recherche-panneau { display: grid; grid-template-columns: 1.3fr 1fr 1fr 1fr auto; gap: 0 18px; align-items: end; }
.a-recherche-champ { margin: 0; border: 0; padding: 0; }
.a-recherche-fourchette { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.a-recherche-fourchette legend { grid-column: 1 / -1; }
.a-recherche-accueil .a-champ { background: transparent; border: 0; border-bottom: 1px solid var(--a-trait); padding-left: 0; color: var(--a-encre); }
.a-recherche-avancee { grid-column: 1 / -1; margin: 14px 0 0; font: 500 10px/1 var(--a-sans); letter-spacing: 0.14em; text-transform: uppercase; }
.a-recherche-avancee a { display: inline-flex; gap: 8px; align-items: center; text-decoration: none; }
.a-recherche-panneau--territoires { display: block; }
.a-recherche-communes { display: flex; flex-wrap: wrap; gap: 10px 28px; }
.a-recherche-communes a { font: 300 22px/1.3 var(--a-serif); text-decoration: none; border-bottom: 1px solid var(--a-trait); }
.a-recherche-communes span { font: 500 10px/1 var(--a-sans); color: var(--a-doux); margin-left: 6px; }
@media (max-width: 1023px) { .a-recherche-panneau { grid-template-columns: 1fr 1fr; gap: 14px 18px; } .a-recherche-envoi { grid-column: 1 / -1; } }
@media (max-width: 560px) { .a-recherche-panneau { grid-template-columns: 1fr; } .a-recherche-accueil { padding: 18px; } }
.a-carrousel--pleine { --a-carrousel-largeur: 100%; }
.a-tuiles--quatre { grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); }
.a-territoires-cartes { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
@media (max-width: 900px) { .a-territoires-cartes { grid-template-columns: repeat(2, 1fr); } }
.a-carte-territoire { position: relative; display: flex; align-items: flex-end; aspect-ratio: 3 / 4; overflow: hidden; text-decoration: none; background: var(--a-pierre); border: 1px solid var(--a-trait); }
.a-carte-territoire img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 0.6s; }
.a-carte-territoire--photo::after { content: ''; position: absolute; inset: 40% 0 0; background: linear-gradient(transparent, var(--a-voile-fort)); }
.a-carte-territoire--photo .a-carte-territoire-corps { color: var(--a-sur-photo); }
.a-carte-territoire:hover img { transform: scale(1.04); }
.a-carte-territoire-corps { position: relative; z-index: 1; display: flex; flex-direction: column; gap: 4px; padding: 18px; }
.a-carte-territoire-nom { font: 500 11px/1.4 var(--a-sans); letter-spacing: 0.14em; text-transform: uppercase; }
.a-carte-territoire:not(.a-carte-territoire--photo) .a-carte-territoire-nom { font: 300 26px/1.1 var(--a-serif); letter-spacing: 0; text-transform: none; }
.a-carte-territoire-cp, .a-carte-territoire-chiffres { font-size: 11px; opacity: 0.85; }
.a-carte-territoire-appel { display: inline-flex; gap: 8px; align-items: center; margin-top: 10px; font-size: 12px; }
.a-carte-territoire-appel .a-icone { width: 14px; height: 14px; }
.a-approche-accueil { padding: 24px 0 56px; }
.a-approche-grille { display: grid; grid-template-columns: 1fr 1.15fr 1.05fr; }
.a-approche-photo img { width: 100%; height: 100%; object-fit: cover; }
.a-approche-texte { position: relative; padding: 40px; background: var(--a-pierre); overflow: hidden; }
.a-approche-texte > *:not(.a-filigrane) { position: relative; }
.a-estimation-carte { padding: 40px; display: flex; flex-direction: column; gap: 4px; }
.a-estimation-carte .a-coordonnees { margin-top: auto; padding-top: 22px; }
@media (max-width: 900px) { .a-approche-grille { grid-template-columns: 1fr; } .a-approche-photo { aspect-ratio: 16 / 9; } }
.a-engagements { padding: 32px 0 48px; border-top: 1px solid var(--a-trait); }
.a-engagements-liste { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.a-engagement { display: flex; gap: 14px; align-items: flex-start; }
.a-engagement .a-surtitre { margin-bottom: 4px; }
.a-engagement .a-texte-doux { font-size: 12px; margin: 0; }
.a-engagement-icone { width: 30px; height: 30px; color: var(--a-doux); }
@media (max-width: 900px) { .a-engagements-liste { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .a-engagements-liste { grid-template-columns: 1fr; } }

/* --- Territoires et page commune --- */
.a-commune-entete { padding: 24px 0 40px; }
.a-commune-entete-grille { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: end; }
.a-commune-carte { aspect-ratio: 16 / 9; }
@media (max-width: 900px) { .a-commune-entete-grille { grid-template-columns: 1fr; } }
.a-commune-parc { margin: 28px 0 12px; }
.a-commune-situation { margin-top: 12px; }
.a-commune-situation .a-squelette { min-height: 180px; }
.a-risques { display: grid; gap: 8px; font-size: 12px; margin: 6px 0 0; }
.a-risque { display: flex; justify-content: space-between; gap: 12px; }
.a-risque span + span { color: var(--a-doux); }
.a-risque--identifie span + span { color: var(--a-risque); font-weight: 500; }
.a-grille-biens { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 16px; margin: 28px 0; }
.a-territoires-index { padding-bottom: 64px; }
.a-territoires-carte .a-carte-toile { aspect-ratio: 21 / 9; margin-bottom: 32px; }
.a-territoires-liste { display: grid; gap: 24px; }
.a-territoire-ligne { display: grid; grid-template-columns: 240px 1fr; gap: 16px; align-items: stretch; }
.a-territoire-ligne .a-carte-territoire { aspect-ratio: auto; height: 100%; min-height: 200px; }
@media (max-width: 760px) { .a-territoire-ligne { grid-template-columns: 1fr; } }
.a-generique-biens { display: flex; gap: 16px; align-items: center; flex-wrap: wrap; margin: 24px 0 32px; }
.a-generique-biens p { margin: 0; }
.a-generique-appels { display: flex; gap: 28px; flex-wrap: wrap; margin-top: 32px; }

/* --- Pages intérieures : héros à photo --- */
.a-page-heros { padding: 32px 0 0; }
.a-page-heros-grille { display: grid; grid-template-columns: 1fr 1.25fr auto; gap: 40px; align-items: center; }
.a-page-heros-texte .a-titre-1 { margin-bottom: 4px; }
.a-page-heros-photo img { width: 100%; aspect-ratio: 5 / 4; object-fit: cover; }
@media (max-width: 1023px) { .a-page-heros-grille { grid-template-columns: 1fr; } .a-page-heros-grille .a-rail { display: none; } }

/* --- Agence --- */
.a-chiffres-agence { padding: 40px 0; border-bottom: 1px solid var(--a-trait); }
.a-chiffres-agence-liste { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); text-align: center; }
.a-chiffres-agence-liste li { padding: 0 20px; }
.a-chiffres-agence-liste li + li { border-left: 1px solid var(--a-trait); }
.a-chiffre { font: 300 34px/1.1 var(--a-serif); margin: 4px 0; font-variant-numeric: lining-nums tabular-nums; }
.a-membre img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; filter: grayscale(1); margin-bottom: 14px; }
.a-membre-nom { font: 500 11px/1.4 var(--a-sans); letter-spacing: 0.14em; text-transform: uppercase; margin: 0 0 4px; }
.a-membre-nom a { text-decoration: none; }
.a-membre-nom a:hover { text-decoration: underline; }
.a-conseiller-fonction { font-size: 12px; margin: 0; }
.a-approche-agence { background: var(--a-pierre); }
.a-approche-agence-grille { display: grid; grid-template-columns: 1fr 2fr; }
.a-approche-agence-texte { padding: clamp(32px, 5vw, 64px); }
.a-etapes { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; margin-top: 28px; }
.a-etapes li { padding: 0 18px; }
.a-etapes li + li { border-left: 1px solid var(--a-trait); }
.a-etapes li > span { font: 500 11px/1 var(--a-sans); display: block; margin-bottom: 8px; }
.a-etapes .a-texte-doux { font-size: 12px; }
@media (max-width: 900px) { .a-approche-agence-grille, .a-etapes { grid-template-columns: 1fr; } .a-etapes li { padding: 12px 0; } .a-etapes li + li { border-left: 0; border-top: 1px solid var(--a-trait); } }
.a-engagements-liste--agence { grid-template-columns: repeat(2, 1fr); }
.a-appel-final { padding: 0 0 64px; }
.a-appel-final-grille { display: grid; grid-template-columns: 1fr 1.2fr auto; gap: 32px; align-items: center; padding-top: 40px; padding-bottom: 40px; }
@media (max-width: 900px) { .a-appel-final-grille { grid-template-columns: 1fr; } }

/* --- Conseiller --- */
.a-conseiller-heros { padding-bottom: 48px; border-bottom: 1px solid var(--a-trait); }
.a-conseiller-heros-grille { display: grid; grid-template-columns: 1fr 1.1fr 0.9fr; gap: 0; align-items: stretch; }
.a-conseiller-identite { padding: 24px 32px 24px 0; }
.a-conseiller-portrait img { width: 100%; height: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.a-conseiller-expertise { padding: 24px 0 24px 32px; }
.a-expertise-liste { display: grid; gap: 14px; font-size: 13px; padding-bottom: 22px; border-bottom: 1px solid var(--a-trait); }
.a-expertise-liste li { display: flex; gap: 12px; align-items: center; }
.a-expertise-liste .a-icone { color: var(--a-accent-texte); }
.a-conseiller-chiffres { margin: 22px 0 0; display: grid; gap: 16px; }
.a-conseiller-chiffres div { display: flex; align-items: baseline; gap: 12px; }
.a-conseiller-chiffres dd { order: -1; margin: 0; font: 300 38px/1 var(--a-serif); }
.a-conseiller-chiffres dt { font-size: 12px; }
.a-conseiller-source { font-size: 11px; margin-top: 14px; }
@media (max-width: 1023px) { .a-conseiller-heros-grille { grid-template-columns: 1fr; } .a-conseiller-identite, .a-conseiller-expertise { padding: 24px 0; } }
.a-grille-biens--trois { grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); margin: 0; }
.a-etapes--quatre li { padding-top: 4px; }
.a-temoignages-liste { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 24px; }
.a-temoignages-liste blockquote { margin: 0; padding-left: 18px; border-left: 1px solid var(--a-trait); font-size: 13px; }
.a-temoignages-liste footer { margin-top: 12px; font: 500 10px/1.6 var(--a-sans); letter-spacing: 0.14em; text-transform: uppercase; }
.a-conseiller-final { padding: 28px 0; }
.a-conseiller-final-grille { display: grid; grid-template-columns: 1.2fr 1fr 1fr; gap: 24px; align-items: center; }
.a-conseiller-final-grille .a-contact-dialogue { grid-column: 1 / -1; }
.a-conseiller-final a { text-decoration: none; }
@media (max-width: 900px) { .a-conseiller-final-grille { grid-template-columns: 1fr; } }

/* --- Contact --- */
.a-contact-heros { padding: 0; }
.a-contact-heros-grille { display: grid; grid-template-columns: 1fr 1.6fr; min-height: 440px; }
.a-contact-heros-texte { position: relative; padding: 24px var(--a-gouttiere) 48px clamp(48px, 8vw, 120px); background: var(--a-fond); overflow: hidden; }
.a-contact-heros-texte > *:not(.a-filigrane) { position: relative; }
.a-contact-coord { position: absolute; left: 24px; top: 80px; }
.a-contact-heros-photo img { width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 900px) { .a-contact-heros-grille { grid-template-columns: 1fr; } .a-contact-heros-texte { padding-left: var(--a-gouttiere); } .a-contact-coord { display: none; } }
.a-contact-grille { display: grid; grid-template-columns: 0.9fr 1.4fr 1fr; gap: 0; }
.a-contact-grille > div { padding: 0 32px; }
.a-contact-grille > div + div { border-left: 1px solid var(--a-trait); }
.a-contact-grille > div:first-child { padding-left: 0; }
.a-contact-grille > div:last-child { padding-right: 0; }
@media (max-width: 1023px) { .a-contact-grille { grid-template-columns: 1fr; } .a-contact-grille > div { padding: 24px 0; } .a-contact-grille > div + div { border-left: 0; border-top: 1px solid var(--a-trait); } }
.a-moyen { display: flex; gap: 16px; padding: 18px 0; border-bottom: 1px solid var(--a-trait); }
.a-moyen p { margin: 4px 0 0; font-size: 13px; }
.a-moyen-icone { width: 26px; height: 26px; }
.a-contact-bureau .a-carte-toile { aspect-ratio: 1 / 1; margin-bottom: 14px; }
.a-adresse { font-style: normal; font-size: 14px; margin-bottom: 14px; }
.a-agence-principale { background: var(--a-pierre); }
.a-agence-principale-grille { display: grid; grid-template-columns: 1.2fr 1fr 1.2fr; align-items: stretch; }
.a-agence-principale-texte { position: relative; padding: 48px 32px 48px 0; overflow: hidden; }
.a-agence-principale-texte > *:not(.a-filigrane) { position: relative; }
.a-agence-principale-infos { padding: 48px 32px; }
.a-agence-principale-photo img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(1); }
@media (max-width: 900px) { .a-agence-principale-grille { grid-template-columns: 1fr; } }
/* --- Estimer --- */
.a-estim-fil { display: grid; grid-template-columns: repeat(4, 1fr); margin: 32px 0; border: 1px solid var(--a-trait); }
.a-estim-fil li { display: grid; grid-template-columns: auto 1fr; gap: 0 14px; padding: 18px 22px; }
.a-estim-fil li + li { border-left: 1px solid var(--a-trait); }
.a-estim-fil .a-icone { grid-row: span 3; }
.a-estim-fil span { font-size: 11px; }
.a-estim-fil strong { font-weight: 400; font-size: 14px; }
.a-estim-fil small { font-size: 11px; color: var(--a-doux); }
.a-estim-fil li[aria-current] { background: var(--a-pierre); }
.a-estim-fil--fait strong::after { content: ' ✓'; color: var(--a-accent-texte); }
@media (max-width: 760px) { .a-estim-fil { grid-template-columns: 1fr 1fr; } .a-estim-fil li:nth-child(3) { border-left: 0; } }
.a-estim-grille { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); border: 1px solid var(--a-trait); margin-bottom: 48px; }
.a-estim-form { padding: 28px; border-right: 1px solid var(--a-trait); }
.a-estim-etape { margin: 0; padding: 0; border: 0; }
.a-estim-etape + .a-estim-etape { margin-top: 28px; }
.a-estim-nav { display: flex; gap: 10px; justify-content: space-between; margin-top: 18px; }
.a-choix { border: 0; padding: 0; margin: 14px 0; display: flex; gap: 18px; flex-wrap: wrap; }
.a-choix--grille { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.a-estim-panneau { padding: 32px; }
.a-estim-squelette { height: 64px; margin-top: 14px; }
.a-estim-squelette--court { width: 60%; height: 22px; }
@media (max-width: 1023px) { .a-estim-grille { grid-template-columns: 1fr; } .a-estim-form { border-right: 0; border-bottom: 1px solid var(--a-trait); } }
.a-estimation-approx { color: var(--a-accent-texte); }
.a-estimation-fourchette { font: 300 clamp(30px, 3.4vw, 42px)/1.1 var(--a-serif); margin: 0 0 8px; font-variant-numeric: lining-nums tabular-nums; }
.a-estimation-fourchette span { white-space: nowrap; }
.a-estimation-avertissement { font-size: 13px; padding: 12px 14px; border-left: 2px solid var(--a-accent); background: var(--a-pierre); margin: 18px 0; }
.a-estimation-base { margin: 18px 0; }
.a-estimation-ajustements, .a-estimation-comparables { display: grid; gap: 10px; margin: 8px 0 22px; font-size: 13px; }
.a-estimation-ajustements li { display: flex; justify-content: space-between; border-bottom: 1px solid var(--a-trait); padding-bottom: 6px; }
.a-estimation-comparables li { padding-bottom: 10px; border-bottom: 1px solid var(--a-trait); }
.a-estimation-comparables p { margin: 0; }
.a-estimation-comparable-prix { font: 300 20px/1.3 var(--a-serif); }
.a-estimation-appel { padding: 20px; border: 1px solid var(--a-trait); }
.a-approche-grille--deux { grid-template-columns: 1fr 1.4fr; }
.a-confidentialite { display: flex; gap: 10px; align-items: center; justify-content: center; font-size: 12px; color: var(--a-doux); margin-top: 24px; }

/* --- Pages légales et erreurs --- */
.a-page-legale { padding: 56px 0 80px; }
.a-colonne-lecture { max-width: calc(68ch + 2 * var(--a-gouttiere)); }
.a-page-legale h1 { margin-bottom: 32px; }
.a-page-legale h2 { font: 400 22px/1.3 var(--a-serif); margin: 32px 0 10px; }
.a-page-legale p, .a-page-legale li { line-height: 1.75; }
.a-erreur .a-bouton { margin-right: 18px; }
