/* ==========================================================================
   Pages départements /territoires/ (générées par tools/territoires.py), d'après la maquette F.
   Charte : navy #22303f, olive #5b7a1d, anis #a9c93b, fond #f4f5ef ; Hanken Grotesk + JetBrains Mono.
   ========================================================================== */

/* Polices (mêmes fichiers que la section Crosses & consoles) (auto-hébergées, extraites de Google Fonts le 01/11/2026) :
   Hanken Grotesk 800 et JetBrains Mono 400/500 (SIL OFL), sous-ensembles latin + latin-ext. Aucune requête externe. */

/* Hanken Grotesk 800 · latin-ext */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(/fonts/hanken-grotesk-800-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* Hanken Grotesk 800 · latin */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(/fonts/hanken-grotesk-800-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* JetBrains Mono 400 · latin-ext */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/jetbrains-mono-400-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* JetBrains Mono 400 · latin */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/jetbrains-mono-400-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* JetBrains Mono 500 · latin-ext */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/jetbrains-mono-400-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* JetBrains Mono 500 · latin */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/jetbrains-mono-400-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

.te{
  --te-navy:#22303f;--te-olive:#5b7a1d;--te-anis:#a9c93b;--te-bg:#f4f5ef;--te-line:#d6dacb;--te-muted:#5f6874;--te-text:#46525f;--te-soft:#c9d2df;
  --te-sans:'Hanken Grotesk',system-ui,-apple-system,'Segoe UI',sans-serif;
  --te-mono:'JetBrains Mono',ui-monospace,'SFMono-Regular',Menlo,monospace;
  background:var(--te-bg);color:var(--te-navy);font-family:var(--te-sans)
}
.te main a{color:var(--te-olive)}
.te main a:hover{color:var(--te-navy)}
.te-wrap{max-width:1280px;margin:0 auto;padding-left:32px;padding-right:32px;box-sizing:border-box}
.te-tag{font-family:var(--te-mono);font-size:11px;letter-spacing:1.5px;text-transform:uppercase;color:var(--te-olive);margin:0}
.te-tag--anis{color:var(--te-anis)}
.te-ph{background:#fff4c7;color:#6b4410;font-size:13px;font-weight:700;padding:3px 7px}
.te-btn{display:inline-flex;align-items:center;justify-content:center;font:700 15px/1.2 var(--te-sans);padding:14px 22px;text-decoration:none;border:1px solid transparent;transition:background .2s,color .2s}
.te main a.te-btn--anis{background:var(--te-anis);color:var(--te-navy)}
.te main a.te-btn--anis:hover{background:#bcd766;color:var(--te-navy)}
.te main a.te-btn--line{border-color:#fff;color:#fff;font-weight:600}
.te main a.te-btn--line:hover{background:rgba(255,255,255,.1);color:#fff}
.te-btn:focus-visible,.te-card:focus-visible,.te-sol:focus-visible,.te-chip:focus-visible,.te-dep:focus-visible{outline:3px solid var(--te-anis);outline-offset:2px}

/* héros */
.te-hero{background:var(--te-navy);color:#fff;position:relative;overflow:hidden}
.te-hero__bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.25}
.te-hero__inner{position:relative;padding-top:28px;padding-bottom:56px;display:flex;flex-direction:column;gap:14px}
.te-crumb{font-size:13px;color:var(--te-soft)}
.te main .te-crumb a{color:var(--te-soft);text-decoration:none}
.te main .te-crumb a:hover{color:#fff;text-decoration:underline}
.te-crumb span[aria-current]{color:#fff;font-weight:600}
.te-hero h1{margin:0;font-size:56px;line-height:1.03;font-weight:800;max-width:900px;letter-spacing:-.015em;color:#fff}
.te-hero__lead{font-size:18px;line-height:1.55;color:var(--te-soft);max-width:760px;margin:0}
.te-hero__lead p{margin:0 0 10px}
.te-hero__lead p:last-child{margin-bottom:0}
.te-hero__actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:6px}

/* interlocuteur, syndicat, compteur */
.te-infos{display:flex;flex-wrap:wrap;gap:22px;padding-top:40px}
.te-box{background:#fff;padding:24px;flex:1 1 360px;display:flex;flex-direction:column;gap:8px}
.te-who{flex-direction:row;gap:16px;align-items:center}
.te-who__photo{width:72px;height:72px;flex:none;background:#e9ece2;overflow:hidden}
.te-who__photo img{width:72px;height:72px;object-fit:cover;display:block}
.te-who__name{margin:0;font-size:20px;font-weight:800}
.te-who__role{margin:0;font-size:14px;color:var(--te-text);line-height:1.45}
.te-who a{font-weight:700;font-size:14px}
.te-count{flex:1 1 260px;background:var(--te-navy);color:#fff;justify-content:center;gap:6px}
.te-count p{margin:0;font-size:15px;color:var(--te-soft)}
.te-count .te-count__n{font-size:40px;font-weight:800;color:var(--te-anis);line-height:1}

/* sections */
.te-sec{padding-top:48px}
.te-sec--last{padding-bottom:80px}
.te-h2{margin:6px 0 20px;font-size:32px;font-weight:800;line-height:1.15;color:var(--te-navy)}
.te main .te-h2 a{color:var(--te-navy);text-decoration:none}
.te main .te-h2 a:hover{color:var(--te-olive)}
.te-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.te-card{background:#fff;display:flex;flex-direction:column;text-decoration:none;transition:transform .2s,box-shadow .2s}
.te main a.te-card{color:var(--te-navy)}
.te-card:hover{transform:translateY(-3px);box-shadow:0 22px 44px -24px rgba(34,48,63,.35)}
.te-card__media{display:block;height:200px;overflow:hidden;background:#e9ece2}
.te-card__media img{width:100%;height:100%;object-fit:cover;display:block}
.te-card__media.is-pack{background:#fff}
.te-card__media.is-pack img{object-fit:contain;padding:10px;box-sizing:border-box}
.te-card__media.is-vignette{background:var(--te-navy)}
.te-card__media.is-vignette img{object-fit:contain}
.te-card__body{padding:18px;display:flex;flex-direction:column;gap:6px}
.te-card__meta{font-size:12px;color:var(--te-muted)}
.te-card__title{font-size:19px;font-weight:800;line-height:1.25}
.te-sols{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.te-sol{background:#fff;padding:20px;display:flex;flex-direction:column;gap:6px;text-decoration:none}
.te main a.te-sol{color:var(--te-navy)}
.te-sol:hover{box-shadow:inset 0 -3px 0 var(--te-anis)}
.te-sol__t{font-size:17px;font-weight:800}
.te-sol__m{font-size:14px;color:var(--te-text)}
.te-vois{flex:none}
.te-chips{display:flex;flex-wrap:wrap;gap:10px}
.te main a.te-chip{border:1px solid var(--te-line);padding:10px 14px;text-decoration:none;color:var(--te-navy);font-weight:600;background:#fff}
.te main a.te-chip:hover{border-color:var(--te-navy)}
.te main a.te-chip--off{color:var(--te-muted);font-weight:500}
.te main a.te-chip--all{border-color:var(--te-navy)}
.te-cta{margin-top:22px;background:var(--te-navy);color:#fff;padding:26px;display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}
.te-cta__t{margin:0;font-size:22px;font-weight:800}

/* index des territoires */
.te-hero--index .te-hero__inner{padding-bottom:48px}
.te-deps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.te-dep{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:14px;row-gap:2px;align-items:center;background:#fff;padding:16px 18px;text-decoration:none;height:100%;box-sizing:border-box}
.te main a.te-dep{color:var(--te-navy)}
.te main a.te-dep:hover{box-shadow:inset 0 -3px 0 var(--te-anis)}
.te-dep__n{grid-row:1 / 3;font-family:var(--te-mono);font-size:22px;color:var(--te-olive);font-weight:500}
.te-dep__t{font-weight:800;font-size:17px}
.te-dep__i{font-size:13px;color:var(--te-muted)}
.te-dep--off{opacity:.8}
.te-dep--off .te-dep__n{color:var(--te-muted)}

@media (max-width:900px){
  .te-grid,.te-sols{grid-template-columns:repeat(2,minmax(0,1fr))}
  .te-deps{grid-template-columns:repeat(2,minmax(0,1fr))}
  .te-hero h1{font-size:40px}
}
@media (max-width:560px){
  .te-wrap{padding-left:16px;padding-right:16px}
  .te-grid,.te-sols,.te-deps{grid-template-columns:1fr}
  .te-hero h1{font-size:32px}
  .te-hero__lead{font-size:16px}
  .te-h2{font-size:26px}
  .te-box{flex-basis:100%}
  .te-card__media{height:180px}
}
