/* ParisData V2 — interface carte (aperçu PC / tablette / mobile). Couleurs METROREALTY.
   S'appuie sur datametrorealty.css (tokens --navy/--bronze/--glass-*). Le bleu des maquettes
   d'origine est remplacé par le navy ; les échelles froid→chaud et DPE A–G restent
   (ce sont des échelles de DONNÉE, pas la charte chrome). */

html, body { height: 100%; }
body { overflow: hidden; display: flex; flex-direction: column; -webkit-user-select: none; user-select: none; }
.pd-info, .pd-info * { -webkit-user-select: text; user-select: text; } /* chiffres copiables */
.ic { width: 20px; height: 20px; display: inline-block; vertical-align: middle; color: currentColor; flex: none; }

/* ═══════════ HEADER ═══════════ */
/* bandeau du haut : calque transparent flottant sur la carte (map-first), même traitement que le mobile */
.pd-topbar {
  display: flex; align-items: center; gap: 16px; height: 60px; padding: 0 18px; z-index: 40;
  position: absolute; top: 0; left: 0; right: 0; background: transparent; pointer-events: none;
}
.pd-topbar > * { pointer-events: auto; } /* on peut déplacer la carte dans les vides du bandeau */
/* voile doux blanc→transparent (mêmes attributs que la version mobile) */
.pd-topbar::after { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 94px; z-index: -1; pointer-events: none;
  background: linear-gradient(to bottom, rgba(255,255,255,.93), rgba(255,255,255,.5) 50%, rgba(255,255,255,0)); }
