/* ==========================================================================
   Thème « Chantier » (piste B) — thème par défaut.
   Anthracite + papier froid, orange signal pour l'offre et l'action, bleu acier pour les recherches,
   Archivo élargie + JetBrains Mono. Chaque annonce est un ticket de pesée perforé.
   Ce fichier : polices, jetons (contrat : voir docs/DESIGN.md et l'en-tête de app.css), éléments signature.
   Contrastes vérifiés (WCAG 2.x) : voir docs/DESIGN.md § Contrastes.
   ========================================================================== */

/* ---------- Polices (OFL, auto-hébergées ; seul ce qui est utilisé est téléchargé) ---------- */
@font-face { font-family: 'Archivo'; font-style: normal; font-weight: 400 800; font-stretch: 100% 125%; font-display: swap; src: url("../../fonts/archivo-latin-Wa7z_Iw.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; }
@font-face { font-family: 'Archivo'; font-style: normal; font-weight: 400 800; font-stretch: 100% 125%; font-display: swap; src: url("../../fonts/archivo-latin-ext-iEdfVTB.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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'JetBrains Mono'; font-style: normal; font-weight: 400 800; font-display: swap; src: url("../../fonts/jetbrains-mono-latin-AcnlIJe.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; }
@font-face { font-family: 'JetBrains Mono'; font-style: normal; font-weight: 400 800; font-display: swap; src: url("../../fonts/jetbrains-mono-latin-ext-c8h-btv.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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }


/* ---------- Jetons ---------- */
:root,
:root[data-theme="chantier"] {
    color-scheme: light;

    /* Surfaces et encres */
    --fond: #F2F1EE;            /* papier froid */
    --fond-2: #E7E5E0;          /* panneaux secondaires, pastilles */
    --surface: #FFFFFF;         /* tickets, blocs, champs */
    --surface-2: #F7F6F3;       /* survol léger, zébrures */
    --trait: #D8D5CE;           /* filets décoratifs */
    --trait-fort: #B9B5AC;      /* perforations, bordures appuyées (décor) */
    --trait-champ: #7C8189;     /* bordure des champs : 3.5:1 sur papier */
    --encre: #15171A;           /* 15.9:1 sur papier */
    --encre-2: #454B53;         /* 7.8:1 papier · 8.8:1 blanc · 7.0:1 papier-2 (≥ 7:1 : lisible au soleil) */
    --encre-3: #5A6068;
    --encre-inverse: #FFFFFF;
    --voile: rgba(21, 23, 26, .62);

    /* Zones sombres */
    --sombre: #15171A;
    --sombre-2: #22262B;        /* acier */
    --sombre-3: #2D3238;
    --sombre-trait: #3A4047;
    --sombre-encre: #F2F1EE;    /* 15.9:1 */
    --sombre-encre-2: #A7ADB4;  /* 7.9:1 sur nuit · 6.7:1 sur acier */

    /* Action principale = signal */
    --action: #FF5A1F;          /* texte nuit dessus 5.8:1 ; jamais de texte blanc dessus */
    --action-survol: #FF7240;
    --action-encre: #15171A;
    --action-texte: #B23A0A;    /* orange lisible sur clair : 5.3:1 papier · 6.0:1 blanc */
    --action-voile: #FFE7DC;    /* action-texte dessus 5.1:1 */
    --action-sur-sombre: #FF5A1F; /* 5.8:1 sur nuit */

    /* Offre (pleine) / recherche (creuse) */
    --offre: #FF5A1F;
    --offre-encre: #15171A;
    --offre-texte: #B23A0A;
    --offre-fond: #FFE7DC;
    --offre-sur-sombre: #FF5A1F;
    --recherche: #2F6A9E;       /* 5.1:1 papier · 5.7:1 blanc · blanc dessus 5.7:1 */
    --recherche-encre: #FFFFFF;
    --recherche-texte: #2F6A9E;
    --recherche-fond: #E2ECF5;  /* recherche-texte dessus 4.8:1 */
    --recherche-sur-sombre: #7FB2E0; /* 8.0:1 sur nuit */

    --etiquette-offre-fond: var(--offre);
    --etiquette-offre-encre: var(--offre-encre);
    --etiquette-offre-bord: var(--offre);
    --etiquette-recherche-fond: var(--surface);
    --etiquette-recherche-encre: var(--recherche-texte);
    --etiquette-recherche-bord: var(--recherche);

    /* Statuts (fonctionnels, jamais décoratifs) */
    --succes: #2E7D55;  --succes-texte: #1D6B45;  --succes-fond: #E3EFE7;   /* 5.5:1 */
    --attention: #C7781A; --attention-texte: #8A4B06; --attention-fond: #FBEBD6; /* 5.8:1 */
    --danger: #D0463B;  --danger-texte: #B3261E;  --danger-fond: #FBE4E1;   /* 5.4:1 */
    --info: #5A6068;    --info-texte: #15171A;    --info-fond: #E7E5E0;     /* 14.3:1 */

    /* Badge « Entreprise vérifiée » */
    --verifie-fond: #15171A;
    --verifie-encre: #FFFFFF;
    --verifie-icone: #B23A0A;   /* bouclier sur clair */
    --verifie-icone-sombre: #FF5A1F;

    /* Focus */
    --focus: #15171A;
    --focus-sur-sombre: #FF5A1F;
    --focus-epaisseur: 3px;
    --focus-decalage: 2px;

    /* Zones : en-tête, héros, pied de page, bandeau d'appel (fond, fond-2, surface, encres, trait, focus, accent, recherche) */
    --entete-fond: #15171A; --entete-fond-2: #22262B; --entete-surface: #22262B; --entete-encre: #F2F1EE; --entete-encre-2: #A7ADB4;
    --entete-encre-3: #A7ADB4; --entete-trait: #3A4047; --entete-focus: #FF5A1F; --entete-accent: #FF5A1F; --entete-recherche: #7FB2E0;
    --heros-fond: #15171A; --heros-fond-2: #15171A; --heros-surface: #22262B; --heros-encre: #FFFFFF; --heros-encre-2: #C9CDD2;
    --heros-encre-3: #A7ADB4; --heros-trait: #3A4047; --heros-focus: #FF5A1F; --heros-accent: #FF5A1F; --heros-recherche: #7FB2E0;
    --pied-fond: #15171A; --pied-fond-2: #22262B; --pied-surface: #22262B; --pied-encre: #F2F1EE; --pied-encre-2: #A7ADB4;
    --pied-encre-3: #A7ADB4; --pied-trait: #3A4047; --pied-focus: #FF5A1F; --pied-accent: #FF5A1F; --pied-recherche: #7FB2E0;
    --appel-fond: #15171A; --appel-fond-2: #22262B; --appel-surface: #22262B; --appel-encre: #FFFFFF; --appel-encre-2: #A7ADB4;
    --appel-encre-3: #A7ADB4; --appel-trait: #3A4047; --appel-focus: #FF5A1F; --appel-accent: #FF5A1F; --appel-recherche: #7FB2E0;
    --entete-actif: #FF5A1F; --entete-survol: #22262B;
    --navbas-fond: #15171A;  --navbas-encre: #A7ADB4;  --navbas-trait: #3A4047;
    --navbas-actif-fond: #22262B; --navbas-actif-encre: #FFFFFF; --navbas-actif-icone: #FF5A1F; --navbas-focus: #FF5A1F;

    /* Polices */
    --police-titre: 'Archivo', 'Helvetica Neue', Arial, sans-serif;
    --police-texte: 'Archivo', 'Helvetica Neue', Arial, sans-serif;
    --police-donnees: 'JetBrains Mono', ui-monospace, 'SFMono-Regular', Menlo, monospace;
    --police-chiffres: 'JetBrains Mono', ui-monospace, 'SFMono-Regular', Menlo, monospace;
    --police-libelle: 'JetBrains Mono', ui-monospace, 'SFMono-Regular', Menlo, monospace;
    --titre-graisse: 800;
    --titre-largeur: 118%;
    --titre-interlettre: -.02em;
    --titre-interligne: 1.04;
    --titre-variation: normal;
    --accent-style: normal;
    --accent-variation: normal;
    --texte-taille: 1.0312rem;
    --texte-graisse: 400;
    --texte-interligne: 1.55;
    --gras: 600;
    --tres-gras: 700;
    --bouton-graisse: 700;
    --bouton-largeur: 108%;
    --etiquette-graisse: 700;
    --etiquette-largeur: 110%;
    --donnees-graisse: 500;
    --chiffres-graisse: 800;
    --chiffres-interlettre: -.03em;
    --chiffres-variation: normal;
    --ap-marge: -.14em;            /* apostrophe des milliers dans les gros chiffres */
    --libelle-casse: lowercase;

    /* Formes */
    --r-petit: 4px;
    --r-moyen: 6px;
    --r-etiquette: 4px;
    --r-bouton: 6px;
    --r-champ: 6px;
    --r-carte: 10px;
    --r-bloc: 10px;
    --r-tiroir: 16px;
    --ombre-1: 0 1px 0 rgba(21, 23, 26, .05);
    --ombre-2: 0 1px 0 rgba(21, 23, 26, .05), 0 22px 44px -22px rgba(21, 23, 26, .5);
    --ombre-3: 0 -12px 30px -10px rgba(0, 0, 0, .45), 0 30px 60px -20px rgba(0, 0, 0, .5);
    --ombre-vitrine: drop-shadow(0 28px 36px rgba(0, 0, 0, .45));
    --ombre-pin: 0 6px 14px -4px rgba(0, 0, 0, .7);
    --bouton-contour: 2px;

    /* Carte d'annonce (ticket de pesée) */
    --ca-fond: #FFFFFF;
    --ca-bord: #D8D5CE;
    --ca-bord-survol: #B9B5AC;
    --ca-bord-choisi: #15171A;
    --ca-rayon: 10px;
    --ca-ombre: none;
    --ca-ombre-survol: inset 0 0 0 1px #B9B5AC;
    --ca-filet: 4px;
    --ca-perfo: #D8D5CE;
    --ca-encoche: 9px;
    --ca-vol-taille: 34px;
    --ca-vol-taille-vitrine: 64px;
    --ca-vol-taille-grande: 104px;
    --releve-pointille: #B9B5AC;
    --releve-filet: #E7E5E0;

    /* Motifs */
    --motif-bord: repeating-linear-gradient(-45deg, #FF5A1F 0 9px, #15171A 9px 18px);
    --motif-bord-hauteur: 6px;
    --motif-heros: linear-gradient(rgba(255, 255, 255, .035) 1px, transparent 1px) 0 0 / 48px 48px, linear-gradient(90deg, rgba(255, 255, 255, .035) 1px, transparent 1px) 0 0 / 48px 48px;

    /* Carte (fond swisstopo gris, tuiles 128 px + zoomOffset 1) et pins */
    --carte-filtre: invert(1) grayscale(1) contrast(.56) brightness(.72);
    --carte-filtre-photo: grayscale(.55) brightness(.6) contrast(1.15);
    --carte-fond: #202326;
    --carte-eau: #2A3036;
    --carte-route: #4A5057;
    --carte-libelle: #C9CDD2;
    --carte-halo: #202326;
    --pin-offre-fond: #FF5A1F;  --pin-offre-encre: #15171A;  --pin-offre-bord: #15171A;
    --pin-recherche-fond: #15171A; --pin-recherche-encre: #FFFFFF; --pin-recherche-bord: #7FB2E0;
    --pin-rayon: 4px;
    --pin-choisi-anneau: #FFFFFF;
    --grappe-fond: #15171A;  --grappe-encre: #FFFFFF;
    --zone-couleur: #FF5A1F;

    /* Matière : profil de sol A/B/C */
    --sol-a: #4A3122;  --sol-a-encre: #F3E8DC;
    --sol-b: #8F5B36;  --sol-b-encre: #FFF3E8;
    --sol-c: #BCA98C;  --sol-c-encre: #15171A;
    --sol-vide: transparent;
    --sol-trait: #5A6068;
    --sol-mousse: #7F876B;

    /* Icônes au trait : 2 px, extrémités carrées, angles vifs */
    --ico-trait: 2px;
    --ico-bout: square;
    --ico-angle: miter;

    /* Logo */
    --logo-fond: #FF5A1F;
    --logo-1: #15171A;
}

/* ==========================================================================
   Éléments signature (uniquement sous [data-theme="chantier"])
   ========================================================================== */
:root[data-theme="chantier"] .titre,
:root[data-theme="chantier"] h1,
:root[data-theme="chantier"] h2 { font-stretch: var(--titre-largeur); }

/* Surtitre « lot » : numéro mono orange sur carré nuit */
:root[data-theme="chantier"] .surtitre b { display: inline-grid; place-items: center; min-width: 30px; height: 22px; padding: 0 6px; border-radius: var(--r-petit); background: var(--sombre); color: var(--action-sur-sombre); font-weight: 700; }
:root[data-theme="chantier"] .surtitre::before { display: none; }

/* Cote de plan sous le mot accentué du héros (« 4 km ») */
:root[data-theme="chantier"] .accent-cote { position: relative; white-space: nowrap; }
:root[data-theme="chantier"] .accent-cote::after {
    content: ""; position: absolute; left: 0; right: 0; bottom: -.08em; height: 10px;
    background:
        linear-gradient(currentColor, currentColor) 0 50% / 100% 2px no-repeat,
        linear-gradient(currentColor, currentColor) 0 0 / 2px 100% no-repeat,
        linear-gradient(currentColor, currentColor) 100% 0 / 2px 100% no-repeat;
}

/* Ticket de pesée : filet de type en tête, encoches + perforation, souche */
:root[data-theme="chantier"] .ca::before {
    border-top: var(--ca-filet) solid var(--ca-couleur-type);
    -webkit-mask: radial-gradient(circle var(--ca-encoche) at 0 calc(100% - var(--ca-pied-h)), #0000 97%, #000), radial-gradient(circle var(--ca-encoche) at 100% calc(100% - var(--ca-pied-h)), #0000 97%, #000);
    -webkit-mask-composite: source-in;
    mask: radial-gradient(circle var(--ca-encoche) at 0 calc(100% - var(--ca-pied-h)), #0000 97%, #000), radial-gradient(circle var(--ca-encoche) at 100% calc(100% - var(--ca-pied-h)), #0000 97%, #000);
    mask-composite: intersect;
}
:root[data-theme="chantier"] .ca-perfo { border-top: 2px dashed var(--ca-perfo); margin-inline: 6px; }
:root[data-theme="chantier"] .ca-vitrine .ca-bande,
:root[data-theme="chantier"] .ca-grande .ca-bande { display: block; height: 8px; background: var(--motif-bord); border-radius: var(--ca-rayon) var(--ca-rayon) 0 0; }
:root[data-theme="chantier"] .ca-vitrine::before,
:root[data-theme="chantier"] .ca-grande::before { border-top: 0; }
:root[data-theme="chantier"] .ca-vitrine .code-barres,
:root[data-theme="chantier"] .ca-grande .code-barres { display: block; }
:root[data-theme="chantier"] .ca-vitrine { filter: var(--ombre-vitrine); }
:root[data-theme="chantier"] .ca-vitrine .ca-ref,
:root[data-theme="chantier"] .ca-grande .ca-ref { color: var(--encre); font-weight: 600; }
:root[data-theme="chantier"] .ca-releve { border-top: 1.5px solid var(--encre); }
:root[data-theme="chantier"] .ca-releve dt { text-transform: lowercase; }

/* Pins : étiquettes carrées avec pointe (offre pleine orange, recherche creuse bleu clair) */
:root[data-theme="chantier"] .pin { border-radius: var(--pin-rayon); }

/* ---------- Accueil (bandeau, vitrine, étapes) ---------- */
:root[data-theme="chantier"] .acc-heros-motif { -webkit-mask-image: linear-gradient(100deg, transparent 25%, #000 70%); mask-image: linear-gradient(100deg, transparent 25%, #000 70%); }
:root[data-theme="chantier"] .acc-statut i, :root[data-theme="chantier"] .acc-vitrine-legende i { box-shadow: 0 0 0 4px var(--heros-trait); }
:root[data-theme="chantier"] .acc-vitrine .ca-vitrine { transform: rotate(-1.2deg); transform-origin: 60% 0; }
@media (max-width: 759px) { :root[data-theme="chantier"] .acc-vitrine .ca-vitrine { transform: none; } }

/* Étiquette « Recherche » sur fond sombre : contour bleu clair, fond transparent */
:root[data-theme="chantier"] :is(.heros, .zone-sombre, .pied, .appel) .etiquette-recherche:not(.ca *) { background: transparent; color: var(--recherche-sur-sombre); border-color: var(--recherche-sur-sombre); }
