/* PSM Panorama : s'appuie sur app.css (variables, boutons, cartes, tableaux, pastilles). */
.psm-pano { gap: 40px; padding-bottom: 32px; grid-template-columns: minmax(0, 1fr); }
/* Les widgets vides du pied de page du thème n ont rien à faire ici. */
body:has(#psm-pano) #footer-widgets { display: none; }
body:has(#psm-pano) .entry-title.main_title { display: none; }
.psm-pano a { color: var(--b-ink); text-decoration-color: var(--b-accent); text-underline-offset: 3px; }
.psm-pano a:hover { color: var(--b-accent-strong); }
.psm-pano a.bas-btn { display: inline-block; color: var(--b-accent-ink); text-decoration: none; }
.psm-pano a.bas-btn:hover { color: var(--b-accent-ink); }

/* En-tête */
.pano-tete { background: var(--b-board); color: var(--b-board-ink); border-radius: 8px; padding: clamp(24px, 5vw, 56px); display: grid; gap: 16px; }
.pano-tete-haut { display: flex; flex-wrap: wrap; gap: 10px 20px; justify-content: space-between; align-items: center; }
#page-container .pano-tete h1, .pano-tete h1 { font-family: var(--b-display); font-weight: 800; font-size: clamp(2.4rem, 7vw, 4.6rem); line-height: 0.98; text-transform: uppercase; color: var(--b-board-ink); margin: 0; padding: 0; max-width: 16ch; }
#page-container .psm-pano .pano-tete > p, .psm-pano .pano-tete > p { color: #C3CFC7 !important; font-size: clamp(1.05rem, 2vw, 1.25rem); max-width: 60ch; }
.pano-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 4px; }
.psm-pano .pano-actions a.bas-btn.sec { color: var(--b-board-ink); border-color: #ffffff55; }
.psm-pano .pano-actions a.bas-btn.sec:hover { background: #ffffff14; border-color: var(--b-board-ink); color: var(--b-board-ink); }
.psm-pano .pano-tete .bas-lang { border-color: #ffffff40; }
.psm-pano .pano-tete .bas-lang a, .psm-pano .pano-tete .bas-lang span { font-weight: 700; font-size: 0.85rem; padding: 5px 12px; text-decoration: none; color: var(--b-board-muted); }
.psm-pano .pano-tete .bas-lang span { background: var(--b-accent); color: var(--b-accent-ink); }

/* Sections */
.pano-sec { display: grid; gap: 14px; min-width: 0; }
.pano-titre { display: flex; flex-wrap: wrap; gap: 8px 14px; align-items: center; }
.psm-pano .pano-lead { color: var(--b-muted); font-size: 1.05rem; max-width: 70ch; }
.psm-pano .pano-note { color: var(--b-muted); font-size: 0.88rem; }
.pano-tag { font-family: var(--b-mono); font-size: 0.7rem; letter-spacing: 0.08em; text-transform: uppercase; padding: 3px 8px; border-radius: 4px; white-space: nowrap; }
.pano-tag.reel { background: var(--b-ok-bg); color: var(--b-ok); }
.pano-tag.fictif { background: var(--b-warn-bg); color: var(--b-warn); }

/* Chiffres */
.pano-chiffres { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.pano-chiffres > div { background: var(--b-surface); border: 1px solid var(--b-line); border-radius: 6px; padding: 18px; display: grid; gap: 8px; align-content: start; }
.pano-chiffres strong { font-family: var(--b-display); font-weight: 800; font-size: clamp(1.8rem, 3vw, 2.4rem); line-height: 1; }
.pano-chiffres span { font-size: 0.98rem; line-height: 1.35; }
.psm-pano .pano-chiffres a { font-size: 0.78rem; color: var(--b-muted); line-height: 1.3; }

/* Parcours */
.pano-parcours { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.pano-parcours article { align-content: start; }
.pano-parcours ul { list-style: none; margin: 0; padding: 0; display: grid; }
.pano-parcours li { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 8px 0; border-top: 1px solid var(--b-line); font-size: 0.93rem; line-height: 1.3; }

/* Carte */
.pano-carte { margin: 0; background: var(--b-surface); border: 1px solid var(--b-line); border-radius: 6px; padding: 12px; display: grid; gap: 10px; }
.pano-carte svg { width: 100%; height: auto; display: block; }
.pano-carte .terre { fill: var(--b-line); stroke: none; }
.pano-carte .pt-fictif { fill: var(--b-board); stroke: var(--b-surface); stroke-width: 2; }
.pano-carte .pt-reel { fill: var(--b-accent); stroke: var(--b-surface); stroke-width: 2; }
.pano-carte figcaption { display: flex; flex-wrap: wrap; gap: 6px 20px; font-size: 0.85rem; color: var(--b-muted); }
.pano-carte figcaption span { display: inline-flex; align-items: center; gap: 7px; }
.lg-reel { width: 11px; height: 11px; background: var(--b-accent); transform: rotate(45deg); display: inline-block; }
.lg-fictif { width: 11px; height: 11px; background: var(--b-board); border-radius: 50%; display: inline-block; }
.psm-pano .pano-feds { font-size: 0.93rem; }

/* Calendrier */
.pano-table { max-height: none; }
.psm-pano .pano-table th { background: var(--b-bg); }

/* Essai */
.pano-essai { background: var(--b-bg); border-radius: 8px; padding: clamp(20px, 4vw, 36px); display: grid; gap: 16px; justify-items: start; }
.pano-essai ol { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; counter-reset: e; width: 100%; }
.pano-essai li { counter-increment: e; display: grid; gap: 4px; align-content: start; font-size: 0.95rem; line-height: 1.4; }
.pano-essai li::before { content: counter(e); width: 28px; height: 28px; border-radius: 50%; background: var(--b-board); color: var(--b-board-ink); display: grid; place-items: center; font-weight: 700; font-size: 0.85rem; margin-bottom: 4px; }
.psm-pano .pano-pied { color: var(--b-muted); font-size: 0.8rem; }

@media (max-width: 900px) {
	.pano-chiffres { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.pano-parcours, .pano-essai ol { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 480px) {
	.pano-chiffres { grid-template-columns: minmax(0, 1fr); }
}
