/* PÉRON 2026 — page Projets (v2026/pages/projets.php)
 * En-tête et puces de filtre : search.css · cartes projet : p26.css · ici : chiffres clés, barre de filtres,
 * liste + carte Leaflet, frise "calendrier des projets". */

/* ---------- Chiffres clés (en-tête) ---------- */
.p26-projstats{display:flex;flex-wrap:wrap;align-items:center;gap:12px 14px;margin-top:26px}
.p26-projstats li{display:flex;align-items:baseline;gap:8px;padding:12px 18px;border-radius:16px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.22);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.p26-projstats strong{font-size:1.6rem;font-weight:800;line-height:1;color:#fff}
.p26-projstats span{font-weight:600;color:rgba(255,255,255,.82)}
.p26-projstats li.p26-projstats__cta{padding:0;background:none;border:0}

/* ---------- Filtres ---------- */
.p26-filter--st::before{content:"";width:10px;height:10px;border-radius:50%;background:var(--st);box-shadow:0 0 0 2px #fff,0 0 0 3px color-mix(in srgb,var(--st) 40%,transparent)}
.p26-filter--st.is-active{background:var(--st);border-color:var(--st)}
.p26-filter--st.is-active::before{background:#fff;box-shadow:none}

.p26-proj__bar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px 16px;margin-top:14px;padding:14px;background:#fff;border:1px solid var(--p26-line);border-radius:var(--p26-radius);box-shadow:var(--p26-shadow-sm)}
.p26-proj__search{flex:1 1 260px;display:flex;align-items:center;gap:10px;min-height:46px;padding:0 16px;border-radius:999px;background:var(--p26-bg);border:1.5px solid transparent;transition:border-color .15s,background .15s}
.p26-proj__search:focus-within{border-color:var(--p26-mint);background:#fff}
.p26-proj__search .bi{color:var(--p26-teal)}
.p26-proj__search input{flex:1;min-width:0;border:0;outline:0;background:transparent;font-weight:600;color:var(--p26-navy)}
.p26-proj__search input::placeholder{color:#8f97b6;font-weight:500}
.p26-proj__select{display:flex;flex-direction:column;gap:4px;font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--p26-muted)}
.p26-proj__select select{min-height:46px;padding:0 38px 0 14px;border-radius:14px;border:1.5px solid var(--p26-line);background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%232d366a' stroke-width='2'/%3E%3C/svg%3E") no-repeat right 14px center;-webkit-appearance:none;appearance:none;font-size:.92rem;font-weight:700;text-transform:none;letter-spacing:0;color:var(--p26-navy);cursor:pointer}
.p26-proj__select select:hover{border-color:var(--p26-navy)}

.p26-switch{display:inline-flex;align-items:center;gap:10px;min-height:46px;font-weight:700;font-size:.92rem;color:var(--p26-navy);cursor:pointer;user-select:none}
.p26-switch input{position:absolute;opacity:0;width:1px;height:1px}
.p26-switch__ui{position:relative;flex:none;width:44px;height:26px;border-radius:99px;background:#cfd5e6;transition:background .2s}
.p26-switch__ui::after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 2px 6px rgba(21,26,56,.25);transition:transform .2s var(--p26-ease)}
.p26-switch input:checked+.p26-switch__ui{background:var(--p26-teal)}
.p26-switch input:checked+.p26-switch__ui::after{transform:translateX(18px)}
.p26-switch input:focus-visible+.p26-switch__ui{outline:3px solid var(--p26-mint);outline-offset:3px}
.js-p26proj .p26-proj__submit{display:none}

.p26-proj__status{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin:22px 0 16px}
.p26-proj__summary{font-weight:800;color:var(--p26-navy)}
.p26-proj__reset{font-size:.9rem}
.p26-proj__lead{margin-top:10px;color:var(--p26-muted);font-weight:600}

/* ---------- Liste + carte ---------- */
.p26-proj__layout{display:grid;gap:24px}
.p26-proj__layout.has-map{grid-template-columns:minmax(0,1fr) minmax(320px,.72fr);align-items:start}
.p26-projlist{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,290px),1fr));gap:20px;transition:opacity .2s}
.p26-proj[aria-busy="true"] .p26-projlist{opacity:.45}
.p26-projcard{animation:p26-proj-in .45s var(--p26-ease) both}
.p26-projcard .p26-project__media{position:relative}
.p26-projcard .p26-project__body{padding:18px 20px 20px}
.p26-projcard .p26-project h3,.p26-projcard h3{font-size:1.1rem}
.p26-projcard.is-hot .p26-project{border-color:var(--p26-mint);box-shadow:var(--p26-shadow);transform:translateY(-4px)}
.p26-projcard mark{background:rgba(55,181,164,.3);color:inherit;border-radius:4px;padding:0 2px}
.p26-projcard__phase{position:absolute;left:12px;top:12px;padding:5px 11px;border-radius:999px;font-size:.72rem;font-weight:800;letter-spacing:.03em;background:rgba(255,255,255,.94);color:var(--p26-navy);box-shadow:0 4px 14px -6px rgba(21,26,56,.5)}
.p26-projcard__phase--actif{color:var(--p26-teal)}
.p26-projcard__phase--futur{color:#a8660b}
.p26-projcard__phase--fini{color:var(--p26-muted)}
.p26-projcard__meta{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:.82rem;font-weight:600;color:var(--p26-muted)}
.p26-projcard__meta .bi{color:var(--p26-teal);margin-right:.4em}
.p26-tag--public{color:var(--p26-blue)}
.p26-proj__more{display:flex;justify-content:center;margin-top:24px}
.p26-proj__more:empty{display:none}
@keyframes p26-proj-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}

.p26-proj__aside{position:sticky;top:96px}
.p26-projmap{overflow:hidden;background:#fff;border:1px solid var(--p26-line);border-radius:var(--p26-radius-lg);box-shadow:var(--p26-shadow-sm)}
.p26-projmap__map{height:min(560px,70vh);background:#e8eef3}
.p26-projmap__note{display:flex;align-items:center;gap:8px;padding:12px 18px;font-size:.84rem;font-weight:600;color:var(--p26-muted);border-top:1px solid var(--p26-line)}
.p26-projmap__note .bi{color:var(--p26-teal)}
/* Marqueurs (L.divIcon) */
.p26-pin{background:none;border:0}
.p26-pin span{display:block;width:30px;height:30px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:var(--st,#007d8d);border:3px solid #fff;box-shadow:0 6px 14px -4px rgba(21,26,56,.55);transition:transform .2s var(--p26-ease)}
.p26-pin.is-hot span{transform:rotate(-45deg) scale(1.3)}
.p26-projmap .leaflet-popup-content-wrapper{border-radius:14px;font-family:var(--p26-font)}
.p26-projmap .leaflet-popup-content{margin:12px 16px}
.p26-pop__st{display:block;font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--st)}
.p26-pop__t{display:block;margin:2px 0 6px;font-size:.98rem;font-weight:800;color:var(--p26-navy)}
.p26-pop a{font-weight:700}

/* ---------- Calendrier (frise de type Gantt) ---------- */
.p26-gantt{--lab:260px;background:#fff;border:1px solid var(--p26-line);border-radius:var(--p26-radius-lg);box-shadow:var(--p26-shadow-sm);overflow:hidden}
.p26-gantt__scroll{overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin}
.p26-gantt__scroll:focus-visible{outline-offset:-3px}
.p26-gantt__grid{position:relative;isolation:isolate;min-width:calc(var(--lab) + var(--cols) * 120px)}
.p26-gantt__head,.p26-gantt__row{display:grid;grid-template-columns:var(--lab) minmax(0,1fr)}
.p26-gantt__head{border-bottom:1px solid var(--p26-line);background:var(--p26-bg)}
.p26-gantt__corner{position:sticky;left:0;z-index:3;padding:14px 20px;background:var(--p26-bg);font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:var(--p26-muted)}
.p26-gantt__years{display:grid;grid-template-columns:repeat(var(--cols),1fr)}
.p26-gantt__years span{padding:14px 12px;border-left:1px solid var(--p26-line);font-weight:800;color:var(--p26-navy)}
.p26-gantt__years span.is-now{color:var(--p26-teal)}
.p26-gantt__rows{margin:0;padding:0;list-style:none}
.p26-gantt__row+.p26-gantt__row{border-top:1px solid #eef1f7}
.p26-gantt__row:hover,.p26-gantt__row.is-hot{background:var(--p26-mint-50)}
.p26-gantt__label{position:sticky;left:0;z-index:3;display:flex;flex-direction:column;justify-content:center;gap:2px;min-width:0;padding:12px 20px;background:inherit;background-color:#fff;border-right:1px solid var(--p26-line);text-decoration:none!important}
.p26-gantt__row:hover .p26-gantt__label,.p26-gantt__row.is-hot .p26-gantt__label{background-color:var(--p26-mint-50)}
.p26-gantt__name{font-weight:800;line-height:1.25;color:var(--p26-navy);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.p26-gantt__label:hover .p26-gantt__name{color:var(--p26-teal)}
.p26-gantt__dates{font-size:.78rem;font-weight:600;color:var(--p26-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.p26-gantt__track{position:relative;min-height:64px;background:linear-gradient(90deg,var(--p26-line) 1px,transparent 1px) 0 0/calc(100% / var(--cols)) 100%}
.p26-gantt__bar{position:absolute;top:50%;left:var(--l);width:var(--w);height:30px;margin-top:-15px;display:flex;align-items:center;overflow:hidden;border-radius:10px;background:color-mix(in srgb,var(--st) 32%,#fff);border:1.5px solid var(--st);text-decoration:none!important;transform-origin:left center;transition:box-shadow .2s,filter .2s}
.p26-gantt__bar:hover,.p26-gantt__row.is-hot .p26-gantt__bar{box-shadow:0 8px 18px -8px color-mix(in srgb,var(--st) 80%,#000);filter:saturate(1.15)}
.p26-gantt__bar--futur{background:repeating-linear-gradient(-45deg,color-mix(in srgb,var(--st) 26%,#fff) 0 7px,color-mix(in srgb,var(--st) 10%,#fff) 7px 14px);border-style:dashed}
.p26-gantt__bar.is-cut-start{border-top-left-radius:0;border-bottom-left-radius:0;border-left-width:0}
.p26-gantt__bar.is-cut-end,.p26-gantt__bar.is-open{border-top-right-radius:0;border-bottom-right-radius:0;border-right-width:0}
.p26-gantt__bar.is-open{-webkit-mask-image:linear-gradient(90deg,#000 70%,transparent);mask-image:linear-gradient(90deg,#000 70%,transparent)}
.p26-gantt__fill{position:absolute;inset:0 auto 0 0;background:var(--st);opacity:.85}
.p26-gantt__txt{position:relative;margin-left:6px;padding:2px 8px;border-radius:6px;background:rgba(255,255,255,.88);font-size:.72rem;font-weight:800;white-space:nowrap;color:var(--p26-ink)}
/* lignes des annees + repere "aujourd'hui" */
.p26-gantt__overlay{position:absolute;z-index:2;top:0;bottom:0;left:var(--lab);right:0;pointer-events:none}
.p26-gantt__today{position:absolute;top:0;bottom:0;left:var(--l);width:2px;margin-left:-1px;background:var(--p26-danger)}
.p26-gantt__today b{position:absolute;top:8px;left:50%;transform:translateX(-50%);padding:3px 8px;border-radius:999px;background:var(--p26-danger);color:#fff;font-size:.66rem;font-weight:800;letter-spacing:.04em;white-space:nowrap}
.p26-gantt__legend{display:flex;flex-wrap:wrap;gap:8px 20px;padding:14px 20px;border-top:1px solid var(--p26-line);font-size:.84rem;font-weight:600;color:var(--p26-muted)}
.p26-gantt__legend li{display:inline-flex;align-items:center;gap:8px}
.p26-gantt__key{display:inline-block;width:26px;height:12px;border-radius:4px;background:color-mix(in srgb,var(--st) 32%,#fff);border:1.5px solid var(--st)}
.p26-gantt__key--futur{--st:#586081;background:repeating-linear-gradient(-45deg,#d9dce8 0 4px,#f1f2f7 4px 8px);border-style:dashed}
.p26-gantt__key--fill{--st:var(--p26-teal);background:linear-gradient(90deg,var(--p26-teal) 55%,color-mix(in srgb,var(--p26-teal) 32%,#fff) 55%)}

/* Animation d'entree des barres (declenchee par projets.js quand la frise devient visible) */
.p26-gantt.is-armed .p26-gantt__bar{transform:scaleX(0)}
.p26-gantt.is-in .p26-gantt__bar{transform:scaleX(1);transition:transform .9s var(--p26-ease),box-shadow .2s,filter .2s}
.p26-gantt.is-in .p26-gantt__row:nth-child(2) .p26-gantt__bar{transition-delay:.08s}
.p26-gantt.is-in .p26-gantt__row:nth-child(3) .p26-gantt__bar{transition-delay:.16s}
.p26-gantt.is-in .p26-gantt__row:nth-child(4) .p26-gantt__bar{transition-delay:.24s}
.p26-gantt.is-in .p26-gantt__row:nth-child(n+5) .p26-gantt__bar{transition-delay:.32s}

/* ---------- Adaptations ---------- */
@media (max-width:1020px){
	.p26-proj__layout.has-map{grid-template-columns:1fr}
	.p26-proj__aside{position:static;order:-1}
	.p26-projmap__map{height:320px}
}
@media (max-width:640px){
	.p26-projstats li{padding:10px 14px}
	.p26-projstats strong{font-size:1.3rem}
	.p26-proj__bar{padding:12px}
	.p26-proj__select{flex:1 1 140px}
	.p26-gantt{--lab:150px}
	.p26-gantt__grid{min-width:calc(var(--lab) + var(--cols) * 110px)}
	.p26-gantt__label{padding:10px 12px}
	.p26-gantt__dates{white-space:normal;font-size:.72rem}
	.p26-gantt__name{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.88rem}
	.p26-gantt__corner{padding-inline:12px}
	.p26-gantt__txt{display:none}
}
@media (prefers-reduced-motion:reduce){
	.p26-projcard{animation:none}
	.p26-gantt.is-armed .p26-gantt__bar{transform:none}
}
