/* Not' Caillou — direction « La Gazette » (maquettes : claude.ai/artifact/M4G89sdaBy31ELg2UsxFWd) */
:root{
  --fond:#F4F5F2;--encre:#15222E;--texte2:#33414E;--gris:#4A5763;--gris-clair:#6B7680;
  --trait:#D5DAD3;--trait2:#C9CFC7;--blanc:#FFFFFF;--accent:#3F6B4A;--lien:#2F5A3B;--lien-survol:#1E3D27;
  --ouvert-bg:#DDE8DF;--ouvert:#1E3D27;--clos-bg:#E3E6E9;--clos:#2E3A45;--attribue-bg:#DCE6F0;--attribue:#1B3550;
  --echeance-bg:#F6E7C8;--echeance:#5C3D06;--saviez:#E7EFE8;--sombre-texte:#D6DEE5;--neutre:#8FA0AF;
}
*{box-sizing:border-box}
body{margin:0;background:var(--fond);color:var(--encre);font-family:'Public Sans','Segoe UI',sans-serif;font-size:18px;line-height:1.55}
a{color:var(--lien)}a:hover{color:var(--lien-survol)}
h1,h2,.serif{font-family:'Newsreader',Georgia,serif;font-weight:500}
.petit{font-size:14px;color:var(--gris)}
.bandeau-apercu{background:var(--echeance-bg);color:var(--echeance);text-align:center;padding:8px 16px;font-size:15px;font-weight:600}

/* En-tête */
.entete{max-width:1200px;margin:0 auto;padding:24px 32px 0}
.entete-ligne{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 24px}
.logo{display:inline-flex;align-items:center;gap:12px;text-decoration:none;color:var(--encre)}
.logo:hover{color:var(--encre)}
.logo img{display:block;height:84px;width:auto}
.menu{display:flex;flex-wrap:wrap;gap:0 8px}
.menu a{padding:12px 14px;color:var(--encre);text-decoration:none;font-weight:500}
.menu a[aria-current]{font-weight:600;text-decoration:underline;text-underline-offset:8px;text-decoration-thickness:3px;text-decoration-color:var(--accent)}
.filet{margin-top:14px;border-top:3px solid var(--encre)}

/* Pied */
.pied{background:var(--encre);color:var(--sombre-texte);padding:24px 32px;font-size:14px}
.pied-dedans{max-width:1200px;margin:0 auto;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 24px}
.pied-logo img{display:block;height:44px;width:auto}
.pied a{color:var(--blanc)}

