/* Avis de concours, refonte 2026 : complete css/annuaire-v2.css (memes couleurs et composants .ann-*).
   Toutes les regles sont limitees a .cnc pour ne rien changer au reste du site. */

/* l'ancienne feuille style-avis-de-concours.css met les h2 en majuscules avec 30px de marge */
.cnc h1, .cnc h2, .cnc h3 { padding: 0; text-transform: none; font-family: inherit; }
.cnc-hero h1 { color: var(--ann-bleu-fonce); }

/* ----- message "aucun concours ouvert" ----- */
.cnc-avis-archive { margin: 0 0 24px; padding: 14px 16px; background: #fff8e8; border: 1px solid #f3d9a4; border-left: 4px solid var(--ann-orange);
	border-radius: 0 var(--ann-rayon) var(--ann-rayon) 0; font-size: 14.5px; line-height: 1.55; color: #5a4a2a; }
.cnc-avis-archive strong { color: #3d2f12; }

/* ----- sections de l'accueil ----- */
.cnc-section { margin: 0 0 30px; }
.cnc-section-tete { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin: 0 0 12px; }
.cnc-section-tete .ann-titre-section { margin: 0; }
.cnc .cnc-tous { font-size: 14px; font-weight: 600; white-space: nowrap; }
.cnc-nb { display: inline-block; margin-left: 4px; padding: 2px 9px; border-radius: 999px; background: #e3f4ea; color: #1d6b3f; font-size: 13px; font-weight: 600; vertical-align: 3px; }

/* ----- niveaux d'etudes ----- */
.cnc-niveaux { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 12px; list-style: none; margin: 0; padding: 0; }
.cnc .cnc-niveaux a { display: flex; flex-direction: column; gap: 4px; height: 100%; padding: 14px 16px; background: #fff; border: 1px solid var(--ann-bord);
	border-top: 4px solid var(--ann-bleu); border-radius: var(--ann-rayon); color: var(--ann-texte); }
.cnc .cnc-niveaux li:nth-child(3n+2) a { border-top-color: var(--ann-orange); }
.cnc .cnc-niveaux a:hover { text-decoration: none; border-color: var(--ann-bleu); box-shadow: 0 4px 14px rgba(15, 79, 134, .1); }
.cnc-niveau-nom { font-size: 17px; font-weight: 700; color: var(--ann-bleu-fonce); line-height: 1.25; }
.cnc-niveau-detail { font-size: 13px; color: var(--ann-gris); line-height: 1.4; }
.cnc-niveau-nb { margin-top: auto; padding-top: 6px; font-size: 13.5px; color: var(--ann-gris); }
.cnc-niveau-nb strong { color: #1d6b3f; }

/* ----- carte d'un avis ----- */
.cnc-liste { display: grid; gap: 10px; max-width: 860px; }
.cnc-carte { margin: 0; }
.cnc .cnc-carte-lien { display: block; padding: 14px 16px; background: #fff; border: 1px solid var(--ann-bord); border-left: 4px solid #c9d2dc;
	border-radius: var(--ann-rayon); color: var(--ann-texte); }
.cnc .cnc-carte-ouverte .cnc-carte-lien { border-left-color: #2e9e5b; }
.cnc .cnc-carte-lien:hover { text-decoration: none; border-color: var(--ann-bleu); }
.cnc .cnc-carte-lien:hover .cnc-carte-titre { text-decoration: underline; }
.cnc .cnc-carte-titre { margin: 0 0 4px; font-size: 16px; line-height: 1.35; font-weight: 700; color: var(--ann-bleu-fonce); overflow-wrap: anywhere; }
.cnc-carte-texte { margin: 0; font-size: 14px; line-height: 1.5; color: var(--ann-gris); overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.cnc-carte-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; margin: 10px 0 0; font-size: 13px; }
.cnc-publie { color: var(--ann-gris); }

/* statut : vert = ouvert, gris = ferme */
.cnc-statut { display: inline-flex; align-items: center; gap: 6px; height: 24px; padding: 0 10px; border-radius: 999px; font-size: 12.5px; font-weight: 600; white-space: nowrap; }
.cnc-statut::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
.cnc-statut-ouvert { background: #e3f4ea; color: #1d6b3f; }
.cnc-statut-ferme, .cnc-statut-inconnu { background: #eef1f5; color: #4f5b67; }
.cnc-nouveau { background: #fdf0e1; color: #9a4f00; }

/* ----- page d'un niveau ----- */
.cnc-entete h1 { overflow-wrap: anywhere; }

/* ----- fiche d'un avis ----- */
.cnc-fiche-tete { margin: 0 0 18px; padding: 20px 24px; background: var(--ann-fond); border: 1px solid var(--ann-bord); border-radius: 14px; }
.cnc-fiche-tete .cnc-carte-meta { margin: 0 0 10px; }
.cnc-fiche-tete h1 { margin: 0; font-size: 25px; line-height: 1.25; font-weight: 700; color: var(--ann-bleu-fonce); overflow-wrap: anywhere; }
.cnc-fiche-dates { margin: 10px 0 0; font-size: 15px; color: var(--ann-gris); }
.cnc-fiche-dates strong { color: var(--ann-texte); }

.cnc-texte { font-size: 15px; line-height: 1.6; overflow-wrap: anywhere; }
.cnc-texte p { margin: 0 0 10px; }
.cnc-texte p:last-child { margin-bottom: 0; }
.cnc-texte ul, .cnc-texte ol { margin: 0 0 10px; padding-left: 22px; }
.cnc-texte h2, .cnc-texte h3, .cnc-texte h4 { margin: 14px 0 6px; font-size: 16px; color: var(--ann-texte); }
.cnc-texte table { display: block; max-width: 100%; overflow-x: auto; border-collapse: collapse; margin: 0 0 10px; font-size: 14px; }
.cnc-texte td, .cnc-texte th { border: 1px solid var(--ann-bord); padding: 5px 8px; vertical-align: top; }

.cnc-points { margin: 0; padding: 0; list-style: none; font-size: 14.5px; line-height: 1.5; }
.cnc-points li { position: relative; padding: 7px 0 7px 22px; border-top: 1px solid #eef1f5; overflow-wrap: anywhere; }
.cnc-points li:first-child { border-top: 0; }
.cnc-points li::before { content: ""; position: absolute; left: 4px; top: 15px; width: 7px; height: 7px; border-radius: 50%; background: var(--ann-bleu); }
.cnc-pieces li::before { border-radius: 2px; background: var(--ann-orange); }

.cnc-epreuves { display: flex; flex-wrap: wrap; gap: 6px; }
.cnc-epreuves span { display: inline-block; padding: 2px 10px; border-radius: 999px; background: var(--ann-bleu-pale); color: var(--ann-bleu-fonce); font-size: 13px; font-weight: 600; }
.cnc-essentiel .ann-faits { grid-template-columns: 130px 1fr; }
.cnc-essentiel .ann-actions { flex-direction: column; }
.cnc-essentiel .ann-actions .ann-btn { white-space: normal; text-align: center; padding: 10px 16px; }
.cnc-contact { margin: 0; font-size: 14px; line-height: 1.6; overflow-wrap: anywhere; }
.cnc-alerte { background: var(--ann-bleu-pale); border-color: #cfe2f3; }
.cnc-alerte p { margin: 0 0 12px; font-size: 14px; color: var(--ann-gris); }

/* ----- messages et formulaire "Proposer un concours" ----- */
.cnc-message { margin: 0 0 18px; padding: 14px 16px; border-radius: var(--ann-rayon); font-size: 14.5px; line-height: 1.55; max-width: 820px; }
.cnc-message ul { margin: 6px 0 0; padding-left: 20px; }
.cnc-message-ok { background: #e3f4ea; border: 1px solid #b9e0c8; color: #1d4d31; }
.cnc-message-erreur { background: #fdecec; border: 1px solid #f3c2c2; color: #7a1f1f; }
.cnc-form { max-width: 820px; }
.cnc-form fieldset.ann-bloc { min-width: 0; }
.cnc-form legend { padding: 0 6px; margin-left: -6px; font-size: 17px; font-weight: 700; color: var(--ann-texte); }
.cnc-form p { margin: 0 0 14px; }
.cnc-form label { display: block; margin: 0 0 5px; font-size: 14px; font-weight: 600; color: var(--ann-texte); }
.cnc-form small { display: block; margin-top: 4px; font-size: 12.5px; color: var(--ann-gris); }
.cnc-form input[type=text], .cnc-form input[type=email], .cnc-form input[type=url], .cnc-form input[type=date],
.cnc-form input[type=number], .cnc-form select, .cnc-form textarea { display: block; width: 100%; min-height: 44px; padding: 9px 12px;
	border: 1.5px solid #c9d2dc; border-radius: 8px; background: #fff; color: var(--ann-texte); font-family: inherit; font-size: 15px; line-height: 1.4; }
.cnc .cnc-form input, .cnc .cnc-form select, .cnc .cnc-form textarea { margin: 0; float: none; }
.cnc .cnc-form textarea { resize: vertical; height: auto; min-height: 96px; }
.cnc .cnc-form textarea#cnc-texte-avis { min-height: 170px; }
.cnc-form input:focus, .cnc-form select:focus, .cnc-form textarea:focus { border-color: var(--ann-bleu); outline: none; box-shadow: 0 0 0 3px rgba(26, 115, 184, .18); }
.cnc-form input[type=file] { font-size: 14px; max-width: 100%; }
.cnc-champs-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 0 14px; }
.cnc-form .cnc-choix { margin: 0 0 14px; padding: 0; border: 0; min-width: 0; }
.cnc-form .cnc-choix legend { margin: 0 0 5px; padding: 0; font-size: 14px; font-weight: 600; }
.cnc-form .cnc-choix label { display: inline-flex; align-items: center; gap: 6px; min-height: 40px; margin: 0 16px 0 0; font-weight: 400; cursor: pointer; }
.cnc-form .cnc-choix input { width: 18px; height: 18px; margin: 0; }
.cnc-piege { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.cnc-envoi .ann-btn { min-width: 220px; }

/* tablette et telephone : l'essentiel (dates, epreuves, boutons) avant la longue presentation */
@media (max-width: 990px) {
	.cnc-fiche .ann-fiche-grille { display: flex; flex-direction: column; gap: 0; }
	.cnc-fiche .ann-fiche-grille > aside { order: -1; }
	.cnc-fiche .cnc-alerte { display: none; }
}
@media (max-width: 760px) {
	.cnc-niveaux { grid-template-columns: 1fr 1fr; gap: 8px; }
	.cnc .cnc-niveaux a { padding: 12px; }
	.cnc-niveau-nom { font-size: 15.5px; }
	.cnc-niveau-detail { display: none; }
	.cnc .cnc-carte-lien { padding: 12px 14px; }
	.cnc .cnc-carte-titre { font-size: 15px; }
	.cnc-fiche-tete { padding: 16px; }
	.cnc-fiche-tete h1 { font-size: 21px; }
	.cnc-essentiel .ann-faits { grid-template-columns: 1fr; }
	.cnc-champs-2 { grid-template-columns: 1fr; }
	.cnc-envoi .ann-btn { width: 100%; }
	.cnc-hero .ann-actions .ann-btn { flex: 1 1 100%; white-space: normal; text-align: center; padding: 10px 16px; }
}
