/* Observatoire DPE : reprend main.v20260921.css et pse.v20261016.css (en-tête, sections, cartes de graphique). */
.obs-page {
  --obs-grid: #ececec;
  --obs-axis: #c9c9c9;
  --obs-ink-2: #595959;
  --obs-elec: #01a2c2;
  --obs-all: #404040;
}
.obs-page h3 { font-size: 18px; font-weight: 650; letter-spacing: -.01em; }

/* Héros */
.obs-hero { padding-bottom: 56px; }
.obs-hero-grid { display: grid; grid-template-columns: 1.25fr .75fr; gap: 56px; align-items: center; }
.obs-hero h1 { font-size: clamp(34px, 3.8vw, 54px); }
.obs-formula { background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 24px; box-shadow: 0 18px 40px -32px #20202066; }
.obs-formula-title { font-size: 12px; font-weight: 650; letter-spacing: .12em; text-transform: uppercase; color: var(--brand-blue); margin-bottom: 12px; }
.obs-formula-eq { font-size: 17px; font-weight: 600; line-height: 1.45; }
.obs-formula-eq b { color: var(--brand-blue); }
.obs-coefs { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin: 18px 0; }
.obs-coefs li { display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 10px 6px; border-radius: 8px; background: #f5f5f5; }
.obs-coefs li:last-child { background: #01a2c214; }
.obs-coefs span { font-size: 12px; color: var(--muted); }
.obs-coefs b { font-size: 26px; font-weight: 700; letter-spacing: -.02em; }
.obs-formula p:last-child { font-size: 14px; line-height: 1.6; color: var(--muted); }

.obs-kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin-top: 44px; }
.obs-kpis-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 24px 0; }
.obs-kpi { border-top: 2px solid var(--brand-blue); padding-top: 14px; }
.obs-kpi dt { font-size: 13px; color: var(--muted); margin-bottom: 6px; }
.obs-kpi dd strong { display: block; font-size: clamp(26px, 2.6vw, 36px); font-weight: 700; letter-spacing: -.03em; line-height: 1.15; }
.obs-kpis-2 .obs-kpi dd strong { font-size: 24px; }
.obs-kpi dd span { display: block; margin-top: 4px; font-size: 13px; color: var(--muted); }

/* Sections texte + graphique */
.obs-section .pse-heading { margin-bottom: 36px; max-width: none; }
.obs-section .pse-heading h2 { text-wrap: balance; }
.obs-section .pse-heading > p:not(.eyebrow) { max-width: 820px; }
.obs-row { display: grid; grid-template-columns: .8fr 1.2fr; gap: 56px; align-items: start; }
.obs-row.is-reversed { grid-template-columns: 1.2fr .8fr; }
.obs-row.is-reversed .obs-copy { grid-column: 2; grid-row: 1; }
.obs-row.is-reversed .obs-chart { grid-column: 1; grid-row: 1; }
.obs-continued { margin-top: 56px; }
.obs-stacked .obs-copy { display: grid; grid-template-columns: 1fr 1fr; gap: 0 56px; margin-bottom: 32px; }
.obs-copy { min-width: 0; }
.obs-copy > p { color: var(--muted); font-size: 17px; line-height: 1.65; }
.obs-copy > p + p, .obs-copy > p + .obs-callout, .obs-copy > .obs-callout + p, .obs-copy > .obs-facts { margin-top: 16px; }
.obs-stacked .obs-copy > p + p { margin-top: 0; }
.obs-chart { min-width: 0; }
.obs-chart-title { font-size: 15px; font-weight: 650; line-height: 1.4; margin-bottom: 16px; }
.obs-svg { position: relative; height: var(--h, 300px); }
.obs-svg svg { display: block; overflow: visible; }
.obs-svg text { font-family: Inter, sans-serif; font-variant-numeric: tabular-nums; }
.obs-table-scroll { overflow-x: auto; }
.obs-table-scroll table + table { margin-top: 18px; }
.obs-data td, .obs-data th { white-space: nowrap; }

.obs-callout { display: flex; align-items: center; gap: 16px; padding: 16px 18px; border-radius: 10px; background: #fff4ec; border-left: 3px solid var(--dpe-f); }
.obs-callout strong { flex: none; font-size: 30px; font-weight: 700; letter-spacing: -.03em; line-height: 1; color: var(--ink); white-space: nowrap; }
.obs-callout span { font-size: 15px; line-height: 1.5; color: var(--ink); }

.obs-facts { display: grid; gap: 14px; }
.obs-fact { padding: 16px 18px; border: 1px solid var(--line); border-radius: 10px; background: #fff; }
.obs-fact-title { font-size: 12px; font-weight: 650; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); }
.obs-fact strong { display: block; margin: 6px 0 4px; font-size: 24px; font-weight: 700; letter-spacing: -.02em; }
.obs-fact p:last-child { font-size: 14px; line-height: 1.55; color: var(--muted); }

/* Légendes */
.obs-legend { display: flex; flex-wrap: wrap; gap: 6px 18px; margin: 12px 0 0; font-size: 12px; color: var(--muted); }
.obs-legend li { display: inline-flex; align-items: center; gap: 7px; }
.obs-legend-col { flex-direction: column; gap: 10px; font-size: 14px; color: var(--ink); }
.obs-swatch { flex: none; width: 12px; height: 12px; border-radius: 3px; background: var(--c); }
.obs-swatch.is-wide { width: 22px; height: 10px; }
.obs-swatch.is-line { width: 18px; height: 2px; border-radius: 1px; }
.obs-swatch.is-dot { width: 10px; height: 10px; border-radius: 50%; }
.obs-legend-ramp { gap: 6px 12px; }

/* Gains et pertes par étiquette : barres divergentes, une ligne par lettre */
.obs-flow .obs-toggle { margin-bottom: 18px; }
.obs-flow-head, .obs-flow-rows li { display: grid; grid-template-columns: 40px 1fr 1fr 160px; column-gap: 0; align-items: center; }
.obs-flow-head { font-size: 12px; color: var(--muted); padding-bottom: 8px; border-bottom: 1px solid var(--obs-grid); }
.obs-flow-head-out { text-align: right; padding-right: 8px; }
.obs-flow-head-in { padding-left: 8px; }
.obs-flow-head > span:last-child, .obs-flow-share { padding-left: 12px; }
.obs-flow-rows li { min-height: 40px; border-bottom: 1px solid #f3f3f3; }
.obs-flow-rows li:hover { background: #fafafa; }
.obs-flow-rows .pse-chip { width: 28px; height: 28px; }
.obs-flow-out, .obs-flow-in { position: relative; display: flex; align-items: center; gap: 6px; height: 40px; }
.obs-flow-out { flex-direction: row-reverse; padding-right: 3px; }
.obs-flow-in { padding-left: 3px; }
.obs-flow-in::before { content: ""; position: absolute; top: 0; bottom: 0; left: -.5px; width: 1px; background: var(--obs-axis); }
.obs-flow i { flex: none; height: 18px; transition: width .25s; }
.obs-flow-out i { width: calc(var(--o3) * .82%); background: #b9b9b9; border-radius: 4px 0 0 4px; }
.obs-flow-in i { width: calc(var(--i3) * .82%); background: var(--c); border-radius: 0 4px 4px 0; }
.obs-flow[data-state="2025_2026"] .obs-flow-out i { width: calc(var(--o1) * .82%); }
.obs-flow[data-state="2025_2026"] .obs-flow-in i { width: calc(var(--i1) * .82%); }
.obs-flow[data-state="2026_2027"] .obs-flow-out i { width: calc(var(--o2) * .82%); }
.obs-flow[data-state="2026_2027"] .obs-flow-in i { width: calc(var(--i2) * .82%); }
.obs-flow b.s { font-size: 12px; font-weight: 600; color: var(--obs-ink-2); white-space: nowrap; font-variant-numeric: tabular-nums; }
.obs-flow .s { display: none; }
.obs-flow[data-state="2025_2026"] .s1, .obs-flow[data-state="2026_2027"] .s2, .obs-flow[data-state="2025_2027"] .s3 { display: inline; }
.obs-flow-share .s b { display: block; font-size: 15px; font-weight: 700; font-variant-numeric: tabular-nums; }
.obs-flow-share .s small { display: block; font-size: 12px; color: var(--muted); font-variant-numeric: tabular-nums; }
.obs-flow .obs-legend { margin-top: 14px; }

/* Waffle */
.obs-waffle-wrap { display: grid; grid-template-columns: minmax(0, 300px) 1fr; gap: 28px; align-items: center; }
.obs-waffle { display: grid; grid-template-columns: repeat(10, 1fr); gap: 3px; aspect-ratio: 1; }
.obs-waffle span { border-radius: 3px; background: var(--dpe-f); }
.obs-waffle .is-2026 { background: #01a2c2; }
.obs-waffle .is-2027 { background: #8fd6e6; }
.obs-waffle span:hover { outline: 2px solid var(--ink); outline-offset: 1px; }

/* Heatmap chauffage × eau chaude */
.obs-heat { display: grid; grid-template-columns: minmax(96px, 1.1fr) repeat(3, minmax(0, 1fr)); gap: 3px; }
.obs-heat-col { font-size: 12px; color: var(--muted); padding: 0 4px 6px; align-self: end; text-align: center; line-height: 1.3; }
.obs-heat-row { font-size: 13px; font-weight: 600; align-self: center; padding-right: 8px; line-height: 1.3; }
.obs-heat-cell { display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 58px; border-radius: 4px; background: var(--c); color: var(--t); padding: 6px 4px; }
.obs-heat-cell b { font-size: 15px; font-weight: 700; font-variant-numeric: tabular-nums; }
.obs-heat-cell small { font-size: 11px; opacity: .85; }
.obs-heat-cell.is-nd { background: repeating-linear-gradient(135deg, #f4f4f4 0 6px, #ececec 6px 7px); color: #8a8a8a; }
.obs-heat-cell:not(.is-nd):hover { outline: 2px solid var(--ink); outline-offset: 1px; }

/* Barres empilées à 100 % */
.obs-stack { display: grid; gap: 10px; margin-top: 16px; }
.obs-stack-row { display: grid; grid-template-columns: minmax(84px, 150px) 1fr; gap: 12px; align-items: center; }
.obs-stack-label { font-size: 13px; font-weight: 500; line-height: 1.3; color: var(--obs-ink-2); }
.obs-stack-row.is-current .obs-stack-label { font-weight: 700; color: var(--ink); }
.obs-stack-bar { display: flex; gap: 2px; height: 30px; }
.obs-stack-bar span { flex: var(--w) 1 0; min-width: 0; display: flex; align-items: center; justify-content: center; background: var(--c); color: var(--t); }
.obs-stack-bar span:first-child { border-radius: 4px 0 0 4px; }
.obs-stack-bar span:last-child { border-radius: 0 4px 4px 0; }
.obs-stack-bar span:only-child { border-radius: 4px; }
.obs-stack-bar b { font-size: 12px; font-weight: 650; white-space: nowrap; }
.obs-stack-bar b.is-hidden { visibility: hidden; }
.obs-stack-bar span:hover { filter: brightness(1.08); }

/* Haltères par période */
.obs-bells { display: grid; gap: 4px; }
.obs-bells li, .obs-bell-axis { display: grid; grid-template-columns: 96px 1fr 58px; gap: 12px; align-items: center; min-height: 28px; }
.obs-bells li:hover { background: #f7f7f7; border-radius: 6px; }
.obs-bell-label { font-size: 13px; font-weight: 600; }
.obs-bell-track { position: relative; height: 28px; background: linear-gradient(var(--obs-grid), var(--obs-grid)) 0 50% / 100% 1px no-repeat; }
.obs-bell-link { position: absolute; top: 50%; left: calc(var(--a) * 1%); width: calc((var(--b) - var(--a)) * 1%); height: 3px; transform: translateY(-50%); background: #cfd8da; border-radius: 2px; }
.obs-bell-dot { position: absolute; top: 50%; left: calc(var(--x) * 1%); width: 12px; height: 12px; border-radius: 50%; transform: translate(-50%, -50%); background: var(--obs-all); box-shadow: 0 0 0 2px #fff; }
.obs-bell-dot.is-elec { background: var(--obs-elec); }
.obs-bell-value { font-size: 13px; font-variant-numeric: tabular-nums; text-align: right; color: var(--muted); }
.obs-bell-axis { min-height: 18px; }
.obs-bell-ticks { position: relative; height: 18px; font-size: 11px; color: #8a8a8a; }
.obs-bell-ticks span { position: absolute; left: calc(var(--x) * 1%); transform: translateX(-50%); font-variant-numeric: tabular-nums; }

/* Carte et classements */
.obs-geo { background: #f7f7f7; }
.obs-toggle { display: inline-flex; padding: 3px; border-radius: 8px; background: #fff; border: 1px solid var(--line); margin-bottom: 24px; }
.obs-toggle button { font: inherit; font-size: 14px; font-weight: 600; padding: 9px 16px; border: 0; border-radius: 6px; background: transparent; color: var(--muted); cursor: pointer; }
.obs-toggle button[aria-pressed="true"] { background: var(--ink); color: #fff; }
.obs-geo-grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: 32px; align-items: start; }
.obs-geo-grid.is-single { grid-template-columns: minmax(0, 760px); justify-content: center; }
.obs-map { position: relative; width: 100%; max-width: calc(620px * var(--ratio)); aspect-ratio: var(--ratio); margin-inline: auto; }
.obs-map svg { display: block; width: 100%; height: 100%; }
.obs-map-base path { fill: var(--no-data, #ececec); stroke: #fff; stroke-width: 1; }
.obs-map-areas path { fill: var(--f1); stroke: #fff; stroke-width: .6; vector-effect: non-scaling-stroke; transition: fill .2s; }
.obs-geo[data-state="2025_2027"] .obs-map-areas path { fill: var(--f2); }
.obs-map-areas path:hover { stroke: var(--ink); stroke-width: 1.5; }
.obs-map-areas a path { cursor: pointer; }
.obs-map-areas a:focus-visible path { stroke: var(--ink); stroke-width: 2; }
.obs-map-borders path { fill: none; stroke: #fff; stroke-width: 2.2; vector-effect: non-scaling-stroke; pointer-events: none; }
.obs-map-base path { vector-effect: non-scaling-stroke; }
.obs-map-labels { position: absolute; inset: 0; pointer-events: none; }
.obs-map-labels span { position: absolute; transform: translate(-50%, -100%); margin-top: -5px; font-size: 11px; font-weight: 650; color: var(--ink); white-space: nowrap; text-shadow: 0 0 3px #fff, 0 0 3px #fff, 0 0 2px #fff; }
.obs-map-labels span::after { content: ""; position: absolute; left: 50%; bottom: -6px; width: 5px; height: 5px; margin-left: -2.5px; border-radius: 50%; background: var(--ink); box-shadow: 0 0 0 1.5px #fff; }
.obs-map-legend { justify-content: center; }
.obs-map-card figcaption { text-align: center; }
.obs-geo .v2, .obs-geo[data-state="2025_2027"] .v1 { display: none; }
.obs-geo[data-state="2025_2027"] .v2 { display: inline; }
.obs-geo[data-state="2025_2027"] .is-static .v1 { display: inline; }
.obs-geo[data-state="2025_2027"] .is-static .v2 { display: none; }

.obs-ranks { display: grid; gap: 28px; }
.obs-rank-block { background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 20px 22px; }
.obs-rank-block h3 { margin-bottom: 12px; font-size: 16px; }
.obs-rank-head { display: flex; justify-content: space-between; gap: 12px; font-size: 11px; color: var(--muted); margin-bottom: 6px; }
.obs-rank-head > span:first-child { display: flex; flex-wrap: wrap; gap: 4px 14px; }
.obs-rank-key { display: inline-flex; align-items: center; gap: 5px; }
.obs-rank-key i { display: inline-block; width: 2px; height: 12px; background: var(--ink); }
.obs-rank-key.r1 i { background: repeating-linear-gradient(var(--ink) 0 2px, transparent 2px 4px); }
.obs-rank-key .v1, .obs-rank-key .v2 { margin-left: 3px; font-weight: 650; color: var(--ink); }
.obs-rank { display: flex; flex-direction: column; }
.obs-rank li { order: var(--o1); display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(60px, 1fr) 54px 54px; gap: 10px; align-items: center; min-height: 30px; padding: 2px 4px; border-radius: 6px; }
[data-state="2025_2027"] .obs-rank-wrap:not(.is-static) .obs-rank li { order: var(--o2); }
.obs-rank li:hover { background: #f5f5f5; }
.obs-rank-name { font-size: 13px; font-weight: 600; line-height: 1.3; min-width: 0; overflow-wrap: anywhere; }
.obs-rank-name a { color: var(--ink); text-decoration: underline; text-decoration-color: var(--brand-blue); text-underline-offset: 3px; }
.obs-rank-name small { font-weight: 400; color: var(--muted); }
.obs-rank-track { position: relative; height: 14px; }
.obs-rank-track i { position: absolute; left: 0; top: 0; bottom: 0; width: calc(var(--w1) * 1%); border-radius: 0 4px 4px 0; background: var(--brand-blue); transition: width .25s; }
[data-state="2025_2027"] .obs-rank-wrap:not(.is-static) .obs-rank-track i { width: calc(var(--w2) * 1%); }
.obs-rank-ref { position: absolute; top: -4px; bottom: -4px; left: calc(var(--r1) * 1%); width: 2px; background: var(--ink); }
.obs-rank-ref.r1 { background: repeating-linear-gradient(var(--ink) 0 2px, transparent 2px 4px); }
[data-state="2025_2027"] .obs-rank-wrap:not(.is-static) .obs-rank-ref { left: calc(var(--r2) * 1%); }
.obs-rank-value { font-size: 13px; font-weight: 650; text-align: right; font-variant-numeric: tabular-nums; }
.obs-rank-n { font-size: 12px; color: var(--muted); text-align: right; font-variant-numeric: tabular-nums; }
.obs-rank-gap { text-align: center; color: var(--muted); line-height: 1; margin: 2px 0; }
.obs-rank-wrap.is-bottom .obs-rank-head { display: none; }
.obs-rank-note, .obs-geo-extra { font-size: 13px; line-height: 1.55; color: var(--muted); margin-top: 10px; }
.obs-geo-extra { font-size: 15px; color: var(--ink); }

/* Navigation entre territoires */
.obs-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 14px; }
.obs-card { position: relative; display: grid; gap: 2px; height: 100%; padding: 16px 18px; border: 1px solid var(--line); border-radius: 10px; background: #fff; color: var(--ink); text-decoration: none; transition: border-color .15s, box-shadow .15s; }
a.obs-card:hover { border-color: var(--brand-blue); box-shadow: 0 12px 30px -24px #01a2c2; }
.obs-card-name { font-size: 15px; font-weight: 650; padding-right: 22px; }
.obs-card-value { font-size: 22px; font-weight: 700; letter-spacing: -.02em; margin-top: 4px; }
.obs-card-sub { font-size: 12px; color: var(--muted); }
.obs-card-go { position: absolute; right: 16px; top: 14px; color: var(--brand-blue); font-weight: 700; }
.obs-card.is-soon { background: #fafafa; color: #6b6b6b; }
.obs-card-soon { order: -1; font-size: 10px; font-weight: 650; letter-spacing: .06em; text-transform: uppercase; color: #8a8a8a; }
.obs-up { margin-top: 24px; font-size: 14px; color: var(--muted); }
.obs-up a { font-weight: 600; color: var(--ink); text-decoration: underline; text-decoration-color: var(--brand-blue); }

/* Méthode */
.obs-method-list { display: grid; gap: 20px; }
.obs-method-list dt { font-size: 15px; font-weight: 650; margin-bottom: 6px; }
.obs-method-list dd { font-size: 15px; line-height: 1.65; color: var(--muted); }
.obs-sources-title { margin-top: 28px; font-size: 13px; font-weight: 650; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); }
.obs-sources { margin-top: 10px; font-size: 14px; line-height: 1.6; }
.obs-sources li { margin-block: 6px; padding-left: 16px; position: relative; }
.obs-sources li::before { content: "–"; position: absolute; left: 0; color: var(--muted); }
.obs-sources a { color: #007f9b; text-decoration: underline; }

/* Page d’accueil de l’Observatoire */
.obs-hub-hero { padding-bottom: 72px; }
@media (min-width: 1051px) { .obs-hub-hero .obs-hero-grid { grid-template-columns: 1.1fr .9fr; gap: 64px; } }
.obs-hub-hero .pse-intro + .pse-intro { margin-top: 14px; }
.obs-hub-hero .pse-actions { margin-top: 28px; }
.obs-une { padding: 28px; border: 1px solid var(--line); border-radius: 12px; background: #fff; box-shadow: 0 18px 40px -32px #20202066; }
.obs-une-label { display: inline-block; margin-bottom: 14px; padding: 4px 10px; border-radius: 4px; background: var(--ink); color: #fff; font-size: 11px; font-weight: 650; letter-spacing: .08em; text-transform: uppercase; }
.obs-page .obs-une h2 { font-size: clamp(22px, 2vw, 28px); font-weight: 650; line-height: 1.2; letter-spacing: -.02em; }
.obs-une h2 a { color: var(--ink); text-decoration: none; }
.obs-une h2 a:hover { text-decoration: underline; text-decoration-color: var(--brand-blue); }
.obs-une-figure { display: flex; align-items: center; gap: 16px; margin: 22px 0 18px; padding: 18px 0; border-block: 1px solid var(--line); }
.obs-une-figure strong { flex: none; font-size: 44px; font-weight: 700; letter-spacing: -.04em; line-height: 1; color: var(--brand-blue); }
.obs-une-figure span { font-size: 15px; line-height: 1.45; color: var(--ink); }
.obs-une-facts { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-bottom: 24px; }
.obs-une-facts dt { font-size: 12px; color: var(--muted); }
.obs-une-facts dd { font-size: 18px; font-weight: 650; margin-top: 2px; }
.obs-une .button { width: 100%; }
.obs-article-meta { font-size: 12px; font-weight: 650; letter-spacing: .1em; text-transform: uppercase; color: var(--brand-blue); margin-bottom: 8px; }

/* Accès sous embargo : contenu masqué tant que le mot de passe n’est pas saisi */
.obs-gate { display: none; }
.obs-locked .obs-gate { display: flex; align-items: center; justify-content: center; min-height: 70vh; padding: 48px 20px; background: radial-gradient(ellipse 720px 520px at 70% 30%, #01a2c21c, transparent 75%); }
.obs-locked #main > :not(.obs-gate) { display: none !important; }
.obs-locked .press-nav { display: none !important; }   /* page presse : pas de téléchargement avant le mot de passe */
.obs-gate-card { width: min(520px, 100%); padding: 36px; border: 1px solid var(--line); border-radius: 16px; background: #fff; box-shadow: 0 24px 50px -40px #20202080; }
.obs-gate-title { font-size: 30px; font-weight: 700; letter-spacing: -.03em; margin-bottom: 12px; }
.obs-gate-card > p:not(.eyebrow):not(.obs-gate-title) { color: var(--muted); font-size: 16px; line-height: 1.6; }
.obs-gate-form { margin-top: 22px; }
.obs-gate-form label { display: block; font-size: 13px; font-weight: 600; margin-bottom: 8px; }
.obs-gate-form > div { display: flex; flex-wrap: wrap; gap: 10px; }
.obs-gate-form input { flex: 1 1 200px; min-width: 0; padding: 13px 14px; border: 1px solid #cfcfcf; border-radius: 6px; font: inherit; font-size: 16px; }
.obs-gate-form input:focus { outline: 3px solid var(--brand-blue); outline-offset: 1px; border-color: var(--brand-blue); }
.obs-gate-form .button { padding: 13px 18px; font-size: 15px; }
.obs-gate-error { margin-top: 10px; color: #b3261e; font-size: 14px; font-weight: 600; }
.obs-gate-press { margin-top: 22px; padding-top: 16px; border-top: 1px solid var(--line); font-size: 14px; }
.obs-gate-press a { color: var(--ink); font-weight: 600; text-decoration: underline; text-decoration-color: var(--brand-blue); text-underline-offset: 4px; }

/* Infobulle */
.obs-tooltip { position: fixed; z-index: 50; max-width: 260px; padding: 9px 12px; border-radius: 8px; background: #202020; color: #fff; font-size: 12px; line-height: 1.45; pointer-events: none; box-shadow: 0 10px 30px -12px #0008; }
.obs-tooltip strong { display: block; font-size: 13px; margin-bottom: 2px; }
.obs-tooltip span { display: block; color: #d9d9d9; }
.obs-tooltip span:nth-child(2) { color: #fff; font-weight: 650; }

@media (max-width: 1050px) {
  .obs-hero-grid, .obs-row, .obs-row.is-reversed, .obs-geo-grid { grid-template-columns: 1fr; gap: 28px; }
  .obs-row.is-reversed .obs-copy, .obs-row.is-reversed .obs-chart { grid-column: auto; grid-row: auto; }
  .obs-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 16px; }
  .obs-stacked .obs-copy { grid-template-columns: 1fr; }
  .obs-stacked .obs-copy > p + p { margin-top: 16px; }
  .obs-formula { max-width: 560px; }
}
@media (max-width: 600px) {
  .obs-copy > p { font-size: 16px; }
  .obs-kpis { margin-top: 32px; }
  .obs-kpi dd strong { font-size: 24px; }
  .obs-continued { margin-top: 40px; }
  .obs-waffle-wrap { grid-template-columns: 1fr; gap: 18px; }
  .obs-waffle { max-width: 280px; }
  .obs-heat { grid-template-columns: 72px repeat(3, minmax(0, 1fr)); }
  .obs-heat-row { font-size: 11px; }
  .obs-heat-cell { min-height: 50px; }
  .obs-heat-cell b { font-size: 13px; }
  .obs-heat-cell small { font-size: 10px; }
  .obs-stack-row { grid-template-columns: 1fr; gap: 4px; }
  .obs-bells li, .obs-bell-axis { grid-template-columns: 78px 1fr 46px; gap: 8px; }
  .obs-bell-label, .obs-bell-value { font-size: 12px; }
  .obs-rank-block { padding: 16px 12px; }
  .obs-rank li { grid-template-columns: minmax(0, 1.4fr) minmax(40px, 1fr) 50px; }
  .obs-rank .obs-rank-n, .obs-rank-head .obs-rank-n { display: none; }
  .obs-toggle { display: flex; }
  .obs-toggle button { flex: 1; padding-inline: 8px; }
  .obs-callout { gap: 12px; }
  .obs-callout strong { font-size: 26px; }
  .obs-flow-head, .obs-flow-rows li { grid-template-columns: 34px 1fr 1fr 96px; }
  .obs-flow-head > span:last-child, .obs-flow-share { padding-left: 8px; }
  .obs-flow-share .s small { white-space: nowrap; }
  .obs-toggle button { font-size: 13px; line-height: 1.25; padding: 8px 6px; }
  .obs-flow-head { font-size: 11px; }
  .obs-flow b.s { display: none !important; }
  .obs-flow-out i, .obs-flow-in i { max-width: 100%; }
  .obs-flow-share .s small { font-size: 10px; }
  .obs-flow-share .s b { font-size: 13px; }
  .obs-map-labels .is-minor { display: none; }
  .obs-une { padding: 22px 18px; }
  .obs-une-figure { flex-direction: column; align-items: flex-start; gap: 6px; }
  .obs-une-figure strong { font-size: 36px; }
  .obs-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .obs-card { padding: 12px; }
  .obs-card-name { font-size: 13px; padding-right: 14px; }
  .obs-card-value { font-size: 19px; }
  .obs-card-go { right: 10px; top: 10px; }
}
@media (prefers-reduced-motion: reduce) {
  .obs-map-areas path, .obs-rank-track i { transition: none; }
}

/* Page presse (observatoire/dpecoefelec/presse.html) */
.press-page { --press-petrol: #015f75; --press-pale: #eef8fb; }
.press-icon { flex: none; }
.press-sr { position: absolute; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.press-nav { align-items: center; }
.press-nav a { white-space: nowrap; }
.press-short { display: none; }
.press-nav-cta { display: inline-flex; align-items: center; gap: 8px; padding: 10px 14px; border-radius: 6px; background: var(--brand-blue); color: #fff; }
.press-nav-cta:hover { background: #018fab; color: #fff; text-decoration: none !important; }
.press-hero { padding-block: 40px 72px; background: radial-gradient(ellipse 720px 520px at 85% 20%, #01a2c21f, transparent 75%); }
.press-hero-copy { max-width: 1000px; }
.press-eyebrow { font-size: 12px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: #007f9b; margin-bottom: 18px; }
.press-page h1 { font-size: clamp(34px, 4.2vw, 58px); font-weight: 700; line-height: 1.06; letter-spacing: -.04em; text-wrap: balance; }
.press-chapo { margin-top: 24px; max-width: 800px; font-size: 19px; line-height: 1.6; color: #3d3d3d; }
.press-embargo { display: inline-flex; align-items: center; gap: 8px; margin-top: 22px; padding: 7px 12px; border-radius: 999px; background: #fff4e8; color: #8a4b0f; font-size: 14px; font-weight: 600; }
.press-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 28px; margin-top: 30px; }
.press-actions .button { font-size: 15px; padding: 16px 22px; gap: 14px; }
.press-secondary { display: inline-flex; align-items: center; gap: 10px; font-size: 15px; font-weight: 600; color: var(--ink); text-decoration: underline; text-decoration-color: var(--brand-blue); text-underline-offset: 5px; }
.press-band-title { margin-top: 56px; font-size: 13px !important; font-weight: 700 !important; letter-spacing: .12em !important; text-transform: uppercase; color: var(--muted); }

.press-section { padding-block: 88px; border-top: 1px solid var(--line); }
.press-section h2 { font-size: clamp(28px, 3.2vw, 44px); font-weight: 680; line-height: 1.12; letter-spacing: -.03em; text-wrap: balance; max-width: 1100px; }
.press-lead { margin-top: 18px; max-width: 820px; font-size: 18px; line-height: 1.65; color: #3d3d3d; }
.press-note { margin-top: 18px; max-width: 820px; font-size: 14px; line-height: 1.6; color: var(--muted); }
.press-note a, .press-licence a { color: var(--ink); font-weight: 600; text-decoration: underline; text-decoration-color: var(--brand-blue); text-underline-offset: 4px; }
.press-side-title { font-size: 13px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); margin-bottom: 12px; }
.press-swatch { width: 14px; height: 14px; border-radius: 3px; flex: none; }

.press-kpis { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-top: 18px; }
.press-kpi { display: flex; flex-direction: column-reverse; justify-content: flex-end; padding: 22px 24px; border-radius: 14px; border: 1px solid var(--line); border-top: 3px solid var(--brand-blue); background: #fff; }
.press-kpi dd { font-size: clamp(28px, 2.8vw, 40px); font-weight: 800; letter-spacing: -.03em; line-height: 1.1; color: var(--ink); }
.press-kpi dt { margin-top: 10px; font-size: 15px; line-height: 1.5; color: #3d3d3d; }

/* Carte : cumul 2025 → 2027 ou 2027 seul */
.press-map-section { background: #f7f9fa; }
.press-toggle { margin: 28px 0 0; }
.press-map-section[data-state="cum"] .is-step, .press-map-section[data-state="step"] .is-cum { display: none !important; }
.press-map-grid { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 48px; align-items: center; margin-top: 28px; }
.press-map { margin: 0; }
.press-map svg { display: block; width: 100%; height: auto; max-height: 820px; }
.press-map-areas path { fill: var(--f1); stroke: #fff; stroke-width: .8; stroke-linejoin: round; cursor: pointer; transition: fill .2s; }
.press-map-section[data-state="step"] .press-map-areas path { fill: var(--f2); }
.press-map-areas path:hover { stroke: var(--ink); stroke-width: 2; }
.press-map-side .legend p { font-size: 14px; font-weight: 600; line-height: 1.4; margin-bottom: 12px; }
.press-map-side .legend ul { display: grid; gap: 8px; font-size: 14px; color: #3d3d3d; }
.press-map-side .legend li { display: flex; align-items: center; gap: 10px; }
.press-map-side .legend span { width: 18px; height: 18px; border-radius: 4px; }
.press-map-side .press-side-title { margin-top: 32px; }
.press-reperes { display: grid; gap: 10px; }
.press-reperes li { display: grid; grid-template-columns: 76px 1fr; align-items: baseline; gap: 10px; font-size: 15px; }
.press-repere-value { font-size: 20px; font-weight: 800; letter-spacing: -.02em; color: var(--press-petrol); }
.press-reperes small { color: var(--muted); }
.press-map-france { margin-top: 20px; padding-top: 16px; border-top: 1px solid var(--line); font-size: 14px; color: #3d3d3d; }
.press-map-hint { margin-top: 10px; font-size: 13px; color: var(--muted); }
.press-map-note { margin-top: 32px; max-width: 900px; font-size: 18px; line-height: 1.6; }
.press-map-data { margin-top: 24px; }

/* Fiche par territoire */
.press-territory { background: linear-gradient(180deg, #fff 0%, #f3fafc 100%); }
.press-territory-head { display: grid; grid-template-columns: minmax(0, 1fr) 400px; gap: 48px; align-items: end; }
.press-picker { position: relative; }
.press-picker-label { font-size: 13px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); margin-bottom: 8px; }
.press-picker-trigger { display: flex; align-items: center; gap: 14px; width: 100%; padding: 14px 18px; border: 1px solid #cfdfe4; border-radius: 14px; background: #fff; color: var(--ink); font: inherit; text-align: left; cursor: pointer; box-shadow: 0 18px 36px -30px #015f7599; transition: border-color .15s, box-shadow .15s; }
.press-picker-trigger:hover { border-color: var(--brand-blue); }
.press-picker-trigger:focus-visible { outline: 3px solid var(--brand-blue); outline-offset: 2px; }
.press-picker-trigger[aria-expanded="true"] { border-color: var(--brand-blue); box-shadow: 0 0 0 4px #01a2c226; }
.press-picker-trigger > .press-icon:first-child { color: var(--brand-blue); }
.press-picker-trigger > .press-icon:last-child { margin-left: auto; color: var(--muted); transition: transform .2s; }
.press-picker-trigger[aria-expanded="true"] > .press-icon:last-child { transform: rotate(180deg); }
.press-picker-text { display: grid; gap: 2px; min-width: 0; }
.press-picker-kicker { font-size: 12px; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.press-picker-value { font-size: 20px; font-weight: 700; letter-spacing: -.02em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.press-picker-panel { position: absolute; z-index: 20; top: calc(100% + 8px); right: 0; width: min(440px, calc(100vw - 32px)); border: 1px solid #cfdfe4; border-radius: 14px; background: #fff; box-shadow: 0 28px 60px -24px #20202059; overflow: hidden; }
.press-picker-search { display: flex; align-items: center; gap: 10px; padding: 12px 16px; border-bottom: 1px solid var(--line); color: var(--muted); }
.press-picker-search input { flex: 1; min-width: 0; border: 0; padding: 6px 0; font: inherit; font-size: 16px; color: var(--ink); background: transparent; }
.press-picker-search input:focus { outline: none; }
.press-picker-search:focus-within { box-shadow: inset 0 -2px 0 var(--brand-blue); }
.press-picker-list { position: relative; max-height: min(420px, 55vh); overflow-y: auto; padding: 6px; overscroll-behavior: contain; }
.press-option { display: flex; align-items: center; gap: 12px; padding: 9px 12px; border-radius: 8px; font-size: 15px; cursor: pointer; }
.press-option[hidden] { display: none; }
.press-option.is-departement { padding-left: 30px; }
.press-option.is-region { margin-top: 6px; font-weight: 650; }
.press-option.is-national { font-weight: 700; }
.press-option.is-active { background: var(--press-pale); }
.press-option[aria-selected="true"] { color: var(--press-petrol); }
.press-option[aria-selected="true"]::after { content: ""; width: 14px; height: 8px; margin-left: 8px; border: solid currentColor; border-width: 0 0 2px 2px; transform: translateY(-2px) rotate(-45deg); flex: none; }
.press-option-badge { display: inline-flex; align-items: center; justify-content: center; min-width: 32px; height: 24px; padding: 0 6px; border-radius: 6px; background: #eef2f3; color: #3d3d3d; font-size: 12px; font-weight: 700; font-variant-numeric: tabular-nums; }
.press-option.is-national .press-option-badge, .press-option.is-region .press-option-badge { background: var(--press-petrol); color: #fff; }
.press-option.is-region .press-option-badge { background: #d9eef3; color: var(--press-petrol); }
.press-option-name { flex: 1; min-width: 0; }
.press-option-kind { font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); }
.press-picker-empty { padding: 18px; font-size: 15px; color: var(--muted); }

.press-fiche { margin-top: 36px; padding: 32px; border: 1px solid #d6e6ea; border-radius: 20px; background: #fff; box-shadow: 0 30px 60px -48px #015f7580; scroll-margin-top: 24px; }
.press-fiche-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 16px 24px; padding-bottom: 22px; border-bottom: 1px solid var(--line); }
.press-fiche-kicker { font-size: 13px; font-weight: 600; color: #007f9b; }
.press-fiche-name { margin-top: 4px; font-size: clamp(26px, 2.6vw, 36px) !important; font-weight: 750 !important; letter-spacing: -.03em; line-height: 1.1; }
.press-copy-link, .press-copy { display: inline-flex; align-items: center; gap: 8px; padding: 9px 14px; border: 1px solid #cfdfe4; border-radius: 8px; background: #fff; color: var(--ink); font: inherit; font-size: 14px; font-weight: 600; cursor: pointer; transition: border-color .15s, background .15s; }
.press-copy-link:hover, .press-copy:hover { border-color: var(--brand-blue); }
.press-copy-link.is-done, .press-copy.is-done { border-color: #1baf7a; background: #e8f7f0; color: #0d6b49; }
.press-fiche-body { display: grid; grid-template-columns: minmax(0, 1fr) 280px; gap: 40px; margin-top: 26px; }
.press-fiche-big { display: grid; grid-template-columns: auto 1fr; column-gap: 18px; align-items: center; }
.press-fiche-big strong { grid-row: span 2; font-size: clamp(52px, 5.4vw, 76px); font-weight: 800; line-height: 1; letter-spacing: -.05em; color: var(--press-petrol); }
.press-fiche-big span { font-size: 19px; font-weight: 650; line-height: 1.35; align-self: end; }
.press-fiche-big small { font-size: 14px; color: var(--muted); align-self: start; margin-top: 4px; }
.press-fiche-figs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; margin-top: 26px; border-top: 1px solid var(--line); }
.press-fiche-figs > div { display: flex; flex-direction: column; padding: 16px 16px 16px 0; border-bottom: 1px solid #ededed; }
.press-fiche-figs dd { order: -1; font-size: 26px; font-weight: 750; letter-spacing: -.03em; line-height: 1.15; }
.press-fiche-figs dt { margin-top: 4px; font-size: 14px; line-height: 1.45; color: #3d3d3d; }
.press-fiche-figs small { margin-top: 6px; font-size: 13px; font-weight: 600; color: #007f9b; }
.press-fiche-waffle { margin: 0; }
.press-waffle { display: grid; grid-template-columns: repeat(10, 1fr); gap: 3px; width: 100%; max-width: 260px; aspect-ratio: 1; }
.press-waffle i { border-radius: 3px; background: #eb8235; transition: background .25s; }
.press-waffle i.a { background: #01a2c2; }
.press-waffle i.b { background: #8fd6e6; }
.press-waffle-keys { display: grid; gap: 7px; margin-top: 16px; font-size: 14px; line-height: 1.4; }
.press-waffle-keys li { display: flex; align-items: flex-start; gap: 9px; }
.press-waffle-keys .press-swatch { margin-top: 3px; }
.press-fiche-waffle .press-note { margin-top: 12px; font-size: 13px; }
.press-phrases { margin-top: 30px; padding-top: 24px; border-top: 1px solid var(--line); }
.press-phrases h4 { font-size: 13px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); }
.press-phrases ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin-top: 14px; }
.press-phrases li { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; padding: 18px 20px; border-radius: 12px; background: #f6f9fa; border-left: 3px solid var(--brand-blue); }
.press-phrases blockquote { font-size: 16px; line-height: 1.55; }
.press-phrases .press-copy { margin-top: auto; padding: 7px 12px; font-size: 13px; }
.press-fiche-files { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin-top: 26px; }
.press-file { display: flex; align-items: center; gap: 14px; padding: 16px 18px; border: 1px solid var(--line); border-radius: 12px; color: var(--ink); transition: border-color .15s, background .15s; }
.press-file:hover { border-color: var(--brand-blue); background: var(--press-pale); text-decoration: none; }
.press-file > .press-icon:first-child { color: var(--brand-blue); }
.press-file > span:not(.press-file-arrow) { display: grid; gap: 2px; flex: 1; min-width: 0; }
.press-file strong { font-size: 15px; font-weight: 680; }
.press-file small { font-size: 12px; color: var(--muted); }
.press-file > .press-icon:last-child, .press-file-arrow { color: #006f87; font-weight: 700; }

/* Nuage de points */
.press-scatter-card { margin-top: 36px; }
.press-scatter { width: 100%; min-height: 360px; }
.press-scatter svg { display: block; overflow: visible; }
.press-scatter-hit { cursor: pointer; }
.press-scatter-hit:hover { fill: #20202014; }

.press-warning { background: var(--press-pale); border-top-color: #cfeaf1; }
.press-warning-grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: 56px; align-items: center; }
.press-warning-icon { color: var(--brand-blue); margin-bottom: 16px; }
.press-giant { padding: 32px; border-radius: 16px; background: #fff; }
.press-giant-value { font-size: clamp(88px, 11vw, 150px); font-weight: 800; line-height: .95; letter-spacing: -.06em; color: var(--press-petrol); }
.press-giant-text { margin-top: 14px; font-size: 19px; line-height: 1.5; font-weight: 600; }
.press-giant-conclusion { margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--line); font-size: 16px; line-height: 1.6; color: #3d3d3d; }

/* Location */
.press-rental-grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: 56px; align-items: center; }
.press-rental-steps { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 26px; }
.press-rental-steps li { display: flex; align-items: center; gap: 10px; padding: 8px 14px 8px 8px; border-radius: 10px; background: #f5f5f5; font-size: 15px; font-weight: 600; }
.press-rental-steps b { display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; border-radius: 6px; color: #fff; font-size: 16px; font-weight: 800; }
.press-rental-steps li:nth-child(3) b { color: var(--ink); }
.press-rental-card { margin: 0; padding: 32px; border-radius: 16px; border: 1px solid var(--line); background: #fff; }
.press-rental-card .press-giant-value { font-size: clamp(72px, 8vw, 112px); }
.press-rental-bar { display: flex; gap: 2px; height: 22px; margin-top: 24px; }
.press-rental-bar i { display: block; height: 100%; }
.press-rental-bar i:first-child { border-radius: 4px 0 0 4px; }
.press-rental-bar i:last-child { border-radius: 0 4px 4px 0; }

.press-timeline { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; margin-top: 40px; counter-reset: none; }
.press-timeline li { position: relative; display: flex; flex-direction: column; gap: 4px; padding: 30px 24px 0 0; border-top: 3px solid #cfe3e8; }
.press-timeline li::before { content: ""; position: absolute; top: -10px; left: 0; width: 17px; height: 17px; border-radius: 50%; background: #fff; border: 3px solid #9cc7d1; }
.press-timeline li.is-next { border-top-color: var(--brand-blue); }
.press-timeline li.is-next::before { background: var(--brand-blue); border-color: var(--brand-blue); }
.press-time-date { font-size: 15px; font-weight: 600; color: var(--muted); }
.press-time-coef { font-size: 52px; font-weight: 800; letter-spacing: -.04em; line-height: 1.05; }
.is-next .press-time-coef { color: var(--press-petrol); }
.press-time-label { font-size: 14px; color: var(--muted); }
.press-calendar .press-lead { margin-top: 36px; }
.press-links { display: flex; flex-wrap: wrap; gap: 12px 28px; margin-top: 20px; font-size: 15px; font-weight: 600; }
.press-links a { color: var(--ink); text-decoration: underline; text-decoration-color: var(--brand-blue); text-underline-offset: 5px; }

.press-resources { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 18px; margin-top: 30px; }
.press-resource { display: grid; grid-template-columns: auto 1fr; gap: 14px 16px; align-items: start; padding: 24px; border: 1px solid var(--line); border-radius: 14px; background: #fff; }
.press-resource > .press-icon { color: var(--brand-blue); }
.press-resource h3 { font-size: 18px; font-weight: 680; }
.press-resource p { margin-top: 4px; font-size: 15px; line-height: 1.5; color: #3d3d3d; }
.press-resource .press-resource-meta { font-size: 12px; font-weight: 600; letter-spacing: .04em; color: var(--muted); }
.press-download { grid-column: 2; justify-self: start; display: inline-flex; align-items: center; gap: 8px; padding: 10px 16px; border-radius: 6px; border: 1px solid var(--brand-blue); color: #006f87; font-size: 14px; font-weight: 650; }
.press-download:hover { background: var(--brand-blue); color: #fff; }
.press-licence { display: flex; align-items: flex-start; gap: 12px; margin-top: 26px; max-width: 900px; padding: 16px 18px; border-radius: 12px; background: #f3f6f7; font-size: 14px; line-height: 1.6; color: #3d3d3d; }
.press-licence .press-icon { color: var(--brand-blue); margin-top: 1px; }

.press-contact { background: #202020; color: #fff; border-top: 0; }
.press-contact h2 { color: #fff; }
.press-contact-grid { display: grid; grid-template-columns: 1.3fr .7fr; gap: 64px; align-items: center; }
.press-quote { margin-top: 28px; padding-left: 24px; border-left: 3px solid var(--brand-blue); font-size: clamp(19px, 1.7vw, 23px); line-height: 1.55; color: #f0f0f0; }
.press-person { padding: 28px; border-radius: 16px; background: #2b2b2b; display: grid; gap: 6px; justify-items: start; }
.press-person img, .press-photo-placeholder { width: 120px; height: 120px; border-radius: 50%; object-fit: cover; margin-bottom: 10px; }
.press-photo-placeholder { display: flex; align-items: center; justify-content: center; background: #3a3a3a; color: #9a9a9a; border: 1px dashed #6b6b6b; }
.press-photo-placeholder.is-initials { background: var(--brand-blue); color: #fff; border: 0; font-size: 40px; font-weight: 700; letter-spacing: -.02em; }
.press-person-name { font-size: 20px; font-weight: 700; }
.press-person-role, .press-person-line { font-size: 15px; color: #cfcfcf; }
.press-person-line { display: flex; align-items: center; gap: 8px; }
.press-person a:not(.button) { color: #fff; text-decoration: underline; text-decoration-color: var(--brand-blue); }
.press-person .button { margin-top: 14px; }

.press-badges { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.press-badges li { display: flex; flex-direction: column; gap: 2px; padding: 12px 16px; border-radius: 10px; background: #f3f6f7; font-size: 15px; font-weight: 600; }
.press-badges span { font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); }
.press-badges a { color: var(--ink); text-decoration: underline; text-decoration-color: var(--brand-blue); text-underline-offset: 4px; }
.press-footer .footer-bottom span { color: inherit; }

@media (max-width: 1050px) {
  .press-map-grid, .press-warning-grid, .press-contact-grid, .press-rental-grid, .press-territory-head { grid-template-columns: 1fr; gap: 32px; }
  .press-territory-head .press-picker { max-width: 460px; }
  .press-picker-panel { left: 0; right: auto; }
  .press-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .press-fiche-body { grid-template-columns: 1fr; }
  .press-fiche-waffle { display: grid; grid-template-columns: 200px 1fr; gap: 6px 28px; align-items: start; }
  .press-fiche-waffle figcaption { grid-column: 1 / -1; }
  .press-fiche-waffle .press-waffle-keys { margin-top: 0; }
  .press-fiche-waffle .press-note { grid-column: 2; margin-top: 0; }
  .press-fiche-files { grid-template-columns: 1fr; }
}
@media (max-width: 700px) {
  .press-map svg .press-annot { display: none; }
  .press-nav { gap: 14px !important; }
  .press-nav-cta { padding: 8px 10px; }
  .press-nav-cta .press-icon { display: none; }
  .press-long { display: none; }
  .press-short { display: inline; }
  .press-fiche-figs, .press-phrases ul { grid-template-columns: 1fr 1fr; }
  .press-phrases ul { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
  .press-hero { padding-block: 28px 56px; }
  .press-chapo, .press-lead, .press-map-note { font-size: 16px; }
  .press-section { padding-block: 56px; }
  .press-actions .button { width: 100%; min-width: 0; }
  .press-kpis { grid-template-columns: 1fr; }
  .press-kpi { padding: 18px 20px; }
  .press-fiche { margin-inline: -8px; padding: 20px 16px; border-radius: 16px; }
  .press-fiche-big { grid-template-columns: 1fr; }
  .press-fiche-big strong { grid-row: auto; }
  .press-fiche-big span { margin-top: 6px; }
  .press-fiche-figs dd { font-size: 22px; }
  .press-fiche-figs > div { padding-right: 10px; }
  .press-fiche-waffle { grid-template-columns: 1fr; }
  .press-fiche-waffle .press-note { grid-column: auto; }
  .press-waffle { max-width: 220px; }
  .press-copy-link { width: 100%; justify-content: center; }
  .press-timeline { grid-template-columns: 1fr; gap: 26px; border-left: 3px solid #cfe3e8; margin-left: 8px; }
  .press-timeline li { border-top: 0; padding: 0 0 0 24px; }
  .press-timeline li::before { top: 6px; left: -11px; }
  .press-timeline li.is-next { border-top: 0; }
  .press-time-coef { font-size: 40px; }
  .press-resources { grid-template-columns: 1fr; }
  .press-giant, .press-rental-card { padding: 24px; }
  .press-toggle { display: flex; }
  .press-toggle button { flex: 1; }
}
@media (prefers-reduced-motion: reduce) {
  .press-map-areas path, .press-waffle i, .press-picker-trigger > .press-icon:last-child { transition: none; }
}