/* Mise en page */
.page{max-width:1200px;margin:0 auto;padding:36px 32px 72px}
.page-accueil{padding-top:40px}
.colonnes{display:flex;flex-wrap:wrap;gap:48px;align-items:flex-start}
.page .colonnes.sous-titre{margin-top:28px}
.principal{flex:999 1 640px;min-width:0}
.cote{flex:1 1 300px;max-width:340px;display:flex;flex-direction:column;gap:32px}
.titre-page{font-size:44px;line-height:1.1;margin:0}
.titre-rubrique{display:flex;align-items:baseline;justify-content:space-between;border-bottom:3px solid var(--encre);padding-bottom:8px}
.titre-rubrique h2{font-size:30px;margin:0}
.cote h2{font-size:24px;margin:0 0 4px;border-bottom:3px solid var(--encre);padding-bottom:6px}
.liste-simple{list-style:none;margin:0;padding:0}
.liste-simple li{padding:12px 0;border-bottom:1px solid var(--trait)}
.lien-suite{display:inline-block;margin-top:10px;font-weight:600;font-size:15px}
.bouton{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 22px;background:var(--encre);color:var(--blanc);border-radius:6px;text-decoration:none;font-weight:600;font-size:16px}
.bouton:hover{color:var(--blanc);background:#24384A}
.bouton.secondaire{background:transparent;border:1px solid var(--encre);color:var(--encre)}
.bouton.clair{background:var(--blanc);color:var(--encre)}
.bouton.clair:hover{background:#E9EDF0;color:var(--encre)}
.principal>.bouton{margin-top:20px}

/* Statuts : forme + texte, jamais la couleur seule */
.statut{display:inline-flex;align-items:center;gap:7px;padding:4px 10px;border-radius:4px;font-size:14px;font-weight:600}
.statut .forme{width:9px;height:9px;flex-shrink:0;background:currentColor}
.statut-ouvert{background:var(--ouvert-bg);color:var(--ouvert)}.statut-ouvert .forme{border-radius:50%}
.statut-clos{background:var(--clos-bg);color:var(--clos)}.statut-clos .forme{border-radius:1px}
.statut-attribue{background:var(--attribue-bg);color:var(--attribue)}.statut-attribue .forme{border-radius:1px;transform:rotate(45deg)}
.statut.nu{background:none;padding:0}
.relire{display:inline-flex;padding:4px 10px;border-radius:4px;font-size:14px;font-weight:600;background:#C58A1B;color:#2B1B00}
.a-relire{outline:2px dashed #C58A1B;outline-offset:4px}

/* Accueil : À la une (carrousel sans JavaScript) */
.une{max-width:1200px;margin:24px auto 0;padding:0 32px}
.une-rail{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;border-radius:6px;background:var(--encre)}
.diapo{flex:0 0 100%;scroll-snap-align:start;color:var(--blanc);padding:40px 48px 32px;display:flex;flex-direction:column;gap:14px;min-height:340px}
.diapo-haut{display:flex;gap:10px;flex-wrap:wrap;align-items:center;font-size:14px;font-weight:600}
.surtitre{color:#9CC5A6;letter-spacing:.6px;text-transform:uppercase}
.diapo-lieu{color:var(--sombre-texte);font-weight:500}
.diapo h2{font-size:42px;line-height:1.1;margin:0;max-width:860px}
.diapo p{margin:0;color:var(--sombre-texte);max-width:760px}
.diapo-bas{margin-top:auto;padding-top:12px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px}
.diapo-actions{display:flex;flex-wrap:wrap;align-items:center;gap:16px}
.diapo-limite{color:var(--echeance-bg);font-weight:600;font-size:16px}
.diapo-nav{display:flex;align-items:center;gap:10px;font-size:15px}
.diapo-nav a{display:inline-flex;align-items:center;min-height:44px;padding:0 16px;border:1px solid var(--neutre);border-radius:6px;color:var(--blanc);text-decoration:none;font-weight:500}
.diapo-nav span{color:var(--sombre-texte);min-width:48px;text-align:center}

/* Brèves du JO */
.breves{list-style:none;margin:0;padding:0}
.breve{display:grid;grid-template-columns:64px minmax(0,1fr);gap:6px 20px;align-items:start;padding:16px 0;border-bottom:1px solid var(--trait)}
.breve-date{font-size:15px;color:var(--gris);padding-top:1px}
.breve-theme{font-size:13px;font-weight:600;color:var(--ouvert)}
.breve p{margin:2px 0 0;font-size:18px;line-height:1.5}
.pdf{font-size:13px;color:var(--gris);white-space:nowrap}
.jour{font-size:24px;margin:8px 0 0;padding:14px 0 8px;border-bottom:3px solid var(--encre)}
.breves-jour .breve{grid-template-columns:minmax(0,1fr)}

/* Colonne : échéances, attributions, actes */
.echeance{display:flex;gap:14px;align-items:center}
.cal{flex:0 0 56px;text-align:center;background:var(--echeance-bg);color:var(--echeance);border-radius:4px;padding:4px 0;line-height:1.1}
.cal b{display:block;font-size:22px;font-weight:600}.cal small{font-size:12px;font-weight:600;text-transform:uppercase}
.echeance a{font-size:16px;line-height:1.35;color:var(--encre)}
.quand{font-size:13px;color:var(--gris)}
.mini-attrib .objet{font-size:16px;margin:2px 0}
.mini-attrib .qui{font-size:15px}
.acte .titre{font-size:16px;line-height:1.4;margin:2px 0 4px}
.acte a{font-size:14px;font-weight:600}

/* Filtres (pastilles) */
.filtres{margin-top:24px;display:flex;flex-direction:column;gap:12px}
.filtre-ligne{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.filtre-ligne>span{font-size:14px;font-weight:600;color:var(--gris);min-width:64px}
.pastille{display:inline-flex;align-items:center;min-height:44px;padding:0 16px;border-radius:22px;border:1px solid var(--trait2);background:var(--blanc);color:var(--encre);text-decoration:none;font-size:16px;font-weight:500}
.pastille[aria-current]{background:var(--encre);color:var(--blanc);border-color:var(--encre)}
.pastille:hover{border-color:var(--encre);color:var(--encre)}.pastille[aria-current]:hover{color:var(--blanc)}

/* Liste des marchés */
.marches{list-style:none;margin:28px 0 0;padding:0;border-top:3px solid var(--encre)}
.marches li{border-bottom:1px solid var(--trait2)}
.marche{display:grid;grid-template-columns:160px minmax(0,1fr) 140px;gap:28px;padding:24px 0;align-items:start;color:var(--encre);text-decoration:none}
.marche:hover{color:var(--encre)}.marche:hover .marche-titre{text-decoration-thickness:2px}
.date-bloc{border-radius:4px;padding:10px 12px;line-height:1.25}
.date-bloc small{display:block;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}
.date-bloc b{display:block;font-size:19px;font-weight:600;margin-top:2px}
.date-ouvert{background:var(--echeance-bg);color:var(--echeance)}.date-clos{background:var(--clos-bg);color:var(--clos)}.date-attribue{background:var(--attribue-bg);color:var(--attribue)}
.marche-haut{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;font-size:14px;font-weight:600}
.marche-lieu{color:var(--gris);font-weight:500}
.marche-titre{display:block;font-family:'Newsreader',Georgia,serif;font-weight:500;font-size:28px;line-height:1.15;margin-top:6px;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px}
.marche-resume{display:block;font-size:17px;color:var(--texte2);margin-top:6px}
.marche-lire{color:var(--lien);font-weight:600;font-size:16px;text-align:right;padding-top:4px}
.vide{padding:24px 0;color:var(--gris)}

/* Pagination */
.pagination{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:28px}
.pagination a,.pagination span{display:inline-flex;align-items:center;justify-content:center;min-height:44px;font-size:16px}
.pagination .num{min-width:44px;border-radius:6px;border:1px solid var(--trait2);background:var(--blanc);color:var(--encre);text-decoration:none}
.pagination .num[aria-current]{background:var(--encre);color:var(--blanc);border-color:var(--encre);font-weight:600}
.pagination .sens{padding:0 14px;color:var(--encre);font-weight:600;text-decoration:none}
.pagination .inactif{padding:0 14px;color:var(--gris-clair);font-weight:400}
.pagination .compte{display:none;color:var(--texte2)}

/* Attributions : tableau */
.tableau-boite{margin-top:28px;overflow-x:auto;background:var(--blanc);border:1px solid var(--trait);border-radius:6px}
.tableau{width:100%;min-width:900px;border-collapse:collapse;font-size:16px}
.tableau th{text-align:left;padding:14px 18px;font-size:14px;font-weight:600;color:var(--texte2);background:#EEF0EC}
.tableau td{padding:16px 18px;border-top:1px solid #E1E5DF;vertical-align:top}
.tableau .num-col{text-align:right;white-space:nowrap;font-weight:600}
.tableau .date-col{white-space:nowrap;color:var(--texte2)}
.tableau .ent{font-weight:600}

/* Fiche de marché */
.fiche{max-width:780px;margin:0 auto;padding:24px 32px 72px;display:flex;flex-direction:column;gap:32px}
.retour{font-size:15px;font-weight:600;text-decoration:none}
.tete{display:flex;flex-direction:column;gap:14px}
.etiquettes{display:flex;gap:10px;flex-wrap:wrap;align-items:center;font-size:14px;font-weight:600}
.lieu{color:var(--texte2);font-weight:500}
.tete h1{font-size:46px;line-height:1.1;margin:0}
.chapeau{font-size:20px;line-height:1.55;color:var(--texte2);margin:0}
.tete .petit{margin:0}
.illustration{margin:0;display:flex;flex-direction:column;gap:8px}
.illustration img{display:block;width:100%;height:auto;background:var(--blanc);border:1px solid var(--trait);border-radius:6px}
.illustration figcaption{font-size:13px;color:var(--gris)}
.chiffres{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.chiffre{background:var(--blanc);border:1px solid var(--trait);border-radius:6px;padding:14px 16px}
.chiffre .libelle{font-size:13px;color:var(--gris)}
.chiffre .valeur{font-size:26px;font-weight:600;line-height:1.2;margin-top:4px}
.chiffre .valeur.longue{font-size:20px}
.chiffre.echeance-carte{background:var(--echeance-bg);border-color:var(--echeance-bg);color:var(--echeance)}
.chiffre.echeance-carte .libelle{color:var(--echeance)}.chiffre.echeance-carte .valeur{font-size:24px}
.bloc{display:flex;flex-direction:column;gap:12px}
.bloc h2{font-size:30px;margin:0}
.bloc p{font-size:18px;line-height:1.7;margin:0}
.bloc p.intro{font-size:16px;line-height:1.65;color:var(--texte2)}
.boite{background:var(--blanc);border:1px solid var(--trait);border-radius:6px;padding:22px 24px;display:flex;flex-direction:column;gap:14px}
.boite h3{font-size:18px;font-weight:600;margin:0}
.boite p{font-size:16px;line-height:1.65;margin:0}
.mesures{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:10px}
.mesure{border-top:3px solid var(--accent);padding-top:8px}.mesure.secondaire{border-top-color:var(--neutre)}
.mesure .libelle{font-size:13px;color:var(--gris)}.mesure .valeur{font-size:20px;font-weight:600}
.saviez{background:var(--saviez);border-radius:6px;padding:22px 24px;display:flex;flex-direction:column;gap:8px;color:var(--ouvert)}
.saviez h3{font-size:18px;font-weight:600;margin:0;display:flex;align-items:center;gap:8px}
.saviez p{font-size:17px;line-height:1.65;margin:0}
.lots{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.lots li{background:var(--blanc);border:1px solid var(--trait);border-radius:6px;padding:10px 14px;display:flex;gap:12px;align-items:baseline;font-size:16px}
.lots .n{font-size:13px;font-weight:600;color:var(--lien);min-width:22px}
.criteres{display:flex;flex-direction:column;gap:12px}
.critere-ligne{display:flex;justify-content:space-between;font-size:16px}.critere-ligne b{font-weight:600}
.barre{height:10px;background:#E1E5DF;border-radius:5px;overflow:hidden;margin-top:4px}.barre div{height:100%;background:var(--accent);border-radius:5px}
.calendrier{display:flex;flex-direction:column}
.etape{display:flex;gap:14px;align-items:center;padding:14px 0;border-bottom:1px solid var(--trait)}
.point{width:12px;height:12px;border-radius:50%;flex-shrink:0;background:var(--neutre)}
.point.fait{background:var(--accent)}.point.prochain{background:#C58A1B}
.etape .quoi{flex:1;font-size:17px}.etape .quand{font-size:16px;color:var(--texte2);text-align:right}
.boutons{display:flex;gap:10px;flex-wrap:wrap;padding-top:4px}
.note{font-size:13px;line-height:1.6;color:var(--gris);margin:0;border-top:1px solid var(--trait);padding-top:16px}

/* À propos */
.texte{max-width:780px}.texte p{line-height:1.7}

/* Téléphone */
@media (max-width:720px){
  .entete{padding:16px 16px 0}
  .logo img{height:60px}
  .entete-ligne{display:block}
  .menu{margin-top:12px;border-top:3px solid var(--encre);border-bottom:1px solid var(--trait2);flex-wrap:nowrap;gap:24px;overflow-x:auto}
  .menu a{flex:0 0 auto;white-space:nowrap;padding:13px 0;font-size:16px}
  .menu a[aria-current]{text-underline-offset:5px}
  .filet{display:none}
  .page{padding:28px 16px 48px}
  .titre-page{font-size:36px}
  .une{padding:0 16px;margin-top:16px}
  .diapo{padding:24px 20px 20px;min-height:420px}
  .diapo h2{font-size:30px;line-height:1.12}
  .diapo p{font-size:16px}
  .diapo-bas,.diapo-actions{flex-direction:column;align-items:stretch}
  .diapo-nav{display:grid;grid-template-columns:1fr auto 1fr}
  .diapo-nav a{justify-content:center}
  .titre-rubrique h2{font-size:26px}
  .breve{grid-template-columns:minmax(0,1fr)}
  .breve p{font-size:17px}
  .principal>.bouton{display:flex}
  .cote{max-width:none}
  .marche{grid-template-columns:minmax(0,1fr);gap:12px}
  .date-bloc{justify-self:start}
  .marche-titre{font-size:24px}
  .marche-lire{text-align:left}
  .pagination .num{display:none}
  .pagination .compte{display:inline-flex}
  .tableau-boite{background:none;border:0;overflow:visible}
  .tableau{min-width:0}
  .tableau thead{display:none}
  .tableau,.tableau tbody,.tableau tr,.tableau td{display:block;width:100%}
  .tableau tr{background:var(--blanc);border:1px solid var(--trait);border-radius:6px;padding:12px 16px;margin-bottom:12px}
  .tableau td{border:0;padding:3px 0;text-align:left!important}
  .tableau td[data-libelle]::before{content:attr(data-libelle) " : ";color:var(--gris);font-weight:400;font-size:14px}
  .fiche{padding:20px 16px 48px;gap:28px}
  .tete h1{font-size:34px}
  .chapeau{font-size:18px}
  .chiffres{grid-template-columns:repeat(2,minmax(0,1fr))}
  .lots{grid-template-columns:minmax(0,1fr)}
  .bloc h2{font-size:26px}
  .pied{padding:22px 16px}
}
