/* --------------------------------------------------------------

   theme.css
   Theme par defaut de SPIP 3.3
   collectif SPIP

-------------------------------------------------------------- */

/* ------------------------------------------
/* Habillage des balises HTML
/* ------------------------------------------ */

/* Elements principaux
------------------------------------------ */
body {font-family: "Source Sans Pro" ,"Roboto", "Open Sans", sans-serif; color:#222222;background:#ffffff; font-size: 17px;} 

h1,.h1,
h2,.h2 { line-height: 1.2;}
h2,.h2 { color: #c60303;}
h3,.h3 { color: #c60303;}


/* Hyperliens
---------------------------------------------- */
a, a:visited { color: #c60303; text-decoration: none;  }
 
a:focus, 
a:hover, 
a:active { background-color:#C90; color:#fff; text-decoration:none; }

h3 aa:active {text-decoration: underline !important;}

/* Citations, code et poesie
---------------------------------------------- */
blockquote {
	min-height: 40px;
	background: url(img/quote.png) no-repeat;
	border:none;
	padding-left:3em;
}

blockquote:before { content:"";  /* Ã  terme supprimer l'image quote.png et reintegrer le bon sur blocquote.spip_poesie */ }

blockquote.spip_poesie {
	background-image:none;
}

.spip_code,
.spip_cadre {
	font-family: 'Courier New', Courier, monospace;
	margin:0 .2em;
}

.spip_code {
	border: 1px solid #dfdfcd;
	background-color: rgba(227,227,211,0.5);
	color: #3b3b25;
	text-shadow: 0 1px 0 #fdfdfc;
}

.spip_cadre {
	background:#333;
	color:#fff;
	border-radius:0.5em;
	border:0;
}

textarea.spip_code,
textarea.spip_cadre {
	padding: 1em;
	width:98%;
}

/* ------------------------------------------
/* Habillage des elements du contenu
/* ------------------------------------------ */

/* fil d'ariane */
.arbo { clear: both; font-size: .9em; color: #666; }
.arbo * { font-weight: normal; }
.arbo a,
.arbo a:visited { color: #666; }
.arbo a:hover,
.arbo a:focus { background: #666; color: white; text-decoration:none; }

.cartouche { margin-bottom: 1.5em; }
.cartouche h1 { margin-bottom: 0; }
.cartouche p { margin-bottom: 0; }
.surtitre{}
.soustitre {}
abbr.published { border: 0; }
@media print {
	abbr[title].published:after { content: ""; }
	abbr[title].dtreviewed:after { content: ""; }
}
.info-publi { margin: 1.5em 0 0; font-size: .9em; font-style: italic; }
html[dir="rtl"] .info-publi { font-style: normal; }
.traductions { font-size: .9em; }
.traductions a[hreflang]:after { content: ''; }

.chapo { font-weight: bold; }
.texte {}
.hyperlien { display: block; padding: 1.5em 50px; background: #EEE url(img/def.png) no-repeat 25px 1.9em; font-weight: bold; }
.ps, .notes { margin-bottom: 1.5em; }
.notes { clear: both; font-size: 1.1em; }

/* Listes et tableaux */
.spip-puce { color: #db1762; }
dl.spip dt { background: url(img/def.png) no-repeat 25px .5em; }
dl.spip dd {}

table.spip {margin:1em 0;}
table.spip caption {  background: none; border-bottom: 1px solid; text-align: left; font-weight: bold; }
table.spip thead th { background: none; border: 1px solid; border-width: 1px 0; }
table.spip tbody tr th,
table.spip tr td { background: none; }
table.spip tbody tr.odd th,
table.spip tr.odd td { background: #EEE; }
table.spip tr:hover td {background: #AAD;}
table.spip tfoot { border-top: 1px solid; }

/* Formulaires : variantes et cas particuliers
----------------------------------------------- */
.formulaire_spip { margin-bottom: 1.5em; }
.formulaire_spip label { display: block; }
.formulaire_spip input.text,
.formulaire_spip select,
.formulaire_spip textarea {
	width: 100%;
	box-sizing: border-box;
	padding:.25em;
	border:solid 1px #ccc;
	border-radius:4px;
}

.formulaire_spip img.ui-datepicker-trigger {
	position:relative;
	max-width: 1.5em;
	margin-top: -0.25em;
	margin-left: -1.75em;
}

.formulaire_spip .choix label {
	display: inline;
}

.formulaire_recherche label { display: block; }
.erreur_message { display: block; }

/* Selection des langues */
.formulaire_menu_lang { margin: 0; padding: 0; background: none; }

/* Formulaires de recherche (site / petitions) */
.formulaire_recherche input.text { 
	width: auto;
	height: 32px;
	padding-left: 20px;
	vertical-align: middle;
	border:solid 1px #aaa;
	background:#fff url(img/recherche.png) no-repeat left center;
	-webkit-border-radius: 0.25em 0 0 0.25em;
	border-radius: 0.25em 0 0 0.25em;
}
.formulaire_recherche input.btn,
.formulaire_recherche input.submit {
	width: auto;
	height: 32px;
	vertical-align: middle;
	border:solid 1px #aaa;
	border-left: none;
	-webkit-border-radius: 0 0.25em 0.25em 0;
	border-radius: 0 0.25em 0.25em 0;
	text-align: center;
}

/* Choix des mots-clefs */
.formulaire_spip .saisie_mots_forum fieldset {margin-left: 0}
ul.choix_mots { display: flex; margin: 0; padding: 0; list-style: none; flex-wrap: wrap}
ul.choix_mots li { display: flex; flex-basis: 30%; max-width: 30%; padding: 0.25em 0.5em; align-items: center}
ul.choix_mots li label { font-weight: normal; font-size: 1em; line-height: 1.25; margin-left: 0.25em}

.formulaire_spip .bugajaxie { display: none; } /*IE/Win*/

/* Formulaire de login dans une page */
.formulaire_login .editer-groupe .editer { clear: left; }
.formulaire_login .editer_password .details { display: block; }
.formulaire_login #spip_logo_auteur { float: right; }

/* Fomulaire de contact */
.formulaire_ecrire_auteur {}
.formulaire_ecrire_auteur .saisie_sujet_message_auteur input.text { width: 100%; }


/* Habillage des portfolios
---------------------------------------------- */
.documents_portfolio li {display:inline;margin:0;padding:0;}
.documents_portfolio a {display:inline-block;padding:10px;margin:5px;border:1px solid #ccc !important;color:#EEE;background:#fff;box-shadow: 5px 7px 5px 2px rgba(85,85,85,0.3);}
.documents_portfolio a:hover {color:#999;opacity:0.8;}
.documents_portfolio img {margin:0;}

.documents_joints .descriptif p {margin:0;}

/* Habillage des forums
---------------------------------------------- */
.comments  {margin-top:2em;padding:1em 0;border-top:10px solid #EEE;}
.comments  ul {list-style:none;}
.comment-item {margin:0.5em 0 0 0;padding:0.5em 0 0 0;border-top:1px solid #EEE;}
.comments-items .comments-items {margin-left: 25px;padding-left: 20px;border-left:5px solid #ddd;}
.comment-meta { margin: 0; font-weight: bold; }
.comment-meta small { font-size: 100%; }
.comment-meta abbr { border: 0; }
.comment-meta a { text-decoration:none;}
.comment-content .hyperlien { padding: 0; background: transparent; font-weight: normal; }

/* Formulaire de forum */
.forum-titre  {margin-top:2em;padding:1em 0;border-top:10px solid #EEE;}
.formulaire_forum {}
.formulaire_forum form+form{margin-top:1em;}
.formulaire_forum legend { display: none; }
.formulaire_forum .saisie_titre input.text { width: 100% }
.formulaire_forum .session_qui { display: none; }
.formulaire_forum .saisie_texte .explication { font-size: .9em; font-style: italic; margin: 0.5em 0; }
html[dir="rtl"] .formulaire_forum .saisie_texte .explication { font-style: normal; }
.formulaire_forum .boutons { margin-top: 1em; }

/* Habillage des petitions
---------------------------------------------- */
#signatures td.signature-date small { white-space: nowrap; }
#signatures .formulaire_recherche { margin: 1.5em auto; text-align: center; }

/* Formulaire de signature */
.formulaire_signature {}

/* ------------------------------------------
/* Sous-navigation et autres menus
/* ------------------------------------------ */

/* Habillage general des menus de nav */
.menu { clear: both; margin-bottom: 1.5em; text-align: left; }
.menu p {}
.menu ul { margin-bottom: 1.5em; }
.menu ul li {}
.menu ul li ul { margin-left: 1.5em; list-style: circle; }
 
/* Pagination */
.pagination .pagination-items {list-style: none;display: flex;flex-wrap: wrap; flex-direction: row; justify-content: center}
.pagination .pagination-item {  margin: 0em; flex-basis: 7.5%; display: flex;align-items: center;}
.pagination .pagination_precedent_suivant .pagination-item { flex-basis: auto;}
.pagination .pagination-item + .pagination-item {  margin-left: 0.5em }
.pagination .pagination-item-label { display:block; flex-basis: 100%; background: #f0f0f0; text-decoration: none; padding:.5em; border-radius:.25em; text-align: center;}
.pagination .on .pagination-item-label,
.pagination a.pagination-item-label:hover,
.pagination a.pagination-item-label:focus,
.pagination a.pagination-item-label:active { background: #c41558; color: #fff; }
.pagination .on .pagination-item-label {font-weight: bold;}
.pagination .pagination_precedent_suivant .disabled {visibility: hidden}
.pagination .pagination-item.disabled {}
.pagination .pagination-item.disabled .pagination-item-label {color:#888; font-weight: normal;}
.menu_articles .pagination strong {font-size:1em;}

/* Listes d'articles et extraits introductifs */
.menu_articles li { clear: both; margin-bottom: 1.5em; }
.menu_articles li h3,
.menu_articles li h2 { margin: 0 0 0.2em 0; }
.menu_articles li p { margin: 0; }
.menu_articles li small {  }
.menu_articles li .enclosures { float: right; text-align: right; max-width: 60%; margin: 0; }
.menu_articles li div {margin-top:0.2em;margin-bottom:0.5em;}
.menu_articles a {text-decoration:none;}
.menu_articles strong {font-size:1.2em;}
 
.menu_breves li {}
.menu_breves li h3 { margin: 0; }

.aside h2 {border-bottom:3px solid #EEE;padding-bottom:.1em;}
.aside li {margin:1em 0;}
.aside a {text-decoration:none;}

.footer a {text-decoration:none;}
.footer a.spip_out:after { content: ""; }

/* ------------------------------------------
/* Autres medias
/* ------------------------------------------ */

@media print {

	/*  Ne pas imprimer */
	.spip-admin,
	.spip-admin-float,
	.spip-previsu { display: none; }
	.repondre { display: none; }

	/* Souligner et expliciter les liens */
	a { color: #600; text-decoration: underline !important; }
	a.spip_out:after,
	a.spip_glossaire:after,
	a.spip_mail:after { display: inline; content: " [" attr(href) "]"; }

}


/* ------------------------------------------
/* Responsive
/* ------------------------------------------ */

/* largeur maximum 767px */
@media (max-width: 767px) { 
	.pagination {line-height:3;}
}

 
/* largeur maximum 640px */
@media (max-width: 640px) {
	body { font-size: 1em; }
	h1,.h1,
	h2,.h2 { line-height: 1; }
}




.weekend-highlights p a,
.weekend-section p a,
.weekend-card p a {
  color: #2f4d62;
  text-decoration: underline;
  text-decoration-thickness: 1.5px;
  text-underline-offset: 0.14em;
  text-decoration-color: rgba(47, 77, 98, 0.45);
}
.weekend-highlights p a:hover,
.weekend-highlights p a:focus,
.weekend-section p a:hover,
.weekend-section p a:focus,
.weekend-card p a:hover,
.weekend-card p a:focus {
  color: #18384a;
  text-decoration-color: currentColor;
}

.weekend-nav a,
.weekend-day-links a {
  text-decoration: none;
}



.weekend-kicker {
  margin: 0 0 0.35rem;
  color: #626262;
  font-size: 0.92rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0;
}

.weekend-lead {
  margin: 0;
  font-size: 1.05rem;
}

.weekend-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  margin: 1rem 0 1.8rem;
  padding: 0.85rem 0;
  border-top: 1px solid #e4e4e4;
  border-bottom: 1px solid #e4e4e4;
}

.weekend-nav a {
  display: inline-block;
  padding: 0.28rem 0.55rem;
  background: #f7f7f7;
  border: 1px solid #e1e1e1;
  text-decoration: none;
}

.weekend-highlights {
  margin: 2rem 0;
  padding: 1.15rem;
  background: #f7f7f7;
  border-left: 4px solid #cfcfcf;
}

.weekend-highlights h2,
.weekend-days h2,
.weekend-section h2 {
  margin: 0 0 1rem;
  padding-bottom: 0.35rem;
  border-bottom: 2px solid #e1e1e1;
}

.weekend-highlight {
  margin: 0 0 0.9rem;
  padding: 0.85rem 0;
  border-top: 1px solid #e1e1e1;
}

.weekend-highlight:first-of-type {
  border-top: 0;
  padding-top: 0;
}

.weekend-highlight a {
  font-weight: 700;
}

.weekend-highlight p {
  margin: 0.2rem 0 0;
}

.weekend-days {
  margin: 2.2rem 0;
}

.weekend-day {
  margin: 1rem 0;
  padding: 0.95rem 1rem;
  background: #fbfbfb;
  border: 1px solid #e3e3e3;
}

.weekend-day h3 {
  margin: 0 0 0.7rem;
}

.weekend-day-links {
  display: flex;
  flex-wrap: wrap;
  gap: 0.42rem;
  margin: 0;
}

.weekend-day-links a {
  display: inline-block;
  padding: 0.24rem 0.52rem;
  background: #fff;
  border: 1px solid #dcdcdc;
  text-decoration: none;
}

.weekend-section {
  margin-top: 2.4rem;
}

.weekend-card {
  margin: 1rem 0;
  padding: 1rem 1rem 1.05rem;
  background: #fff;
  border: 1px solid #dedede;
  border-left: 3px solid #d3d3d3;
}

.weekend-card h3 {
  margin: 0 0 0.55rem;
}

.event-description {
  margin: 0 0 0.85rem;
}

.event-meta {
  display: grid;
  gap: 0.36rem;
  margin: 0.85rem 0 0;
  padding: 0.85rem;
  background: #f8f8f8;
  border: 1px solid #e4e4e4;
}

.event-meta span {
  display: block;
}

.event-link {
  font-weight: 600;
}

/* =========================================================
   PUBLICITÃ‰S MERCI â€” WEEK-END VALAIS
   Desktop + mobile, sans double affichage
   ========================================================= */

/* Base commune */
.weekend-ad {
  margin: 1.8rem 0;
  padding: .9rem 0;
  border-top: 1px solid #e5e5e5;
  border-bottom: 1px solid #e5e5e5;
}

/* Par dÃ©faut : on masque les deux versions.
   Les media queries dÃ©cident ensuite laquelle afficher. */
.weekend-ad-desktop,
.weekend-ad-mobile {
  display: none !important;
}

/* Carte */
.weekend-ad-card {
  background: #fff;
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 4px 18px rgba(0,0,0,.06);
}

/* Image */
.weekend-ad-visual {
  background: #fff;
}

.weekend-ad-visual a {
  display: block;
}

.weekend-ad-img {
  display: block;
  width: 100%;
  height: auto !important;
  max-width: 100%;
  object-fit: contain;
}

/* Texte */
.weekend-ad-content {
  padding: 1.2rem 1.2rem 1.3rem;
}

.weekend-ad-kicker {
  margin: 0 0 .45rem;
  font-size: .82rem;
  line-height: 1.25;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: #666;
  font-weight: 700;
}

.weekend-ad-content h3 {
  margin: 0 0 .65rem;
  font-size: 1.9rem;
  line-height: 1.08;
  color: #1d1d1d;
}

.weekend-ad-lead {
  margin: 0 0 .7rem;
  font-size: 1.08rem;
  line-height: 1.45;
  color: #3d3d3d;
  font-weight: 600;
}

.weekend-ad-content p {
  margin: 0 0 .85rem;
  font-size: 1rem;
  line-height: 1.55;
  color: #4a4a4a;
}

.weekend-ad-cta-wrap {
  margin: 1rem 0 0;
}

.weekend-ad-cta {
  display: inline-block;
  padding: .85rem 1.15rem;
  background: #b8892f;
  color: #fff !important;
  text-decoration: none !important;
  border-radius: 8px;
  font-weight: 700;
  line-height: 1.2;
}

.weekend-ad-cta:hover,
.weekend-ad-cta:focus {
  background: #9f7626;
  color: #fff !important;
  text-decoration: none !important;
}


/* =========================================================
   DESKTOP
   Affiche uniquement la version desktop
   ========================================================= */

@media screen and (min-width: 801px) {
  .weekend-ad-desktop {
    display: block !important;
  }

  .weekend-ad-mobile {
    display: none !important;
  }

  .weekend-ad-card-desktop,
  .weekend-ad-card-merci {
    display: grid;
    grid-template-columns: minmax(320px, 44%) 1fr;
    align-items: center;
  }

  .weekend-ad-card-desktop .weekend-ad-content,
  .weekend-ad-card-merci .weekend-ad-content {
    padding: 1.8rem 2rem;
  }

  .weekend-ad-card-desktop .weekend-ad-img,
  .weekend-ad-card-merci .weekend-ad-img {
    width: 100%;
    height: auto !important;
  }
}


/* =========================================================
   MOBILE
   Affiche uniquement la version mobile
   ========================================================= */

@media screen and (max-width: 800px) {
  .weekend-ad-desktop {
    display: none !important;
  }

  .weekend-ad-mobile {
    display: block !important;
  }

  .weekend-ad {
    margin: 1.5rem 0;
    padding: .8rem 0;
  }

  .weekend-ad-card {
    border-radius: 12px;
  }

  .weekend-ad-card-mobile {
    display: block;
  }

  .weekend-ad-card-mobile .weekend-ad-img {
    width: 100%;
    height: auto !important;
    max-width: 100%;
    object-fit: contain;
  }

  .weekend-ad-card-mobile .weekend-ad-content {
    padding: 1rem 1rem 1.2rem;
    text-align: left;
  }

  .weekend-ad-card-mobile .weekend-ad-kicker {
    font-size: .78rem;
  }

  .weekend-ad-card-mobile .weekend-ad-content h3 {
    font-size: 1.55rem;
    line-height: 1.12;
  }

  .weekend-ad-card-mobile .weekend-ad-lead {
    font-size: 1rem;
  }

  .weekend-ad-card-mobile .weekend-ad-content p {
    font-size: .97rem;
    line-height: 1.5;
  }

  .weekend-ad-card-mobile .weekend-ad-cta {
    width: 100%;
    text-align: center;
    box-sizing: border-box;
  }
}

.weekend-ad-image-only {
  margin: 1.8rem 0;
  padding: 0;
  border-top: none;
  border-bottom: none;
}

/* On garde une carte propre, mais sans zone texte */
.weekend-ad-image-only .weekend-ad-card {
  display: block !important;
  grid-template-columns: none !important;
  background: transparent;
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 4px 18px rgba(0,0,0,.06);
}

/* On masque toute la partie texte */
.weekend-ad-image-only .weekend-ad-content {
  display: none !important;
}

/* L'image devient toute la publicitÃ© */
.weekend-ad-image-only .weekend-ad-visual {
  display: block;
  width: 100%;
  background: transparent;
}

.weekend-ad-image-only .weekend-ad-visual a {
  display: block;
  width: 100%;
  line-height: 0;
}

.weekend-ad-image-only .weekend-ad-img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto !important;
  object-fit: contain;
}

/* Desktop : neutralise la grille image + texte */
@media screen and (min-width: 801px) {
  .weekend-ad-image-only .weekend-ad-card-desktop,
  .weekend-ad-image-only .weekend-ad-card-merci {
    display: block !important;
    grid-template-columns: none !important;
  }

  .weekend-ad-image-only .weekend-ad-card-desktop .weekend-ad-img,
  .weekend-ad-image-only .weekend-ad-card-merci .weekend-ad-img {
    width: 100%;
    height: auto !important;
  }
}

/* Mobile : image pleine largeur, sans bloc texte */
@media screen and (max-width: 800px) {
  .weekend-ad-image-only {
    margin: 1.5rem 0;
    padding: 0;
  }

  .weekend-ad-image-only .weekend-ad-card {
    border-radius: 12px;
  }

  .weekend-ad-image-only .weekend-ad-card-mobile {
    display: block !important;
  }

  .weekend-ad-image-only .weekend-ad-card-mobile .weekend-ad-img {
    width: 100%;
    max-width: 100%;
    height: auto !important;
  }
}
/* =========================================================
   CALENDRIER MENSUEL
   MÃªme famille visuelle que le guide week-end
   ========================================================= */

.monthly-hero,
.monthly-calendar {
  max-width: 780px;
  margin-right: auto;
  margin-left: auto;
  color: #222;
  line-height: 1.65;
}

.monthly-hero *,
.monthly-calendar *,
.monthly-hero *::before,
.monthly-calendar *::before,
.monthly-hero *::after,
.monthly-calendar *::after {
  box-sizing: border-box;
}

.monthly-hero {
  margin-bottom: 1.4rem;
  padding: 1.15rem 1.25rem;
  background: #f7f7f7;
  border: 1px solid #e3e3e3;
  border-top: 4px solid #c60303;
}

.monthly-kicker {
  margin: 0 0 .35rem;
  color: #626262;
  font-size: .88rem;
  font-weight: 700;
  letter-spacing: .035em;
  text-transform: uppercase;
}

.monthly-lead {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 400;
}

.monthly-calendar a {
  color: #2f4d62;
  text-decoration: underline;
  text-decoration-color: rgba(47, 77, 98, .4);
  text-decoration-thickness: 1.5px;
  text-underline-offset: .14em;
}

.monthly-calendar a:hover,
.monthly-calendar a:focus {
  background-color: transparent;
  color: #18384a;
  text-decoration-color: currentColor;
}

.monthly-nav {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  margin: 0 0 1.8rem;
  padding: .9rem 0;
  border-top: 1px solid #e1e1e1;
  border-bottom: 1px solid #e1e1e1;
}

.monthly-nav a {
  display: inline-block;
  padding: .38rem .68rem;
  background: #f7f7f7;
  border: 1px solid #dedede;
  border-radius: 4px;
  font-size: .95rem;
  font-weight: 600;
  line-height: 1.3;
  text-decoration: none;
}

.monthly-nav a:hover,
.monthly-nav a:focus {
  background: #eef2f4;
}

.monthly-section {
  margin: 2.5rem 0;
  scroll-margin-top: 1rem;
}

.monthly-section > h2 {
  margin: 0 0 1rem;
  padding-bottom: .42rem;
  border-bottom: 2px solid #e1e1e1;
}

.monthly-section-intro {
  max-width: 68ch;
  margin: -.25rem 0 1.1rem;
  color: #505050;
}

.monthly-highlight-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .85rem;
}

.monthly-highlight {
  padding: 1rem;
  background: #f8f8f8;
  border: 1px solid #e2e2e2;
  border-left: 3px solid #cfcfcf;
}

.monthly-highlight:first-child {
  grid-column: 1 / -1;
  background: #f4f6f7;
  border-left-color: #c60303;
}

.monthly-highlight h3 {
  margin: 0 0 .35rem;
  font-size: 1.2rem;
  line-height: 1.25;
}

.monthly-highlight p {
  margin: .3rem 0 0;
}

.monthly-highlight-meta {
  color: #626262;
  font-size: .92rem;
  font-weight: 700;
}

.monthly-period {
  margin: 1rem 0;
  padding: 1rem 1.05rem;
  background: #fbfbfb;
  border: 1px solid #e2e2e2;
  scroll-margin-top: 1rem;
}

.monthly-period h3 {
  margin: 0 0 .45rem;
}

.monthly-period > p {
  margin: 0 0 .75rem;
  color: #4a4a4a;
}

.monthly-period ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.monthly-period li {
  position: relative;
  margin: 0;
  padding: .55rem 0 .55rem 1rem;
  border-top: 1px solid #e4e4e4;
}

.monthly-period li::before {
  position: absolute;
  top: .98rem;
  left: 0;
  width: .38rem;
  height: .38rem;
  background: #c60303;
  border-radius: 50%;
  content: "";
}

.monthly-period li:first-child {
  border-top: 0;
}

.monthly-ongoing-grid,
.monthly-theme-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .85rem;
}

.monthly-ongoing-card,
.monthly-theme-card {
  padding: 1rem;
  background: #fff;
  border: 1px solid #dedede;
}

.monthly-ongoing-card {
  border-top: 3px solid #cfcfcf;
}

.monthly-ongoing-card h3,
.monthly-theme-card h3 {
  margin: 0 0 .4rem;
  font-size: 1.16rem;
  line-height: 1.3;
}

.monthly-ongoing-card p,
.monthly-theme-card p {
  margin: .3rem 0 0;
}

.monthly-ongoing-date {
  color: #626262;
  font-size: .92rem;
  font-weight: 700;
}

.monthly-events {
  margin-top: 2.8rem;
}

.monthly-card {
  margin: 1rem 0;
  padding: 1.05rem 1.1rem 1.1rem;
  background: #fff;
  border: 1px solid #dedede;
  border-left: 3px solid #d3d3d3;
  scroll-margin-top: 1rem;
}

.monthly-card h3 {
  margin: 0 0 .55rem;
  line-height: 1.28;
}

.monthly-card > p {
  margin: .65rem 0 0;
}

.monthly-card > p:first-of-type {
  margin-top: 0;
}

.monthly-card > p:first-of-type strong {
  display: inline-block;
  margin-bottom: .18rem;
  color: #333;
}

.monthly-card > p:last-child a {
  display: inline-block;
  font-weight: 700;
}

.monthly-calendar .weekend-ad {
  margin: 2.2rem 0;
}

.monthly-calendar .weekend-ad-cta,
.monthly-calendar .weekend-ad-cta:visited {
  background: #b8892f;
  color: #fff;
}

.monthly-calendar .weekend-ad-cta:hover,
.monthly-calendar .weekend-ad-cta:focus {
  background: #9f7626;
  color: #fff;
}

@media screen and (max-width: 640px) {
  .monthly-hero {
    padding: 1rem;
  }

  .monthly-lead {
    font-size: 1rem;
  }

  .monthly-nav {
    gap: .4rem;
  }

  .monthly-nav a {
    flex: 1 1 calc(50% - .4rem);
    text-align: center;
  }

  .monthly-highlight-grid,
  .monthly-ongoing-grid,
  .monthly-theme-grid {
    grid-template-columns: 1fr;
  }

  .monthly-highlight:first-child {
    grid-column: auto;
  }

  .monthly-period,
  .monthly-card {
    padding: .9rem;
  }
}

@media print {
  .monthly-nav,
  .monthly-calendar .weekend-ad {
    display: none !important;
  }

  .monthly-highlight,
  .monthly-period,
  .monthly-ongoing-card,
  .monthly-theme-card,
  .monthly-card {
    break-inside: avoid;
    box-shadow: none;
  }
}

/* =========================================================
   RUBRIQUE SE DÃ‰PLACER
   Ã€ charger aprÃ¨s les styles communs du site.
   ========================================================= */


/* Conteneurs principaux
   --------------------------------------------------------- */

.transport-hero,
.transport-hub {
  max-width: 780px;
  margin-right: auto;
  margin-left: auto;
  color: #222;
  line-height: 1.65;
}

.transport-hero *,
.transport-hub *,
.transport-hero *::before,
.transport-hub *::before,
.transport-hero *::after,
.transport-hub *::after {
  box-sizing: border-box;
}


/* Chapo enrichi
   --------------------------------------------------------- */

.transport-hero {
  margin-bottom: 1.4rem;
  padding: 1.15rem 1.25rem;
  background: #f7f7f7;
  border: 1px solid #e3e3e3;
  border-top: 4px solid #c60303;
}

.transport-kicker {
  margin: 0 0 .35rem;
  color: #626262;
  font-size: .88rem;
  font-weight: 700;
  letter-spacing: .035em;
  text-transform: uppercase;
}

.transport-lead {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 400;
}


/* Liens gÃ©nÃ©raux
   --------------------------------------------------------- */

.transport-hub a {
  color: #2f4d62;
  text-decoration: underline;
  text-decoration-color: rgba(47, 77, 98, .4);
  text-decoration-thickness: 1.5px;
  text-underline-offset: .14em;
}

.transport-hub a:hover,
.transport-hub a:focus {
  background-color: transparent;
  color: #18384a;
  text-decoration-color: currentColor;
}

.transport-hub a:focus-visible,
.transport-nav a:focus-visible {
  outline: 3px solid rgba(198, 3, 3, .28);
  outline-offset: 2px;
}


/* Navigation rapide
   --------------------------------------------------------- */

.transport-nav {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  margin: 0 0 1.8rem;
  padding: .9rem 0;
  border-top: 1px solid #e1e1e1;
  border-bottom: 1px solid #e1e1e1;
}

.transport-nav a {
  display: inline-block;
  padding: .38rem .68rem;
  background: #f7f7f7;
  border: 1px solid #dedede;
  border-radius: 4px;
  font-size: .95rem;
  font-weight: 600;
  line-height: 1.3;
  text-decoration: none;
}

.transport-nav a:hover,
.transport-nav a:focus {
  background: #eef2f4;
  border-color: #c9d2d7;
}


/* Sections
   --------------------------------------------------------- */

.transport-section {
  margin: 2.5rem 0;
  scroll-margin-top: 1rem;
}

.transport-section > h2 {
  margin: 0 0 1rem;
  padding-bottom: .42rem;
  border-bottom: 2px solid #e1e1e1;
}

.transport-section-intro {
  max-width: 68ch;
  margin: -.25rem 0 1.1rem;
  color: #505050;
}


/* Grille des modes de transport
   --------------------------------------------------------- */

.transport-mode-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .85rem;
}

.transport-mode-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: 1rem;
  background: #fff;
  border: 1px solid #dedede;
  border-top: 3px solid #c60303;
}

.transport-mode-card:hover {
  background: #fafbfb;
  border-color: #c9d2d7;
  border-top-color: #c60303;
}

.transport-mode-card h3 {
  margin: 0 0 .4rem;
  font-size: 1.16rem;
  line-height: 1.3;
}

.transport-mode-card h3 a {
  text-decoration: none;
}

.transport-mode-card p {
  margin: .3rem 0 0;
}

.transport-mode-card .transport-card-cta {
  margin-top: auto;
  padding-top: .75rem;
  font-weight: 700;
}


/* Carte facultative occupant toute la largeur */

.transport-mode-card--wide {
  grid-column: 1 / -1;
}


/* Bloc prioritaire : info trafic et perturbations
   --------------------------------------------------------- */

.transport-highlight-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .85rem;
}

.transport-highlight {
  padding: 1rem;
  background: #f8f8f8;
  border: 1px solid #e2e2e2;
  border-left: 3px solid #cfcfcf;
}

.transport-highlight--primary {
  grid-column: 1 / -1;
  background: #f4f6f7;
  border-left-color: #c60303;
}

.transport-highlight h3 {
  margin: 0 0 .35rem;
  font-size: 1.2rem;
  line-height: 1.25;
}

.transport-highlight p {
  margin: .3rem 0 0;
}

.transport-highlight-meta {
  color: #626262;
  font-size: .92rem;
  font-weight: 700;
}


/* Services pratiques
   --------------------------------------------------------- */

.transport-service-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .85rem;
}

.transport-service-card {
  padding: 1rem;
  background: #fff;
  border: 1px solid #dedede;
  border-top: 3px solid #cfcfcf;
}

.transport-service-card h3 {
  margin: 0 0 .4rem;
  font-size: 1.16rem;
  line-height: 1.3;
}

.transport-service-card h3 a {
  text-decoration: none;
}

.transport-service-card p {
  margin: .3rem 0 0;
}


/* Lignes et articles rÃ©cemment mis Ã  jour
   --------------------------------------------------------- */

.transport-update-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .85rem;
}

.transport-update-card {
  padding: .9rem 1rem;
  background: #fff;
  border: 1px solid #dedede;
  border-left: 3px solid #d3d3d3;
}

.transport-update-card h3 {
  margin: 0 0 .35rem;
  font-size: 1.08rem;
  line-height: 1.3;
}

.transport-update-card h3 a {
  text-decoration: none;
}

.transport-update-card p {
  margin: .25rem 0 0;
  color: #505050;
  font-size: .95rem;
}


/* Liste compacte de lignes
   --------------------------------------------------------- */

.transport-line-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .5rem .85rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.transport-line-list li {
  margin: 0;
}

.transport-line-list a {
  display: block;
  padding: .55rem .7rem;
  background: #f8f8f8;
  border: 1px solid #e1e1e1;
  border-radius: 3px;
  font-weight: 600;
  text-decoration: none;
}

.transport-line-list a:hover,
.transport-line-list a:focus {
  background: #eef2f4;
  border-color: #c9d2d7;
}


/* Mobile
   --------------------------------------------------------- */

@media screen and (max-width: 640px) {
  .transport-hero {
    padding: 1rem;
  }

  .transport-lead {
    font-size: 1rem;
  }

  .transport-nav {
    gap: .4rem;
  }

  .transport-nav a {
    flex: 1 1 calc(50% - .4rem);
    text-align: center;
  }

  .transport-mode-grid,
  .transport-highlight-grid,
  .transport-service-grid,
  .transport-update-grid,
  .transport-line-list {
    grid-template-columns: 1fr;
  }

  .transport-mode-card--wide,
  .transport-highlight--primary {
    grid-column: auto;
  }
}


/* Impression
   --------------------------------------------------------- */

@media print {
  .transport-nav {
    display: none !important;
  }

  .transport-mode-card,
  .transport-highlight,
  .transport-service-card,
  .transport-update-card {
    break-inside: avoid;
    box-shadow: none;
  }
}

/* FÃªtes foraines eVous â€” complÃ©ment Ã  charger aprÃ¨s theme.css.
   RÃ©fÃ©rences : guides week-end et calendriers mensuels.
   Tous les sÃ©lecteurs sont limitÃ©s aux composants foraines-. */

.foraines-hero,
.foraines-guide {
  --foraines-red: #c60303;
  --foraines-link: #2f4d62;
  --foraines-amber: #a66b18;
  --foraines-amber-bg: #fff7e8;
  max-width: 780px;
  margin-right: auto;
  margin-left: auto;
  color: #222;
  line-height: 1.65;
  overflow-wrap: anywhere;
}

.foraines-hero,
.foraines-guide,
.foraines-hero *,
.foraines-guide *,
.foraines-hero *::before,
.foraines-guide *::before,
.foraines-hero *::after,
.foraines-guide *::after {
  box-sizing: border-box;
}

.foraines-hero {
  margin-bottom: 1.4rem;
  padding: 1.1rem 1.25rem;
  background: #f7f7f7;
  border: 1px solid #e3e3e3;
  border-top: 4px solid var(--foraines-red);
}

.foraines-hero .foraines-kicker {
  margin: 0 0 .35rem;
  color: #626262;
  font-size: .88rem;
  font-weight: 700;
  letter-spacing: .035em;
  text-transform: uppercase;
}

.foraines-hero .foraines-lead {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 400;
}

.foraines-guide a,
.foraines-guide a:visited {
  color: var(--foraines-link);
  background: transparent;
  text-decoration: underline;
  text-decoration-color: rgba(47, 77, 98, .45);
  text-decoration-thickness: 1.5px;
  text-underline-offset: .14em;
}

.foraines-guide a:hover,
.foraines-guide a:focus,
.foraines-guide a:active {
  color: #18384a;
  background: transparent;
  text-decoration-color: currentColor;
}

.foraines-guide a:focus-visible {
  outline: 2px solid var(--foraines-link);
  outline-offset: 3px;
}

.foraines-guide .foraines-nav {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  margin: 0 0 1.8rem;
  padding: .9rem 0;
  border-top: 1px solid #e1e1e1;
  border-bottom: 1px solid #e1e1e1;
}

.foraines-guide .foraines-nav a,
.foraines-guide .foraines-nav a:visited {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: .4rem .7rem;
  background: #f7f7f7;
  border: 1px solid #dedede;
  border-radius: 4px;
  font-size: .95rem;
  font-weight: 600;
  line-height: 1.3;
  text-decoration: none;
}

.foraines-guide .foraines-nav a:hover,
.foraines-guide .foraines-nav a:focus {
  background: #eef2f4;
}

.foraines-highlights {
  margin: 1.8rem 0 2.5rem;
  padding: 1.1rem 1.2rem;
  background: var(--foraines-amber-bg);
  border: 1px solid #eadbc2;
  border-left: 4px solid var(--foraines-amber);
}

.foraines-guide h2 {
  margin: 0 0 1rem;
  padding-bottom: .45rem;
  color: var(--foraines-red);
  border-bottom: 2px solid #e1e1e1;
  font-size: 1.48rem;
  line-height: 1.25;
}

.foraines-highlights h2 {
  color: #222;
  border-bottom-color: #e7d8bd;
}

.foraines-guide .foraines-updated {
  margin: -.45rem 0 .75rem;
  color: #626262;
  font-size: .88rem;
}

.foraines-guide .foraines-shortlist {
  margin: 0;
  padding: 0;
  list-style: none;
}

.foraines-shortlist li {
  margin: 0;
  padding: .7rem 0;
  border-top: 1px solid #e7d8bd;
}

.foraines-shortlist li:first-child { border-top: 0; }
.foraines-shortlist li::before { content: none; }
.foraines-shortlist strong { display: block; }
.foraines-highlights > p:last-child { margin: .8rem 0 0; }

.foraines-section { margin: 2.5rem 0; }
.foraines-guide [id] { scroll-margin-top: 1rem; }

.foraines-card {
  margin: 1rem 0;
  padding: 1rem 1.1rem;
  background: #fff;
  border: 1px solid #dedede;
  border-left: 3px solid var(--foraines-amber);
}

.foraines-guide h3 {
  margin: 0 0 .55rem;
  color: #222;
  font-size: 1.23rem;
  line-height: 1.3;
}

.foraines-card > p,
.foraines-pending-item > p { margin: .65rem 0 0; }
.foraines-card .foraines-date { margin-top: 0; }
.foraines-date strong { display: block; }

.foraines-card .foraines-location {
  margin-top: .2rem;
  color: #555;
  font-size: .96rem;
}

.foraines-practical {
  padding: .65rem .8rem;
  background: #f7f7f7;
  color: #454545;
  font-size: .95rem;
}

.foraines-links { font-size: .95rem; }
.foraines-links a { font-weight: 600; }

.foraines-pending {
  padding: 1.1rem 1.2rem;
  background: #fbfaf7;
  border: 1px solid #e7dfd2;
}

.foraines-pending-item {
  padding: 1rem 0;
  border-top: 1px solid #e7dfd2;
}

.foraines-pending-item:first-of-type { padding-top: .2rem; border-top: 0; }
.foraines-pending-item:last-child { padding-bottom: 0; }

.foraines-guide .foraines-period {
  margin: 1.8rem 0 .75rem;
  padding: .55rem .8rem;
  background: #f4f5f6;
  border-left: 3px solid #cfcfcf;
  color: #454545;
  font-weight: 700;
}

.foraines-archive .foraines-card { border-left-color: #cfcfcf; }

.foraines-status {
  display: inline-block;
  margin-bottom: .35rem;
  padding: .12rem .45rem;
  background: #f0f0f0;
  border: 1px solid #dedede;
  border-radius: 3px;
  color: #555;
  font-size: .8rem;
  line-height: 1.5;
}

.foraines-note {
  padding: 1rem 1.1rem;
  background: #f7f7f7;
  border: 1px solid #e3e3e3;
}

.foraines-note > p:last-child { margin-bottom: 0; }

.foraines-guide img,
.foraines-guide .spip_documents { max-width: 100%; }
.foraines-guide img { height: auto; }

@media screen and (max-width: 640px) {
  .foraines-hero,
  .foraines-highlights,
  .foraines-pending { padding: 1rem; }
  .foraines-hero .foraines-lead { font-size: 1rem; }
  .foraines-guide .foraines-nav { gap: .4rem; }
  .foraines-nav a {
    flex: 1 1 calc(50% - .4rem);
    justify-content: center;
    text-align: center;
  }
  .foraines-card { padding: .9rem; }
  .foraines-guide h2 { font-size: 1.35rem; }
  .foraines-guide h3 { font-size: 1.15rem; }
}

@media print {
  .foraines-guide .foraines-nav { display: none; }
  .foraines-highlights,
  .foraines-card,
  .foraines-pending-item { break-inside: avoid; }
  .foraines-hero,
  .foraines-guide { max-width: none; }
  .foraines-guide h2,
  .foraines-guide h3 { break-after: avoid; }
}

/* ComplÃ©ment mÃ©tier v1.0.3. Dates avec annÃ©e, libellÃ©s sans coupure ; calendrier mobile vertical. Charger aprÃ¨s monthly_calendar_v2.css.
   Toutes les rÃ¨gles sont limitÃ©es au conteneur .emploi-formation. */
.emploi-formation { --ef-accent: #006b63; --ef-tint: #edf6f3; color: #222; font-family: inherit; }
.emploi-formation .ef-preview { max-width: 780px; margin: 1rem auto 1.4rem; padding: .8rem 1rem; border: 1px dashed #747474; background: #fafafa; line-height: 1.5; }
.emploi-formation .ef-preview p { margin: 0 0 .5rem; }
.emploi-formation .ef-preview a { color: #005950; }
.emploi-formation .ef-view { margin: 0 0 4rem; }
.emploi-formation .monthly-hero { border-top-color: var(--ef-accent); background: var(--ef-tint); }
.emploi-formation .monthly-hero h1,
.emploi-formation .monthly-hero h2 { margin: .1rem 0 .65rem; font-size: clamp(1.65rem, 5vw, 2.2rem); line-height: 1.16; letter-spacing: -.02em; }
.emploi-formation .monthly-kicker { color: #365a55; }
.emploi-formation .monthly-highlight:first-child { border-left-color: var(--ef-accent); background: var(--ef-tint); }
.emploi-formation .monthly-highlight h4 { font-size: 1.2rem; line-height: 1.3; margin: .1rem 0 .4rem; }
.emploi-formation .monthly-calendar a { color: #005e57; text-decoration-color: #58968f; }
.emploi-formation .monthly-calendar a:hover { color: #003b36; text-decoration-color: currentColor; }
.emploi-formation a:focus-visible,
.emploi-formation summary:focus-visible { outline: 3px solid #006b63; outline-offset: 4px; border-radius: 2px; }
.emploi-formation .ef-section-title { margin: 0 0 1rem; padding: 0 0 .45rem; border-bottom: 2px solid #e1e1e1; font-size: 1.4rem; line-height: 1.3; }
.emploi-formation .ef-upcoming { margin: 0; padding: 0; list-style: none; }
.emploi-formation .ef-upcoming li { display: grid; grid-template-columns: 5.7rem minmax(0, 1fr); gap: .9rem; padding: 1rem 0; border-bottom: 1px solid #dedede; }
.emploi-formation .ef-date { color: #005e57; font-weight: 750; font-variant-numeric: tabular-nums; line-height: 1.4; }
.emploi-formation .ef-upcoming h3 { margin: 0 0 .3rem; font-size: 1.1rem; line-height: 1.4; }
.emploi-formation .ef-upcoming p { margin: .25rem 0; }
.emploi-formation .ef-muted { color: #555; font-size: .95rem; }
.emploi-formation .ef-signup { padding: 1rem; border-left: 3px solid var(--ef-accent); background: var(--ef-tint); }
.emploi-formation .ef-signup p { margin: .35rem 0; }
.emploi-formation .monthly-theme-card h4 { font-size: 1.12rem; line-height: 1.35; margin: 0 0 .4rem; }
.emploi-formation .monthly-card { border-left-color: var(--ef-accent); }
.emploi-formation .monthly-card h4 { margin: 0 0 .5rem; font-size: 1.25rem; line-height: 1.3; }
.emploi-formation .ef-badges { display: flex; flex-wrap: wrap; gap: .4rem; margin: .5rem 0; }
.emploi-formation .ef-status { display: inline-block; padding: .2rem .5rem; border: 1px solid #9ebdb5; background: #edf6f3; color: #164d42; font-size: .85rem; font-weight: 700; line-height: 1.5; }
.emploi-formation .ef-status--deadline { background: #fff5dd; color: #684400; border-color: #a28038; }
.emploi-formation .ef-status--full,
.emploi-formation .ef-status--ended { background: #f2f2f2; color: #484848; border-color: #aaa; }
.emploi-formation .ef-status--cancelled { background: #fff1ef; color: #842819; border-color: #c68d85; }
.emploi-formation .ef-facts { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: .45rem 1rem; margin: .8rem 0; }
.emploi-formation .ef-facts dt { font-weight: 700; white-space: nowrap; }
.emploi-formation .ef-facts dd { margin: 0; }
.emploi-formation .ef-action { display: inline-block; padding: .5rem .8rem; min-height: 44px; border: 1px solid #006b63; background: #edf6f3; font-weight: 700; }
.emploi-formation .ef-calendar { padding: 0; list-style: none; }
.emploi-formation .ef-calendar > li { display: grid; grid-template-columns: 11em minmax(0, 1fr); gap: .8rem; padding: .75rem 0; border-bottom: 1px solid #dedede; }
.emploi-formation .ef-calendar .ef-date { white-space: nowrap; }
.emploi-formation .ef-ad { padding: 1.25rem; background: #fafafa; border: 1px solid #e3e3e3; color: #626262; text-align: center; font-size: .8rem; letter-spacing: .04em; text-transform: uppercase; }
.emploi-formation details { margin-top: 1rem; padding: .8rem; border: 1px solid #d6dfdc; }
.emploi-formation summary { cursor: pointer; font-weight: 700; }
.emploi-formation .ef-view-end { padding: 1rem 0; border-top: 1px solid #ddd; }
.emploi-formation .monthly-calendar,
.emploi-formation .monthly-hero { overflow-wrap: anywhere; }
@media (max-width: 640px) {
 .emploi-formation .ef-upcoming li { grid-template-columns: 4.6rem minmax(0, 1fr); gap: .6rem; }
 .emploi-formation .ef-calendar > li { grid-template-columns: 1fr; gap: .3rem; }
 .emploi-formation .ef-facts { grid-template-columns: 1fr; gap: .1rem; }
 .emploi-formation .ef-facts dd { margin-bottom: .55rem; }
 .emploi-formation .ef-action { width: 100%; text-align: center; }
}
@media print {
 .emploi-formation .ef-preview,
 .emploi-formation .ef-ad { display: none; }
}

/* Adaptation Ã©ditoriale : titres H3 et contenus complets. */
.emploi-formation .ef-sessions { margin: 0; padding-left: 1.1rem; }
.emploi-formation .ef-sessions li + li { margin-top: .5rem; }
.emploi-formation .ef-source-link { display: inline-block; margin: .4rem 0; font-size: .9rem; }
.emploi-formation .monthly-theme-card ul { margin: .4rem 0 0; padding-left: 1.15rem; }
.emploi-formation .monthly-theme-card li { margin: .35rem 0; }
.emploi-formation .monthly-card--ended { border-left-color: #888; background: #fafafa; }
.emploi-formation .monthly-card h3 { font-size: 1.25rem; }

/* fin */

/* Emploi et formation â€” fidelite typographique a la maquette.
 * Ajouter APRES les CSS du site, monthly_calendar_v2.css et le complement
 * emploi-formation-v1.0.3.css (ou a la fin de theme.css si tout y est reuni).
 * Ne pas coller ce CSS dans les champs Chapo ou Texte de SPIP.
 * Porte uniquement sur les blocs .emploi-formation du site qui le charge.
 * Conserve la taille de lecture du site : 1rem = 18px sur Geneve.
 * Le H1 du squelette, situe hors de ces blocs, reste gere par le site.
 */

/* La maquette utilise Arial ; le site utilisait sa police heritee. */
.emploi-formation {
  font-family: Arial, Helvetica, sans-serif;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.65;
  letter-spacing: normal;
}

/* Neutraliser le rouge et la graisse 600 du theme dans ces seuls blocs. */
.emploi-formation h2,
.emploi-formation h3,
.emploi-formation h4 {
  color: #222;
  font-family: inherit;
  font-weight: 700;
  letter-spacing: normal;
}

/* Retrouver la hierarchie des intertitres de la maquette. */
.emploi-formation .monthly-section > h2 {
  font-size: 1.5em;
  line-height: 1.3;
}

/* Retablir les puces des liens "Par besoin", masquees par spip.css.
 * Les calendriers et la navigation restent sans puces.
 */
.emploi-formation .monthly-theme-card ul {
  list-style: disc outside;
  margin: .4rem 0 0;
  padding-left: 1.15rem;
}

.emploi-formation .monthly-theme-card ul > li {
  display: list-item;
  list-style: disc outside;
  margin: .35rem 0;
}

.emploi-formation .monthly-theme-card ul > li::marker {
  color: #222;
}

/* Séparer la description du bloc pratique. */
.emploi-formation .monthly-calendar .monthly-card > .ef-description {
  margin: 0 0 .85rem !important;
}

/* Dates, heures, lieu : aucun retrait de liste. */
.emploi-formation .monthly-calendar .monthly-card > .ef-sessions {
  margin: .8rem 0 !important;
  padding: 0 !important;
  list-style: none;
}

.emploi-formation .monthly-calendar .monthly-card > .ef-sessions > li {
  display: block;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none;
  line-height: 1.5;
}

.emploi-formation .monthly-calendar .monthly-card > .ef-sessions > li + li {
  margin-top: .55rem !important;
}

.emploi-formation .monthly-calendar .monthly-card > .ef-sessions > li::marker {
  content: "";
}

/* Les marges générales des paragraphes du site ne doivent pas espacer
 * séparément chaque ligne de la même information pratique. */
.emploi-formation .monthly-calendar .monthly-card > .ef-sessions > li > p {
  margin: .18rem 0 0 !important;
  padding: 0 !important;
  line-height: 1.5;
}

.emploi-formation .monthly-calendar .monthly-card > .ef-sessions > li > time {
  color: #005e57;
  font-weight: 700;
}

/* Certaines fiches regroupent le lieu commun après plusieurs séances. */
.emploi-formation .monthly-calendar .monthly-card > .ef-location,
.emploi-formation .monthly-calendar .monthly-card > .ef-format {
  margin: .18rem 0 0 !important;
  padding: 0 !important;
  line-height: 1.5;
}

.emploi-formation .monthly-calendar .monthly-card .ef-format {
  color: #555;
  font-size: .92em;
}

/* Les sous-programmes gardent leurs puces, avec des lignes compactes. */
.emploi-formation .monthly-calendar .monthly-card > .ef-programme-sessions {
  margin: .5rem 0 .85rem !important;
  padding: 0 0 0 1.15rem !important;
  list-style: disc outside;
}

.emploi-formation .monthly-calendar .monthly-card > .ef-programme-sessions > li {
  display: list-item;
  margin: .3rem 0 !important;
  padding: 0 !important;
  list-style: disc outside;
  line-height: 1.5;
}

.emploi-formation .monthly-calendar .monthly-card > .ef-programme-sessions > li > p {
  margin: .18rem 0 0 !important;
  padding: 0 !important;
}

/* Les conditions de participation forment un second groupe lisible.
 * La grille et son passage en une colonne sur mobile restent ceux du CSS métier. */
.emploi-formation .monthly-calendar .monthly-card > .ef-facts {
  margin: .85rem 0 !important;
  padding: .8rem 0 0 !important;
  border-top: 1px solid #e1e1e1;
}

.emploi-formation .monthly-calendar .monthly-card > .ef-facts > dd > p {
  margin: 0 0 .25rem !important;
  padding: 0 !important;
}

/* TABLEAUX DES ARTICLES */

.page_article .texte table {
  width: 100%;
  max-width: 100%;
  margin: 1.5rem 0 2rem;
  table-layout: auto;
  border-collapse: collapse;
  border-spacing: 0;
  border: 1px solid #dce2e8;
  background: #fff;
  color: #243041;
  font-family: inherit;
  font-size: 1rem;
  line-height: 1.5;
  font-variant-numeric: tabular-nums;
}

/* Titre du tableau */

.page_article .texte table caption {
  caption-side: top;
  padding: 0 0 0.8rem;
  color: #475569;
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.5;
  text-align: left;
}

/* Cellules */

.page_article .texte table th,
.page_article .texte table td {
  box-sizing: border-box;
  padding: 13px 16px;
  border: 1px solid #dce2e8;
  background: #fff;
  color: #243041;
  vertical-align: top;
  text-align: left;
  white-space: normal;
  overflow-wrap: anywhere;
}

.page_article .texte table th {
  font-weight: 600;
}

.page_article .texte table td {
  font-weight: 400;
}

/* En-tête */

.page_article .texte table thead th,
.page_article .texte table thead td {
  background: #334155;
  color: #fff;
  border-color: #526175;
  font-weight: 700;
  vertical-align: middle;
}

/* Lignes alternées */

.page_article .texte table tbody tr:nth-child(even) > th,
.page_article .texte table tbody tr:nth-child(even) > td {
  background: #f4f6f8;
}

/* Pied de tableau : totaux, récapitulatifs */

.page_article .texte table tfoot th,
.page_article .texte table tfoot td {
  background: #eaf0f5;
  font-weight: 600;
}

/* Défilement horizontal facultatif pour les tableaux larges */

.page_article .texte .tableau-defilement {
  max-width: 100%;
  margin: 1.5rem 0 2rem;
  overflow-x: auto;
}

.page_article .texte .tableau-defilement > table {
  min-width: 640px;
  margin: 0;
}

.page_article .texte .tableau-defilement:focus-visible {
  outline: 2px solid #334155;
  outline-offset: 3px;
}

/* Mobile */

@media (max-width: 600px) {
  .page_article .texte table {
    font-size: 0.875rem;
  }

  .page_article .texte table caption {
    font-size: 0.9375rem;
  }

  .page_article .texte table th,
  .page_article .texte table td {
    padding: 10px 8px;
  }
}

/* Bordeaux 1.7.3-bordeaux.1 */

.salons-guide {
  --salons-ink:#173e39;
  --salons-accent:#075e51;
  --salons-tint:#eef5ef;
  --salons-line:#d5dfd8;
  box-sizing:border-box;
  width:100%;
  max-width:1080px;
  min-width:0;
  margin:0 auto;
  padding:0;
  color:#202923;
  background:#fffdf8;
  font-family:inherit;
  font-size:17px;
  font-weight:400;
  line-height:1.55;
  overflow-wrap:break-word;
  container:salons / inline-size;
}
.salons-guide *, .salons-guide *::before, .salons-guide *::after { box-sizing:border-box; }
.salons-guide [hidden] { display:none !important; }
.salons-guide [id] { scroll-margin-top:18px; }
.salons-guide :is(h1,h2,h3,h4) { color:var(--salons-ink); line-height:1.25; text-transform:none; letter-spacing:normal; }
.salons-guide h1 { margin:0 0 18px; font-size:clamp(1.8rem,4vw,2.7rem); }
.salons-guide h2 { margin:26px 0 14px; padding:0; border:0; font-size:1.55rem; }
.salons-guide h3 { margin:0 0 10px; padding:0; border:0; font-size:1.2rem; }
.salons-guide h4 { margin:18px 0 8px; font-size:1.05rem; }
.salons-guide p { margin:9px 0; line-height:inherit; }
.salons-guide a { color:var(--salons-accent); text-decoration:underline; text-underline-offset:.18em; overflow-wrap:anywhere; }
.salons-guide a:hover { color:var(--salons-ink); text-decoration-thickness:2px; }
.salons-guide :is(a,summary):focus-visible { outline:3px solid #a86418; outline-offset:4px; }
.salons-guide img { display:block; max-width:100%; height:auto; }

/* Chapeau : un seul encart, sans cumul de marges et de conteneurs rembourrés. */
.salons-guide .monthly-hero { width:100%; max-width:none; margin:0 0 16px; padding:18px 22px; border:0; border-top:4px solid var(--salons-accent); background:var(--salons-tint); }
.salons-guide .monthly-hero .monthly-lead { max-width:85ch; margin:0; font-size:1.02em; line-height:1.55; }
.salons-guide .monthly-kicker { margin:0 0 7px; font-size:.77rem; letter-spacing:.08em; text-transform:uppercase; font-weight:700; }

/* Les propriétés du nav natif du site sont explicitement neutralisées ici. */
.salons-guide nav.monthly-nav { display:flex; flex-wrap:wrap; align-items:center; gap:8px; width:auto; margin:0 0 10px; padding:0; border:0; background:none; box-shadow:none; font-size:1rem; line-height:1.35; }
.salons-guide .monthly-nav :is(a,.salons-month-label) { display:inline-flex; align-items:center; justify-content:center; flex:0 1 auto; min-width:0; min-height:44px; max-width:100%; margin:0; padding:9px 13px; border:1px solid #9bb2a7; border-radius:5px; color:var(--salons-accent); background:#fff; font-weight:700; text-decoration:none; text-align:center; }
.salons-guide .monthly-nav [aria-current="page"] { border-color:var(--salons-ink); color:#fff; background:var(--salons-ink); }
.salons-guide .monthly-nav a:hover { background:var(--salons-tint); color:var(--salons-ink); }
.salons-guide .monthly-nav a[aria-current="page"]:hover { background:var(--salons-accent); color:#fff; }
.salons-guide .monthly-nav--sections a { border-color:transparent; padding:8px 10px; background:var(--salons-tint); font-size:.94rem; }

/* Temps forts : titres cliquables, dates distinctes, quatre textes courts. */
.salons-guide .monthly-highlight { margin:22px 0; padding:18px; border:1px solid #e4dac3; border-left:4px solid #997336; background:#f8f3e8; }
.salons-guide .monthly-highlight > h2 { margin:0 0 14px; }
.salons-guide .salons-highlights { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px 22px; list-style:none; margin:0; padding:0; }
.salons-guide .salons-highlights > li { list-style:none; min-width:0; margin:0; padding:0; }
.salons-guide .salons-highlights h3 { margin:0 0 5px; font-size:1.08rem; }
.salons-guide .salons-highlights p { margin:4px 0 0; font-size:.94rem; }
.salons-guide .salons-highlight-date { display:block; color:#695526; font-size:.86rem; font-weight:700; }

/* Choix par public : accès facultatifs, sans masquer le calendrier ou les fiches. */
.salons-guide .salons-audiences { margin:18px 0; }
.salons-guide .salons-audiences > h2 { margin-top:0; font-size:1.2rem; }
.salons-guide .salons-audience-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; gap:10px; }
.salons-guide details.salons-audience { min-width:0; margin:0; border:1px solid var(--salons-line); border-radius:5px; background:#fff; }
.salons-guide .salons-audience summary { min-height:44px; padding:10px 13px; color:var(--salons-ink); cursor:pointer; font-size:.94rem; font-weight:700; line-height:1.5; }
.salons-guide .salons-audience summary::marker { color:var(--salons-accent); }
.salons-guide .salons-audience[open] summary { background:var(--salons-tint); border-bottom:1px solid var(--salons-line); }
.salons-guide .salons-audience ul { margin:8px 12px 12px; padding-left:20px; }
.salons-guide .salons-audience li { margin:5px 0; padding:0; font-size:.93rem; }
.salons-guide .salons-audience li a { display:inline-block; padding:3px 0; }

/* Calendrier compact, chronologique et distinct des fiches complètes. */
.salons-guide .monthly-calendar { width:100%; max-width:none; margin:22px 0; }
.salons-guide .monthly-calendar > h2 { margin-top:0; }
.salons-guide ol.salons-calendar { display:block; width:100%; margin:0; padding:0; list-style:none; }
.salons-guide .salons-calendar > li { display:grid; grid-template-columns:155px minmax(0,1fr); gap:16px; min-width:0; margin:0; padding:12px 0; border:0; border-bottom:1px solid var(--salons-line); list-style:none; font-size:.95rem; line-height:1.45; }
.salons-guide .salons-date { min-width:0; color:var(--salons-ink); font-size:.9rem; font-weight:700; line-height:1.45; }
.salons-guide .salons-date small { display:block; margin-top:3px; color:#685122; font-size:.85em; font-weight:700; }
.salons-guide .salons-calendar-main { min-width:0; }
.salons-guide .salons-calendar-title { display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:4px 10px; }
.salons-guide .salons-calendar-title > a { flex:1 1 200px; font-weight:700; }
.salons-guide .salons-calendar-title .salons-badge { flex:0 1 auto; }
.salons-guide .salons-calendar p { margin:3px 0 0; line-height:1.45; }
.salons-guide .salons-calendar-meta { color:#4e5e56; font-size:.9em; }
.salons-guide .salons-calendar-note { font-size:.9em; }
.salons-guide .salons-edition-period { display:block; margin-top:2px; color:#59645e; font-size:.85em; }
.salons-guide .salons-badge { display:inline-block; max-width:100%; margin:0; padding:2px 7px; border:1px solid #93aa9e; border-radius:4px; color:#173e39; background:#edf4ef; font-size:.74rem; font-weight:700; line-height:1.45; vertical-align:middle; }
.salons-guide .salons-badge--professionnel { border-color:#b79b70; color:#644812; background:#f4ebdd; }
.salons-guide .salons-badge--mixte { border-color:#a0a5bd; color:#393b69; background:#edeef7; }

/* Fiches : texte relu conservé, horaires complets et navigation de retour. */
.salons-guide .salons-details { margin:24px auto 0; max-width:940px; }
.salons-guide .monthly-card { min-width:0; margin:14px 0; padding:20px 22px; border:1px solid var(--salons-line); border-left:4px solid var(--salons-accent); background:#fff; }
.salons-guide .monthly-card > h3 { margin-top:0; }
.salons-guide .monthly-card > p { max-width:85ch; }
.salons-guide .monthly-card p:empty { display:none; }
.salons-guide .monthly-card .salons-days { margin:8px 0; padding-left:21px; }
.salons-guide .salons-days > li { margin:3px 0; padding:0; line-height:1.5; }
.salons-guide .salons-card-back { display:flex; flex-wrap:wrap; gap:8px 20px; margin-top:14px; padding-top:10px; border-top:1px solid #e4e9e5; font-size:.88rem; }
.salons-guide .salons-card-back a { display:inline-flex; align-items:center; min-height:36px; }
.salons-guide .salons-related { padding-top:6px; font-size:.93rem; }
.salons-guide .salons-footer { margin:22px 0 0; padding:16px 0 0; border-top:1px solid var(--salons-line); }
.salons-guide .salons-note { color:#526058; font-size:.88rem; }

/* Deux vrais appels au modèle weekend_pub, sans emplacement vide réservé. */
.salons-guide .salons-ad { margin:20px 0; padding:0; border:0; background:none; text-align:left; color:inherit; font-size:inherit; }
.salons-guide .salons-ad:empty { display:none; }
.salons-guide .salons-ad .pub,
.salons-guide .salons-ad .weekend-ad { width:100%; max-width:none; margin:0; padding:0; border:0; background:none; }
.salons-guide .salons-ad .weekend-ad-desktop { display:block; }
.salons-guide .salons-ad .weekend-ad-mobile { display:none; }
.salons-guide .salons-ad .weekend-ad-card { display:grid; grid-template-columns:140px minmax(0,1fr); align-items:center; gap:20px; width:100%; max-width:none; min-width:0; margin:0; padding:16px 20px; border:1px solid #d9ded7; border-radius:6px; background:#f6f6f1; box-shadow:none; }
.salons-guide .salons-ad .weekend-ad-visual { min-width:0; margin:0; padding:0; }
.salons-guide .salons-ad .weekend-ad-visual a { display:block; }
.salons-guide .salons-ad img.weekend-ad-img { display:block; width:100%; max-width:140px; max-height:175px; height:auto; margin:auto; object-fit:contain; }
.salons-guide .salons-ad .weekend-ad-content { min-width:0; margin:0; padding:0; }
.salons-guide .salons-ad .weekend-ad-content h3 { margin:4px 0 7px; font-size:1.2rem; }
.salons-guide .salons-ad .weekend-ad-content p { margin:5px 0; font-size:.86rem; line-height:1.5; }
.salons-guide .salons-ad .weekend-ad-content .weekend-ad-kicker { margin:0; color:#657066; font-size:.72rem; letter-spacing:.05em; text-transform:uppercase; }
.salons-guide .salons-ad .weekend-ad-cta { display:inline-flex; align-items:center; justify-content:center; min-height:44px; margin-top:4px; padding:9px 14px; border:1px solid var(--salons-accent); border-radius:4px; background:var(--salons-accent); color:#fff; font-size:.88rem; font-weight:700; line-height:1.3; text-decoration:none; }
.salons-guide .salons-ad .weekend-ad-cta:hover { background:var(--salons-ink); color:#fff; }

/* 1.2.2 — Programmes mensuels : lecture bornée et colonne latérale.
   L'attribut wide existant reste compatible ; il n'élargit plus les articles.
   La rubrique centrale conserve son propre mode large. */
.salons-guide:not(.salons-hub) { max-width:740px; }
@supports selector(main:has(.salons-guide)) {
  main.main:has(.salons-guide.salons-hub[data-salons-layout="wide"]) > .wrapper { float:none; width:100%; max-width:none; margin:0; }
  main.main:has(.salons-guide.salons-hub[data-salons-layout="wide"]) #content { width:100%; max-width:none; }
  main.main:has(.salons-guide.salons-hub[data-salons-layout="wide"]) > aside.aside { float:none; clear:both; width:100%; max-width:740px; margin:32px auto 0; padding-top:20px; border-top:1px solid #d5dfd8; }

  main.main:has(.salons-guide[data-salons-layout="wide"]) .chapo,
  main.main:has(.salons-guide[data-salons-layout="wide"]) .texte { margin-bottom:0; padding-bottom:0; }
  main.main:has(.salons-guide[data-salons-layout="wide"]:not(.salons-hub)) #content { width:100%; max-width:none; min-width:0; }
}
/* Proportions natives d'eVous : 65 % de contenu, 29 % de colonne latérale. */
@media screen and (min-width:1024px) {
  main.main:has(.salons-guide[data-salons-layout="wide"]:not(.salons-hub)) > .wrapper {
    box-sizing:border-box;
    float:left;
    clear:both;
    width:65%;
    max-width:740px;
    min-width:0;
    margin:0;
  }
  main.main:has(.salons-guide[data-salons-layout="wide"]:not(.salons-hub)) > aside.aside {
    box-sizing:border-box;
    float:right;
    clear:none;
    width:29%;
    max-width:none;
    min-width:0;
    margin:0;
    padding-top:0;
    border-top:0;
  }
}
/* Tablette et mobile : une colonne, puis les compléments sous le programme. */
@media screen and (max-width:1023px) {
  main.main:has(.salons-guide[data-salons-layout="wide"]:not(.salons-hub)) > .wrapper {
    box-sizing:border-box;
    float:none;
    clear:both;
    width:100%;
    max-width:740px;
    min-width:0;
    margin:0 auto;
  }
  main.main:has(.salons-guide[data-salons-layout="wide"]:not(.salons-hub)) > aside.aside {
    box-sizing:border-box;
    float:none;
    clear:both;
    width:100%;
    max-width:740px;
    min-width:0;
    margin:32px auto 0;
    padding-top:20px;
    border-top:1px solid #d5dfd8;
  }
}

@media (max-width:640px) {
  .salons-guide { font-size:16px; }
  .salons-guide h2 { font-size:1.3rem; }
  .salons-guide .monthly-hero { padding:14px 16px; margin-bottom:12px; }
  .salons-guide .monthly-highlight { margin:18px 0; padding:14px; }
  .salons-guide .salons-highlights { grid-template-columns:minmax(0,1fr); gap:13px; }
  .salons-guide .salons-audience-grid { grid-template-columns:minmax(0,1fr); }
  .salons-guide .monthly-nav :is(a,.salons-month-label) { padding:8px 11px; font-size:.9rem; }
  .salons-guide .salons-calendar > li { grid-template-columns:minmax(0,1fr); gap:5px; padding:11px 0; }
  .salons-guide .salons-date small { display:inline; margin-left:7px; }
  .salons-guide .salons-calendar-title { justify-content:flex-start; }
  .salons-guide .salons-calendar-title > a { flex:1 1 100%; }
  .salons-guide .monthly-card { margin:12px 0; padding:15px; }
  .salons-guide .salons-ad { margin:16px 0; }
  .salons-guide .salons-ad .weekend-ad-desktop { display:none; }
  .salons-guide .salons-ad .weekend-ad-mobile { display:block; }
  .salons-guide .salons-ad .weekend-ad-card { grid-template-columns:90px minmax(0,1fr); align-items:start; gap:12px; padding:13px; }
  .salons-guide .salons-ad img.weekend-ad-img { max-height:130px; }
  .salons-guide .salons-ad .weekend-ad-content h3 { font-size:1.04rem; }
  .salons-guide .salons-ad .weekend-ad-content p { font-size:.81rem; }
}
/* Les mêmes repliements restent disponibles dans une colonne étroite. */
@container salons (max-width:520px) {
  .salons-guide .salons-highlights, .salons-guide .salons-audience-grid { grid-template-columns:minmax(0,1fr); }
  .salons-guide .salons-calendar > li { grid-template-columns:minmax(0,1fr); gap:5px; }
  .salons-guide .salons-date small { display:inline; margin-left:7px; }
}
@media (max-width:360px) {
  .salons-guide .salons-ad .weekend-ad-card { grid-template-columns:minmax(0,1fr); gap:10px; }
  .salons-guide .salons-ad .weekend-ad-visual { max-width:100px; }
  .salons-guide .monthly-nav--sections { gap:5px; }
}
@media print {
  .salons-guide .salons-ad, .salons-guide .salons-card-back, .salons-guide .monthly-nav, .salons-guide .salons-audiences { display:none; }
  .salons-guide { max-width:none; color:#000; background:#fff; }
  .salons-guide .monthly-card { break-inside:avoid; }
}


/* Chapeau SPIP séparé du contenu, corrigé depuis la 1.2.1.
   Le chapeau et le programme partagent la même largeur. Ces règles ne
   s'activent que pour un programme Salons marqué wide, hors rubrique. */
@supports selector(:has(*)) {
  #content:has(> .texte .salons-guide[data-salons-layout="wide"]:not(.salons-hub)) > .chapo,
  #content:has(> .texte .salons-guide[data-salons-layout="wide"]:not(.salons-hub)) > .texte {
    box-sizing:border-box;
    float:none;
    clear:both;
    width:100%;
    max-width:740px;
    min-width:0;
    margin-left:auto;
    margin-right:auto;
  }
  #content:has(> .texte .salons-guide[data-salons-layout="wide"]:not(.salons-hub)) > .chapo {
    padding:0;
    font-weight:400;
  }
  #content:has(> .texte .salons-guide[data-salons-layout="wide"]:not(.salons-hub)) > .chapo .monthly-hero {
    box-sizing:border-box;
    width:100%;
    max-width:none;
    min-width:0;
    margin:0 0 16px;
    padding:18px 22px;
    border:0;
    border-top:4px solid #075e51;
    border-radius:0;
    color:#202923;
    background:#eef5ef;
    font-family:inherit;
    font-size:17px;
    font-weight:400;
    line-height:1.55;
    overflow-wrap:break-word;
  }
  #content:has(> .texte .salons-guide[data-salons-layout="wide"]:not(.salons-hub)) > .chapo .monthly-hero .monthly-kicker {
    margin:0 0 7px;
    padding:0;
    color:#173e39;
    font-size:.77rem;
    font-weight:700;
    line-height:1.55;
    letter-spacing:.08em;
    text-transform:uppercase;
  }
  #content:has(> .texte .salons-guide[data-salons-layout="wide"]:not(.salons-hub)) > .chapo .monthly-hero .monthly-lead {
    max-width:85ch;
    margin:0;
    padding:0;
    color:#202923;
    font-size:1.02em;
    font-weight:400;
    line-height:1.55;
  }
}
@media (max-width:640px) {
  #content:has(> .texte .salons-guide[data-salons-layout="wide"]:not(.salons-hub)) > .chapo .monthly-hero {
    margin-bottom:12px;
    padding:14px 16px;
    font-size:16px;
  }
}

/* Rubrique centrale 1.2.0. Toutes les nouvelles règles sont limitées à salons-hub. */
.salons-guide.salons-hub { --hub-rust:#963f2f; --hub-gold:#f1d596; background:#fff; }
.salons-guide.salons-hub .hub-kicker { margin:0 0 10px; font-size:.78rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
.salons-guide.salons-hub .hub-hero { padding:28px; border-radius:10px; color:#fffdf8; background:#173e39; }
.salons-guide.salons-hub .hub-hero > h2 { margin:0 0 12px; max-width:25ch; color:#fffdf8; font-size:clamp(1.65rem,3.3vw,2.45rem); line-height:1.15; }
.salons-guide.salons-hub .hub-hero .hub-kicker { color:#f1d596; }
.salons-guide.salons-hub .hub-intro { max-width:78ch; margin:0 0 22px; font-size:1.04rem; line-height:1.6; }
.salons-guide.salons-hub nav.hub-months { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin:0; padding:0; border:0; background:none; box-shadow:none; font-size:1rem; }
.salons-guide.salons-hub a.hub-month { position:relative; display:flex; flex-direction:column; min-width:0; padding:22px; border:2px solid transparent; border-radius:7px; color:#173e39; background:#f8f2e5; text-decoration:none; }
.salons-guide.salons-hub a.hub-month--novembre { background:#f7ddd0; }
.salons-guide.salons-hub a.hub-month:hover { border-color:#173e39; background:#fffdf8; }
.salons-guide.salons-hub .hub-month-top { display:flex; justify-content:space-between; align-items:flex-start; gap:12px; }
.salons-guide.salons-hub .hub-month-name { display:block; font-size:1.55rem; font-weight:700; line-height:1.2; }
.salons-guide.salons-hub .hub-month-year { display:block; margin-top:5px; font-size:.94rem; }
.salons-guide.salons-hub .hub-month-number { color:#526c61; font-size:3.4rem; font-weight:700; line-height:1; letter-spacing:-.05em; }
.salons-guide.salons-hub .hub-month--novembre .hub-month-number { color:#963f2f; }
.salons-guide.salons-hub .hub-month-copy { display:block; flex:1; margin:16px 0; font-size:.98rem; line-height:1.55; }
.salons-guide.salons-hub .hub-month-cta { display:flex; justify-content:space-between; gap:10px; align-items:center; min-height:32px; padding-top:12px; border-top:1px solid #b3b9a9; font-size:.92rem; font-weight:700; }
.salons-guide.salons-hub nav.hub-jump { display:flex; flex-wrap:wrap; gap:4px 18px; margin:14px 0 0; padding:0; border:0; background:none; box-shadow:none; font-size:.9rem; }
.salons-guide.salons-hub .hub-jump a { display:inline-flex; align-items:center; min-height:44px; font-weight:600; }
.salons-guide.salons-hub .hub-section { margin:34px 0; }
.salons-guide.salons-hub .hub-section-head { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:baseline; gap:5px 18px; margin-bottom:18px; }
.salons-guide.salons-hub .hub-section-head h2 { margin:0; font-size:1.65rem; }
.salons-guide.salons-hub .hub-section-head p { margin:0; color:#59645e; font-size:.88rem; }
.salons-guide.salons-hub ul.hub-picks { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin:0; padding:0; list-style:none; }
.salons-guide.salons-hub .hub-picks > li { display:flex; min-width:0; margin:0; padding:0; list-style:none; }
.salons-guide.salons-hub .hub-pick { display:flex; flex-direction:column; width:100%; min-width:0; padding:20px; border:1px solid #d5dfd8; border-top:5px solid #075e51; border-radius:6px; background:#fffdf8; }
.salons-guide.salons-hub .hub-pick--warm { border-top-color:#963f2f; }
.salons-guide.salons-hub .hub-pick .hub-date { align-self:flex-start; margin:0 0 13px; padding:5px 8px; color:#173e39; background:#eaf1e9; font-size:.82rem; font-weight:700; line-height:1.4; }
.salons-guide.salons-hub .hub-pick--warm .hub-date { color:#7d3024; background:#fae8df; }
.salons-guide.salons-hub .hub-pick h3 { margin:0 0 9px; font-size:1.24rem; line-height:1.25; }
.salons-guide.salons-hub .hub-pick h3 a { text-decoration:none; }
.salons-guide.salons-hub .hub-pick h3 a:hover { text-decoration:underline; }
.salons-guide.salons-hub .hub-pick .hub-venue { margin:0 0 10px; color:#536159; font-size:.85rem; line-height:1.45; }
.salons-guide.salons-hub .hub-pick .hub-copy { flex:1; margin:0 0 12px; font-size:.93rem; line-height:1.55; }
.salons-guide.salons-hub .hub-pick .hub-pick-link { display:inline-flex; align-items:center; align-self:flex-start; min-height:44px; font-size:.87rem; font-weight:700; }
.salons-guide.salons-hub .hub-more { margin:17px 0 0; padding:12px 0; border-top:1px solid #d5dfd8; font-size:.94rem; }
.salons-guide.salons-hub .hub-pro { padding:22px; border:1px solid #d8c59f; border-left:5px solid #9b7330; border-radius:6px; background:#faf4e6; }
.salons-guide.salons-hub .hub-pro > h2 { margin:0 0 8px; font-size:1.45rem; }
.salons-guide.salons-hub .hub-pro > p { margin:0 0 15px; max-width:78ch; }
.salons-guide.salons-hub ul.hub-pro-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; list-style:none; margin:0; padding:0; }
.salons-guide.salons-hub .hub-pro-list > li { min-width:0; margin:0; padding:0; list-style:none; }
.salons-guide.salons-hub .hub-pro-list h3 { margin:0 0 7px; font-size:1.08rem; }
.salons-guide.salons-hub .hub-pro-list p { margin:5px 0; font-size:.87rem; line-height:1.5; }
.salons-guide.salons-hub .hub-pro-date { font-weight:700; color:#644812; }
.salons-guide.salons-hub .hub-places { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 26px; margin:0; }
.salons-guide.salons-hub .hub-place { min-width:0; padding:15px 0; border-top:1px solid #d5dfd8; }
.salons-guide.salons-hub .hub-place dt { margin:0 0 7px; font-size:1rem; font-weight:700; color:#173e39; }
.salons-guide.salons-hub .hub-place dd { margin:0; font-size:.92rem; line-height:1.6; }
.salons-guide.salons-hub .hub-practical { padding:20px 22px; border:1px solid #d5dfd8; border-radius:6px; background:#f1f5ef; }
.salons-guide.salons-hub .hub-practical > h2 { margin:0 0 13px; font-size:1.3rem; }
.salons-guide.salons-hub .hub-practical p { margin:8px 0; font-size:.94rem; }
.salons-guide.salons-hub .hub-other { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.salons-guide.salons-hub .hub-other a { display:flex; flex-direction:column; gap:6px; padding:16px 18px; border:1px solid #d5dfd8; border-radius:5px; color:#173e39; background:#fff; text-decoration:none; }
.salons-guide.salons-hub .hub-other a:hover { background:#eef5ef; }
.salons-guide.salons-hub .hub-other span { font-size:.89rem; line-height:1.5; }
.salons-guide.salons-hub .hub-bottom { display:flex; flex-wrap:wrap; gap:10px 24px; padding-top:15px; border-top:1px solid #d5dfd8; }
.salons-guide.salons-hub .hub-bottom a { display:inline-flex; align-items:center; min-height:44px; font-size:.93rem; font-weight:700; }
.salons-guide.salons-hub :is(a,summary):focus-visible { outline:3px solid #963f2f; outline-offset:4px; }
.salons-guide.salons-hub .hub-hero a:focus-visible { outline-color:#f1d596; }
@supports selector(main:has(.salons-hub)) {
  main.main:has(.salons-hub) #content > .cartouche h1 { max-width:28ch; margin-bottom:22px; color:#173e39; font-size:clamp(1.8rem,3.4vw,2.7rem); font-weight:700; line-height:1.15; }
  main.main:has(.salons-hub) #content > .texte { margin-top:0; }
  main.main:has(.salons-hub) #content > .menu_articles { margin-top:24px; padding-top:24px; border-top:2px solid #d5dfd8; }
  main.main:has(.salons-hub) #content > .menu_articles > ul { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin:0; padding:0; list-style:none; }
  main.main:has(.salons-hub) #content > .menu_articles > ul > li { float:none; min-width:0; margin:0; padding:18px; border:1px solid #d5dfd8; border-radius:6px; background:#fffdf8; list-style:none; }
  main.main:has(.salons-hub) #content > .menu_articles > ul > li > strong { display:block; font-size:1.03rem; line-height:1.4; }
  main.main:has(.salons-hub) #content > .menu_articles > ul > li > strong a { color:#173e39; }
  main.main:has(.salons-hub) #content > .menu_articles > ul > li > br { display:none; }
  main.main:has(.salons-hub) #content > .menu_articles small { display:block; margin-top:7px; color:#59645e; font-size:.78rem; line-height:1.4; }
  main.main:has(.salons-hub) #content > .menu_articles .introduction { clear:both; display:-webkit-box; -webkit-line-clamp:4; -webkit-box-orient:vertical; overflow:hidden; margin-top:10px; color:#47554d; font-size:.9rem; line-height:1.55; }
  main.main:has(.salons-hub) #content > .menu_articles .introduction p { margin:0; }
  main.main:has(.salons-hub) #content > .menu_articles img.spip_logo { float:right; width:80px; height:80px; margin:0 0 8px 12px; object-fit:contain; }
}
@media (max-width:850px) {
  .salons-guide.salons-hub ul.hub-picks { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:640px) {
  main.main:has(.salons-hub) #content > .menu_articles > ul { grid-template-columns:minmax(0,1fr); }
  .salons-guide.salons-hub .hub-hero { padding:19px 16px; border-radius:7px; }
  .salons-guide.salons-hub .hub-intro { font-size:.98rem; }
  .salons-guide.salons-hub nav.hub-months,
  .salons-guide.salons-hub ul.hub-picks,
  .salons-guide.salons-hub ul.hub-pro-list,
  .salons-guide.salons-hub .hub-places,
  .salons-guide.salons-hub .hub-other { grid-template-columns:minmax(0,1fr); }
  .salons-guide.salons-hub a.hub-month { padding:16px; }
  .salons-guide.salons-hub .hub-month-copy { margin:10px 0; }
  .salons-guide.salons-hub .hub-month-name { font-size:1.4rem; }
  .salons-guide.salons-hub .hub-month-number { font-size:2.7rem; }
  .salons-guide.salons-hub .hub-section { margin:26px 0; }
  .salons-guide.salons-hub .hub-section-head h2 { font-size:1.4rem; }
  .salons-guide.salons-hub .hub-pick { padding:16px; }
  .salons-guide.salons-hub .hub-pro, .salons-guide.salons-hub .hub-practical { padding:17px; }
  .salons-guide.salons-hub .hub-pro-list > li + li { padding-top:13px; border-top:1px solid #d8c59f; }
}
@container salons (max-width:620px) {
  .salons-guide.salons-hub nav.hub-months,
  .salons-guide.salons-hub ul.hub-picks,
  .salons-guide.salons-hub ul.hub-pro-list,
  .salons-guide.salons-hub .hub-places,
  .salons-guide.salons-hub .hub-other { grid-template-columns:minmax(0,1fr); }
}
@media print {
  .salons-guide.salons-hub .hub-hero, .salons-guide.salons-hub a.hub-month { color:#000; background:#fff; border:1px solid #aaa; }
  .salons-guide.salons-hub .hub-hero > h2, .salons-guide.salons-hub .hub-hero .hub-kicker { color:#000; }
  .salons-guide.salons-hub .hub-jump, .salons-guide.salons-hub .hub-bottom { display:none; }
  .salons-guide.salons-hub .hub-pick, .salons-guide.salons-hub .hub-pro-list > li { break-inside:avoid; }
}

/* Groupements : salons apparentés dans une même fiche, identités conservées. */
.salons-guide .salons-group-member { min-width:0; margin:16px 0 0; padding:14px 0 0; border-top:1px solid var(--salons-line); }
.salons-guide .salons-group-member > h4 { margin:0 0 8px; font-size:1.06rem; }
.salons-guide .salons-group-member > p { margin:8px 0; }
.salons-guide .salons-session { margin:12px 0; padding-left:12px; border-left:2px solid var(--salons-line); }
.salons-guide .salons-session h4 { margin:8px 0 4px; }


/* Nice : horaires détaillés et groupes de salons. */
.salons-guide .salons-hours { margin:12px 0; border:1px solid var(--salons-line); border-radius:4px; padding:10px 12px; }
.salons-guide .salons-hours summary { cursor:pointer; min-height:30px; color:var(--salons-accent); font-weight:700; }
.salons-guide .salons-hours p { font-size:.94em; }
.salons-guide .salons-group-member > h4 { margin:0 0 8px; font-size:1.1rem; line-height:1.4; }
.salons-guide .monthly-card:target,.salons-guide .salons-group-member:target { outline:2px solid #a86418; outline-offset:3px; }

/* Nice 1.5.0-nice.1 — rubrique en colonnes, six salons et archives.

   Activation : salons-hub--nice + data-salons-layout="columns". */
.salons-guide.salons-hub.salons-hub--bordeaux { max-width:740px; }
.salons-guide.salons-hub.salons-hub--bordeaux .hub-hero { border-top:7px solid #c47a61; }
.salons-guide.salons-hub.salons-hub--bordeaux .hub-intro { max-width:62ch; }
.salons-guide.salons-hub.salons-hub--bordeaux ul.hub-picks { grid-template-columns:repeat(2,minmax(0,1fr)); }
.salons-guide.salons-hub.salons-hub--bordeaux ul.hub-pro-list { grid-template-columns:minmax(0,1fr); gap:14px; }
.salons-guide.salons-hub.salons-hub--bordeaux .hub-pro-list > li + li { padding-top:14px; border-top:1px solid #d8c59f; }
.salons-guide.salons-hub.salons-hub--bordeaux nav.hub-archives { display:flex; flex-wrap:wrap; gap:8px; margin:12px 0 0; padding:0; border:0; background:none; box-shadow:none; }
.salons-guide.salons-hub.salons-hub--bordeaux .hub-archives a { display:inline-flex; align-items:center; min-height:44px; padding:8px 12px; border:1px solid #9bb2a7; border-radius:5px; color:#173e39; background:#eef5ef; font-size:.9rem; font-weight:700; text-decoration:none; }
.salons-guide.salons-hub.salons-hub--bordeaux .hub-archives a:hover { background:#f7ddd0; }
.salons-guide.salons-hub.salons-hub--bordeaux .hub-index-heading { margin:30px 0 0; font-size:1.35rem; }
@supports selector(main:has(.salons-hub--bordeaux)) {
  main.main:has(.salons-hub--bordeaux[data-salons-layout="columns"]) #content { width:100%; max-width:none; min-width:0; }
  main.main:has(.salons-hub--bordeaux[data-salons-layout="columns"]) #content > .texte { box-sizing:border-box; float:none; clear:both; width:100%; max-width:none; min-width:0; margin:0; padding:0; }
}
@media screen and (min-width:1024px) {
  main.main:has(.salons-hub--bordeaux[data-salons-layout="columns"]) > .wrapper { box-sizing:border-box; float:left; clear:both; width:65%; max-width:740px; min-width:0; margin:0; }
  main.main:has(.salons-hub--bordeaux[data-salons-layout="columns"]) > aside.aside { box-sizing:border-box; float:right; clear:none; width:29%; max-width:none; min-width:0; margin:0; padding-top:0; border-top:0; }
}
@media screen and (max-width:1023px) {
  main.main:has(.salons-hub--bordeaux[data-salons-layout="columns"]) > .wrapper { box-sizing:border-box; float:none; clear:both; width:100%; max-width:740px; min-width:0; margin:0 auto; }
  main.main:has(.salons-hub--bordeaux[data-salons-layout="columns"]) > aside.aside { box-sizing:border-box; float:none; clear:both; width:100%; max-width:740px; min-width:0; margin:32px auto 0; padding-top:20px; border-top:1px solid #d5dfd8; }
}
@media (max-width:640px) {
  .salons-guide.salons-hub.salons-hub--bordeaux ul.hub-picks { grid-template-columns:minmax(0,1fr); }
}
@container salons (max-width:620px) {
  .salons-guide.salons-hub.salons-hub--bordeaux ul.hub-picks { grid-template-columns:minmax(0,1fr); }
}


/* Ajustements limités à la rubrique Nice. */
.salons-guide.salons-hub.salons-hub--bordeaux .hub-pick-link { gap:7px; }
.salons-guide.salons-hub.salons-hub--bordeaux .hub-more > p { margin:8px 0; }
.salons-guide.salons-hub.salons-hub--bordeaux .hub-pro > .hub-pro-more { margin:16px 0 0; padding-top:13px; border-top:1px solid #d8c59f; font-size:.9rem; }
.salons-guide.salons-hub.salons-hub--bordeaux nav.hub-archives { width:100%; height:auto; min-width:0; line-height:1.4; }
.salons-guide.salons-hub.salons-hub--bordeaux .hub-archives a { flex:0 1 auto; float:none; max-width:100%; margin:0; }
.salons-guide.salons-hub.salons-hub--bordeaux .hub-archives a:focus-visible { outline:3px solid #963f2f; outline-offset:4px; }

/* Nice : repérage des fiches ciblées et horaires d’ouverture continue. */
.salons-guide--bordeaux .monthly-card:target { outline:2px solid #a86418; outline-offset:3px; }
.salons-guide--bordeaux .salons-hours-line { margin:12px 0; }

/* 1.6.0-nice.1 — navigation de rubrique indépendante du nav global du site.
   Le socle des articles mensuels et leurs corrections de largeur est conservé. */
.salons-guide.salons-hub.salons-hub--bordeaux nav.hub-months,
.salons-guide.salons-hub.salons-hub--bordeaux nav.hub-jump {
  float:none; width:100%; height:auto; min-width:0;
}

/* 1.7.0-nice.1 — cartes régionales et repères de la rubrique.
   Ajouts limités à salons-hub--nice ; socle des articles conservé. */
.salons-guide.salons-hub.salons-hub--bordeaux .hub-hero {
  background:linear-gradient(135deg,#173e39 0%,#173e39 64%,#23594f 100%);
}
.salons-guide.salons-hub.salons-hub--bordeaux ul.hub-region-list {
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px;
  margin:0; padding:0; list-style:none;
}
.salons-guide.salons-hub.salons-hub--bordeaux .hub-region-list > li {
  min-width:0; margin:0; padding:17px 18px; border:1px solid #e4dac3;
  border-left:4px solid #997336; border-radius:5px; background:#fffaf0; list-style:none;
}
.salons-guide.salons-hub.salons-hub--bordeaux .hub-region-list h3 { margin:6px 0; font-size:1.1rem; }
.salons-guide.salons-hub.salons-hub--bordeaux .hub-region-list p { margin:6px 0; font-size:.91rem; line-height:1.5; }
.salons-guide.salons-hub.salons-hub--bordeaux .hub-region-list .hub-region-date { color:#644812; font-size:.8rem; font-weight:700; }
.salons-guide.salons-hub.salons-hub--bordeaux .hub-region-list .hub-region-venue { color:#536159; font-size:.82rem; }
.salons-guide.salons-hub.salons-hub--bordeaux .hub-pro > .hub-pro-more { margin:18px 0 0; padding-top:16px; border-top:1px solid #d8c59f; }
.salons-guide.salons-hub.salons-hub--bordeaux .hub-pro-more h3 { margin:0 0 8px; font-size:1.1rem; }
.salons-guide.salons-hub.salons-hub--bordeaux .hub-pro-more p { margin:8px 0; font-size:.91rem; }
@media (max-width:640px) {
  .salons-guide.salons-hub.salons-hub--bordeaux ul.hub-region-list { grid-template-columns:minmax(0,1fr); }
}
@container salons (max-width:620px) {
  .salons-guide.salons-hub.salons-hub--bordeaux ul.hub-region-list { grid-template-columns:minmax(0,1fr); }
}
@media print {
  .salons-guide.salons-hub.salons-hub--bordeaux .hub-hero { background:#fff; }
  .salons-guide.salons-hub.salons-hub--bordeaux .hub-region-list > li { break-inside:avoid; }
}


/* 1.7.1-nice.1 — finition de la rubrique de septembre 2026.
   Le CSS 1.7.0-nice.1 est conservé intégralement ci-dessus.
   Toutes les règles ci-dessous sont limitées à la rubrique Nice. */
.salons-guide.salons-hub.salons-hub--bordeaux .hub-notice {
  margin:18px 0 0; padding:15px 18px; border:1px solid #d6aa98;
  border-left:5px solid #963f2f; border-radius:5px; background:#fcf1eb;
}
.salons-guide.salons-hub.salons-hub--bordeaux .hub-notice > h3 {
  margin:0 0 7px; color:#763322; font-size:1.06rem; line-height:1.4;
}
.salons-guide.salons-hub.salons-hub--bordeaux .hub-notice p { margin:0; font-size:.92rem; }
.salons-guide.salons-hub.salons-hub--bordeaux .hub-status {
  display:inline-block; padding:3px 7px; margin-right:6px;
  border-radius:3px; color:#fff; background:#763322;
  font-size:.75rem; font-weight:700; letter-spacing:.035em; vertical-align:middle;
}
.salons-guide.salons-hub.salons-hub--bordeaux .hub-more h3 { margin:0 0 10px; font-size:1.1rem; }
.salons-guide.salons-hub.salons-hub--bordeaux .hub-region-list h3 a { text-decoration:none; }
.salons-guide.salons-hub.salons-hub--bordeaux .hub-region-list h3 a:hover { text-decoration:underline; }
.salons-guide.salons-hub.salons-hub--bordeaux .hub-region-list .hub-pick-link {
  display:inline-flex; align-items:center; min-height:44px; font-size:.88rem; font-weight:700;
}
.salons-guide.salons-hub.salons-hub--bordeaux .hub-region-list > li { display:flex; flex-direction:column; }
.salons-guide.salons-hub.salons-hub--bordeaux .hub-region-copy { flex:1; }
.salons-guide.salons-hub.salons-hub--bordeaux .hub-archives a { white-space:normal; text-align:center; }
@media print {
  .salons-guide.salons-hub.salons-hub--bordeaux .hub-notice { break-inside:avoid; }
}


/* Nice : navigation du programme indépendante des dimensions du nav global. */
.salons-guide.salons-guide--bordeaux nav.monthly-nav {
  float:none; height:auto; min-width:0; max-width:100%;
}
.salons-guide.salons-guide--bordeaux .salons-days { font-size:.95em; }
.salons-guide.salons-guide--bordeaux .salons-hours-block > p { margin-bottom:4px; }
.salons-guide.salons-guide--bordeaux .salons-session p { font-size:.94em; }


/* 1.7.2-nice.1 — rubrique Nice : couleurs, thèmes et admissions.
   La feuille complète 1.7.1-nice.1 est conservée ci-dessus.
   Ajouts limités à salons-hub--nice ; articles mensuels inchangés. */
.salons-guide.salons-hub.salons-hub--bordeaux .hub-hero {
  background:linear-gradient(135deg,#143e47 0%,#143e47 60%,#256272 100%);
  border-top-color:#e2ae72;
}
.salons-guide.salons-hub.salons-hub--bordeaux .hub-hero > h2 { max-width:24ch; }
.salons-guide.salons-hub.salons-hub--bordeaux .hub-theme {
  margin:0 0 6px; color:#526159; font-size:.76rem;
  font-weight:700; letter-spacing:.045em; text-transform:uppercase;
}
.salons-guide.salons-hub.salons-hub--bordeaux .hub-access {
  margin:0 0 8px; padding-top:9px; border-top:1px solid #d5dfd8;
  font-size:.84rem; line-height:1.55; color:#37483e;
}
.salons-guide.salons-hub.salons-hub--bordeaux .hub-pick .hub-date {
  font-size:.83rem; font-variant-numeric:tabular-nums; margin-bottom:12px;
}
.salons-guide.salons-hub.salons-hub--bordeaux .hub-pick:not(.hub-pick--warm) { border-top-color:#256272; }
.salons-guide.salons-hub.salons-hub--bordeaux .hub-pick:not(.hub-pick--warm) .hub-date { background:#e7f0f2; color:#143e47; }
.salons-guide.salons-hub.salons-hub--bordeaux nav.hub-bottom,
.salons-guide.salons-hub.salons-hub--bordeaux nav.hub-archives { float:none; height:auto; min-width:0; max-width:100%; }
.salons-guide.salons-hub.salons-hub--bordeaux .hub-pick-link { text-wrap:pretty; }
@media print {
  .salons-guide.salons-hub.salons-hub--bordeaux .hub-hero { background:#fff; border-top-color:#777; }
}

/* Bordeaux : fiches communes d’orientation, identités et invitations distinctes. */
.salons-guide.salons-guide--bordeaux .salons-group-member { margin:18px 0 0; padding:14px 0 0; border-top:1px solid var(--salons-line); }
.salons-guide.salons-guide--bordeaux .salons-group-member h4 { margin:0 0 8px; }
.salons-guide.salons-guide--bordeaux .salons-group-member p { margin:7px 0; }
.salons-guide.salons-guide--bordeaux .salons-session { margin:14px 0; padding:0 0 0 14px; border-left:3px solid var(--salons-line); }
.salons-guide.salons-guide--bordeaux .salons-practical-note { font-size:.94em; }


/* Bordeaux 1.7.3-bordeaux.1 — couleur de rubrique et repères études/emploi.
   Ajouts limités à salons-hub--bordeaux ; programmes mensuels conservés. */
.salons-guide.salons-hub.salons-hub--bordeaux {
  --salons-ink:#492535; --salons-accent:#6d354a;
}
.salons-guide.salons-hub.salons-hub--bordeaux .hub-hero {
  background:linear-gradient(135deg,#422132 0%,#592b3e 65%,#72374c 100%);
  border-top-color:#dca767;
}
.salons-guide.salons-hub.salons-hub--bordeaux .hub-hero > h2 { max-width:24ch; }
.salons-guide.salons-hub.salons-hub--bordeaux .hub-hero .hub-kicker { color:#f3d7a7; }
.salons-guide.salons-hub.salons-hub--bordeaux a.hub-month { background:#fff3db; color:#492535; }
.salons-guide.salons-hub.salons-hub--bordeaux a.hub-month--novembre { background:#f3dfe7; }
.salons-guide.salons-hub.salons-hub--bordeaux a.hub-month:hover { background:#fffdf8; border-color:#b8895e; }
.salons-guide.salons-hub.salons-hub--bordeaux .hub-month-number { color:#845b3b; }
.salons-guide.salons-hub.salons-hub--bordeaux .hub-month--novembre .hub-month-number { color:#71394d; }
.salons-guide.salons-hub.salons-hub--bordeaux .hub-pick:not(.hub-pick--warm) { border-top-color:#71394d; }
.salons-guide.salons-hub.salons-hub--bordeaux .hub-pick:not(.hub-pick--warm) .hub-date { color:#542639; background:#f3e6eb; }
.salons-guide.salons-hub.salons-hub--bordeaux .hub-pick--warm { border-top-color:#98623c; }
.salons-guide.salons-hub.salons-hub--bordeaux .hub-pick--warm .hub-date { color:#704320; background:#fbecd5; }
.salons-guide.salons-hub.salons-hub--bordeaux .hub-notice { border-left-color:#98623c; background:#faf3e6; }
.salons-guide.salons-hub.salons-hub--bordeaux ul.hub-study-grid {
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px;
  list-style:none; margin:0; padding:0;
}
.salons-guide.salons-hub.salons-hub--bordeaux .hub-study-grid > li {
  min-width:0; margin:0; padding:18px; border:1px solid #d5dfd8;
  border-radius:6px; background:#f3f6f2; list-style:none;
}
.salons-guide.salons-hub.salons-hub--bordeaux .hub-study-grid h3 { margin:6px 0 9px; font-size:1.12rem; }
.salons-guide.salons-hub.salons-hub--bordeaux .hub-study-grid h3 a { text-decoration:none; }
.salons-guide.salons-hub.salons-hub--bordeaux .hub-study-grid h3 a:hover { text-decoration:underline; }
.salons-guide.salons-hub.salons-hub--bordeaux .hub-study-grid p { margin:8px 0; font-size:.92rem; }
.salons-guide.salons-hub.salons-hub--bordeaux .hub-study-grid .hub-study-date { color:#4b6054; font-size:.82rem; font-weight:700; }
.salons-guide.salons-hub.salons-hub--bordeaux .hub-study-grid .hub-venue { color:#526159; font-size:.84rem; }
.salons-guide.salons-hub.salons-hub--bordeaux .hub-study-grid .hub-access { font-size:.84rem; }
.salons-guide.salons-hub.salons-hub--bordeaux .hub-archives a { color:#542639; border-color:#c9acb6; background:#f6eef1; }
.salons-guide.salons-hub.salons-hub--bordeaux .hub-archives a:hover { background:#f3dfe7; }
main.main:has(.salons-hub--bordeaux) #content > .cartouche h1 { color:#492535; }
@media (max-width:640px) {
  .salons-guide.salons-hub.salons-hub--bordeaux ul.hub-study-grid { grid-template-columns:minmax(0,1fr); }
}
@container salons (max-width:620px) {
  .salons-guide.salons-hub.salons-hub--bordeaux ul.hub-study-grid { grid-template-columns:minmax(0,1fr); }
}
@media print {
  .salons-guide.salons-hub.salons-hub--bordeaux .hub-hero,
  .salons-guide.salons-hub.salons-hub--bordeaux a.hub-month { background:#fff; color:#000; border-color:#777; }
  .salons-guide.salons-hub.salons-hub--bordeaux .hub-hero .hub-kicker { color:#000; }
  .salons-guide.salons-hub.salons-hub--bordeaux .hub-study-grid > li { break-inside:avoid; }
}

/* eVous — navigation transversale commune, version 1.0.0 — 25/09/2026. */


:is(body, #content) .evous-transversaux {
  --transversaux-accent: #075e51;
  --transversaux-ink: #173e39;
  --transversaux-line: #d5dfd8;
  --transversaux-background: #f5f7f3;
  display: block;
  float: none;
  clear: both;
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  max-width: 740px;
  height: auto;
  margin: 28px 0 20px;
  padding: 20px;
  border: 1px solid var(--transversaux-line);
  border-top: 3px solid var(--transversaux-accent);
  border-radius: 8px;
  background: var(--transversaux-background);
  color: var(--transversaux-ink);
  font-family: inherit;
  font-size: 1rem;
  line-height: 1.5;
  text-align: left;
  overflow-wrap: break-word;
}

.evous-transversaux *,
.evous-transversaux *::before,
.evous-transversaux *::after {
  box-sizing: border-box;
}

:is(body, #content) .evous-transversaux .evous-transversaux__titre {
  margin: 0 0 15px;
  padding: 0;
  border: 0;
  color: var(--transversaux-ink);
  font-size: 1.125rem;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: normal;
  text-transform: none;
}

:is(body, #content) .evous-transversaux .evous-transversaux__liens {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr));
  gap: 10px;
  clear: both;
  float: none;
  width: 100%;
  min-width: 0;
  max-width: none;
  margin: 0;
  padding: 0;
  color: var(--transversaux-ink);
  font-size: .9375rem;
  line-height: 1.5;
}

/* Paragraphes et listes éventuels produits par SPIP : même grille.
   Le texte de la brève est destiné ici à une liste de liens de navigation. */
:is(body, #content) .evous-transversaux .evous-transversaux__liens > :is(p, ul, ol) {
  grid-column: 1 / -1;
  margin: 0;
  padding: 0;
  list-style: none;
}

:is(body, #content) .evous-transversaux .evous-transversaux__liens > :is(ul, ol),
:is(body, #content) .evous-transversaux .evous-transversaux__liens > p:has(> a) {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr));
  gap: 10px;
}

:is(body, #content) .evous-transversaux .evous-transversaux__liens li {
  min-width: 0;
  margin: 0;
  padding: 0;
  list-style: none;
}

:is(body, #content) .evous-transversaux .evous-transversaux__liens li > p {
  margin: 0;
  padding: 0;
}

:is(body, #content) .evous-transversaux .evous-transversaux__liens a {
  display: block;
  width: 100%;
  min-width: 0;
  min-height: 44px;
  margin: 0;
  padding: 11px 13px;
  border: 1px solid var(--transversaux-line);
  border-radius: 5px;
  background: #fff;
  color: var(--transversaux-accent);
  font-size: .9375rem;
  font-weight: 400;
  line-height: 1.5;
  text-decoration: none;
  text-transform: none;
  white-space: normal;
  overflow-wrap: anywhere;
}

:is(body, #content) .evous-transversaux .evous-transversaux__liens a:visited {
  color: var(--transversaux-accent);
}

:is(body, #content) .evous-transversaux .evous-transversaux__liens a strong {
  color: var(--transversaux-ink);
  font-weight: 700;
}

:is(body, #content) .evous-transversaux .evous-transversaux__liens a:hover {
  border-color: var(--transversaux-accent);
  background: #eef5ef;
  color: var(--transversaux-ink);
  text-decoration: underline;
  text-underline-offset: .18em;
}

:is(body, #content) .evous-transversaux .evous-transversaux__liens a:focus-visible {
  outline: 3px solid #a86418;
  outline-offset: 3px;
}

/* Les anciens séparateurs de mise en page deviennent inutiles dans la grille. */
:is(body, #content) .evous-transversaux .evous-transversaux__liens :is(hr, br) {
  display: none;
}

@media (max-width: 540px) {
  :is(body, #content) .evous-transversaux {
    margin-top: 24px;
    padding: 16px;
  }

  :is(body, #content) .evous-transversaux .evous-transversaux__liens,
  :is(body, #content) .evous-transversaux .evous-transversaux__liens > :is(ul, ol),
  :is(body, #content) .evous-transversaux .evous-transversaux__liens > p:has(> a) {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media print {
  :is(body, #content) .evous-transversaux {
    max-width: none;
    padding: 12px 0;
    border: 0;
    border-top: 1px solid #999;
    border-radius: 0;
    background: #fff;
  }

  :is(body, #content) .evous-transversaux .evous-transversaux__liens a {
    break-inside: avoid;
    border-color: #bbb;
    background: #fff;
    color: #000;
  }
}













@media(max-width:640px){




}