.pd-logo { display: flex; align-items: center; line-height: 1; text-decoration: none; flex: 1; }
.pd-logo-img { height: 46px; width: auto; display: block; filter: drop-shadow(0 1px 2px rgba(255,255,255,.9)); } /* = hauteur de la barre de recherche */
.pd-logo-1 { font-family: var(--font-logo); font-weight: 700; font-size: 19px; letter-spacing: .02em; color: var(--navy); }
.pd-logo-2 { font-size: 10px; letter-spacing: .12em; text-transform: uppercase; color: var(--bronze-dk); margin-top: 2px; }
/* wordmark : le nom s'écrit toujours PARIS (gras) + data (normal), quelle que soit la casse du contexte */
.pd-wm { font-weight: 400; text-transform: none; }
.pd-wm > b { font-weight: 800; }
/* barre de recherche CENTRÉE, pilule blanche flottante */
.pd-search { flex: 0 0 auto; width: min(560px, 42vw); display: flex; align-items: center; gap: 10px; padding: 0 16px; height: 46px; margin: 0 auto;
  background: #fff; border: 1px solid var(--glass-line); border-radius: 12px; color: var(--muted); box-shadow: 0 4px 18px rgba(35,44,63,.14); }
.pd-search .ic { width: 18px; height: 18px; color: var(--bronze-dk); }
.pd-search input { border: 0; background: transparent; outline: none; width: 100%; font: inherit; font-size: 14px; color: var(--ink); }
/* résultats d'autocomplétion BAN */
.pd-search { position: relative; }
.pd-search-results { position: absolute; left: 0; right: 0; top: calc(100% + 8px); z-index: 70; background: #fff;
  border: 1px solid var(--glass-line); border-radius: 14px; box-shadow: 0 14px 40px rgba(35, 44, 63, .24); overflow: hidden auto; max-height: min(60vh, 360px); }
.pd-sr-item { display: flex; align-items: center; gap: 10px; width: 100%; text-align: left; padding: 11px 15px; border: 0; border-top: 1px solid var(--glass-line);
  background: transparent; font: inherit; font-size: 13.5px; color: var(--ink); cursor: pointer; }
.pd-sr-item:first-child { border-top: 0; }
.pd-sr-item .ic { width: 15px; height: 15px; color: var(--bronze-dk); flex: none; }
.pd-sr-item:hover, .pd-sr-item.is-active { background: rgba(35, 44, 63, .06); }
.pd-sr-item > span { flex: 1; min-width: 0; }
.pd-sr-sub { font-style: normal; font-size: 11px; font-weight: 600; color: var(--bronze-dk); background: rgba(176, 164, 138, .16); border-radius: 6px; padding: 2px 6px; margin-left: 6px; white-space: nowrap; }
/* mobile : barre en bas → le menu s'ouvre AU-DESSUS */
@media (max-width: 760px) { body.search-open .pd-search-results { top: auto; bottom: calc(100% + 8px); } }
/* accès Lab à droite du bandeau (fiole + « Lab ») */
.pd-topbar-lab { flex: none; display: flex; align-items: center; gap: 8px; color: var(--navy); font-weight: 700; font-size: 14px; text-decoration: none; }
.pd-topbar-lab .ic { width: 21px; height: 21px; color: var(--bronze-dk); }
.pd-topbar-lab:hover { color: var(--bronze-dk); }
.pd-nav { display: flex; gap: 4px; margin-left: auto; }
.pd-nav a { padding: 8px 13px; border-radius: 9px; font-size: 13.5px; font-weight: 600; color: var(--ink); text-decoration: none; }
.pd-nav a:hover { background: rgba(35,44,63,.06); }
.pd-nav a.is-active { background: var(--navy); color: #fff; }
.pd-actions { display: flex; align-items: center; gap: 8px; margin-left: auto; }
.pd-demo-tag { font-size: 10.5px; font-weight: 600; letter-spacing: .02em; color: var(--bronze-dk);
  background: rgba(176,164,138,.16); border: 1px solid var(--glass-line); padding: 5px 9px; border-radius: 8px; white-space: nowrap; }
.pd-icobtn, .pd-btn-ghost { border: 1px solid var(--glass-line); background: rgba(255,255,255,.6); border-radius: 10px;
  font: inherit; font-size: 13px; font-weight: 600; color: var(--navy); cursor: pointer; display: inline-flex; align-items: center; gap: 7px; }
.pd-icobtn { width: 38px; height: 38px; justify-content: center; }
.pd-btn-ghost { height: 38px; padding: 0 13px; }
.pd-icobtn:hover, .pd-btn-ghost:hover { background: rgba(255,255,255,.9); }
.pd-icobtn.is-on { background: var(--navy); color: #fff; }

/* ═══════════ APP + CARTE ═══════════ */
.pd-app { position: relative; flex: 1; min-height: 0; }
#map { position: absolute; inset: 0; }
.maplibregl-ctrl-attrib { font-size: 10px; }
.maplibregl-ctrl-bottom-right { margin-bottom: 54px; } /* au-dessus du bouton Informations (coin bas-droite) */

/* — Panneau data (gauche) — */
.pd-info { position: absolute; top: 74px; left: 16px; z-index: 20; width: 418px; max-height: calc(100% - 90px); overflow-y: auto;
  padding: 16px; border-radius: 18px; background: linear-gradient(155deg, rgba(255,255,255,.975), rgba(255,255,255,.945)); -webkit-backdrop-filter: var(--glass-blur); backdrop-filter: var(--glass-blur);
  border: 1px solid var(--glass-brd); box-shadow: var(--glass-shadow); scrollbar-width: thin;
  --muted: #565c6b; --bronze-dk: #6e6047; } /* texte secondaire + intertitres plus foncés pour la lisibilité */
.pd-info.is-empty { display: none; } /* aucune sélection (accueil / clic hors bâtiment) → fiche masquée */
.pd-info.is-lieu .pd-block--market { display: none; } /* monument / bâtiment public → on masque prix & évolution */
.pd-lieu-img { display: block; width: 100%; height: 148px; object-fit: cover; border-radius: 12px; margin: 2px 0 11px; }
.pd-lieu-desc { font-size: 14.5px; line-height: 1.5; color: var(--ink); margin: 0 0 11px; }
.pd-lieu-links { display: flex; gap: 8px; flex-wrap: wrap; }
.pd-lieu-links a { font-size: 12.5px; font-weight: 700; color: var(--navy); text-decoration: none; border: 1.5px solid var(--bronze); padding: 6px 12px; border-radius: 10px; }
.pd-lieu-links a:hover { background: rgba(176,164,138,.16); }
.pd-lieu-cite { font-size: 11px; color: var(--muted); margin: 9px 0 0; }
.pd-sheet-grip, .pd-close { display: none; }
.pd-info-head { display: grid; grid-template-columns: 56px 1fr auto; gap: 12px; align-items: start; }
.pd-thumb { width: 56px; height: 56px; border-radius: 12px; background: linear-gradient(160deg, var(--bronze-lt), var(--bronze));
  display: flex; align-items: center; justify-content: center; color: #fff; }
.pd-thumb .ic { width: 26px; height: 26px; }
.pd-h1 { font-family: var(--font-logo); text-transform: uppercase; letter-spacing: .03em; font-weight: 700; font-size: 20.5px; color: var(--navy); line-height: 1.1; }
.pd-crumb2 { font-size: 11px; color: var(--muted); letter-spacing: .01em; margin-bottom: 4px; }
.pd-crumb2 a { color: var(--bronze-dk); text-decoration: none; }
.pd-crumb2 a:hover { text-decoration: underline; }
.pd-sub { font-size: 13.5px; color: var(--muted); margin-top: 3px; }
.pd-alt { font-size: 12.5px; color: var(--bronze-dk); margin-top: 3px; } /* immeuble d'angle : adresses alternatives */
.pd-intro { font-size: 13.5px; line-height: 1.5; color: var(--muted); margin: 14px 0 2px; } /* intro éditoriale (contexte + GEO/LLM) — aligné à gauche comme les blocs */
.pd-alt[hidden] { display: none; }
.pd-chips { display: flex; gap: 6px; margin-top: 7px; }
.pd-chip { font-size: 11px; font-weight: 600; color: var(--bronze-dk); background: rgba(176,164,138,.16); border: 1px solid var(--glass-line); padding: 3px 8px; border-radius: 7px; }

.pd-block { margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--line-warm); }
.pd-block > h2 { font-size: 12.5px; text-transform: uppercase; letter-spacing: .09em; color: var(--bronze-dk); font-weight: 700; margin-bottom: 10px; }
.pd-block > h2 small { text-transform: none; letter-spacing: 0; color: var(--muted); font-weight: 500; font-size: 11.5px; }
.pd-k { display: block; font-size: 12px; color: var(--muted); margin-bottom: 2px; }
.pd-price-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
/* médian + fourchette alignés sur la même ligne de base */
.pd-price-tier + .pd-price-tier { margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--glass-line); }
.pd-price-tier-h { font-size: 13px; font-weight: 700; color: var(--bronze-dk); letter-spacing: .01em; margin-bottom: 6px; }
.pd-price-tier-h small { font-weight: 600; color: var(--muted); }
.pd-price-tier .pd-big { font-size: 22px; }
.pd-price-tier .pd-range { font-size: 17px; }
.pd-price-grid { display: grid; grid-template-columns: 1fr 1fr; column-gap: 14px; row-gap: 3px; align-items: baseline; }
.pd-price-grid .pd-k { margin-bottom: 0; }
.pd-price-grid .pd-src { grid-column: 1; margin-top: 2px; }
.pd-range { font-size: 19px; font-weight: 800; color: var(--navy); font-variant-numeric: tabular-nums; white-space: nowrap; }
.pd-big { font-size: 25px; font-weight: 800; color: var(--navy); font-variant-numeric: tabular-nums; }
.pd-big em { font-size: 13.5px; font-weight: 600; color: var(--muted); font-style: normal; }
.pd-mid { font-size: 16px; font-weight: 700; color: var(--navy); }
.pd-up { display: block; font-size: 12px; font-weight: 700; color: var(--green); margin-top: 2px; }
/* échelle métrique (mètres/km, s'adapte au zoom) — charte navy/bronze */
.maplibregl-ctrl-scale { background: rgba(255,255,255,.72); border: 1px solid var(--glass-line); border-top: none; border-radius: 0 0 5px 5px; color: var(--navy); font: 600 10.5px/1.5 var(--font, system-ui); padding: 1px 6px 2px; box-shadow: 0 2px 8px rgba(35,44,63,.12); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
@media (max-width: 760px) { .maplibregl-ctrl-bottom-left { margin-bottom: calc(56px + var(--sb-h, 54px)); } .maplibregl-ctrl-bottom-right { margin-bottom: calc(56px + var(--sb-h, 54px) + 52px); } } /* échelle alignée bas du bouton Légende ; contrôles au-dessus du ⓘ — hauteur stats dynamique (--sb-h) */
/* bloc de contrôle bas-droite (nord + géoloc) : mêmes attributs verre/navy que le menu du bas et les autres contrôles */
.maplibregl-ctrl-bottom-right .maplibregl-ctrl-group { background: var(--glass-bg-2); -webkit-backdrop-filter: var(--glass-blur-sm); backdrop-filter: var(--glass-blur-sm);
  border: 1px solid var(--glass-brd); box-shadow: var(--glass-shadow); border-radius: 13px; overflow: hidden; }
.maplibregl-ctrl-bottom-right .maplibregl-ctrl-group button { width: 46px; height: 46px; background: transparent; border: 0; display: flex; align-items: center; justify-content: center; color: var(--navy); }
.maplibregl-ctrl-bottom-right .maplibregl-ctrl-group button + button { border-top: 1px solid var(--glass-line); }
.maplibregl-ctrl-bottom-right .maplibregl-ctrl-group button:hover { background: rgba(35,44,63,.08); }
.maplibregl-ctrl-group button.pd-ctrl-cursor .ic { width: 20px; height: 20px; color: var(--navy); }
/* Bouton Informations (coin bas-droite) + fenêtre « À propos » */
.pd-info-btn { position: absolute; right: 14px; bottom: 14px; z-index: 18; width: 34px; height: 34px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center; cursor: pointer; color: var(--navy);
  background: var(--glass-bg-2); -webkit-backdrop-filter: var(--glass-blur-sm); backdrop-filter: var(--glass-blur-sm);
  border: 1px solid var(--glass-brd); box-shadow: var(--glass-shadow); }
.pd-info-btn:hover { background: rgba(255,255,255,.92); }
.pd-modal { position: fixed; inset: 0; z-index: 80; display: flex; align-items: center; justify-content: center; padding: 20px;
  background: rgba(20,26,38,.42); -webkit-backdrop-filter: blur(2px); backdrop-filter: blur(2px); }
.pd-modal[hidden] { display: none; }
.pd-modal-card { width: 100%; max-width: 620px; max-height: 85vh; display: flex; flex-direction: column; overflow: hidden;
  background: #fff; border-radius: 18px; box-shadow: 0 30px 80px rgba(35,44,63,.35); }
.pd-modal-head { display: flex; align-items: center; justify-content: space-between; padding: 16px 22px;
  background: linear-gradient(120deg, rgba(35,44,63,.10), rgba(176,164,138,.20)); border-bottom: 1px solid var(--line-warm); }
.pd-modal-head h2 { margin: 0; font-size: 17px; color: #232c3f; font-weight: 700; }
.pd-modal-x { width: 32px; height: 32px; flex: none; border: 0; background: rgba(255,255,255,.6); border-radius: 50%; font-size: 21px; line-height: 1; color: var(--navy); cursor: pointer; }
.pd-modal-body { padding: 6px 22px 22px; overflow-y: auto; }
.pd-modal-body section { padding-top: 16px; }
.pd-modal-body h3 { font-size: 12px; text-transform: uppercase; letter-spacing: .07em; color: var(--bronze-dk); font-weight: 700; margin: 0 0 6px; }
.pd-modal-body p { margin: 0; font-size: 13.5px; line-height: 1.6; color: var(--ink); }
.pd-modal-body a { color: var(--navy); font-weight: 600; }

.pd-src { display: block; font-size: 12px; color: var(--muted); margin-top: 3px; }
/* Méthodologie du score (ⓘ dépliable, natif) */
.pd-score-foot { margin-top: 10px; }
.pd-method { margin-top: 8px; }
.pd-method > summary { list-style: none; cursor: pointer; display: flex; align-items: center; gap: 7px; font-size: 12px; font-weight: 600; color: var(--navy); user-select: none; }
.pd-method > summary::-webkit-details-marker { display: none; }
.pd-method > summary:hover { color: var(--bronze-dk); }
.pd-i { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 15px; height: 15px; border: 1.5px solid currentColor; border-radius: 50%; font-family: Georgia, serif; font-style: italic; font-size: 10px; font-weight: 700; line-height: 1; }
.pd-method[open] > summary { margin-bottom: 8px; }
.pd-method-body { font-size: 12px; color: var(--navy); line-height: 1.55; }
.pd-method-body p { margin: 0 0 7px; }
.pd-method-w { list-style: none; padding: 0; margin: 0 0 8px; display: flex; flex-wrap: wrap; gap: 4px 6px; }
.pd-method-w li { font-size: 12px; color: var(--muted); background: rgba(176,164,138,.13); border-radius: 6px; padding: 2px 8px; }
.pd-method-w li b { color: var(--navy); }
.pd-method-src { font-size: 12px; color: var(--muted); margin-top: 4px; }
.pd-method-src b { color: var(--navy); }
.pd-na { color: var(--muted); font-style: italic; font-weight: 600; }
.pd-line small { color: var(--muted); font-weight: 400; }
.pd-spark { width: 90px; height: 26px; margin-top: 6px; display: block; }
.pd-evo-wrap { position: relative; margin: 2px 0 4px; }
.pd-evo { width: 100%; height: auto; display: block; touch-action: none; cursor: crosshair; }
.pd-evo-cursor { stroke: rgba(35,44,63,.28); stroke-width: 1; }
.pd-evo-hot { fill: #7f7059; stroke: #fff; stroke-width: 1.2; }
.pd-evo-tip { position: absolute; transform: translate(-50%, -140%); background: var(--navy); color: #fff; font-size: 11px; font-weight: 600; padding: 4px 9px; border-radius: 8px; white-space: nowrap; pointer-events: none; box-shadow: var(--shadow-md); z-index: 3; }
.pd-evo-cap { display: flex; justify-content: space-between; align-items: baseline; font-size: 11px; color: var(--muted); margin-bottom: 6px; }
.pd-evo-cap b { font-size: 14px; color: var(--navy); font-variant-numeric: tabular-nums; }
.pd-line { display: flex; justify-content: space-between; gap: 10px; align-items: baseline; font-size: 14px; color: var(--ink); margin-top: 10px; }
.pd-line .pd-k { display: inline; margin: 0; font-size: inherit; }
.pd-link { color: var(--bronze-dk); font-weight: 600; }

.pd-dpe-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 10px; }
.pd-dpe-badge { display: inline-flex; width: 33px; height: 33px; align-items: center; justify-content: center; border-radius: 8px; font-weight: 800; color: #1a2030; font-size: 16.5px; }
.pd-dpe-badge[data-dpe="A"] { background: #1a9850; color: #fff; }
.pd-dpe-badge[data-dpe="B"] { background: #4caf50; color: #fff; }
.pd-dpe-badge[data-dpe="C"] { background: #c3d545; }
.pd-dpe-badge[data-dpe="D"] { background: #fee08b; }
.pd-dpe-badge[data-dpe="E"] { background: #fdae61; }
.pd-dpe-badge[data-dpe="F"] { background: #e8622a; color: #fff; }
.pd-dpe-badge[data-dpe="G"] { background: #d73027; color: #fff; }
.pd-dpe-badge:not([data-dpe]) { background: var(--line-warm); color: var(--muted); font-size: 11px; }
.pd-dpe-cap { display: block; margin-top: 4px; font-size: 11px; color: var(--muted); line-height: 1.3; }
.pd-dpe-cap:empty { display: none; }
.pd-dpe-bar { display: flex; gap: 3px; }
.pd-dpe-bar i { flex: 1; height: 12px; border-radius: 3px; opacity: .5; }
.pd-dpe-bar i.on { opacity: 1; outline: 2px solid var(--navy); outline-offset: 1px; }
.pd-dpe-bar i[data-c="A"]{background:#1a9850} .pd-dpe-bar i[data-c="B"]{background:#4caf50} .pd-dpe-bar i[data-c="C"]{background:#c3d545}
.pd-dpe-bar i[data-c="D"]{background:#fee08b} .pd-dpe-bar i[data-c="E"]{background:#fdae61} .pd-dpe-bar i[data-c="F"]{background:#e8622a} .pd-dpe-bar i[data-c="G"]{background:#d73027}
.pd-dpe-scale { display: flex; margin-top: 3px; }
.pd-dpe-scale span { flex: 1; text-align: center; font-size: 10.5px; color: var(--muted); }
.pd-tag-cpcu { font-size: 10px; font-weight: 700; color: #fff; background: #e8622a; padding: 2px 6px; border-radius: 5px; }
.pd-mh { font-weight: 700; color: var(--bronze-dk); }
.pd-cpcu-on { display: inline-flex; align-items: center; gap: 6px; font-weight: 700; color: #c2521f; }

.pd-env { list-style: none; display: flex; flex-direction: column; gap: 9px; }
.pd-env li { display: grid; grid-template-columns: 24px 1fr auto; gap: 9px; align-items: center; font-size: 14.5px; }
.pd-env li .ic { width: 20px; height: 20px; color: var(--bronze-dk); }
.pd-env li span { color: var(--muted); }
.pd-env li b { color: var(--navy); font-weight: 700; }
/* Autorisations d'urbanisme (Sitadel) */
.pd-permis { display: flex; flex-direction: column; gap: 9px; }
.pd-permis-cap { font-size: 11px; color: var(--muted); margin-bottom: 1px; }
.pd-permis-item { display: flex; gap: 9px; align-items: flex-start; }
.pd-permis-badge { flex: 0 0 auto; min-width: 26px; text-align: center; font-size: 10px; font-weight: 700; letter-spacing: .02em; color: #fff; background: var(--navy); padding: 3px 6px; border-radius: 5px; margin-top: 1px; }
.pd-b-PC { background: var(--bronze-dk); } .pd-b-DP { background: #5a6474; } .pd-b-PD { background: #8a4636; } .pd-b-PA { background: #47695a; } .pd-b-DT { background: #6b7280; } .pd-b-RV { background: #7a6a52; }
.pd-permis-body { font-size: 14px; line-height: 1.35; color: var(--navy); }
.pd-permis-body b { font-weight: 700; }
.pd-permis-sub { display: block; font-size: 12.5px; color: var(--muted); }
.pd-permis-fold { margin-top: -1px; }
.pd-permis-fold > summary { list-style: none; cursor: pointer; display: flex; align-items: center; gap: 5px; padding: 3px 0; user-select: none; font-size: 12px; font-weight: 600; color: var(--bronze-dk); }
.pd-permis-fold > summary::-webkit-details-marker { display: none; }
.pd-permis-fold > summary:hover, .pd-permis-fold > summary:hover .pd-fold-caret { color: var(--navy); }
.pd-permis-fold > summary .pd-fold-caret { width: 16px; height: 16px; }
.pd-permis-fold[open] > summary .pd-fold-caret { transform: rotate(0deg); }
.pd-permis-fold-body { display: flex; flex-direction: column; gap: 9px; padding-top: 9px; }
/* Dernières ventes DVF */
.pd-ventes { display: flex; flex-direction: column; gap: 9px; }
.pd-vente-cap { font-size: 12px; color: var(--muted); margin-bottom: 1px; }
.pd-vente-item { display: flex; gap: 10px; align-items: baseline; }
.pd-vente-date { flex: 0 0 auto; min-width: 54px; font-size: 13px; font-weight: 700; color: var(--bronze-dk); }
.pd-vente-body { font-size: 14.5px; color: var(--navy); }
.pd-vente-body b { font-weight: 700; }
.pd-vente-sub { display: block; font-size: 13px; color: var(--muted); }
/* vente non résidentielle (commercial / maison / ensemble) : affichée mais hors calcul de prix */
.pd-vente-mix .pd-vente-body b { font-weight: 600; color: var(--bronze-dk); font-size: 13px; text-transform: uppercase; letter-spacing: .03em; }
.pd-vente-mix .pd-vente-date { color: var(--muted); }
.pd-grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; font-size: 14px; }
.pd-grid2 span:last-child { font-weight: 600; color: var(--navy); }

.pd-neigh { display: flex; flex-direction: column; gap: 6px; }
.pd-neigh a { font-size: 14px; color: var(--bronze-dk); text-decoration: none; padding: 6px 9px; border-radius: 8px; background: rgba(176,164,138,.1); }
.pd-neigh a:hover { background: rgba(176,164,138,.22); color: var(--navy); }
.pd-cta { display: flex; flex-direction: column; gap: 9px; margin-top: 18px; }
.pd-btn-primary, .pd-btn-outline { display: block; text-align: center; padding: 12px; border-radius: 12px; font-weight: 700; font-size: 14px; text-decoration: none; }
.pd-btn-primary { background: var(--navy); color: #fff; box-shadow: var(--shadow-md); }
.pd-btn-outline { border: 1.5px solid var(--bronze); color: var(--navy); }
.pd-btn-outline:hover { background: rgba(176,164,138,.12); }

/* ── Widget de contact (WhatsApp / mail / appel) — bandeau des fiches adresse ────────────────────
   Placé dans .pd-topbar-end : à GAUCHE du lien Lab sur PC, en HAUT-DROITE (face au logo « data ») sur
   mobile (où search + Lab sont masqués). Vert #25D366 = marque WhatsApp (exception assumée à la charte).
   Ouverture vers le BAS, 100 % CSS (checkbox masquée + sélecteur ~). */
.pd-topbar-end { flex: 1; display: flex; align-items: center; justify-content: flex-end; gap: 14px; min-width: 0; }
.pd-contact { position: relative; display: flex; align-items: center; }
.pd-contact-cb { position: absolute; width: 0; height: 0; opacity: 0; }
.pd-contact-fab { display: flex; align-items: center; justify-content: center; width: 42px; height: 42px; border-radius: 50%;
  background: #25D366; box-shadow: 0 4px 14px rgba(37,211,102,.42); cursor: pointer; transition: transform .15s ease, background .15s ease; }
.pd-contact-fab:hover { transform: scale(1.07); }
.pd-contact-fab-wa, .pd-contact-fab-x { align-items: center; justify-content: center; line-height: 0; }
.pd-contact-fab-wa { display: flex; }
.pd-contact-fab svg { width: 23px; height: 23px; color: #fff; display: block; }
.pd-contact-fab-x { display: none; }
.pd-contact-fab-x svg { width: 20px; height: 20px; }
.pd-contact-cb:checked ~ .pd-contact-fab { background: var(--navy, #232c3f); box-shadow: 0 4px 14px rgba(35,44,63,.4); }
.pd-contact-cb:checked ~ .pd-contact-fab .pd-contact-fab-wa { display: none; }
.pd-contact-cb:checked ~ .pd-contact-fab .pd-contact-fab-x { display: flex; }
.pd-contact-card { position: absolute; top: calc(100% + 10px); right: 0; z-index: 60; width: 288px; max-width: calc(100vw - 24px);
  border-radius: 16px; overflow: hidden; background: var(--navy, #232c3f); box-shadow: 0 16px 44px rgba(35,44,63,.42);
  opacity: 0; transform: translateY(-8px) scale(.98); transform-origin: top right; pointer-events: none;
  transition: opacity .18s ease, transform .18s ease; }
.pd-contact-cb:checked ~ .pd-contact-card { opacity: 1; transform: none; pointer-events: auto; }
.pd-contact-head { display: flex; align-items: center; gap: 10px; padding: 12px 13px; background: #25D366; text-decoration: none; }
.pd-contact-av { flex: none; width: 40px; height: 40px; border-radius: 50%; background: #fff; display: flex; align-items: center; justify-content: center; overflow: hidden; }
.pd-contact-av svg { width: 24px; height: 24px; color: #fff; }
.pd-contact-av img { width: 100%; height: 100%; object-fit: contain; }
.pd-contact-logo { font-family: var(--font-logo, "Segoe UI", system-ui, sans-serif); font-weight: 500; font-size: 8.5px; line-height: 1.04; letter-spacing: -.2px; text-transform: uppercase; text-align: center; color: var(--navy, #232c3f); }
.pd-contact-logo b { display: block; font-weight: 800; letter-spacing: .1px; }
.pd-contact-h-txt { flex: 1; line-height: 1.2; color: #fff; }
.pd-contact-h-txt small { display: block; font-size: 10.5px; opacity: .95; }
.pd-contact-h-txt b { font-size: 14px; font-weight: 600; letter-spacing: .01em; }
.pd-contact-h-txt b i { font-style: normal; font-weight: 800; }
.pd-contact-wa { flex: none; width: 34px; height: 34px; border-radius: 9px; background: rgba(255,255,255,.22); display: flex; align-items: center; justify-content: center; }
.pd-contact-wa svg { width: 19px; height: 19px; color: #fff; }
.pd-contact-row { display: flex; align-items: center; gap: 11px; padding: 11px 14px; color: #eef0f4; text-decoration: none; font-size: 12.5px; font-weight: 600; border-top: 1px solid rgba(255,255,255,.09); }
.pd-contact-row:hover { background: rgba(255,255,255,.06); }
.pd-contact-row svg { flex: none; width: 18px; height: 18px; color: var(--bronze-lt, #c9bfa6); }
.pd-contact-row em { font-style: normal; font-weight: 500; opacity: .7; margin-left: 2px; }
@media (max-width: 760px) {
  .pd-contact-fab { width: 36px; height: 36px; }
  .pd-contact-fab svg { width: 20px; height: 20px; }
  .pd-contact-card { width: 258px; }
}

/* Résumé de l'adresse — repliable sous le titre (footprint minimal, contenu 100 % indexable) */
.pd-summary { margin: 12px 0 2px; border: 1px solid var(--line-warm); border-radius: 12px; background: rgba(255,255,255,.5); overflow: hidden; }
.pd-summary > summary { cursor: pointer; list-style: none; display: flex; align-items: center; gap: 8px; padding: 11px 14px; font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--bronze-dk); }
.pd-summary > summary::-webkit-details-marker { display: none; }
.pd-summary .pd-fold-caret { width: 14px; height: 14px; margin-left: auto; color: var(--bronze-dk); transition: transform .2s; }
.pd-summary[open] .pd-fold-caret { transform: rotate(180deg); }
.pd-summary-body { padding: 2px 14px 13px; }
.pd-summary-body p { font-size: 13px; line-height: 1.55; color: var(--ink); margin: 0 0 8px; }
.pd-summary-body p:last-child { margin-bottom: 0; }

/* FAQ — accordéon de questions en bas de fiche */
.pd-faq details { border-top: 1px solid var(--line-warm); }
.pd-faq details:first-of-type { border-top: none; }
.pd-faq-item > summary { cursor: pointer; list-style: none; display: flex; align-items: center; gap: 10px; padding: 11px 0; font-size: 13.5px; font-weight: 700; color: var(--navy); }
.pd-faq-item > summary::-webkit-details-marker { display: none; }
.pd-faq-item .pd-fold-caret { width: 15px; height: 15px; margin-left: auto; color: var(--bronze-dk); flex: none; transition: transform .2s; }
.pd-faq-item[open] .pd-fold-caret { transform: rotate(180deg); }
.pd-faq-a { padding: 0 0 12px; font-size: 13px; line-height: 1.55; color: var(--ink); }

/* — Panneau COUCHES (droite) — */
/* ═══ Menu carte : bandeau dégradé + tuiles + Lab. PC/tablette = TIROIR depuis la droite ; mobile = feuille depuis le bas ═══ */
.pd-couches { position: fixed; top: 74px; right: 12px; bottom: 88px; width: 356px; max-width: 92vw; z-index: 46;
  display: flex; flex-direction: column; overflow: hidden; /* s'insère ENTRE le bandeau du haut et la barre du bas, sans les couvrir */
  background: var(--glass-bg); -webkit-backdrop-filter: var(--glass-blur); backdrop-filter: var(--glass-blur);
  border: 1px solid var(--glass-line); border-radius: 18px; box-shadow: 0 18px 48px rgba(35,44,63,.22);
  transform: translateX(calc(100% + 18px)); transition: transform .32s cubic-bezier(.32,.72,0,1); }
.pd-couches.is-open { transform: translateX(0); }
.pd-couches-grip { display: none; } /* poignée de glissement : mobile uniquement */
/* bandeau dégradé (en-tête du menu) — identique mobile/desktop */
.pd-couches-head { flex: none; display: flex; align-items: center; justify-content: space-between; padding: 15px 18px;
  background: linear-gradient(120deg, rgba(35,44,63,.10), rgba(176,164,138,.20)); border-bottom: 1px solid var(--glass-line); }
.pd-couches-body { flex: 1; overflow-y: auto; padding: 2px 18px 20px; }
.pd-couches h3, .pd-couches-sub { text-transform: uppercase; letter-spacing: .08em; color: #232c3f; font-weight: 700; margin: 0; font-size: 11.5px; }
.pd-couches-head h3 { font-size: 13px; letter-spacing: .06em; color: #232c3f; }
.pd-couches-sub { margin: 20px 0 0; color: #232c3f; }
.pd-couches-sub--first { margin-top: 14px; }
.pd-couches-x { width: 30px; height: 30px; flex: none; border: 0; background: rgba(255,255,255,.55); border-radius: 50%; font-size: 20px; line-height: 1; color: var(--navy); cursor: pointer; }
.pd-couches-lab { display: flex; align-items: center; justify-content: center; gap: 9px; margin-top: 22px; padding: 12px; border-radius: 12px;
  border: 1.5px solid var(--bronze); color: #232c3f; font-weight: 700; font-size: 13.5px; text-decoration: none; }
.pd-couches-lab:hover { background: rgba(176,164,138,.14); }
.pd-couches-lab .ic { width: 20px; height: 20px; color: #232c3f; }
.pd-tiles { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin-top: 9px; }
.pd-tile { display: flex; flex-direction: column; align-items: center; gap: 5px; padding: 2px 1px; border: 0; background: transparent; cursor: pointer; font: inherit; font-size: 10.5px; font-weight: 600; color: var(--muted); text-align: center; line-height: 1.1; }
.pd-tile-ic { width: 100%; max-width: 52px; aspect-ratio: 1; display: flex; align-items: center; justify-content: center; border-radius: 13px; background: rgba(176,164,138,.16); border: 2px solid transparent; color: var(--bronze-dk); transition: border-color .15s, background .15s, color .15s; }
.pd-tile-ic .ic { width: 22px; height: 22px; }
.pd-tile:hover .pd-tile-ic { background: rgba(176,164,138,.28); }
.pd-tile.is-on { color: var(--navy); }
.pd-tile.is-on .pd-tile-ic { border-color: var(--navy); background: rgba(35,44,63,.10); color: var(--navy); }
/* déclencheur « Carte » du menu — À DROITE sur PC/tablette (masqué sur mobile → bouton « Carte » de la barre du bas) */
.pd-mapmenu-btn { position: absolute; top: 74px; right: 16px; z-index: 22; width: 48px; height: 48px; border-radius: 14px;
  display: flex; align-items: center; justify-content: center; cursor: pointer; color: var(--navy);
  background: var(--glass-bg-2); -webkit-backdrop-filter: var(--glass-blur-sm); backdrop-filter: var(--glass-blur-sm);
  border: 1px solid var(--glass-brd); box-shadow: var(--glass-shadow); }
.pd-mapmenu-btn .ic { width: 22px; height: 22px; }
.pd-mapmenu-btn:hover { background: rgba(255,255,255,.92); }
.pd-mapmenu-btn.is-on { background: var(--navy); color: #fff; }

/* — Légende (bas-centre) — */
.pd-legend { position: absolute; left: 50%; bottom: 18px; transform: translateX(-50%); z-index: 15; padding: 9px 14px;
  border-radius: 12px; background: var(--glass-bg-2); -webkit-backdrop-filter: var(--glass-blur-sm); backdrop-filter: var(--glass-blur-sm);
  border: 1px solid var(--glass-brd); box-shadow: var(--glass-shadow); min-width: 300px; }
.pd-legend-t { font-size: 9.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--navy); text-align: center; display: block; }
/* pastilles/logos des légendes overlay — alignés sur le rendu carte */
.pd-ovl-dot { width: 13px; height: 13px; border-radius: 50%; border: 1.5px solid #fff; box-shadow: 0 0 0 1px rgba(35,44,63,.15); flex: none; display: inline-block; }
.pd-legend-logo { width: 18px; height: 18px; flex: none; object-fit: contain; }
.pd-vpop { font: 500 12px/1.35 var(--font, system-ui); color: var(--navy); }
.pd-vpop b { display: block; font-weight: 700; font-size: 12.5px; }
.pd-vpop span { display: block; color: var(--muted); font-size: 11px; margin-top: 2px; }
.pd-ovl-row .pd-poi-badge { width: 20px; height: 20px; font-size: 11px; border-width: 1.5px; }
.pd-ovl-row .pd-poi-badge-rer { width: auto; height: 18px; padding: 0 6px; font-size: 9px; }
.pd-legend-scale { display: flex; height: 9px; border-radius: 5px; overflow: hidden; margin: 7px 0 4px; }
.pd-legend-scale i { flex: 1; }
.pd-legend-ticks { display: flex; justify-content: space-between; font-size: 10px; color: var(--muted); }
/* légende repliable : petit bouton « Légende » (replié par défaut), le dégradé s'ouvre au clic au-dessus */
.pd-legend-box { position: absolute; left: 50%; bottom: 18px; transform: translateX(-50%); z-index: 15; display: flex; flex-direction: column-reverse; align-items: center; gap: 7px; pointer-events: none; }
.pd-legend-box > * { pointer-events: auto; }
.pd-legend-box .pd-legend { position: static; left: auto; right: auto; bottom: auto; transform: none; min-width: 0; max-width: min(90vw, 360px); display: none; }
.pd-legend-box.is-open .pd-legend:not([hidden]) { display: block; }
.pd-legend-toggle { display: inline-flex; align-items: center; gap: 8px; font: 600 12px/1 var(--font, system-ui); color: var(--navy); padding: 8px 12px; border-radius: 999px; cursor: pointer; background: var(--glass-bg-2); border: 1px solid var(--glass-brd); box-shadow: var(--glass-shadow); -webkit-backdrop-filter: var(--glass-blur-sm); backdrop-filter: var(--glass-blur-sm); }
.pd-legend-toggle:hover { color: var(--bronze-dk); }
.pd-lt-swatch { width: 26px; height: 8px; border-radius: 4px; background: linear-gradient(90deg,#1a9850,#a6d96a,#fee08b,#f46d43,#a50f15); }
.pd-lt-caret { width: 0; height: 0; border-left: 4px solid transparent; border-right: 4px solid transparent; border-bottom: 5px solid currentColor; opacity: .6; transition: transform .2s; }
.pd-legend-box.is-open .pd-lt-caret { transform: rotate(180deg); }

/* légende d'overlay (inondation…) — empilée au-dessus de la légende de coloration */
.pd-legend-ovl { left: 50%; transform: translateX(-50%); bottom: 70px; min-width: 0; }
.pd-ovl-row { display: flex; align-items: center; justify-content: center; gap: 6px; font-size: 11px; color: var(--ink); margin-top: 6px; text-align: center; }
/* légende bivariée air × bruit (grille 3×3) */
.pd-ab { display: flex; align-items: center; gap: 5px; margin-top: 6px; }
.pd-ab-yl { writing-mode: vertical-rl; transform: rotate(180deg); font-size: 9px; color: var(--muted); }
.pd-ab-grid { display: grid; grid-template-columns: repeat(3, 14px); grid-auto-rows: 14px; gap: 2px; }
.pd-ab-grid i { display: block; border-radius: 2px; }
.pd-ab-xl { font-size: 9px; color: var(--muted); text-align: center; margin: 3px 0 0 19px; }
.pd-ovl-row i { width: 14px; height: 10px; border-radius: 3px; display: inline-block; }

/* — Scores (bas-droite) — */
/* Score PARISDATA — section fiche (ring + 7 sous-scores, rouge→vert) */
.pd-score-head { display: flex; align-items: center; gap: 14px; margin-bottom: 12px; }
.pd-score-ring { position: relative; width: 62px; height: 62px; flex: none; border-radius: 50%; }
.pd-score-ring::after { content: ""; position: absolute; inset: 6px; border-radius: 50%; background: #fff; }
.pd-score-ring span { position: absolute; inset: 0; z-index: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; line-height: 1; }
.pd-score-ring b { font-size: 21px; font-weight: 800; color: var(--navy); font-variant-numeric: tabular-nums; }
.pd-score-ring small { font-size: 9px; color: var(--muted); margin-top: 1px; }
.pd-score-glabel { font-size: 14px; font-weight: 700; }
.pd-score-conf { font-size: 11px; color: var(--muted); margin-top: 3px; }
.pd-score-list { display: flex; flex-direction: column; gap: 7px; }
.pd-score-row { display: grid; grid-template-columns: 1fr 88px 30px; align-items: center; gap: 10px; font-size: 12.5px; }
.pd-score-name { color: var(--navy); }
.pd-score-ind { color: var(--muted); font-size: 10px; font-style: italic; }
.pd-score-bar { height: 6px; border-radius: 4px; background: rgba(35,44,63,.09); overflow: hidden; }
.pd-score-bar i { display: block; height: 100%; border-radius: 4px; }
.pd-score-val { color: var(--navy); font-weight: 700; text-align: right; font-variant-numeric: tabular-nums; }

/* — marqueurs carte (créés en JS) — */
/* repère rond centré sur le toit — symétrique (aucune orientation « de travers ») */
.pd-pin { width: 16px; height: 16px; background: var(--navy); border: 3px solid #fff; border-radius: 50%;
  box-shadow: 0 0 0 1px rgba(35,44,63,.25), 0 2px 7px rgba(22,28,46,.5); cursor: pointer; }
.pd-pinlabel { background: var(--navy); color: #fff; font-size: 12px; font-weight: 400; padding: 5px 11px; border-radius: 9px;
  white-space: nowrap; box-shadow: var(--shadow-md); border: 1px solid rgba(255,255,255,.15); }
.pd-poi { display: flex; align-items: center; gap: 6px; pointer-events: none; }
.pd-poi-badge { width: 24px; height: 24px; border-radius: 50%; background: var(--navy); color: #fff; font-weight: 800; font-size: 13px; display: flex; align-items: center; justify-content: center; border: 2px solid #fff; box-shadow: var(--shadow-sm); flex: none; }
/* RER : pastille en pilule (le cercle ne suffit pas pour 3 lettres) */
.pd-poi-badge-rer { width: auto; min-width: 24px; padding: 0 7px; border-radius: 12px; font-size: 10.5px; letter-spacing: .02em; }
.pd-poi-dot { width: 16px; height: 16px; border-radius: 50%; background: var(--green); border: 2px solid #fff; box-shadow: var(--shadow-sm); }
/* nom de station : masqué par défaut, affiché uniquement en zoom rapproché (body.pd-zoom-names) */
.pd-poi-name { display: none; align-items: center; background: var(--glass-bg-2); -webkit-backdrop-filter: var(--glass-blur-sm); backdrop-filter: var(--glass-blur-sm);
  color: var(--navy); font-size: 11px; font-weight: 400; padding: 3px 8px; border-radius: 7px; border: 1px solid var(--glass-brd); box-shadow: var(--shadow-sm); white-space: nowrap; margin-left: 4px; }
body.pd-zoom-names .pd-poi-name { display: inline-flex; }
.pd-poi-lines { display: inline-flex; gap: 3px; margin-left: 4px; }
/* fond/texte posés en inline (couleur officielle de la ligne) */
.pd-poi-lines b { font-size: 9.5px; font-weight: 800; border-radius: 3px; min-width: 13px; text-align: center; padding: 1px 3px; line-height: 1.35; box-shadow: 0 0 0 1px rgba(0,0,0,.08); }
#map-readout { position: absolute; left: 50%; bottom: 70px; transform: translateX(-50%); z-index: 15; padding: 7px 14px; border-radius: 10px; font-size: 13px; font-weight: 600; color: var(--navy); background: var(--glass-bg-2); border: 1px solid var(--glass-brd); box-shadow: var(--glass-shadow); }

/* ═══════════ BARRE STATS PARIS (bas) ═══════════ */
.pd-statsbar { display: flex; align-items: center; justify-content: space-between; gap: 8px; height: 76px; padding: 0 18px; flex: none; overflow-x: auto;
  background: var(--glass-bg-2); -webkit-backdrop-filter: var(--glass-blur); backdrop-filter: var(--glass-blur); border-top: 1px solid var(--glass-line); z-index: 30; }
.pd-stat { display: flex; align-items: center; gap: 10px; padding: 0 16px; border-right: 1px solid var(--line-warm); white-space: nowrap; }
.pd-stat:last-child { border-right: none; padding-right: 0; }
.pd-stat > .ic { width: 26px; height: 26px; color: var(--bronze-dk); flex: none; }
.pd-stat .pd-k { font-size: 11px; margin: 0; }
.pd-stat b { display: block; font-size: 16px; font-weight: 800; color: var(--navy); font-variant-numeric: tabular-nums; }
.pd-stat em { font-size: 11px; font-style: normal; color: var(--muted); }
.pd-stat em.pd-up { color: var(--green); font-weight: 700; }
.pd-scope { display: flex; flex-direction: column; justify-content: center; gap: 2px; padding: 0 16px 0 2px; border-right: 1px solid var(--line-warm); white-space: nowrap; }
.pd-scope .pd-k { font-size: 10px; text-transform: uppercase; letter-spacing: .06em; margin: 0; }
.pd-crumbs { display: flex; align-items: center; gap: 2px; }
.pd-crumb { border: 0; background: none; padding: 1px 5px; border-radius: 6px; cursor: pointer; font: inherit; font-size: 15px; font-weight: 700; color: var(--muted); font-variant-numeric: tabular-nums; transition: color .15s ease, background .15s ease; }
.pd-crumb:hover { color: var(--navy); background: rgba(176,164,138,.16); }
.pd-crumb.is-active { color: var(--bronze-dk); font-weight: 800; }
.pd-crumbs .pd-crumb + .pd-crumb::before { content: '›'; color: var(--line-warm); font-weight: 400; margin-right: 4px; margin-left: -1px; }
.pd-stat b { transition: color .18s ease; }
.pd-stats-grip, .pd-stats-caret { display: none; } /* poignée + chevron : affichés uniquement sur mobile */

/* Bottom-nav (mobile uniquement) */
.pd-bottomnav { display: none; }

/* ═══════════ TABLETTE ═══════════ */
@media (max-width: 1180px) {
  .pd-info { width: 360px; }
  .pd-nav a { padding: 8px 10px; font-size: 12.5px; }
}
@media (max-width: 1040px) { .pd-scores { display: none; } }
@media (max-width: 980px) {
  .pd-demo-tag, .pd-btn-ghost span { display: none; }
  .pd-nav { display: none; }
}

/* ═══════════ MOBILE (bottom-sheet + bottom-nav) ═══════════ */
@media (max-width: 760px) {
  /* header mobile : logo seul, plus petit (le transparent + voile viennent de la base). Recherche & Lab → barre du bas */
  .pd-topbar { height: 56px; padding: 0 16px; }
  .pd-logo-img { height: 40px; }
  .pd-search, .pd-topbar-lab { display: none; }
  /* la loupe du menu du bas déplie la barre de recherche JUSTE AU-DESSUS de la barre du bas (comme le menu carte) */
  body.search-open .pd-search {
    display: flex; position: fixed; left: 12px; right: 12px; bottom: 66px; top: auto; z-index: 60;
    width: auto; max-width: none; margin: 0; height: 48px; border-radius: 14px; background: #fff; border-color: transparent;
    box-shadow: 0 -6px 30px rgba(35,44,63,.20), 0 2px 8px rgba(35,44,63,.10); }
  body.search-open .pd-bottomnav [data-nav="search"] { color: var(--navy); font-weight: 700; }

  /* MOBILE : le menu redevient une FEUILLE depuis le bas (le tiroir de droite est desktop/tablette) */
  /* ancrée à 56px (au-dessus de la nav) → l'état fermé descend de sa hauteur ET des 56px, sinon l'en-tête dépasse */
  .pd-couches { top: auto; left: 0; right: 0; width: auto; max-width: none; bottom: 56px; max-height: 62vh;
    border: 1px solid var(--glass-line); border-bottom: 0; border-radius: 22px 22px 0 0; box-shadow: 0 -14px 44px rgba(35,44,63,.20);
    transform: translateY(calc(100% + 60px)); }
  .pd-couches.is-open { transform: translateY(0); }
  .pd-couches-grip { display: block; width: 44px; height: 5px; border-radius: 3px; background: var(--line); border: 0; margin: 6px auto 2px; cursor: pointer; }
  .pd-couches-lab { display: none; } /* Lab déjà présent dans la barre du bas sur mobile */
  .pd-mapmenu-btn { display: none; }
  .pd-info-btn { bottom: calc(56px + var(--sb-h, 54px) + 10px); right: 17px; } /* bas aligné au bouton Légende + centré sous les contrôles carte */
  .pd-legend { bottom: calc(56px + var(--sb-h, 54px) + 62px); min-width: 0; left: 12px; right: 12px; transform: none; }
  .pd-legend-box { bottom: calc(56px + var(--sb-h, 54px) + 10px); }        /* au-dessus des stats repliées + nav */
  .pd-legend-box .pd-legend { left: auto; right: auto; bottom: auto; max-width: 88vw; }
  .pd-legend-ticks { font-size: 9px; }

  /* panneau data → bottom sheet */
  .pd-info { top: auto; left: 0; right: 0; bottom: 56px; width: auto; max-height: 60vh; border-radius: 20px 20px 0 0;
    padding: 8px 16px 18px; box-shadow: 0 -12px 40px rgba(35,44,63,.16); }
  .pd-sheet-grip { display: block; width: 42px; height: 5px; border-radius: 3px; background: var(--line); border: 0; margin: 4px auto 10px; }
  .pd-close { display: flex; align-items: center; justify-content: center; width: 30px; height: 30px; border: 0; background: rgba(35,44,63,.06); border-radius: 50%; font-size: 20px; color: var(--muted); cursor: pointer; }

  /* ═══ Statistiques de zone : feuille repliable au-dessus de la barre du bas ═══ */
  .pd-statsbar { display: flex !important; flex-wrap: wrap; align-items: center; justify-content: flex-start; gap: 0;
    position: fixed; left: 0; right: 0; bottom: 56px; top: auto; height: auto; z-index: 44; overflow: hidden; cursor: pointer;
    padding: 17px 18px 7px; border-top: 0; border-radius: 20px 20px 0 0;
    background: rgba(255,255,255,.97); -webkit-backdrop-filter: var(--glass-blur); backdrop-filter: var(--glass-blur); box-shadow: 0 -10px 34px rgba(35,44,63,.16); }
  /* stats masquées quand un autre panneau du bas prend le dessus : fiche adresse, recherche (loupe), ou menu carte
     → évite tout chevauchement et met la barre de recherche seule au premier plan */
  body:has(.pd-info:not(.is-empty)) .pd-statsbar,
  body.search-open .pd-statsbar,
  body:has(#pd-mapmenu.is-open) .pd-statsbar { display: none !important; }
  .pd-stats-grip { display: block; position: absolute; top: 7px; left: 50%; transform: translateX(-50%); width: 42px; height: 5px; border-radius: 3px; background: var(--line); border: 0; padding: 0; cursor: pointer; }
  .pd-stats-caret { display: block; position: absolute; right: 16px; top: 18px; width: 20px; height: 20px; color: var(--navy); transition: transform .25s; }
  .pd-statsbar.is-open .pd-stats-caret { transform: rotate(180deg); }
  .pd-statsbar .pd-scope, .pd-statsbar .pd-stat { border: 0 !important; padding: 8px 0; white-space: normal; }
  .pd-statsbar .pd-scope { flex-direction: row; align-items: baseline; gap: 7px; }
  .pd-statsbar .pd-scope .pd-k { font-size: 11px; }
  /* REPLIÉ : uniquement le fil d'Ariane, centré sur UNE ligne — l'utilisateur tape pour déplier les stats */
  .pd-statsbar:not(.is-open) { justify-content: center; }
  .pd-statsbar:not(.is-open) .pd-scope { padding: 3px 0; flex-wrap: nowrap; justify-content: center; }
  .pd-statsbar:not(.is-open) .pd-scope [data-scope-crumbs] { flex-wrap: nowrap; }
  .pd-statsbar:not(.is-open) .pd-stat { display: none; }
  /* DÉPLIÉ : grille 2 colonnes de toutes les stats */
  .pd-statsbar.is-open .pd-scope { flex: 0 0 100%; margin-bottom: 4px; }
  .pd-statsbar.is-open .pd-stat { flex: 0 0 50%; padding: 10px 0; }
  .pd-statsbar.is-open .pd-stat > .ic { width: 24px; height: 24px; }
  .pd-bottomnav { display: flex; position: fixed; bottom: 0; left: 0; right: 0; height: 56px; z-index: 45; align-items: stretch;
    background: var(--glass-bg-2); -webkit-backdrop-filter: var(--glass-blur); backdrop-filter: var(--glass-blur); border-top: 1px solid var(--glass-line); }
  .pd-bottomnav a { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; font-size: 10px; color: var(--muted); text-decoration: none; }
  .pd-bottomnav a .ic { width: 22px; height: 22px; }
  .pd-bottomnav a.is-active { color: var(--navy); font-weight: 700; }
}

/* ═══ Pages HUB (arrondissement / quartier) ═══ */
/* libellés de quartier posés sur la carte (marqueurs HTML — le style n'a pas de glyphs pour du texte vectoriel) */
.pd-qu-label { display: flex; flex-direction: column; align-items: center; gap: 1px; text-decoration: none; cursor: pointer;
  padding: 3px 9px; border-radius: 12px; background: rgba(255, 255, 255, .9); box-shadow: 0 2px 9px rgba(35, 44, 63, .2);
  -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); text-align: center; line-height: 1.15; transition: background .15s; }
.pd-qu-label b { font-size: 12px; font-weight: 700; color: var(--navy); white-space: nowrap; }
.pd-qu-label span { font-size: 11px; font-weight: 600; color: var(--bronze-dk); }
.pd-qu-label:hover { background: #fff; box-shadow: 0 3px 12px rgba(35, 44, 63, .28); }
/* panneau hub : réutilise la trame de la fiche ; blocs légers spécifiques */
.pd-hub-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 14px; margin: 4px 0 2px; }
.pd-hub-stat { display: flex; flex-direction: column; gap: 1px; }
.pd-hub-stat .pd-k { font-size: 11px; color: var(--muted); }
.pd-hub-stat b { font-size: 16px; color: var(--ink); font-weight: 700; }
.pd-hub-list { display: flex; flex-direction: column; gap: 6px; }
.pd-hub-list a { display: flex; align-items: center; justify-content: space-between; gap: 10px; text-decoration: none;
  padding: 9px 12px; border-radius: 11px; background: var(--glass-bg-2); border: 1px solid var(--glass-line); color: var(--ink); font-size: 13px; }
.pd-hub-list a:hover { background: rgba(35, 44, 63, .06); }
.pd-hub-list a .pd-hub-px { font-weight: 700; color: var(--navy); white-space: nowrap; }
.pd-hub-list a .pd-hub-px.pd-na { color: var(--muted); font-weight: 500; }

/* ═══ Calque « Soleil & ombres » — panneau de contrôle (charte existante) ═══ */
.pd-solar { position: absolute; z-index: 30; left: 50%; transform: translateX(-50%); bottom: 16px; width: min(460px, calc(100% - 32px));
  background: linear-gradient(155deg, rgba(255,255,255,.975), rgba(255,255,255,.945)); -webkit-backdrop-filter: var(--glass-blur); backdrop-filter: var(--glass-blur);
  border: 1px solid var(--glass-brd); border-radius: 16px; box-shadow: var(--glass-shadow); padding: 12px 14px; --muted:#565c6b; --bronze-dk:#6e6047; }
.pd-solar[hidden] { display: none; }
.pd-solar-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 9px; }
.pd-solar-title { display: flex; align-items: center; gap: 7px; font-weight: 700; font-size: 12.5px; color: var(--navy); text-transform: uppercase; letter-spacing: .04em; }
.pd-solar-title .ic { width: 18px; height: 18px; color: var(--bronze-dk); }
.pd-solar-info { font-size: 12px; color: var(--bronze-dk); font-weight: 600; white-space: nowrap; }
.pd-solar-seasons { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; margin-bottom: 9px; }
.pd-solar-season { padding: 7px 4px; border: 1px solid var(--glass-line); border-radius: 9px; background: rgba(255,255,255,.6); font: inherit; font-size: 12.5px; font-weight: 600; color: var(--ink); cursor: pointer; }
.pd-solar-season.is-on { background: var(--navy); color: #fff; border-color: var(--navy); }
.pd-solar-row { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; }
.pd-solar-datewrap { display: flex; align-items: center; gap: 8px; }
.pd-solar-date { font: inherit; font-size: 12.5px; border: 1px solid var(--glass-line); border-radius: 8px; padding: 5px 8px; background: #fff; color: var(--ink); }
.pd-solar-datelbl { font-size: 12.5px; color: var(--muted); }
.pd-solar-play { margin-left: auto; padding: 7px 13px; border: 0; border-radius: 9px; background: var(--bronze); color: #fff; font: inherit; font-size: 12.5px; font-weight: 700; cursor: pointer; white-space: nowrap; }
.pd-solar-play.is-playing { background: var(--navy); }
.pd-solar-slider { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; }
.pd-solar-slider span { font-size: 11.5px; color: var(--muted); font-weight: 600; flex: none; min-width: 34px; }
.pd-solar-slider input[type=range] { flex: 1; accent-color: #b0763a; height: 4px; }
.pd-solar-timerow { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.pd-solar-time { font-size: 20px; font-weight: 800; color: var(--navy); font-variant-numeric: tabular-nums; }
.pd-solar-shortcuts { display: flex; gap: 6px; }
.pd-solar-shortcut { padding: 5px 10px; border: 1px solid var(--glass-line); border-radius: 8px; background: rgba(255,255,255,.6); font: inherit; font-size: 12px; font-weight: 600; color: var(--bronze-dk); cursor: pointer; }
.pd-solar-shortcut:hover { background: rgba(35,44,63,.06); }
.pd-solar-note { font-size: 11px; color: var(--muted); margin-top: 9px; line-height: 1.45; }
.pd-solar-note a { color: var(--bronze-dk); font-weight: 600; }
@media (max-width: 760px) {
  .pd-solar { position: fixed; left: 8px; right: 8px; bottom: 62px; width: auto; transform: none; max-height: 66vh; overflow-y: auto; }
  body.pd-solar-on .pd-statsbar { display: none !important; }
}

/* Analyse solaire du bâtiment (fiche) — section repliable */
.pd-solar-analysis[hidden] { display: none; }
.pd-solar-fold { margin-top: 2px; }
.pd-solar-fold > summary { list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: center; padding: 4px 0; user-select: none; }
.pd-solar-fold > summary::-webkit-details-marker { display: none; }
.pd-fold-caret { width: 20px; height: 20px; color: var(--muted); transform: rotate(180deg); transition: transform .18s, color .15s; }
.pd-solar-fold > summary:hover .pd-fold-caret { color: var(--navy); }
.pd-solar-fold[open] > summary .pd-fold-caret { transform: rotate(0deg); }
.pd-solar-fold-body { padding-top: 4px; }
.pd-solar-exp { margin: 12px 0 10px; padding: 10px 12px; border-radius: 12px; background: linear-gradient(120deg, rgba(240,180,60,.14), rgba(176,164,138,.14)); }
.pd-solar-exp-h { font-size: 13px; color: var(--bronze-dk); font-weight: 600; }
.pd-solar-exp-h b { color: var(--navy); font-weight: 800; }
.pd-solar-wins { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 7px; }
.pd-solar-win { font-size: 12.5px; font-weight: 700; color: var(--navy); background: rgba(255,255,255,.75); border: 1px solid var(--glass-line); border-radius: 8px; padding: 3px 9px; font-variant-numeric: tabular-nums; }
.pd-solar-cmps { margin: 10px 0; }
.pd-solar-cmps-t { font-size: 11px; text-transform: uppercase; letter-spacing: .08em; color: var(--bronze-dk); font-weight: 700; margin-bottom: 7px; }
.pd-solar-cmp { display: grid; grid-template-columns: 78px 1fr auto; align-items: center; gap: 10px; padding: 3px 0; font-size: 13px; color: var(--ink); }
.pd-solar-cmp.is-on { font-weight: 700; }
.pd-solar-cmp b { color: var(--navy); font-variant-numeric: tabular-nums; }
.pd-solar-bar { height: 7px; border-radius: 4px; background: rgba(35,44,63,.08); overflow: hidden; }
.pd-solar-bar i { display: block; height: 100%; border-radius: 4px; background: linear-gradient(90deg, #f0b43c, #e8622a); }
.pd-solar-cmp.is-on .pd-solar-bar i { background: linear-gradient(90deg, #f5c451, #e8622a); }

/* Indice solaire (Phase 3) — dans la fiche + boutons Jour/Année du panneau */
.pd-solar-plays { display: flex; gap: 6px; margin-left: auto; }
.pd-solar-play2 { background: rgba(255,255,255,.7); color: var(--navy); border: 1px solid var(--glass-line); }
.pd-solar-play2.is-playing { background: var(--navy); color: #fff; }
.pd-solar-score { display: flex; align-items: center; gap: 13px; margin: 10px 0 4px; }
.pd-solar-ring { width: 62px; height: 62px; border-radius: 50%; flex: none; display: flex; align-items: center; justify-content: center; }
.pd-solar-ring::before { content: ""; position: absolute; width: 62px; height: 62px; }
.pd-solar-ring > span { width: 48px; height: 48px; border-radius: 50%; background: #fff; display: flex; flex-direction: column; align-items: center; justify-content: center; line-height: 1; }
.pd-solar-ring b { font-size: 19px; font-weight: 800; color: var(--navy); }
.pd-solar-ring small { font-size: 9px; color: var(--muted); }
.pd-solar-score-lbl b { display: block; font-size: 15px; font-weight: 800; }
.pd-solar-score-lbl small { display: block; font-size: 11.5px; color: var(--muted); margin-top: 2px; }
.pd-solar-method { margin: 4px 0 8px; }
.pd-solar-comp { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; margin-top: 8px; font-size: 13px; color: var(--ink); }
.pd-solar-comp b { color: var(--navy); font-variant-numeric: tabular-nums; }
.pd-solar-comp-d { display: block; font-size: 11.5px; color: var(--muted); margin-top: 1px; }

/* ─── Guide de première visite (onboarding, client/tour.js) ─── */
body.pd-tour-lock { overflow: hidden; }
.pd-tour { position: fixed; inset: 0; z-index: 9999; display: none; }
.pd-tour.is-on { display: block; }
.pd-tour-hole { position: absolute; border-radius: 12px; box-shadow: 0 0 0 9999px rgba(35,44,63,.62); border: 2px solid var(--bronze); transition: left .25s, top .25s, width .25s, height .25s; }
.pd-tour-hole.is-void { border-color: transparent; }
.pd-tour-card { position: absolute; width: 300px; max-width: calc(100vw - 28px); background: var(--navy); color: #fff; border-radius: 14px; padding: 15px 16px 12px; box-shadow: 0 12px 40px rgba(0,0,0,.35); }
.pd-tour-card.is-center { left: 50%; top: 50%; transform: translate(-50%,-50%); }
.pd-tour-card.is-bottom { left: 14px; right: 14px; bottom: 18px; width: auto; }
.pd-tour-step { font-size: 11px; letter-spacing: .04em; text-transform: uppercase; color: var(--bronze); font-weight: 700; }
.pd-tour-card h3 { margin: 5px 0 6px; font-size: 17px; font-weight: 800; color: #fff; }
.pd-tour-card p { margin: 0 0 12px; font-size: 13.5px; line-height: 1.45; color: rgba(255,255,255,.86); }
.pd-tour-nav { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; row-gap: 8px; margin-top: 8px; }
.pd-tour-actions { display: flex; align-items: center; gap: 6px; margin-left: auto; } /* Précédent + Suivant/Terminer : ancrés à droite, passent à la ligne ensemble si trop étroit */
.pd-tour-nav button { font: inherit; font-size: 13px; font-weight: 700; border-radius: 9px; padding: 8px 13px; cursor: pointer; border: 0; white-space: nowrap; }
.pd-tour-skip { background: transparent; padding: 8px 2px; color: rgba(255,255,255,.5); }
.pd-tour-skip:hover { color: #fff; }
.pd-tour-prev { background: transparent; color: rgba(255,255,255,.82); }
.pd-tour-prev:hover { color: #fff; }
.pd-tour-next { background: var(--bronze); color: var(--navy); } /* fond bronze explicite par bouton → pas d'écrasement par la règle générale */
.pd-tour-next:hover { filter: brightness(1.07); }
.pd-tour-replay { display: block; margin-top: 14px; font: inherit; font-size: 13px; font-weight: 700; color: var(--navy); background: transparent; border: 1px solid var(--line-warm); border-radius: 10px; padding: 8px 14px; cursor: pointer; }
.pd-tour-replay:hover { border-color: var(--bronze); color: var(--bronze-dk); }
.pd-tour-card.is-top { left: 14px; right: 14px; top: 16px; width: auto; }

/* ─── Potentiel locatif (encadrement des loyers DRIHL) ─── */
.pd-loyer-cap { font-size: 12px; color: var(--muted); margin-bottom: 8px; }
.pd-loyer-grid { display: flex; flex-direction: column; }
.pd-loyer-row { display: flex; align-items: baseline; gap: 12px; padding: 9px 0; border-top: 1px solid var(--line-warm); }
.pd-loyer-row:first-child { border-top: 0; }
.pd-loyer-t { flex: 0 0 116px; font-size: 14.5px; font-weight: 700; color: var(--navy); } /* = .pd-vente-body */
.pd-loyer-v { flex: 1; font-size: 14.5px; font-weight: 700; color: var(--navy); font-variant-numeric: tabular-nums; } /* prix : même taille que DVF */
.pd-loyer-v em { font-size: 13px; font-weight: 600; color: var(--muted); font-style: normal; }
.pd-loyer-m { flex: 0 0 auto; text-align: right; font-size: 13px; color: var(--bronze-dk); font-variant-numeric: tabular-nums; } /* = .pd-vente-sub */
@media (max-width: 480px) { .pd-loyer-t { flex-basis: 90px; font-size: 13.5px; } .pd-loyer-m { font-size: 12px; } }

/* ══════ Cartes marketing des fiches adresse — injectées par map.js (injectFicheCards). Aucune modif du HTML des fiches. ══════ */
.fx{--font:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;--paper:#f7f4ee;display:flex;flex-direction:column;gap:14px;margin-top:16px;border-top:1px solid var(--line-warm);padding-top:18px}
.fx-card{background:#fff;border:1px solid var(--line-warm);border-radius:16px;padding:16px 16px 17px}
.fx-card.soft{background:var(--paper)}
.fx-eyebrow,.fx-badge{display:flex;align-items:center;gap:8px;font:700 12.5px var(--font);letter-spacing:.1em;text-transform:uppercase;color:var(--bronze-dk);margin:0 0 10px}
.fx-eyebrow svg,.fx-badge svg{width:16px;height:16px;flex:none;color:var(--bronze-dk)}
.fx-h{font:650 17.5px/1.22 var(--font);letter-spacing:-.01em;color:var(--navy);margin:0 0 8px}
.fx-p{font:400 13px/1.5 var(--font);color:#454b5a;margin:0 0 12px}
.fx-p:last-child{margin-bottom:0}
.fx-p b{color:var(--ink)}
.fx-chips{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:8px;margin:2px 0 12px}
.fx-chip{display:flex;flex-direction:column;align-items:center;text-align:center;gap:5px;padding:10px 6px;border:1px solid var(--line-warm);border-radius:11px;background:#fff}
.fx-chip svg{width:19px;height:19px;color:var(--navy)}
.fx-chip b{font:600 11px var(--font);color:var(--ink);line-height:1.1}
.fx-chip span{font:500 9.5px var(--font);color:var(--muted)}
.fx-check{display:flex;align-items:flex-start;gap:9px;font:500 12.5px/1.45 var(--font);color:var(--navy)}
.fx-check .tick{flex:none;width:18px;height:18px;border-radius:50%;background:var(--navy);display:grid;place-items:center;margin-top:1px}
.fx-check .tick svg{width:11px;height:11px;color:#fff}
.fx-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px}
.fx-list li{display:flex;align-items:flex-start;gap:9px;font:450 12.5px/1.4 var(--font);color:#3c4353}
.fx-list li::before{content:"";flex:none;width:7px;height:7px;border-radius:50%;background:var(--bronze);margin-top:6px}
.fx-list.ticks li::before{display:none}
.fx-list.ticks li .t{flex:none;width:17px;height:17px;border-radius:50%;background:rgba(35,44,63,.09);display:grid;place-items:center}
.fx-list.ticks li .t svg{width:10px;height:10px;color:var(--navy)}
.fx-note{font:500 11px var(--font);color:var(--muted);margin:6px 0 0}
.fx-note em{color:var(--bronze-dk);font-style:normal;font-weight:600}
.fx-cta{background:#f4f6fb;border:1px solid #dfe5f0;border-radius:16px;padding:20px 18px}
.fx-cta h3{font:650 17px/1.25 var(--font);color:var(--navy);margin:0 0 7px;letter-spacing:-.01em}
.fx-cta p:not(.fx-badge){font:400 12.5px/1.5 var(--font);color:#4a5162;margin:0 0 15px}
.fx-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:15px 16px;border-radius:11px;background:var(--navy);color:#fff;font:800 13px/1.25 var(--font);letter-spacing:.03em;text-transform:uppercase;text-align:center;text-decoration:none;box-shadow:0 8px 20px rgba(35,44,63,.30);transition:transform .15s,box-shadow .15s,background .15s}
.fx-btn:hover{transform:translateY(-1px);background:#2c3750;box-shadow:0 12px 28px rgba(35,44,63,.40)}
.fx-btn .arw{flex:none}
.fx-cta .trust{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;margin:13px 0 0;font:600 11px var(--font);color:var(--muted)}
.fx-cta .trust span{display:inline-flex;align-items:center;gap:5px}
.fx-cta .trust b{color:var(--bronze-dk);font-weight:700}
.fx .mr{font-weight:400} .fx .mr b{font-weight:650}

/* ══════ Pop-up propriétaire (fenêtre d'adresse) — overlay calqué sur .pd-tour, injecté par map.js. Aucune modif SSR. ══════ */
body.pd-owner-lock { overflow: hidden; }
.pd-owner { position: fixed; inset: 0; z-index: 9998; display: none; align-items: center; justify-content: center; padding: 20px; background: rgba(35,44,63,.62); --font: 'Inter',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif; }
.pd-owner.is-on { display: flex; }
.pd-owner-card { position: relative; width: 400px; max-width: 100%; max-height: calc(100dvh - 40px); overflow-y: auto; background: #fff; color: var(--ink); border-radius: 18px; padding: 26px 24px 20px; box-shadow: 0 24px 70px rgba(20,28,46,.34); }
@media (prefers-reduced-motion: no-preference) { .pd-owner.is-on .pd-owner-card { animation: pd-owner-in .22s ease-out both; } }
@keyframes pd-owner-in { from { opacity: 0; transform: translateY(10px) scale(.985); } to { opacity: 1; transform: none; } }
.pd-owner-x { position: absolute; top: 12px; right: 12px; width: 34px; height: 34px; border-radius: 50%; border: 0; background: #f1f0ec; color: var(--navy); cursor: pointer; display: grid; place-items: center; font-size: 20px; line-height: 1; }
.pd-owner-x:hover { background: #e6e4dd; }
.pd-owner-eyebrow { display: flex; align-items: center; gap: 8px; font: 700 12.5px var(--font); letter-spacing: .11em; text-transform: uppercase; color: var(--bronze-dk); margin: 2px 0 10px; }
.pd-owner-title { font: 650 21px/1.24 var(--font); letter-spacing: -.01em; color: var(--navy); margin: 0 0 12px; padding-right: 30px; }
.pd-owner-text { font: 400 14px/1.55 var(--font); color: #454b5a; margin: 0 0 12px; }
.pd-owner-highlight { font: 650 14.5px/1.5 var(--font); color: var(--navy); margin: 0 0 18px; }
.pd-owner-actions { display: flex; flex-direction: column; gap: 10px; }
.pd-owner-btn { display: flex; align-items: center; justify-content: center; gap: 9px; width: 100%; padding: 15px 16px; border-radius: 12px; font: 800 13.5px/1.2 var(--font); letter-spacing: .02em; text-transform: uppercase; text-align: center; text-decoration: none; cursor: pointer; border: 0; box-sizing: border-box; }
.pd-owner-primary { background: var(--navy); color: #fff; box-shadow: 0 8px 20px rgba(35,44,63,.30); transition: background .15s, box-shadow .15s, transform .15s; }
.pd-owner-primary:hover { background: #2c3750; transform: translateY(-1px); box-shadow: 0 12px 28px rgba(35,44,63,.40); }
.pd-owner-wa { background: #25d366; color: #06331b; transition: filter .15s; }
.pd-owner-wa:hover { filter: brightness(1.05); }
.pd-owner-wa svg { flex: none; }
.pd-owner-browse { background: transparent; color: var(--muted); text-transform: none; letter-spacing: 0; font-weight: 600; font-size: 13px; padding: 8px; box-shadow: none; }
.pd-owner-browse:hover { color: var(--navy); }
.pd-owner-note { font: 500 11.5px/1.5 var(--font); color: var(--muted); margin: 15px 0 2px; text-align: center; }
.pd-owner-note .mr { font-weight: 400; } .pd-owner-note .mr b { font-weight: 700; color: var(--bronze-dk); }
@media (max-width: 480px) { .pd-owner { padding: 14px; } .pd-owner-card { padding: 22px 18px 16px; border-radius: 16px; } .pd-owner-title { font-size: 19px; } }
