diff --git a/401.html b/401.html
index 49a1b7f8699cb973cdaca9e431753d234e62a5bd..9f9ddb04d790b4fae484ae25e45db40c5d614938 100644
--- a/401.html
+++ b/401.html
@@ -1,6 +1,6 @@
-#HTTP_HEADER{"HTTP/1.0 401 Unauthorized"} 
-#HTTP_HEADER{"Cache-Control: no-store, no-cache, must-revalidate"} 
-#HTTP_HEADER{Pragma: no-cache} 
+#HTTP_HEADER{"HTTP/1.0 401 Unauthorized"}
+#HTTP_HEADER{"Cache-Control: no-store, no-cache, must-revalidate"}
+#HTTP_HEADER{Pragma: no-cache}
 [(#SET{titretop,<:soyezcreateurs:connexiontitle|attribut_html|sc_nettoyer_marqueur|texte_script:>})]
 <INCLURE{fond=noisettes/header/header}
 	{template=401}
@@ -11,11 +11,6 @@
 
 <div class="texte">
 <main id="main">
-[(#CONFIG{soyezcreateurs_layout/positioncartouchetitre,contenu}|=={contenu}|oui)
-	<div class="cartouche">
-		<div class="titrepage"><h1><:soyezcreateurs:connexiontitle|typo:></h1></div>
-	</div>
-]
 	<div id="letexte">
 	[(#CONFIG{soyezcreateurs/explicationslogin}|propre)]
 [(#REM) Il ne faut pas chercher a afficher le panneau de login si on est deja identifie...]
@@ -38,4 +33,4 @@
 	{template=Connexion}
 	{titretop=#GET{titretop}}
 >
-#FILTRE{mini_html}
\ No newline at end of file
+#FILTRE{mini_html}
diff --git a/404.html b/404.html
index 2dce36ce03a928ceef8c47969a2d0ede5c27a370..cb2a9346eab38d5e8a6dd53463c1e76ec3e0690a 100644
--- a/404.html
+++ b/404.html
@@ -1,4 +1,4 @@
-<?php 
+<?php
 spip_log('404 REQUEST_URI: '.$_SERVER['REQUEST_URI'].' | User agent: '.$_SERVER['HTTP_USER_AGENT'].' | Referer: '.(isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER']:'N/A'), 'quatrecentquatre'._LOG_INFO_IMPORTANTE);
 header("HTTP/1.1 404 Not Found", true);
 ?>[(#HTTP_HEADER{"Cache-Control: no-store, no-cache, must-revalidate"}
@@ -16,11 +16,6 @@ header("HTTP/1.1 404 Not Found", true);
 >
 <div class="texte">
 <main id="main">
-[(#CONFIG{soyezcreateurs_layout/positioncartouchetitre,contenu}|=={contenu}|oui)
-<div class="cartouche">
-<div class="titrepage"><h1><:soyezcreateurs:erreur_excuses_404:></h1></div>
-</div>
-]
 	<div id="letexte">
 	[(#SET{nomsite,[(#NOM_SITE_SPIP|supprimer_tags)]})]
 	<:soyezcreateurs:erreur_excuses_404_explications{nomsite=#GET{nomsite},urlsite=#URL_SITE_SPIP}:>
@@ -38,4 +33,4 @@ header("HTTP/1.1 404 Not Found", true);
 	titretop=#GET{titretop}
 	}
 >
-#FILTRE{mini_html}
\ No newline at end of file
+#FILTRE{mini_html}
diff --git a/aff_rub_complet.html b/aff_rub_complet.html
index c80201f3bf7717b28541e1ea89131993e4f9cfea..9201e8cca4bdffa00e9a15c92ccb0fc66d14dd14 100644
--- a/aff_rub_complet.html
+++ b/aff_rub_complet.html
@@ -16,11 +16,6 @@
 >
 <div class="texte">
 <main id="main">
-[(#CONFIG{soyezcreateurs_layout/positioncartouchetitre,contenu}|=={contenu}|oui)
-<div class="cartouche">
-<div class="titrepage"><h1 class="titre-texte">[(#TITRE)][(#PLUGIN{ARTICLE_PDF}|oui)#SECTEUR_PDF][(#PLUGIN{PDF_VERSION}|oui)<a href="#URL_PDF_VERSION{rubrique,#ID_RUBRIQUE}" title="<:pdf_version:icone_voir_pdf_version:> ([(#TITRE|supprimer_tags|attribut_html)])">[(#CHEMIN{prive/themes/spip/images/pdf_version-32.png}|balise_img{<:pdf_version:icone_voir_pdf_version:>})]</a>]</h1></div>
-</div>
-]
 	<div id="letexte">
 [(#INCLURE{fond=noisettes/aff_rub_complet_texte,id_rubrique})]
 	</div><!-- Fin de #LeTexte -->
diff --git a/agenda_calendrier.html b/agenda_calendrier.html
index 135752174cc700217d569ac59af841f86a1ab034..ea4b7e848a5f697709bc25c1549da92772f08574 100644
--- a/agenda_calendrier.html
+++ b/agenda_calendrier.html
@@ -13,11 +13,6 @@
     >
 <div class="texte">
 	<main id="main">
-		[(#CONFIG{soyezcreateurs_layout/positioncartouchetitre,contenu}|=={contenu}|oui)
-		<div class="cartouche">
-			<div class="titrepage">[(#ENV{id_rubrique}|non)<h1>[(#CONFIG{soyezcreateurs/texte_agenda}|extraire_multi|typo|sinon{<:soyezcreateurs:agenda:>})]</h1>][<h1 class="crayon rubrique-titre-#ENV{id_rubrique}">(#INFO_TITRE{rubrique, #ENV{id_rubrique}})</h1>]</div>
-		</div>
-		]
 		<INCLURE{fond=noisettes/agenda/agenda_affichages,ajax,env}>
 	</main>
 </div>
@@ -28,4 +23,4 @@
 	{id_rubrique=#ENV{id_rubrique}}
 	{rubriqueencours=#ID_RUBRIQUE}
 	{secteurencours=#INFO_ID_SECTEUR{rubrique,#ENV{id_rubrique}}}
->
\ No newline at end of file
+>
diff --git a/agenda_programmation.html b/agenda_programmation.html
index a99560800f9f6b5024c1631ad9660f0f204f45d7..f6c42a14926e2c1ab0c184868ea6c32d8d1c8919 100644
--- a/agenda_programmation.html
+++ b/agenda_programmation.html
@@ -10,19 +10,11 @@
 	{id_rubrique}
 	{date_debut}{jour_debut}{duree}
 	{type=agenda_programmation}
-	
+
 >
 <div class="texte">
 <main id="main">
 	<!-- Une : contenu de la rubrique -->
-[(#CONFIG{soyezcreateurs_layout/positioncartouchetitre,contenu}|=={contenu}|oui)
-	<div class="cartouche">
-		<div class="titrepage"><h1>
-			[(#SET{lelogo,[(#LOGO_RUBRIQUE_NORMAL|image_reduire{#CONFIG{soyezcreateurs_layout/largeurlogocontenuprincipal,#CONFIG{soyezcreateurs_layout/largeurlogocontenuautomatique,64}},#CONFIG{soyezcreateurs_layout/hauteurlogocontenuprincipal,#CONFIG{soyezcreateurs_layout/hauteurlogocontenuautomatique,64}}})]})][<img class="logo_rubrique" src="(#GET{lelogo}|extraire_attribut{src})" width="[(#GET{lelogo}|largeur)]" height="[(#GET{lelogo}|hauteur)]" alt="" />]
-			[(#TITRE)] - [(#GET{periode})]
-		</h1></div>
-	</div>
-]
 [(#CONFIG{soyezcreateurs_layout/positioncartouche,bas}|=={haut}|oui)[(#INCLURE{fond=noisettes/cartouches/themes_agenda_mensuel,page=agenda_programmation,id_rubrique=#ID_SECTEUR,date_th=#GET{date_th},id_mot,mots})]]
 	<div id="letexte">
 		[<div class="descriptif">(#DESCRIPTIF)</div>]
@@ -42,4 +34,4 @@
 	{titretop=#GET{titretop}}
 >
 </B_rubrique_principal>
-#FILTRE{mini_html}
\ No newline at end of file
+#FILTRE{mini_html}
diff --git a/annuaire.html b/annuaire.html
index ceb20dd9ba4033fcebd9b1a7d36751e276f83ca0..269c8daa409409f8d05141574be52a37c42fda8a 100644
--- a/annuaire.html
+++ b/annuaire.html
@@ -11,17 +11,12 @@
 >
 <div class="texte">
 <main id="main">
-[(#CONFIG{soyezcreateurs_layout/positioncartouchetitre,contenu}|=={contenu}|oui)
-<div class="cartouche">
-<div class="titrepage"><h1><:soyezcreateurs:annuaire:>&nbsp;: [<span class="#EDIT{prenom}">(#CIVILITE)</span> ][<span class="#EDIT{prenom}">(#PRENOM)</span> ][<span class="#EDIT{nom}">(#NOM)</span>]</h1></div>
-</div>
-]
 <div id="letexte">
 	<div id="annuaire">
 	<INCLURE{fond=noisettes/annuaire/contact,id_contact}>
-	
+
 	[(#REM) faudra mettre {si #ID_AUTEUR} sur la 3.0 ]
-	<BOUCLE_auteur_lie(AUTEURS){id_auteur}{tout}{statut==.*}>		
+	<BOUCLE_auteur_lie(AUTEURS){id_auteur}{tout}{statut==.*}>
 		[(#FORMULAIRE_ECRIRE_AUTEUR)]
 	</BOUCLE_auteur_lie>
 
@@ -40,11 +35,6 @@
 >
 <div class="texte">
 <main id="main">
-[(#CONFIG{soyezcreateurs_layout/positioncartouchetitre,contenu}|=={contenu}|oui)
-<div class="cartouche">
-<div class="titrepage"><h1><:soyezcreateurs:annuaire:>&nbsp;: #NOM</h1></div>
-</div>
-]
 <div id="letexte">
 	<div id="annuaire">
 <BOUCLE_AdressesOrganisation(ADRESSES){id_organisation}>
@@ -94,11 +84,6 @@
 >
 <div class="texte">
 <main id="main">
-[(#CONFIG{soyezcreateurs_layout/positioncartouchetitre,contenu}|=={contenu}|oui)
-<div class="cartouche">
-<div class="titrepage"><h1><:soyezcreateurs:annuaire:></h1></div>
-</div>
-]
 <div id="letexte">
 	<div id="annuaire">
 
@@ -154,4 +139,4 @@
 	{template=annuaire}
 	{titretop=#GET{titretop}}
 >
-#FILTRE{mini_html}
\ No newline at end of file
+#FILTRE{mini_html}
diff --git a/antichrono.html b/antichrono.html
index 7348b9d67e5c505fe22e5f69c82e66e3f7bfc660..5d34f70d2bf03628c122b831bcb3e6663236f3e3 100644
--- a/antichrono.html
+++ b/antichrono.html
@@ -7,11 +7,6 @@
 >
 <div class="texte">
 <main id="main">
-[(#CONFIG{soyezcreateurs_layout/positioncartouchetitre,contenu}|=={contenu}|oui)
-<div class="cartouche">
-<div class="titrepage"><h1>[(#CONFIG{soyezcreateurs/texte_actualite_toutes}|extraire_multi|typo|sinon{<:soyezcreateurs:actualite_toutes:>})] (<:soyezcreateurs:actualite_toutes_arbo:>)</h1></div>
-</div>
-]
 <div id="letexte">
 	<div class="onglets">
 		<ul>
@@ -59,4 +54,4 @@
 	{titretop=#GET{titretop}}
 	{template=Plan}
 >
-#FILTRE{mini_html}
\ No newline at end of file
+#FILTRE{mini_html}
diff --git a/antichrono_grid.html b/antichrono_grid.html
index 7dc93a31d896ac059f30fbdaf40d9f69f6e37f96..61da3d5a8e96670f14c1fb1536a640ec74935b5a 100644
--- a/antichrono_grid.html
+++ b/antichrono_grid.html
@@ -7,11 +7,6 @@
 >
 <div class="texte">
 <main id="main">
-[(#CONFIG{soyezcreateurs_layout/positioncartouchetitre,contenu}|=={contenu}|oui)
-<div class="cartouche">
-<div class="titrepage"><h1>[(#CONFIG{soyezcreateurs/texte_actualite_toutes}|extraire_multi|typo|sinon{<:soyezcreateurs:actualite_toutes:>})] (<:soyezcreateurs:actualite_toutes_blocs:>)</h1></div>
-</div>
-]
 <div id="letexte">
 	<div class="onglets">
 		<ul>
@@ -59,4 +54,4 @@
 	{titretop=#GET{titretop}}
 	{template=Plan}
 >
-#FILTRE{mini_html}
\ No newline at end of file
+#FILTRE{mini_html}
diff --git a/article.html b/article.html
index 6d796d4362c013e41d8e0f0be2c654b2ef1d3773..076a73159b892e729af124b3cc01c61aa1d9809e 100644
--- a/article.html
+++ b/article.html
@@ -29,9 +29,6 @@
 <div class="texte">
 [(#PLUGIN{SOCIALTAGS}|oui)<div id="socialtags"></div>]
 <main id="main">
-[(#CONFIG{soyezcreateurs_layout/positioncartouchetitre,contenu}|=={contenu}|oui)
-<INCLURE{fond=noisettes/cartouchetitre/article,env,lang}>]
-
 [<div id="motsaveclogo">(#INCLURE{fond=noisettes/affichermotslogo,id_article})</div>]
 
 	<div id="letexte" class="surlignable">
diff --git a/auteur.html b/auteur.html
index 87136d3845188fa47310d501bd8ce45c7bd692fc..05890f7a35a811f7fb6438a04f37d58919dba4fc 100644
--- a/auteur.html
+++ b/auteur.html
@@ -9,11 +9,6 @@
 <div class="texte surlignable">
 <main id="main">
 <!-- Une : affichage de l'auteur -->
-[(#CONFIG{soyezcreateurs_layout/positioncartouchetitre,contenu}|=={contenu}|oui)
-<div class="cartouche surlignable">
-<div class="titrepage"><h1 class="#EDIT{qui}">#NOM</h1></div>
-</div>
-]
 <div id="letexte">
 
 [<div class="#EDIT{bio}">[(#LOGO_AUTEUR|image_reduire{200,200}inserer_attribut{class, 'spip_logo spip_logos logo_auteur'})](#BIO)</div>]
@@ -54,11 +49,6 @@
 <div class="texte">
 <main id="main">
 <!-- Contenu : Tous les auteurs -->
-[(#CONFIG{soyezcreateurs_layout/positioncartouchetitre,contenu}|=={contenu}|oui)
-<div class="cartouche surlignable">
-<div class="titrepage"><h1><:soyezcreateurs:auteurs_site:></h1></div>
-</div>
-]
 	<div id="letexte">
 	<div class="chapo"><p class="spip"></p><:soyezcreateurs:auteurs_liste:></p></div>
 <ul class="spip">
diff --git a/bank_retour_attente.html b/bank_retour_attente.html
index 32fa7222ee7770c514246609d36fcfa0ce602241..3cd554f693a547f25593f99bc9246d5158d89bb0 100644
--- a/bank_retour_attente.html
+++ b/bank_retour_attente.html
@@ -1,41 +1,36 @@
-[(#REM)
-/*
- * Paiement Bancaire
- * module de paiement bancaire multi prestataires
- * stockage des transactions
- *
- * Auteurs :
- * Cedric Morin, Nursit.com
- * (c) 2012-2018 - Distribue sous licence GNU/GPL
- *
- */
-]
-[(#SET{titretop,<:bank:titre_reglement_attente|sc_nettoyer_marqueur|texte_script:>})]
-<INCLURE{fond=noisettes/header/header}
-	{template=bank}
-	{title=<:bank:titre_reglement_attente|texte_script:>}
-	{titretop=#GET{titretop}}
-	{type=bank_attente}
->
-<div class="texte">
-<main id="main">
-[(#CONFIG{soyezcreateurs_layout/positioncartouchetitre,contenu}|=={contenu}|oui)
-<div class="cartouche">
-<div class="titrepage"><h1><:bank:titre_reglement_attente:></h1></div>
-</div>
-]
-<BOUCLE_message(TRANSACTIONS){id_transaction}{transaction_hash}>[
-	(#MESSAGE|propre)
-][(#MODE|bank_afficher_attente_reglement{#ID_TRANSACTION,#TRANSACTION_HASH,#ENV{type}})]</BOUCLE_message>
-<p><:bank:confirme_reglement_attente:></p>
-<//B_message>
-</main>
-</div><!-- Fin de .texte -->
-
-
-
-<INCLURE{fond=noisettes/footer/footer}
-	{template=bank}
-	{titretop=#GET{titretop}}
->
-#FILTRE{mini_html}
\ No newline at end of file
+[(#REM)
+/*
+ * Paiement Bancaire
+ * module de paiement bancaire multi prestataires
+ * stockage des transactions
+ *
+ * Auteurs :
+ * Cedric Morin, Nursit.com
+ * (c) 2012-2018 - Distribue sous licence GNU/GPL
+ *
+ */
+]
+[(#SET{titretop,<:bank:titre_reglement_attente|sc_nettoyer_marqueur|texte_script:>})]
+<INCLURE{fond=noisettes/header/header}
+	{template=bank}
+	{title=<:bank:titre_reglement_attente|texte_script:>}
+	{titretop=#GET{titretop}}
+	{type=bank_attente}
+>
+<div class="texte">
+<main id="main">
+<BOUCLE_message(TRANSACTIONS){id_transaction}{transaction_hash}>[
+	(#MESSAGE|propre)
+][(#MODE|bank_afficher_attente_reglement{#ID_TRANSACTION,#TRANSACTION_HASH,#ENV{type}})]</BOUCLE_message>
+<p><:bank:confirme_reglement_attente:></p>
+<//B_message>
+</main>
+</div><!-- Fin de .texte -->
+
+
+
+<INCLURE{fond=noisettes/footer/footer}
+	{template=bank}
+	{titretop=#GET{titretop}}
+>
+#FILTRE{mini_html}
diff --git a/bank_retour_echec.html b/bank_retour_echec.html
index 34b342b912308a6c768f9561388cf8b9d16bc1e5..9061f050e632ac1bd579d1c202e62cb2f4496f7c 100644
--- a/bank_retour_echec.html
+++ b/bank_retour_echec.html
@@ -1,41 +1,36 @@
-[(#REM)
-/*
- * Paiement Bancaire
- * module de paiement bancaire multi prestataires
- * stockage des transactions
- *
- * Auteurs :
- * Cedric Morin, Nursit.com
- * (c) 2012-2018 - Distribue sous licence GNU/GPL
- *
- */
-]
-[(#SET{titretop,<:bank:titre_reglement_annule|sc_nettoyer_marqueur|texte_script:>})]
-<INCLURE{fond=noisettes/header/header}
-	{template=bank}
-	{title=<:bank:titre_reglement_annule|texte_script:>}
-	{titretop=#GET{titretop}}
-	{type=bank_echec}
->
-<div class="texte">
-<main id="main">
-[(#CONFIG{soyezcreateurs_layout/positioncartouchetitre,contenu}|=={contenu}|oui)
-<div class="cartouche">
-<div class="titrepage"><h1><:bank:titre_reglement_annule:></h1></div>
-</div>
-]
-<BOUCLE_message(TRANSACTIONS){id_transaction}{transaction_hash}>[
-	(#MESSAGE|propre)
-]</BOUCLE_message>
-<p><:bank:confirme_reglement_annule:></p>
-<//B_message>
-</main>
-</div><!-- Fin de .texte -->
-
-
-
-<INCLURE{fond=noisettes/footer/footer}
-	{template=bank}
-	{titretop=#GET{titretop}}
->
-#FILTRE{mini_html}
\ No newline at end of file
+[(#REM)
+/*
+ * Paiement Bancaire
+ * module de paiement bancaire multi prestataires
+ * stockage des transactions
+ *
+ * Auteurs :
+ * Cedric Morin, Nursit.com
+ * (c) 2012-2018 - Distribue sous licence GNU/GPL
+ *
+ */
+]
+[(#SET{titretop,<:bank:titre_reglement_annule|sc_nettoyer_marqueur|texte_script:>})]
+<INCLURE{fond=noisettes/header/header}
+	{template=bank}
+	{title=<:bank:titre_reglement_annule|texte_script:>}
+	{titretop=#GET{titretop}}
+	{type=bank_echec}
+>
+<div class="texte">
+<main id="main">
+<BOUCLE_message(TRANSACTIONS){id_transaction}{transaction_hash}>[
+	(#MESSAGE|propre)
+]</BOUCLE_message>
+<p><:bank:confirme_reglement_annule:></p>
+<//B_message>
+</main>
+</div><!-- Fin de .texte -->
+
+
+
+<INCLURE{fond=noisettes/footer/footer}
+	{template=bank}
+	{titretop=#GET{titretop}}
+>
+#FILTRE{mini_html}
diff --git a/bank_retour_ok.html b/bank_retour_ok.html
index 7d62644de475c3462508c7d1cd0765d2a3311a47..37ebbce5b05dfede00fcda524d7d62b6385ea9d9 100644
--- a/bank_retour_ok.html
+++ b/bank_retour_ok.html
@@ -1,41 +1,36 @@
-[(#REM)
-/*
- * Paiement Bancaire
- * module de paiement bancaire multi prestataires
- * stockage des transactions
- *
- * Auteurs :
- * Cedric Morin, Nursit.com
- * (c) 2012-2018 - Distribue sous licence GNU/GPL
- *
- */
-]
-[(#SET{titretop,<:bank:titre_reglement_ok|sc_nettoyer_marqueur|texte_script:>})]
-<INCLURE{fond=noisettes/header/header}
-	{template=bank}
-	{title=<:bank:titre_reglement_ok|texte_script:>}
-	{titretop=#GET{titretop}}
-	{type=bank_ok}
->
-<div class="texte">
-<main id="main">
-[(#CONFIG{soyezcreateurs_layout/positioncartouchetitre,contenu}|=={contenu}|oui)
-<div class="cartouche">
-<div class="titrepage"><h1><:bank:titre_reglement_ok:></h1></div>
-</div>
-]
-<BOUCLE_message(TRANSACTIONS){id_transaction}{transaction_hash}>[
-	(#MESSAGE|propre)
-]</BOUCLE_message>
-<p><:bank:confirme_reglement_pris_en_compte:></p>
-<//B_message>
-</main>
-</div><!-- Fin de .texte -->
-
-
-
-<INCLURE{fond=noisettes/footer/footer}
-	{template=bank}
-	{titretop=#GET{titretop}}
->
-#FILTRE{mini_html}
\ No newline at end of file
+[(#REM)
+/*
+ * Paiement Bancaire
+ * module de paiement bancaire multi prestataires
+ * stockage des transactions
+ *
+ * Auteurs :
+ * Cedric Morin, Nursit.com
+ * (c) 2012-2018 - Distribue sous licence GNU/GPL
+ *
+ */
+]
+[(#SET{titretop,<:bank:titre_reglement_ok|sc_nettoyer_marqueur|texte_script:>})]
+<INCLURE{fond=noisettes/header/header}
+	{template=bank}
+	{title=<:bank:titre_reglement_ok|texte_script:>}
+	{titretop=#GET{titretop}}
+	{type=bank_ok}
+>
+<div class="texte">
+<main id="main">
+<BOUCLE_message(TRANSACTIONS){id_transaction}{transaction_hash}>[
+	(#MESSAGE|propre)
+]</BOUCLE_message>
+<p><:bank:confirme_reglement_pris_en_compte:></p>
+<//B_message>
+</main>
+</div><!-- Fin de .texte -->
+
+
+
+<INCLURE{fond=noisettes/footer/footer}
+	{template=bank}
+	{titretop=#GET{titretop}}
+>
+#FILTRE{mini_html}
diff --git a/breve.html b/breve.html
index 2987b11bf3f17d36c451c3ca2c7b4ba3f04fe996..9cdce3ed0adfe42cc990a04894a9dddedceff652 100644
--- a/breve.html
+++ b/breve.html
@@ -17,9 +17,6 @@
 <div class="texte">
 <main id="main">
 <!-- Contenu : corps de la breve -->
-[(#CONFIG{soyezcreateurs_layout/positioncartouchetitre,contenu}|=={contenu}|oui)
-<INCLURE{fond=noisettes/cartouchetitre/breve,env,lang}>
-]
 	<div id="letexte" class="surlignable">
 [<div class="#EDIT{texte} entry-content">(#TEXTE|image_reduire{#CONFIG{soyezcreateurs_layout/maxlargeurimage,720},0})</div>]
 [<div class="chapo"><:voir_en_ligne:>&nbsp;: <a href="(#URL_SITE)" class="spip_out"[ title="(#NOM_SITE|supprimer_tags|attribut_html)"]>#NOM_SITE</a>.</div>]
@@ -38,4 +35,4 @@
 	{id_breve=#GET{id_breve}}
 >
 </B_breve_principal>
-#FILTRE{mini_html}
\ No newline at end of file
+#FILTRE{mini_html}
diff --git a/formulaires/configurer_soyezcreateurs_layout.html b/formulaires/configurer_soyezcreateurs_layout.html
index 28606f1df551c4372a9562c3c7be7dd44d65666c..9c3df617c8936c66aeff8a982b135e2cfafec51d 100755
--- a/formulaires/configurer_soyezcreateurs_layout.html
+++ b/formulaires/configurer_soyezcreateurs_layout.html
@@ -22,11 +22,6 @@ if (!function_exists('sc_ouinon_default')) {
 						defaut=960,
 						size=4}
 					)]
-					[(#SAISIE{input,largeurombre,
-						label=<:soyezcreateursprive:cfg_largeur_ombre:>,
-						defaut=0,
-						size=2}
-					)]
 					[(#SAISIE{input,largeurmenugauche,
 						label=<:soyezcreateursprive:cfg_largeur_menu_p:>,
 						defaut=180,
@@ -441,7 +436,21 @@ if (!function_exists('sc_ouinon_default')) {
 						cacher_option_intro=oui}
 					)]
 				</[(#VAL{ul}|saisie_balise_structure_formulaire)]>
-			</fieldset>
+			</fieldset>[
+			(#CONFIG{soyezcreateurs/mode_affichage,communiquant}|=={portailcognac}|oui)
+			<fieldset>
+				<h3 class="legend"><:soyezcreateursprive:cfg_navigationaccueilcognac:></h3>
+				<[(#VAL{ul}|saisie_balise_structure_formulaire)] class="editer-groupe">
+					[(#SAISIE{radio,navigationaccueilcognac,
+						label=<:soyezcreateursprive:cfg_navigationaccueilcognac_label:>,
+						data=#ARRAY{
+							affiche,<:soyezcreateursprive:cfg_affichage_affiche:>,
+							masque,<:soyezcreateursprive:cfg_affichage_masquer:>,
+						},
+						defaut=masque}
+					)]
+				</[(#VAL{ul}|saisie_balise_structure_formulaire)]>
+			</fieldset>]
 			<fieldset>
 				<h3 class="legend"><:soyezcreateursprive:cfg_position_cartouchetitre:></h3>
 				<[(#VAL{ul}|saisie_balise_structure_formulaire)] class="editer-groupe">
@@ -525,7 +534,7 @@ if (!function_exists('sc_ouinon_default')) {
 					},
 					defaut=avantgalerie}
 				)]
-			</[(#VAL{ul}|saisie_balise_structure_formulaire)]>				
+			</[(#VAL{ul}|saisie_balise_structure_formulaire)]>
 			</fieldset>
 			]
 			<fieldset>
@@ -614,6 +623,16 @@ if (!function_exists('sc_ouinon_default')) {
 			<fieldset>
 				<h3 class="legend"><:soyezcreateursprive:cfg_layout_gala:></h3>
 				<[(#VAL{ul}|saisie_balise_structure_formulaire)] class="editer-groupe">
+					[(#SAISIE{radio,layoutmoderne,
+						label=<:soyezcreateursprive:cfg_layoutmoderne_label:>,
+						data=#ARRAY{
+							fixe,<:soyezcreateursprive:cfg_layoutmoderne_fixe:>,
+							moderne,<:soyezcreateursprive:cfg_layoutmoderne_fluide:>,
+						},
+						defaut=fixe,
+						cacher_option_intro=oui,
+						explication=}
+					)]
 					<[(#VAL{li}|saisie_balise_structure_formulaire)] class="editer">
 						<:soyezcreateursprive:cfg_layout_gala_intro:>
 						<:soyezcreateursprive:cfg_layout_gala_explications:>
@@ -662,4 +681,4 @@ if (!function_exists('sc_ouinon_default')) {
 			</p>
 		</div>
 	</form>
-</div>
\ No newline at end of file
+</div>
diff --git a/forum.html b/forum.html
index d41cf630d27674dd9d30516960b4ec6985f25de0..67e0637f98a16fcd9be220706349ca4125d4ef6a 100644
--- a/forum.html
+++ b/forum.html
@@ -17,11 +17,6 @@
 
 <div class="texte">
 <main id="main">
-[(#CONFIG{soyezcreateurs_layout/positioncartouchetitre,contenu}|=={contenu}|oui)
-<div class="cartouche">
-<div class="titrepage"><h1 class="structure"><:poster_message:></h1></div>
-</div>
-]
 	<div id="letexte">
 <BOUCLE_forum_parent(FORUMS?) {id_forum}>
 	<h2><:soyezcreateurs:forum_enreponse_message:></h2>
@@ -68,4 +63,4 @@
 	titretop=#GET{titretop}
 	}
 >
-#FILTRE{mini_html}
\ No newline at end of file
+#FILTRE{mini_html}
diff --git a/identifiants.html b/identifiants.html
index 8800b68ddd607b14e9fa26d7309c75e4f910375c..0a53accda8bdadaedacc74003037d1ea8cfbfe25 100644
--- a/identifiants.html
+++ b/identifiants.html
@@ -13,11 +13,6 @@
 >
 <div class="texte">
 <main id="main">
-[(#CONFIG{soyezcreateurs_layout/positioncartouchetitre,contenu}|=={contenu}|oui)
-	<div class="cartouche">
-		<div class="titrepage"><h1><:pass_vousinscrire:></h1></div>
-	</div>
-]
 	#FORMULAIRE_INSCRIPTION{#ENV{mode},#ENV{focus},#ENV{id_rubrique}}
 </main>
 </div><!-- Fin de .texte -->
@@ -29,4 +24,4 @@
 	{titretop=#GET{titretop}}
 >
 ]
-#FILTRE{mini_html}
\ No newline at end of file
+#FILTRE{mini_html}
diff --git a/images/printer.css b/images/printer.css
index bdf188d30a52b9c9d40101a1f9c4aea94f612eb6..05b6eef1545a2ad3d439a7a876d4299cac012c7d 100644
--- a/images/printer.css
+++ b/images/printer.css
@@ -1,149 +1,148 @@
-/*a:after {
-	content: ' [' attr(href) '] ';
-}
-*/
-
-* {
-    transition: none !important;
-}
-
-html, body, .texte, #letexte {
-	background-color: #fff;
-	background-image: none;
-	color: #000;
-	font-family: "Trebuchet MS", verdana, arial, helvetica, sans-serif;
-	font-size: 12pt;
-}
-
-nav, aside, .navstuff, .retourtop, #navigation, #extra, #header, .spip-admin, #artrecents, #menuhaut, #menufooter, #miettesdepain, .spip-admin-bloc, .bouton_pdf, .retoursommaire, #participer , .socialtags, .notation, .spip-previsu, #bandeau_annonce, .forum-repondre, #nuage, #bandeaucontact, #datemajsitefooter, #mobile-header, .bandeaupartenaires, .menu_lien_participer {
-	display: none !important;
-}
-#content:before, #content:after { content: none; }
-.equilibre { min-height: auto!important; height: auto!important; }
-
-#wrapper, #container, #content, #footer, #footer span, #bandeaucontact, .chapo, .ps, .cartouche {
-	background: transparent !important;
-	background-image: none !important;
-	color: #000 !important;
-	border: 0 none !important;
-	margin: 0 !important;
-	padding: 0 !important;
-	width: 100% !important;
-	height: auto !important;
-	min-width: none !important;
-}
-.portailcognac #contenu {
-    max-width: 100%;
-    margin: 0 1em;
-}
-
-#footer {
-	margin-top: .5em !important; 
-	border-top: solid 1px #999 !important;
-	color: #000;
-}
-
-#wrapper h1, #wrapper h2 {
-	margin-right: 0px;
-	margin-left: 0px;
-	page-break-after: avoid;
-	color: #000 !important;
-}
-
-.spip_out {
-	padding-right: 0px;
-	background-image:    none;
-}
-.surtitre {
-	top:0em;	
-	color: #000;
-}
-#contenu h1 {
-    padding-left: 0;
-}
-.soustitre {
-	top:-1em;
-	color: #000;
-}
-
-.surtitre span, .soustitre span {
-	border: 0 none;
-	color: #000;
-}
-
-.datepublication {
-	border: 0 none;
-	top:0;
-	color: #000;
-}
-
-#qrcode img { height: 4em; width: 4em; padding: 0; float: right; }
-
-abbr[title]:after, acronym[title]:after {
-    content: "\0000a0(" attr(title) ")";
-}
-
-abbr, acronym {
-	border-bottom: 0;
-}
-
-table, tr, td, ul, ol {
-	margin-top: 0;
-	margin-bottom: 0;
-	padding-top: 0;
-	padding-bottom: 0;
-	color: #000;
-	list-style-image: none; 
-}
-table.spip tr { display: table-row; }
-table.spip td, table.spip th { display: table-cell; }
-
-ol {
-	list-style-type: decimal;
-}
-
-ul {
-	list-style-type: disc;
-}
-
-table {
-	margin-top: 1em;
-}
-
-th {
-	margin: .5em 0;
-	text-align: center;
-}
-
-table, td, tr, th {
-	border-color: #000 !important;
-}
-
-thead {
-	background-color: #fff !important;
-	color: #000 !important;
-}
-
-li {
-	color: #000;
-	list-style-image: none;	
-}
-
-#content h1, #content h2, #content h3, #content h4, #content h5, #content h6,
-#content .contenu_chapitres h2, #content .contenu_chapitres h3, #content .contenu_chapitres h4, #content .contenu_chapitres h5, #content .contenu_chapitres h6 {
-	color: #000;
-	background: transparent;
-}
-
-.rubriques_chapitres {
-	border-left: none;
-}
-
-.contenu_chapitres {
-	border-left: none;
-}
-
-*, h1, h2, h3, h4, h5, h6 {
-	color: #000 !important;
-	font-family: "Trebuchet MS", verdana, arial, helvetica, sans-serif !important;
-}
+/*a:after {
+	content: ' [' attr(href) '] ';
+}
+*/
+
+* {
+    transition: none !important;
+}
+
+html, body, .texte, #letexte {
+	background-color: #fff;
+	background-image: none;
+	color: #000;
+	font-family: "Trebuchet MS", verdana, arial, helvetica, sans-serif;
+	font-size: 12pt;
+}
+
+nav, aside, .navstuff, .retourtop, #navigation, #extra, #header, .spip-admin, #artrecents, #menuhaut, #menufooter, #miettesdepain, .spip-admin-bloc, .bouton_pdf, .retoursommaire, #participer , .socialtags, .notation, .spip-previsu, #bandeau_annonce, .forum-repondre, #nuage, #bandeaucontact, #datemajsitefooter, #mobile-header, .bandeaupartenaires, .menu_lien_participer {
+	display: none !important;
+}
+#content:before, #content:after { content: none; }
+
+#container, #content, #footer, #footer span, #bandeaucontact, .chapo, .ps, .cartouche {
+	background: transparent !important;
+	background-image: none !important;
+	color: #000 !important;
+	border: 0 none !important;
+	margin: 0 !important;
+	padding: 0 !important;
+	width: 100% !important;
+	height: auto !important;
+	min-width: none !important;
+}
+.portailcognac #contenu {
+    max-width: 100%;
+    margin: 0 1em;
+}
+
+#footer {
+	margin-top: .5em !important;
+	border-top: solid 1px #999 !important;
+	color: #000;
+}
+
+#content h1, #content h2 {
+	margin-right: 0px;
+	margin-left: 0px;
+	page-break-after: avoid;
+	color: #000 !important;
+}
+
+.spip_out {
+	padding-right: 0px;
+	background-image:    none;
+}
+.surtitre {
+	top:0em;
+	color: #000;
+}
+#contenu h1 {
+    padding-left: 0;
+}
+.soustitre {
+	top:-1em;
+	color: #000;
+}
+
+.surtitre span, .soustitre span {
+	border: 0 none;
+	color: #000;
+}
+
+.datepublication {
+	border: 0 none;
+	top:0;
+	color: #000;
+}
+
+#qrcode img { height: 4em; width: 4em; padding: 0; float: right; }
+
+abbr[title]:after, acronym[title]:after {
+    content: "\0000a0(" attr(title) ")";
+}
+
+abbr, acronym {
+	border-bottom: 0;
+}
+
+table, tr, td, ul, ol {
+	margin-top: 0;
+	margin-bottom: 0;
+	padding-top: 0;
+	padding-bottom: 0;
+	color: #000;
+	list-style-image: none;
+}
+table.spip tr { display: table-row; }
+table.spip td, table.spip th { display: table-cell; }
+
+ol {
+	list-style-type: decimal;
+}
+
+ul {
+	list-style-type: disc;
+}
+
+table {
+	margin-top: 1em;
+}
+
+th {
+	margin: .5em 0;
+	text-align: center;
+}
+
+table, td, tr, th {
+	border-color: #000 !important;
+}
+
+thead {
+	background-color: #fff !important;
+	color: #000 !important;
+}
+
+li {
+	color: #000;
+	list-style-image: none;
+}
+
+#content h1, #content h2, #content h3, #content h4, #content h5, #content h6,
+#content .contenu_chapitres h2, #content .contenu_chapitres h3, #content .contenu_chapitres h4, #content .contenu_chapitres h5, #content .contenu_chapitres h6 {
+	color: #000;
+	background: transparent;
+}
+
+.rubriques_chapitres {
+	border-left: none;
+}
+
+.contenu_chapitres {
+	border-left: none;
+}
+
+*, h1, h2, h3, h4, h5, h6 {
+	color: #000 !important;
+	font-family: "Trebuchet MS", verdana, arial, helvetica, sans-serif !important;
+}
diff --git a/img_pack/layout001.gif b/img_pack/layout001.gif
index e3fc1393b497ae7fee139c5c2d96194df5d006f8..c3a485cbbb9dfccf1795f3a775ef3263b8aecc2e 100644
Binary files a/img_pack/layout001.gif and b/img_pack/layout001.gif differ
diff --git a/img_pack/layout002.gif b/img_pack/layout002.gif
index c134b2be6f44915dbd577d72c040024f4a6ae62c..f1c2e689c163f46f3891aaec93511bb82fbc9f59 100644
Binary files a/img_pack/layout002.gif and b/img_pack/layout002.gif differ
diff --git a/img_pack/layout003.gif b/img_pack/layout003.gif
index b7c671efc8cd16b46ea07a2b69ed1ac80c52d4ac..512aa2744528f3a0623158f0a3112504f9d43d25 100644
Binary files a/img_pack/layout003.gif and b/img_pack/layout003.gif differ
diff --git a/img_pack/layout004.gif b/img_pack/layout004.gif
index f97ccf613c713e1626def59c9e38953061e51860..2706a8195fa9d6c051c14905f1f55df21f145001 100644
Binary files a/img_pack/layout004.gif and b/img_pack/layout004.gif differ
diff --git a/img_pack/layout005.gif b/img_pack/layout005.gif
index e483c83dc91ba1baf8ea13193aa2200272d18b72..b429e5c4dce9fa7cd193bb35ae6fb090ced758fd 100644
Binary files a/img_pack/layout005.gif and b/img_pack/layout005.gif differ
diff --git a/img_pack/layout006.gif b/img_pack/layout006.gif
index 0fa634db6151912f45d4df948c9b53af99f4a37b..aeb2503a6c86ccbb5b8f2cdd560d703e902dafc5 100644
Binary files a/img_pack/layout006.gif and b/img_pack/layout006.gif differ
diff --git a/img_pack/layout007.gif b/img_pack/layout007.gif
index 8adc9d87b9aa4d83f6d56e1d115fd73b833a93e3..6a2f9b2a6e8e59a039a322390092762548b86d1e 100644
Binary files a/img_pack/layout007.gif and b/img_pack/layout007.gif differ
diff --git a/img_pack/layout008.gif b/img_pack/layout008.gif
index 741de872e1246c4108c0120d0bb83740888c09d3..3d49569b413a00c849d639339be1a71051501954 100644
Binary files a/img_pack/layout008.gif and b/img_pack/layout008.gif differ
diff --git a/img_pack/layout009.gif b/img_pack/layout009.gif
index 8e895a0773a7066b75b688a37ee0b903ef574156..c1e5195a74ebdddcdab50699949dc214512568da 100644
Binary files a/img_pack/layout009.gif and b/img_pack/layout009.gif differ
diff --git a/img_pack/layout010.gif b/img_pack/layout010.gif
index c22143fa7fbd2cfe59f4201ed348752dfb221316..6b95dbb76b26ce31db3e2fe58e59b88ef84cd1be 100644
Binary files a/img_pack/layout010.gif and b/img_pack/layout010.gif differ
diff --git a/img_pack/layout011.gif b/img_pack/layout011.gif
index 07a293c85f9a7d0b7c161a97a42b5b7a6aa8d944..e7b79777060f5544681bf00a58e738e1a3d2c486 100644
Binary files a/img_pack/layout011.gif and b/img_pack/layout011.gif differ
diff --git a/img_pack/layout012.gif b/img_pack/layout012.gif
index 5e59984f0fbd4c96b28d6d31e352e6ce987129fe..34915de305bc0e03748df12edf9f48a27ba5a9b3 100644
Binary files a/img_pack/layout012.gif and b/img_pack/layout012.gif differ
diff --git a/img_pack/layout013.gif b/img_pack/layout013.gif
index e4048ccb865fe14bf9b1dabcd76d3b28e7a91a34..6124355dfcad82fa68a4668f6abd186fd26a13f1 100644
Binary files a/img_pack/layout013.gif and b/img_pack/layout013.gif differ
diff --git a/img_pack/layout014.gif b/img_pack/layout014.gif
index b19460c6b03211d56972ca05e0838a2fafde61f0..fd82ea7b0b00de4dc1e9baff305bf381ded2ec51 100644
Binary files a/img_pack/layout014.gif and b/img_pack/layout014.gif differ
diff --git a/img_pack/layout015.gif b/img_pack/layout015.gif
index 82d02e8726351b7c250484f711b79f619e52c253..7c67dce1715b0a81939a30e5f4773fbba19fa460 100644
Binary files a/img_pack/layout015.gif and b/img_pack/layout015.gif differ
diff --git a/img_pack/layout016.gif b/img_pack/layout016.gif
index f6f2d77baf5404d29814f90c2c40b074628e8736..e81de97e44d093b4e53e7631a2cfc7b77502b84a 100644
Binary files a/img_pack/layout016.gif and b/img_pack/layout016.gif differ
diff --git a/img_pack/layout017.gif b/img_pack/layout017.gif
index 5300ba9056313eb35a2b7cb900c9d0426d385292..9f16dd9e82ae18487b0fccb2e9081316c846b121 100644
Binary files a/img_pack/layout017.gif and b/img_pack/layout017.gif differ
diff --git a/img_pack/layout018.gif b/img_pack/layout018.gif
index 8582abceda13d041e711478d437a79af35a1e52b..b9cddbede47d1f04dae7a9f988950b0e444d2163 100644
Binary files a/img_pack/layout018.gif and b/img_pack/layout018.gif differ
diff --git a/img_pack/layout019.gif b/img_pack/layout019.gif
index 20b5c3dc97ddc2bbacf2c6bbbc0e873488b2df93..d1d1681a082abe7ef712da51dcad8c570a3f7ef9 100644
Binary files a/img_pack/layout019.gif and b/img_pack/layout019.gif differ
diff --git a/img_pack/layout020.gif b/img_pack/layout020.gif
index fc7eeb36c60ab269eda6c98839091744d1f94066..0b3d0405cf02ece8ba4433c9e074587ec8368389 100644
Binary files a/img_pack/layout020.gif and b/img_pack/layout020.gif differ
diff --git a/img_pack/layout021.gif b/img_pack/layout021.gif
index e05891cfaee0f970d835cf8594a74f0f91dd7432..0ae2a4d9c989d7e0ee4de4b40fdf1dc76f60270a 100644
Binary files a/img_pack/layout021.gif and b/img_pack/layout021.gif differ
diff --git a/img_pack/layout022.gif b/img_pack/layout022.gif
index 0a46316316213606b5b084f554835261c649da06..e606e146e051f867d23d498ff6046cd6ab4ace3e 100644
Binary files a/img_pack/layout022.gif and b/img_pack/layout022.gif differ
diff --git a/img_pack/layout027.gif b/img_pack/layout027.gif
index 7c46f88c4b28347ea32af8ba2e59508eaabd72b4..b03a153a6815372a683b46e8defde026db9c7781 100644
Binary files a/img_pack/layout027.gif and b/img_pack/layout027.gif differ
diff --git a/img_pack/layout028.gif b/img_pack/layout028.gif
index 1ad3d6d56987451a5cc7215b51fc84b3f4e57ed6..d4d27aa2c31c4de79684f7aaeaab51d482e1ba08 100644
Binary files a/img_pack/layout028.gif and b/img_pack/layout028.gif differ
diff --git a/img_pack/layout029.gif b/img_pack/layout029.gif
index 4ba602ad10e4a46a905c72435882d705ba84c43b..a611b77f6850f8acd233a7f51d763a90c1871baa 100644
Binary files a/img_pack/layout029.gif and b/img_pack/layout029.gif differ
diff --git a/img_pack/layout030.gif b/img_pack/layout030.gif
index 06b92c7fb668ebfe4ffd6fc6419ef4567b04adfd..c2d1c3ba1cfdfa7535ce8e9095728642a7f9f063 100644
Binary files a/img_pack/layout030.gif and b/img_pack/layout030.gif differ
diff --git a/img_pack/layout031.gif b/img_pack/layout031.gif
index 1e3ee473696492efaecac8e2d7db44a1fb5d3396..f4a09282340136c8a8e2cfa60592cf0729da855e 100644
Binary files a/img_pack/layout031.gif and b/img_pack/layout031.gif differ
diff --git a/img_pack/layout032.gif b/img_pack/layout032.gif
index e8c044a5b043f18e5f66d4b65b0cd78560ac89f8..47dc7e2dd0247890a3e1edb75c8fc34e04c43392 100644
Binary files a/img_pack/layout032.gif and b/img_pack/layout032.gif differ
diff --git a/img_pack/layout035.gif b/img_pack/layout035.gif
index 5fd0290980bd97964a890abc64b2a842deb68b39..6f9f8412aad96be6ca567c57945c9b5000d58636 100644
Binary files a/img_pack/layout035.gif and b/img_pack/layout035.gif differ
diff --git a/img_pack/layout036.gif b/img_pack/layout036.gif
index 7c2a210ef4bc1a1ffbea3f2b705401c8c821a0e6..e4de25819a7c4240f199e7a62c29f1a8a6dba82f 100644
Binary files a/img_pack/layout036.gif and b/img_pack/layout036.gif differ
diff --git a/img_pack/layout037.gif b/img_pack/layout037.gif
index f109925c0a54ccec733c9c1937be1a1d3331b6b7..2c7f41b777e8b97f2cee10d8501daddff4d28356 100644
Binary files a/img_pack/layout037.gif and b/img_pack/layout037.gif differ
diff --git a/img_pack/layout038.gif b/img_pack/layout038.gif
index fe43e9d324c8933cfd78233f19dc42792719035c..03b5d85bfe8f72ee81616e91b4ff7d26f9f0c1bb 100644
Binary files a/img_pack/layout038.gif and b/img_pack/layout038.gif differ
diff --git a/img_pack/layout039.gif b/img_pack/layout039.gif
index 9e400084e572369fe1066c7f2bf4a730bfb46233..f623e72457f485acc7579677c6cd12ac4372997c 100644
Binary files a/img_pack/layout039.gif and b/img_pack/layout039.gif differ
diff --git a/img_pack/layout040.gif b/img_pack/layout040.gif
index fdc235ce3c4bf6e8b10492d49e9d7c72bcc0a13a..ad08b603d5ed92c7ada0d36e741837addc4f07e7 100644
Binary files a/img_pack/layout040.gif and b/img_pack/layout040.gif differ
diff --git a/inscription_infolettre.html b/inscription_infolettre.html
index 60fffb955a21db25dd0e0349473236a9e118e50f..20420d5ca232005aca366c24232e9a47d6450ef5 100644
--- a/inscription_infolettre.html
+++ b/inscription_infolettre.html
@@ -7,11 +7,6 @@
 >
 <div class="texte">
 <main id="main">
-[(#CONFIG{soyezcreateurs_layout/positioncartouchetitre,contenu}|=={contenu}|oui)
-<div class="cartouche">
-<div class="titrepage"><h1><:soyezcreateurs:newsletter_recevoir:></h1></div>
-</div>
-]
 	<div id="letexte">
 <INCLURE{fond=noisettes/inscription_infolettre} />
 	</div>
diff --git a/javascript/imagesloaded.pkgd.js b/javascript/imagesloaded.pkgd.js
deleted file mode 100644
index 802330a41037abac02a7ed6c49b380d0474e31ed..0000000000000000000000000000000000000000
--- a/javascript/imagesloaded.pkgd.js
+++ /dev/null
@@ -1,493 +0,0 @@
-/*!
- * imagesLoaded PACKAGED v4.1.3
- * JavaScript is all like "You images are done yet or what?"
- * MIT License
- */
-
-/**
- * EvEmitter v1.1.0
- * Lil' event emitter
- * MIT License
- */
-
-/* jshint unused: true, undef: true, strict: true */
-
-( function( global, factory ) {
-  // universal module definition
-  /* jshint strict: false */ /* globals define, module, window */
-  if ( typeof define == 'function' && define.amd ) {
-    // AMD - RequireJS
-    define( 'ev-emitter/ev-emitter',factory );
-  } else if ( typeof module == 'object' && module.exports ) {
-    // CommonJS - Browserify, Webpack
-    module.exports = factory();
-  } else {
-    // Browser globals
-    global.EvEmitter = factory();
-  }
-
-}( typeof window != 'undefined' ? window : this, function() {
-
-
-
-function EvEmitter() {}
-
-var proto = EvEmitter.prototype;
-
-proto.on = function( eventName, listener ) {
-  if ( !eventName || !listener ) {
-    return;
-  }
-  // set events hash
-  var events = this._events = this._events || {};
-  // set listeners array
-  var listeners = events[ eventName ] = events[ eventName ] || [];
-  // only add once
-  if ( listeners.indexOf( listener ) == -1 ) {
-    listeners.push( listener );
-  }
-
-  return this;
-};
-
-proto.once = function( eventName, listener ) {
-  if ( !eventName || !listener ) {
-    return;
-  }
-  // add event
-  this.on( eventName, listener );
-  // set once flag
-  // set onceEvents hash
-  var onceEvents = this._onceEvents = this._onceEvents || {};
-  // set onceListeners object
-  var onceListeners = onceEvents[ eventName ] = onceEvents[ eventName ] || {};
-  // set flag
-  onceListeners[ listener ] = true;
-
-  return this;
-};
-
-proto.off = function( eventName, listener ) {
-  var listeners = this._events && this._events[ eventName ];
-  if ( !listeners || !listeners.length ) {
-    return;
-  }
-  var index = listeners.indexOf( listener );
-  if ( index != -1 ) {
-    listeners.splice( index, 1 );
-  }
-
-  return this;
-};
-
-proto.emitEvent = function( eventName, args ) {
-  var listeners = this._events && this._events[ eventName ];
-  if ( !listeners || !listeners.length ) {
-    return;
-  }
-  var i = 0;
-  var listener = listeners[i];
-  args = args || [];
-  // once stuff
-  var onceListeners = this._onceEvents && this._onceEvents[ eventName ];
-
-  while ( listener ) {
-    var isOnce = onceListeners && onceListeners[ listener ];
-    if ( isOnce ) {
-      // remove listener
-      // remove before trigger to prevent recursion
-      this.off( eventName, listener );
-      // unset once flag
-      delete onceListeners[ listener ];
-    }
-    // trigger listener
-    listener.apply( this, args );
-    // get next listener
-    i += isOnce ? 0 : 1;
-    listener = listeners[i];
-  }
-
-  return this;
-};
-
-proto.allOff =
-proto.removeAllListeners = function() {
-  delete this._events;
-  delete this._onceEvents;
-};
-
-return EvEmitter;
-
-}));
-
-/*!
- * imagesLoaded v4.1.3
- * JavaScript is all like "You images are done yet or what?"
- * MIT License
- */
-
-( function( window, factory ) { 'use strict';
-  // universal module definition
-
-  /*global define: false, module: false, require: false */
-
-  if ( typeof define == 'function' && define.amd ) {
-    // AMD
-    define( [
-      'ev-emitter/ev-emitter'
-    ], function( EvEmitter ) {
-      return factory( window, EvEmitter );
-    });
-  } else if ( typeof module == 'object' && module.exports ) {
-    // CommonJS
-    module.exports = factory(
-      window,
-      require('ev-emitter')
-    );
-  } else {
-    // browser global
-    window.imagesLoaded = factory(
-      window,
-      window.EvEmitter
-    );
-  }
-
-})( typeof window !== 'undefined' ? window : this,
-
-// --------------------------  factory -------------------------- //
-
-function factory( window, EvEmitter ) {
-
-
-
-var $ = window.jQuery;
-var console = window.console;
-
-// -------------------------- helpers -------------------------- //
-
-// extend objects
-function extend( a, b ) {
-  for ( var prop in b ) {
-    a[ prop ] = b[ prop ];
-  }
-  return a;
-}
-
-// turn element or nodeList into an array
-function makeArray( obj ) {
-  var ary = [];
-  if ( Array.isArray( obj ) ) {
-    // use object if already an array
-    ary = obj;
-  } else if ( typeof obj.length == 'number' ) {
-    // convert nodeList to array
-    for ( var i=0; i < obj.length; i++ ) {
-      ary.push( obj[i] );
-    }
-  } else {
-    // array of single index
-    ary.push( obj );
-  }
-  return ary;
-}
-
-// -------------------------- imagesLoaded -------------------------- //
-
-/**
- * @param {Array, Element, NodeList, String} elem
- * @param {Object or Function} options - if function, use as callback
- * @param {Function} onAlways - callback function
- */
-function ImagesLoaded( elem, options, onAlways ) {
-  // coerce ImagesLoaded() without new, to be new ImagesLoaded()
-  if ( !( this instanceof ImagesLoaded ) ) {
-    return new ImagesLoaded( elem, options, onAlways );
-  }
-  // use elem as selector string
-  if ( typeof elem == 'string' ) {
-    elem = document.querySelectorAll( elem );
-  }
-
-  this.elements = makeArray( elem );
-  this.options = extend( {}, this.options );
-
-  if ( typeof options == 'function' ) {
-    onAlways = options;
-  } else {
-    extend( this.options, options );
-  }
-
-  if ( onAlways ) {
-    this.on( 'always', onAlways );
-  }
-
-  this.getImages();
-
-  if ( $ ) {
-    // add jQuery Deferred object
-    this.jqDeferred = new $.Deferred();
-  }
-
-  // HACK check async to allow time to bind listeners
-  setTimeout( function() {
-    this.check();
-  }.bind( this ));
-}
-
-ImagesLoaded.prototype = Object.create( EvEmitter.prototype );
-
-ImagesLoaded.prototype.options = {};
-
-ImagesLoaded.prototype.getImages = function() {
-  this.images = [];
-
-  // filter & find items if we have an item selector
-  this.elements.forEach( this.addElementImages, this );
-};
-
-/**
- * @param {Node} element
- */
-ImagesLoaded.prototype.addElementImages = function( elem ) {
-  // filter siblings
-  if ( elem.nodeName == 'IMG' ) {
-    this.addImage( elem );
-  }
-  // get background image on element
-  if ( this.options.background === true ) {
-    this.addElementBackgroundImages( elem );
-  }
-
-  // find children
-  // no non-element nodes, #143
-  var nodeType = elem.nodeType;
-  if ( !nodeType || !elementNodeTypes[ nodeType ] ) {
-    return;
-  }
-  var childImgs = elem.querySelectorAll('img');
-  // concat childElems to filterFound array
-  for ( var i=0; i < childImgs.length; i++ ) {
-    var img = childImgs[i];
-    this.addImage( img );
-  }
-
-  // get child background images
-  if ( typeof this.options.background == 'string' ) {
-    var children = elem.querySelectorAll( this.options.background );
-    for ( i=0; i < children.length; i++ ) {
-      var child = children[i];
-      this.addElementBackgroundImages( child );
-    }
-  }
-};
-
-var elementNodeTypes = {
-  1: true,
-  9: true,
-  11: true
-};
-
-ImagesLoaded.prototype.addElementBackgroundImages = function( elem ) {
-  var style = getComputedStyle( elem );
-  if ( !style ) {
-    // Firefox returns null if in a hidden iframe https://bugzil.la/548397
-    return;
-  }
-  // get url inside url("...")
-  var reURL = /url\((['"])?(.*?)\1\)/gi;
-  var matches = reURL.exec( style.backgroundImage );
-  while ( matches !== null ) {
-    var url = matches && matches[2];
-    if ( url ) {
-      this.addBackground( url, elem );
-    }
-    matches = reURL.exec( style.backgroundImage );
-  }
-};
-
-/**
- * @param {Image} img
- */
-ImagesLoaded.prototype.addImage = function( img ) {
-  var loadingImage = new LoadingImage( img );
-  this.images.push( loadingImage );
-};
-
-ImagesLoaded.prototype.addBackground = function( url, elem ) {
-  var background = new Background( url, elem );
-  this.images.push( background );
-};
-
-ImagesLoaded.prototype.check = function() {
-  var _this = this;
-  this.progressedCount = 0;
-  this.hasAnyBroken = false;
-  // complete if no images
-  if ( !this.images.length ) {
-    this.complete();
-    return;
-  }
-
-  function onProgress( image, elem, message ) {
-    // HACK - Chrome triggers event before object properties have changed. #83
-    setTimeout( function() {
-      _this.progress( image, elem, message );
-    });
-  }
-
-  this.images.forEach( function( loadingImage ) {
-    loadingImage.once( 'progress', onProgress );
-    loadingImage.check();
-  });
-};
-
-ImagesLoaded.prototype.progress = function( image, elem, message ) {
-  this.progressedCount++;
-  this.hasAnyBroken = this.hasAnyBroken || !image.isLoaded;
-  // progress event
-  this.emitEvent( 'progress', [ this, image, elem ] );
-  if ( this.jqDeferred && this.jqDeferred.notify ) {
-    this.jqDeferred.notify( this, image );
-  }
-  // check if completed
-  if ( this.progressedCount == this.images.length ) {
-    this.complete();
-  }
-
-  if ( this.options.debug && console ) {
-    console.log( 'progress: ' + message, image, elem );
-  }
-};
-
-ImagesLoaded.prototype.complete = function() {
-  var eventName = this.hasAnyBroken ? 'fail' : 'done';
-  this.isComplete = true;
-  this.emitEvent( eventName, [ this ] );
-  this.emitEvent( 'always', [ this ] );
-  if ( this.jqDeferred ) {
-    var jqMethod = this.hasAnyBroken ? 'reject' : 'resolve';
-    this.jqDeferred[ jqMethod ]( this );
-  }
-};
-
-// --------------------------  -------------------------- //
-
-function LoadingImage( img ) {
-  this.img = img;
-}
-
-LoadingImage.prototype = Object.create( EvEmitter.prototype );
-
-LoadingImage.prototype.check = function() {
-  // If complete is true and browser supports natural sizes,
-  // try to check for image status manually.
-  var isComplete = this.getIsImageComplete();
-  if ( isComplete ) {
-    // report based on naturalWidth
-    this.confirm( this.img.naturalWidth !== 0, 'naturalWidth' );
-    return;
-  }
-
-  // If none of the checks above matched, simulate loading on detached element.
-  this.proxyImage = new Image();
-  this.proxyImage.addEventListener( 'load', this );
-  this.proxyImage.addEventListener( 'error', this );
-  // bind to image as well for Firefox. #191
-  this.img.addEventListener( 'load', this );
-  this.img.addEventListener( 'error', this );
-  this.proxyImage.src = this.img.src;
-};
-
-LoadingImage.prototype.getIsImageComplete = function() {
-  return this.img.complete && this.img.naturalWidth !== undefined;
-};
-
-LoadingImage.prototype.confirm = function( isLoaded, message ) {
-  this.isLoaded = isLoaded;
-  this.emitEvent( 'progress', [ this, this.img, message ] );
-};
-
-// ----- events ----- //
-
-// trigger specified handler for event type
-LoadingImage.prototype.handleEvent = function( event ) {
-  var method = 'on' + event.type;
-  if ( this[ method ] ) {
-    this[ method ]( event );
-  }
-};
-
-LoadingImage.prototype.onload = function() {
-  this.confirm( true, 'onload' );
-  this.unbindEvents();
-};
-
-LoadingImage.prototype.onerror = function() {
-  this.confirm( false, 'onerror' );
-  this.unbindEvents();
-};
-
-LoadingImage.prototype.unbindEvents = function() {
-  this.proxyImage.removeEventListener( 'load', this );
-  this.proxyImage.removeEventListener( 'error', this );
-  this.img.removeEventListener( 'load', this );
-  this.img.removeEventListener( 'error', this );
-};
-
-// -------------------------- Background -------------------------- //
-
-function Background( url, element ) {
-  this.url = url;
-  this.element = element;
-  this.img = new Image();
-}
-
-// inherit LoadingImage prototype
-Background.prototype = Object.create( LoadingImage.prototype );
-
-Background.prototype.check = function() {
-  this.img.addEventListener( 'load', this );
-  this.img.addEventListener( 'error', this );
-  this.img.src = this.url;
-  // check if image is already complete
-  var isComplete = this.getIsImageComplete();
-  if ( isComplete ) {
-    this.confirm( this.img.naturalWidth !== 0, 'naturalWidth' );
-    this.unbindEvents();
-  }
-};
-
-Background.prototype.unbindEvents = function() {
-  this.img.removeEventListener( 'load', this );
-  this.img.removeEventListener( 'error', this );
-};
-
-Background.prototype.confirm = function( isLoaded, message ) {
-  this.isLoaded = isLoaded;
-  this.emitEvent( 'progress', [ this, this.element, message ] );
-};
-
-// -------------------------- jQuery -------------------------- //
-
-ImagesLoaded.makeJQueryPlugin = function( jQuery ) {
-  jQuery = jQuery || window.jQuery;
-  if ( !jQuery ) {
-    return;
-  }
-  // set local variable
-  $ = jQuery;
-  // $().imagesLoaded()
-  $.fn.imagesLoaded = function( options, callback ) {
-    var instance = new ImagesLoaded( this, options, callback );
-    return instance.jqDeferred.promise( $(this) );
-  };
-};
-// try making plugin
-ImagesLoaded.makeJQueryPlugin();
-
-// --------------------------  -------------------------- //
-
-return ImagesLoaded;
-
-});
-
diff --git a/javascript/imagesloaded.pkgd.min.js b/javascript/imagesloaded.pkgd.min.js
deleted file mode 100644
index 0854d63eab1c914b4a383dcdb3832c7ab645fd10..0000000000000000000000000000000000000000
--- a/javascript/imagesloaded.pkgd.min.js
+++ /dev/null
@@ -1,7 +0,0 @@
-/*!
- * imagesLoaded PACKAGED v4.1.3
- * JavaScript is all like "You images are done yet or what?"
- * MIT License
- */
-
-!function(e,t){"function"==typeof define&&define.amd?define("ev-emitter/ev-emitter",t):"object"==typeof module&&module.exports?module.exports=t():e.EvEmitter=t()}("undefined"!=typeof window?window:this,function(){function e(){}var t=e.prototype;return t.on=function(e,t){if(e&&t){var i=this._events=this._events||{},n=i[e]=i[e]||[];return-1==n.indexOf(t)&&n.push(t),this}},t.once=function(e,t){if(e&&t){this.on(e,t);var i=this._onceEvents=this._onceEvents||{},n=i[e]=i[e]||{};return n[t]=!0,this}},t.off=function(e,t){var i=this._events&&this._events[e];if(i&&i.length){var n=i.indexOf(t);return-1!=n&&i.splice(n,1),this}},t.emitEvent=function(e,t){var i=this._events&&this._events[e];if(i&&i.length){var n=0,o=i[n];t=t||[];for(var r=this._onceEvents&&this._onceEvents[e];o;){var s=r&&r[o];s&&(this.off(e,o),delete r[o]),o.apply(this,t),n+=s?0:1,o=i[n]}return this}},t.allOff=t.removeAllListeners=function(){delete this._events,delete this._onceEvents},e}),function(e,t){"use strict";"function"==typeof define&&define.amd?define(["ev-emitter/ev-emitter"],function(i){return t(e,i)}):"object"==typeof module&&module.exports?module.exports=t(e,require("ev-emitter")):e.imagesLoaded=t(e,e.EvEmitter)}("undefined"!=typeof window?window:this,function(e,t){function i(e,t){for(var i in t)e[i]=t[i];return e}function n(e){var t=[];if(Array.isArray(e))t=e;else if("number"==typeof e.length)for(var i=0;i<e.length;i++)t.push(e[i]);else t.push(e);return t}function o(e,t,r){return this instanceof o?("string"==typeof e&&(e=document.querySelectorAll(e)),this.elements=n(e),this.options=i({},this.options),"function"==typeof t?r=t:i(this.options,t),r&&this.on("always",r),this.getImages(),h&&(this.jqDeferred=new h.Deferred),void setTimeout(function(){this.check()}.bind(this))):new o(e,t,r)}function r(e){this.img=e}function s(e,t){this.url=e,this.element=t,this.img=new Image}var h=e.jQuery,a=e.console;o.prototype=Object.create(t.prototype),o.prototype.options={},o.prototype.getImages=function(){this.images=[],this.elements.forEach(this.addElementImages,this)},o.prototype.addElementImages=function(e){"IMG"==e.nodeName&&this.addImage(e),this.options.background===!0&&this.addElementBackgroundImages(e);var t=e.nodeType;if(t&&d[t]){for(var i=e.querySelectorAll("img"),n=0;n<i.length;n++){var o=i[n];this.addImage(o)}if("string"==typeof this.options.background){var r=e.querySelectorAll(this.options.background);for(n=0;n<r.length;n++){var s=r[n];this.addElementBackgroundImages(s)}}}};var d={1:!0,9:!0,11:!0};return o.prototype.addElementBackgroundImages=function(e){var t=getComputedStyle(e);if(t)for(var i=/url\((['"])?(.*?)\1\)/gi,n=i.exec(t.backgroundImage);null!==n;){var o=n&&n[2];o&&this.addBackground(o,e),n=i.exec(t.backgroundImage)}},o.prototype.addImage=function(e){var t=new r(e);this.images.push(t)},o.prototype.addBackground=function(e,t){var i=new s(e,t);this.images.push(i)},o.prototype.check=function(){function e(e,i,n){setTimeout(function(){t.progress(e,i,n)})}var t=this;return this.progressedCount=0,this.hasAnyBroken=!1,this.images.length?void this.images.forEach(function(t){t.once("progress",e),t.check()}):void this.complete()},o.prototype.progress=function(e,t,i){this.progressedCount++,this.hasAnyBroken=this.hasAnyBroken||!e.isLoaded,this.emitEvent("progress",[this,e,t]),this.jqDeferred&&this.jqDeferred.notify&&this.jqDeferred.notify(this,e),this.progressedCount==this.images.length&&this.complete(),this.options.debug&&a&&a.log("progress: "+i,e,t)},o.prototype.complete=function(){var e=this.hasAnyBroken?"fail":"done";if(this.isComplete=!0,this.emitEvent(e,[this]),this.emitEvent("always",[this]),this.jqDeferred){var t=this.hasAnyBroken?"reject":"resolve";this.jqDeferred[t](this)}},r.prototype=Object.create(t.prototype),r.prototype.check=function(){var e=this.getIsImageComplete();return e?void this.confirm(0!==this.img.naturalWidth,"naturalWidth"):(this.proxyImage=new Image,this.proxyImage.addEventListener("load",this),this.proxyImage.addEventListener("error",this),this.img.addEventListener("load",this),this.img.addEventListener("error",this),void(this.proxyImage.src=this.img.src))},r.prototype.getIsImageComplete=function(){return this.img.complete&&void 0!==this.img.naturalWidth},r.prototype.confirm=function(e,t){this.isLoaded=e,this.emitEvent("progress",[this,this.img,t])},r.prototype.handleEvent=function(e){var t="on"+e.type;this[t]&&this[t](e)},r.prototype.onload=function(){this.confirm(!0,"onload"),this.unbindEvents()},r.prototype.onerror=function(){this.confirm(!1,"onerror"),this.unbindEvents()},r.prototype.unbindEvents=function(){this.proxyImage.removeEventListener("load",this),this.proxyImage.removeEventListener("error",this),this.img.removeEventListener("load",this),this.img.removeEventListener("error",this)},s.prototype=Object.create(r.prototype),s.prototype.check=function(){this.img.addEventListener("load",this),this.img.addEventListener("error",this),this.img.src=this.url;var e=this.getIsImageComplete();e&&(this.confirm(0!==this.img.naturalWidth,"naturalWidth"),this.unbindEvents())},s.prototype.unbindEvents=function(){this.img.removeEventListener("load",this),this.img.removeEventListener("error",this)},s.prototype.confirm=function(e,t){this.isLoaded=e,this.emitEvent("progress",[this,this.element,t])},o.makeJQueryPlugin=function(t){t=t||e.jQuery,t&&(h=t,h.fn.imagesLoaded=function(e,t){var i=new o(this,e,t);return i.jqDeferred.promise(h(this))})},o.makeJQueryPlugin(),o});
\ No newline at end of file
diff --git a/javascript/jquery.em.js b/javascript/jquery.em.js
deleted file mode 100644
index 31675cd5bc4e71b5b9556c47bc8d008899bd1240..0000000000000000000000000000000000000000
--- a/javascript/jquery.em.js
+++ /dev/null
@@ -1,171 +0,0 @@
-/**
- * @projectDescription Monitor Font Size Changes with jQuery
- *
- * @version 1.0
- * @author Dave Cardwell
- *
- * jQuery-Em - $Revision: 24 $ ($Date: 2007-08-19 12:24:56 +0200 (dim., 19 août 2007) $)
- * http://davecardwell.co.uk/javascript/jquery/plugins/jquery-em/
- *
- * Copyright ©2007 Dave Cardwell <http://davecardwell.co.uk/>
- *
- * Released under the MIT licence:
- * http://www.opensource.org/licenses/mit-license.php
- */
-
-// Upon $(document).ready()…
-jQuery(function($) {
-    // Configuration…
-    var eventName = 'emchange';
-    
-    
-    // Set up default options.
-    $.em = $.extend({
-        /**
-         * The jQuery-Em version string.
-         *
-         * @example $.em.version;
-         * @desc '1.0a'
-         *
-         * @property
-         * @name version
-         * @type String
-         * @cat Plugins/Em
-         */
-        version: '1.0',
-        
-        /**
-         * The number of milliseconds to wait when polling for changes to the
-         * font size.
-         *
-         * @example $.em.delay = 400;
-         * @desc Defaults to 200.
-         *
-         * @property
-         * @name delay
-         * @type Number
-         * @cat Plugins/Em
-         */
-        delay: 200,
-        
-        /**
-         * The element used to detect changes to the font size.
-         *
-         * @example $.em.element = $('<div />')[0];
-         * @desc Default is an empty, absolutely positioned, 100em-wide <div>.
-         *
-         * @private
-         * @property
-         * @name element
-         * @type Element
-         * @cat Plugins/Em
-         */
-        element: $('<div />').css({ left:     '-100em',
-                                    position: 'absolute',
-                                    width:    '100em' })
-                             .prependTo('body')[0],
-        
-        /**
-         * The action to perform when a change in the font size is detected.
-         *
-         * @example $.em.action = function() { ... }
-         * @desc The default action is to trigger a global “emchange” event.
-         * You probably shouldn’t change this behaviour as other plugins may
-         * rely on it, but the option is here for completion.
-         *
-         * @example $(document).bind('emchange', function(e, cur, prev) {...})
-         * @desc Any functions triggered on this event are passed the current
-         * font size, and last known font size as additional parameters.
-         *
-         * @private
-         * @property
-         * @name action
-         * @type Function
-         * @cat Plugins/Em
-         * @see current
-         * @see previous
-         */
-        action: function() {
-            var currentWidth = $.em.element.offsetWidth / 100;
-            
-            // If the font size has changed since we last checked…
-            if ( currentWidth != $.em.current ) {
-                /**
-                 * The previous pixel value of the user agent’s font size. See
-                 * $.em.current for caveats. Will initially be undefined until
-                 * the “emchange” event is triggered.
-                 *
-                 * @example $.em.previous;
-                 * @result 16
-                 *
-                 * @property
-                 * @name previous
-                 * @type Number
-                 * @cat Plugins/Em
-                 * @see current
-                 */
-                $.em.previous = $.em.current;
-                
-                /**
-                 * The current pixel value of the user agent’s font size. As
-                 * with $.em.previous, this value *may* be subject to minor
-                 * browser rounding errors that mean you might not want to
-                 * rely upon it as an absolute value.
-                 *
-                 * @example $.em.current;
-                 * @result 14
-                 *
-                 * @property
-                 * @name current
-                 * @type Number
-                 * @cat Plugins/Em
-                 * @see previous
-                 */
-                $.em.current = currentWidth;
-                
-                $.event.trigger(eventName, [$.em.current, $.em.previous]);
-            }
-        }
-    }, $.em );
-    
-    
-    /**
-     * Bind a function to the emchange event of each matched element.
-     *
-     * @example $("p").emchange( function() { alert("Hello"); } );
-     *
-     * @name emchange
-     * @type jQuery
-     * @param Function fn A function to bind to the emchange event.
-     * @cat Plugins/Em
-     */
-
-    /**
-     * Trigger the emchange event of each matched element.
-     *
-     * @example $("p").emchange()
-     *
-     * @name emchange
-     * @type jQuery
-     * @cat Plugins/Em
-     */
-    $.fn[eventName] = function(fn) { return fn ? this.bind(eventName, fn)
-                                               : this.trigger(eventName); };
-    
-    
-    // Store the initial pixel value of the user agent’s font size.
-    $.em.current = $.em.element.offsetWidth / 100;
-    
-    /**
-     * While polling for font-size changes, $.em.iid stores the intervalID in
-     * case you should want to cancel with clearInterval().
-     *
-     * @example window.clearInterval( $.em.iid );
-     * 
-     * @property
-     * @name iid
-     * @type Number
-     * @cat Plugins/Em
-     */
-    $.em.iid = setInterval( $.em.action, $.em.delay );
-});
diff --git a/javascript/masonry.pkgd.js b/javascript/masonry.pkgd.js
deleted file mode 100644
index 6803cb5ce8f3761b3dfc6fc9e020d7336ae7e3bd..0000000000000000000000000000000000000000
--- a/javascript/masonry.pkgd.js
+++ /dev/null
@@ -1,2499 +0,0 @@
-/*!
- * Masonry PACKAGED v4.2.0
- * Cascading grid layout library
- * http://masonry.desandro.com
- * MIT License
- * by David DeSandro
- */
-
-/**
- * Bridget makes jQuery widgets
- * v2.0.1
- * MIT license
- */
-
-/* jshint browser: true, strict: true, undef: true, unused: true */
-
-( function( window, factory ) {
-  // universal module definition
-  /*jshint strict: false */ /* globals define, module, require */
-  if ( typeof define == 'function' && define.amd ) {
-    // AMD
-    define( 'jquery-bridget/jquery-bridget',[ 'jquery' ], function( jQuery ) {
-      return factory( window, jQuery );
-    });
-  } else if ( typeof module == 'object' && module.exports ) {
-    // CommonJS
-    module.exports = factory(
-      window,
-      require('jquery')
-    );
-  } else {
-    // browser global
-    window.jQueryBridget = factory(
-      window,
-      window.jQuery
-    );
-  }
-
-}( window, function factory( window, jQuery ) {
-'use strict';
-
-// ----- utils ----- //
-
-var arraySlice = Array.prototype.slice;
-
-// helper function for logging errors
-// $.error breaks jQuery chaining
-var console = window.console;
-var logError = typeof console == 'undefined' ? function() {} :
-  function( message ) {
-    console.error( message );
-  };
-
-// ----- jQueryBridget ----- //
-
-function jQueryBridget( namespace, PluginClass, $ ) {
-  $ = $ || jQuery || window.jQuery;
-  if ( !$ ) {
-    return;
-  }
-
-  // add option method -> $().plugin('option', {...})
-  if ( !PluginClass.prototype.option ) {
-    // option setter
-    PluginClass.prototype.option = function( opts ) {
-      // bail out if not an object
-      if ( !$.isPlainObject( opts ) ){
-        return;
-      }
-      this.options = $.extend( true, this.options, opts );
-    };
-  }
-
-  // make jQuery plugin
-  $.fn[ namespace ] = function( arg0 /*, arg1 */ ) {
-    if ( typeof arg0 == 'string' ) {
-      // method call $().plugin( 'methodName', { options } )
-      // shift arguments by 1
-      var args = arraySlice.call( arguments, 1 );
-      return methodCall( this, arg0, args );
-    }
-    // just $().plugin({ options })
-    plainCall( this, arg0 );
-    return this;
-  };
-
-  // $().plugin('methodName')
-  function methodCall( $elems, methodName, args ) {
-    var returnValue;
-    var pluginMethodStr = '$().' + namespace + '("' + methodName + '")';
-
-    $elems.each( function( i, elem ) {
-      // get instance
-      var instance = $.data( elem, namespace );
-      if ( !instance ) {
-        logError( namespace + ' not initialized. Cannot call methods, i.e. ' +
-          pluginMethodStr );
-        return;
-      }
-
-      var method = instance[ methodName ];
-      if ( !method || methodName.charAt(0) == '_' ) {
-        logError( pluginMethodStr + ' is not a valid method' );
-        return;
-      }
-
-      // apply method, get return value
-      var value = method.apply( instance, args );
-      // set return value if value is returned, use only first value
-      returnValue = returnValue === undefined ? value : returnValue;
-    });
-
-    return returnValue !== undefined ? returnValue : $elems;
-  }
-
-  function plainCall( $elems, options ) {
-    $elems.each( function( i, elem ) {
-      var instance = $.data( elem, namespace );
-      if ( instance ) {
-        // set options & init
-        instance.option( options );
-        instance._init();
-      } else {
-        // initialize new instance
-        instance = new PluginClass( elem, options );
-        $.data( elem, namespace, instance );
-      }
-    });
-  }
-
-  updateJQuery( $ );
-
-}
-
-// ----- updateJQuery ----- //
-
-// set $.bridget for v1 backwards compatibility
-function updateJQuery( $ ) {
-  if ( !$ || ( $ && $.bridget ) ) {
-    return;
-  }
-  $.bridget = jQueryBridget;
-}
-
-updateJQuery( jQuery || window.jQuery );
-
-// -----  ----- //
-
-return jQueryBridget;
-
-}));
-
-/**
- * EvEmitter v1.0.3
- * Lil' event emitter
- * MIT License
- */
-
-/* jshint unused: true, undef: true, strict: true */
-
-( function( global, factory ) {
-  // universal module definition
-  /* jshint strict: false */ /* globals define, module, window */
-  if ( typeof define == 'function' && define.amd ) {
-    // AMD - RequireJS
-    define( 'ev-emitter/ev-emitter',factory );
-  } else if ( typeof module == 'object' && module.exports ) {
-    // CommonJS - Browserify, Webpack
-    module.exports = factory();
-  } else {
-    // Browser globals
-    global.EvEmitter = factory();
-  }
-
-}( typeof window != 'undefined' ? window : this, function() {
-
-
-
-function EvEmitter() {}
-
-var proto = EvEmitter.prototype;
-
-proto.on = function( eventName, listener ) {
-  if ( !eventName || !listener ) {
-    return;
-  }
-  // set events hash
-  var events = this._events = this._events || {};
-  // set listeners array
-  var listeners = events[ eventName ] = events[ eventName ] || [];
-  // only add once
-  if ( listeners.indexOf( listener ) == -1 ) {
-    listeners.push( listener );
-  }
-
-  return this;
-};
-
-proto.once = function( eventName, listener ) {
-  if ( !eventName || !listener ) {
-    return;
-  }
-  // add event
-  this.on( eventName, listener );
-  // set once flag
-  // set onceEvents hash
-  var onceEvents = this._onceEvents = this._onceEvents || {};
-  // set onceListeners object
-  var onceListeners = onceEvents[ eventName ] = onceEvents[ eventName ] || {};
-  // set flag
-  onceListeners[ listener ] = true;
-
-  return this;
-};
-
-proto.off = function( eventName, listener ) {
-  var listeners = this._events && this._events[ eventName ];
-  if ( !listeners || !listeners.length ) {
-    return;
-  }
-  var index = listeners.indexOf( listener );
-  if ( index != -1 ) {
-    listeners.splice( index, 1 );
-  }
-
-  return this;
-};
-
-proto.emitEvent = function( eventName, args ) {
-  var listeners = this._events && this._events[ eventName ];
-  if ( !listeners || !listeners.length ) {
-    return;
-  }
-  var i = 0;
-  var listener = listeners[i];
-  args = args || [];
-  // once stuff
-  var onceListeners = this._onceEvents && this._onceEvents[ eventName ];
-
-  while ( listener ) {
-    var isOnce = onceListeners && onceListeners[ listener ];
-    if ( isOnce ) {
-      // remove listener
-      // remove before trigger to prevent recursion
-      this.off( eventName, listener );
-      // unset once flag
-      delete onceListeners[ listener ];
-    }
-    // trigger listener
-    listener.apply( this, args );
-    // get next listener
-    i += isOnce ? 0 : 1;
-    listener = listeners[i];
-  }
-
-  return this;
-};
-
-return EvEmitter;
-
-}));
-
-/*!
- * getSize v2.0.2
- * measure size of elements
- * MIT license
- */
-
-/*jshint browser: true, strict: true, undef: true, unused: true */
-/*global define: false, module: false, console: false */
-
-( function( window, factory ) {
-  'use strict';
-
-  if ( typeof define == 'function' && define.amd ) {
-    // AMD
-    define( 'get-size/get-size',[],function() {
-      return factory();
-    });
-  } else if ( typeof module == 'object' && module.exports ) {
-    // CommonJS
-    module.exports = factory();
-  } else {
-    // browser global
-    window.getSize = factory();
-  }
-
-})( window, function factory() {
-'use strict';
-
-// -------------------------- helpers -------------------------- //
-
-// get a number from a string, not a percentage
-function getStyleSize( value ) {
-  var num = parseFloat( value );
-  // not a percent like '100%', and a number
-  var isValid = value.indexOf('%') == -1 && !isNaN( num );
-  return isValid && num;
-}
-
-function noop() {}
-
-var logError = typeof console == 'undefined' ? noop :
-  function( message ) {
-    console.error( message );
-  };
-
-// -------------------------- measurements -------------------------- //
-
-var measurements = [
-  'paddingLeft',
-  'paddingRight',
-  'paddingTop',
-  'paddingBottom',
-  'marginLeft',
-  'marginRight',
-  'marginTop',
-  'marginBottom',
-  'borderLeftWidth',
-  'borderRightWidth',
-  'borderTopWidth',
-  'borderBottomWidth'
-];
-
-var measurementsLength = measurements.length;
-
-function getZeroSize() {
-  var size = {
-    width: 0,
-    height: 0,
-    innerWidth: 0,
-    innerHeight: 0,
-    outerWidth: 0,
-    outerHeight: 0
-  };
-  for ( var i=0; i < measurementsLength; i++ ) {
-    var measurement = measurements[i];
-    size[ measurement ] = 0;
-  }
-  return size;
-}
-
-// -------------------------- getStyle -------------------------- //
-
-/**
- * getStyle, get style of element, check for Firefox bug
- * https://bugzilla.mozilla.org/show_bug.cgi?id=548397
- */
-function getStyle( elem ) {
-  var style = getComputedStyle( elem );
-  if ( !style ) {
-    logError( 'Style returned ' + style +
-      '. Are you running this code in a hidden iframe on Firefox? ' +
-      'See http://bit.ly/getsizebug1' );
-  }
-  return style;
-}
-
-// -------------------------- setup -------------------------- //
-
-var isSetup = false;
-
-var isBoxSizeOuter;
-
-/**
- * setup
- * check isBoxSizerOuter
- * do on first getSize() rather than on page load for Firefox bug
- */
-function setup() {
-  // setup once
-  if ( isSetup ) {
-    return;
-  }
-  isSetup = true;
-
-  // -------------------------- box sizing -------------------------- //
-
-  /**
-   * WebKit measures the outer-width on style.width on border-box elems
-   * IE & Firefox<29 measures the inner-width
-   */
-  var div = document.createElement('div');
-  div.style.width = '200px';
-  div.style.padding = '1px 2px 3px 4px';
-  div.style.borderStyle = 'solid';
-  div.style.borderWidth = '1px 2px 3px 4px';
-  div.style.boxSizing = 'border-box';
-
-  var body = document.body || document.documentElement;
-  body.appendChild( div );
-  var style = getStyle( div );
-
-  getSize.isBoxSizeOuter = isBoxSizeOuter = getStyleSize( style.width ) == 200;
-  body.removeChild( div );
-
-}
-
-// -------------------------- getSize -------------------------- //
-
-function getSize( elem ) {
-  setup();
-
-  // use querySeletor if elem is string
-  if ( typeof elem == 'string' ) {
-    elem = document.querySelector( elem );
-  }
-
-  // do not proceed on non-objects
-  if ( !elem || typeof elem != 'object' || !elem.nodeType ) {
-    return;
-  }
-
-  var style = getStyle( elem );
-
-  // if hidden, everything is 0
-  if ( style.display == 'none' ) {
-    return getZeroSize();
-  }
-
-  var size = {};
-  size.width = elem.offsetWidth;
-  size.height = elem.offsetHeight;
-
-  var isBorderBox = size.isBorderBox = style.boxSizing == 'border-box';
-
-  // get all measurements
-  for ( var i=0; i < measurementsLength; i++ ) {
-    var measurement = measurements[i];
-    var value = style[ measurement ];
-    var num = parseFloat( value );
-    // any 'auto', 'medium' value will be 0
-    size[ measurement ] = !isNaN( num ) ? num : 0;
-  }
-
-  var paddingWidth = size.paddingLeft + size.paddingRight;
-  var paddingHeight = size.paddingTop + size.paddingBottom;
-  var marginWidth = size.marginLeft + size.marginRight;
-  var marginHeight = size.marginTop + size.marginBottom;
-  var borderWidth = size.borderLeftWidth + size.borderRightWidth;
-  var borderHeight = size.borderTopWidth + size.borderBottomWidth;
-
-  var isBorderBoxSizeOuter = isBorderBox && isBoxSizeOuter;
-
-  // overwrite width and height if we can get it from style
-  var styleWidth = getStyleSize( style.width );
-  if ( styleWidth !== false ) {
-    size.width = styleWidth +
-      // add padding and border unless it's already including it
-      ( isBorderBoxSizeOuter ? 0 : paddingWidth + borderWidth );
-  }
-
-  var styleHeight = getStyleSize( style.height );
-  if ( styleHeight !== false ) {
-    size.height = styleHeight +
-      // add padding and border unless it's already including it
-      ( isBorderBoxSizeOuter ? 0 : paddingHeight + borderHeight );
-  }
-
-  size.innerWidth = size.width - ( paddingWidth + borderWidth );
-  size.innerHeight = size.height - ( paddingHeight + borderHeight );
-
-  size.outerWidth = size.width + marginWidth;
-  size.outerHeight = size.height + marginHeight;
-
-  return size;
-}
-
-return getSize;
-
-});
-
-/**
- * matchesSelector v2.0.2
- * matchesSelector( element, '.selector' )
- * MIT license
- */
-
-/*jshint browser: true, strict: true, undef: true, unused: true */
-
-( function( window, factory ) {
-  /*global define: false, module: false */
-  'use strict';
-  // universal module definition
-  if ( typeof define == 'function' && define.amd ) {
-    // AMD
-    define( 'desandro-matches-selector/matches-selector',factory );
-  } else if ( typeof module == 'object' && module.exports ) {
-    // CommonJS
-    module.exports = factory();
-  } else {
-    // browser global
-    window.matchesSelector = factory();
-  }
-
-}( window, function factory() {
-  'use strict';
-
-  var matchesMethod = ( function() {
-    var ElemProto = window.Element.prototype;
-    // check for the standard method name first
-    if ( ElemProto.matches ) {
-      return 'matches';
-    }
-    // check un-prefixed
-    if ( ElemProto.matchesSelector ) {
-      return 'matchesSelector';
-    }
-    // check vendor prefixes
-    var prefixes = [ 'webkit', 'moz', 'ms', 'o' ];
-
-    for ( var i=0; i < prefixes.length; i++ ) {
-      var prefix = prefixes[i];
-      var method = prefix + 'MatchesSelector';
-      if ( ElemProto[ method ] ) {
-        return method;
-      }
-    }
-  })();
-
-  return function matchesSelector( elem, selector ) {
-    return elem[ matchesMethod ]( selector );
-  };
-
-}));
-
-/**
- * Fizzy UI utils v2.0.4
- * MIT license
- */
-
-/*jshint browser: true, undef: true, unused: true, strict: true */
-
-( function( window, factory ) {
-  // universal module definition
-  /*jshint strict: false */ /*globals define, module, require */
-
-  if ( typeof define == 'function' && define.amd ) {
-    // AMD
-    define( 'fizzy-ui-utils/utils',[
-      'desandro-matches-selector/matches-selector'
-    ], function( matchesSelector ) {
-      return factory( window, matchesSelector );
-    });
-  } else if ( typeof module == 'object' && module.exports ) {
-    // CommonJS
-    module.exports = factory(
-      window,
-      require('desandro-matches-selector')
-    );
-  } else {
-    // browser global
-    window.fizzyUIUtils = factory(
-      window,
-      window.matchesSelector
-    );
-  }
-
-}( window, function factory( window, matchesSelector ) {
-
-
-
-var utils = {};
-
-// ----- extend ----- //
-
-// extends objects
-utils.extend = function( a, b ) {
-  for ( var prop in b ) {
-    a[ prop ] = b[ prop ];
-  }
-  return a;
-};
-
-// ----- modulo ----- //
-
-utils.modulo = function( num, div ) {
-  return ( ( num % div ) + div ) % div;
-};
-
-// ----- makeArray ----- //
-
-// turn element or nodeList into an array
-utils.makeArray = function( obj ) {
-  var ary = [];
-  if ( Array.isArray( obj ) ) {
-    // use object if already an array
-    ary = obj;
-  } else if ( obj && typeof obj == 'object' &&
-    typeof obj.length == 'number' ) {
-    // convert nodeList to array
-    for ( var i=0; i < obj.length; i++ ) {
-      ary.push( obj[i] );
-    }
-  } else {
-    // array of single index
-    ary.push( obj );
-  }
-  return ary;
-};
-
-// ----- removeFrom ----- //
-
-utils.removeFrom = function( ary, obj ) {
-  var index = ary.indexOf( obj );
-  if ( index != -1 ) {
-    ary.splice( index, 1 );
-  }
-};
-
-// ----- getParent ----- //
-
-utils.getParent = function( elem, selector ) {
-  while ( elem != document.body ) {
-    elem = elem.parentNode;
-    if ( matchesSelector( elem, selector ) ) {
-      return elem;
-    }
-  }
-};
-
-// ----- getQueryElement ----- //
-
-// use element as selector string
-utils.getQueryElement = function( elem ) {
-  if ( typeof elem == 'string' ) {
-    return document.querySelector( elem );
-  }
-  return elem;
-};
-
-// ----- handleEvent ----- //
-
-// enable .ontype to trigger from .addEventListener( elem, 'type' )
-utils.handleEvent = function( event ) {
-  var method = 'on' + event.type;
-  if ( this[ method ] ) {
-    this[ method ]( event );
-  }
-};
-
-// ----- filterFindElements ----- //
-
-utils.filterFindElements = function( elems, selector ) {
-  // make array of elems
-  elems = utils.makeArray( elems );
-  var ffElems = [];
-
-  elems.forEach( function( elem ) {
-    // check that elem is an actual element
-    if ( !( elem instanceof HTMLElement ) ) {
-      return;
-    }
-    // add elem if no selector
-    if ( !selector ) {
-      ffElems.push( elem );
-      return;
-    }
-    // filter & find items if we have a selector
-    // filter
-    if ( matchesSelector( elem, selector ) ) {
-      ffElems.push( elem );
-    }
-    // find children
-    var childElems = elem.querySelectorAll( selector );
-    // concat childElems to filterFound array
-    for ( var i=0; i < childElems.length; i++ ) {
-      ffElems.push( childElems[i] );
-    }
-  });
-
-  return ffElems;
-};
-
-// ----- debounceMethod ----- //
-
-utils.debounceMethod = function( _class, methodName, threshold ) {
-  // original method
-  var method = _class.prototype[ methodName ];
-  var timeoutName = methodName + 'Timeout';
-
-  _class.prototype[ methodName ] = function() {
-    var timeout = this[ timeoutName ];
-    if ( timeout ) {
-      clearTimeout( timeout );
-    }
-    var args = arguments;
-
-    var _this = this;
-    this[ timeoutName ] = setTimeout( function() {
-      method.apply( _this, args );
-      delete _this[ timeoutName ];
-    }, threshold || 100 );
-  };
-};
-
-// ----- docReady ----- //
-
-utils.docReady = function( callback ) {
-  var readyState = document.readyState;
-  if ( readyState == 'complete' || readyState == 'interactive' ) {
-    // do async to allow for other scripts to run. metafizzy/flickity#441
-    setTimeout( callback );
-  } else {
-    document.addEventListener( 'DOMContentLoaded', callback );
-  }
-};
-
-// ----- htmlInit ----- //
-
-// http://jamesroberts.name/blog/2010/02/22/string-functions-for-javascript-trim-to-camel-case-to-dashed-and-to-underscore/
-utils.toDashed = function( str ) {
-  return str.replace( /(.)([A-Z])/g, function( match, $1, $2 ) {
-    return $1 + '-' + $2;
-  }).toLowerCase();
-};
-
-var console = window.console;
-/**
- * allow user to initialize classes via [data-namespace] or .js-namespace class
- * htmlInit( Widget, 'widgetName' )
- * options are parsed from data-namespace-options
- */
-utils.htmlInit = function( WidgetClass, namespace ) {
-  utils.docReady( function() {
-    var dashedNamespace = utils.toDashed( namespace );
-    var dataAttr = 'data-' + dashedNamespace;
-    var dataAttrElems = document.querySelectorAll( '[' + dataAttr + ']' );
-    var jsDashElems = document.querySelectorAll( '.js-' + dashedNamespace );
-    var elems = utils.makeArray( dataAttrElems )
-      .concat( utils.makeArray( jsDashElems ) );
-    var dataOptionsAttr = dataAttr + '-options';
-    var jQuery = window.jQuery;
-
-    elems.forEach( function( elem ) {
-      var attr = elem.getAttribute( dataAttr ) ||
-        elem.getAttribute( dataOptionsAttr );
-      var options;
-      try {
-        options = attr && JSON.parse( attr );
-      } catch ( error ) {
-        // log error, do not initialize
-        if ( console ) {
-          console.error( 'Error parsing ' + dataAttr + ' on ' + elem.className +
-          ': ' + error );
-        }
-        return;
-      }
-      // initialize
-      var instance = new WidgetClass( elem, options );
-      // make available via $().data('namespace')
-      if ( jQuery ) {
-        jQuery.data( elem, namespace, instance );
-      }
-    });
-
-  });
-};
-
-// -----  ----- //
-
-return utils;
-
-}));
-
-/**
- * Outlayer Item
- */
-
-( function( window, factory ) {
-  // universal module definition
-  /* jshint strict: false */ /* globals define, module, require */
-  if ( typeof define == 'function' && define.amd ) {
-    // AMD - RequireJS
-    define( 'outlayer/item',[
-        'ev-emitter/ev-emitter',
-        'get-size/get-size'
-      ],
-      factory
-    );
-  } else if ( typeof module == 'object' && module.exports ) {
-    // CommonJS - Browserify, Webpack
-    module.exports = factory(
-      require('ev-emitter'),
-      require('get-size')
-    );
-  } else {
-    // browser global
-    window.Outlayer = {};
-    window.Outlayer.Item = factory(
-      window.EvEmitter,
-      window.getSize
-    );
-  }
-
-}( window, function factory( EvEmitter, getSize ) {
-'use strict';
-
-// ----- helpers ----- //
-
-function isEmptyObj( obj ) {
-  for ( var prop in obj ) {
-    return false;
-  }
-  prop = null;
-  return true;
-}
-
-// -------------------------- CSS3 support -------------------------- //
-
-
-var docElemStyle = document.documentElement.style;
-
-var transitionProperty = typeof docElemStyle.transition == 'string' ?
-  'transition' : 'WebkitTransition';
-var transformProperty = typeof docElemStyle.transform == 'string' ?
-  'transform' : 'WebkitTransform';
-
-var transitionEndEvent = {
-  WebkitTransition: 'webkitTransitionEnd',
-  transition: 'transitionend'
-}[ transitionProperty ];
-
-// cache all vendor properties that could have vendor prefix
-var vendorProperties = {
-  transform: transformProperty,
-  transition: transitionProperty,
-  transitionDuration: transitionProperty + 'Duration',
-  transitionProperty: transitionProperty + 'Property',
-  transitionDelay: transitionProperty + 'Delay'
-};
-
-// -------------------------- Item -------------------------- //
-
-function Item( element, layout ) {
-  if ( !element ) {
-    return;
-  }
-
-  this.element = element;
-  // parent layout class, i.e. Masonry, Isotope, or Packery
-  this.layout = layout;
-  this.position = {
-    x: 0,
-    y: 0
-  };
-
-  this._create();
-}
-
-// inherit EvEmitter
-var proto = Item.prototype = Object.create( EvEmitter.prototype );
-proto.constructor = Item;
-
-proto._create = function() {
-  // transition objects
-  this._transn = {
-    ingProperties: {},
-    clean: {},
-    onEnd: {}
-  };
-
-  this.css({
-    position: 'absolute'
-  });
-};
-
-// trigger specified handler for event type
-proto.handleEvent = function( event ) {
-  var method = 'on' + event.type;
-  if ( this[ method ] ) {
-    this[ method ]( event );
-  }
-};
-
-proto.getSize = function() {
-  this.size = getSize( this.element );
-};
-
-/**
- * apply CSS styles to element
- * @param {Object} style
- */
-proto.css = function( style ) {
-  var elemStyle = this.element.style;
-
-  for ( var prop in style ) {
-    // use vendor property if available
-    var supportedProp = vendorProperties[ prop ] || prop;
-    elemStyle[ supportedProp ] = style[ prop ];
-  }
-};
-
- // measure position, and sets it
-proto.getPosition = function() {
-  var style = getComputedStyle( this.element );
-  var isOriginLeft = this.layout._getOption('originLeft');
-  var isOriginTop = this.layout._getOption('originTop');
-  var xValue = style[ isOriginLeft ? 'left' : 'right' ];
-  var yValue = style[ isOriginTop ? 'top' : 'bottom' ];
-  // convert percent to pixels
-  var layoutSize = this.layout.size;
-  var x = xValue.indexOf('%') != -1 ?
-    ( parseFloat( xValue ) / 100 ) * layoutSize.width : parseInt( xValue, 10 );
-  var y = yValue.indexOf('%') != -1 ?
-    ( parseFloat( yValue ) / 100 ) * layoutSize.height : parseInt( yValue, 10 );
-
-  // clean up 'auto' or other non-integer values
-  x = isNaN( x ) ? 0 : x;
-  y = isNaN( y ) ? 0 : y;
-  // remove padding from measurement
-  x -= isOriginLeft ? layoutSize.paddingLeft : layoutSize.paddingRight;
-  y -= isOriginTop ? layoutSize.paddingTop : layoutSize.paddingBottom;
-
-  this.position.x = x;
-  this.position.y = y;
-};
-
-// set settled position, apply padding
-proto.layoutPosition = function() {
-  var layoutSize = this.layout.size;
-  var style = {};
-  var isOriginLeft = this.layout._getOption('originLeft');
-  var isOriginTop = this.layout._getOption('originTop');
-
-  // x
-  var xPadding = isOriginLeft ? 'paddingLeft' : 'paddingRight';
-  var xProperty = isOriginLeft ? 'left' : 'right';
-  var xResetProperty = isOriginLeft ? 'right' : 'left';
-
-  var x = this.position.x + layoutSize[ xPadding ];
-  // set in percentage or pixels
-  style[ xProperty ] = this.getXValue( x );
-  // reset other property
-  style[ xResetProperty ] = '';
-
-  // y
-  var yPadding = isOriginTop ? 'paddingTop' : 'paddingBottom';
-  var yProperty = isOriginTop ? 'top' : 'bottom';
-  var yResetProperty = isOriginTop ? 'bottom' : 'top';
-
-  var y = this.position.y + layoutSize[ yPadding ];
-  // set in percentage or pixels
-  style[ yProperty ] = this.getYValue( y );
-  // reset other property
-  style[ yResetProperty ] = '';
-
-  this.css( style );
-  this.emitEvent( 'layout', [ this ] );
-};
-
-proto.getXValue = function( x ) {
-  var isHorizontal = this.layout._getOption('horizontal');
-  return this.layout.options.percentPosition && !isHorizontal ?
-    ( ( x / this.layout.size.width ) * 100 ) + '%' : x + 'px';
-};
-
-proto.getYValue = function( y ) {
-  var isHorizontal = this.layout._getOption('horizontal');
-  return this.layout.options.percentPosition && isHorizontal ?
-    ( ( y / this.layout.size.height ) * 100 ) + '%' : y + 'px';
-};
-
-proto._transitionTo = function( x, y ) {
-  this.getPosition();
-  // get current x & y from top/left
-  var curX = this.position.x;
-  var curY = this.position.y;
-
-  var compareX = parseInt( x, 10 );
-  var compareY = parseInt( y, 10 );
-  var didNotMove = compareX === this.position.x && compareY === this.position.y;
-
-  // save end position
-  this.setPosition( x, y );
-
-  // if did not move and not transitioning, just go to layout
-  if ( didNotMove && !this.isTransitioning ) {
-    this.layoutPosition();
-    return;
-  }
-
-  var transX = x - curX;
-  var transY = y - curY;
-  var transitionStyle = {};
-  transitionStyle.transform = this.getTranslate( transX, transY );
-
-  this.transition({
-    to: transitionStyle,
-    onTransitionEnd: {
-      transform: this.layoutPosition
-    },
-    isCleaning: true
-  });
-};
-
-proto.getTranslate = function( x, y ) {
-  // flip cooridinates if origin on right or bottom
-  var isOriginLeft = this.layout._getOption('originLeft');
-  var isOriginTop = this.layout._getOption('originTop');
-  x = isOriginLeft ? x : -x;
-  y = isOriginTop ? y : -y;
-  return 'translate3d(' + x + 'px, ' + y + 'px, 0)';
-};
-
-// non transition + transform support
-proto.goTo = function( x, y ) {
-  this.setPosition( x, y );
-  this.layoutPosition();
-};
-
-proto.moveTo = proto._transitionTo;
-
-proto.setPosition = function( x, y ) {
-  this.position.x = parseInt( x, 10 );
-  this.position.y = parseInt( y, 10 );
-};
-
-// ----- transition ----- //
-
-/**
- * @param {Object} style - CSS
- * @param {Function} onTransitionEnd
- */
-
-// non transition, just trigger callback
-proto._nonTransition = function( args ) {
-  this.css( args.to );
-  if ( args.isCleaning ) {
-    this._removeStyles( args.to );
-  }
-  for ( var prop in args.onTransitionEnd ) {
-    args.onTransitionEnd[ prop ].call( this );
-  }
-};
-
-/**
- * proper transition
- * @param {Object} args - arguments
- *   @param {Object} to - style to transition to
- *   @param {Object} from - style to start transition from
- *   @param {Boolean} isCleaning - removes transition styles after transition
- *   @param {Function} onTransitionEnd - callback
- */
-proto.transition = function( args ) {
-  // redirect to nonTransition if no transition duration
-  if ( !parseFloat( this.layout.options.transitionDuration ) ) {
-    this._nonTransition( args );
-    return;
-  }
-
-  var _transition = this._transn;
-  // keep track of onTransitionEnd callback by css property
-  for ( var prop in args.onTransitionEnd ) {
-    _transition.onEnd[ prop ] = args.onTransitionEnd[ prop ];
-  }
-  // keep track of properties that are transitioning
-  for ( prop in args.to ) {
-    _transition.ingProperties[ prop ] = true;
-    // keep track of properties to clean up when transition is done
-    if ( args.isCleaning ) {
-      _transition.clean[ prop ] = true;
-    }
-  }
-
-  // set from styles
-  if ( args.from ) {
-    this.css( args.from );
-    // force redraw. http://blog.alexmaccaw.com/css-transitions
-    var h = this.element.offsetHeight;
-    // hack for JSHint to hush about unused var
-    h = null;
-  }
-  // enable transition
-  this.enableTransition( args.to );
-  // set styles that are transitioning
-  this.css( args.to );
-
-  this.isTransitioning = true;
-
-};
-
-// dash before all cap letters, including first for
-// WebkitTransform => -webkit-transform
-function toDashedAll( str ) {
-  return str.replace( /([A-Z])/g, function( $1 ) {
-    return '-' + $1.toLowerCase();
-  });
-}
-
-var transitionProps = 'opacity,' + toDashedAll( transformProperty );
-
-proto.enableTransition = function(/* style */) {
-  // HACK changing transitionProperty during a transition
-  // will cause transition to jump
-  if ( this.isTransitioning ) {
-    return;
-  }
-
-  // make `transition: foo, bar, baz` from style object
-  // HACK un-comment this when enableTransition can work
-  // while a transition is happening
-  // var transitionValues = [];
-  // for ( var prop in style ) {
-  //   // dash-ify camelCased properties like WebkitTransition
-  //   prop = vendorProperties[ prop ] || prop;
-  //   transitionValues.push( toDashedAll( prop ) );
-  // }
-  // munge number to millisecond, to match stagger
-  var duration = this.layout.options.transitionDuration;
-  duration = typeof duration == 'number' ? duration + 'ms' : duration;
-  // enable transition styles
-  this.css({
-    transitionProperty: transitionProps,
-    transitionDuration: duration,
-    transitionDelay: this.staggerDelay || 0
-  });
-  // listen for transition end event
-  this.element.addEventListener( transitionEndEvent, this, false );
-};
-
-// ----- events ----- //
-
-proto.onwebkitTransitionEnd = function( event ) {
-  this.ontransitionend( event );
-};
-
-proto.onotransitionend = function( event ) {
-  this.ontransitionend( event );
-};
-
-// properties that I munge to make my life easier
-var dashedVendorProperties = {
-  '-webkit-transform': 'transform'
-};
-
-proto.ontransitionend = function( event ) {
-  // disregard bubbled events from children
-  if ( event.target !== this.element ) {
-    return;
-  }
-  var _transition = this._transn;
-  // get property name of transitioned property, convert to prefix-free
-  var propertyName = dashedVendorProperties[ event.propertyName ] || event.propertyName;
-
-  // remove property that has completed transitioning
-  delete _transition.ingProperties[ propertyName ];
-  // check if any properties are still transitioning
-  if ( isEmptyObj( _transition.ingProperties ) ) {
-    // all properties have completed transitioning
-    this.disableTransition();
-  }
-  // clean style
-  if ( propertyName in _transition.clean ) {
-    // clean up style
-    this.element.style[ event.propertyName ] = '';
-    delete _transition.clean[ propertyName ];
-  }
-  // trigger onTransitionEnd callback
-  if ( propertyName in _transition.onEnd ) {
-    var onTransitionEnd = _transition.onEnd[ propertyName ];
-    onTransitionEnd.call( this );
-    delete _transition.onEnd[ propertyName ];
-  }
-
-  this.emitEvent( 'transitionEnd', [ this ] );
-};
-
-proto.disableTransition = function() {
-  this.removeTransitionStyles();
-  this.element.removeEventListener( transitionEndEvent, this, false );
-  this.isTransitioning = false;
-};
-
-/**
- * removes style property from element
- * @param {Object} style
-**/
-proto._removeStyles = function( style ) {
-  // clean up transition styles
-  var cleanStyle = {};
-  for ( var prop in style ) {
-    cleanStyle[ prop ] = '';
-  }
-  this.css( cleanStyle );
-};
-
-var cleanTransitionStyle = {
-  transitionProperty: '',
-  transitionDuration: '',
-  transitionDelay: ''
-};
-
-proto.removeTransitionStyles = function() {
-  // remove transition
-  this.css( cleanTransitionStyle );
-};
-
-// ----- stagger ----- //
-
-proto.stagger = function( delay ) {
-  delay = isNaN( delay ) ? 0 : delay;
-  this.staggerDelay = delay + 'ms';
-};
-
-// ----- show/hide/remove ----- //
-
-// remove element from DOM
-proto.removeElem = function() {
-  this.element.parentNode.removeChild( this.element );
-  // remove display: none
-  this.css({ display: '' });
-  this.emitEvent( 'remove', [ this ] );
-};
-
-proto.remove = function() {
-  // just remove element if no transition support or no transition
-  if ( !transitionProperty || !parseFloat( this.layout.options.transitionDuration ) ) {
-    this.removeElem();
-    return;
-  }
-
-  // start transition
-  this.once( 'transitionEnd', function() {
-    this.removeElem();
-  });
-  this.hide();
-};
-
-proto.reveal = function() {
-  delete this.isHidden;
-  // remove display: none
-  this.css({ display: '' });
-
-  var options = this.layout.options;
-
-  var onTransitionEnd = {};
-  var transitionEndProperty = this.getHideRevealTransitionEndProperty('visibleStyle');
-  onTransitionEnd[ transitionEndProperty ] = this.onRevealTransitionEnd;
-
-  this.transition({
-    from: options.hiddenStyle,
-    to: options.visibleStyle,
-    isCleaning: true,
-    onTransitionEnd: onTransitionEnd
-  });
-};
-
-proto.onRevealTransitionEnd = function() {
-  // check if still visible
-  // during transition, item may have been hidden
-  if ( !this.isHidden ) {
-    this.emitEvent('reveal');
-  }
-};
-
-/**
- * get style property use for hide/reveal transition end
- * @param {String} styleProperty - hiddenStyle/visibleStyle
- * @returns {String}
- */
-proto.getHideRevealTransitionEndProperty = function( styleProperty ) {
-  var optionStyle = this.layout.options[ styleProperty ];
-  // use opacity
-  if ( optionStyle.opacity ) {
-    return 'opacity';
-  }
-  // get first property
-  for ( var prop in optionStyle ) {
-    return prop;
-  }
-};
-
-proto.hide = function() {
-  // set flag
-  this.isHidden = true;
-  // remove display: none
-  this.css({ display: '' });
-
-  var options = this.layout.options;
-
-  var onTransitionEnd = {};
-  var transitionEndProperty = this.getHideRevealTransitionEndProperty('hiddenStyle');
-  onTransitionEnd[ transitionEndProperty ] = this.onHideTransitionEnd;
-
-  this.transition({
-    from: options.visibleStyle,
-    to: options.hiddenStyle,
-    // keep hidden stuff hidden
-    isCleaning: true,
-    onTransitionEnd: onTransitionEnd
-  });
-};
-
-proto.onHideTransitionEnd = function() {
-  // check if still hidden
-  // during transition, item may have been un-hidden
-  if ( this.isHidden ) {
-    this.css({ display: 'none' });
-    this.emitEvent('hide');
-  }
-};
-
-proto.destroy = function() {
-  this.css({
-    position: '',
-    left: '',
-    right: '',
-    top: '',
-    bottom: '',
-    transition: '',
-    transform: ''
-  });
-};
-
-return Item;
-
-}));
-
-/*!
- * Outlayer v2.1.0
- * the brains and guts of a layout library
- * MIT license
- */
-
-( function( window, factory ) {
-  'use strict';
-  // universal module definition
-  /* jshint strict: false */ /* globals define, module, require */
-  if ( typeof define == 'function' && define.amd ) {
-    // AMD - RequireJS
-    define( 'outlayer/outlayer',[
-        'ev-emitter/ev-emitter',
-        'get-size/get-size',
-        'fizzy-ui-utils/utils',
-        './item'
-      ],
-      function( EvEmitter, getSize, utils, Item ) {
-        return factory( window, EvEmitter, getSize, utils, Item);
-      }
-    );
-  } else if ( typeof module == 'object' && module.exports ) {
-    // CommonJS - Browserify, Webpack
-    module.exports = factory(
-      window,
-      require('ev-emitter'),
-      require('get-size'),
-      require('fizzy-ui-utils'),
-      require('./item')
-    );
-  } else {
-    // browser global
-    window.Outlayer = factory(
-      window,
-      window.EvEmitter,
-      window.getSize,
-      window.fizzyUIUtils,
-      window.Outlayer.Item
-    );
-  }
-
-}( window, function factory( window, EvEmitter, getSize, utils, Item ) {
-'use strict';
-
-// ----- vars ----- //
-
-var console = window.console;
-var jQuery = window.jQuery;
-var noop = function() {};
-
-// -------------------------- Outlayer -------------------------- //
-
-// globally unique identifiers
-var GUID = 0;
-// internal store of all Outlayer intances
-var instances = {};
-
-
-/**
- * @param {Element, String} element
- * @param {Object} options
- * @constructor
- */
-function Outlayer( element, options ) {
-  var queryElement = utils.getQueryElement( element );
-  if ( !queryElement ) {
-    if ( console ) {
-      console.error( 'Bad element for ' + this.constructor.namespace +
-        ': ' + ( queryElement || element ) );
-    }
-    return;
-  }
-  this.element = queryElement;
-  // add jQuery
-  if ( jQuery ) {
-    this.$element = jQuery( this.element );
-  }
-
-  // options
-  this.options = utils.extend( {}, this.constructor.defaults );
-  this.option( options );
-
-  // add id for Outlayer.getFromElement
-  var id = ++GUID;
-  this.element.outlayerGUID = id; // expando
-  instances[ id ] = this; // associate via id
-
-  // kick it off
-  this._create();
-
-  var isInitLayout = this._getOption('initLayout');
-  if ( isInitLayout ) {
-    this.layout();
-  }
-}
-
-// settings are for internal use only
-Outlayer.namespace = 'outlayer';
-Outlayer.Item = Item;
-
-// default options
-Outlayer.defaults = {
-  containerStyle: {
-    position: 'relative'
-  },
-  initLayout: true,
-  originLeft: true,
-  originTop: true,
-  resize: true,
-  resizeContainer: true,
-  // item options
-  transitionDuration: '0.4s',
-  hiddenStyle: {
-    opacity: 0,
-    transform: 'scale(0.001)'
-  },
-  visibleStyle: {
-    opacity: 1,
-    transform: 'scale(1)'
-  }
-};
-
-var proto = Outlayer.prototype;
-// inherit EvEmitter
-utils.extend( proto, EvEmitter.prototype );
-
-/**
- * set options
- * @param {Object} opts
- */
-proto.option = function( opts ) {
-  utils.extend( this.options, opts );
-};
-
-/**
- * get backwards compatible option value, check old name
- */
-proto._getOption = function( option ) {
-  var oldOption = this.constructor.compatOptions[ option ];
-  return oldOption && this.options[ oldOption ] !== undefined ?
-    this.options[ oldOption ] : this.options[ option ];
-};
-
-Outlayer.compatOptions = {
-  // currentName: oldName
-  initLayout: 'isInitLayout',
-  horizontal: 'isHorizontal',
-  layoutInstant: 'isLayoutInstant',
-  originLeft: 'isOriginLeft',
-  originTop: 'isOriginTop',
-  resize: 'isResizeBound',
-  resizeContainer: 'isResizingContainer'
-};
-
-proto._create = function() {
-  // get items from children
-  this.reloadItems();
-  // elements that affect layout, but are not laid out
-  this.stamps = [];
-  this.stamp( this.options.stamp );
-  // set container style
-  utils.extend( this.element.style, this.options.containerStyle );
-
-  // bind resize method
-  var canBindResize = this._getOption('resize');
-  if ( canBindResize ) {
-    this.bindResize();
-  }
-};
-
-// goes through all children again and gets bricks in proper order
-proto.reloadItems = function() {
-  // collection of item elements
-  this.items = this._itemize( this.element.children );
-};
-
-
-/**
- * turn elements into Outlayer.Items to be used in layout
- * @param {Array or NodeList or HTMLElement} elems
- * @returns {Array} items - collection of new Outlayer Items
- */
-proto._itemize = function( elems ) {
-
-  var itemElems = this._filterFindItemElements( elems );
-  var Item = this.constructor.Item;
-
-  // create new Outlayer Items for collection
-  var items = [];
-  for ( var i=0; i < itemElems.length; i++ ) {
-    var elem = itemElems[i];
-    var item = new Item( elem, this );
-    items.push( item );
-  }
-
-  return items;
-};
-
-/**
- * get item elements to be used in layout
- * @param {Array or NodeList or HTMLElement} elems
- * @returns {Array} items - item elements
- */
-proto._filterFindItemElements = function( elems ) {
-  return utils.filterFindElements( elems, this.options.itemSelector );
-};
-
-/**
- * getter method for getting item elements
- * @returns {Array} elems - collection of item elements
- */
-proto.getItemElements = function() {
-  return this.items.map( function( item ) {
-    return item.element;
-  });
-};
-
-// ----- init & layout ----- //
-
-/**
- * lays out all items
- */
-proto.layout = function() {
-  this._resetLayout();
-  this._manageStamps();
-
-  // don't animate first layout
-  var layoutInstant = this._getOption('layoutInstant');
-  var isInstant = layoutInstant !== undefined ?
-    layoutInstant : !this._isLayoutInited;
-  this.layoutItems( this.items, isInstant );
-
-  // flag for initalized
-  this._isLayoutInited = true;
-};
-
-// _init is alias for layout
-proto._init = proto.layout;
-
-/**
- * logic before any new layout
- */
-proto._resetLayout = function() {
-  this.getSize();
-};
-
-
-proto.getSize = function() {
-  this.size = getSize( this.element );
-};
-
-/**
- * get measurement from option, for columnWidth, rowHeight, gutter
- * if option is String -> get element from selector string, & get size of element
- * if option is Element -> get size of element
- * else use option as a number
- *
- * @param {String} measurement
- * @param {String} size - width or height
- * @private
- */
-proto._getMeasurement = function( measurement, size ) {
-  var option = this.options[ measurement ];
-  var elem;
-  if ( !option ) {
-    // default to 0
-    this[ measurement ] = 0;
-  } else {
-    // use option as an element
-    if ( typeof option == 'string' ) {
-      elem = this.element.querySelector( option );
-    } else if ( option instanceof HTMLElement ) {
-      elem = option;
-    }
-    // use size of element, if element
-    this[ measurement ] = elem ? getSize( elem )[ size ] : option;
-  }
-};
-
-/**
- * layout a collection of item elements
- * @api public
- */
-proto.layoutItems = function( items, isInstant ) {
-  items = this._getItemsForLayout( items );
-
-  this._layoutItems( items, isInstant );
-
-  this._postLayout();
-};
-
-/**
- * get the items to be laid out
- * you may want to skip over some items
- * @param {Array} items
- * @returns {Array} items
- */
-proto._getItemsForLayout = function( items ) {
-  return items.filter( function( item ) {
-    return !item.isIgnored;
-  });
-};
-
-/**
- * layout items
- * @param {Array} items
- * @param {Boolean} isInstant
- */
-proto._layoutItems = function( items, isInstant ) {
-  this._emitCompleteOnItems( 'layout', items );
-
-  if ( !items || !items.length ) {
-    // no items, emit event with empty array
-    return;
-  }
-
-  var queue = [];
-
-  items.forEach( function( item ) {
-    // get x/y object from method
-    var position = this._getItemLayoutPosition( item );
-    // enqueue
-    position.item = item;
-    position.isInstant = isInstant || item.isLayoutInstant;
-    queue.push( position );
-  }, this );
-
-  this._processLayoutQueue( queue );
-};
-
-/**
- * get item layout position
- * @param {Outlayer.Item} item
- * @returns {Object} x and y position
- */
-proto._getItemLayoutPosition = function( /* item */ ) {
-  return {
-    x: 0,
-    y: 0
-  };
-};
-
-/**
- * iterate over array and position each item
- * Reason being - separating this logic prevents 'layout invalidation'
- * thx @paul_irish
- * @param {Array} queue
- */
-proto._processLayoutQueue = function( queue ) {
-  this.updateStagger();
-  queue.forEach( function( obj, i ) {
-    this._positionItem( obj.item, obj.x, obj.y, obj.isInstant, i );
-  }, this );
-};
-
-// set stagger from option in milliseconds number
-proto.updateStagger = function() {
-  var stagger = this.options.stagger;
-  if ( stagger === null || stagger === undefined ) {
-    this.stagger = 0;
-    return;
-  }
-  this.stagger = getMilliseconds( stagger );
-  return this.stagger;
-};
-
-/**
- * Sets position of item in DOM
- * @param {Outlayer.Item} item
- * @param {Number} x - horizontal position
- * @param {Number} y - vertical position
- * @param {Boolean} isInstant - disables transitions
- */
-proto._positionItem = function( item, x, y, isInstant, i ) {
-  if ( isInstant ) {
-    // if not transition, just set CSS
-    item.goTo( x, y );
-  } else {
-    item.stagger( i * this.stagger );
-    item.moveTo( x, y );
-  }
-};
-
-/**
- * Any logic you want to do after each layout,
- * i.e. size the container
- */
-proto._postLayout = function() {
-  this.resizeContainer();
-};
-
-proto.resizeContainer = function() {
-  var isResizingContainer = this._getOption('resizeContainer');
-  if ( !isResizingContainer ) {
-    return;
-  }
-  var size = this._getContainerSize();
-  if ( size ) {
-    this._setContainerMeasure( size.width, true );
-    this._setContainerMeasure( size.height, false );
-  }
-};
-
-/**
- * Sets width or height of container if returned
- * @returns {Object} size
- *   @param {Number} width
- *   @param {Number} height
- */
-proto._getContainerSize = noop;
-
-/**
- * @param {Number} measure - size of width or height
- * @param {Boolean} isWidth
- */
-proto._setContainerMeasure = function( measure, isWidth ) {
-  if ( measure === undefined ) {
-    return;
-  }
-
-  var elemSize = this.size;
-  // add padding and border width if border box
-  if ( elemSize.isBorderBox ) {
-    measure += isWidth ? elemSize.paddingLeft + elemSize.paddingRight +
-      elemSize.borderLeftWidth + elemSize.borderRightWidth :
-      elemSize.paddingBottom + elemSize.paddingTop +
-      elemSize.borderTopWidth + elemSize.borderBottomWidth;
-  }
-
-  measure = Math.max( measure, 0 );
-  this.element.style[ isWidth ? 'width' : 'height' ] = measure + 'px';
-};
-
-/**
- * emit eventComplete on a collection of items events
- * @param {String} eventName
- * @param {Array} items - Outlayer.Items
- */
-proto._emitCompleteOnItems = function( eventName, items ) {
-  var _this = this;
-  function onComplete() {
-    _this.dispatchEvent( eventName + 'Complete', null, [ items ] );
-  }
-
-  var count = items.length;
-  if ( !items || !count ) {
-    onComplete();
-    return;
-  }
-
-  var doneCount = 0;
-  function tick() {
-    doneCount++;
-    if ( doneCount == count ) {
-      onComplete();
-    }
-  }
-
-  // bind callback
-  items.forEach( function( item ) {
-    item.once( eventName, tick );
-  });
-};
-
-/**
- * emits events via EvEmitter and jQuery events
- * @param {String} type - name of event
- * @param {Event} event - original event
- * @param {Array} args - extra arguments
- */
-proto.dispatchEvent = function( type, event, args ) {
-  // add original event to arguments
-  var emitArgs = event ? [ event ].concat( args ) : args;
-  this.emitEvent( type, emitArgs );
-
-  if ( jQuery ) {
-    // set this.$element
-    this.$element = this.$element || jQuery( this.element );
-    if ( event ) {
-      // create jQuery event
-      var $event = jQuery.Event( event );
-      $event.type = type;
-      this.$element.trigger( $event, args );
-    } else {
-      // just trigger with type if no event available
-      this.$element.trigger( type, args );
-    }
-  }
-};
-
-// -------------------------- ignore & stamps -------------------------- //
-
-
-/**
- * keep item in collection, but do not lay it out
- * ignored items do not get skipped in layout
- * @param {Element} elem
- */
-proto.ignore = function( elem ) {
-  var item = this.getItem( elem );
-  if ( item ) {
-    item.isIgnored = true;
-  }
-};
-
-/**
- * return item to layout collection
- * @param {Element} elem
- */
-proto.unignore = function( elem ) {
-  var item = this.getItem( elem );
-  if ( item ) {
-    delete item.isIgnored;
-  }
-};
-
-/**
- * adds elements to stamps
- * @param {NodeList, Array, Element, or String} elems
- */
-proto.stamp = function( elems ) {
-  elems = this._find( elems );
-  if ( !elems ) {
-    return;
-  }
-
-  this.stamps = this.stamps.concat( elems );
-  // ignore
-  elems.forEach( this.ignore, this );
-};
-
-/**
- * removes elements to stamps
- * @param {NodeList, Array, or Element} elems
- */
-proto.unstamp = function( elems ) {
-  elems = this._find( elems );
-  if ( !elems ){
-    return;
-  }
-
-  elems.forEach( function( elem ) {
-    // filter out removed stamp elements
-    utils.removeFrom( this.stamps, elem );
-    this.unignore( elem );
-  }, this );
-};
-
-/**
- * finds child elements
- * @param {NodeList, Array, Element, or String} elems
- * @returns {Array} elems
- */
-proto._find = function( elems ) {
-  if ( !elems ) {
-    return;
-  }
-  // if string, use argument as selector string
-  if ( typeof elems == 'string' ) {
-    elems = this.element.querySelectorAll( elems );
-  }
-  elems = utils.makeArray( elems );
-  return elems;
-};
-
-proto._manageStamps = function() {
-  if ( !this.stamps || !this.stamps.length ) {
-    return;
-  }
-
-  this._getBoundingRect();
-
-  this.stamps.forEach( this._manageStamp, this );
-};
-
-// update boundingLeft / Top
-proto._getBoundingRect = function() {
-  // get bounding rect for container element
-  var boundingRect = this.element.getBoundingClientRect();
-  var size = this.size;
-  this._boundingRect = {
-    left: boundingRect.left + size.paddingLeft + size.borderLeftWidth,
-    top: boundingRect.top + size.paddingTop + size.borderTopWidth,
-    right: boundingRect.right - ( size.paddingRight + size.borderRightWidth ),
-    bottom: boundingRect.bottom - ( size.paddingBottom + size.borderBottomWidth )
-  };
-};
-
-/**
- * @param {Element} stamp
-**/
-proto._manageStamp = noop;
-
-/**
- * get x/y position of element relative to container element
- * @param {Element} elem
- * @returns {Object} offset - has left, top, right, bottom
- */
-proto._getElementOffset = function( elem ) {
-  var boundingRect = elem.getBoundingClientRect();
-  var thisRect = this._boundingRect;
-  var size = getSize( elem );
-  var offset = {
-    left: boundingRect.left - thisRect.left - size.marginLeft,
-    top: boundingRect.top - thisRect.top - size.marginTop,
-    right: thisRect.right - boundingRect.right - size.marginRight,
-    bottom: thisRect.bottom - boundingRect.bottom - size.marginBottom
-  };
-  return offset;
-};
-
-// -------------------------- resize -------------------------- //
-
-// enable event handlers for listeners
-// i.e. resize -> onresize
-proto.handleEvent = utils.handleEvent;
-
-/**
- * Bind layout to window resizing
- */
-proto.bindResize = function() {
-  window.addEventListener( 'resize', this );
-  this.isResizeBound = true;
-};
-
-/**
- * Unbind layout to window resizing
- */
-proto.unbindResize = function() {
-  window.removeEventListener( 'resize', this );
-  this.isResizeBound = false;
-};
-
-proto.onresize = function() {
-  this.resize();
-};
-
-utils.debounceMethod( Outlayer, 'onresize', 100 );
-
-proto.resize = function() {
-  // don't trigger if size did not change
-  // or if resize was unbound. See #9
-  if ( !this.isResizeBound || !this.needsResizeLayout() ) {
-    return;
-  }
-
-  this.layout();
-};
-
-/**
- * check if layout is needed post layout
- * @returns Boolean
- */
-proto.needsResizeLayout = function() {
-  var size = getSize( this.element );
-  // check that this.size and size are there
-  // IE8 triggers resize on body size change, so they might not be
-  var hasSizes = this.size && size;
-  return hasSizes && size.innerWidth !== this.size.innerWidth;
-};
-
-// -------------------------- methods -------------------------- //
-
-/**
- * add items to Outlayer instance
- * @param {Array or NodeList or Element} elems
- * @returns {Array} items - Outlayer.Items
-**/
-proto.addItems = function( elems ) {
-  var items = this._itemize( elems );
-  // add items to collection
-  if ( items.length ) {
-    this.items = this.items.concat( items );
-  }
-  return items;
-};
-
-/**
- * Layout newly-appended item elements
- * @param {Array or NodeList or Element} elems
- */
-proto.appended = function( elems ) {
-  var items = this.addItems( elems );
-  if ( !items.length ) {
-    return;
-  }
-  // layout and reveal just the new items
-  this.layoutItems( items, true );
-  this.reveal( items );
-};
-
-/**
- * Layout prepended elements
- * @param {Array or NodeList or Element} elems
- */
-proto.prepended = function( elems ) {
-  var items = this._itemize( elems );
-  if ( !items.length ) {
-    return;
-  }
-  // add items to beginning of collection
-  var previousItems = this.items.slice(0);
-  this.items = items.concat( previousItems );
-  // start new layout
-  this._resetLayout();
-  this._manageStamps();
-  // layout new stuff without transition
-  this.layoutItems( items, true );
-  this.reveal( items );
-  // layout previous items
-  this.layoutItems( previousItems );
-};
-
-/**
- * reveal a collection of items
- * @param {Array of Outlayer.Items} items
- */
-proto.reveal = function( items ) {
-  this._emitCompleteOnItems( 'reveal', items );
-  if ( !items || !items.length ) {
-    return;
-  }
-  var stagger = this.updateStagger();
-  items.forEach( function( item, i ) {
-    item.stagger( i * stagger );
-    item.reveal();
-  });
-};
-
-/**
- * hide a collection of items
- * @param {Array of Outlayer.Items} items
- */
-proto.hide = function( items ) {
-  this._emitCompleteOnItems( 'hide', items );
-  if ( !items || !items.length ) {
-    return;
-  }
-  var stagger = this.updateStagger();
-  items.forEach( function( item, i ) {
-    item.stagger( i * stagger );
-    item.hide();
-  });
-};
-
-/**
- * reveal item elements
- * @param {Array}, {Element}, {NodeList} items
- */
-proto.revealItemElements = function( elems ) {
-  var items = this.getItems( elems );
-  this.reveal( items );
-};
-
-/**
- * hide item elements
- * @param {Array}, {Element}, {NodeList} items
- */
-proto.hideItemElements = function( elems ) {
-  var items = this.getItems( elems );
-  this.hide( items );
-};
-
-/**
- * get Outlayer.Item, given an Element
- * @param {Element} elem
- * @param {Function} callback
- * @returns {Outlayer.Item} item
- */
-proto.getItem = function( elem ) {
-  // loop through items to get the one that matches
-  for ( var i=0; i < this.items.length; i++ ) {
-    var item = this.items[i];
-    if ( item.element == elem ) {
-      // return item
-      return item;
-    }
-  }
-};
-
-/**
- * get collection of Outlayer.Items, given Elements
- * @param {Array} elems
- * @returns {Array} items - Outlayer.Items
- */
-proto.getItems = function( elems ) {
-  elems = utils.makeArray( elems );
-  var items = [];
-  elems.forEach( function( elem ) {
-    var item = this.getItem( elem );
-    if ( item ) {
-      items.push( item );
-    }
-  }, this );
-
-  return items;
-};
-
-/**
- * remove element(s) from instance and DOM
- * @param {Array or NodeList or Element} elems
- */
-proto.remove = function( elems ) {
-  var removeItems = this.getItems( elems );
-
-  this._emitCompleteOnItems( 'remove', removeItems );
-
-  // bail if no items to remove
-  if ( !removeItems || !removeItems.length ) {
-    return;
-  }
-
-  removeItems.forEach( function( item ) {
-    item.remove();
-    // remove item from collection
-    utils.removeFrom( this.items, item );
-  }, this );
-};
-
-// ----- destroy ----- //
-
-// remove and disable Outlayer instance
-proto.destroy = function() {
-  // clean up dynamic styles
-  var style = this.element.style;
-  style.height = '';
-  style.position = '';
-  style.width = '';
-  // destroy items
-  this.items.forEach( function( item ) {
-    item.destroy();
-  });
-
-  this.unbindResize();
-
-  var id = this.element.outlayerGUID;
-  delete instances[ id ]; // remove reference to instance by id
-  delete this.element.outlayerGUID;
-  // remove data for jQuery
-  if ( jQuery ) {
-    jQuery.removeData( this.element, this.constructor.namespace );
-  }
-
-};
-
-// -------------------------- data -------------------------- //
-
-/**
- * get Outlayer instance from element
- * @param {Element} elem
- * @returns {Outlayer}
- */
-Outlayer.data = function( elem ) {
-  elem = utils.getQueryElement( elem );
-  var id = elem && elem.outlayerGUID;
-  return id && instances[ id ];
-};
-
-
-// -------------------------- create Outlayer class -------------------------- //
-
-/**
- * create a layout class
- * @param {String} namespace
- */
-Outlayer.create = function( namespace, options ) {
-  // sub-class Outlayer
-  var Layout = subclass( Outlayer );
-  // apply new options and compatOptions
-  Layout.defaults = utils.extend( {}, Outlayer.defaults );
-  utils.extend( Layout.defaults, options );
-  Layout.compatOptions = utils.extend( {}, Outlayer.compatOptions  );
-
-  Layout.namespace = namespace;
-
-  Layout.data = Outlayer.data;
-
-  // sub-class Item
-  Layout.Item = subclass( Item );
-
-  // -------------------------- declarative -------------------------- //
-
-  utils.htmlInit( Layout, namespace );
-
-  // -------------------------- jQuery bridge -------------------------- //
-
-  // make into jQuery plugin
-  if ( jQuery && jQuery.bridget ) {
-    jQuery.bridget( namespace, Layout );
-  }
-
-  return Layout;
-};
-
-function subclass( Parent ) {
-  function SubClass() {
-    Parent.apply( this, arguments );
-  }
-
-  SubClass.prototype = Object.create( Parent.prototype );
-  SubClass.prototype.constructor = SubClass;
-
-  return SubClass;
-}
-
-// ----- helpers ----- //
-
-// how many milliseconds are in each unit
-var msUnits = {
-  ms: 1,
-  s: 1000
-};
-
-// munge time-like parameter into millisecond number
-// '0.4s' -> 40
-function getMilliseconds( time ) {
-  if ( typeof time == 'number' ) {
-    return time;
-  }
-  var matches = time.match( /(^\d*\.?\d*)(\w*)/ );
-  var num = matches && matches[1];
-  var unit = matches && matches[2];
-  if ( !num.length ) {
-    return 0;
-  }
-  num = parseFloat( num );
-  var mult = msUnits[ unit ] || 1;
-  return num * mult;
-}
-
-// ----- fin ----- //
-
-// back in global
-Outlayer.Item = Item;
-
-return Outlayer;
-
-}));
-
-/*!
- * Masonry v4.2.0
- * Cascading grid layout library
- * http://masonry.desandro.com
- * MIT License
- * by David DeSandro
- */
-
-( function( window, factory ) {
-  // universal module definition
-  /* jshint strict: false */ /*globals define, module, require */
-  if ( typeof define == 'function' && define.amd ) {
-    // AMD
-    define( [
-        'outlayer/outlayer',
-        'get-size/get-size'
-      ],
-      factory );
-  } else if ( typeof module == 'object' && module.exports ) {
-    // CommonJS
-    module.exports = factory(
-      require('outlayer'),
-      require('get-size')
-    );
-  } else {
-    // browser global
-    window.Masonry = factory(
-      window.Outlayer,
-      window.getSize
-    );
-  }
-
-}( window, function factory( Outlayer, getSize ) {
-
-
-
-// -------------------------- masonryDefinition -------------------------- //
-
-  // create an Outlayer layout class
-  var Masonry = Outlayer.create('masonry');
-  // isFitWidth -> fitWidth
-  Masonry.compatOptions.fitWidth = 'isFitWidth';
-
-  var proto = Masonry.prototype;
-
-  proto._resetLayout = function() {
-    this.getSize();
-    this._getMeasurement( 'columnWidth', 'outerWidth' );
-    this._getMeasurement( 'gutter', 'outerWidth' );
-    this.measureColumns();
-
-    // reset column Y
-    this.colYs = [];
-    for ( var i=0; i < this.cols; i++ ) {
-      this.colYs.push( 0 );
-    }
-
-    this.maxY = 0;
-    this.horizontalColIndex = 0;
-  };
-
-  proto.measureColumns = function() {
-    this.getContainerWidth();
-    // if columnWidth is 0, default to outerWidth of first item
-    if ( !this.columnWidth ) {
-      var firstItem = this.items[0];
-      var firstItemElem = firstItem && firstItem.element;
-      // columnWidth fall back to item of first element
-      this.columnWidth = firstItemElem && getSize( firstItemElem ).outerWidth ||
-        // if first elem has no width, default to size of container
-        this.containerWidth;
-    }
-
-    var columnWidth = this.columnWidth += this.gutter;
-
-    // calculate columns
-    var containerWidth = this.containerWidth + this.gutter;
-    var cols = containerWidth / columnWidth;
-    // fix rounding errors, typically with gutters
-    var excess = columnWidth - containerWidth % columnWidth;
-    // if overshoot is less than a pixel, round up, otherwise floor it
-    var mathMethod = excess && excess < 1 ? 'round' : 'floor';
-    cols = Math[ mathMethod ]( cols );
-    this.cols = Math.max( cols, 1 );
-  };
-
-  proto.getContainerWidth = function() {
-    // container is parent if fit width
-    var isFitWidth = this._getOption('fitWidth');
-    var container = isFitWidth ? this.element.parentNode : this.element;
-    // check that this.size and size are there
-    // IE8 triggers resize on body size change, so they might not be
-    var size = getSize( container );
-    this.containerWidth = size && size.innerWidth;
-  };
-
-  proto._getItemLayoutPosition = function( item ) {
-    item.getSize();
-    // how many columns does this brick span
-    var remainder = item.size.outerWidth % this.columnWidth;
-    var mathMethod = remainder && remainder < 1 ? 'round' : 'ceil';
-    // round if off by 1 pixel, otherwise use ceil
-    var colSpan = Math[ mathMethod ]( item.size.outerWidth / this.columnWidth );
-    colSpan = Math.min( colSpan, this.cols );
-    // use horizontal or top column position
-    var colPosMethod = this.options.horizontalOrder ?
-      '_getHorizontalColPosition' : '_getTopColPosition';
-    var colPosition = this[ colPosMethod ]( colSpan, item );
-    // position the brick
-    var position = {
-      x: this.columnWidth * colPosition.col,
-      y: colPosition.y
-    };
-    // apply setHeight to necessary columns
-    var setHeight = colPosition.y + item.size.outerHeight;
-    var setMax = colSpan + colPosition.col;
-    for ( var i = colPosition.col; i < setMax; i++ ) {
-      this.colYs[i] = setHeight;
-    }
-
-    return position;
-  };
-
-  proto._getTopColPosition = function( colSpan ) {
-    var colGroup = this._getTopColGroup( colSpan );
-    // get the minimum Y value from the columns
-    var minimumY = Math.min.apply( Math, colGroup );
-
-    return {
-      col: colGroup.indexOf( minimumY ),
-      y: minimumY,
-    };
-  };
-
-  /**
-   * @param {Number} colSpan - number of columns the element spans
-   * @returns {Array} colGroup
-   */
-  proto._getTopColGroup = function( colSpan ) {
-    if ( colSpan < 2 ) {
-      // if brick spans only one column, use all the column Ys
-      return this.colYs;
-    }
-
-    var colGroup = [];
-    // how many different places could this brick fit horizontally
-    var groupCount = this.cols + 1 - colSpan;
-    // for each group potential horizontal position
-    for ( var i = 0; i < groupCount; i++ ) {
-      colGroup[i] = this._getColGroupY( i, colSpan );
-    }
-    return colGroup;
-  };
-
-  proto._getColGroupY = function( col, colSpan ) {
-    if ( colSpan < 2 ) {
-      return this.colYs[ col ];
-    }
-    // make an array of colY values for that one group
-    var groupColYs = this.colYs.slice( col, col + colSpan );
-    // and get the max value of the array
-    return Math.max.apply( Math, groupColYs );
-  };
-
-  // get column position based on horizontal index. #873
-  proto._getHorizontalColPosition = function( colSpan, item ) {
-    var col = this.horizontalColIndex % this.cols;
-    var isOver = colSpan > 1 && col + colSpan > this.cols;
-    // shift to next row if item can't fit on current row
-    col = isOver ? 0 : col;
-    // don't let zero-size items take up space
-    var hasSize = item.size.outerWidth && item.size.outerHeight;
-    this.horizontalColIndex = hasSize ? col + colSpan : this.horizontalColIndex;
-
-    return {
-      col: col,
-      y: this._getColGroupY( col, colSpan ),
-    };
-  };
-
-  proto._manageStamp = function( stamp ) {
-    var stampSize = getSize( stamp );
-    var offset = this._getElementOffset( stamp );
-    // get the columns that this stamp affects
-    var isOriginLeft = this._getOption('originLeft');
-    var firstX = isOriginLeft ? offset.left : offset.right;
-    var lastX = firstX + stampSize.outerWidth;
-    var firstCol = Math.floor( firstX / this.columnWidth );
-    firstCol = Math.max( 0, firstCol );
-    var lastCol = Math.floor( lastX / this.columnWidth );
-    // lastCol should not go over if multiple of columnWidth #425
-    lastCol -= lastX % this.columnWidth ? 0 : 1;
-    lastCol = Math.min( this.cols - 1, lastCol );
-    // set colYs to bottom of the stamp
-
-    var isOriginTop = this._getOption('originTop');
-    var stampMaxY = ( isOriginTop ? offset.top : offset.bottom ) +
-      stampSize.outerHeight;
-    for ( var i = firstCol; i <= lastCol; i++ ) {
-      this.colYs[i] = Math.max( stampMaxY, this.colYs[i] );
-    }
-  };
-
-  proto._getContainerSize = function() {
-    this.maxY = Math.max.apply( Math, this.colYs );
-    var size = {
-      height: this.maxY
-    };
-
-    if ( this._getOption('fitWidth') ) {
-      size.width = this._getContainerFitWidth();
-    }
-
-    return size;
-  };
-
-  proto._getContainerFitWidth = function() {
-    var unusedCols = 0;
-    // count unused columns
-    var i = this.cols;
-    while ( --i ) {
-      if ( this.colYs[i] !== 0 ) {
-        break;
-      }
-      unusedCols++;
-    }
-    // fit container to columns that have been used
-    return ( this.cols - unusedCols ) * this.columnWidth - this.gutter;
-  };
-
-  proto.needsResizeLayout = function() {
-    var previousWidth = this.containerWidth;
-    this.getContainerWidth();
-    return previousWidth != this.containerWidth;
-  };
-
-  return Masonry;
-
-}));
-
diff --git a/javascript/masonry.pkgd.min.js b/javascript/masonry.pkgd.min.js
deleted file mode 100644
index a61c0ded6de726d1437968f7719695237f7bf2e1..0000000000000000000000000000000000000000
--- a/javascript/masonry.pkgd.min.js
+++ /dev/null
@@ -1,9 +0,0 @@
-/*!
- * Masonry PACKAGED v4.2.0
- * Cascading grid layout library
- * http://masonry.desandro.com
- * MIT License
- * by David DeSandro
- */
-
-!function(t,e){"function"==typeof define&&define.amd?define("jquery-bridget/jquery-bridget",["jquery"],function(i){return e(t,i)}):"object"==typeof module&&module.exports?module.exports=e(t,require("jquery")):t.jQueryBridget=e(t,t.jQuery)}(window,function(t,e){"use strict";function i(i,r,a){function h(t,e,n){var o,r="$()."+i+'("'+e+'")';return t.each(function(t,h){var u=a.data(h,i);if(!u)return void s(i+" not initialized. Cannot call methods, i.e. "+r);var d=u[e];if(!d||"_"==e.charAt(0))return void s(r+" is not a valid method");var l=d.apply(u,n);o=void 0===o?l:o}),void 0!==o?o:t}function u(t,e){t.each(function(t,n){var o=a.data(n,i);o?(o.option(e),o._init()):(o=new r(n,e),a.data(n,i,o))})}a=a||e||t.jQuery,a&&(r.prototype.option||(r.prototype.option=function(t){a.isPlainObject(t)&&(this.options=a.extend(!0,this.options,t))}),a.fn[i]=function(t){if("string"==typeof t){var e=o.call(arguments,1);return h(this,t,e)}return u(this,t),this},n(a))}function n(t){!t||t&&t.bridget||(t.bridget=i)}var o=Array.prototype.slice,r=t.console,s="undefined"==typeof r?function(){}:function(t){r.error(t)};return n(e||t.jQuery),i}),function(t,e){"function"==typeof define&&define.amd?define("ev-emitter/ev-emitter",e):"object"==typeof module&&module.exports?module.exports=e():t.EvEmitter=e()}("undefined"!=typeof window?window:this,function(){function t(){}var e=t.prototype;return e.on=function(t,e){if(t&&e){var i=this._events=this._events||{},n=i[t]=i[t]||[];return-1==n.indexOf(e)&&n.push(e),this}},e.once=function(t,e){if(t&&e){this.on(t,e);var i=this._onceEvents=this._onceEvents||{},n=i[t]=i[t]||{};return n[e]=!0,this}},e.off=function(t,e){var i=this._events&&this._events[t];if(i&&i.length){var n=i.indexOf(e);return-1!=n&&i.splice(n,1),this}},e.emitEvent=function(t,e){var i=this._events&&this._events[t];if(i&&i.length){var n=0,o=i[n];e=e||[];for(var r=this._onceEvents&&this._onceEvents[t];o;){var s=r&&r[o];s&&(this.off(t,o),delete r[o]),o.apply(this,e),n+=s?0:1,o=i[n]}return this}},t}),function(t,e){"use strict";"function"==typeof define&&define.amd?define("get-size/get-size",[],function(){return e()}):"object"==typeof module&&module.exports?module.exports=e():t.getSize=e()}(window,function(){"use strict";function t(t){var e=parseFloat(t),i=-1==t.indexOf("%")&&!isNaN(e);return i&&e}function e(){}function i(){for(var t={width:0,height:0,innerWidth:0,innerHeight:0,outerWidth:0,outerHeight:0},e=0;u>e;e++){var i=h[e];t[i]=0}return t}function n(t){var e=getComputedStyle(t);return e||a("Style returned "+e+". Are you running this code in a hidden iframe on Firefox? See http://bit.ly/getsizebug1"),e}function o(){if(!d){d=!0;var e=document.createElement("div");e.style.width="200px",e.style.padding="1px 2px 3px 4px",e.style.borderStyle="solid",e.style.borderWidth="1px 2px 3px 4px",e.style.boxSizing="border-box";var i=document.body||document.documentElement;i.appendChild(e);var o=n(e);r.isBoxSizeOuter=s=200==t(o.width),i.removeChild(e)}}function r(e){if(o(),"string"==typeof e&&(e=document.querySelector(e)),e&&"object"==typeof e&&e.nodeType){var r=n(e);if("none"==r.display)return i();var a={};a.width=e.offsetWidth,a.height=e.offsetHeight;for(var d=a.isBorderBox="border-box"==r.boxSizing,l=0;u>l;l++){var c=h[l],f=r[c],m=parseFloat(f);a[c]=isNaN(m)?0:m}var p=a.paddingLeft+a.paddingRight,g=a.paddingTop+a.paddingBottom,y=a.marginLeft+a.marginRight,v=a.marginTop+a.marginBottom,_=a.borderLeftWidth+a.borderRightWidth,z=a.borderTopWidth+a.borderBottomWidth,E=d&&s,b=t(r.width);b!==!1&&(a.width=b+(E?0:p+_));var x=t(r.height);return x!==!1&&(a.height=x+(E?0:g+z)),a.innerWidth=a.width-(p+_),a.innerHeight=a.height-(g+z),a.outerWidth=a.width+y,a.outerHeight=a.height+v,a}}var s,a="undefined"==typeof console?e:function(t){console.error(t)},h=["paddingLeft","paddingRight","paddingTop","paddingBottom","marginLeft","marginRight","marginTop","marginBottom","borderLeftWidth","borderRightWidth","borderTopWidth","borderBottomWidth"],u=h.length,d=!1;return r}),function(t,e){"use strict";"function"==typeof define&&define.amd?define("desandro-matches-selector/matches-selector",e):"object"==typeof module&&module.exports?module.exports=e():t.matchesSelector=e()}(window,function(){"use strict";var t=function(){var t=window.Element.prototype;if(t.matches)return"matches";if(t.matchesSelector)return"matchesSelector";for(var e=["webkit","moz","ms","o"],i=0;i<e.length;i++){var n=e[i],o=n+"MatchesSelector";if(t[o])return o}}();return function(e,i){return e[t](i)}}),function(t,e){"function"==typeof define&&define.amd?define("fizzy-ui-utils/utils",["desandro-matches-selector/matches-selector"],function(i){return e(t,i)}):"object"==typeof module&&module.exports?module.exports=e(t,require("desandro-matches-selector")):t.fizzyUIUtils=e(t,t.matchesSelector)}(window,function(t,e){var i={};i.extend=function(t,e){for(var i in e)t[i]=e[i];return t},i.modulo=function(t,e){return(t%e+e)%e},i.makeArray=function(t){var e=[];if(Array.isArray(t))e=t;else if(t&&"object"==typeof t&&"number"==typeof t.length)for(var i=0;i<t.length;i++)e.push(t[i]);else e.push(t);return e},i.removeFrom=function(t,e){var i=t.indexOf(e);-1!=i&&t.splice(i,1)},i.getParent=function(t,i){for(;t!=document.body;)if(t=t.parentNode,e(t,i))return t},i.getQueryElement=function(t){return"string"==typeof t?document.querySelector(t):t},i.handleEvent=function(t){var e="on"+t.type;this[e]&&this[e](t)},i.filterFindElements=function(t,n){t=i.makeArray(t);var o=[];return t.forEach(function(t){if(t instanceof HTMLElement){if(!n)return void o.push(t);e(t,n)&&o.push(t);for(var i=t.querySelectorAll(n),r=0;r<i.length;r++)o.push(i[r])}}),o},i.debounceMethod=function(t,e,i){var n=t.prototype[e],o=e+"Timeout";t.prototype[e]=function(){var t=this[o];t&&clearTimeout(t);var e=arguments,r=this;this[o]=setTimeout(function(){n.apply(r,e),delete r[o]},i||100)}},i.docReady=function(t){var e=document.readyState;"complete"==e||"interactive"==e?setTimeout(t):document.addEventListener("DOMContentLoaded",t)},i.toDashed=function(t){return t.replace(/(.)([A-Z])/g,function(t,e,i){return e+"-"+i}).toLowerCase()};var n=t.console;return i.htmlInit=function(e,o){i.docReady(function(){var r=i.toDashed(o),s="data-"+r,a=document.querySelectorAll("["+s+"]"),h=document.querySelectorAll(".js-"+r),u=i.makeArray(a).concat(i.makeArray(h)),d=s+"-options",l=t.jQuery;u.forEach(function(t){var i,r=t.getAttribute(s)||t.getAttribute(d);try{i=r&&JSON.parse(r)}catch(a){return void(n&&n.error("Error parsing "+s+" on "+t.className+": "+a))}var h=new e(t,i);l&&l.data(t,o,h)})})},i}),function(t,e){"function"==typeof define&&define.amd?define("outlayer/item",["ev-emitter/ev-emitter","get-size/get-size"],e):"object"==typeof module&&module.exports?module.exports=e(require("ev-emitter"),require("get-size")):(t.Outlayer={},t.Outlayer.Item=e(t.EvEmitter,t.getSize))}(window,function(t,e){"use strict";function i(t){for(var e in t)return!1;return e=null,!0}function n(t,e){t&&(this.element=t,this.layout=e,this.position={x:0,y:0},this._create())}function o(t){return t.replace(/([A-Z])/g,function(t){return"-"+t.toLowerCase()})}var r=document.documentElement.style,s="string"==typeof r.transition?"transition":"WebkitTransition",a="string"==typeof r.transform?"transform":"WebkitTransform",h={WebkitTransition:"webkitTransitionEnd",transition:"transitionend"}[s],u={transform:a,transition:s,transitionDuration:s+"Duration",transitionProperty:s+"Property",transitionDelay:s+"Delay"},d=n.prototype=Object.create(t.prototype);d.constructor=n,d._create=function(){this._transn={ingProperties:{},clean:{},onEnd:{}},this.css({position:"absolute"})},d.handleEvent=function(t){var e="on"+t.type;this[e]&&this[e](t)},d.getSize=function(){this.size=e(this.element)},d.css=function(t){var e=this.element.style;for(var i in t){var n=u[i]||i;e[n]=t[i]}},d.getPosition=function(){var t=getComputedStyle(this.element),e=this.layout._getOption("originLeft"),i=this.layout._getOption("originTop"),n=t[e?"left":"right"],o=t[i?"top":"bottom"],r=this.layout.size,s=-1!=n.indexOf("%")?parseFloat(n)/100*r.width:parseInt(n,10),a=-1!=o.indexOf("%")?parseFloat(o)/100*r.height:parseInt(o,10);s=isNaN(s)?0:s,a=isNaN(a)?0:a,s-=e?r.paddingLeft:r.paddingRight,a-=i?r.paddingTop:r.paddingBottom,this.position.x=s,this.position.y=a},d.layoutPosition=function(){var t=this.layout.size,e={},i=this.layout._getOption("originLeft"),n=this.layout._getOption("originTop"),o=i?"paddingLeft":"paddingRight",r=i?"left":"right",s=i?"right":"left",a=this.position.x+t[o];e[r]=this.getXValue(a),e[s]="";var h=n?"paddingTop":"paddingBottom",u=n?"top":"bottom",d=n?"bottom":"top",l=this.position.y+t[h];e[u]=this.getYValue(l),e[d]="",this.css(e),this.emitEvent("layout",[this])},d.getXValue=function(t){var e=this.layout._getOption("horizontal");return this.layout.options.percentPosition&&!e?t/this.layout.size.width*100+"%":t+"px"},d.getYValue=function(t){var e=this.layout._getOption("horizontal");return this.layout.options.percentPosition&&e?t/this.layout.size.height*100+"%":t+"px"},d._transitionTo=function(t,e){this.getPosition();var i=this.position.x,n=this.position.y,o=parseInt(t,10),r=parseInt(e,10),s=o===this.position.x&&r===this.position.y;if(this.setPosition(t,e),s&&!this.isTransitioning)return void this.layoutPosition();var a=t-i,h=e-n,u={};u.transform=this.getTranslate(a,h),this.transition({to:u,onTransitionEnd:{transform:this.layoutPosition},isCleaning:!0})},d.getTranslate=function(t,e){var i=this.layout._getOption("originLeft"),n=this.layout._getOption("originTop");return t=i?t:-t,e=n?e:-e,"translate3d("+t+"px, "+e+"px, 0)"},d.goTo=function(t,e){this.setPosition(t,e),this.layoutPosition()},d.moveTo=d._transitionTo,d.setPosition=function(t,e){this.position.x=parseInt(t,10),this.position.y=parseInt(e,10)},d._nonTransition=function(t){this.css(t.to),t.isCleaning&&this._removeStyles(t.to);for(var e in t.onTransitionEnd)t.onTransitionEnd[e].call(this)},d.transition=function(t){if(!parseFloat(this.layout.options.transitionDuration))return void this._nonTransition(t);var e=this._transn;for(var i in t.onTransitionEnd)e.onEnd[i]=t.onTransitionEnd[i];for(i in t.to)e.ingProperties[i]=!0,t.isCleaning&&(e.clean[i]=!0);if(t.from){this.css(t.from);var n=this.element.offsetHeight;n=null}this.enableTransition(t.to),this.css(t.to),this.isTransitioning=!0};var l="opacity,"+o(a);d.enableTransition=function(){if(!this.isTransitioning){var t=this.layout.options.transitionDuration;t="number"==typeof t?t+"ms":t,this.css({transitionProperty:l,transitionDuration:t,transitionDelay:this.staggerDelay||0}),this.element.addEventListener(h,this,!1)}},d.onwebkitTransitionEnd=function(t){this.ontransitionend(t)},d.onotransitionend=function(t){this.ontransitionend(t)};var c={"-webkit-transform":"transform"};d.ontransitionend=function(t){if(t.target===this.element){var e=this._transn,n=c[t.propertyName]||t.propertyName;if(delete e.ingProperties[n],i(e.ingProperties)&&this.disableTransition(),n in e.clean&&(this.element.style[t.propertyName]="",delete e.clean[n]),n in e.onEnd){var o=e.onEnd[n];o.call(this),delete e.onEnd[n]}this.emitEvent("transitionEnd",[this])}},d.disableTransition=function(){this.removeTransitionStyles(),this.element.removeEventListener(h,this,!1),this.isTransitioning=!1},d._removeStyles=function(t){var e={};for(var i in t)e[i]="";this.css(e)};var f={transitionProperty:"",transitionDuration:"",transitionDelay:""};return d.removeTransitionStyles=function(){this.css(f)},d.stagger=function(t){t=isNaN(t)?0:t,this.staggerDelay=t+"ms"},d.removeElem=function(){this.element.parentNode.removeChild(this.element),this.css({display:""}),this.emitEvent("remove",[this])},d.remove=function(){return s&&parseFloat(this.layout.options.transitionDuration)?(this.once("transitionEnd",function(){this.removeElem()}),void this.hide()):void this.removeElem()},d.reveal=function(){delete this.isHidden,this.css({display:""});var t=this.layout.options,e={},i=this.getHideRevealTransitionEndProperty("visibleStyle");e[i]=this.onRevealTransitionEnd,this.transition({from:t.hiddenStyle,to:t.visibleStyle,isCleaning:!0,onTransitionEnd:e})},d.onRevealTransitionEnd=function(){this.isHidden||this.emitEvent("reveal")},d.getHideRevealTransitionEndProperty=function(t){var e=this.layout.options[t];if(e.opacity)return"opacity";for(var i in e)return i},d.hide=function(){this.isHidden=!0,this.css({display:""});var t=this.layout.options,e={},i=this.getHideRevealTransitionEndProperty("hiddenStyle");e[i]=this.onHideTransitionEnd,this.transition({from:t.visibleStyle,to:t.hiddenStyle,isCleaning:!0,onTransitionEnd:e})},d.onHideTransitionEnd=function(){this.isHidden&&(this.css({display:"none"}),this.emitEvent("hide"))},d.destroy=function(){this.css({position:"",left:"",right:"",top:"",bottom:"",transition:"",transform:""})},n}),function(t,e){"use strict";"function"==typeof define&&define.amd?define("outlayer/outlayer",["ev-emitter/ev-emitter","get-size/get-size","fizzy-ui-utils/utils","./item"],function(i,n,o,r){return e(t,i,n,o,r)}):"object"==typeof module&&module.exports?module.exports=e(t,require("ev-emitter"),require("get-size"),require("fizzy-ui-utils"),require("./item")):t.Outlayer=e(t,t.EvEmitter,t.getSize,t.fizzyUIUtils,t.Outlayer.Item)}(window,function(t,e,i,n,o){"use strict";function r(t,e){var i=n.getQueryElement(t);if(!i)return void(h&&h.error("Bad element for "+this.constructor.namespace+": "+(i||t)));this.element=i,u&&(this.$element=u(this.element)),this.options=n.extend({},this.constructor.defaults),this.option(e);var o=++l;this.element.outlayerGUID=o,c[o]=this,this._create();var r=this._getOption("initLayout");r&&this.layout()}function s(t){function e(){t.apply(this,arguments)}return e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e}function a(t){if("number"==typeof t)return t;var e=t.match(/(^\d*\.?\d*)(\w*)/),i=e&&e[1],n=e&&e[2];if(!i.length)return 0;i=parseFloat(i);var o=m[n]||1;return i*o}var h=t.console,u=t.jQuery,d=function(){},l=0,c={};r.namespace="outlayer",r.Item=o,r.defaults={containerStyle:{position:"relative"},initLayout:!0,originLeft:!0,originTop:!0,resize:!0,resizeContainer:!0,transitionDuration:"0.4s",hiddenStyle:{opacity:0,transform:"scale(0.001)"},visibleStyle:{opacity:1,transform:"scale(1)"}};var f=r.prototype;n.extend(f,e.prototype),f.option=function(t){n.extend(this.options,t)},f._getOption=function(t){var e=this.constructor.compatOptions[t];return e&&void 0!==this.options[e]?this.options[e]:this.options[t]},r.compatOptions={initLayout:"isInitLayout",horizontal:"isHorizontal",layoutInstant:"isLayoutInstant",originLeft:"isOriginLeft",originTop:"isOriginTop",resize:"isResizeBound",resizeContainer:"isResizingContainer"},f._create=function(){this.reloadItems(),this.stamps=[],this.stamp(this.options.stamp),n.extend(this.element.style,this.options.containerStyle);var t=this._getOption("resize");t&&this.bindResize()},f.reloadItems=function(){this.items=this._itemize(this.element.children)},f._itemize=function(t){for(var e=this._filterFindItemElements(t),i=this.constructor.Item,n=[],o=0;o<e.length;o++){var r=e[o],s=new i(r,this);n.push(s)}return n},f._filterFindItemElements=function(t){return n.filterFindElements(t,this.options.itemSelector)},f.getItemElements=function(){return this.items.map(function(t){return t.element})},f.layout=function(){this._resetLayout(),this._manageStamps();var t=this._getOption("layoutInstant"),e=void 0!==t?t:!this._isLayoutInited;this.layoutItems(this.items,e),this._isLayoutInited=!0},f._init=f.layout,f._resetLayout=function(){this.getSize()},f.getSize=function(){this.size=i(this.element)},f._getMeasurement=function(t,e){var n,o=this.options[t];o?("string"==typeof o?n=this.element.querySelector(o):o instanceof HTMLElement&&(n=o),this[t]=n?i(n)[e]:o):this[t]=0},f.layoutItems=function(t,e){t=this._getItemsForLayout(t),this._layoutItems(t,e),this._postLayout()},f._getItemsForLayout=function(t){return t.filter(function(t){return!t.isIgnored})},f._layoutItems=function(t,e){if(this._emitCompleteOnItems("layout",t),t&&t.length){var i=[];t.forEach(function(t){var n=this._getItemLayoutPosition(t);n.item=t,n.isInstant=e||t.isLayoutInstant,i.push(n)},this),this._processLayoutQueue(i)}},f._getItemLayoutPosition=function(){return{x:0,y:0}},f._processLayoutQueue=function(t){this.updateStagger(),t.forEach(function(t,e){this._positionItem(t.item,t.x,t.y,t.isInstant,e)},this)},f.updateStagger=function(){var t=this.options.stagger;return null===t||void 0===t?void(this.stagger=0):(this.stagger=a(t),this.stagger)},f._positionItem=function(t,e,i,n,o){n?t.goTo(e,i):(t.stagger(o*this.stagger),t.moveTo(e,i))},f._postLayout=function(){this.resizeContainer()},f.resizeContainer=function(){var t=this._getOption("resizeContainer");if(t){var e=this._getContainerSize();e&&(this._setContainerMeasure(e.width,!0),this._setContainerMeasure(e.height,!1))}},f._getContainerSize=d,f._setContainerMeasure=function(t,e){if(void 0!==t){var i=this.size;i.isBorderBox&&(t+=e?i.paddingLeft+i.paddingRight+i.borderLeftWidth+i.borderRightWidth:i.paddingBottom+i.paddingTop+i.borderTopWidth+i.borderBottomWidth),t=Math.max(t,0),this.element.style[e?"width":"height"]=t+"px"}},f._emitCompleteOnItems=function(t,e){function i(){o.dispatchEvent(t+"Complete",null,[e])}function n(){s++,s==r&&i()}var o=this,r=e.length;if(!e||!r)return void i();var s=0;e.forEach(function(e){e.once(t,n)})},f.dispatchEvent=function(t,e,i){var n=e?[e].concat(i):i;if(this.emitEvent(t,n),u)if(this.$element=this.$element||u(this.element),e){var o=u.Event(e);o.type=t,this.$element.trigger(o,i)}else this.$element.trigger(t,i)},f.ignore=function(t){var e=this.getItem(t);e&&(e.isIgnored=!0)},f.unignore=function(t){var e=this.getItem(t);e&&delete e.isIgnored},f.stamp=function(t){t=this._find(t),t&&(this.stamps=this.stamps.concat(t),t.forEach(this.ignore,this))},f.unstamp=function(t){t=this._find(t),t&&t.forEach(function(t){n.removeFrom(this.stamps,t),this.unignore(t)},this)},f._find=function(t){return t?("string"==typeof t&&(t=this.element.querySelectorAll(t)),t=n.makeArray(t)):void 0},f._manageStamps=function(){this.stamps&&this.stamps.length&&(this._getBoundingRect(),this.stamps.forEach(this._manageStamp,this))},f._getBoundingRect=function(){var t=this.element.getBoundingClientRect(),e=this.size;this._boundingRect={left:t.left+e.paddingLeft+e.borderLeftWidth,top:t.top+e.paddingTop+e.borderTopWidth,right:t.right-(e.paddingRight+e.borderRightWidth),bottom:t.bottom-(e.paddingBottom+e.borderBottomWidth)}},f._manageStamp=d,f._getElementOffset=function(t){var e=t.getBoundingClientRect(),n=this._boundingRect,o=i(t),r={left:e.left-n.left-o.marginLeft,top:e.top-n.top-o.marginTop,right:n.right-e.right-o.marginRight,bottom:n.bottom-e.bottom-o.marginBottom};return r},f.handleEvent=n.handleEvent,f.bindResize=function(){t.addEventListener("resize",this),this.isResizeBound=!0},f.unbindResize=function(){t.removeEventListener("resize",this),this.isResizeBound=!1},f.onresize=function(){this.resize()},n.debounceMethod(r,"onresize",100),f.resize=function(){this.isResizeBound&&this.needsResizeLayout()&&this.layout()},f.needsResizeLayout=function(){var t=i(this.element),e=this.size&&t;return e&&t.innerWidth!==this.size.innerWidth},f.addItems=function(t){var e=this._itemize(t);return e.length&&(this.items=this.items.concat(e)),e},f.appended=function(t){var e=this.addItems(t);e.length&&(this.layoutItems(e,!0),this.reveal(e))},f.prepended=function(t){var e=this._itemize(t);if(e.length){var i=this.items.slice(0);this.items=e.concat(i),this._resetLayout(),this._manageStamps(),this.layoutItems(e,!0),this.reveal(e),this.layoutItems(i)}},f.reveal=function(t){if(this._emitCompleteOnItems("reveal",t),t&&t.length){var e=this.updateStagger();t.forEach(function(t,i){t.stagger(i*e),t.reveal()})}},f.hide=function(t){if(this._emitCompleteOnItems("hide",t),t&&t.length){var e=this.updateStagger();t.forEach(function(t,i){t.stagger(i*e),t.hide()})}},f.revealItemElements=function(t){var e=this.getItems(t);this.reveal(e)},f.hideItemElements=function(t){var e=this.getItems(t);this.hide(e)},f.getItem=function(t){for(var e=0;e<this.items.length;e++){var i=this.items[e];if(i.element==t)return i}},f.getItems=function(t){t=n.makeArray(t);var e=[];return t.forEach(function(t){var i=this.getItem(t);i&&e.push(i)},this),e},f.remove=function(t){var e=this.getItems(t);this._emitCompleteOnItems("remove",e),e&&e.length&&e.forEach(function(t){t.remove(),n.removeFrom(this.items,t)},this)},f.destroy=function(){var t=this.element.style;t.height="",t.position="",t.width="",this.items.forEach(function(t){t.destroy()}),this.unbindResize();var e=this.element.outlayerGUID;delete c[e],delete this.element.outlayerGUID,u&&u.removeData(this.element,this.constructor.namespace)},r.data=function(t){t=n.getQueryElement(t);var e=t&&t.outlayerGUID;return e&&c[e]},r.create=function(t,e){var i=s(r);return i.defaults=n.extend({},r.defaults),n.extend(i.defaults,e),i.compatOptions=n.extend({},r.compatOptions),i.namespace=t,i.data=r.data,i.Item=s(o),n.htmlInit(i,t),u&&u.bridget&&u.bridget(t,i),i};var m={ms:1,s:1e3};return r.Item=o,r}),function(t,e){"function"==typeof define&&define.amd?define(["outlayer/outlayer","get-size/get-size"],e):"object"==typeof module&&module.exports?module.exports=e(require("outlayer"),require("get-size")):t.Masonry=e(t.Outlayer,t.getSize)}(window,function(t,e){var i=t.create("masonry");i.compatOptions.fitWidth="isFitWidth";var n=i.prototype;return n._resetLayout=function(){this.getSize(),this._getMeasurement("columnWidth","outerWidth"),this._getMeasurement("gutter","outerWidth"),this.measureColumns(),this.colYs=[];for(var t=0;t<this.cols;t++)this.colYs.push(0);this.maxY=0,this.horizontalColIndex=0},n.measureColumns=function(){if(this.getContainerWidth(),!this.columnWidth){var t=this.items[0],i=t&&t.element;this.columnWidth=i&&e(i).outerWidth||this.containerWidth}var n=this.columnWidth+=this.gutter,o=this.containerWidth+this.gutter,r=o/n,s=n-o%n,a=s&&1>s?"round":"floor";r=Math[a](r),this.cols=Math.max(r,1)},n.getContainerWidth=function(){var t=this._getOption("fitWidth"),i=t?this.element.parentNode:this.element,n=e(i);this.containerWidth=n&&n.innerWidth},n._getItemLayoutPosition=function(t){t.getSize();var e=t.size.outerWidth%this.columnWidth,i=e&&1>e?"round":"ceil",n=Math[i](t.size.outerWidth/this.columnWidth);n=Math.min(n,this.cols);for(var o=this.options.horizontalOrder?"_getHorizontalColPosition":"_getTopColPosition",r=this[o](n,t),s={x:this.columnWidth*r.col,y:r.y},a=r.y+t.size.outerHeight,h=n+r.col,u=r.col;h>u;u++)this.colYs[u]=a;return s},n._getTopColPosition=function(t){var e=this._getTopColGroup(t),i=Math.min.apply(Math,e);return{col:e.indexOf(i),y:i}},n._getTopColGroup=function(t){if(2>t)return this.colYs;for(var e=[],i=this.cols+1-t,n=0;i>n;n++)e[n]=this._getColGroupY(n,t);return e},n._getColGroupY=function(t,e){if(2>e)return this.colYs[t];var i=this.colYs.slice(t,t+e);return Math.max.apply(Math,i)},n._getHorizontalColPosition=function(t,e){var i=this.horizontalColIndex%this.cols,n=t>1&&i+t>this.cols;i=n?0:i;var o=e.size.outerWidth&&e.size.outerHeight;return this.horizontalColIndex=o?i+t:this.horizontalColIndex,{col:i,y:this._getColGroupY(i,t)}},n._manageStamp=function(t){var i=e(t),n=this._getElementOffset(t),o=this._getOption("originLeft"),r=o?n.left:n.right,s=r+i.outerWidth,a=Math.floor(r/this.columnWidth);a=Math.max(0,a);var h=Math.floor(s/this.columnWidth);h-=s%this.columnWidth?0:1,h=Math.min(this.cols-1,h);for(var u=this._getOption("originTop"),d=(u?n.top:n.bottom)+i.outerHeight,l=a;h>=l;l++)this.colYs[l]=Math.max(d,this.colYs[l])},n._getContainerSize=function(){this.maxY=Math.max.apply(Math,this.colYs);var t={height:this.maxY};return this._getOption("fitWidth")&&(t.width=this._getContainerFitWidth()),t},n._getContainerFitWidth=function(){for(var t=0,e=this.cols;--e&&0===this.colYs[e];)t++;return(this.cols-t)*this.columnWidth-this.gutter},n.needsResizeLayout=function(){var t=this.containerWidth;return this.getContainerWidth(),t!=this.containerWidth},i});
\ No newline at end of file
diff --git a/javascript/packery.pkgd.js b/javascript/packery.pkgd.js
deleted file mode 100644
index 6841abad6b1e50bbd384fed10bd3ea385088aa40..0000000000000000000000000000000000000000
--- a/javascript/packery.pkgd.js
+++ /dev/null
@@ -1,3410 +0,0 @@
-/*!
- * Packery PACKAGED v2.1.1
- * Gapless, draggable grid layouts
- *
- * Licensed GPLv3 for open source use
- * or Packery Commercial License for commercial use
- *
- * http://packery.metafizzy.co
- * Copyright 2016 Metafizzy
- */
-
-/**
- * Bridget makes jQuery widgets
- * v2.0.0
- * MIT license
- */
-
-/* jshint browser: true, strict: true, undef: true, unused: true */
-
-( function( window, factory ) {
-  'use strict';
-  /* globals define: false, module: false, require: false */
-
-  if ( typeof define == 'function' && define.amd ) {
-    // AMD
-    define( 'jquery-bridget/jquery-bridget',[ 'jquery' ], function( jQuery ) {
-      factory( window, jQuery );
-    });
-  } else if ( typeof module == 'object' && module.exports ) {
-    // CommonJS
-    module.exports = factory(
-      window,
-      require('jquery')
-    );
-  } else {
-    // browser global
-    window.jQueryBridget = factory(
-      window,
-      window.jQuery
-    );
-  }
-
-}( window, function factory( window, jQuery ) {
-'use strict';
-
-// ----- utils ----- //
-
-var arraySlice = Array.prototype.slice;
-
-// helper function for logging errors
-// $.error breaks jQuery chaining
-var console = window.console;
-var logError = typeof console == 'undefined' ? function() {} :
-  function( message ) {
-    console.error( message );
-  };
-
-// ----- jQueryBridget ----- //
-
-function jQueryBridget( namespace, PluginClass, $ ) {
-  $ = $ || jQuery || window.jQuery;
-  if ( !$ ) {
-    return;
-  }
-
-  // add option method -> $().plugin('option', {...})
-  if ( !PluginClass.prototype.option ) {
-    // option setter
-    PluginClass.prototype.option = function( opts ) {
-      // bail out if not an object
-      if ( !$.isPlainObject( opts ) ){
-        return;
-      }
-      this.options = $.extend( true, this.options, opts );
-    };
-  }
-
-  // make jQuery plugin
-  $.fn[ namespace ] = function( arg0 /*, arg1 */ ) {
-    if ( typeof arg0 == 'string' ) {
-      // method call $().plugin( 'methodName', { options } )
-      // shift arguments by 1
-      var args = arraySlice.call( arguments, 1 );
-      return methodCall( this, arg0, args );
-    }
-    // just $().plugin({ options })
-    plainCall( this, arg0 );
-    return this;
-  };
-
-  // $().plugin('methodName')
-  function methodCall( $elems, methodName, args ) {
-    var returnValue;
-    var pluginMethodStr = '$().' + namespace + '("' + methodName + '")';
-
-    $elems.each( function( i, elem ) {
-      // get instance
-      var instance = $.data( elem, namespace );
-      if ( !instance ) {
-        logError( namespace + ' not initialized. Cannot call methods, i.e. ' +
-          pluginMethodStr );
-        return;
-      }
-
-      var method = instance[ methodName ];
-      if ( !method || methodName.charAt(0) == '_' ) {
-        logError( pluginMethodStr + ' is not a valid method' );
-        return;
-      }
-
-      // apply method, get return value
-      var value = method.apply( instance, args );
-      // set return value if value is returned, use only first value
-      returnValue = returnValue === undefined ? value : returnValue;
-    });
-
-    return returnValue !== undefined ? returnValue : $elems;
-  }
-
-  function plainCall( $elems, options ) {
-    $elems.each( function( i, elem ) {
-      var instance = $.data( elem, namespace );
-      if ( instance ) {
-        // set options & init
-        instance.option( options );
-        instance._init();
-      } else {
-        // initialize new instance
-        instance = new PluginClass( elem, options );
-        $.data( elem, namespace, instance );
-      }
-    });
-  }
-
-  updateJQuery( $ );
-
-}
-
-// ----- updateJQuery ----- //
-
-// set $.bridget for v1 backwards compatibility
-function updateJQuery( $ ) {
-  if ( !$ || ( $ && $.bridget ) ) {
-    return;
-  }
-  $.bridget = jQueryBridget;
-}
-
-updateJQuery( jQuery || window.jQuery );
-
-// -----  ----- //
-
-return jQueryBridget;
-
-}));
-
-/*!
- * getSize v2.0.2
- * measure size of elements
- * MIT license
- */
-
-/*jshint browser: true, strict: true, undef: true, unused: true */
-/*global define: false, module: false, console: false */
-
-( function( window, factory ) {
-  'use strict';
-
-  if ( typeof define == 'function' && define.amd ) {
-    // AMD
-    define( 'get-size/get-size',[],function() {
-      return factory();
-    });
-  } else if ( typeof module == 'object' && module.exports ) {
-    // CommonJS
-    module.exports = factory();
-  } else {
-    // browser global
-    window.getSize = factory();
-  }
-
-})( window, function factory() {
-'use strict';
-
-// -------------------------- helpers -------------------------- //
-
-// get a number from a string, not a percentage
-function getStyleSize( value ) {
-  var num = parseFloat( value );
-  // not a percent like '100%', and a number
-  var isValid = value.indexOf('%') == -1 && !isNaN( num );
-  return isValid && num;
-}
-
-function noop() {}
-
-var logError = typeof console == 'undefined' ? noop :
-  function( message ) {
-    console.error( message );
-  };
-
-// -------------------------- measurements -------------------------- //
-
-var measurements = [
-  'paddingLeft',
-  'paddingRight',
-  'paddingTop',
-  'paddingBottom',
-  'marginLeft',
-  'marginRight',
-  'marginTop',
-  'marginBottom',
-  'borderLeftWidth',
-  'borderRightWidth',
-  'borderTopWidth',
-  'borderBottomWidth'
-];
-
-var measurementsLength = measurements.length;
-
-function getZeroSize() {
-  var size = {
-    width: 0,
-    height: 0,
-    innerWidth: 0,
-    innerHeight: 0,
-    outerWidth: 0,
-    outerHeight: 0
-  };
-  for ( var i=0; i < measurementsLength; i++ ) {
-    var measurement = measurements[i];
-    size[ measurement ] = 0;
-  }
-  return size;
-}
-
-// -------------------------- getStyle -------------------------- //
-
-/**
- * getStyle, get style of element, check for Firefox bug
- * https://bugzilla.mozilla.org/show_bug.cgi?id=548397
- */
-function getStyle( elem ) {
-  var style = getComputedStyle( elem );
-  if ( !style ) {
-    logError( 'Style returned ' + style +
-      '. Are you running this code in a hidden iframe on Firefox? ' +
-      'See http://bit.ly/getsizebug1' );
-  }
-  return style;
-}
-
-// -------------------------- setup -------------------------- //
-
-var isSetup = false;
-
-var isBoxSizeOuter;
-
-/**
- * setup
- * check isBoxSizerOuter
- * do on first getSize() rather than on page load for Firefox bug
- */
-function setup() {
-  // setup once
-  if ( isSetup ) {
-    return;
-  }
-  isSetup = true;
-
-  // -------------------------- box sizing -------------------------- //
-
-  /**
-   * WebKit measures the outer-width on style.width on border-box elems
-   * IE & Firefox<29 measures the inner-width
-   */
-  var div = document.createElement('div');
-  div.style.width = '200px';
-  div.style.padding = '1px 2px 3px 4px';
-  div.style.borderStyle = 'solid';
-  div.style.borderWidth = '1px 2px 3px 4px';
-  div.style.boxSizing = 'border-box';
-
-  var body = document.body || document.documentElement;
-  body.appendChild( div );
-  var style = getStyle( div );
-
-  getSize.isBoxSizeOuter = isBoxSizeOuter = getStyleSize( style.width ) == 200;
-  body.removeChild( div );
-
-}
-
-// -------------------------- getSize -------------------------- //
-
-function getSize( elem ) {
-  setup();
-
-  // use querySeletor if elem is string
-  if ( typeof elem == 'string' ) {
-    elem = document.querySelector( elem );
-  }
-
-  // do not proceed on non-objects
-  if ( !elem || typeof elem != 'object' || !elem.nodeType ) {
-    return;
-  }
-
-  var style = getStyle( elem );
-
-  // if hidden, everything is 0
-  if ( style.display == 'none' ) {
-    return getZeroSize();
-  }
-
-  var size = {};
-  size.width = elem.offsetWidth;
-  size.height = elem.offsetHeight;
-
-  var isBorderBox = size.isBorderBox = style.boxSizing == 'border-box';
-
-  // get all measurements
-  for ( var i=0; i < measurementsLength; i++ ) {
-    var measurement = measurements[i];
-    var value = style[ measurement ];
-    var num = parseFloat( value );
-    // any 'auto', 'medium' value will be 0
-    size[ measurement ] = !isNaN( num ) ? num : 0;
-  }
-
-  var paddingWidth = size.paddingLeft + size.paddingRight;
-  var paddingHeight = size.paddingTop + size.paddingBottom;
-  var marginWidth = size.marginLeft + size.marginRight;
-  var marginHeight = size.marginTop + size.marginBottom;
-  var borderWidth = size.borderLeftWidth + size.borderRightWidth;
-  var borderHeight = size.borderTopWidth + size.borderBottomWidth;
-
-  var isBorderBoxSizeOuter = isBorderBox && isBoxSizeOuter;
-
-  // overwrite width and height if we can get it from style
-  var styleWidth = getStyleSize( style.width );
-  if ( styleWidth !== false ) {
-    size.width = styleWidth +
-      // add padding and border unless it's already including it
-      ( isBorderBoxSizeOuter ? 0 : paddingWidth + borderWidth );
-  }
-
-  var styleHeight = getStyleSize( style.height );
-  if ( styleHeight !== false ) {
-    size.height = styleHeight +
-      // add padding and border unless it's already including it
-      ( isBorderBoxSizeOuter ? 0 : paddingHeight + borderHeight );
-  }
-
-  size.innerWidth = size.width - ( paddingWidth + borderWidth );
-  size.innerHeight = size.height - ( paddingHeight + borderHeight );
-
-  size.outerWidth = size.width + marginWidth;
-  size.outerHeight = size.height + marginHeight;
-
-  return size;
-}
-
-return getSize;
-
-});
-
-/**
- * EvEmitter v1.0.2
- * Lil' event emitter
- * MIT License
- */
-
-/* jshint unused: true, undef: true, strict: true */
-
-( function( global, factory ) {
-  // universal module definition
-  /* jshint strict: false */ /* globals define, module */
-  if ( typeof define == 'function' && define.amd ) {
-    // AMD - RequireJS
-    define( 'ev-emitter/ev-emitter',factory );
-  } else if ( typeof module == 'object' && module.exports ) {
-    // CommonJS - Browserify, Webpack
-    module.exports = factory();
-  } else {
-    // Browser globals
-    global.EvEmitter = factory();
-  }
-
-}( this, function() {
-
-
-
-function EvEmitter() {}
-
-var proto = EvEmitter.prototype;
-
-proto.on = function( eventName, listener ) {
-  if ( !eventName || !listener ) {
-    return;
-  }
-  // set events hash
-  var events = this._events = this._events || {};
-  // set listeners array
-  var listeners = events[ eventName ] = events[ eventName ] || [];
-  // only add once
-  if ( listeners.indexOf( listener ) == -1 ) {
-    listeners.push( listener );
-  }
-
-  return this;
-};
-
-proto.once = function( eventName, listener ) {
-  if ( !eventName || !listener ) {
-    return;
-  }
-  // add event
-  this.on( eventName, listener );
-  // set once flag
-  // set onceEvents hash
-  var onceEvents = this._onceEvents = this._onceEvents || {};
-  // set onceListeners object
-  var onceListeners = onceEvents[ eventName ] = onceEvents[ eventName ] || {};
-  // set flag
-  onceListeners[ listener ] = true;
-
-  return this;
-};
-
-proto.off = function( eventName, listener ) {
-  var listeners = this._events && this._events[ eventName ];
-  if ( !listeners || !listeners.length ) {
-    return;
-  }
-  var index = listeners.indexOf( listener );
-  if ( index != -1 ) {
-    listeners.splice( index, 1 );
-  }
-
-  return this;
-};
-
-proto.emitEvent = function( eventName, args ) {
-  var listeners = this._events && this._events[ eventName ];
-  if ( !listeners || !listeners.length ) {
-    return;
-  }
-  var i = 0;
-  var listener = listeners[i];
-  args = args || [];
-  // once stuff
-  var onceListeners = this._onceEvents && this._onceEvents[ eventName ];
-
-  while ( listener ) {
-    var isOnce = onceListeners && onceListeners[ listener ];
-    if ( isOnce ) {
-      // remove listener
-      // remove before trigger to prevent recursion
-      this.off( eventName, listener );
-      // unset once flag
-      delete onceListeners[ listener ];
-    }
-    // trigger listener
-    listener.apply( this, args );
-    // get next listener
-    i += isOnce ? 0 : 1;
-    listener = listeners[i];
-  }
-
-  return this;
-};
-
-return EvEmitter;
-
-}));
-
-/**
- * matchesSelector v2.0.1
- * matchesSelector( element, '.selector' )
- * MIT license
- */
-
-/*jshint browser: true, strict: true, undef: true, unused: true */
-
-( function( window, factory ) {
-  /*global define: false, module: false */
-  'use strict';
-  // universal module definition
-  if ( typeof define == 'function' && define.amd ) {
-    // AMD
-    define( 'desandro-matches-selector/matches-selector',factory );
-  } else if ( typeof module == 'object' && module.exports ) {
-    // CommonJS
-    module.exports = factory();
-  } else {
-    // browser global
-    window.matchesSelector = factory();
-  }
-
-}( window, function factory() {
-  'use strict';
-
-  var matchesMethod = ( function() {
-    var ElemProto = Element.prototype;
-    // check for the standard method name first
-    if ( ElemProto.matches ) {
-      return 'matches';
-    }
-    // check un-prefixed
-    if ( ElemProto.matchesSelector ) {
-      return 'matchesSelector';
-    }
-    // check vendor prefixes
-    var prefixes = [ 'webkit', 'moz', 'ms', 'o' ];
-
-    for ( var i=0; i < prefixes.length; i++ ) {
-      var prefix = prefixes[i];
-      var method = prefix + 'MatchesSelector';
-      if ( ElemProto[ method ] ) {
-        return method;
-      }
-    }
-  })();
-
-  return function matchesSelector( elem, selector ) {
-    return elem[ matchesMethod ]( selector );
-  };
-
-}));
-
-/**
- * Fizzy UI utils v2.0.1
- * MIT license
- */
-
-/*jshint browser: true, undef: true, unused: true, strict: true */
-
-( function( window, factory ) {
-  // universal module definition
-  /*jshint strict: false */ /*globals define, module, require */
-
-  if ( typeof define == 'function' && define.amd ) {
-    // AMD
-    define( 'fizzy-ui-utils/utils',[
-      'desandro-matches-selector/matches-selector'
-    ], function( matchesSelector ) {
-      return factory( window, matchesSelector );
-    });
-  } else if ( typeof module == 'object' && module.exports ) {
-    // CommonJS
-    module.exports = factory(
-      window,
-      require('desandro-matches-selector')
-    );
-  } else {
-    // browser global
-    window.fizzyUIUtils = factory(
-      window,
-      window.matchesSelector
-    );
-  }
-
-}( window, function factory( window, matchesSelector ) {
-
-
-
-var utils = {};
-
-// ----- extend ----- //
-
-// extends objects
-utils.extend = function( a, b ) {
-  for ( var prop in b ) {
-    a[ prop ] = b[ prop ];
-  }
-  return a;
-};
-
-// ----- modulo ----- //
-
-utils.modulo = function( num, div ) {
-  return ( ( num % div ) + div ) % div;
-};
-
-// ----- makeArray ----- //
-
-// turn element or nodeList into an array
-utils.makeArray = function( obj ) {
-  var ary = [];
-  if ( Array.isArray( obj ) ) {
-    // use object if already an array
-    ary = obj;
-  } else if ( obj && typeof obj.length == 'number' ) {
-    // convert nodeList to array
-    for ( var i=0; i < obj.length; i++ ) {
-      ary.push( obj[i] );
-    }
-  } else {
-    // array of single index
-    ary.push( obj );
-  }
-  return ary;
-};
-
-// ----- removeFrom ----- //
-
-utils.removeFrom = function( ary, obj ) {
-  var index = ary.indexOf( obj );
-  if ( index != -1 ) {
-    ary.splice( index, 1 );
-  }
-};
-
-// ----- getParent ----- //
-
-utils.getParent = function( elem, selector ) {
-  while ( elem != document.body ) {
-    elem = elem.parentNode;
-    if ( matchesSelector( elem, selector ) ) {
-      return elem;
-    }
-  }
-};
-
-// ----- getQueryElement ----- //
-
-// use element as selector string
-utils.getQueryElement = function( elem ) {
-  if ( typeof elem == 'string' ) {
-    return document.querySelector( elem );
-  }
-  return elem;
-};
-
-// ----- handleEvent ----- //
-
-// enable .ontype to trigger from .addEventListener( elem, 'type' )
-utils.handleEvent = function( event ) {
-  var method = 'on' + event.type;
-  if ( this[ method ] ) {
-    this[ method ]( event );
-  }
-};
-
-// ----- filterFindElements ----- //
-
-utils.filterFindElements = function( elems, selector ) {
-  // make array of elems
-  elems = utils.makeArray( elems );
-  var ffElems = [];
-
-  elems.forEach( function( elem ) {
-    // check that elem is an actual element
-    if ( !( elem instanceof HTMLElement ) ) {
-      return;
-    }
-    // add elem if no selector
-    if ( !selector ) {
-      ffElems.push( elem );
-      return;
-    }
-    // filter & find items if we have a selector
-    // filter
-    if ( matchesSelector( elem, selector ) ) {
-      ffElems.push( elem );
-    }
-    // find children
-    var childElems = elem.querySelectorAll( selector );
-    // concat childElems to filterFound array
-    for ( var i=0; i < childElems.length; i++ ) {
-      ffElems.push( childElems[i] );
-    }
-  });
-
-  return ffElems;
-};
-
-// ----- debounceMethod ----- //
-
-utils.debounceMethod = function( _class, methodName, threshold ) {
-  // original method
-  var method = _class.prototype[ methodName ];
-  var timeoutName = methodName + 'Timeout';
-
-  _class.prototype[ methodName ] = function() {
-    var timeout = this[ timeoutName ];
-    if ( timeout ) {
-      clearTimeout( timeout );
-    }
-    var args = arguments;
-
-    var _this = this;
-    this[ timeoutName ] = setTimeout( function() {
-      method.apply( _this, args );
-      delete _this[ timeoutName ];
-    }, threshold || 100 );
-  };
-};
-
-// ----- docReady ----- //
-
-utils.docReady = function( callback ) {
-  if ( document.readyState == 'complete' ) {
-    callback();
-  } else {
-    document.addEventListener( 'DOMContentLoaded', callback );
-  }
-};
-
-// ----- htmlInit ----- //
-
-// http://jamesroberts.name/blog/2010/02/22/string-functions-for-javascript-trim-to-camel-case-to-dashed-and-to-underscore/
-utils.toDashed = function( str ) {
-  return str.replace( /(.)([A-Z])/g, function( match, $1, $2 ) {
-    return $1 + '-' + $2;
-  }).toLowerCase();
-};
-
-var console = window.console;
-/**
- * allow user to initialize classes via [data-namespace] or .js-namespace class
- * htmlInit( Widget, 'widgetName' )
- * options are parsed from data-namespace-options
- */
-utils.htmlInit = function( WidgetClass, namespace ) {
-  utils.docReady( function() {
-    var dashedNamespace = utils.toDashed( namespace );
-    var dataAttr = 'data-' + dashedNamespace;
-    var dataAttrElems = document.querySelectorAll( '[' + dataAttr + ']' );
-    var jsDashElems = document.querySelectorAll( '.js-' + dashedNamespace );
-    var elems = utils.makeArray( dataAttrElems )
-      .concat( utils.makeArray( jsDashElems ) );
-    var dataOptionsAttr = dataAttr + '-options';
-    var jQuery = window.jQuery;
-
-    elems.forEach( function( elem ) {
-      var attr = elem.getAttribute( dataAttr ) ||
-        elem.getAttribute( dataOptionsAttr );
-      var options;
-      try {
-        options = attr && JSON.parse( attr );
-      } catch ( error ) {
-        // log error, do not initialize
-        if ( console ) {
-          console.error( 'Error parsing ' + dataAttr + ' on ' + elem.className +
-          ': ' + error );
-        }
-        return;
-      }
-      // initialize
-      var instance = new WidgetClass( elem, options );
-      // make available via $().data('layoutname')
-      if ( jQuery ) {
-        jQuery.data( elem, namespace, instance );
-      }
-    });
-
-  });
-};
-
-// -----  ----- //
-
-return utils;
-
-}));
-
-/**
- * Outlayer Item
- */
-
-( function( window, factory ) {
-  // universal module definition
-  /* jshint strict: false */ /* globals define, module, require */
-  if ( typeof define == 'function' && define.amd ) {
-    // AMD - RequireJS
-    define( 'outlayer/item',[
-        'ev-emitter/ev-emitter',
-        'get-size/get-size'
-      ],
-      factory
-    );
-  } else if ( typeof module == 'object' && module.exports ) {
-    // CommonJS - Browserify, Webpack
-    module.exports = factory(
-      require('ev-emitter'),
-      require('get-size')
-    );
-  } else {
-    // browser global
-    window.Outlayer = {};
-    window.Outlayer.Item = factory(
-      window.EvEmitter,
-      window.getSize
-    );
-  }
-
-}( window, function factory( EvEmitter, getSize ) {
-'use strict';
-
-// ----- helpers ----- //
-
-function isEmptyObj( obj ) {
-  for ( var prop in obj ) {
-    return false;
-  }
-  prop = null;
-  return true;
-}
-
-// -------------------------- CSS3 support -------------------------- //
-
-
-var docElemStyle = document.documentElement.style;
-
-var transitionProperty = typeof docElemStyle.transition == 'string' ?
-  'transition' : 'WebkitTransition';
-var transformProperty = typeof docElemStyle.transform == 'string' ?
-  'transform' : 'WebkitTransform';
-
-var transitionEndEvent = {
-  WebkitTransition: 'webkitTransitionEnd',
-  transition: 'transitionend'
-}[ transitionProperty ];
-
-// cache all vendor properties that could have vendor prefix
-var vendorProperties = {
-  transform: transformProperty,
-  transition: transitionProperty,
-  transitionDuration: transitionProperty + 'Duration',
-  transitionProperty: transitionProperty + 'Property',
-  transitionDelay: transitionProperty + 'Delay'
-};
-
-// -------------------------- Item -------------------------- //
-
-function Item( element, layout ) {
-  if ( !element ) {
-    return;
-  }
-
-  this.element = element;
-  // parent layout class, i.e. Masonry, Isotope, or Packery
-  this.layout = layout;
-  this.position = {
-    x: 0,
-    y: 0
-  };
-
-  this._create();
-}
-
-// inherit EvEmitter
-var proto = Item.prototype = Object.create( EvEmitter.prototype );
-proto.constructor = Item;
-
-proto._create = function() {
-  // transition objects
-  this._transn = {
-    ingProperties: {},
-    clean: {},
-    onEnd: {}
-  };
-
-  this.css({
-    position: 'absolute'
-  });
-};
-
-// trigger specified handler for event type
-proto.handleEvent = function( event ) {
-  var method = 'on' + event.type;
-  if ( this[ method ] ) {
-    this[ method ]( event );
-  }
-};
-
-proto.getSize = function() {
-  this.size = getSize( this.element );
-};
-
-/**
- * apply CSS styles to element
- * @param {Object} style
- */
-proto.css = function( style ) {
-  var elemStyle = this.element.style;
-
-  for ( var prop in style ) {
-    // use vendor property if available
-    var supportedProp = vendorProperties[ prop ] || prop;
-    elemStyle[ supportedProp ] = style[ prop ];
-  }
-};
-
- // measure position, and sets it
-proto.getPosition = function() {
-  var style = getComputedStyle( this.element );
-  var isOriginLeft = this.layout._getOption('originLeft');
-  var isOriginTop = this.layout._getOption('originTop');
-  var xValue = style[ isOriginLeft ? 'left' : 'right' ];
-  var yValue = style[ isOriginTop ? 'top' : 'bottom' ];
-  // convert percent to pixels
-  var layoutSize = this.layout.size;
-  var x = xValue.indexOf('%') != -1 ?
-    ( parseFloat( xValue ) / 100 ) * layoutSize.width : parseInt( xValue, 10 );
-  var y = yValue.indexOf('%') != -1 ?
-    ( parseFloat( yValue ) / 100 ) * layoutSize.height : parseInt( yValue, 10 );
-
-  // clean up 'auto' or other non-integer values
-  x = isNaN( x ) ? 0 : x;
-  y = isNaN( y ) ? 0 : y;
-  // remove padding from measurement
-  x -= isOriginLeft ? layoutSize.paddingLeft : layoutSize.paddingRight;
-  y -= isOriginTop ? layoutSize.paddingTop : layoutSize.paddingBottom;
-
-  this.position.x = x;
-  this.position.y = y;
-};
-
-// set settled position, apply padding
-proto.layoutPosition = function() {
-  var layoutSize = this.layout.size;
-  var style = {};
-  var isOriginLeft = this.layout._getOption('originLeft');
-  var isOriginTop = this.layout._getOption('originTop');
-
-  // x
-  var xPadding = isOriginLeft ? 'paddingLeft' : 'paddingRight';
-  var xProperty = isOriginLeft ? 'left' : 'right';
-  var xResetProperty = isOriginLeft ? 'right' : 'left';
-
-  var x = this.position.x + layoutSize[ xPadding ];
-  // set in percentage or pixels
-  style[ xProperty ] = this.getXValue( x );
-  // reset other property
-  style[ xResetProperty ] = '';
-
-  // y
-  var yPadding = isOriginTop ? 'paddingTop' : 'paddingBottom';
-  var yProperty = isOriginTop ? 'top' : 'bottom';
-  var yResetProperty = isOriginTop ? 'bottom' : 'top';
-
-  var y = this.position.y + layoutSize[ yPadding ];
-  // set in percentage or pixels
-  style[ yProperty ] = this.getYValue( y );
-  // reset other property
-  style[ yResetProperty ] = '';
-
-  this.css( style );
-  this.emitEvent( 'layout', [ this ] );
-};
-
-proto.getXValue = function( x ) {
-  var isHorizontal = this.layout._getOption('horizontal');
-  return this.layout.options.percentPosition && !isHorizontal ?
-    ( ( x / this.layout.size.width ) * 100 ) + '%' : x + 'px';
-};
-
-proto.getYValue = function( y ) {
-  var isHorizontal = this.layout._getOption('horizontal');
-  return this.layout.options.percentPosition && isHorizontal ?
-    ( ( y / this.layout.size.height ) * 100 ) + '%' : y + 'px';
-};
-
-proto._transitionTo = function( x, y ) {
-  this.getPosition();
-  // get current x & y from top/left
-  var curX = this.position.x;
-  var curY = this.position.y;
-
-  var compareX = parseInt( x, 10 );
-  var compareY = parseInt( y, 10 );
-  var didNotMove = compareX === this.position.x && compareY === this.position.y;
-
-  // save end position
-  this.setPosition( x, y );
-
-  // if did not move and not transitioning, just go to layout
-  if ( didNotMove && !this.isTransitioning ) {
-    this.layoutPosition();
-    return;
-  }
-
-  var transX = x - curX;
-  var transY = y - curY;
-  var transitionStyle = {};
-  transitionStyle.transform = this.getTranslate( transX, transY );
-
-  this.transition({
-    to: transitionStyle,
-    onTransitionEnd: {
-      transform: this.layoutPosition
-    },
-    isCleaning: true
-  });
-};
-
-proto.getTranslate = function( x, y ) {
-  // flip cooridinates if origin on right or bottom
-  var isOriginLeft = this.layout._getOption('originLeft');
-  var isOriginTop = this.layout._getOption('originTop');
-  x = isOriginLeft ? x : -x;
-  y = isOriginTop ? y : -y;
-  return 'translate3d(' + x + 'px, ' + y + 'px, 0)';
-};
-
-// non transition + transform support
-proto.goTo = function( x, y ) {
-  this.setPosition( x, y );
-  this.layoutPosition();
-};
-
-proto.moveTo = proto._transitionTo;
-
-proto.setPosition = function( x, y ) {
-  this.position.x = parseInt( x, 10 );
-  this.position.y = parseInt( y, 10 );
-};
-
-// ----- transition ----- //
-
-/**
- * @param {Object} style - CSS
- * @param {Function} onTransitionEnd
- */
-
-// non transition, just trigger callback
-proto._nonTransition = function( args ) {
-  this.css( args.to );
-  if ( args.isCleaning ) {
-    this._removeStyles( args.to );
-  }
-  for ( var prop in args.onTransitionEnd ) {
-    args.onTransitionEnd[ prop ].call( this );
-  }
-};
-
-/**
- * proper transition
- * @param {Object} args - arguments
- *   @param {Object} to - style to transition to
- *   @param {Object} from - style to start transition from
- *   @param {Boolean} isCleaning - removes transition styles after transition
- *   @param {Function} onTransitionEnd - callback
- */
-proto.transition = function( args ) {
-  // redirect to nonTransition if no transition duration
-  if ( !parseFloat( this.layout.options.transitionDuration ) ) {
-    this._nonTransition( args );
-    return;
-  }
-
-  var _transition = this._transn;
-  // keep track of onTransitionEnd callback by css property
-  for ( var prop in args.onTransitionEnd ) {
-    _transition.onEnd[ prop ] = args.onTransitionEnd[ prop ];
-  }
-  // keep track of properties that are transitioning
-  for ( prop in args.to ) {
-    _transition.ingProperties[ prop ] = true;
-    // keep track of properties to clean up when transition is done
-    if ( args.isCleaning ) {
-      _transition.clean[ prop ] = true;
-    }
-  }
-
-  // set from styles
-  if ( args.from ) {
-    this.css( args.from );
-    // force redraw. http://blog.alexmaccaw.com/css-transitions
-    var h = this.element.offsetHeight;
-    // hack for JSHint to hush about unused var
-    h = null;
-  }
-  // enable transition
-  this.enableTransition( args.to );
-  // set styles that are transitioning
-  this.css( args.to );
-
-  this.isTransitioning = true;
-
-};
-
-// dash before all cap letters, including first for
-// WebkitTransform => -webkit-transform
-function toDashedAll( str ) {
-  return str.replace( /([A-Z])/g, function( $1 ) {
-    return '-' + $1.toLowerCase();
-  });
-}
-
-var transitionProps = 'opacity,' + toDashedAll( transformProperty );
-
-proto.enableTransition = function(/* style */) {
-  // HACK changing transitionProperty during a transition
-  // will cause transition to jump
-  if ( this.isTransitioning ) {
-    return;
-  }
-
-  // make `transition: foo, bar, baz` from style object
-  // HACK un-comment this when enableTransition can work
-  // while a transition is happening
-  // var transitionValues = [];
-  // for ( var prop in style ) {
-  //   // dash-ify camelCased properties like WebkitTransition
-  //   prop = vendorProperties[ prop ] || prop;
-  //   transitionValues.push( toDashedAll( prop ) );
-  // }
-  // munge number to millisecond, to match stagger
-  var duration = this.layout.options.transitionDuration;
-  duration = typeof duration == 'number' ? duration + 'ms' : duration;
-  // enable transition styles
-  this.css({
-    transitionProperty: transitionProps,
-    transitionDuration: duration,
-    transitionDelay: this.staggerDelay || 0
-  });
-  // listen for transition end event
-  this.element.addEventListener( transitionEndEvent, this, false );
-};
-
-// ----- events ----- //
-
-proto.onwebkitTransitionEnd = function( event ) {
-  this.ontransitionend( event );
-};
-
-proto.onotransitionend = function( event ) {
-  this.ontransitionend( event );
-};
-
-// properties that I munge to make my life easier
-var dashedVendorProperties = {
-  '-webkit-transform': 'transform'
-};
-
-proto.ontransitionend = function( event ) {
-  // disregard bubbled events from children
-  if ( event.target !== this.element ) {
-    return;
-  }
-  var _transition = this._transn;
-  // get property name of transitioned property, convert to prefix-free
-  var propertyName = dashedVendorProperties[ event.propertyName ] || event.propertyName;
-
-  // remove property that has completed transitioning
-  delete _transition.ingProperties[ propertyName ];
-  // check if any properties are still transitioning
-  if ( isEmptyObj( _transition.ingProperties ) ) {
-    // all properties have completed transitioning
-    this.disableTransition();
-  }
-  // clean style
-  if ( propertyName in _transition.clean ) {
-    // clean up style
-    this.element.style[ event.propertyName ] = '';
-    delete _transition.clean[ propertyName ];
-  }
-  // trigger onTransitionEnd callback
-  if ( propertyName in _transition.onEnd ) {
-    var onTransitionEnd = _transition.onEnd[ propertyName ];
-    onTransitionEnd.call( this );
-    delete _transition.onEnd[ propertyName ];
-  }
-
-  this.emitEvent( 'transitionEnd', [ this ] );
-};
-
-proto.disableTransition = function() {
-  this.removeTransitionStyles();
-  this.element.removeEventListener( transitionEndEvent, this, false );
-  this.isTransitioning = false;
-};
-
-/**
- * removes style property from element
- * @param {Object} style
-**/
-proto._removeStyles = function( style ) {
-  // clean up transition styles
-  var cleanStyle = {};
-  for ( var prop in style ) {
-    cleanStyle[ prop ] = '';
-  }
-  this.css( cleanStyle );
-};
-
-var cleanTransitionStyle = {
-  transitionProperty: '',
-  transitionDuration: '',
-  transitionDelay: ''
-};
-
-proto.removeTransitionStyles = function() {
-  // remove transition
-  this.css( cleanTransitionStyle );
-};
-
-// ----- stagger ----- //
-
-proto.stagger = function( delay ) {
-  delay = isNaN( delay ) ? 0 : delay;
-  this.staggerDelay = delay + 'ms';
-};
-
-// ----- show/hide/remove ----- //
-
-// remove element from DOM
-proto.removeElem = function() {
-  this.element.parentNode.removeChild( this.element );
-  // remove display: none
-  this.css({ display: '' });
-  this.emitEvent( 'remove', [ this ] );
-};
-
-proto.remove = function() {
-  // just remove element if no transition support or no transition
-  if ( !transitionProperty || !parseFloat( this.layout.options.transitionDuration ) ) {
-    this.removeElem();
-    return;
-  }
-
-  // start transition
-  this.once( 'transitionEnd', function() {
-    this.removeElem();
-  });
-  this.hide();
-};
-
-proto.reveal = function() {
-  delete this.isHidden;
-  // remove display: none
-  this.css({ display: '' });
-
-  var options = this.layout.options;
-
-  var onTransitionEnd = {};
-  var transitionEndProperty = this.getHideRevealTransitionEndProperty('visibleStyle');
-  onTransitionEnd[ transitionEndProperty ] = this.onRevealTransitionEnd;
-
-  this.transition({
-    from: options.hiddenStyle,
-    to: options.visibleStyle,
-    isCleaning: true,
-    onTransitionEnd: onTransitionEnd
-  });
-};
-
-proto.onRevealTransitionEnd = function() {
-  // check if still visible
-  // during transition, item may have been hidden
-  if ( !this.isHidden ) {
-    this.emitEvent('reveal');
-  }
-};
-
-/**
- * get style property use for hide/reveal transition end
- * @param {String} styleProperty - hiddenStyle/visibleStyle
- * @returns {String}
- */
-proto.getHideRevealTransitionEndProperty = function( styleProperty ) {
-  var optionStyle = this.layout.options[ styleProperty ];
-  // use opacity
-  if ( optionStyle.opacity ) {
-    return 'opacity';
-  }
-  // get first property
-  for ( var prop in optionStyle ) {
-    return prop;
-  }
-};
-
-proto.hide = function() {
-  // set flag
-  this.isHidden = true;
-  // remove display: none
-  this.css({ display: '' });
-
-  var options = this.layout.options;
-
-  var onTransitionEnd = {};
-  var transitionEndProperty = this.getHideRevealTransitionEndProperty('hiddenStyle');
-  onTransitionEnd[ transitionEndProperty ] = this.onHideTransitionEnd;
-
-  this.transition({
-    from: options.visibleStyle,
-    to: options.hiddenStyle,
-    // keep hidden stuff hidden
-    isCleaning: true,
-    onTransitionEnd: onTransitionEnd
-  });
-};
-
-proto.onHideTransitionEnd = function() {
-  // check if still hidden
-  // during transition, item may have been un-hidden
-  if ( this.isHidden ) {
-    this.css({ display: 'none' });
-    this.emitEvent('hide');
-  }
-};
-
-proto.destroy = function() {
-  this.css({
-    position: '',
-    left: '',
-    right: '',
-    top: '',
-    bottom: '',
-    transition: '',
-    transform: ''
-  });
-};
-
-return Item;
-
-}));
-
-/*!
- * Outlayer v2.1.0
- * the brains and guts of a layout library
- * MIT license
- */
-
-( function( window, factory ) {
-  'use strict';
-  // universal module definition
-  /* jshint strict: false */ /* globals define, module, require */
-  if ( typeof define == 'function' && define.amd ) {
-    // AMD - RequireJS
-    define( 'outlayer/outlayer',[
-        'ev-emitter/ev-emitter',
-        'get-size/get-size',
-        'fizzy-ui-utils/utils',
-        './item'
-      ],
-      function( EvEmitter, getSize, utils, Item ) {
-        return factory( window, EvEmitter, getSize, utils, Item);
-      }
-    );
-  } else if ( typeof module == 'object' && module.exports ) {
-    // CommonJS - Browserify, Webpack
-    module.exports = factory(
-      window,
-      require('ev-emitter'),
-      require('get-size'),
-      require('fizzy-ui-utils'),
-      require('./item')
-    );
-  } else {
-    // browser global
-    window.Outlayer = factory(
-      window,
-      window.EvEmitter,
-      window.getSize,
-      window.fizzyUIUtils,
-      window.Outlayer.Item
-    );
-  }
-
-}( window, function factory( window, EvEmitter, getSize, utils, Item ) {
-'use strict';
-
-// ----- vars ----- //
-
-var console = window.console;
-var jQuery = window.jQuery;
-var noop = function() {};
-
-// -------------------------- Outlayer -------------------------- //
-
-// globally unique identifiers
-var GUID = 0;
-// internal store of all Outlayer intances
-var instances = {};
-
-
-/**
- * @param {Element, String} element
- * @param {Object} options
- * @constructor
- */
-function Outlayer( element, options ) {
-  var queryElement = utils.getQueryElement( element );
-  if ( !queryElement ) {
-    if ( console ) {
-      console.error( 'Bad element for ' + this.constructor.namespace +
-        ': ' + ( queryElement || element ) );
-    }
-    return;
-  }
-  this.element = queryElement;
-  // add jQuery
-  if ( jQuery ) {
-    this.$element = jQuery( this.element );
-  }
-
-  // options
-  this.options = utils.extend( {}, this.constructor.defaults );
-  this.option( options );
-
-  // add id for Outlayer.getFromElement
-  var id = ++GUID;
-  this.element.outlayerGUID = id; // expando
-  instances[ id ] = this; // associate via id
-
-  // kick it off
-  this._create();
-
-  var isInitLayout = this._getOption('initLayout');
-  if ( isInitLayout ) {
-    this.layout();
-  }
-}
-
-// settings are for internal use only
-Outlayer.namespace = 'outlayer';
-Outlayer.Item = Item;
-
-// default options
-Outlayer.defaults = {
-  containerStyle: {
-    position: 'relative'
-  },
-  initLayout: true,
-  originLeft: true,
-  originTop: true,
-  resize: true,
-  resizeContainer: true,
-  // item options
-  transitionDuration: '0.4s',
-  hiddenStyle: {
-    opacity: 0,
-    transform: 'scale(0.001)'
-  },
-  visibleStyle: {
-    opacity: 1,
-    transform: 'scale(1)'
-  }
-};
-
-var proto = Outlayer.prototype;
-// inherit EvEmitter
-utils.extend( proto, EvEmitter.prototype );
-
-/**
- * set options
- * @param {Object} opts
- */
-proto.option = function( opts ) {
-  utils.extend( this.options, opts );
-};
-
-/**
- * get backwards compatible option value, check old name
- */
-proto._getOption = function( option ) {
-  var oldOption = this.constructor.compatOptions[ option ];
-  return oldOption && this.options[ oldOption ] !== undefined ?
-    this.options[ oldOption ] : this.options[ option ];
-};
-
-Outlayer.compatOptions = {
-  // currentName: oldName
-  initLayout: 'isInitLayout',
-  horizontal: 'isHorizontal',
-  layoutInstant: 'isLayoutInstant',
-  originLeft: 'isOriginLeft',
-  originTop: 'isOriginTop',
-  resize: 'isResizeBound',
-  resizeContainer: 'isResizingContainer'
-};
-
-proto._create = function() {
-  // get items from children
-  this.reloadItems();
-  // elements that affect layout, but are not laid out
-  this.stamps = [];
-  this.stamp( this.options.stamp );
-  // set container style
-  utils.extend( this.element.style, this.options.containerStyle );
-
-  // bind resize method
-  var canBindResize = this._getOption('resize');
-  if ( canBindResize ) {
-    this.bindResize();
-  }
-};
-
-// goes through all children again and gets bricks in proper order
-proto.reloadItems = function() {
-  // collection of item elements
-  this.items = this._itemize( this.element.children );
-};
-
-
-/**
- * turn elements into Outlayer.Items to be used in layout
- * @param {Array or NodeList or HTMLElement} elems
- * @returns {Array} items - collection of new Outlayer Items
- */
-proto._itemize = function( elems ) {
-
-  var itemElems = this._filterFindItemElements( elems );
-  var Item = this.constructor.Item;
-
-  // create new Outlayer Items for collection
-  var items = [];
-  for ( var i=0; i < itemElems.length; i++ ) {
-    var elem = itemElems[i];
-    var item = new Item( elem, this );
-    items.push( item );
-  }
-
-  return items;
-};
-
-/**
- * get item elements to be used in layout
- * @param {Array or NodeList or HTMLElement} elems
- * @returns {Array} items - item elements
- */
-proto._filterFindItemElements = function( elems ) {
-  return utils.filterFindElements( elems, this.options.itemSelector );
-};
-
-/**
- * getter method for getting item elements
- * @returns {Array} elems - collection of item elements
- */
-proto.getItemElements = function() {
-  return this.items.map( function( item ) {
-    return item.element;
-  });
-};
-
-// ----- init & layout ----- //
-
-/**
- * lays out all items
- */
-proto.layout = function() {
-  this._resetLayout();
-  this._manageStamps();
-
-  // don't animate first layout
-  var layoutInstant = this._getOption('layoutInstant');
-  var isInstant = layoutInstant !== undefined ?
-    layoutInstant : !this._isLayoutInited;
-  this.layoutItems( this.items, isInstant );
-
-  // flag for initalized
-  this._isLayoutInited = true;
-};
-
-// _init is alias for layout
-proto._init = proto.layout;
-
-/**
- * logic before any new layout
- */
-proto._resetLayout = function() {
-  this.getSize();
-};
-
-
-proto.getSize = function() {
-  this.size = getSize( this.element );
-};
-
-/**
- * get measurement from option, for columnWidth, rowHeight, gutter
- * if option is String -> get element from selector string, & get size of element
- * if option is Element -> get size of element
- * else use option as a number
- *
- * @param {String} measurement
- * @param {String} size - width or height
- * @private
- */
-proto._getMeasurement = function( measurement, size ) {
-  var option = this.options[ measurement ];
-  var elem;
-  if ( !option ) {
-    // default to 0
-    this[ measurement ] = 0;
-  } else {
-    // use option as an element
-    if ( typeof option == 'string' ) {
-      elem = this.element.querySelector( option );
-    } else if ( option instanceof HTMLElement ) {
-      elem = option;
-    }
-    // use size of element, if element
-    this[ measurement ] = elem ? getSize( elem )[ size ] : option;
-  }
-};
-
-/**
- * layout a collection of item elements
- * @api public
- */
-proto.layoutItems = function( items, isInstant ) {
-  items = this._getItemsForLayout( items );
-
-  this._layoutItems( items, isInstant );
-
-  this._postLayout();
-};
-
-/**
- * get the items to be laid out
- * you may want to skip over some items
- * @param {Array} items
- * @returns {Array} items
- */
-proto._getItemsForLayout = function( items ) {
-  return items.filter( function( item ) {
-    return !item.isIgnored;
-  });
-};
-
-/**
- * layout items
- * @param {Array} items
- * @param {Boolean} isInstant
- */
-proto._layoutItems = function( items, isInstant ) {
-  this._emitCompleteOnItems( 'layout', items );
-
-  if ( !items || !items.length ) {
-    // no items, emit event with empty array
-    return;
-  }
-
-  var queue = [];
-
-  items.forEach( function( item ) {
-    // get x/y object from method
-    var position = this._getItemLayoutPosition( item );
-    // enqueue
-    position.item = item;
-    position.isInstant = isInstant || item.isLayoutInstant;
-    queue.push( position );
-  }, this );
-
-  this._processLayoutQueue( queue );
-};
-
-/**
- * get item layout position
- * @param {Outlayer.Item} item
- * @returns {Object} x and y position
- */
-proto._getItemLayoutPosition = function( /* item */ ) {
-  return {
-    x: 0,
-    y: 0
-  };
-};
-
-/**
- * iterate over array and position each item
- * Reason being - separating this logic prevents 'layout invalidation'
- * thx @paul_irish
- * @param {Array} queue
- */
-proto._processLayoutQueue = function( queue ) {
-  this.updateStagger();
-  queue.forEach( function( obj, i ) {
-    this._positionItem( obj.item, obj.x, obj.y, obj.isInstant, i );
-  }, this );
-};
-
-// set stagger from option in milliseconds number
-proto.updateStagger = function() {
-  var stagger = this.options.stagger;
-  if ( stagger === null || stagger === undefined ) {
-    this.stagger = 0;
-    return;
-  }
-  this.stagger = getMilliseconds( stagger );
-  return this.stagger;
-};
-
-/**
- * Sets position of item in DOM
- * @param {Outlayer.Item} item
- * @param {Number} x - horizontal position
- * @param {Number} y - vertical position
- * @param {Boolean} isInstant - disables transitions
- */
-proto._positionItem = function( item, x, y, isInstant, i ) {
-  if ( isInstant ) {
-    // if not transition, just set CSS
-    item.goTo( x, y );
-  } else {
-    item.stagger( i * this.stagger );
-    item.moveTo( x, y );
-  }
-};
-
-/**
- * Any logic you want to do after each layout,
- * i.e. size the container
- */
-proto._postLayout = function() {
-  this.resizeContainer();
-};
-
-proto.resizeContainer = function() {
-  var isResizingContainer = this._getOption('resizeContainer');
-  if ( !isResizingContainer ) {
-    return;
-  }
-  var size = this._getContainerSize();
-  if ( size ) {
-    this._setContainerMeasure( size.width, true );
-    this._setContainerMeasure( size.height, false );
-  }
-};
-
-/**
- * Sets width or height of container if returned
- * @returns {Object} size
- *   @param {Number} width
- *   @param {Number} height
- */
-proto._getContainerSize = noop;
-
-/**
- * @param {Number} measure - size of width or height
- * @param {Boolean} isWidth
- */
-proto._setContainerMeasure = function( measure, isWidth ) {
-  if ( measure === undefined ) {
-    return;
-  }
-
-  var elemSize = this.size;
-  // add padding and border width if border box
-  if ( elemSize.isBorderBox ) {
-    measure += isWidth ? elemSize.paddingLeft + elemSize.paddingRight +
-      elemSize.borderLeftWidth + elemSize.borderRightWidth :
-      elemSize.paddingBottom + elemSize.paddingTop +
-      elemSize.borderTopWidth + elemSize.borderBottomWidth;
-  }
-
-  measure = Math.max( measure, 0 );
-  this.element.style[ isWidth ? 'width' : 'height' ] = measure + 'px';
-};
-
-/**
- * emit eventComplete on a collection of items events
- * @param {String} eventName
- * @param {Array} items - Outlayer.Items
- */
-proto._emitCompleteOnItems = function( eventName, items ) {
-  var _this = this;
-  function onComplete() {
-    _this.dispatchEvent( eventName + 'Complete', null, [ items ] );
-  }
-
-  var count = items.length;
-  if ( !items || !count ) {
-    onComplete();
-    return;
-  }
-
-  var doneCount = 0;
-  function tick() {
-    doneCount++;
-    if ( doneCount == count ) {
-      onComplete();
-    }
-  }
-
-  // bind callback
-  items.forEach( function( item ) {
-    item.once( eventName, tick );
-  });
-};
-
-/**
- * emits events via EvEmitter and jQuery events
- * @param {String} type - name of event
- * @param {Event} event - original event
- * @param {Array} args - extra arguments
- */
-proto.dispatchEvent = function( type, event, args ) {
-  // add original event to arguments
-  var emitArgs = event ? [ event ].concat( args ) : args;
-  this.emitEvent( type, emitArgs );
-
-  if ( jQuery ) {
-    // set this.$element
-    this.$element = this.$element || jQuery( this.element );
-    if ( event ) {
-      // create jQuery event
-      var $event = jQuery.Event( event );
-      $event.type = type;
-      this.$element.trigger( $event, args );
-    } else {
-      // just trigger with type if no event available
-      this.$element.trigger( type, args );
-    }
-  }
-};
-
-// -------------------------- ignore & stamps -------------------------- //
-
-
-/**
- * keep item in collection, but do not lay it out
- * ignored items do not get skipped in layout
- * @param {Element} elem
- */
-proto.ignore = function( elem ) {
-  var item = this.getItem( elem );
-  if ( item ) {
-    item.isIgnored = true;
-  }
-};
-
-/**
- * return item to layout collection
- * @param {Element} elem
- */
-proto.unignore = function( elem ) {
-  var item = this.getItem( elem );
-  if ( item ) {
-    delete item.isIgnored;
-  }
-};
-
-/**
- * adds elements to stamps
- * @param {NodeList, Array, Element, or String} elems
- */
-proto.stamp = function( elems ) {
-  elems = this._find( elems );
-  if ( !elems ) {
-    return;
-  }
-
-  this.stamps = this.stamps.concat( elems );
-  // ignore
-  elems.forEach( this.ignore, this );
-};
-
-/**
- * removes elements to stamps
- * @param {NodeList, Array, or Element} elems
- */
-proto.unstamp = function( elems ) {
-  elems = this._find( elems );
-  if ( !elems ){
-    return;
-  }
-
-  elems.forEach( function( elem ) {
-    // filter out removed stamp elements
-    utils.removeFrom( this.stamps, elem );
-    this.unignore( elem );
-  }, this );
-};
-
-/**
- * finds child elements
- * @param {NodeList, Array, Element, or String} elems
- * @returns {Array} elems
- */
-proto._find = function( elems ) {
-  if ( !elems ) {
-    return;
-  }
-  // if string, use argument as selector string
-  if ( typeof elems == 'string' ) {
-    elems = this.element.querySelectorAll( elems );
-  }
-  elems = utils.makeArray( elems );
-  return elems;
-};
-
-proto._manageStamps = function() {
-  if ( !this.stamps || !this.stamps.length ) {
-    return;
-  }
-
-  this._getBoundingRect();
-
-  this.stamps.forEach( this._manageStamp, this );
-};
-
-// update boundingLeft / Top
-proto._getBoundingRect = function() {
-  // get bounding rect for container element
-  var boundingRect = this.element.getBoundingClientRect();
-  var size = this.size;
-  this._boundingRect = {
-    left: boundingRect.left + size.paddingLeft + size.borderLeftWidth,
-    top: boundingRect.top + size.paddingTop + size.borderTopWidth,
-    right: boundingRect.right - ( size.paddingRight + size.borderRightWidth ),
-    bottom: boundingRect.bottom - ( size.paddingBottom + size.borderBottomWidth )
-  };
-};
-
-/**
- * @param {Element} stamp
-**/
-proto._manageStamp = noop;
-
-/**
- * get x/y position of element relative to container element
- * @param {Element} elem
- * @returns {Object} offset - has left, top, right, bottom
- */
-proto._getElementOffset = function( elem ) {
-  var boundingRect = elem.getBoundingClientRect();
-  var thisRect = this._boundingRect;
-  var size = getSize( elem );
-  var offset = {
-    left: boundingRect.left - thisRect.left - size.marginLeft,
-    top: boundingRect.top - thisRect.top - size.marginTop,
-    right: thisRect.right - boundingRect.right - size.marginRight,
-    bottom: thisRect.bottom - boundingRect.bottom - size.marginBottom
-  };
-  return offset;
-};
-
-// -------------------------- resize -------------------------- //
-
-// enable event handlers for listeners
-// i.e. resize -> onresize
-proto.handleEvent = utils.handleEvent;
-
-/**
- * Bind layout to window resizing
- */
-proto.bindResize = function() {
-  window.addEventListener( 'resize', this );
-  this.isResizeBound = true;
-};
-
-/**
- * Unbind layout to window resizing
- */
-proto.unbindResize = function() {
-  window.removeEventListener( 'resize', this );
-  this.isResizeBound = false;
-};
-
-proto.onresize = function() {
-  this.resize();
-};
-
-utils.debounceMethod( Outlayer, 'onresize', 100 );
-
-proto.resize = function() {
-  // don't trigger if size did not change
-  // or if resize was unbound. See #9
-  if ( !this.isResizeBound || !this.needsResizeLayout() ) {
-    return;
-  }
-
-  this.layout();
-};
-
-/**
- * check if layout is needed post layout
- * @returns Boolean
- */
-proto.needsResizeLayout = function() {
-  var size = getSize( this.element );
-  // check that this.size and size are there
-  // IE8 triggers resize on body size change, so they might not be
-  var hasSizes = this.size && size;
-  return hasSizes && size.innerWidth !== this.size.innerWidth;
-};
-
-// -------------------------- methods -------------------------- //
-
-/**
- * add items to Outlayer instance
- * @param {Array or NodeList or Element} elems
- * @returns {Array} items - Outlayer.Items
-**/
-proto.addItems = function( elems ) {
-  var items = this._itemize( elems );
-  // add items to collection
-  if ( items.length ) {
-    this.items = this.items.concat( items );
-  }
-  return items;
-};
-
-/**
- * Layout newly-appended item elements
- * @param {Array or NodeList or Element} elems
- */
-proto.appended = function( elems ) {
-  var items = this.addItems( elems );
-  if ( !items.length ) {
-    return;
-  }
-  // layout and reveal just the new items
-  this.layoutItems( items, true );
-  this.reveal( items );
-};
-
-/**
- * Layout prepended elements
- * @param {Array or NodeList or Element} elems
- */
-proto.prepended = function( elems ) {
-  var items = this._itemize( elems );
-  if ( !items.length ) {
-    return;
-  }
-  // add items to beginning of collection
-  var previousItems = this.items.slice(0);
-  this.items = items.concat( previousItems );
-  // start new layout
-  this._resetLayout();
-  this._manageStamps();
-  // layout new stuff without transition
-  this.layoutItems( items, true );
-  this.reveal( items );
-  // layout previous items
-  this.layoutItems( previousItems );
-};
-
-/**
- * reveal a collection of items
- * @param {Array of Outlayer.Items} items
- */
-proto.reveal = function( items ) {
-  this._emitCompleteOnItems( 'reveal', items );
-  if ( !items || !items.length ) {
-    return;
-  }
-  var stagger = this.updateStagger();
-  items.forEach( function( item, i ) {
-    item.stagger( i * stagger );
-    item.reveal();
-  });
-};
-
-/**
- * hide a collection of items
- * @param {Array of Outlayer.Items} items
- */
-proto.hide = function( items ) {
-  this._emitCompleteOnItems( 'hide', items );
-  if ( !items || !items.length ) {
-    return;
-  }
-  var stagger = this.updateStagger();
-  items.forEach( function( item, i ) {
-    item.stagger( i * stagger );
-    item.hide();
-  });
-};
-
-/**
- * reveal item elements
- * @param {Array}, {Element}, {NodeList} items
- */
-proto.revealItemElements = function( elems ) {
-  var items = this.getItems( elems );
-  this.reveal( items );
-};
-
-/**
- * hide item elements
- * @param {Array}, {Element}, {NodeList} items
- */
-proto.hideItemElements = function( elems ) {
-  var items = this.getItems( elems );
-  this.hide( items );
-};
-
-/**
- * get Outlayer.Item, given an Element
- * @param {Element} elem
- * @param {Function} callback
- * @returns {Outlayer.Item} item
- */
-proto.getItem = function( elem ) {
-  // loop through items to get the one that matches
-  for ( var i=0; i < this.items.length; i++ ) {
-    var item = this.items[i];
-    if ( item.element == elem ) {
-      // return item
-      return item;
-    }
-  }
-};
-
-/**
- * get collection of Outlayer.Items, given Elements
- * @param {Array} elems
- * @returns {Array} items - Outlayer.Items
- */
-proto.getItems = function( elems ) {
-  elems = utils.makeArray( elems );
-  var items = [];
-  elems.forEach( function( elem ) {
-    var item = this.getItem( elem );
-    if ( item ) {
-      items.push( item );
-    }
-  }, this );
-
-  return items;
-};
-
-/**
- * remove element(s) from instance and DOM
- * @param {Array or NodeList or Element} elems
- */
-proto.remove = function( elems ) {
-  var removeItems = this.getItems( elems );
-
-  this._emitCompleteOnItems( 'remove', removeItems );
-
-  // bail if no items to remove
-  if ( !removeItems || !removeItems.length ) {
-    return;
-  }
-
-  removeItems.forEach( function( item ) {
-    item.remove();
-    // remove item from collection
-    utils.removeFrom( this.items, item );
-  }, this );
-};
-
-// ----- destroy ----- //
-
-// remove and disable Outlayer instance
-proto.destroy = function() {
-  // clean up dynamic styles
-  var style = this.element.style;
-  style.height = '';
-  style.position = '';
-  style.width = '';
-  // destroy items
-  this.items.forEach( function( item ) {
-    item.destroy();
-  });
-
-  this.unbindResize();
-
-  var id = this.element.outlayerGUID;
-  delete instances[ id ]; // remove reference to instance by id
-  delete this.element.outlayerGUID;
-  // remove data for jQuery
-  if ( jQuery ) {
-    jQuery.removeData( this.element, this.constructor.namespace );
-  }
-
-};
-
-// -------------------------- data -------------------------- //
-
-/**
- * get Outlayer instance from element
- * @param {Element} elem
- * @returns {Outlayer}
- */
-Outlayer.data = function( elem ) {
-  elem = utils.getQueryElement( elem );
-  var id = elem && elem.outlayerGUID;
-  return id && instances[ id ];
-};
-
-
-// -------------------------- create Outlayer class -------------------------- //
-
-/**
- * create a layout class
- * @param {String} namespace
- */
-Outlayer.create = function( namespace, options ) {
-  // sub-class Outlayer
-  var Layout = subclass( Outlayer );
-  // apply new options and compatOptions
-  Layout.defaults = utils.extend( {}, Outlayer.defaults );
-  utils.extend( Layout.defaults, options );
-  Layout.compatOptions = utils.extend( {}, Outlayer.compatOptions  );
-
-  Layout.namespace = namespace;
-
-  Layout.data = Outlayer.data;
-
-  // sub-class Item
-  Layout.Item = subclass( Item );
-
-  // -------------------------- declarative -------------------------- //
-
-  utils.htmlInit( Layout, namespace );
-
-  // -------------------------- jQuery bridge -------------------------- //
-
-  // make into jQuery plugin
-  if ( jQuery && jQuery.bridget ) {
-    jQuery.bridget( namespace, Layout );
-  }
-
-  return Layout;
-};
-
-function subclass( Parent ) {
-  function SubClass() {
-    Parent.apply( this, arguments );
-  }
-
-  SubClass.prototype = Object.create( Parent.prototype );
-  SubClass.prototype.constructor = SubClass;
-
-  return SubClass;
-}
-
-// ----- helpers ----- //
-
-// how many milliseconds are in each unit
-var msUnits = {
-  ms: 1,
-  s: 1000
-};
-
-// munge time-like parameter into millisecond number
-// '0.4s' -> 40
-function getMilliseconds( time ) {
-  if ( typeof time == 'number' ) {
-    return time;
-  }
-  var matches = time.match( /(^\d*\.?\d*)(\w*)/ );
-  var num = matches && matches[1];
-  var unit = matches && matches[2];
-  if ( !num.length ) {
-    return 0;
-  }
-  num = parseFloat( num );
-  var mult = msUnits[ unit ] || 1;
-  return num * mult;
-}
-
-// ----- fin ----- //
-
-// back in global
-Outlayer.Item = Item;
-
-return Outlayer;
-
-}));
-
-/**
- * Rect
- * low-level utility class for basic geometry
- */
-
-( function( window, factory ) {
-  // universal module definition
-  /* jshint strict: false */ /* globals define, module */
-  if ( typeof define == 'function' && define.amd ) {
-    // AMD
-    define( 'packery/js/rect',factory );
-  } else if ( typeof module == 'object' && module.exports ) {
-    // CommonJS
-    module.exports = factory();
-  } else {
-    // browser global
-    window.Packery = window.Packery || {};
-    window.Packery.Rect = factory();
-  }
-
-}( window, function factory() {
-'use strict';
-
-// -------------------------- Rect -------------------------- //
-
-function Rect( props ) {
-  // extend properties from defaults
-  for ( var prop in Rect.defaults ) {
-    this[ prop ] = Rect.defaults[ prop ];
-  }
-
-  for ( prop in props ) {
-    this[ prop ] = props[ prop ];
-  }
-
-}
-
-Rect.defaults = {
-  x: 0,
-  y: 0,
-  width: 0,
-  height: 0
-};
-
-var proto = Rect.prototype;
-
-/**
- * Determines whether or not this rectangle wholly encloses another rectangle or point.
- * @param {Rect} rect
- * @returns {Boolean}
-**/
-proto.contains = function( rect ) {
-  // points don't have width or height
-  var otherWidth = rect.width || 0;
-  var otherHeight = rect.height || 0;
-  return this.x <= rect.x &&
-    this.y <= rect.y &&
-    this.x + this.width >= rect.x + otherWidth &&
-    this.y + this.height >= rect.y + otherHeight;
-};
-
-/**
- * Determines whether or not the rectangle intersects with another.
- * @param {Rect} rect
- * @returns {Boolean}
-**/
-proto.overlaps = function( rect ) {
-  var thisRight = this.x + this.width;
-  var thisBottom = this.y + this.height;
-  var rectRight = rect.x + rect.width;
-  var rectBottom = rect.y + rect.height;
-
-  // http://stackoverflow.com/a/306332
-  return this.x < rectRight &&
-    thisRight > rect.x &&
-    this.y < rectBottom &&
-    thisBottom > rect.y;
-};
-
-/**
- * @param {Rect} rect - the overlapping rect
- * @returns {Array} freeRects - rects representing the area around the rect
-**/
-proto.getMaximalFreeRects = function( rect ) {
-
-  // if no intersection, return false
-  if ( !this.overlaps( rect ) ) {
-    return false;
-  }
-
-  var freeRects = [];
-  var freeRect;
-
-  var thisRight = this.x + this.width;
-  var thisBottom = this.y + this.height;
-  var rectRight = rect.x + rect.width;
-  var rectBottom = rect.y + rect.height;
-
-  // top
-  if ( this.y < rect.y ) {
-    freeRect = new Rect({
-      x: this.x,
-      y: this.y,
-      width: this.width,
-      height: rect.y - this.y
-    });
-    freeRects.push( freeRect );
-  }
-
-  // right
-  if ( thisRight > rectRight ) {
-    freeRect = new Rect({
-      x: rectRight,
-      y: this.y,
-      width: thisRight - rectRight,
-      height: this.height
-    });
-    freeRects.push( freeRect );
-  }
-
-  // bottom
-  if ( thisBottom > rectBottom ) {
-    freeRect = new Rect({
-      x: this.x,
-      y: rectBottom,
-      width: this.width,
-      height: thisBottom - rectBottom
-    });
-    freeRects.push( freeRect );
-  }
-
-  // left
-  if ( this.x < rect.x ) {
-    freeRect = new Rect({
-      x: this.x,
-      y: this.y,
-      width: rect.x - this.x,
-      height: this.height
-    });
-    freeRects.push( freeRect );
-  }
-
-  return freeRects;
-};
-
-proto.canFit = function( rect ) {
-  return this.width >= rect.width && this.height >= rect.height;
-};
-
-return Rect;
-
-}));
-
-/**
- * Packer
- * bin-packing algorithm
- */
-
-( function( window, factory ) {
-  // universal module definition
-  /* jshint strict: false */ /* globals define, module, require */
-  if ( typeof define == 'function' && define.amd ) {
-    // AMD
-    define( 'packery/js/packer',[ './rect' ], factory );
-  } else if ( typeof module == 'object' && module.exports ) {
-    // CommonJS
-    module.exports = factory(
-      require('./rect')
-    );
-  } else {
-    // browser global
-    var Packery = window.Packery = window.Packery || {};
-    Packery.Packer = factory( Packery.Rect );
-  }
-
-}( window, function factory( Rect ) {
-'use strict';
-
-// -------------------------- Packer -------------------------- //
-
-/**
- * @param {Number} width
- * @param {Number} height
- * @param {String} sortDirection
- *   topLeft for vertical, leftTop for horizontal
- */
-function Packer( width, height, sortDirection ) {
-  this.width = width || 0;
-  this.height = height || 0;
-  this.sortDirection = sortDirection || 'downwardLeftToRight';
-
-  this.reset();
-}
-
-var proto = Packer.prototype;
-
-proto.reset = function() {
-  this.spaces = [];
-
-  var initialSpace = new Rect({
-    x: 0,
-    y: 0,
-    width: this.width,
-    height: this.height
-  });
-
-  this.spaces.push( initialSpace );
-  // set sorter
-  this.sorter = sorters[ this.sortDirection ] || sorters.downwardLeftToRight;
-};
-
-// change x and y of rect to fit with in Packer's available spaces
-proto.pack = function( rect ) {
-  for ( var i=0; i < this.spaces.length; i++ ) {
-    var space = this.spaces[i];
-    if ( space.canFit( rect ) ) {
-      this.placeInSpace( rect, space );
-      break;
-    }
-  }
-};
-
-proto.columnPack = function( rect ) {
-  for ( var i=0; i < this.spaces.length; i++ ) {
-    var space = this.spaces[i];
-    var canFitInSpaceColumn = space.x <= rect.x &&
-      space.x + space.width >= rect.x + rect.width &&
-      space.height >= rect.height - 0.01; // fudge number for rounding error
-    if ( canFitInSpaceColumn ) {
-      rect.y = space.y;
-      this.placed( rect );
-      break;
-    }
-  }
-};
-
-proto.rowPack = function( rect ) {
-  for ( var i=0; i < this.spaces.length; i++ ) {
-    var space = this.spaces[i];
-    var canFitInSpaceRow = space.y <= rect.y &&
-      space.y + space.height >= rect.y + rect.height &&
-      space.width >= rect.width - 0.01; // fudge number for rounding error
-    if ( canFitInSpaceRow ) {
-      rect.x = space.x;
-      this.placed( rect );
-      break;
-    }
-  }
-};
-
-proto.placeInSpace = function( rect, space ) {
-  // place rect in space
-  rect.x = space.x;
-  rect.y = space.y;
-
-  this.placed( rect );
-};
-
-// update spaces with placed rect
-proto.placed = function( rect ) {
-  // update spaces
-  var revisedSpaces = [];
-  for ( var i=0; i < this.spaces.length; i++ ) {
-    var space = this.spaces[i];
-    var newSpaces = space.getMaximalFreeRects( rect );
-    // add either the original space or the new spaces to the revised spaces
-    if ( newSpaces ) {
-      revisedSpaces.push.apply( revisedSpaces, newSpaces );
-    } else {
-      revisedSpaces.push( space );
-    }
-  }
-
-  this.spaces = revisedSpaces;
-
-  this.mergeSortSpaces();
-};
-
-proto.mergeSortSpaces = function() {
-  // remove redundant spaces
-  Packer.mergeRects( this.spaces );
-  this.spaces.sort( this.sorter );
-};
-
-// add a space back
-proto.addSpace = function( rect ) {
-  this.spaces.push( rect );
-  this.mergeSortSpaces();
-};
-
-// -------------------------- utility functions -------------------------- //
-
-/**
- * Remove redundant rectangle from array of rectangles
- * @param {Array} rects: an array of Rects
- * @returns {Array} rects: an array of Rects
-**/
-Packer.mergeRects = function( rects ) {
-  var i = 0;
-  var rect = rects[i];
-
-  rectLoop:
-  while ( rect ) {
-    var j = 0;
-    var compareRect = rects[ i + j ];
-
-    while ( compareRect ) {
-      if  ( compareRect == rect ) {
-        j++; // next
-      } else if ( compareRect.contains( rect ) ) {
-        // remove rect
-        rects.splice( i, 1 );
-        rect = rects[i]; // set next rect
-        continue rectLoop; // bail on compareLoop
-      } else if ( rect.contains( compareRect ) ) {
-        // remove compareRect
-        rects.splice( i + j, 1 );
-      } else {
-        j++;
-      }
-      compareRect = rects[ i + j ]; // set next compareRect
-    }
-    i++;
-    rect = rects[i];
-  }
-
-  return rects;
-};
-
-
-// -------------------------- sorters -------------------------- //
-
-// functions for sorting rects in order
-var sorters = {
-  // top down, then left to right
-  downwardLeftToRight: function( a, b ) {
-    return a.y - b.y || a.x - b.x;
-  },
-  // left to right, then top down
-  rightwardTopToBottom: function( a, b ) {
-    return a.x - b.x || a.y - b.y;
-  }
-};
-
-
-// --------------------------  -------------------------- //
-
-return Packer;
-
-}));
-
-/**
- * Packery Item Element
-**/
-
-( function( window, factory ) {
-  // universal module definition
-  /* jshint strict: false */ /* globals define, module, require */
-  if ( typeof define == 'function' && define.amd ) {
-    // AMD
-    define( 'packery/js/item',[
-        'outlayer/outlayer',
-        './rect'
-      ],
-      factory );
-  } else if ( typeof module == 'object' && module.exports ) {
-    // CommonJS
-    module.exports = factory(
-      require('outlayer'),
-      require('./rect')
-    );
-  } else {
-    // browser global
-    window.Packery.Item = factory(
-      window.Outlayer,
-      window.Packery.Rect
-    );
-  }
-
-}( window, function factory( Outlayer, Rect ) {
-'use strict';
-
-// -------------------------- Item -------------------------- //
-
-var docElemStyle = document.documentElement.style;
-
-var transformProperty = typeof docElemStyle.transform == 'string' ?
-  'transform' : 'WebkitTransform';
-
-// sub-class Item
-var Item = function PackeryItem() {
-  Outlayer.Item.apply( this, arguments );
-};
-
-var proto = Item.prototype = Object.create( Outlayer.Item.prototype );
-
-var __create = proto._create;
-proto._create = function() {
-  // call default _create logic
-  __create.call( this );
-  this.rect = new Rect();
-};
-
-var _moveTo = proto.moveTo;
-proto.moveTo = function( x, y ) {
-  // don't shift 1px while dragging
-  var dx = Math.abs( this.position.x - x );
-  var dy = Math.abs( this.position.y - y );
-
-  var canHackGoTo = this.layout.dragItemCount && !this.isPlacing &&
-    !this.isTransitioning && dx < 1 && dy < 1;
-  if ( canHackGoTo ) {
-    this.goTo( x, y );
-    return;
-  }
-  _moveTo.apply( this, arguments );
-};
-
-// -------------------------- placing -------------------------- //
-
-proto.enablePlacing = function() {
-  this.removeTransitionStyles();
-  // remove transform property from transition
-  if ( this.isTransitioning && transformProperty ) {
-    this.element.style[ transformProperty ] = 'none';
-  }
-  this.isTransitioning = false;
-  this.getSize();
-  this.layout._setRectSize( this.element, this.rect );
-  this.isPlacing = true;
-};
-
-proto.disablePlacing = function() {
-  this.isPlacing = false;
-};
-
-// -----  ----- //
-
-// remove element from DOM
-proto.removeElem = function() {
-  this.element.parentNode.removeChild( this.element );
-  // add space back to packer
-  this.layout.packer.addSpace( this.rect );
-  this.emitEvent( 'remove', [ this ] );
-};
-
-// ----- dropPlaceholder ----- //
-
-proto.showDropPlaceholder = function() {
-  var dropPlaceholder = this.dropPlaceholder;
-  if ( !dropPlaceholder ) {
-    // create dropPlaceholder
-    dropPlaceholder = this.dropPlaceholder = document.createElement('div');
-    dropPlaceholder.className = 'packery-drop-placeholder';
-    dropPlaceholder.style.position = 'absolute';
-  }
-
-  dropPlaceholder.style.width = this.size.width + 'px';
-  dropPlaceholder.style.height = this.size.height + 'px';
-  this.positionDropPlaceholder();
-  this.layout.element.appendChild( dropPlaceholder );
-};
-
-proto.positionDropPlaceholder = function() {
-  this.dropPlaceholder.style[ transformProperty ] = 'translate(' +
-    this.rect.x + 'px, ' + this.rect.y + 'px)';
-};
-
-proto.hideDropPlaceholder = function() {
-  // only remove once, #333
-  var parent = this.dropPlaceholder.parentNode;
-  if ( parent ) {
-    parent.removeChild( this.dropPlaceholder );
-  }
-};
-
-// -----  ----- //
-
-return Item;
-
-}));
-
-/*!
- * Packery v2.1.1
- * Gapless, draggable grid layouts
- *
- * Licensed GPLv3 for open source use
- * or Packery Commercial License for commercial use
- *
- * http://packery.metafizzy.co
- * Copyright 2016 Metafizzy
- */
-
-( function( window, factory ) {
-  // universal module definition
-  /* jshint strict: false */ /* globals define, module, require */
-  if ( typeof define == 'function' && define.amd ) {
-    // AMD
-    define( [
-        'get-size/get-size',
-        'outlayer/outlayer',
-        'packery/js/rect',
-        'packery/js/packer',
-        'packery/js/item'
-      ],
-      factory );
-  } else if ( typeof module == 'object' && module.exports ) {
-    // CommonJS
-    module.exports = factory(
-      require('get-size'),
-      require('outlayer'),
-      require('./rect'),
-      require('./packer'),
-      require('./item')
-    );
-  } else {
-    // browser global
-    window.Packery = factory(
-      window.getSize,
-      window.Outlayer,
-      window.Packery.Rect,
-      window.Packery.Packer,
-      window.Packery.Item
-    );
-  }
-
-}( window, function factory( getSize, Outlayer, Rect, Packer, Item ) {
-'use strict';
-
-// ----- Rect ----- //
-
-// allow for pixel rounding errors IE8-IE11 & Firefox; #227
-Rect.prototype.canFit = function( rect ) {
-  return this.width >= rect.width - 1 && this.height >= rect.height - 1;
-};
-
-// -------------------------- Packery -------------------------- //
-
-// create an Outlayer layout class
-var Packery = Outlayer.create('packery');
-Packery.Item = Item;
-
-var proto = Packery.prototype;
-
-proto._create = function() {
-  // call super
-  Outlayer.prototype._create.call( this );
-
-  // initial properties
-  this.packer = new Packer();
-  // packer for drop targets
-  this.shiftPacker = new Packer();
-  this.isEnabled = true;
-
-  this.dragItemCount = 0;
-
-  // create drag handlers
-  var _this = this;
-  this.handleDraggabilly = {
-    dragStart: function() {
-      _this.itemDragStart( this.element );
-    },
-    dragMove: function() {
-      _this.itemDragMove( this.element, this.position.x, this.position.y );
-    },
-    dragEnd: function() {
-      _this.itemDragEnd( this.element );
-    }
-  };
-
-  this.handleUIDraggable = {
-    start: function handleUIDraggableStart( event, ui ) {
-      // HTML5 may trigger dragstart, dismiss HTML5 dragging
-      if ( !ui ) {
-        return;
-      }
-      _this.itemDragStart( event.currentTarget );
-    },
-    drag: function handleUIDraggableDrag( event, ui ) {
-      if ( !ui ) {
-        return;
-      }
-      _this.itemDragMove( event.currentTarget, ui.position.left, ui.position.top );
-    },
-    stop: function handleUIDraggableStop( event, ui ) {
-      if ( !ui ) {
-        return;
-      }
-      _this.itemDragEnd( event.currentTarget );
-    }
-  };
-
-};
-
-
-// ----- init & layout ----- //
-
-/**
- * logic before any new layout
- */
-proto._resetLayout = function() {
-  this.getSize();
-
-  this._getMeasurements();
-
-  // reset packer
-  var width, height, sortDirection;
-  // packer settings, if horizontal or vertical
-  if ( this._getOption('horizontal') ) {
-    width = Infinity;
-    height = this.size.innerHeight + this.gutter;
-    sortDirection = 'rightwardTopToBottom';
-  } else {
-    width = this.size.innerWidth + this.gutter;
-    height = Infinity;
-    sortDirection = 'downwardLeftToRight';
-  }
-
-  this.packer.width = this.shiftPacker.width = width;
-  this.packer.height = this.shiftPacker.height = height;
-  this.packer.sortDirection = this.shiftPacker.sortDirection = sortDirection;
-
-  this.packer.reset();
-
-  // layout
-  this.maxY = 0;
-  this.maxX = 0;
-};
-
-/**
- * update columnWidth, rowHeight, & gutter
- * @private
- */
-proto._getMeasurements = function() {
-  this._getMeasurement( 'columnWidth', 'width' );
-  this._getMeasurement( 'rowHeight', 'height' );
-  this._getMeasurement( 'gutter', 'width' );
-};
-
-proto._getItemLayoutPosition = function( item ) {
-  this._setRectSize( item.element, item.rect );
-  if ( this.isShifting || this.dragItemCount > 0 ) {
-    var packMethod = this._getPackMethod();
-    this.packer[ packMethod ]( item.rect );
-  } else {
-    this.packer.pack( item.rect );
-  }
-
-  this._setMaxXY( item.rect );
-  return item.rect;
-};
-
-proto.shiftLayout = function() {
-  this.isShifting = true;
-  this.layout();
-  delete this.isShifting;
-};
-
-proto._getPackMethod = function() {
-  return this._getOption('horizontal') ? 'rowPack' : 'columnPack';
-};
-
-
-/**
- * set max X and Y value, for size of container
- * @param {Packery.Rect} rect
- * @private
- */
-proto._setMaxXY = function( rect ) {
-  this.maxX = Math.max( rect.x + rect.width, this.maxX );
-  this.maxY = Math.max( rect.y + rect.height, this.maxY );
-};
-
-/**
- * set the width and height of a rect, applying columnWidth and rowHeight
- * @param {Element} elem
- * @param {Packery.Rect} rect
- */
-proto._setRectSize = function( elem, rect ) {
-  var size = getSize( elem );
-  var w = size.outerWidth;
-  var h = size.outerHeight;
-  // size for columnWidth and rowHeight, if available
-  // only check if size is non-zero, #177
-  if ( w || h ) {
-    w = this._applyGridGutter( w, this.columnWidth );
-    h = this._applyGridGutter( h, this.rowHeight );
-  }
-  // rect must fit in packer
-  rect.width = Math.min( w, this.packer.width );
-  rect.height = Math.min( h, this.packer.height );
-};
-
-/**
- * fits item to columnWidth/rowHeight and adds gutter
- * @param {Number} measurement - item width or height
- * @param {Number} gridSize - columnWidth or rowHeight
- * @returns measurement
- */
-proto._applyGridGutter = function( measurement, gridSize ) {
-  // just add gutter if no gridSize
-  if ( !gridSize ) {
-    return measurement + this.gutter;
-  }
-  gridSize += this.gutter;
-  // fit item to columnWidth/rowHeight
-  var remainder = measurement % gridSize;
-  var mathMethod = remainder && remainder < 1 ? 'round' : 'ceil';
-  measurement = Math[ mathMethod ]( measurement / gridSize ) * gridSize;
-  return measurement;
-};
-
-proto._getContainerSize = function() {
-  if ( this._getOption('horizontal') ) {
-    return {
-      width: this.maxX - this.gutter
-    };
-  } else {
-    return {
-      height: this.maxY - this.gutter
-    };
-  }
-};
-
-
-// -------------------------- stamp -------------------------- //
-
-/**
- * makes space for element
- * @param {Element} elem
- */
-proto._manageStamp = function( elem ) {
-
-  var item = this.getItem( elem );
-  var rect;
-  if ( item && item.isPlacing ) {
-    rect = item.rect;
-  } else {
-    var offset = this._getElementOffset( elem );
-    rect = new Rect({
-      x: this._getOption('originLeft') ? offset.left : offset.right,
-      y: this._getOption('originTop') ? offset.top : offset.bottom
-    });
-  }
-
-  this._setRectSize( elem, rect );
-  // save its space in the packer
-  this.packer.placed( rect );
-  this._setMaxXY( rect );
-};
-
-// -------------------------- methods -------------------------- //
-
-function verticalSorter( a, b ) {
-  return a.position.y - b.position.y || a.position.x - b.position.x;
-}
-
-function horizontalSorter( a, b ) {
-  return a.position.x - b.position.x || a.position.y - b.position.y;
-}
-
-proto.sortItemsByPosition = function() {
-  var sorter = this._getOption('horizontal') ? horizontalSorter : verticalSorter;
-  this.items.sort( sorter );
-};
-
-/**
- * Fit item element in its current position
- * Packery will position elements around it
- * useful for expanding elements
- *
- * @param {Element} elem
- * @param {Number} x - horizontal destination position, optional
- * @param {Number} y - vertical destination position, optional
- */
-proto.fit = function( elem, x, y ) {
-  var item = this.getItem( elem );
-  if ( !item ) {
-    return;
-  }
-
-  // stamp item to get it out of layout
-  this.stamp( item.element );
-  // set placing flag
-  item.enablePlacing();
-  this.updateShiftTargets( item );
-  // fall back to current position for fitting
-  x = x === undefined ? item.rect.x: x;
-  y = y === undefined ? item.rect.y: y;
-  // position it best at its destination
-  this.shift( item, x, y );
-  this._bindFitEvents( item );
-  item.moveTo( item.rect.x, item.rect.y );
-  // layout everything else
-  this.shiftLayout();
-  // return back to regularly scheduled programming
-  this.unstamp( item.element );
-  this.sortItemsByPosition();
-  item.disablePlacing();
-};
-
-/**
- * emit event when item is fit and other items are laid out
- * @param {Packery.Item} item
- * @private
- */
-proto._bindFitEvents = function( item ) {
-  var _this = this;
-  var ticks = 0;
-  function onLayout() {
-    ticks++;
-    if ( ticks != 2 ) {
-      return;
-    }
-    _this.dispatchEvent( 'fitComplete', null, [ item ] );
-  }
-  // when item is laid out
-  item.once( 'layout', onLayout );
-  // when all items are laid out
-  this.once( 'layoutComplete', onLayout );
-};
-
-// -------------------------- resize -------------------------- //
-
-// debounced, layout on resize
-proto.resize = function() {
-  // don't trigger if size did not change
-  // or if resize was unbound. See #285, outlayer#9
-  if ( !this.isResizeBound || !this.needsResizeLayout() ) {
-    return;
-  }
-
-  if ( this.options.shiftPercentResize ) {
-    this.resizeShiftPercentLayout();
-  } else {
-    this.layout();
-  }
-};
-
-/**
- * check if layout is needed post layout
- * @returns Boolean
- */
-proto.needsResizeLayout = function() {
-  var size = getSize( this.element );
-  var innerSize = this._getOption('horizontal') ? 'innerHeight' : 'innerWidth';
-  return size[ innerSize ] != this.size[ innerSize ];
-};
-
-proto.resizeShiftPercentLayout = function() {
-  var items = this._getItemsForLayout( this.items );
-
-  var isHorizontal = this._getOption('horizontal');
-  var coord = isHorizontal ? 'y' : 'x';
-  var measure = isHorizontal ? 'height' : 'width';
-  var segmentName = isHorizontal ? 'rowHeight' : 'columnWidth';
-  var innerSize = isHorizontal ? 'innerHeight' : 'innerWidth';
-
-  // proportional re-align items
-  var previousSegment = this[ segmentName ];
-  previousSegment = previousSegment && previousSegment + this.gutter;
-
-  if ( previousSegment ) {
-    this._getMeasurements();
-    var currentSegment = this[ segmentName ] + this.gutter;
-    items.forEach( function( item ) {
-      var seg = Math.round( item.rect[ coord ] / previousSegment );
-      item.rect[ coord ] = seg * currentSegment;
-    });
-  } else {
-    var currentSize = getSize( this.element )[ innerSize ] + this.gutter;
-    var previousSize = this.packer[ measure ];
-    items.forEach( function( item ) {
-      item.rect[ coord ] = ( item.rect[ coord ] / previousSize ) * currentSize;
-    });
-  }
-
-  this.shiftLayout();
-};
-
-// -------------------------- drag -------------------------- //
-
-/**
- * handle an item drag start event
- * @param {Element} elem
- */
-proto.itemDragStart = function( elem ) {
-  if ( !this.isEnabled ) {
-    return;
-  }
-  this.stamp( elem );
-  // this.ignore( elem );
-  var item = this.getItem( elem );
-  if ( !item ) {
-    return;
-  }
-
-  item.enablePlacing();
-  item.showDropPlaceholder();
-  this.dragItemCount++;
-  this.updateShiftTargets( item );
-};
-
-proto.updateShiftTargets = function( dropItem ) {
-  this.shiftPacker.reset();
-
-  // pack stamps
-  this._getBoundingRect();
-  var isOriginLeft = this._getOption('originLeft');
-  var isOriginTop = this._getOption('originTop');
-  this.stamps.forEach( function( stamp ) {
-    // ignore dragged item
-    var item = this.getItem( stamp );
-    if ( item && item.isPlacing ) {
-      return;
-    }
-    var offset = this._getElementOffset( stamp );
-    var rect = new Rect({
-      x: isOriginLeft ? offset.left : offset.right,
-      y: isOriginTop ? offset.top : offset.bottom
-    });
-    this._setRectSize( stamp, rect );
-    // save its space in the packer
-    this.shiftPacker.placed( rect );
-  }, this );
-
-  // reset shiftTargets
-  var isHorizontal = this._getOption('horizontal');
-  var segmentName = isHorizontal ? 'rowHeight' : 'columnWidth';
-  var measure = isHorizontal ? 'height' : 'width';
-
-  this.shiftTargetKeys = [];
-  this.shiftTargets = [];
-  var boundsSize;
-  var segment = this[ segmentName ];
-  segment = segment && segment + this.gutter;
-
-  if ( segment ) {
-    var segmentSpan = Math.ceil( dropItem.rect[ measure ] / segment );
-    var segs = Math.floor( ( this.shiftPacker[ measure ] + this.gutter ) / segment );
-    boundsSize = ( segs - segmentSpan ) * segment;
-    // add targets on top
-    for ( var i=0; i < segs; i++ ) {
-      var initialX = isHorizontal ? 0 : i * segment;
-      var initialY = isHorizontal ? i * segment : 0;
-      this._addShiftTarget( initialX, initialY, boundsSize );
-    }
-  } else {
-    boundsSize = ( this.shiftPacker[ measure ] + this.gutter ) - dropItem.rect[ measure ];
-    this._addShiftTarget( 0, 0, boundsSize );
-  }
-
-  // pack each item to measure where shiftTargets are
-  var items = this._getItemsForLayout( this.items );
-  var packMethod = this._getPackMethod();
-  items.forEach( function( item ) {
-    var rect = item.rect;
-    this._setRectSize( item.element, rect );
-    this.shiftPacker[ packMethod ]( rect );
-
-    // add top left corner
-    this._addShiftTarget( rect.x, rect.y, boundsSize );
-    // add bottom left / top right corner
-    var cornerX = isHorizontal ? rect.x + rect.width : rect.x;
-    var cornerY = isHorizontal ? rect.y : rect.y + rect.height;
-    this._addShiftTarget( cornerX, cornerY, boundsSize );
-
-    if ( segment ) {
-      // add targets for each column on bottom / row on right
-      var segSpan = Math.round( rect[ measure ] / segment );
-      for ( var i=1; i < segSpan; i++ ) {
-        var segX = isHorizontal ? cornerX : rect.x + segment * i;
-        var segY = isHorizontal ? rect.y + segment * i : cornerY;
-        this._addShiftTarget( segX, segY, boundsSize );
-      }
-    }
-  }, this );
-
-};
-
-proto._addShiftTarget = function( x, y, boundsSize ) {
-  var checkCoord = this._getOption('horizontal') ? y : x;
-  if ( checkCoord !== 0 && checkCoord > boundsSize ) {
-    return;
-  }
-  // create string for a key, easier to keep track of what targets
-  var key = x + ',' + y;
-  var hasKey = this.shiftTargetKeys.indexOf( key ) != -1;
-  if ( hasKey ) {
-    return;
-  }
-  this.shiftTargetKeys.push( key );
-  this.shiftTargets.push({ x: x, y: y });
-};
-
-// -------------------------- drop -------------------------- //
-
-proto.shift = function( item, x, y ) {
-  var shiftPosition;
-  var minDistance = Infinity;
-  var position = { x: x, y: y };
-  this.shiftTargets.forEach( function( target ) {
-    var distance = getDistance( target, position );
-    if ( distance < minDistance ) {
-      shiftPosition = target;
-      minDistance = distance;
-    }
-  });
-  item.rect.x = shiftPosition.x;
-  item.rect.y = shiftPosition.y;
-};
-
-function getDistance( a, b ) {
-  var dx = b.x - a.x;
-  var dy = b.y - a.y;
-  return Math.sqrt( dx * dx + dy * dy );
-}
-
-// -------------------------- drag move -------------------------- //
-
-var DRAG_THROTTLE_TIME = 120;
-
-/**
- * handle an item drag move event
- * @param {Element} elem
- * @param {Number} x - horizontal change in position
- * @param {Number} y - vertical change in position
- */
-proto.itemDragMove = function( elem, x, y ) {
-  var item = this.isEnabled && this.getItem( elem );
-  if ( !item ) {
-    return;
-  }
-
-  x -= this.size.paddingLeft;
-  y -= this.size.paddingTop;
-
-  var _this = this;
-  function onDrag() {
-    _this.shift( item, x, y );
-    item.positionDropPlaceholder();
-    _this.layout();
-  }
-
-  // throttle
-  var now = new Date();
-  if ( this._itemDragTime && now - this._itemDragTime < DRAG_THROTTLE_TIME ) {
-    clearTimeout( this.dragTimeout );
-    this.dragTimeout = setTimeout( onDrag, DRAG_THROTTLE_TIME );
-  } else {
-    onDrag();
-    this._itemDragTime = now;
-  }
-};
-
-// -------------------------- drag end -------------------------- //
-
-/**
- * handle an item drag end event
- * @param {Element} elem
- */
-proto.itemDragEnd = function( elem ) {
-  var item = this.isEnabled && this.getItem( elem );
-  if ( !item ) {
-    return;
-  }
-
-  clearTimeout( this.dragTimeout );
-  item.element.classList.add('is-positioning-post-drag');
-
-  var completeCount = 0;
-  var _this = this;
-  function onDragEndLayoutComplete() {
-    completeCount++;
-    if ( completeCount != 2 ) {
-      return;
-    }
-    // reset drag item
-    item.element.classList.remove('is-positioning-post-drag');
-    item.hideDropPlaceholder();
-    _this.dispatchEvent( 'dragItemPositioned', null, [ item ] );
-  }
-
-  item.once( 'layout', onDragEndLayoutComplete );
-  this.once( 'layoutComplete', onDragEndLayoutComplete );
-  item.moveTo( item.rect.x, item.rect.y );
-  this.layout();
-  this.dragItemCount = Math.max( 0, this.dragItemCount - 1 );
-  this.sortItemsByPosition();
-  item.disablePlacing();
-  this.unstamp( item.element );
-};
-
-/**
- * binds Draggabilly events
- * @param {Draggabilly} draggie
- */
-proto.bindDraggabillyEvents = function( draggie ) {
-  this._bindDraggabillyEvents( draggie, 'on' );
-};
-
-proto.unbindDraggabillyEvents = function( draggie ) {
-  this._bindDraggabillyEvents( draggie, 'off' );
-};
-
-proto._bindDraggabillyEvents = function( draggie, method ) {
-  var handlers = this.handleDraggabilly;
-  draggie[ method ]( 'dragStart', handlers.dragStart );
-  draggie[ method ]( 'dragMove', handlers.dragMove );
-  draggie[ method ]( 'dragEnd', handlers.dragEnd );
-};
-
-/**
- * binds jQuery UI Draggable events
- * @param {jQuery} $elems
- */
-proto.bindUIDraggableEvents = function( $elems ) {
-  this._bindUIDraggableEvents( $elems, 'on' );
-};
-
-proto.unbindUIDraggableEvents = function( $elems ) {
-  this._bindUIDraggableEvents( $elems, 'off' );
-};
-
-proto._bindUIDraggableEvents = function( $elems, method ) {
-  var handlers = this.handleUIDraggable;
-  $elems
-    [ method ]( 'dragstart', handlers.start )
-    [ method ]( 'drag', handlers.drag )
-    [ method ]( 'dragstop', handlers.stop );
-};
-
-// ----- destroy ----- //
-
-var _destroy = proto.destroy;
-proto.destroy = function() {
-  _destroy.apply( this, arguments );
-  // disable flag; prevent drag events from triggering. #72
-  this.isEnabled = false;
-};
-
-// -----  ----- //
-
-Packery.Rect = Rect;
-Packery.Packer = Packer;
-
-return Packery;
-
-}));
-
diff --git a/javascript/packery.pkgd.min.js b/javascript/packery.pkgd.min.js
deleted file mode 100644
index 6b6207582c59faba3015aebecdd1ca974a3251dc..0000000000000000000000000000000000000000
--- a/javascript/packery.pkgd.min.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/*!
- * Packery PACKAGED v2.1.1
- * Gapless, draggable grid layouts
- *
- * Licensed GPLv3 for open source use
- * or Packery Commercial License for commercial use
- *
- * http://packery.metafizzy.co
- * Copyright 2016 Metafizzy
- */
-
-!function(t,e){"use strict";"function"==typeof define&&define.amd?define("jquery-bridget/jquery-bridget",["jquery"],function(i){e(t,i)}):"object"==typeof module&&module.exports?module.exports=e(t,require("jquery")):t.jQueryBridget=e(t,t.jQuery)}(window,function(t,e){"use strict";function i(i,s,a){function h(t,e,n){var o,s="$()."+i+'("'+e+'")';return t.each(function(t,h){var u=a.data(h,i);if(!u)return void r(i+" not initialized. Cannot call methods, i.e. "+s);var c=u[e];if(!c||"_"==e.charAt(0))return void r(s+" is not a valid method");var d=c.apply(u,n);o=void 0===o?d:o}),void 0!==o?o:t}function u(t,e){t.each(function(t,n){var o=a.data(n,i);o?(o.option(e),o._init()):(o=new s(n,e),a.data(n,i,o))})}a=a||e||t.jQuery,a&&(s.prototype.option||(s.prototype.option=function(t){a.isPlainObject(t)&&(this.options=a.extend(!0,this.options,t))}),a.fn[i]=function(t){if("string"==typeof t){var e=o.call(arguments,1);return h(this,t,e)}return u(this,t),this},n(a))}function n(t){!t||t&&t.bridget||(t.bridget=i)}var o=Array.prototype.slice,s=t.console,r="undefined"==typeof s?function(){}:function(t){s.error(t)};return n(e||t.jQuery),i}),function(t,e){"use strict";"function"==typeof define&&define.amd?define("get-size/get-size",[],function(){return e()}):"object"==typeof module&&module.exports?module.exports=e():t.getSize=e()}(window,function(){"use strict";function t(t){var e=parseFloat(t),i=-1==t.indexOf("%")&&!isNaN(e);return i&&e}function e(){}function i(){for(var t={width:0,height:0,innerWidth:0,innerHeight:0,outerWidth:0,outerHeight:0},e=0;u>e;e++){var i=h[e];t[i]=0}return t}function n(t){var e=getComputedStyle(t);return e||a("Style returned "+e+". Are you running this code in a hidden iframe on Firefox? See http://bit.ly/getsizebug1"),e}function o(){if(!c){c=!0;var e=document.createElement("div");e.style.width="200px",e.style.padding="1px 2px 3px 4px",e.style.borderStyle="solid",e.style.borderWidth="1px 2px 3px 4px",e.style.boxSizing="border-box";var i=document.body||document.documentElement;i.appendChild(e);var o=n(e);s.isBoxSizeOuter=r=200==t(o.width),i.removeChild(e)}}function s(e){if(o(),"string"==typeof e&&(e=document.querySelector(e)),e&&"object"==typeof e&&e.nodeType){var s=n(e);if("none"==s.display)return i();var a={};a.width=e.offsetWidth,a.height=e.offsetHeight;for(var c=a.isBorderBox="border-box"==s.boxSizing,d=0;u>d;d++){var f=h[d],l=s[f],p=parseFloat(l);a[f]=isNaN(p)?0:p}var g=a.paddingLeft+a.paddingRight,m=a.paddingTop+a.paddingBottom,y=a.marginLeft+a.marginRight,v=a.marginTop+a.marginBottom,_=a.borderLeftWidth+a.borderRightWidth,x=a.borderTopWidth+a.borderBottomWidth,b=c&&r,E=t(s.width);E!==!1&&(a.width=E+(b?0:g+_));var T=t(s.height);return T!==!1&&(a.height=T+(b?0:m+x)),a.innerWidth=a.width-(g+_),a.innerHeight=a.height-(m+x),a.outerWidth=a.width+y,a.outerHeight=a.height+v,a}}var r,a="undefined"==typeof console?e:function(t){console.error(t)},h=["paddingLeft","paddingRight","paddingTop","paddingBottom","marginLeft","marginRight","marginTop","marginBottom","borderLeftWidth","borderRightWidth","borderTopWidth","borderBottomWidth"],u=h.length,c=!1;return s}),function(t,e){"function"==typeof define&&define.amd?define("ev-emitter/ev-emitter",e):"object"==typeof module&&module.exports?module.exports=e():t.EvEmitter=e()}(this,function(){function t(){}var e=t.prototype;return e.on=function(t,e){if(t&&e){var i=this._events=this._events||{},n=i[t]=i[t]||[];return-1==n.indexOf(e)&&n.push(e),this}},e.once=function(t,e){if(t&&e){this.on(t,e);var i=this._onceEvents=this._onceEvents||{},n=i[t]=i[t]||{};return n[e]=!0,this}},e.off=function(t,e){var i=this._events&&this._events[t];if(i&&i.length){var n=i.indexOf(e);return-1!=n&&i.splice(n,1),this}},e.emitEvent=function(t,e){var i=this._events&&this._events[t];if(i&&i.length){var n=0,o=i[n];e=e||[];for(var s=this._onceEvents&&this._onceEvents[t];o;){var r=s&&s[o];r&&(this.off(t,o),delete s[o]),o.apply(this,e),n+=r?0:1,o=i[n]}return this}},t}),function(t,e){"use strict";"function"==typeof define&&define.amd?define("desandro-matches-selector/matches-selector",e):"object"==typeof module&&module.exports?module.exports=e():t.matchesSelector=e()}(window,function(){"use strict";var t=function(){var t=Element.prototype;if(t.matches)return"matches";if(t.matchesSelector)return"matchesSelector";for(var e=["webkit","moz","ms","o"],i=0;i<e.length;i++){var n=e[i],o=n+"MatchesSelector";if(t[o])return o}}();return function(e,i){return e[t](i)}}),function(t,e){"function"==typeof define&&define.amd?define("fizzy-ui-utils/utils",["desandro-matches-selector/matches-selector"],function(i){return e(t,i)}):"object"==typeof module&&module.exports?module.exports=e(t,require("desandro-matches-selector")):t.fizzyUIUtils=e(t,t.matchesSelector)}(window,function(t,e){var i={};i.extend=function(t,e){for(var i in e)t[i]=e[i];return t},i.modulo=function(t,e){return(t%e+e)%e},i.makeArray=function(t){var e=[];if(Array.isArray(t))e=t;else if(t&&"number"==typeof t.length)for(var i=0;i<t.length;i++)e.push(t[i]);else e.push(t);return e},i.removeFrom=function(t,e){var i=t.indexOf(e);-1!=i&&t.splice(i,1)},i.getParent=function(t,i){for(;t!=document.body;)if(t=t.parentNode,e(t,i))return t},i.getQueryElement=function(t){return"string"==typeof t?document.querySelector(t):t},i.handleEvent=function(t){var e="on"+t.type;this[e]&&this[e](t)},i.filterFindElements=function(t,n){t=i.makeArray(t);var o=[];return t.forEach(function(t){if(t instanceof HTMLElement){if(!n)return void o.push(t);e(t,n)&&o.push(t);for(var i=t.querySelectorAll(n),s=0;s<i.length;s++)o.push(i[s])}}),o},i.debounceMethod=function(t,e,i){var n=t.prototype[e],o=e+"Timeout";t.prototype[e]=function(){var t=this[o];t&&clearTimeout(t);var e=arguments,s=this;this[o]=setTimeout(function(){n.apply(s,e),delete s[o]},i||100)}},i.docReady=function(t){"complete"==document.readyState?t():document.addEventListener("DOMContentLoaded",t)},i.toDashed=function(t){return t.replace(/(.)([A-Z])/g,function(t,e,i){return e+"-"+i}).toLowerCase()};var n=t.console;return i.htmlInit=function(e,o){i.docReady(function(){var s=i.toDashed(o),r="data-"+s,a=document.querySelectorAll("["+r+"]"),h=document.querySelectorAll(".js-"+s),u=i.makeArray(a).concat(i.makeArray(h)),c=r+"-options",d=t.jQuery;u.forEach(function(t){var i,s=t.getAttribute(r)||t.getAttribute(c);try{i=s&&JSON.parse(s)}catch(a){return void(n&&n.error("Error parsing "+r+" on "+t.className+": "+a))}var h=new e(t,i);d&&d.data(t,o,h)})})},i}),function(t,e){"function"==typeof define&&define.amd?define("outlayer/item",["ev-emitter/ev-emitter","get-size/get-size"],e):"object"==typeof module&&module.exports?module.exports=e(require("ev-emitter"),require("get-size")):(t.Outlayer={},t.Outlayer.Item=e(t.EvEmitter,t.getSize))}(window,function(t,e){"use strict";function i(t){for(var e in t)return!1;return e=null,!0}function n(t,e){t&&(this.element=t,this.layout=e,this.position={x:0,y:0},this._create())}function o(t){return t.replace(/([A-Z])/g,function(t){return"-"+t.toLowerCase()})}var s=document.documentElement.style,r="string"==typeof s.transition?"transition":"WebkitTransition",a="string"==typeof s.transform?"transform":"WebkitTransform",h={WebkitTransition:"webkitTransitionEnd",transition:"transitionend"}[r],u={transform:a,transition:r,transitionDuration:r+"Duration",transitionProperty:r+"Property",transitionDelay:r+"Delay"},c=n.prototype=Object.create(t.prototype);c.constructor=n,c._create=function(){this._transn={ingProperties:{},clean:{},onEnd:{}},this.css({position:"absolute"})},c.handleEvent=function(t){var e="on"+t.type;this[e]&&this[e](t)},c.getSize=function(){this.size=e(this.element)},c.css=function(t){var e=this.element.style;for(var i in t){var n=u[i]||i;e[n]=t[i]}},c.getPosition=function(){var t=getComputedStyle(this.element),e=this.layout._getOption("originLeft"),i=this.layout._getOption("originTop"),n=t[e?"left":"right"],o=t[i?"top":"bottom"],s=this.layout.size,r=-1!=n.indexOf("%")?parseFloat(n)/100*s.width:parseInt(n,10),a=-1!=o.indexOf("%")?parseFloat(o)/100*s.height:parseInt(o,10);r=isNaN(r)?0:r,a=isNaN(a)?0:a,r-=e?s.paddingLeft:s.paddingRight,a-=i?s.paddingTop:s.paddingBottom,this.position.x=r,this.position.y=a},c.layoutPosition=function(){var t=this.layout.size,e={},i=this.layout._getOption("originLeft"),n=this.layout._getOption("originTop"),o=i?"paddingLeft":"paddingRight",s=i?"left":"right",r=i?"right":"left",a=this.position.x+t[o];e[s]=this.getXValue(a),e[r]="";var h=n?"paddingTop":"paddingBottom",u=n?"top":"bottom",c=n?"bottom":"top",d=this.position.y+t[h];e[u]=this.getYValue(d),e[c]="",this.css(e),this.emitEvent("layout",[this])},c.getXValue=function(t){var e=this.layout._getOption("horizontal");return this.layout.options.percentPosition&&!e?t/this.layout.size.width*100+"%":t+"px"},c.getYValue=function(t){var e=this.layout._getOption("horizontal");return this.layout.options.percentPosition&&e?t/this.layout.size.height*100+"%":t+"px"},c._transitionTo=function(t,e){this.getPosition();var i=this.position.x,n=this.position.y,o=parseInt(t,10),s=parseInt(e,10),r=o===this.position.x&&s===this.position.y;if(this.setPosition(t,e),r&&!this.isTransitioning)return void this.layoutPosition();var a=t-i,h=e-n,u={};u.transform=this.getTranslate(a,h),this.transition({to:u,onTransitionEnd:{transform:this.layoutPosition},isCleaning:!0})},c.getTranslate=function(t,e){var i=this.layout._getOption("originLeft"),n=this.layout._getOption("originTop");return t=i?t:-t,e=n?e:-e,"translate3d("+t+"px, "+e+"px, 0)"},c.goTo=function(t,e){this.setPosition(t,e),this.layoutPosition()},c.moveTo=c._transitionTo,c.setPosition=function(t,e){this.position.x=parseInt(t,10),this.position.y=parseInt(e,10)},c._nonTransition=function(t){this.css(t.to),t.isCleaning&&this._removeStyles(t.to);for(var e in t.onTransitionEnd)t.onTransitionEnd[e].call(this)},c.transition=function(t){if(!parseFloat(this.layout.options.transitionDuration))return void this._nonTransition(t);var e=this._transn;for(var i in t.onTransitionEnd)e.onEnd[i]=t.onTransitionEnd[i];for(i in t.to)e.ingProperties[i]=!0,t.isCleaning&&(e.clean[i]=!0);if(t.from){this.css(t.from);var n=this.element.offsetHeight;n=null}this.enableTransition(t.to),this.css(t.to),this.isTransitioning=!0};var d="opacity,"+o(a);c.enableTransition=function(){if(!this.isTransitioning){var t=this.layout.options.transitionDuration;t="number"==typeof t?t+"ms":t,this.css({transitionProperty:d,transitionDuration:t,transitionDelay:this.staggerDelay||0}),this.element.addEventListener(h,this,!1)}},c.onwebkitTransitionEnd=function(t){this.ontransitionend(t)},c.onotransitionend=function(t){this.ontransitionend(t)};var f={"-webkit-transform":"transform"};c.ontransitionend=function(t){if(t.target===this.element){var e=this._transn,n=f[t.propertyName]||t.propertyName;if(delete e.ingProperties[n],i(e.ingProperties)&&this.disableTransition(),n in e.clean&&(this.element.style[t.propertyName]="",delete e.clean[n]),n in e.onEnd){var o=e.onEnd[n];o.call(this),delete e.onEnd[n]}this.emitEvent("transitionEnd",[this])}},c.disableTransition=function(){this.removeTransitionStyles(),this.element.removeEventListener(h,this,!1),this.isTransitioning=!1},c._removeStyles=function(t){var e={};for(var i in t)e[i]="";this.css(e)};var l={transitionProperty:"",transitionDuration:"",transitionDelay:""};return c.removeTransitionStyles=function(){this.css(l)},c.stagger=function(t){t=isNaN(t)?0:t,this.staggerDelay=t+"ms"},c.removeElem=function(){this.element.parentNode.removeChild(this.element),this.css({display:""}),this.emitEvent("remove",[this])},c.remove=function(){return r&&parseFloat(this.layout.options.transitionDuration)?(this.once("transitionEnd",function(){this.removeElem()}),void this.hide()):void this.removeElem()},c.reveal=function(){delete this.isHidden,this.css({display:""});var t=this.layout.options,e={},i=this.getHideRevealTransitionEndProperty("visibleStyle");e[i]=this.onRevealTransitionEnd,this.transition({from:t.hiddenStyle,to:t.visibleStyle,isCleaning:!0,onTransitionEnd:e})},c.onRevealTransitionEnd=function(){this.isHidden||this.emitEvent("reveal")},c.getHideRevealTransitionEndProperty=function(t){var e=this.layout.options[t];if(e.opacity)return"opacity";for(var i in e)return i},c.hide=function(){this.isHidden=!0,this.css({display:""});var t=this.layout.options,e={},i=this.getHideRevealTransitionEndProperty("hiddenStyle");e[i]=this.onHideTransitionEnd,this.transition({from:t.visibleStyle,to:t.hiddenStyle,isCleaning:!0,onTransitionEnd:e})},c.onHideTransitionEnd=function(){this.isHidden&&(this.css({display:"none"}),this.emitEvent("hide"))},c.destroy=function(){this.css({position:"",left:"",right:"",top:"",bottom:"",transition:"",transform:""})},n}),function(t,e){"use strict";"function"==typeof define&&define.amd?define("outlayer/outlayer",["ev-emitter/ev-emitter","get-size/get-size","fizzy-ui-utils/utils","./item"],function(i,n,o,s){return e(t,i,n,o,s)}):"object"==typeof module&&module.exports?module.exports=e(t,require("ev-emitter"),require("get-size"),require("fizzy-ui-utils"),require("./item")):t.Outlayer=e(t,t.EvEmitter,t.getSize,t.fizzyUIUtils,t.Outlayer.Item)}(window,function(t,e,i,n,o){"use strict";function s(t,e){var i=n.getQueryElement(t);if(!i)return void(h&&h.error("Bad element for "+this.constructor.namespace+": "+(i||t)));this.element=i,u&&(this.$element=u(this.element)),this.options=n.extend({},this.constructor.defaults),this.option(e);var o=++d;this.element.outlayerGUID=o,f[o]=this,this._create();var s=this._getOption("initLayout");s&&this.layout()}function r(t){function e(){t.apply(this,arguments)}return e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e}function a(t){if("number"==typeof t)return t;var e=t.match(/(^\d*\.?\d*)(\w*)/),i=e&&e[1],n=e&&e[2];if(!i.length)return 0;i=parseFloat(i);var o=p[n]||1;return i*o}var h=t.console,u=t.jQuery,c=function(){},d=0,f={};s.namespace="outlayer",s.Item=o,s.defaults={containerStyle:{position:"relative"},initLayout:!0,originLeft:!0,originTop:!0,resize:!0,resizeContainer:!0,transitionDuration:"0.4s",hiddenStyle:{opacity:0,transform:"scale(0.001)"},visibleStyle:{opacity:1,transform:"scale(1)"}};var l=s.prototype;n.extend(l,e.prototype),l.option=function(t){n.extend(this.options,t)},l._getOption=function(t){var e=this.constructor.compatOptions[t];return e&&void 0!==this.options[e]?this.options[e]:this.options[t]},s.compatOptions={initLayout:"isInitLayout",horizontal:"isHorizontal",layoutInstant:"isLayoutInstant",originLeft:"isOriginLeft",originTop:"isOriginTop",resize:"isResizeBound",resizeContainer:"isResizingContainer"},l._create=function(){this.reloadItems(),this.stamps=[],this.stamp(this.options.stamp),n.extend(this.element.style,this.options.containerStyle);var t=this._getOption("resize");t&&this.bindResize()},l.reloadItems=function(){this.items=this._itemize(this.element.children)},l._itemize=function(t){for(var e=this._filterFindItemElements(t),i=this.constructor.Item,n=[],o=0;o<e.length;o++){var s=e[o],r=new i(s,this);n.push(r)}return n},l._filterFindItemElements=function(t){return n.filterFindElements(t,this.options.itemSelector)},l.getItemElements=function(){return this.items.map(function(t){return t.element})},l.layout=function(){this._resetLayout(),this._manageStamps();var t=this._getOption("layoutInstant"),e=void 0!==t?t:!this._isLayoutInited;this.layoutItems(this.items,e),this._isLayoutInited=!0},l._init=l.layout,l._resetLayout=function(){this.getSize()},l.getSize=function(){this.size=i(this.element)},l._getMeasurement=function(t,e){var n,o=this.options[t];o?("string"==typeof o?n=this.element.querySelector(o):o instanceof HTMLElement&&(n=o),this[t]=n?i(n)[e]:o):this[t]=0},l.layoutItems=function(t,e){t=this._getItemsForLayout(t),this._layoutItems(t,e),this._postLayout()},l._getItemsForLayout=function(t){return t.filter(function(t){return!t.isIgnored})},l._layoutItems=function(t,e){if(this._emitCompleteOnItems("layout",t),t&&t.length){var i=[];t.forEach(function(t){var n=this._getItemLayoutPosition(t);n.item=t,n.isInstant=e||t.isLayoutInstant,i.push(n)},this),this._processLayoutQueue(i)}},l._getItemLayoutPosition=function(){return{x:0,y:0}},l._processLayoutQueue=function(t){this.updateStagger(),t.forEach(function(t,e){this._positionItem(t.item,t.x,t.y,t.isInstant,e)},this)},l.updateStagger=function(){var t=this.options.stagger;return null===t||void 0===t?void(this.stagger=0):(this.stagger=a(t),this.stagger)},l._positionItem=function(t,e,i,n,o){n?t.goTo(e,i):(t.stagger(o*this.stagger),t.moveTo(e,i))},l._postLayout=function(){this.resizeContainer()},l.resizeContainer=function(){var t=this._getOption("resizeContainer");if(t){var e=this._getContainerSize();e&&(this._setContainerMeasure(e.width,!0),this._setContainerMeasure(e.height,!1))}},l._getContainerSize=c,l._setContainerMeasure=function(t,e){if(void 0!==t){var i=this.size;i.isBorderBox&&(t+=e?i.paddingLeft+i.paddingRight+i.borderLeftWidth+i.borderRightWidth:i.paddingBottom+i.paddingTop+i.borderTopWidth+i.borderBottomWidth),t=Math.max(t,0),this.element.style[e?"width":"height"]=t+"px"}},l._emitCompleteOnItems=function(t,e){function i(){o.dispatchEvent(t+"Complete",null,[e])}function n(){r++,r==s&&i()}var o=this,s=e.length;if(!e||!s)return void i();var r=0;e.forEach(function(e){e.once(t,n)})},l.dispatchEvent=function(t,e,i){var n=e?[e].concat(i):i;if(this.emitEvent(t,n),u)if(this.$element=this.$element||u(this.element),e){var o=u.Event(e);o.type=t,this.$element.trigger(o,i)}else this.$element.trigger(t,i)},l.ignore=function(t){var e=this.getItem(t);e&&(e.isIgnored=!0)},l.unignore=function(t){var e=this.getItem(t);e&&delete e.isIgnored},l.stamp=function(t){t=this._find(t),t&&(this.stamps=this.stamps.concat(t),t.forEach(this.ignore,this))},l.unstamp=function(t){t=this._find(t),t&&t.forEach(function(t){n.removeFrom(this.stamps,t),this.unignore(t)},this)},l._find=function(t){return t?("string"==typeof t&&(t=this.element.querySelectorAll(t)),t=n.makeArray(t)):void 0},l._manageStamps=function(){this.stamps&&this.stamps.length&&(this._getBoundingRect(),this.stamps.forEach(this._manageStamp,this))},l._getBoundingRect=function(){var t=this.element.getBoundingClientRect(),e=this.size;this._boundingRect={left:t.left+e.paddingLeft+e.borderLeftWidth,top:t.top+e.paddingTop+e.borderTopWidth,right:t.right-(e.paddingRight+e.borderRightWidth),bottom:t.bottom-(e.paddingBottom+e.borderBottomWidth)}},l._manageStamp=c,l._getElementOffset=function(t){var e=t.getBoundingClientRect(),n=this._boundingRect,o=i(t),s={left:e.left-n.left-o.marginLeft,top:e.top-n.top-o.marginTop,right:n.right-e.right-o.marginRight,bottom:n.bottom-e.bottom-o.marginBottom};return s},l.handleEvent=n.handleEvent,l.bindResize=function(){t.addEventListener("resize",this),this.isResizeBound=!0},l.unbindResize=function(){t.removeEventListener("resize",this),this.isResizeBound=!1},l.onresize=function(){this.resize()},n.debounceMethod(s,"onresize",100),l.resize=function(){this.isResizeBound&&this.needsResizeLayout()&&this.layout()},l.needsResizeLayout=function(){var t=i(this.element),e=this.size&&t;return e&&t.innerWidth!==this.size.innerWidth},l.addItems=function(t){var e=this._itemize(t);return e.length&&(this.items=this.items.concat(e)),e},l.appended=function(t){var e=this.addItems(t);e.length&&(this.layoutItems(e,!0),this.reveal(e))},l.prepended=function(t){var e=this._itemize(t);if(e.length){var i=this.items.slice(0);this.items=e.concat(i),this._resetLayout(),this._manageStamps(),this.layoutItems(e,!0),this.reveal(e),this.layoutItems(i)}},l.reveal=function(t){if(this._emitCompleteOnItems("reveal",t),t&&t.length){var e=this.updateStagger();t.forEach(function(t,i){t.stagger(i*e),t.reveal()})}},l.hide=function(t){if(this._emitCompleteOnItems("hide",t),t&&t.length){var e=this.updateStagger();t.forEach(function(t,i){t.stagger(i*e),t.hide()})}},l.revealItemElements=function(t){var e=this.getItems(t);this.reveal(e)},l.hideItemElements=function(t){var e=this.getItems(t);this.hide(e)},l.getItem=function(t){for(var e=0;e<this.items.length;e++){var i=this.items[e];if(i.element==t)return i}},l.getItems=function(t){t=n.makeArray(t);var e=[];return t.forEach(function(t){var i=this.getItem(t);i&&e.push(i)},this),e},l.remove=function(t){var e=this.getItems(t);this._emitCompleteOnItems("remove",e),e&&e.length&&e.forEach(function(t){t.remove(),n.removeFrom(this.items,t)},this)},l.destroy=function(){var t=this.element.style;t.height="",t.position="",t.width="",this.items.forEach(function(t){t.destroy()}),this.unbindResize();var e=this.element.outlayerGUID;delete f[e],delete this.element.outlayerGUID,u&&u.removeData(this.element,this.constructor.namespace)},s.data=function(t){t=n.getQueryElement(t);var e=t&&t.outlayerGUID;return e&&f[e]},s.create=function(t,e){var i=r(s);return i.defaults=n.extend({},s.defaults),n.extend(i.defaults,e),i.compatOptions=n.extend({},s.compatOptions),i.namespace=t,i.data=s.data,i.Item=r(o),n.htmlInit(i,t),u&&u.bridget&&u.bridget(t,i),i};var p={ms:1,s:1e3};return s.Item=o,s}),function(t,e){"function"==typeof define&&define.amd?define("packery/js/rect",e):"object"==typeof module&&module.exports?module.exports=e():(t.Packery=t.Packery||{},t.Packery.Rect=e())}(window,function(){"use strict";function t(e){for(var i in t.defaults)this[i]=t.defaults[i];for(i in e)this[i]=e[i]}t.defaults={x:0,y:0,width:0,height:0};var e=t.prototype;return e.contains=function(t){var e=t.width||0,i=t.height||0;return this.x<=t.x&&this.y<=t.y&&this.x+this.width>=t.x+e&&this.y+this.height>=t.y+i},e.overlaps=function(t){var e=this.x+this.width,i=this.y+this.height,n=t.x+t.width,o=t.y+t.height;return this.x<n&&e>t.x&&this.y<o&&i>t.y},e.getMaximalFreeRects=function(e){if(!this.overlaps(e))return!1;var i,n=[],o=this.x+this.width,s=this.y+this.height,r=e.x+e.width,a=e.y+e.height;return this.y<e.y&&(i=new t({x:this.x,y:this.y,width:this.width,height:e.y-this.y}),n.push(i)),o>r&&(i=new t({x:r,y:this.y,width:o-r,height:this.height}),n.push(i)),s>a&&(i=new t({x:this.x,y:a,width:this.width,height:s-a}),n.push(i)),this.x<e.x&&(i=new t({x:this.x,y:this.y,width:e.x-this.x,height:this.height}),n.push(i)),n},e.canFit=function(t){return this.width>=t.width&&this.height>=t.height},t}),function(t,e){if("function"==typeof define&&define.amd)define("packery/js/packer",["./rect"],e);else if("object"==typeof module&&module.exports)module.exports=e(require("./rect"));else{var i=t.Packery=t.Packery||{};i.Packer=e(i.Rect)}}(window,function(t){"use strict";function e(t,e,i){this.width=t||0,this.height=e||0,this.sortDirection=i||"downwardLeftToRight",this.reset()}var i=e.prototype;i.reset=function(){this.spaces=[];var e=new t({x:0,y:0,width:this.width,height:this.height});this.spaces.push(e),this.sorter=n[this.sortDirection]||n.downwardLeftToRight},i.pack=function(t){for(var e=0;e<this.spaces.length;e++){var i=this.spaces[e];if(i.canFit(t)){this.placeInSpace(t,i);break}}},i.columnPack=function(t){for(var e=0;e<this.spaces.length;e++){var i=this.spaces[e],n=i.x<=t.x&&i.x+i.width>=t.x+t.width&&i.height>=t.height-.01;if(n){t.y=i.y,this.placed(t);break}}},i.rowPack=function(t){for(var e=0;e<this.spaces.length;e++){var i=this.spaces[e],n=i.y<=t.y&&i.y+i.height>=t.y+t.height&&i.width>=t.width-.01;if(n){t.x=i.x,this.placed(t);break}}},i.placeInSpace=function(t,e){t.x=e.x,t.y=e.y,this.placed(t)},i.placed=function(t){for(var e=[],i=0;i<this.spaces.length;i++){var n=this.spaces[i],o=n.getMaximalFreeRects(t);o?e.push.apply(e,o):e.push(n)}this.spaces=e,this.mergeSortSpaces()},i.mergeSortSpaces=function(){e.mergeRects(this.spaces),this.spaces.sort(this.sorter)},i.addSpace=function(t){this.spaces.push(t),this.mergeSortSpaces()},e.mergeRects=function(t){var e=0,i=t[e];t:for(;i;){for(var n=0,o=t[e+n];o;){if(o==i)n++;else{if(o.contains(i)){t.splice(e,1),i=t[e];continue t}i.contains(o)?t.splice(e+n,1):n++}o=t[e+n]}e++,i=t[e]}return t};var n={downwardLeftToRight:function(t,e){return t.y-e.y||t.x-e.x},rightwardTopToBottom:function(t,e){return t.x-e.x||t.y-e.y}};return e}),function(t,e){"function"==typeof define&&define.amd?define("packery/js/item",["outlayer/outlayer","./rect"],e):"object"==typeof module&&module.exports?module.exports=e(require("outlayer"),require("./rect")):t.Packery.Item=e(t.Outlayer,t.Packery.Rect)}(window,function(t,e){"use strict";var i=document.documentElement.style,n="string"==typeof i.transform?"transform":"WebkitTransform",o=function(){t.Item.apply(this,arguments)},s=o.prototype=Object.create(t.Item.prototype),r=s._create;s._create=function(){r.call(this),this.rect=new e};var a=s.moveTo;return s.moveTo=function(t,e){var i=Math.abs(this.position.x-t),n=Math.abs(this.position.y-e),o=this.layout.dragItemCount&&!this.isPlacing&&!this.isTransitioning&&1>i&&1>n;return o?void this.goTo(t,e):void a.apply(this,arguments)},s.enablePlacing=function(){this.removeTransitionStyles(),this.isTransitioning&&n&&(this.element.style[n]="none"),this.isTransitioning=!1,this.getSize(),this.layout._setRectSize(this.element,this.rect),this.isPlacing=!0},s.disablePlacing=function(){this.isPlacing=!1},s.removeElem=function(){this.element.parentNode.removeChild(this.element),this.layout.packer.addSpace(this.rect),this.emitEvent("remove",[this])},s.showDropPlaceholder=function(){var t=this.dropPlaceholder;t||(t=this.dropPlaceholder=document.createElement("div"),t.className="packery-drop-placeholder",t.style.position="absolute"),t.style.width=this.size.width+"px",t.style.height=this.size.height+"px",this.positionDropPlaceholder(),this.layout.element.appendChild(t)},s.positionDropPlaceholder=function(){this.dropPlaceholder.style[n]="translate("+this.rect.x+"px, "+this.rect.y+"px)"},s.hideDropPlaceholder=function(){var t=this.dropPlaceholder.parentNode;t&&t.removeChild(this.dropPlaceholder)},o}),function(t,e){"function"==typeof define&&define.amd?define(["get-size/get-size","outlayer/outlayer","packery/js/rect","packery/js/packer","packery/js/item"],e):"object"==typeof module&&module.exports?module.exports=e(require("get-size"),require("outlayer"),require("./rect"),require("./packer"),require("./item")):t.Packery=e(t.getSize,t.Outlayer,t.Packery.Rect,t.Packery.Packer,t.Packery.Item)}(window,function(t,e,i,n,o){"use strict";function s(t,e){return t.position.y-e.position.y||t.position.x-e.position.x}function r(t,e){return t.position.x-e.position.x||t.position.y-e.position.y}function a(t,e){var i=e.x-t.x,n=e.y-t.y;return Math.sqrt(i*i+n*n)}i.prototype.canFit=function(t){return this.width>=t.width-1&&this.height>=t.height-1};var h=e.create("packery");h.Item=o;var u=h.prototype;u._create=function(){e.prototype._create.call(this),this.packer=new n,this.shiftPacker=new n,this.isEnabled=!0,this.dragItemCount=0;var t=this;this.handleDraggabilly={dragStart:function(){t.itemDragStart(this.element)},dragMove:function(){t.itemDragMove(this.element,this.position.x,this.position.y)},dragEnd:function(){t.itemDragEnd(this.element)}},this.handleUIDraggable={start:function(e,i){i&&t.itemDragStart(e.currentTarget)},drag:function(e,i){i&&t.itemDragMove(e.currentTarget,i.position.left,i.position.top)},stop:function(e,i){i&&t.itemDragEnd(e.currentTarget)}}},u._resetLayout=function(){this.getSize(),this._getMeasurements();var t,e,i;this._getOption("horizontal")?(t=1/0,e=this.size.innerHeight+this.gutter,i="rightwardTopToBottom"):(t=this.size.innerWidth+this.gutter,e=1/0,i="downwardLeftToRight"),this.packer.width=this.shiftPacker.width=t,this.packer.height=this.shiftPacker.height=e,this.packer.sortDirection=this.shiftPacker.sortDirection=i,this.packer.reset(),this.maxY=0,this.maxX=0},u._getMeasurements=function(){this._getMeasurement("columnWidth","width"),this._getMeasurement("rowHeight","height"),this._getMeasurement("gutter","width")},u._getItemLayoutPosition=function(t){if(this._setRectSize(t.element,t.rect),this.isShifting||this.dragItemCount>0){var e=this._getPackMethod();this.packer[e](t.rect)}else this.packer.pack(t.rect);return this._setMaxXY(t.rect),t.rect},u.shiftLayout=function(){this.isShifting=!0,this.layout(),delete this.isShifting},u._getPackMethod=function(){return this._getOption("horizontal")?"rowPack":"columnPack"},u._setMaxXY=function(t){this.maxX=Math.max(t.x+t.width,this.maxX),this.maxY=Math.max(t.y+t.height,this.maxY)},u._setRectSize=function(e,i){var n=t(e),o=n.outerWidth,s=n.outerHeight;(o||s)&&(o=this._applyGridGutter(o,this.columnWidth),s=this._applyGridGutter(s,this.rowHeight)),i.width=Math.min(o,this.packer.width),i.height=Math.min(s,this.packer.height)},u._applyGridGutter=function(t,e){if(!e)return t+this.gutter;e+=this.gutter;var i=t%e,n=i&&1>i?"round":"ceil";return t=Math[n](t/e)*e},u._getContainerSize=function(){return this._getOption("horizontal")?{width:this.maxX-this.gutter}:{height:this.maxY-this.gutter}},u._manageStamp=function(t){var e,n=this.getItem(t);if(n&&n.isPlacing)e=n.rect;else{var o=this._getElementOffset(t);e=new i({x:this._getOption("originLeft")?o.left:o.right,y:this._getOption("originTop")?o.top:o.bottom})}this._setRectSize(t,e),this.packer.placed(e),this._setMaxXY(e)},u.sortItemsByPosition=function(){var t=this._getOption("horizontal")?r:s;this.items.sort(t)},u.fit=function(t,e,i){var n=this.getItem(t);n&&(this.stamp(n.element),n.enablePlacing(),this.updateShiftTargets(n),e=void 0===e?n.rect.x:e,i=void 0===i?n.rect.y:i,this.shift(n,e,i),this._bindFitEvents(n),n.moveTo(n.rect.x,n.rect.y),this.shiftLayout(),this.unstamp(n.element),this.sortItemsByPosition(),n.disablePlacing())},u._bindFitEvents=function(t){function e(){n++,2==n&&i.dispatchEvent("fitComplete",null,[t])}var i=this,n=0;t.once("layout",e),this.once("layoutComplete",e)},u.resize=function(){this.isResizeBound&&this.needsResizeLayout()&&(this.options.shiftPercentResize?this.resizeShiftPercentLayout():this.layout())},u.needsResizeLayout=function(){var e=t(this.element),i=this._getOption("horizontal")?"innerHeight":"innerWidth";return e[i]!=this.size[i]},u.resizeShiftPercentLayout=function(){var e=this._getItemsForLayout(this.items),i=this._getOption("horizontal"),n=i?"y":"x",o=i?"height":"width",s=i?"rowHeight":"columnWidth",r=i?"innerHeight":"innerWidth",a=this[s];if(a=a&&a+this.gutter){this._getMeasurements();var h=this[s]+this.gutter;e.forEach(function(t){var e=Math.round(t.rect[n]/a);t.rect[n]=e*h})}else{var u=t(this.element)[r]+this.gutter,c=this.packer[o];e.forEach(function(t){t.rect[n]=t.rect[n]/c*u})}this.shiftLayout()},u.itemDragStart=function(t){if(this.isEnabled){this.stamp(t);var e=this.getItem(t);e&&(e.enablePlacing(),e.showDropPlaceholder(),this.dragItemCount++,this.updateShiftTargets(e))}},u.updateShiftTargets=function(t){this.shiftPacker.reset(),this._getBoundingRect();var e=this._getOption("originLeft"),n=this._getOption("originTop");this.stamps.forEach(function(t){var o=this.getItem(t);if(!o||!o.isPlacing){var s=this._getElementOffset(t),r=new i({x:e?s.left:s.right,y:n?s.top:s.bottom});this._setRectSize(t,r),this.shiftPacker.placed(r)}},this);var o=this._getOption("horizontal"),s=o?"rowHeight":"columnWidth",r=o?"height":"width";this.shiftTargetKeys=[],this.shiftTargets=[];var a,h=this[s];if(h=h&&h+this.gutter){var u=Math.ceil(t.rect[r]/h),c=Math.floor((this.shiftPacker[r]+this.gutter)/h);a=(c-u)*h;for(var d=0;c>d;d++){var f=o?0:d*h,l=o?d*h:0;this._addShiftTarget(f,l,a)}}else a=this.shiftPacker[r]+this.gutter-t.rect[r],this._addShiftTarget(0,0,a);var p=this._getItemsForLayout(this.items),g=this._getPackMethod();p.forEach(function(t){var e=t.rect;this._setRectSize(t.element,e),this.shiftPacker[g](e),this._addShiftTarget(e.x,e.y,a);var i=o?e.x+e.width:e.x,n=o?e.y:e.y+e.height;if(this._addShiftTarget(i,n,a),h)for(var s=Math.round(e[r]/h),u=1;s>u;u++){var c=o?i:e.x+h*u,d=o?e.y+h*u:n;this._addShiftTarget(c,d,a)}},this)},u._addShiftTarget=function(t,e,i){var n=this._getOption("horizontal")?e:t;if(!(0!==n&&n>i)){var o=t+","+e,s=-1!=this.shiftTargetKeys.indexOf(o);s||(this.shiftTargetKeys.push(o),this.shiftTargets.push({x:t,y:e}))}},u.shift=function(t,e,i){var n,o=1/0,s={x:e,y:i};this.shiftTargets.forEach(function(t){var e=a(t,s);o>e&&(n=t,o=e)}),t.rect.x=n.x,t.rect.y=n.y};var c=120;u.itemDragMove=function(t,e,i){
-function n(){s.shift(o,e,i),o.positionDropPlaceholder(),s.layout()}var o=this.isEnabled&&this.getItem(t);if(o){e-=this.size.paddingLeft,i-=this.size.paddingTop;var s=this,r=new Date;this._itemDragTime&&r-this._itemDragTime<c?(clearTimeout(this.dragTimeout),this.dragTimeout=setTimeout(n,c)):(n(),this._itemDragTime=r)}},u.itemDragEnd=function(t){function e(){n++,2==n&&(i.element.classList.remove("is-positioning-post-drag"),i.hideDropPlaceholder(),o.dispatchEvent("dragItemPositioned",null,[i]))}var i=this.isEnabled&&this.getItem(t);if(i){clearTimeout(this.dragTimeout),i.element.classList.add("is-positioning-post-drag");var n=0,o=this;i.once("layout",e),this.once("layoutComplete",e),i.moveTo(i.rect.x,i.rect.y),this.layout(),this.dragItemCount=Math.max(0,this.dragItemCount-1),this.sortItemsByPosition(),i.disablePlacing(),this.unstamp(i.element)}},u.bindDraggabillyEvents=function(t){this._bindDraggabillyEvents(t,"on")},u.unbindDraggabillyEvents=function(t){this._bindDraggabillyEvents(t,"off")},u._bindDraggabillyEvents=function(t,e){var i=this.handleDraggabilly;t[e]("dragStart",i.dragStart),t[e]("dragMove",i.dragMove),t[e]("dragEnd",i.dragEnd)},u.bindUIDraggableEvents=function(t){this._bindUIDraggableEvents(t,"on")},u.unbindUIDraggableEvents=function(t){this._bindUIDraggableEvents(t,"off")},u._bindUIDraggableEvents=function(t,e){var i=this.handleUIDraggable;t[e]("dragstart",i.start)[e]("drag",i.drag)[e]("dragstop",i.stop)};var d=u.destroy;return u.destroy=function(){d.apply(this,arguments),this.isEnabled=!1},h.Rect=i,h.Packer=n,h});
\ No newline at end of file
diff --git a/javascripts.js.html b/javascripts.js.html
index 2600fb4467eab066549d6f6c70c034ae14985497..12981ff073995f4a36f4caa088355ffbcda011c1 100644
--- a/javascripts.js.html
+++ b/javascripts.js.html
@@ -112,85 +112,6 @@ function inputKeyHandler(ev) {
 	}
 }
 
-
-function adjustLayout() {
-	/* Remettre la taille à auto pour trouver l'eventuelle nouvelle hauteur !*/
-	jQuery("div.equilibre").css({'height': 'auto'});
-	/*******************************************CAS N°1********************************************************************/
-	/*Nav, Contenu et Extra alignes top (Layout 1 a 22)*/
-	var tnotstackable =0;
-	tnotstackable = parseInt(jQuery("div.notstackable")[0].offsetTop);
-	tlaststackable = parseInt(jQuery("div.laststackable")[0].offsetTop);
-	if (tnotstackable==tlaststackable) {
-			var h=0;
-			jQuery("div.equilibre").each(function(){ h=Math.max(h,this.offsetHeight); }).css({'min-height': h+'px'});
-			jQuery("div.equilibre").css({'height': parseInt(jQuery("div.equilibre")[0].offsetHeight)});
-			/*alert("Cas 1");*/
-	}
-	else {
-/*********************************************CAS 2*********************************************************************/
-	/* Navigation et Extra sont empiles (Layout 23 a 26 et 33 et 34)*/
-		leftlaststackable = parseInt(jQuery("div.laststackable")[0].offsetLeft);
-		leftnavigation = parseInt(jQuery("div#navigation")[0].offsetLeft);
-		largeurnavigation = parseInt(jQuery("div#navigation")[0].offsetWidth);
-		largeurextra = parseInt(jQuery("div.laststackable")[0].offsetWidth);
-		if ((leftlaststackable == leftnavigation) && (largeurextra == largeurnavigation)) {
-			var hstacked = 0;
-			jQuery("div.stackable").each(function(){ hstacked+=parseInt(this.offsetHeight); });
-			var hnotstackable = 0;
-			hnotstackable = parseInt(jQuery("div.notstackable")[0].offsetHeight);
-			if (hnotstackable>hstacked) {
-				jQuery("div.laststackable").css({'min-height': hnotstackable + parseInt(jQuery("div.laststackable")[0].offsetHeight) - hstacked+'px'});
-				jQuery("div.notstackable").css({'min-height': hnotstackable+'px'});
-				/*alert("Cas 2");*/
-			}
-			else {
-				jQuery("div.notstackable").css({'min-height': hstacked+'px'});
-			};
-		}
-		else {
-/**********************************************CAS 3*******************************************************************/
-	/* Navigation et Extra meme Top et differents de Contenu (Layout 27-28-39-40)*/
-			tlaststackable = parseInt(jQuery("div.laststackable")[0].offsetTop);
-			tstackable = parseInt(jQuery("div.stackable")[0].offsetTop);
-			if (tstackable==tlaststackable){
-				var h=0;
-				jQuery("div.stackable").each(function(){ h=Math.max(h,this.offsetHeight); }).css({'min-height': h+'px'});
-				/*alert("Cas 3");*/
-			}
-			else {
-/**********************************************CAS 4*******************************************************************/
-	/* Navigation et Contenu meme alignement Top (Layout 35 et 36)*/
-				largeurcontenu = parseInt(jQuery("div.notstackable")[0].offsetWidth);
-				if (largeurcontenu==largeurextra) {
-					hstackable = (hauteurcontenu = parseInt(jQuery("div.notstackable")[0].offsetHeight)) + (hauteurext = parseInt(jQuery("div.laststackable")[0].offsetHeight));
-					hnavigation = parseInt(jQuery("div#navigation")[0].offsetHeight);
-					if(hstackable < hnavigation) {
-						jQuery("div.notstackable").css({'min-height': (hnavigation - hauteurext)+'px'});
-					}
-					else {
-						jQuery("div#navigation").css({'min-height': hstackable+'px'});
-					}
-					/*alert("Cas 4");*/
-				}
-				else	{
-/**********************************************CAS 5*******************************************************************/
-	/* Navigation et Contenu meme alignement Top (Layout 29 a 32 et 37 et 38)*/
-					hstackable = (hauteurcontenu = parseInt(jQuery("div.notstackable")[0].offsetHeight));
-					hnavigation = parseInt(jQuery("div#navigation")[0].offsetHeight);
-					if(hstackable > hnavigation) {
-						jQuery("div#navigation").css({'min-height': hstackable+'px'});
-					}
-					else {
-					jQuery("div.notstackable").css({'min-height': hnavigation+'px'});
-					}
-					/*alert("Cas 5");*/
-				}
-			}
-		}
-	}
-}
-;
 function form_disable_auto(formid) {
 	if (jQuery(formid).length > 0) {
 		jQuery(formid).attr('spellcheck','false');
@@ -247,26 +168,6 @@ function myInitPages() {
 	form_disable_auto('#url_site');
 }
 ;
-function myInitLayout() {
-	if (CanceladjustLayout != true) {
-		adjustLayout();
-		jQuery("body").resize(
-			function () {
-			adjustLayout();
-			}
-		);
-		if (CancelMonitorTextSize != true) {
-			jQuery.em.element = jQuery('<div />').css({ left:     '-100em',
-										position: 'absolute',
-										width:    '100em' })
-								 .prependTo('div.texte')[0];
-			jQuery('div.texte').bind('emchange', function(e, cur, prev) { adjustLayout(); });
-		}
-		onAjaxLoad(adjustLayout); // Merci Marcimat sur IRC !
-	}
-;
-}
-;
 /* BLACK TRANSPARENT BACKGROUNDS */
 function mySpecialBackgrounds(elt,correcAmount,correcAmount2) {
 	jQuery(elt).each(function() {
@@ -473,7 +374,6 @@ jQuery(window).ready(function() {
 	// Ceci devrait régler le problème de l'ajustement des colonne pas toujours fait
 	jQuery(window).on('load', function() {
 		myInitPages();
-		myInitLayout();
 	});
 	[(#VAL{newtabpdf}|in_any{#CONFIG{soyezcreateurs/affichagelistedocuments,#ARRAY{0,enbas}}}|oui)
 		jQuery("a\[href$='.pdf'\]").prop("target", "_blank").prop("rel", "noopener");
diff --git a/la_meteo.html b/la_meteo.html
index 4e39c3cb672bee44d829bb4ebca2c965d44f78cd..fab512c296c68aaf1cae60249bcdf934507b24c5 100644
--- a/la_meteo.html
+++ b/la_meteo.html
@@ -13,11 +13,6 @@
 
 <div class="texte">
 <main id="main">
-[(#CONFIG{soyezcreateurs_layout/positioncartouchetitre,contenu}|=={contenu}|oui)
-<div class="cartouche">
-<div class="titrepage"><h1><:rainette:meteo_de{ville=#GET{nom_ville}}:></h1></div>
-</div>
-]
 	<div id="letexte">
 		[(#MODELE{rainette_previsions, lieu=[(#CONFIG{soyezcreateurs/rainette_ville, #GET{ville}})], premier_jour=0, sous_modele=previsions_24h, service=#GET{service}})]
 	</div>
diff --git a/lang/soyezcreateursprive_fr.php b/lang/soyezcreateursprive_fr.php
index 26f894cace21427a4e572c187906f3983a1b2873..7c4da445200e37f9d8d02127cc6b667d984fafd4 100644
--- a/lang/soyezcreateursprive_fr.php
+++ b/lang/soyezcreateursprive_fr.php
@@ -173,6 +173,9 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
 	'cfg_layout_gala' => 'Agencement des colonnes sur la page',
 	'cfg_layout_gala_explications' => '<p>Agencement du site.<br />Pour les articles et les rubriques, le réglage peut être fait de manière individuelle en affectant un des mots clefs de layout à ces derniers.</p>',
 	'cfg_layout_gala_intro' => '<p>Basé sur <a href="https://www.html.it/app/uploads/blog/layoutgala/" hreflang="en">Layout Gala</a></p>',
+	'cfg_layoutmoderne_fixe' => 'Largeur fixe',
+	'cfg_layoutmoderne_fluide' => 'Largeur de l’écran',
+	'cfg_layoutmoderne_label' => 'Agencement du header et footer',
 	'cfg_lien_clic' => 'Lien clic',
 	'cfg_lien_non_visite' => 'Lien non visité',
 	'cfg_lien_survol' => 'Lien survol',
@@ -252,6 +255,8 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
 	'cfg_nav' => 'Navigation',
 	'cfg_nav_p' => 'Navigation principale',
 	'cfg_nav_sec' => 'Navigation secondaire',
+	'cfg_navigationaccueilcognac' => 'Colonnes de navigation',
+	'cfg_navigationaccueilcognac_label' => 'Sur la page d’accueil en mode Cognac',
 	'cfg_navigationtransversale_label' => 'Navigation transversale (par mots-clés)',
 	'cfg_nombres_agenda_par_bloc' => 'Nombre d’événements par bloc',
 	'cfg_nombres_agenda_par_bloc_1' => 'Un seul de pleine-hauteur',
diff --git a/layout.css.html b/layout.css.html
index b98ee34ffbdad4b4dc8609876c2a1a6f2938fe14..c3f7088407df9f4e28b3e779e5b2ce5acfdd0152 100644
--- a/layout.css.html
+++ b/layout.css.html
@@ -2,345 +2,447 @@
 #HTTP_HEADER{Content-Type: text/css; charset=iso-8859-15}
 #HTTP_HEADER{Vary: Accept-Encoding}
 
-#SET{LargeurOmbre,(#CONFIG{soyezcreateurs_layout/largeurombre,0}|intval)}
-#SET{LargeurContaineurOmbres,(#CONFIG{soyezcreateurs_layout/largeurconteneur,960}|plus{#GET{LargeurOmbre}}|plus{#GET{LargeurOmbre}})}
-#SET{LargeurContaineurOmbre,(#CONFIG{soyezcreateurs_layout/largeurconteneur,960}|plus{#GET{LargeurOmbre}})}
 #SET{LargeurContaineur,(#CONFIG{soyezcreateurs_layout/largeurconteneur,960})}
-#SET{LargeurMenuGaucheOmbre,(#CONFIG{soyezcreateurs_layout/largeurmenugauche,180}|plus{#GET{LargeurOmbre}})}
 #SET{LargeurMenuGauche,(#CONFIG{soyezcreateurs_layout/largeurmenugauche,180})}
-#SET{LargeurMenuDroitOmbre,(#CONFIG{soyezcreateurs_layout/largeurmenudroit,180}|plus{#GET{LargeurOmbre}})}
 #SET{LargeurMenuDroit,(#CONFIG{soyezcreateurs_layout/largeurmenudroit,180})}
+#SET{layoutmoderne,(#CONFIG{soyezcreateurs_layout/layoutmoderne,fixe})}
+[(#CONFIG{soyezcreateurs/mode_affichage,communiquant}|=={portailcognac}|oui)#SET{layoutmoderne,moderne}]
+[(#SET{titreounavigation,[(#CONFIG{soyezcreateurs_layout/positioncartouchetitre,contenu}|=={haut}|?{titre,navigation})]})]
+[(#SET{titreouextra,[(#CONFIG{soyezcreateurs_layout/positioncartouchetitre,contenu}|=={haut}|?{titre,extra})]})]
 
-/* http://blog.html.it/layoutgala/index.html */
-[(#ENV{layoutgala}|=={1}|oui)/* 1 */
-div#wrapper{float:left;width:100%}
-div#content{margin: 0 25%}
-div#navigation{float:left;width:25%;margin-left:-100%}
-div#extra{float:left;width:25%;margin-left:-25%}
-div#footer{clear:left;width:100%}
-][(#ENV{layoutgala}|=={2}|oui)/* 2 */
-div#wrapper{float:left;width:100%}
-div#content{margin: 0 25%}
-div#navigation{float:left;width:25%;margin-left:-25%}
-div#extra{float:left;width:25%;margin-left:-100%}
-div#footer{clear:left;width:100%}
-@media (max-width: [(#GET{LargeurContaineur})]px) {
-div#navigation{float:right;width:50%}
-div#extra{float:left;width:50%}
-}][(#ENV{layoutgala}|=={3}|oui)/* 3 */
-div#wrapper{float:left;width:100%}
-div#content{margin-right: 50%}
-div#navigation{float:left;width:25%;margin-left:-50%}
-div#extra{float:left;width:25%;margin-left:-25%}
-div#footer{clear:left;width:100%}
-][(#ENV{layoutgala}|=={4}|oui)/* 4 */
-div#wrapper{float:left;width:100%}
-div#content{margin-right: 50%}
-div#navigation{float:left;width:25%;margin-left:-25%}
-div#extra{float:left;width:25%;margin-left:-50%}
-div#footer{clear:left;width:100%}
-@media (max-width: [(#GET{LargeurContaineur})]px) {
-div#navigation{float:right;width:50%}
-div#extra{float:left;width:50%}
-}][(#ENV{layoutgala}|=={5}|oui)/* 5 */
-div#wrapper{float:left;width:100%}
-div#content{margin-left: 50%}
-div#navigation{float:left;width:25%;margin-left:-100%}
-div#extra{float:left;width:25%;margin-left:-75%}
-div#footer{clear:left;width:100%}
-][(#ENV{layoutgala}|=={6}|oui)/* 6 */
-div#wrapper{float:left;width:100%}
-div#content{margin-left: 50%}
-div#navigation{float:left;width:25%;margin-left:-75%}
-div#extra{float:left;width:25%;margin-left:-100%}
-div#footer{clear:left;width:100%}
-@media (max-width: [(#GET{LargeurContaineur})]px) {
-div#navigation{float:right;width:50%}
-div#extra{float:left;width:50%}
-}][(#ENV{layoutgala}|=={7}|oui)/* 7 */
-div#container{width:#GET{LargeurContaineurOmbres}px;margin:0 auto}
-div#wrapper{float:left;width:100%}
-div#content{margin: 0 #GET{LargeurMenuDroitOmbre}px 0 #GET{LargeurMenuGaucheOmbre}px}
-div#navigation{float:left;width:#GET{LargeurMenuGauche}px;margin-left:-#GET{LargeurContaineurOmbre}px}
-div#extra{float:left;width:#GET{LargeurMenuDroit}px;margin-left:-#GET{LargeurMenuDroitOmbre}px}
-div#footer{clear:left;width:100%}
-][(#ENV{layoutgala}|=={8}|oui)/* 8 */
-div#container{width:#GET{LargeurContaineurOmbres}px;margin:0 auto}
-div#wrapper{float:left;width:100%}
-div#content{margin: 0 #GET{LargeurMenuGauche}px 0 #GET{LargeurMenuDroit}px}
-div#navigation{float:left;width:#GET{LargeurMenuGauche}px;margin-left:-#GET{LargeurMenuGauche}px}
-div#extra{float:left;width:#GET{LargeurMenuDroit}px;margin-left:-#GET{LargeurContaineur}px}
-div#footer{clear:left;width:100%}
-@media (max-width: [(#GET{LargeurContaineur})]px) {
-div#navigation{float:right;width:50%}
-div#extra{float:left;width:50%}
-}][(#ENV{layoutgala}|=={9}|oui)/* 9 */
-div#container{width:#GET{LargeurContaineurOmbres}px;margin:0 auto}
-div#wrapper{float:left;width:100%}
-div#content{margin-right:[(#GET{LargeurMenuGauche}|plus{#GET{LargeurMenuDroit}})]px}
-div#navigation{float:left;width:#GET{LargeurMenuGauche}px;margin-left:-[(#GET{LargeurMenuGauche}|plus{#GET{LargeurMenuDroit}})]px}
-div#extra{float:left;width:#GET{LargeurMenuDroit}px;margin-left:-#GET{LargeurMenuDroit}px}
-div#footer{clear:left;width:100%}
-][(#ENV{layoutgala}|=={10}|oui)/* 10 */
-div#container{width:#GET{LargeurContaineurOmbres}px;margin:0 auto}
-div#wrapper{float:left;width:100%}
-div#content{margin-right:[(#GET{LargeurMenuGauche}|plus{#GET{LargeurMenuDroit}})]px}
-div#navigation{float:left;width:#GET{LargeurMenuGauche}px;margin-left:-#GET{LargeurMenuGauche}px}
-div#extra{float:left;width:#GET{LargeurMenuDroit}px;margin-left:-[(#GET{LargeurMenuGauche}|plus{#GET{LargeurMenuDroit}})]px}
-div#footer{clear:left;width:100%}
-@media (max-width: [(#GET{LargeurContaineur})]px) {
-div#navigation{float:right;width:50%}
-div#extra{float:left;width:50%}
-}][(#ENV{layoutgala}|=={11}|oui)/* 11 */
-div#container{width:#GET{LargeurContaineurOmbres}px;margin:0 auto}
-div#wrapper{float:left;width:100%}
-div#content{margin-left: [(#GET{LargeurMenuGauche}|plus{#GET{LargeurMenuDroit}})]px}
-div#navigation{float:left;width:#GET{LargeurMenuGauche}px;margin-left:-#GET{LargeurContaineur}px}
-div#extra{float:left;width:#GET{LargeurMenuDroit}px;margin-left:-[(#GET{LargeurContaineur}|moins{#GET{LargeurMenuGauche}})]px}
-div#footer{clear:left;width:100%}
-][(#ENV{layoutgala}|=={12}|oui)/* 12 */
-div#container{width:#GET{LargeurContaineurOmbres}px;margin:0 auto}
-div#wrapper{float:left;width:100%}
-div#content{margin-left: [(#GET{LargeurMenuGauche}|plus{#GET{LargeurMenuDroit}})]px}
-div#navigation{float:left;width:#GET{LargeurMenuGauche}px;margin-left:-[(#GET{LargeurContaineur}|moins{#GET{LargeurMenuDroit}})]px}
-div#extra{float:left;width:#GET{LargeurMenuDroit}px;margin-left:-#GET{LargeurContaineur}px}
-div#footer{clear:left;width:100%}
-@media (max-width: [(#GET{LargeurContaineur})]px) {
-div#navigation{float:right;width:50%}
-div#extra{float:left;width:50%}
-}][(#ENV{layoutgala}|=={13}|oui)/* 13 */
-div#wrapper{float:left;width:100%;}
-div#content{margin: 0 #GET{LargeurMenuDroit}px 0 #GET{LargeurMenuGauche}px}
-div#navigation{float:left;width:#GET{LargeurMenuGauche}px;margin-left:-100%}
-div#extra{float:left;width:#GET{LargeurMenuDroit}px;margin-left:-#GET{LargeurMenuDroit}px}
-div#footer{clear:left;width:100%}
-][(#ENV{layoutgala}|=={14}|oui)/* 14 */
-div#wrapper{float:left;width:100%}
-div#content{margin: 0 #GET{LargeurMenuGauche}px 0 #GET{LargeurMenuDroit}px}
-div#navigation{float:left;width:#GET{LargeurMenuGauche}px;margin-left:-#GET{LargeurMenuGauche}px}
-div#extra{float:left;width:#GET{LargeurMenuDroit}px;margin-left:-100%}
-div#footer{clear:left;width:100%}
-@media (max-width: [(#GET{LargeurContaineur})]px) {
-div#navigation{float:right;width:50%}
-div#extra{float:left;width:50%}
-}][(#ENV{layoutgala}|=={15}|oui)/* 15 */
-div#wrapper{float:left;width:100%}
-div#content{margin-right: [(#GET{LargeurMenuGauche}|plus{#GET{LargeurMenuDroit}})]px}
-div#navigation{float:left;width:#GET{LargeurMenuGauche}px;margin-left:-[(#GET{LargeurMenuGauche}|plus{#GET{LargeurMenuDroit}})]px}
-div#extra{float:left;width:#GET{LargeurMenuDroit}px;margin-left:-#GET{LargeurMenuDroit}px}
-div#footer{clear:left;width:100%}
-][(#ENV{layoutgala}|=={16}|oui)/* 16 */
-div#wrapper{float:left;width:100%}
-div#content{margin-right: [(#GET{LargeurMenuGauche}|plus{#GET{LargeurMenuDroit}})]px}
-div#navigation{float:left;width:#GET{LargeurMenuGauche}px;margin-left:-#GET{LargeurMenuGauche}px}
-div#extra{float:left;width:#GET{LargeurMenuDroit}px;margin-left:-[(#GET{LargeurMenuGauche}|plus{#GET{LargeurMenuDroit}})]px}
-div#footer{clear:left;width:100%}
-@media (max-width: [(#GET{LargeurContaineur})]px) {
-div#navigation{float:right;width:50%}
-div#extra{float:left;width:50%}
-}][(#ENV{layoutgala}|=={17}|oui)/* 17 */
-div#wrapper{float:right;width: 100%;margin-left: -[(#GET{LargeurMenuGauche}|plus{#GET{LargeurMenuDroit}})]px}
-div#content{margin-left:[(#GET{LargeurMenuGauche}|plus{#GET{LargeurMenuDroit}})]px}
-div#navigation{float:right;width:#GET{LargeurMenuGauche}px}
-div#extra{float:right;width:#GET{LargeurMenuDroit}px}
-div#footer{clear:right;width:100%}
-@media (max-width: [(#GET{LargeurContaineur})]px) {
-div#navigation{float:right;width:50%}
-div#extra{float:left;width:50%}
-}][(#ENV{layoutgala}|=={18}|oui)/* 18 */
-div#wrapper{float:right;width: 100%;margin-left: -[(#GET{LargeurMenuGauche}|plus{#GET{LargeurMenuDroit}})]px}
-div#content{margin-left:[(#GET{LargeurMenuGauche}|plus{#GET{LargeurMenuDroit}})]px}
-div#navigation{float:left;width: #GET{LargeurMenuGauche}px}
-div#extra{float:right;width:#GET{LargeurMenuDroit}px}
-div#footer{clear:both;width:100%}
-][(#ENV{layoutgala}|=={19}|oui)/* 19 */
-div#wrapper{float:left;width:100%}
-div#content{margin: 0 33% 0 #GET{LargeurMenuGauche}px}
-div#navigation{float:left;width:#GET{LargeurMenuGauche}px;margin-left:-100%}
-div#extra{float:left;width:33%;margin-left:-33%}
-div#footer{clear:left;width:100%}
-][(#ENV{layoutgala}|=={20}|oui)/* 20 */
-div#wrapper{float:left;width:100%}
-div#content{margin: 0 #GET{LargeurMenuDroit}px 0 33%}
-div#navigation{float:left;width:33%;margin-left:-100%}
-div#extra{float:left;width:#GET{LargeurMenuDroit}px;margin-left:-#GET{LargeurMenuDroit}px}
-div#footer{clear:left;width:100%}
-][(#ENV{layoutgala}|=={21}|oui)/* 21 */
-div#wrapper{float:left;width:100%;margin-left:-25%}
-div#content{margin: 0 #GET{LargeurMenuGauche}px 0 25%}
-div#navigation{float:left;width:#GET{LargeurMenuGauche}px;margin-left:-#GET{LargeurMenuGauche}px}
-div#extra{float:left;width:25%}
-div#footer{clear:left;width:100%}
-][(#ENV{layoutgala}|=={22}|oui)/* 22 */
-div#wrapper{float:left;width:100%;margin-left:-#GET{LargeurMenuDroit}px}
-div#content{margin: 0 25% 0 #GET{LargeurMenuDroit}px}
-div#navigation{float:left;width:25%;margin-left:-25%}
-div#extra{float:left;width:#GET{LargeurMenuDroit}px}
-div#footer{clear:left;width:100%}
-][(#ENV{layoutgala}|=={23}|oui)/* 23 */
-div#wrapper{float:left;width:100%;margin-left:-#GET{LargeurMenuGauche}px}
-div#content{margin-left:#GET{LargeurMenuGauche}px}
-div#navigation{float:right;width:#GET{LargeurMenuGauche}px}
-div#extra{float:right;clear:right;width:#GET{LargeurMenuGauche}px}
-div#footer{clear:both;width:100%}
-@media (max-width: [(#GET{LargeurContaineur})]px) {
-div#wrapper{margin-left:0}
-div#navigation{float:left;width:50%}
-div#extra{float:left;width:50%;}
-}][(#ENV{layoutgala}|=={24}|oui)/* 24 */
-div#wrapper{float:right;width:100%;margin-left:-#GET{LargeurMenuGauche}px}
-div#content{margin-left:#GET{LargeurMenuGauche}px}
-div#navigation{float:left;width:#GET{LargeurMenuGauche}px}
-div#extra{float:left;clear:left;width:#GET{LargeurMenuGauche}px}
-div#footer{clear:both;width:100%}
-@media (max-width: [(#GET{LargeurContaineur})]px) {
-div#wrapper{margin-left:0}
-div#navigation{float:left;width:50%}
-div#extra{float:left;width:50%;clear:none;}
-}][(#ENV{layoutgala}|=={25}|oui)/* 25 */
-div#wrapper{float:left;width:100%;margin-left:-33%}
-div#content{margin-left:33%}
-div#navigation{float:right;width:32.9%}
-div#extra{float:right;clear:right;width:32.9%}
-div#footer{clear:both;width:100%}
-@media (max-width: [(#GET{LargeurContaineur})]px) {
-div#wrapper{margin-left:0}
-div#navigation{float:left;width:50%}
-div#extra{float:left;width:50%;clear:none;}
-}][(#ENV{layoutgala}|=={26}|oui)/* 26 */
-div#wrapper{float:right;width:80%;}
-div#navigation{float:left;width:20%}
-div#extra{float:left;clear:left;width:20%}
-div#footer{clear:both;width:100%}
-@media (max-width: [(#GET{LargeurContaineur})]px) {
-div#wrapper{margin-left:0}
-div#navigation{float:left;width:50%}
-div#extra{float:left;width:50%;clear:none;}
-}][(#ENV{layoutgala}|=={62}|oui)/* 26 modifie - identifiant 62 */
-div#wrapper{float:right;width:80%;margin-left:-.5%}
-div#navigation{float:left;width:20.5%}
-div#extra{float:left;clear:left;width:20%}
-div#footer{clear:both;width:100%}
-][(#ENV{layoutgala}|=={27}|oui)/* 27 */
-div#navigation{float:left;width:50%}
-div#extra{float:left;width:49.9%}
-div#footer{clear:left;width:100%}
-][(#ENV{layoutgala}|=={28}|oui)/* 28 */
-div#navigation{float:right;width:50%}
-div#extra{float:right;width:49.9%}
-div#footer{clear:right;width:100%}
-@media (max-width: [(#GET{LargeurContaineur})]px) {
-div#navigation{float:right;width:50%}
-div#extra{float:left;width:50%}
-}][(#ENV{layoutgala}|=={29}|oui)/* 29 */
-div#wrapper{float:right;width:70%}
-div#navigation{float:left;width:29.9%}
-div#extra{clear:both;width:100%}
-@media (max-width: [(#GET{LargeurContaineur})]px) {
-div#wrapper{float:none; width:100%;}
-div#navigation{float:left;width:50%}
-div#extra{float:left;width:50%;clear:none;}
-div#footer{clear:left;width:100%}
-}][(#ENV{layoutgala}|=={30}|oui)/* 30 */
-div#wrapper{float:left;width:70%}
-div#navigation{float:right;width:29.9%}
-div#extra{clear:both;width:100%}
-@media (max-width: [(#GET{LargeurContaineur})]px) {
-div#wrapper{float:none; width:100%;}
-div#navigation{float:left;width:50%}
-div#extra{float:left;width:50%;clear:none;}
-div#footer{clear:left;width:100%}
-}][(#ENV{layoutgala}|=={31}|oui)/* 31 */
-div#wrapper{float:left;width:100%;}
-div#content{margin-left:#GET{LargeurMenuGauche}px}
-div#navigation{float:left;width:#GET{LargeurMenuGauche}px;margin-left:-100%}
-div#extra{clear:left;width:100%}
-@media (max-width: [(#GET{LargeurContaineur})]px) {
-div#wrapper{float:none; width:100%;}
-div#navigation{float:left;width:50%}
-div#extra{float:left;width:50%;clear:none;}
-div#footer{clear:left;width:100%}
-}][(#ENV{layoutgala}|=={32}|oui)/* 32 */
-div#wrapper{float:left;width:100%}
-div#content{margin-right:#GET{LargeurMenuGauche}px}
-div#navigation{float:left;width:#GET{LargeurMenuGauche}px;margin-left:-#GET{LargeurMenuGauche}px}
-div#extra{clear:left;width:100%}
-@media (max-width: [(#GET{LargeurContaineur})]px) {
-div#wrapper{float:none; width:100%;}
-div#navigation{float:left;width:50%}
-div#extra{float:left;width:50%;clear:none;}
-div#footer{clear:left;width:100%}
-}][(#ENV{layoutgala}|=={33}|oui)/* 33 */
-div#container{width:#GET{LargeurContaineurOmbres}px;margin:0 auto}
-div#content{float:left;width:[(#GET{LargeurContaineur}|plus{-#GET{LargeurMenuGauche}})]px}
-div#navigation{float:right;width:#GET{LargeurMenuGauche}px}
-div#extra{float:right;clear:right;width:#GET{LargeurMenuGauche}px}
-div#footer{clear:both;width:100%}
-@media (max-width: [(#GET{LargeurContaineur})]px) {
-div#wrapper{margin-left:0}
-div#navigation{float:left;width:50%}
-div#extra{float:left;width:50%;}
-}][(#ENV{layoutgala}|=={34}|oui)/* 34 */
-div#container{width:#GET{LargeurContaineurOmbres}px;margin:0 auto}
-div#content{float:right;width:[(#GET{LargeurContaineur}|plus{-#GET{LargeurMenuGauche}})]px}
-div#navigation{float:left;width:#GET{LargeurMenuGauche}px}
-div#extra{float:left;clear:left;width:#GET{LargeurMenuGauche}px}
-div#footer{clear:both;width:100%}
-@media (max-width: [(#GET{LargeurContaineur})]px) {
-div#wrapper{margin-left:0}
-div#content{float:none;}
-div#navigation{float:left;width:50%}
-div#extra{float:left;width:50%;clear:none;}
-}][(#ENV{layoutgala}|=={35}|oui)/* 35 */
-div#container{width:#GET{LargeurContaineurOmbres}px;margin:0 auto}
-div#content{float:left;width:[(#GET{LargeurContaineur}|plus{-#GET{LargeurMenuGauche}})]px}
-div#navigation{float:right;width:#GET{LargeurMenuGauche}px}
-div#extra{float:left;width:[(#GET{LargeurContaineur}|plus{-#GET{LargeurMenuGauche}})]px}
-div#footer{clear:both;width:100%}
-@media (max-width: [(#GET{LargeurContaineur})]px) {
-div#navigation{float:left;width:50%}
-div#extra{float:left;width:50%}
-}][(#ENV{layoutgala}|=={36}|oui)/* 36 */
-div#container{width:#GET{LargeurContaineurOmbres}px;margin:0 auto}
-div#content{float:right;width:[(#GET{LargeurContaineur}|plus{-#GET{LargeurMenuGauche}})]px}
-div#navigation{float:left;width:#GET{LargeurMenuGauche}px}
-div#extra{float:right;width:[(#GET{LargeurContaineur}|plus{-#GET{LargeurMenuGauche}})]px}
-div#footer{clear:both;width:100%}
-@media (max-width: [(#GET{LargeurContaineur})]px) {
-div#navigation{float:left;width:50%}
-div#extra{float:left;width:50%}
-}][(#ENV{layoutgala}|=={37}|oui)/* 37 */
-div#container{width:#GET{LargeurContaineurOmbres}px;margin:0 auto}
-div#content{float:left;width:[(#GET{LargeurContaineur}|moins{#GET{LargeurMenuGauche}})]px}
-div#navigation{float:right;width:#GET{LargeurMenuGauche}px}
-div#extra{clear:both;width:100%}
-@media (max-width: [(#GET{LargeurContaineur})]px) {
-div#wrapper{float:none; width:100%;}
-div#navigation{float:left;width:50%}
-div#extra{float:left;width:50%;clear:none;}
-div#footer{clear:left;width:100%}
-}][(#ENV{layoutgala}|=={38}|oui)/* 38 */
-div#container{width:#GET{LargeurContaineurOmbres}px;margin:0 auto}
-div#content{float:right;width:[(#GET{LargeurContaineur}|moins{#GET{LargeurMenuGauche}})]px}
-div#navigation{float:left;width:#GET{LargeurMenuGauche}px}
-div#extra{clear:both;width:100%}
-@media (max-width: [(#GET{LargeurContaineur})]px) {
-div#wrapper{float:none; width:100%;}
-div#navigation{float:left;width:50%}
-div#extra{float:left;width:50%;clear:none;}
-div#footer{clear:left;width:100%}
-}][(#ENV{layoutgala}|=={39}|oui)/* 39 */
-div#wrapper{float:left;width:100%}
-div#container{width:#GET{LargeurContaineurOmbres}px;margin:0 auto}
-div#navigation{float:left;width:50%}
-div#extra{float:right;width:50%}
-div#footer{clear:both;width:100%}
-][(#ENV{layoutgala}|=={40}|oui)/* 40 */
-div#container{width:#GET{LargeurContaineurOmbres}px;margin:0 auto}
-div#navigation{float:right;width:50%}
-div#extra{float:left;width:50%}
-div#footer{clear:both;width:100%}
-@media (max-width: [(#GET{LargeurContaineur})]px) {
-div#navigation{float:right;width:50%}
-div#extra{float:left;width:50%}
-}]
+/* http://blog.html.it/layoutgala/index.html */
+/* Mode mobile ici sans media queries */
+
+#navigation, #extra {
+	display: flex;
+	flex-direction: column;
+	flex-wrap: nowrap;
+}
+
+/* Mode Tablette définition des grilles CSS */
+@media screen and (min-width: 768px) {
+	#shadow {
+		display: grid;
+		grid-template-areas:
+			"header"
+			"maincontent"
+			"footer";
+	}
+	#mainheader {
+		grid-area: header;
+	}
+	#maincontent {
+		grid-area: maincontent;
+		display: grid;
+	}
+	#miettesdepain{
+		grid-area: ariane;
+	}
+	#heading{
+		grid-area: titre;
+		display: grid;
+	}
+	#contenu{
+		grid-area: content;
+		display: grid;
+	}
+	#navigation {
+		grid-area: navigation;
+	}
+	#extra {
+		grid-area: extra;
+	}
+	#footer {
+		grid-area: footer;
+	}
+
+/* un switch avec 2 types de cas pour ipad */
+[(#ENV{layoutgala}|in_any{#LISTE{1,3,5,7,9,11,13,15,18,19,20,21,22,23,24,25,26,27,29,30,31,32,33,34,35,36,37,38,39}}|oui)
+	#maincontent {
+		grid-template-areas:
+			"ariane ariane"
+			"titre titre"
+			"content content"
+			"navigation extra";
+		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
+	}
+]
+[(#ENV{layoutgala}|in_any{#LISTE{2,4,6,8,10,12,14,16,17,28,40}}|oui)
+	#maincontent {
+		grid-template-areas:
+			"ariane ariane"
+			"titre titre"
+			"content content"
+			"extra navigation";
+		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
+	}
+]
+}
+
+
+@media screen and (min-width: [(#GET{LargeurContaineur})]px) {
+  [(#GET{layoutmoderne}|=={moderne}|oui)
+  [(#CONFIG{soyezcreateurs_layout/logorubriquenavigation,content}|=={header}|oui)
+  [(#CONFIG{soyezcreateurs_layout/logoarticlenavigation,content}|=={header}|oui)[
+	#maincontent {
+		margin-top: -(#CONFIG{soyezcreateurs_layout/decalageverticalcontenu,0})px;
+		position: relative;
+		grid-template-rows: auto auto 1fr;
+	}
+]]]]
+/* ce switch pour desktop */
+[(#ENV{layoutgala}|in_any{#LISTE{7,8,9,10,11,12,33,34,35,36,37,38,39,40}}|oui)
+	#shadow {
+		grid-template-areas:
+			"[(#GET{layoutmoderne}|=={moderne}|?{'header','.'})] header [(#GET{layoutmoderne}|=={moderne}|?{'header','.'})]"
+			". maincontent ."
+			"[(#GET{layoutmoderne}|=={moderne}|?{'footer','.'})] footer [(#GET{layoutmoderne}|=={moderne}|?{'footer','.'})]";
+		grid-template-columns: minmax(0, 1fr) [(#GET{LargeurContaineur})]px minmax(0, 1fr);
+	}
+]
+
+[(#ENV{layoutgala}|in_any{#LISTE{23,24,25,26,33,34}}|oui)
+	#maincontent {
+		grid-template-rows: max-content max-content max-content 1fr;
+	}
+]
+
+[(#ENV{layoutgala}|=={1}|oui)
+	#maincontent {
+		grid-template-areas:
+			"ariane ariane ariane"
+			"[(#GET{titreounavigation})] titre [(#GET{titreouextra})]"
+			"navigation content extra";
+		grid-template-columns: minmax(0, 1fr) minmax(0, 2fr) minmax(0, 1fr);
+	}
+]
+[(#ENV{layoutgala}|=={2}|oui)
+	#maincontent {
+		grid-template-areas:
+			"ariane ariane ariane"
+			"[(#GET{titreouextra})] titre [(#GET{titreounavigation})]"
+			"extra content navigation";
+		grid-template-columns: minmax(0, 1fr) minmax(0, 2fr) minmax(0, 1fr);
+	}
+]
+[(#ENV{layoutgala}|=={3}|oui)
+	#maincontent {
+		grid-template-areas:
+			"ariane ariane ariane"
+			"titre [(#GET{titreounavigation})] [(#GET{titreouextra})]"
+			"content navigation extra";
+		grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) minmax(0, 1fr);
+	}
+]
+[(#ENV{layoutgala}|=={4}|oui)
+	#maincontent {
+		grid-template-areas:
+			"ariane ariane ariane"
+			"titre [(#GET{titreouextra})] [(#GET{titreounavigation})]"
+			"content extra navigation";
+		grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) minmax(0, 1fr);
+	}
+]
+[(#ENV{layoutgala}|=={5}|oui)
+	#maincontent {
+		grid-template-areas:
+			"ariane ariane ariane"
+			"[(#GET{titreounavigation})] [(#GET{titreouextra})] titre"
+			"navigation extra content";
+		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 2fr);
+	}
+]
+[(#ENV{layoutgala}|=={6}|oui)
+	#maincontent {
+		grid-template-areas:
+			"ariane ariane ariane"
+			"[(#GET{titreouextra})] [(#GET{titreounavigation})] titre"
+			"extra navigation content";
+		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 2fr);
+	}
+]
+[(#ENV{layoutgala}|=={7}|oui)
+	#maincontent {
+		grid-template-areas:
+			"ariane ariane ariane"
+			"[(#GET{titreounavigation})] titre [(#GET{titreouextra})]"
+			"navigation content extra";
+		grid-template-columns: #GET{LargeurMenuGauche}px minmax(0, 1fr) #GET{LargeurMenuDroit}px;
+	}
+]
+[(#ENV{layoutgala}|=={8}|oui)
+	#maincontent {
+		grid-template-areas:
+			"ariane ariane ariane"
+			"[(#GET{titreouextra})] titre [(#GET{titreounavigation})]"
+			"extra content navigation";
+		grid-template-columns: #GET{LargeurMenuDroit}px minmax(0, 1fr) #GET{LargeurMenuGauche}px;
+	}
+]
+[(#ENV{layoutgala}|=={9}|oui)
+	#maincontent {
+		grid-template-areas:
+			"ariane ariane ariane"
+			"titre [(#GET{titreounavigation})] [(#GET{titreouextra})]"
+			"content navigation extra";
+		grid-template-columns: minmax(0, 1fr) #GET{LargeurMenuGauche}px #GET{LargeurMenuDroit}px;
+	}
+]
+[(#ENV{layoutgala}|=={10}|oui)
+	#maincontent {
+		grid-template-areas:
+			"ariane ariane ariane"
+			"titre [(#GET{titreouextra})] [(#GET{titreounavigation})]"
+			"content extra navigation";
+		grid-template-columns: minmax(0, 1fr) #GET{LargeurMenuDroit}px #GET{LargeurMenuGauche}px;
+	}
+]
+[(#ENV{layoutgala}|=={11}|oui)
+	#maincontent {
+		grid-template-areas:
+			"ariane ariane ariane"
+			"[(#GET{titreounavigation})] [(#GET{titreouextra})] titre"
+			"navigation extra content";
+		grid-template-columns: #GET{LargeurMenuGauche}px #GET{LargeurMenuDroit}px minmax(0, 1fr);
+	}
+]
+[(#ENV{layoutgala}|=={12}|oui)
+	#maincontent {
+		grid-template-areas:
+			"ariane ariane ariane"
+			"[(#GET{titreouextra})] [(#GET{titreounavigation})] titre"
+			"extra navigation content";
+		grid-template-columns: #GET{LargeurMenuDroit}px #GET{LargeurMenuGauche}px minmax(0, 1fr);
+	}
+]
+[(#ENV{layoutgala}|=={13}|oui)
+	#maincontent {
+		grid-template-areas:
+			"ariane ariane ariane"
+			"[(#GET{titreounavigation})] titre [(#GET{titreouextra})]"
+			"navigation content extra";
+		grid-template-columns: #GET{LargeurMenuGauche}px minmax(0, 1fr) #GET{LargeurMenuDroit}px;
+	}
+]
+[(#ENV{layoutgala}|=={14}|oui)
+	#maincontent {
+		grid-template-areas:
+			"ariane ariane ariane"
+			"[(#GET{titreouextra})] titre [(#GET{titreounavigation})]"
+			"extra content navigation";
+		grid-template-columns: #GET{LargeurMenuDroit}px minmax(0, 1fr) #GET{LargeurMenuGauche}px;
+	}
+]
+[(#ENV{layoutgala}|=={15}|oui)
+	#maincontent {
+		grid-template-areas:
+			"ariane ariane ariane"
+			"titre [(#GET{titreounavigation})] [(#GET{titreouextra})]"
+			"content navigation extra";
+		grid-template-columns: minmax(0, 1fr) #GET{LargeurMenuGauche}px #GET{LargeurMenuDroit}px;
+	}
+]
+[(#ENV{layoutgala}|=={16}|oui)
+	#maincontent {
+		grid-template-areas:
+			"ariane ariane ariane"
+			"titre [(#GET{titreouextra})] [(#GET{titreounavigation})]"
+			"content extra navigation";
+		grid-template-columns: minmax(0, 1fr) #GET{LargeurMenuDroit}px #GET{LargeurMenuGauche}px;
+	}
+]
+[(#ENV{layoutgala}|=={17}|oui)
+	#maincontent {
+		grid-template-areas:
+			"ariane ariane ariane"
+			"[(#GET{titreouextra})] [(#GET{titreounavigation})] titre"
+			"extra navigation content";
+		grid-template-columns: #GET{LargeurMenuDroit}px #GET{LargeurMenuGauche}px minmax(0, 1fr);
+	}
+]
+[(#ENV{layoutgala}|=={18}|oui)
+	#maincontent {
+		grid-template-areas:
+			"ariane ariane ariane"
+			"[(#GET{titreounavigation})] [(#GET{titreouextra})] titre"
+			"navigation extra content";
+		grid-template-columns: #GET{LargeurMenuGauche}px #GET{LargeurMenuDroit}px minmax(0, 1fr);
+	}
+]
+[(#ENV{layoutgala}|=={19}|oui)
+	#maincontent {
+		grid-template-areas:
+			"ariane ariane ariane"
+			"[(#GET{titreounavigation})] titre [(#GET{titreouextra})]"
+			"navigation content extra";
+		grid-template-columns: #GET{LargeurMenuGauche}px minmax(0, 2fr) minmax(0, 1fr);
+	}
+]
+[(#ENV{layoutgala}|=={20}|oui)
+	#maincontent {
+		grid-template-areas:
+			"ariane ariane ariane"
+			"[(#GET{titreounavigation})] titre [(#GET{titreouextra})]"
+			"navigation content extra";
+		grid-template-columns: minmax(0, 1fr) minmax(0, 2fr) #GET{LargeurMenuDroit}px;
+	}
+]
+[(#ENV{layoutgala}|=={21}|oui)
+	#maincontent {
+		grid-template-areas:
+			"ariane ariane ariane"
+			"titre [(#GET{titreounavigation})] [(#GET{titreouextra})]"
+			"content navigation extra";
+		grid-template-columns: minmax(0, 2fr) #GET{LargeurMenuGauche}px minmax(0, 1fr);
+	}
+]
+[(#ENV{layoutgala}|=={22}|oui)
+	#maincontent {
+		grid-template-areas:
+			"ariane ariane ariane"
+			"titre [(#GET{titreounavigation})] [(#GET{titreouextra})]"
+			"content navigation extra";
+		grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) #GET{LargeurMenuDroit}px;
+	}
+]
+[(#ENV{layoutgala}|=={23}|oui)
+	#maincontent {
+		grid-template-areas:
+			"ariane ariane"
+			"titre [(#GET{titreounavigation})]"
+			"content navigation"
+			"content extra";
+		grid-template-columns: minmax(0, 1fr) #GET{LargeurMenuGauche}px;
+	}
+]
+[(#ENV{layoutgala}|=={24}|oui)
+	#maincontent {
+		grid-template-areas:
+			"ariane ariane"
+			"[(#GET{titreounavigation})] titre"
+			"navigation content"
+			"extra content";
+		grid-template-columns: #GET{LargeurMenuGauche}px minmax(0, 1fr);
+	}
+]
+[(#ENV{layoutgala}|=={25}|oui)
+	#maincontent {
+		grid-template-areas:
+			"ariane ariane"
+			"titre [(#GET{titreounavigation})]"
+			"content navigation"
+			"content extra";
+		grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
+	}
+]
+[(#ENV{layoutgala}|=={26}|oui)
+	#maincontent {
+		grid-template-areas:
+			"ariane ariane"
+			"[(#GET{titreounavigation})] titre"
+			"navigation content"
+			"extra content";
+		grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
+	}
+]
+[(#ENV{layoutgala}|=={29}|oui)
+	#maincontent {
+		grid-template-areas:
+			"ariane ariane"
+			"[(#GET{titreounavigation})] titre"
+			"navigation content"
+			"extra extra";
+		grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
+	}
+]
+[(#ENV{layoutgala}|=={30}|oui)
+	#maincontent {
+		grid-template-areas:
+			"ariane ariane"
+			"titre [(#GET{titreounavigation})]"
+			"content navigation"
+			"extra extra";
+		grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
+	}
+]
+[(#ENV{layoutgala}|=={31}|oui)
+	#maincontent {
+		grid-template-areas:
+			"ariane ariane"
+			"[(#GET{titreounavigation})] titre"
+			"navigation content"
+			"extra extra";
+		grid-template-columns: #GET{LargeurMenuGauche}px minmax(0, 1fr);
+	}
+]
+[(#ENV{layoutgala}|=={32}|oui)
+	#maincontent {
+		grid-template-areas:
+			"ariane ariane"
+			"titre [(#GET{titreounavigation})]"
+			"content navigation"
+			"extra extra";
+		grid-template-columns: minmax(0, 1fr) #GET{LargeurMenuGauche}px;
+	}
+]
+[(#ENV{layoutgala}|=={33}|oui)
+	#maincontent {
+		grid-template-areas:
+			"ariane ariane"
+			"titre [(#GET{titreounavigation})]"
+			"content navigation"
+			"content extra";
+		grid-template-columns: minmax(0, 1fr) #GET{LargeurMenuGauche}px;
+	}
+]
+[(#ENV{layoutgala}|=={34}|oui)
+	#maincontent {
+		grid-template-areas:
+			"ariane ariane"
+			"[(#GET{titreounavigation})] titre"
+			"navigation content"
+			"extra content";
+		grid-template-columns: #GET{LargeurMenuGauche}px minmax(0, 1fr);
+	}
+]
+[(#ENV{layoutgala}|=={35}|oui)
+	#maincontent {
+		grid-template-areas:
+			"ariane ariane"
+			"titre [(#GET{titreounavigation})]"
+			"content navigation"
+			"extra navigation";
+		grid-template-columns: minmax(0, 1fr) #GET{LargeurMenuGauche}px;
+	}
+]
+[(#ENV{layoutgala}|=={36}|oui)
+	#maincontent {
+		grid-template-areas:
+			"ariane ariane"
+			"[(#GET{titreounavigation})] titre"
+			"navigation content"
+			"navigation extra";
+		grid-template-columns: #GET{LargeurMenuGauche}px minmax(0, 1fr);
+	}
+]
+[(#ENV{layoutgala}|=={37}|oui)
+	#maincontent {
+		grid-template-areas:
+			"ariane ariane"
+			"titre [(#GET{titreounavigation})]"
+			"content navigation"
+			"extra extra";
+		grid-template-columns: minmax(0, 1fr) #GET{LargeurMenuGauche}px;
+	}
+]
+[(#ENV{layoutgala}|=={38}|oui)
+	#maincontent {
+		grid-template-areas:
+			"ariane ariane"
+			"[(#GET{titreounavigation})] titre"
+			"navigation content"
+			"extra extra";
+		grid-template-columns: #GET{LargeurMenuGauche}px minmax(0, 1fr);
+	}
+]
+}
diff --git a/liste_mail.html b/liste_mail.html
index 3d72e94a6c42bd32c622eaea5a1df6f1bb7ac1f8..34a46fc2f31a680fd05f2222d5e53420c50b66e9 100644
--- a/liste_mail.html
+++ b/liste_mail.html
@@ -16,12 +16,6 @@
 >
 <div class="texte">
 <main id="main">
-[(#CONFIG{soyezcreateurs_layout/positioncartouchetitre,contenu}|=={contenu}|oui)
-<div class="cartouche">
-<div class="titrepage"><h1 class="titre">#LST_NAME</h1></div>
-<div class="datepublication"><span><:soyezcreateurs:publiele:> [(#DATE|nom_jour)] [(#DATE|affdate)]</span></div>
-</div>
-]
 	<div id="letexte">
 	[<div class="chapo">(#DESCRIPTIF)</div>]
 [(#REM) Affichage du d�tail de la liste ]
@@ -52,15 +46,10 @@
 >
 <div class="texte">
 <main id="main">
-[(#CONFIG{soyezcreateurs_layout/positioncartouchetitre,contenu}|=={contenu}|oui)
-<div class="cartouche">
-<div class="titrepage"><h1><:soyezcreateurs:newsletter:></h1></div>
-</div>
-]
 	<div id="letexte">
 
 <BOUCLE_listes(CM_LISTS){lst_moderation!=closed}{par lst_name}>
-	
+
 	<B_lettres>
 	<h2><a href="[(#URL_PAGE{liste_mail}|parametre_url{'lst_id',#LST_ID})]"[ title="(#LST_NAME|supprimer_tags|attribut_html)"]>#LST_NAME</a></h2>
 	<ul>
@@ -81,4 +70,4 @@
 >
 
 <//B_messages>
-#FILTRE{mini_html}
\ No newline at end of file
+#FILTRE{mini_html}
diff --git a/mot.html b/mot.html
index a2d4e35082ab07481f9d8a17e48b6a13e209a6f6..6fcbe82e0a2bb7a4b7648cc9040e435025fa78a9 100644
--- a/mot.html
+++ b/mot.html
@@ -1,5 +1,4 @@
 <BOUCLE_mot_principal(MOTS){id_mot}>
-[(#CONFIG{soyezcreateurs_layout/cadragelogocontenuprincipal,entier}|=={recadre}|oui)[(#SET{logo_objet,[(#LOGO_MOT_NORMAL|sinon{#LOGO_GROUPE_NORMAL}|sinon{#LOGO_RUBRIQUE_NORMAL}|sinon{#CHEMIN{images/nature-2683474_1920.jpg}}|image_focus{#CONFIG{soyezcreateurs_layout/largeurlogocontenuprincipal,#CONFIG{soyezcreateurs_layout/largeurlogocontenuautomatique,64}},#CONFIG{soyezcreateurs_layout/hauteurlogocontenuprincipal,#CONFIG{soyezcreateurs_layout/hauteurlogocontenuautomatique,64}}})]})]][(#CONFIG{soyezcreateurs_layout/cadragelogocontenuprincipal,entier}|=={entier}|oui)[(#SET{logo_objet,[(#LOGO_MOT_NORMAL|sinon{#LOGO_GROUPE_NORMAL}|sinon{#LOGO_RUBRIQUE_NORMAL}|sinon{#CHEMIN{images/nature-2683474_1920.jpg}}|image_reduire{#CONFIG{soyezcreateurs_layout/largeurlogocontenuprincipal,#CONFIG{soyezcreateurs_layout/largeurlogocontenuautomatique,64}},#CONFIG{soyezcreateurs_layout/hauteurlogocontenuprincipal,#CONFIG{soyezcreateurs_layout/hauteurlogocontenuautomatique,64}}})]})]]
 [(#SET{titretop,[(#TITRE|attribut_html|sc_nettoyer_marqueur|texte_script)]})]
 [(#SET{title,<:soyezcreateurs:mot|texte_script:>: [(#TITRE|supprimer_tags|texte_script)]})]
 <INCLURE{fond=noisettes/header/header}
@@ -14,13 +13,6 @@
 <div class="texte">
 <main id="main">
 <!-- Contenu : Le mot choisi -->
-[(#CONFIG{soyezcreateurs_layout/positioncartouchetitre,contenu}|=={contenu}|oui)
-<div class="cartouche surlignable">
-	[(#CONFIG{soyezcreateurs_layout/logoarticlenavigation,content}|=={contenthauttitre}|oui)[<img src="(#GET{logo_objet}|extraire_attribut{src})" class="logo_objet contenthauttitre" alt="" width="[(#GET{logo_objet}|largeur)]" height="[(#GET{logo_objet}|hauteur)]" />]]
-	<div class="titrepage"><h1 class="#EDIT{titre} titre-texte">[(#CONFIG{soyezcreateurs_layout/logoarticlenavigation,content}|=={content}|oui)[<img src="(#GET{logo_objet}|extraire_attribut{src})" class="logo_objet" alt="" width="[(#GET{logo_objet}|largeur)]" height="[(#GET{logo_objet}|hauteur)]" />]][(#TITRE)]</h1></div>
-	[(#CONFIG{soyezcreateurs_layout/logoarticlenavigation,content}|=={contentbastitre}|oui)[<img src="(#GET{logo_objet}|extraire_attribut{src})" class="logo_objet contentbastitre" alt="" width="[(#GET{logo_objet}|largeur)]" height="[(#GET{logo_objet}|hauteur)]" />]]
-</div>
-]
 <div id="letexte">
 [<div class="#EDIT{descriptif} descriptif">(#DESCRIPTIF)</div>]
 [<div class="#EDIT{texte}">(#TEXTE)</div>]
@@ -46,7 +38,7 @@
 	<BOUCLE_articlesarbo(ARTICLES) {branche_mot}{id_secteur}>
 		<li><a href="#ARTICLE_URL" [title="(#DESCRIPTIF|supprimer_tags|attribut_html)"]>[(#TITRE)]</a><B_MotsAssociesMot> <span class="secondary-information">(<BOUCLE_MotsAssociesMot(MOTS){type==^[^_]}{id_article}{par titre}{" / "}><a href="[(#PLUGIN{critere_mots}|?{[(#URL_PAGE{mots_filtres}|parametre_url{mots,#ARRAY{mots,#ID_MOT}}|replace{'\\[\\]','%5B%5D'})],#URL_MOT})]" rel="tag"[ title="(#DESCRIPTIF|supprimer_tags|attribut_html)"]>[(#TITRE|sc_replace{'_',' '})]</a></BOUCLE_MotsAssociesMot>)</span></B_MotsAssociesMot></li>
 	</BOUCLE_articlesarbo>
-	</ul>	
+	</ul>
 	</B_articlesarbo>
 	</BOUCLE_PluginsMotsArborescentsMots>
 	<B_articles>
@@ -55,7 +47,7 @@
 	<BOUCLE_articles(ARTICLES) {id_mot}{id_secteur}>
 		<li><a href="#ARTICLE_URL" [title="(#DESCRIPTIF|supprimer_tags|attribut_html)"]>[(#TITRE)]</a><B_MotsAssocies> <span class="secondary-information">(<BOUCLE_MotsAssocies(MOTS){type==^[^_]}{id_article}{par titre}{" / "}><a href="[(#PLUGIN{critere_mots}|?{[(#URL_PAGE{mots_filtres}|parametre_url{mots,#ARRAY{mots,#ID_MOT}}|replace{'\\[\\]','%5B%5D'})],#URL_MOT})]" rel="tag"[ title="(#DESCRIPTIF|supprimer_tags|attribut_html)"]>[(#TITRE|sc_replace{'_',' '})]</a></BOUCLE_MotsAssocies>)</span></B_MotsAssocies></li>
 	</BOUCLE_articles>
-	</ul>	
+	</ul>
 	</B_articles>
 	<//B_PluginsMotsArborescentsMots>
 </BOUCLE_RubriquesArticles>
@@ -98,7 +90,6 @@
 
 </BOUCLE_mot_principal>
 <BOUCLE_Groupe_principal(GROUPES_MOTS){id_groupe}>
-[(#CONFIG{soyezcreateurs_layout/cadragelogocontenuprincipal,entier}|=={recadre}|oui)[(#SET{logo_objet,[(#LOGO_GROUPE_NORMAL|sinon{#LOGO_RUBRIQUE_NORMAL}|sinon{#CHEMIN{images/nature-2683474_1920.jpg}}|image_focus{#CONFIG{soyezcreateurs_layout/largeurlogocontenuprincipal,#CONFIG{soyezcreateurs_layout/largeurlogocontenuautomatique,64}},#CONFIG{soyezcreateurs_layout/hauteurlogocontenuprincipal,#CONFIG{soyezcreateurs_layout/hauteurlogocontenuautomatique,64}}})]})]][(#CONFIG{soyezcreateurs_layout/cadragelogocontenuprincipal,entier}|=={entier}|oui)[(#SET{logo_objet,[(#LOGO_GROUPE_NORMAL|sinon{#LOGO_RUBRIQUE_NORMAL}|sinon{#CHEMIN{images/nature-2683474_1920.jpg}}|image_reduire{#CONFIG{soyezcreateurs_layout/largeurlogocontenuprincipal,#CONFIG{soyezcreateurs_layout/largeurlogocontenuautomatique,64}},#CONFIG{soyezcreateurs_layout/hauteurlogocontenuprincipal,#CONFIG{soyezcreateurs_layout/hauteurlogocontenuautomatique,64}}})]})]]
 [(#SET{titretop,[(#TITRE|attribut_html|sc_nettoyer_marqueur|texte_script)]})]
 [(#SET{title,<:soyezcreateurs:motsgroupe|texte_script:>: [(#TITRE|supprimer_tags|texte_script)]})]
 <INCLURE{fond=noisettes/header/header}
@@ -111,13 +102,6 @@
 <div class="texte">
 <main id="main">
 <!-- Contenu : Tous les mots -->
-[(#CONFIG{soyezcreateurs_layout/positioncartouchetitre,contenu}|=={contenu}|oui)
-<div class="cartouche surlignable">
-	[(#CONFIG{soyezcreateurs_layout/logoarticlenavigation,content}|=={contenthauttitre}|oui)[<img src="(#GET{logo_objet}|extraire_attribut{src})" class="logo_objet contenthauttitre" alt="" width="[(#GET{logo_objet}|largeur)]" height="[(#GET{logo_objet}|hauteur)]" />]]
-	<div class="titrepage"><h1 class="#EDIT{titre} titre-texte">[(#CONFIG{soyezcreateurs_layout/logoarticlenavigation,content}|=={content}|oui)[<img src="(#GET{logo_objet}|extraire_attribut{src})" class="logo_objet" alt="" width="[(#GET{logo_objet}|largeur)]" height="[(#GET{logo_objet}|hauteur)]" />]][(#TITRE)]</h1></div>
-	[(#CONFIG{soyezcreateurs_layout/logoarticlenavigation,content}|=={contentbastitre}|oui)[<img src="(#GET{logo_objet}|extraire_attribut{src})" class="logo_objet contentbastitre" alt="" width="[(#GET{logo_objet}|largeur)]" height="[(#GET{logo_objet}|hauteur)]" />]]
-</div>
-]
 <!-- Autres mots-clefs du meme groupe -->
 
 	<div id="letexte">
@@ -153,7 +137,6 @@
 </main>
 </div><!-- Fin de .texte -->
 </BOUCLE_Groupe_principal>
-[(#CONFIG{soyezcreateurs_layout/cadragelogocontenuprincipal,entier}|=={recadre}|oui)[(#SET{logo_objet,[(#LOGO_RUBRIQUE_NORMAL|sinon{#CHEMIN{images/nature-2683474_1920.jpg}}|image_focus{#CONFIG{soyezcreateurs_layout/largeurlogocontenuprincipal,#CONFIG{soyezcreateurs_layout/largeurlogocontenuautomatique,64}},#CONFIG{soyezcreateurs_layout/hauteurlogocontenuprincipal,#CONFIG{soyezcreateurs_layout/hauteurlogocontenuautomatique,64}}})]})]][(#CONFIG{soyezcreateurs_layout/cadragelogocontenuprincipal,entier}|=={entier}|oui)[(#SET{logo_objet,[(#LOGO_RUBRIQUE_NORMAL|sinon{#CHEMIN{images/nature-2683474_1920.jpg}}|image_reduire{#CONFIG{soyezcreateurs_layout/largeurlogocontenuprincipal,#CONFIG{soyezcreateurs_layout/largeurlogocontenuautomatique,64}},#CONFIG{soyezcreateurs_layout/hauteurlogocontenuprincipal,#CONFIG{soyezcreateurs_layout/hauteurlogocontenuautomatique,64}}})]})]]
 [(#SET{titretop,<:soyezcreateurs:mots_title|sc_nettoyer_marqueur|texte_script:>})]
 <INCLURE{fond=noisettes/header/header}
 	{title=<:soyezcreateurs:mots_title|texte_script:>}
@@ -164,13 +147,6 @@
 <div class="texte">
 <main id="main">
 <!-- Contenu : Tous les mots -->
-[(#CONFIG{soyezcreateurs_layout/positioncartouchetitre,contenu}|=={contenu}|oui)
-<div class="cartouche">
-	[(#CONFIG{soyezcreateurs_layout/logoarticlenavigation,content}|=={contenthauttitre}|oui)[<img src="(#GET{logo_objet}|extraire_attribut{src})" class="logo_objet contenthauttitre" alt="" width="[(#GET{logo_objet}|largeur)]" height="[(#GET{logo_objet}|hauteur)]" />]]
-	<div class="titrepage"><h1 class="titre-texte">[(#CONFIG{soyezcreateurs_layout/logoarticlenavigation,content}|=={content}|oui)[<img src="(#GET{logo_objet}|extraire_attribut{src})" class="logo_objet" alt="" width="[(#GET{logo_objet}|largeur)]" height="[(#GET{logo_objet}|hauteur)]" />]]<:soyezcreateurs:mots_title:></h1></div>
-	[(#CONFIG{soyezcreateurs_layout/logoarticlenavigation,content}|=={contentbastitre}|oui)[<img src="(#GET{logo_objet}|extraire_attribut{src})" class="logo_objet contentbastitre" alt="" width="[(#GET{logo_objet}|largeur)]" height="[(#GET{logo_objet}|hauteur)]" />]]
-</div>
-]
 	<div id="letexte">
 
 <BOUCLE_groupes(GROUPES_MOTS){par titre}{titre==(#ENV{filtremot,'^[^_]'})}>
@@ -215,4 +191,4 @@
 	{titretop=#GET{titretop}}
 	{env}
 >
-#FILTRE{mini_html}
\ No newline at end of file
+#FILTRE{mini_html}
diff --git a/mots_filtres.html b/mots_filtres.html
index 54ea350c7b4860118f0dc4e76857d75ba01b2285..0348575ffe2ed634aa82996c355d4d8671d989bd 100644
--- a/mots_filtres.html
+++ b/mots_filtres.html
@@ -12,14 +12,9 @@
 >
 <div class="texte">
 <main id="main">
-	
-	<INCLURE{fond=noisettes/navigation/frmrechercheparmots,env}>	
+
+	<INCLURE{fond=noisettes/navigation/frmrechercheparmots,env}>
 	<div class="clearing">&nbsp;</div>
-[(#CONFIG{soyezcreateurs_layout/positioncartouchetitre,contenu}|=={contenu}|oui)
-<div class="cartouche">
-<div class="titrepage"><h1><:resultats_recherche:></h1></div>
-</div>
-]
 	<div id="letexte">
 	[(#SET{nbelementstrouves,0})]
 	<B_recherche_par>
@@ -49,4 +44,4 @@
 	env
 	}
 >
-#FILTRE{mini_html}
\ No newline at end of file
+#FILTRE{mini_html}
diff --git a/mots_filtres_agenda.html b/mots_filtres_agenda.html
index 7940550c19b7aa6d1af65cf1fb61b2eec5e6cae1..f98ca3db985d6b6e2a83c33f8217697a630b8c3c 100644
--- a/mots_filtres_agenda.html
+++ b/mots_filtres_agenda.html
@@ -12,13 +12,8 @@
 >
 <div class="texte">
 <main id="main">
-	<INCLURE{fond=noisettes/navigation/frmrechercheparmots,env,type=evenements}>	
+	<INCLURE{fond=noisettes/navigation/frmrechercheparmots,env,type=evenements}>
 	<div class="clearing">&nbsp;</div>
-[(#CONFIG{soyezcreateurs_layout/positioncartouchetitre,contenu}|=={contenu}|oui)
-<div class="cartouche">
-<div class="titrepage"><h1><:resultats_recherche:></h1></div>
-</div>
-]
 	<div id="letexte">
 	[(#SET{nbelementstrouves,0})]
 	<B_recherche_par>
@@ -48,4 +43,4 @@
 	env
 	}
 >
-#FILTRE{mini_html}
\ No newline at end of file
+#FILTRE{mini_html}
diff --git a/noisettes/agenda/agendaliste.html b/noisettes/agenda/agendaliste.html
index 1c6156e5f73526c17d00ab3906e60ea459808a22..15f05e662e1b77d374bb177608ea44044b9655ff 100644
--- a/noisettes/agenda/agendaliste.html
+++ b/noisettes/agenda/agendaliste.html
@@ -2,11 +2,6 @@
 <BOUCLE_rubrique_principal(RUBRIQUES){id_rubrique}>
 <div class="texte">
 <main id="main">
-[(#CONFIG{soyezcreateurs_layout/positioncartouchetitre,contenu}|=={contenu}|oui)
-<div class="cartouche">
-<div class="titrepage"><h1 class="#EDIT{titre}">[(#SET{lelogo,[(#LOGO_RUBRIQUE_NORMAL|image_reduire{#CONFIG{soyezcreateurs_layout/largeurlogocontenuautomatique,64},#CONFIG{soyezcreateurs_layout/hauteurlogocontenuautomatique,64}})]})][<img class="logo_rubrique" src="(#GET{lelogo}|extraire_attribut{src})"[ width="(#GET{lelogo}|largeur)"][ height="(#GET{lelogo}|hauteur)"] alt="" />][(#TITRE)] - [(#CONFIG{soyezcreateurs/agendascolaire,annuel}|=={annuel}|oui)[(#ENV{date_ev,[(#ENV{date})]}|annee)]][(#CONFIG{soyezcreateurs/agendascolaire,annuel}|=={scolaire}|oui)[(#ENV{date_ev,[(#ENV{date})]}|sc_annee_scolaire)]-[(#ENV{date_ev,[(#ENV{date})]}|sc_annee_scolaire|plus{1})]]</h1></div>
-</div>
-]
 [(#CONFIG{soyezcreateurs_layout/positioncartouche,bas}|=={haut}|oui)[(#INCLURE{fond=noisettes/cartouches/themes,id_rubrique=#ID_SECTEUR,date_ev,mots,id_mot})]]
 	<div id="letexte">
 [<div class="#EDIT{descriptif} descriptif">(#DESCRIPTIF)</div>]
@@ -29,4 +24,4 @@
 
 
 </BOUCLE_rubrique_principal>
-#FILTRE{mini_html}
\ No newline at end of file
+#FILTRE{mini_html}
diff --git a/noisettes/agenda/agendathematique.html b/noisettes/agenda/agendathematique.html
index ebf3a8faa196e4d8c8823f50efe488d6cf25b424..1b676b15efc8a54d6b79e7b5b450710651055f9b 100644
--- a/noisettes/agenda/agendathematique.html
+++ b/noisettes/agenda/agendathematique.html
@@ -2,11 +2,6 @@
 <BOUCLE_rubrique_principal(RUBRIQUES){id_rubrique}>
 <div class="texte">
 <main id="main">
-[(#CONFIG{soyezcreateurs_layout/positioncartouchetitre,contenu}|=={contenu}|oui)
-<div class="cartouche">
-<div class="titrepage"><h1 class="#EDIT{titre}">[(#SET{lelogo,[(#LOGO_RUBRIQUE_NORMAL|image_reduire{#CONFIG{soyezcreateurs_layout/largeurlogocontenuautomatique,64},#CONFIG{soyezcreateurs_layout/hauteurlogocontenuautomatique,64}})]})][<img class="logo_rubrique" src="(#GET{lelogo}|extraire_attribut{src})"[ width="(#GET{lelogo}|largeur)"][ height="(#GET{lelogo}|hauteur)"] alt="" />][(#TITRE)]</h1></div>
-</div>
-]
 	<div id="letexte" class="surlignable">
 [<div class="#EDIT{descriptif} descriptif">(#DESCRIPTIF)</div>]
 [<div class="#EDIT{texte}">(#TEXTE)</div>]
diff --git a/noisettes/cartouchetitre/bank_retour_attente.html b/noisettes/cartouchetitre/bank_retour_attente.html
new file mode 100644
index 0000000000000000000000000000000000000000..a0c5f88a94bc5c5e823c7c5840d3729b1e045653
--- /dev/null
+++ b/noisettes/cartouchetitre/bank_retour_attente.html
@@ -0,0 +1,4 @@
+<div class="cartouche">
+	<div class="titrepage"><h1><:bank:titre_reglement_attente:></h1></div>
+</div>
+#FILTRE{mini_html}
diff --git a/noisettes/cartouchetitre/bank_retour_echec.html b/noisettes/cartouchetitre/bank_retour_echec.html
new file mode 100644
index 0000000000000000000000000000000000000000..0ce85e909765c50d3cf73137ee07f9b9e43f0c5e
--- /dev/null
+++ b/noisettes/cartouchetitre/bank_retour_echec.html
@@ -0,0 +1,4 @@
+<div class="cartouche">
+	<div class="titrepage"><h1><:bank:titre_reglement_annule:></h1></div>
+</div>
+#FILTRE{mini_html}
diff --git a/noisettes/cartouchetitre/bank_retour_ok.html b/noisettes/cartouchetitre/bank_retour_ok.html
new file mode 100644
index 0000000000000000000000000000000000000000..5f774451b118dc66c6c1259060b357318caa2544
--- /dev/null
+++ b/noisettes/cartouchetitre/bank_retour_ok.html
@@ -0,0 +1,4 @@
+<div class="cartouche">
+	<div class="titrepage"><h1><:bank:titre_reglement_ok:></h1></div>
+</div>
+#FILTRE{mini_html}
diff --git a/noisettes/cartouchetitre/telecharger.html b/noisettes/cartouchetitre/telecharger.html
index 337ad3ee963b02881fbed01c69650fb5d83c4433..6491db45ae7286201a0f99793d7476d7226aab53 100644
--- a/noisettes/cartouchetitre/telecharger.html
+++ b/noisettes/cartouchetitre/telecharger.html
@@ -1,4 +1,4 @@
 	<div class="cartouche">
 		<div class="titrepage"><h1><:medias:info_documents:></h1></div>
-	</div><!-- Fin de .texte -->
-#FILTRE{mini_html}
\ No newline at end of file
+	</div>
+#FILTRE{mini_html}
diff --git a/noisettes/footer/footer.html b/noisettes/footer/footer.html
index 2d9b480f4c658f7c0e07c79ab978a8bd0469ddd2..d8712069cb0f456b81ba8ba60969ac15a3ac55ca 100644
--- a/noisettes/footer/footer.html
+++ b/noisettes/footer/footer.html
@@ -1,3 +1,4 @@
+	</div><!-- id="contenu" -->
 <BOUCLE_TheRub(RUBRIQUES){id_rubrique}><BOUCLE_TypeRubrique(HIERARCHIE){id_rubrique}{tout}{type_mot=_TypeRubrique}{inverse} {0,1}><BOUCLE_Mot_TypeRubrique(MOTS){type=_TypeRubrique}{id_rubrique}>[(#CHEMIN{noisettes/footer/footer_typerubrique_#TITRE.html}|oui)
 [(#ENV{template}|=={'Sommaire'}|non)<INCLURE{fond=noisettes/footer/footer_typerubrique_#TITRE,racinetype=#_TypeRubrique:ID_RUBRIQUE,env}>]
 ]</BOUCLE_Mot_TypeRubrique></BOUCLE_TypeRubrique>
@@ -12,7 +13,6 @@
 ]
 <INCLURE{fond=noisettes/footer/#GET{noisettefooter},env}>
 <//B_TheRub>
-</div><!-- id="contenu" -->
 <INCLURE{fond=noisettes/footer/footer_pied,env}>
 <a class="retourtop triadeA" href="[(#SELF|trim{'/'})]#[(#ENV{titretop}|sinon{<:soyezcreateurs:sommaire|sc_nettoyer_marqueur:>})]" title="<:soyezcreateurs:retourtop:>" aria-label="<:soyezcreateurs:retourtop:>"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-chevron-thin-up"></use></svg><span class="hide"><:soyezcreateurs:retourtop:></span></a>
 [<script src="(#PRODUIRE{fond=javascripts.js})" type="text/javascript"></script>]
diff --git a/noisettes/footer/footer_modeblog.html b/noisettes/footer/footer_modeblog.html
index c8320e7b7c435ecc1d6749f7973db1ae749dd48c..274f541658a511164685d68aa27f6cd107d9adce 100644
--- a/noisettes/footer/footer_modeblog.html
+++ b/noisettes/footer/footer_modeblog.html
@@ -1,7 +1,6 @@
 <a class="retourtop triadeA" href="[(#SELF|trim{'/'})]#[(#ENV{titretop}|sinon{<:soyezcreateurs:sommaire|sc_nettoyer_marqueur:>})]" title="<:soyezcreateurs:retourtop:>" aria-label="<:soyezcreateurs:retourtop:>"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-chevron-thin-up"></use></svg><span class="hide"><:soyezcreateurs:retourtop:></span></a>
-</div><!-- id="content" -->
-	</div><!-- id="wrapper" -->
-	<nav><div id="navigation" class="equilibre stackable">
+	</div><!-- id="content" -->
+	<nav aria-label="Menu de la section" id="navigation">
 [(#CONFIG{soyezcreateurs/logoheader,header}|=={navigation}|oui)#INCLURE{fond=noisettes/logosite}]
 <div id="menu" class="navstuff">
 	<div class="espaceavant">
@@ -38,9 +37,9 @@
 [(#CHEMIN{noisettes/navigation/fin_navigation.html}|oui)
 <INCLURE{fond=noisettes/navigation/fin_navigation,env}>
 ]
-	</div><!-- id="navigation" --></nav>
+	</nav><!-- id="navigation" -->
 
-	<aside><div id="extra" class="navStuff equilibre stackable laststackable">
+	<aside id="extra" class="navStuff">
 [<div class="rightmenu">(#PLUGIN{mesfavoris}|oui)<INCLURE{fond=noisettes/extra/favoris}></div>]
 [(#CONFIG{soyezcreateurs/citationsheader,extra}|=={extra}|oui)<INCLURE{fond=noisettes/extra/citations}>]
 [(#PLUGIN{splickr}|oui)<INCLURE{fond=noisettes/extra/splickr}>]
@@ -49,7 +48,7 @@
 ]
 <div class="rightmenu">
 	[(#PLUGIN{AGENDA}|oui)[(#CONFIG{soyezcreateurs/miniagenda,on}|=={on}|et{#CONFIG{soyezcreateurs/mode_affichage,communiquant}|=={portailcognac}|non}|et{#CONFIG{soyezcreateurs_layout/pictogrammesoutils,non}|=={avecoutils}|non})<INCLURE{fond=noisettes/agenda/miniagenda,env,ajax}>]]
-	
+
 	[(#ENV{template}|=={'Sommaire'}|?{[(#INCLURE{fond=noisettes/menus/menu_right_sommaire,env})]})]
 	<!--<B_Breves_Sommaire>
 	<ul>
@@ -93,5 +92,5 @@
 [(#CONFIG{soyezcreateurs/positionfluxrss,bottom}|=={bottom}|oui)<div class="centrer_div  rss_bottom">
 <INCLURE{fond=noisettes/liensnav/reseaux_sociaux}>
 </div>]
-	</div><!-- id="extra" --></aside>
-#FILTRE{mini_html}
\ No newline at end of file
+	</aside><!-- id="extra" -->
+#FILTRE{mini_html}
diff --git a/noisettes/footer/footer_modecommuniquant.html b/noisettes/footer/footer_modecommuniquant.html
index 86f472406cb30f31bd0a17a2f0723feaca358b4a..c692f1e26f7105c98c28ac01d2687a57ffca970a 100644
--- a/noisettes/footer/footer_modecommuniquant.html
+++ b/noisettes/footer/footer_modecommuniquant.html
@@ -1,3 +1,2 @@
-		</div><!-- id="content" -->
-	</div><!-- id="wrapper" -->
-#FILTRE{mini_html}
\ No newline at end of file
+	</div><!-- id="content" -->
+#FILTRE{mini_html}
diff --git a/noisettes/footer/footer_modeedito.html b/noisettes/footer/footer_modeedito.html
index 693aabd447d740fe1c61c49aef9e1dcb88e45fd3..6efe6402ac45b09a7b2a18d1d155629852f757a7 100644
--- a/noisettes/footer/footer_modeedito.html
+++ b/noisettes/footer/footer_modeedito.html
@@ -1,6 +1,5 @@
-		</div><!-- id="content" -->
-	</div><!-- id="wrapper" -->
-	<nav aria-label="Menu de la section"><div id="navigation" class="equilibre stackable">
+	</div><!-- id="content" -->
+	<nav aria-label="Menu de la section" id="navigation">
 [(#CONFIG{soyezcreateurs/logoheader,header}|=={navigation}|oui)#INCLURE{fond=noisettes/logosite}]
 <div id="menu" class="navstuff">#SET{logovu,''}
 [(#ENV{id_article}|oui)[(#CONFIG{soyezcreateurs_layout/logoarticlenavigation,content}|=={navigation}|oui)[<img src="(#LOGO_ARTICLE_NORMAL|image_reduire{#CONFIG{soyezcreateurs_layout/largeurmenugauche,180},0}|extraire_attribut{src})" class="logo_article" alt="" width="[(#LOGO_ARTICLE_NORMAL|image_reduire{#CONFIG{soyezcreateurs_layout/largeurmenugauche,180},0}|largeur)]" height="[(#LOGO_ARTICLE_NORMAL|image_reduire{#CONFIG{soyezcreateurs_layout/largeurmenugauche,180},0}|hauteur)]" />#SET{logovu,1}]
@@ -163,6 +162,6 @@
 [(#CHEMIN{noisettes/navigation/fin_navigation.html}|oui)
 <INCLURE{fond=noisettes/navigation/fin_navigation,env}>
 ]
-	</div><!-- id="navigation" --></nav>
+	</nav><!-- id="navigation" -->
 <INCLURE{fond=noisettes/menus/menu_right,id_rubrique,id_article,template,env}>
 #FILTRE{mini_html}
diff --git a/noisettes/footer/footer_modemairie.html b/noisettes/footer/footer_modemairie.html
index 86f472406cb30f31bd0a17a2f0723feaca358b4a..c692f1e26f7105c98c28ac01d2687a57ffca970a 100644
--- a/noisettes/footer/footer_modemairie.html
+++ b/noisettes/footer/footer_modemairie.html
@@ -1,3 +1,2 @@
-		</div><!-- id="content" -->
-	</div><!-- id="wrapper" -->
-#FILTRE{mini_html}
\ No newline at end of file
+	</div><!-- id="content" -->
+#FILTRE{mini_html}
diff --git a/noisettes/footer/footer_modeportail.html b/noisettes/footer/footer_modeportail.html
index 8b2388674e1af838e9a7fdc54742c19296147b01..13649d3d7cfe830c0f407bce0d2132834d9433f2 100644
--- a/noisettes/footer/footer_modeportail.html
+++ b/noisettes/footer/footer_modeportail.html
@@ -1,5 +1,4 @@
-</div><!-- id="content" -->
-	</div><!-- id="wrapper" -->
-[(#INCLURE{fond=noisettes/sommaire/sommaire_modeportail_pictosgauche})]
+	</div><!-- id="content" -->
+[(#INCLURE{fond=noisettes/sommaire/sommaire_modeportail_pictosgauche})]
 <INCLURE{fond=noisettes/sommaire/sommaire_modeportail_pictosdroite}>
-#FILTRE{mini_html}
\ No newline at end of file
+#FILTRE{mini_html}
diff --git a/noisettes/footer/footer_modeportailagence.html b/noisettes/footer/footer_modeportailagence.html
index 86f472406cb30f31bd0a17a2f0723feaca358b4a..c692f1e26f7105c98c28ac01d2687a57ffca970a 100644
--- a/noisettes/footer/footer_modeportailagence.html
+++ b/noisettes/footer/footer_modeportailagence.html
@@ -1,3 +1,2 @@
-		</div><!-- id="content" -->
-	</div><!-- id="wrapper" -->
-#FILTRE{mini_html}
\ No newline at end of file
+	</div><!-- id="content" -->
+#FILTRE{mini_html}
diff --git a/noisettes/footer/footer_modeportailcognac.html b/noisettes/footer/footer_modeportailcognac.html
index 86f472406cb30f31bd0a17a2f0723feaca358b4a..e7de6c7ff1a11990aedcf7e556da1c602bd1efe8 100644
--- a/noisettes/footer/footer_modeportailcognac.html
+++ b/noisettes/footer/footer_modeportailcognac.html
@@ -1,3 +1,5 @@
-		</div><!-- id="content" -->
-	</div><!-- id="wrapper" -->
-#FILTRE{mini_html}
\ No newline at end of file
+[(#CONFIG{soyezcreateurs_layout/navigationaccueilcognac,masque}|=={masque}|oui)
+	</div><!-- id="content" -->]
+[(#CONFIG{soyezcreateurs_layout/navigationaccueilcognac,masque}|=={affiche}|oui)
+<INCLURE{fond=noisettes/footer/footer_modeedito,env}>]
+#FILTRE{mini_html}
diff --git a/noisettes/footer/footer_pied.html b/noisettes/footer/footer_pied.html
index 4ac36b5c0fdd2753f6297345934257d458401b11..14cf3364dd8da3ca38c729723c6e9514c2b233b6 100644
--- a/noisettes/footer/footer_pied.html
+++ b/noisettes/footer/footer_pied.html
@@ -1,10 +1,11 @@
-	<footer aria-label="Pied de page"><div id="footer" class="clearbottom clearfix">
+	</div><!-- id="maincontent" -->
+	<footer aria-label="Pied de page" id="footer"><div class="clearbottom clearfix">
 	<div id="footer_inner">
 [(#SET{div_menufooter,0})]
 		<B_MenuFooter><nav aria-label="Menu transversal secondaire"><div id="menufooter"><ul>[(#SET{div_menufooter,1})]<BOUCLE_MenuFooter(ARTICLES){titre_mot=MenuFooter}{par num titre}{lang}{" "}><li>[(#ENV{id_article}|=={#ID_ARTICLE}|?{<strong>})]<a href="[(#ARTICLE_URL)]"[ title="(#DESCRIPTIF|supprimer_tags|attribut_html)"]>[(#CONFIG{soyezcreateurs_layout/logomenufooter,oui}|=={oui}|oui)[<img class="menu_footer_logo" src="(#LOGO_ARTICLE|image_reduire{#CONFIG{soyezcreateurs_layout/largeurlogomenufooter,16},#CONFIG{soyezcreateurs_layout/hauteurlogomenufooter,16}}|extraire_attribut{src}|strval|embarque_fichier)" alt="" />]][(#TITRE)]</a>[(#ENV{id_article}|=={#ID_ARTICLE}|?{</strong>})]</li></BOUCLE_MenuFooter></B_MenuFooter>
 		<B_MenuFooterRubriques>[(#GET{div_menufooter}|non)<nav aria-label="Menu transversal secondaire"><div id="menufooter"><ul>][(#SET{div_menufooter,1})]<BOUCLE_MenuFooterRubriques(RUBRIQUES){titre_mot=MenuFooter}{par num titre}{" "}><li>[(#ENV{id_rubrique}|=={#ID_RUBRIQUE}|?{<strong>})]<a href="[(#URL_RUBRIQUE)]"[ title="(#DESCRIPTIF|supprimer_tags|attribut_html)"]>[(#CONFIG{soyezcreateurs_layout/logomenufooter,oui}|=={oui}|oui)[<img class="menu_footer_logo" src="(#LOGO_RUBRIQUE|image_reduire{#CONFIG{soyezcreateurs_layout/largeurlogomenufooter,16},#CONFIG{soyezcreateurs_layout/hauteurlogomenufooter,16}}|extraire_attribut{src}|strval|embarque_fichier)" alt="" />]][(#TITRE)]</a>[(#ENV{id_rubrique}|=={#ID_RUBRIQUE}|?{</strong>})]</li></BOUCLE_MenuFooterRubriques></B_MenuFooterRubriques>
 [(#CONFIG{soyezcreateurs_layout/positionliensnav,menu_footer}|=={menu_footer}|oui)
-[[(#GET{div_menufooter}|non)<nav aria-label="Menu transversal secondaire"><div id="menufooter"></h2><ul>][(#SET{div_menufooter,1})](#INCLURE{fond=noisettes/liensnav/bloc_liensnav,template})]
+[[(#GET{div_menufooter}|non)<nav aria-label="Menu transversal secondaire"><div id="menufooter"><ul>][(#SET{div_menufooter,1})](#INCLURE{fond=noisettes/liensnav/bloc_liensnav,template})]
 ]
 		[(#GET{div_menufooter}|oui)</ul></div></nav>]
 		[(#PLUGIN{nuage}|oui)[(#CONFIG{soyezcreateurs_layout/positionnuage,footer}|=={footer}|oui)<div id="nuage"><INCLURE{fond=noisettes/navigation/nuagedemotcle,env}></div>]]
diff --git a/noisettes/footer/footer_typerubrique_membre.html b/noisettes/footer/footer_typerubrique_membre.html
index 68077555fb9901dc76a39c20d255df8e1cc7aaeb..7a080601321b8cb601938495979aa929e443c3ae 100644
--- a/noisettes/footer/footer_typerubrique_membre.html
+++ b/noisettes/footer/footer_typerubrique_membre.html
@@ -1,7 +1,6 @@
 <a class="retourtop triadeA" href="[(#SELF|trim{'/'})]#[(#ENV{titretop}|sinon{<:soyezcreateurs:sommaire|sc_nettoyer_marqueur:>})]" title="<:soyezcreateurs:retourtop:>" aria-label="<:soyezcreateurs:retourtop:>"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-chevron-thin-up"></use></svg><span class="hide"><:soyezcreateurs:retourtop:></span></a>
-</div><!-- id="content" -->
-	</div><!-- id="wrapper" -->
-	<nav><div id="navigation" class="equilibre stackable">
+	</div><!-- id="content" -->
+	<nav aria-label="Menu de la section" id="navigation">
 [(#CONFIG{soyezcreateurs/logoheader,header}|=={navigation}|oui)#INCLURE{fond=noisettes/logosite}]
 <div id="menu" class="navStuff">
 <div class="espaceavant">
@@ -68,6 +67,6 @@
 	[<div id="bandeaucontact" class="#EDIT{meta-soyezcreateurs/bandeau_contact}">(#CONFIG{soyezcreateurs/bandeau_contact}|propre)</div>]
 ]
 
-	</div><!-- id="navigation" --></nav>
+	</nav><!-- id="navigation" -->
 <INCLURE{fond=noisettes/menus/menu_right,id_rubrique,id_article,template,env}>
-#FILTRE{mini_html}
\ No newline at end of file
+#FILTRE{mini_html}
diff --git a/noisettes/header/header.html b/noisettes/header/header.html
index 127097ca17be9c779855fa6255d2eaa8f00a6d3f..c010ec177600a1ef63cdb08118d85cc8e165f2a2 100644
--- a/noisettes/header/header.html
+++ b/noisettes/header/header.html
@@ -8,8 +8,6 @@
 ]
 <script type="text/javascript">
 document.documentElement.className += ' hasJS';
-CanceladjustLayout = false;
-CancelMonitorTextSize = false;
 </script>
 [(#REM)
       On appelle les feuilles de style
@@ -39,7 +37,7 @@ CancelMonitorTextSize = false;
 		]<BOUCLE_RubLayout(MOTS){id_rubrique}{type=_LayoutGala}>[(#REM) Dans le cas d'une rubrique
 			][<link rel="stylesheet" type="text/css" href="(#PRODUIRE{fond=layout.css,layoutgala=[(#TITRE*|textebrut|substr{0,2})]}|direction_css)" media="all" />][(#REM) Appel du layout de la rubrique si oui
 		]</BOUCLE_RubLayout>[(#REM) Sinon
-		][(#ENV{template}|=={'Sommaire'}|oui)<link rel="stylesheet" type="text/css" href="[(#PRODUIRE{fond=layout.css,layoutgala=[(#CONFIG{soyezcreateurs_layout/sommaire_layout,33})]}|direction_css|compacte)" media="all" />]][(#ENV{template}|=={'Sommaire'}|non)[<link rel="stylesheet" type="text/css" href="(#PRODUIRE{fond=layout.css,layoutgala=[(#CONFIG{soyezcreateurs_layout/default_layout,33})]}|direction_css)" media="all" />]]<//B_RubLayout>[(#REM) Fin de la recherche d'une rubrique
+		][(#ENV{template}|=={'Sommaire'}|oui)<link rel="stylesheet" type="text/css" href="[(#PRODUIRE{fond=layout.css,layoutgala=[(#CONFIG{soyezcreateurs_layout/sommaire_layout,33})]}|direction_css)" media="all" />]][(#ENV{template}|=={'Sommaire'}|non)[<link rel="stylesheet" type="text/css" href="(#PRODUIRE{fond=layout.css,layoutgala=[(#CONFIG{soyezcreateurs_layout/default_layout,33})]}|direction_css)" media="all" />]]<//B_RubLayout>[(#REM) Fin de la recherche d'une rubrique
 	]<//B_ArtRubLayout>
 [<link rel="stylesheet" type="text/css" href="(#PRODUIRE{fond=stylessoyezcreateurs.css}|direction_css)" media="all" />]
 [(#ENV{template}|=={'Sommaire'}|oui)[(#CONFIG{soyezcreateurs/mode_affichage,communiquant}|match{^portail.*}|oui)<link rel="stylesheet" type="text/css" href="[(#PRODUIRE{fond=styles#CONFIG{soyezcreateurs/mode_affichage,communiquant}.css}|direction_css)]" media="all" />]]
@@ -59,7 +57,6 @@ CancelMonitorTextSize = false;
 ][<script src="(#CHEMIN{lib/fullcalendar/index.global.min.js}|timestamp)"></script>]
 [<script src="(#CHEMIN{lib/fullcalendar/locales-all.global.min.js}|timestamp)"></script>]
 ]
-[<script src="(#CHEMIN{javascript/jquery.em.js}|timestamp)" type="text/javascript"></script>]
 [<script src="(#CHEMIN{javascript/jquery-accessible-modal-window-aria/jquery-accessible-modal-window-aria.js}|timestamp)" type="text/javascript"></script>]
 [(#ENV{idbody}|=={sommaire_mode_international}|oui)[<script src="(#CHEMIN{javascript/jquery.cycle.all.js}|timestamp)" type="text/javascript"></script>]]
 
@@ -126,18 +123,15 @@ CancelMonitorTextSize = false;
 			#SET{noisetteheader,header_mode#CONFIG{soyezcreateurs/mode_affichage,communiquant}}
 	]
 ]
-<header>
-	<INCLURE{fond=noisettes/header/#GET{noisetteheader},secteurencours,env}>
+<header id="mainheader">
+<INCLURE{fond=noisettes/header/#GET{noisetteheader},secteurencours,env}>
 <INCLURE{fond=noisettes/logopage/logopage_aiguilleur,env,lang}>
-
 </header>
-<div id="contenu">[(#SET{type,[(#ENV{type,_default}|trim)]})]
+<div id="maincontent">
+[(#SET{type,[(#ENV{type,_default}|trim)]})]
 <INCLURE{fond=noisettes/miettesdepain/#GET{type},env,lang}>
-[(#ENV{type}|et{#CONFIG{soyezcreateurs/mode_affichage,communiquant}|!={portail}}|oui)[(#CONFIG{soyezcreateurs_layout/positioncartouchetitre,contenu}|=={haut}|oui)<INCLURE{fond=noisettes/cartouchetitre/#GET{type},env,lang}>]
-]
-	<div id="wrapper">
-
-
-<div id="content" class="equilibre notstackable">
+	<div id="heading"><INCLURE{fond=noisettes/cartouchetitre/#GET{type},env,lang}></div>
+	<div id="contenu">
+		<div id="content">
 [(#CONFIG{soyezcreateurs/menuhautheader,header}|=={content}|oui)<INCLURE{fond=noisettes/menus/menuhaut#CONFIG{soyezcreateurs/typemenuhaut,''},secteurencours,rubriqueencours,id_article,id_groupe,id_mot,mots,template}>]
 #FILTRE{mini_html}
diff --git a/noisettes/menus/menu_right.html b/noisettes/menus/menu_right.html
index e9adfa957b6a95d46b2b37d086679f68ad8cde31..8f4886a61f1ee31e629b49d41f8bcb757805a2bf 100644
--- a/noisettes/menus/menu_right.html
+++ b/noisettes/menus/menu_right.html
@@ -1,4 +1,4 @@
-	<aside aria-label="Navigation secondaire"><div id="extra" class="navStuff equilibre stackable laststackable">
+	<aside aria-label="Navigation secondaire" id="extra" class="navStuff">
 [<div class="rightmenu">(#PLUGIN{mesfavoris}|oui)<INCLURE{fond=noisettes/extra/favoris}></div>]
 [(#CONFIG{soyezcreateurs/citationsheader,extra}|=={extra}|oui)<INCLURE{fond=noisettes/extra/citations}>]
 [(#PLUGIN{splickr}|oui)<INCLURE{fond=noisettes/extra/splickr}>]
@@ -42,5 +42,5 @@
 </div>]
 [(#PLUGIN{ACCESRESTREINT}|oui)[(#CONFIG{soyezcreateurs/mode_affichage,communiquant}|=={portailcognac}|ou{#CONFIG{soyezcreateurs_layout/pictogrammesoutils,non}|=={avecoutils}}|non)<INCLURE{fond=noisettes/accesrestreint/login-logout,env}>]]
 
-	</div><!-- id="extra" --></aside>
+	</aside><!-- id="extra" -->
 #FILTRE{mini_html}
diff --git a/noisettes/menus/menurwd.html b/noisettes/menus/menurwd.html
index 522a59657153c719d18a3267d496bd72cef3552d..0f5a06afa86e16e24baccb9614cb2f6dc28fd9c0 100644
--- a/noisettes/menus/menurwd.html
+++ b/noisettes/menus/menurwd.html
@@ -7,5 +7,6 @@
 <a id="responsive-menu-button" class="responsive-menu-button" href="#sidr-main"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-menu"></use></svg><span><:soyezcreateurs:menunavrwd:></span></a>
 #SET{menurwd,1}]]
 [(#ENV{idbody}|in_array{#ARRAY{0,sommaire_mode_portail, 1,sommaire_mode_actualites, 2, sommaire_mode_communiquant, 3,sommaire_mode_mairie, 4,sommaire_mode_blog, 5,sommaire_mode_portailcognac, 6,sommaire_mode_portailagence}}|non)[(#PLUGIN{SIDR}|oui)[(#GET{menurwd}|non)<div id="mobile-header">]<a id="responsive-menu-button-navigation" class="responsive-menu-button" href="#sidr-navigation"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-menu"></use></svg><span><:soyezcreateurs:menunavrwd:></span></a>
-#SET{menurwd,1}]][(#GET{menurwd}|oui)</div>]
-#FILTRE{mini_html}
\ No newline at end of file
+#SET{menurwd,1}]][(#ENV{idbody}|=={sommaire_mode_portailcognac}|oui)[(#CONFIG{soyezcreateurs_layout/navigationaccueilcognac,masque}|=={affiche}|oui)[(#PLUGIN{SIDR}|oui)[(#GET{menurwd}|non)<div id="mobile-header">]<a id="responsive-menu-button-navigation" class="responsive-menu-button" href="#sidr-navigation"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-menu"></use></svg><span><:soyezcreateurs:menunavrwd:></span></a>
+#SET{menurwd,1}]]][(#GET{menurwd}|oui)</div>]
+#FILTRE{mini_html}
diff --git a/noisettes/miettesdepain/401.html b/noisettes/miettesdepain/401.html
index 371c518d299e23f73d556547d63512ad54c54402..553cacd489d2f9312c51d30b4b486070889e52d6 100644
--- a/noisettes/miettesdepain/401.html
+++ b/noisettes/miettesdepain/401.html
@@ -1,6 +1,6 @@
 	<nav id="miettesdepain" aria-label="Fil d'Ariane">
 		<ul>
-			<li><a href="#URL_SITE_SPIP" title="<:soyezcreateurs:accueil_site|attribut_html:>"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-home"></use></svg><span class="hide"><:soyezcreateurs:accueil:></a></span></li>
+			<li><a href="#URL_SITE_SPIP" title="<:soyezcreateurs:accueil_site|attribut_html:>"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-home"></use></svg><span class="hide"><:soyezcreateurs:accueil:></span></a></li>
 			<li><:soyezcreateurs:connexiontitle:></li>
 		</ul>
 	</nav>
diff --git a/noisettes/miettesdepain/404.html b/noisettes/miettesdepain/404.html
index ff0e3453a145bcc9ef5906fc73a1afd318471e10..11e5f4869427797c956342817d4a417c97cf6fe4 100644
--- a/noisettes/miettesdepain/404.html
+++ b/noisettes/miettesdepain/404.html
@@ -1,6 +1,6 @@
 	<nav id="miettesdepain" aria-label="Fil d'Ariane">
 		<ul>
-			<li><a href="#URL_SITE_SPIP" title="<:soyezcreateurs:accueil_site|attribut_html:>"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-home"></use></svg><span class="hide"><:soyezcreateurs:accueil:></a></span></li>
+			<li><a href="#URL_SITE_SPIP" title="<:soyezcreateurs:accueil_site|attribut_html:>"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-home"></use></svg><span class="hide"><:soyezcreateurs:accueil:></span></a></li>
 			<li><:pass_erreur:> 404</li>
 		</ul>
 	</nav>
diff --git a/noisettes/miettesdepain/_default.html b/noisettes/miettesdepain/_default.html
index 2bbb29f99e9ff4b174efa04bb9e81d89f1e1f963..4adb2bd4254d96894b73433edfa170f294ab5cb4 100644
--- a/noisettes/miettesdepain/_default.html
+++ b/noisettes/miettesdepain/_default.html
@@ -1,6 +1,6 @@
 	<nav id="miettesdepain" aria-label="Fil d'Ariane">
 		<ul>
-			<li><a href="#URL_SITE_SPIP" title="<:soyezcreateurs:accueil_site|attribut_html:>"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-home"></use></svg><span class="hide"><:soyezcreateurs:accueil:></a></span></li>
+			<li><a href="#URL_SITE_SPIP" title="<:soyezcreateurs:accueil_site|attribut_html:>"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-home"></use></svg><span class="hide"><:soyezcreateurs:accueil:></span></a></li>
 		</ul>
 	</nav>
 #FILTRE{mini_html}
diff --git a/noisettes/miettesdepain/aff_rub_complet.html b/noisettes/miettesdepain/aff_rub_complet.html
index 03262f4ca92b8b5cc5d1b74212a8b043c330ccf9..3ed37ad5f55443b8daf411e22997ef4cc3be91ea 100644
--- a/noisettes/miettesdepain/aff_rub_complet.html
+++ b/noisettes/miettesdepain/aff_rub_complet.html
@@ -1,7 +1,7 @@
 <BOUCLE_secteurs(RUBRIQUES) {id_rubrique}>
 	<nav id="miettesdepain" aria-label="Fil d'Ariane">
 		<ul>
-			<li><a href="#URL_SITE_SPIP" title="<:soyezcreateurs:accueil_site|attribut_html:>"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-home"></use></svg><span class="hide"><:soyezcreateurs:accueil:></a></span></li>
+			<li><a href="#URL_SITE_SPIP" title="<:soyezcreateurs:accueil_site|attribut_html:>"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-home"></use></svg><span class="hide"><:soyezcreateurs:accueil:></span></a></li>
 			<li>[<a href="#URL_RUBRIQUE"[ title="(#DESCRIPTIF|supprimer_tags|attribut_html)"]>(#TITRE)</a> (<:soyezcreateurs:chapitre_complet:>)]</li>
 		</ul>
 	</nav>
diff --git a/noisettes/miettesdepain/agenda_calendrier.html b/noisettes/miettesdepain/agenda_calendrier.html
index 9578f220587555b8f3a44ca19bbc07d858cb9cb1..03ca524bbc3c3283a215f9f334b99b24b635b345 100644
--- a/noisettes/miettesdepain/agenda_calendrier.html
+++ b/noisettes/miettesdepain/agenda_calendrier.html
@@ -1,6 +1,6 @@
 <nav id="miettesdepain" aria-label="Fil d'Ariane">
     <ul>
-        <li><a href="#URL_SITE_SPIP" title="<:soyezcreateurs:accueil_site|attribut_html:>"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-home"></use></svg><span class="hide"><:soyezcreateurs:accueil:></a></span></li>
+        <li><a href="#URL_SITE_SPIP" title="<:soyezcreateurs:accueil_site|attribut_html:>"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-home"></use></svg><span class="hide"><:soyezcreateurs:accueil:></span></a></li>
         <li>[(#ENV{id_rubrique}|oui)<a href="#URL_PAGE{agenda_calendrier}">][(#CONFIG{soyezcreateurs/texte_agenda}|extraire_multi|typo|sinon{<:soyezcreateurs:agenda:>})][(#ENV{id_rubrique}|oui|?{</a>})]</li>
 		[<li>(#INFO_TITRE{rubrique, #ENV{id_rubrique}})</li>]
     </ul>
diff --git a/noisettes/miettesdepain/agenda_programmation.html b/noisettes/miettesdepain/agenda_programmation.html
index 0dd722ffd913f098f238065303ca26c0a08673f8..a9f06252ad7e2ee568bd695775192ed4af664a53 100644
--- a/noisettes/miettesdepain/agenda_programmation.html
+++ b/noisettes/miettesdepain/agenda_programmation.html
@@ -4,7 +4,7 @@
 [(#SET{periode,[(#GET{date_debut}|affdate_debut_fin{[(#GET{date_debut}|programmation_datedecalejours{[(#ENV{duree,7}|moins{1})]})],non, abbr}|typo)]})]
 <nav id="miettesdepain" aria-label="Fil d'Ariane">
 	<ul>
-		<li><a href="#URL_SITE_SPIP" title="<:soyezcreateurs:accueil_site|attribut_html:>"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-home"></use></svg><span class="hide"><:soyezcreateurs:accueil:></a></span></li>
+		<li><a href="#URL_SITE_SPIP" title="<:soyezcreateurs:accueil_site|attribut_html:>"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-home"></use></svg><span class="hide"><:soyezcreateurs:accueil:></span></a></li>
 		<BOUCLE_plan(HIERARCHIE){id_rubrique}>
 		<li><a href="[(#URL_PAGE{agenda_programmation}|parametre_url{'id_rubrique', #ID_RUBRIQUE})]"[ title="(#DESCRIPTIF|supprimer_tags|attribut_html)"]>[(#TITRE|replace{<br />,''})]</a></li>
 		</BOUCLE_plan>
diff --git a/noisettes/miettesdepain/annuaire.html b/noisettes/miettesdepain/annuaire.html
index fb030844857efc48f5e193463eaf741f347cbb62..90f1d85530cad10a2555aa1dce8b6a038573d576 100644
--- a/noisettes/miettesdepain/annuaire.html
+++ b/noisettes/miettesdepain/annuaire.html
@@ -1,7 +1,7 @@
 <BOUCLE_Contact(CONTACTS){id_contact}>
 	<nav id="miettesdepain" aria-label="Fil d'Ariane">
 		<ul>
-			<li><a href="#URL_SITE_SPIP" title="<:soyezcreateurs:accueil_site|attribut_html:>"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-home"></use></svg><span class="hide"><:soyezcreateurs:accueil:></a></span></li>
+			<li><a href="#URL_SITE_SPIP" title="<:soyezcreateurs:accueil_site|attribut_html:>"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-home"></use></svg><span class="hide"><:soyezcreateurs:accueil:></span></a></li>
 			<li><a href="#URL_PAGE{annuaire}"><:soyezcreateurs:annuaire:></a></li>
 			<BOUCLE_OrganisationContact(ORGANISATIONS organisations_contacts){id_contact}><BOUCLE_ArboOrganisations(ORGANISATIONS){id_organisation=#ID_PARENT}{tous}><BOUCLE_HierarchieArboOrganisations(BOUCLE_ArboOrganisations) />[(#REM) #ID_PARENT doit �tre present sinon la recursivite se fait mal... etonnant ]<li><a href="#URL_PAGE{annuaire,id_organisation=#ID_ORGANISATION}">#NOM</a></li></BOUCLE_ArboOrganisations><li><a href="#URL_PAGE{annuaire,id_organisation=#ID_ORGANISATION}">#NOM</a></li></BOUCLE_OrganisationContact>
 			<li>[(#CIVILITE) ][(#PRENOM) ]#NOM</li>
@@ -11,7 +11,7 @@
 <BOUCLE_Organisation(ORGANISATIONS){id_organisation}>
 	<nav id="miettesdepain" aria-label="Fil d'Ariane">
 		<ul>
-			<li><a href="#URL_SITE_SPIP" title="<:soyezcreateurs:accueil_site|attribut_html:>"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-home"></use></svg><span class="hide"><:soyezcreateurs:accueil:></a></span></li>
+			<li><a href="#URL_SITE_SPIP" title="<:soyezcreateurs:accueil_site|attribut_html:>"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-home"></use></svg><span class="hide"><:soyezcreateurs:accueil:></span></a></li>
 			<li><a href="#URL_PAGE{annuaire}"><:soyezcreateurs:annuaire:></a></li>
 			<BOUCLE_ArboContacts(ORGANISATIONS){id_organisation=#ID_PARENT}{tous}><BOUCLE_HierarchieArboContacts(BOUCLE_ArboContacts) />[(#REM) #ID_PARENT doit �tre present sinon la recursivite se fait mal... etonnant ] <li><a href="#URL_PAGE{annuaire,id_organisation=#ID_ORGANISATION}">#NOM</a></li></BOUCLE_ArboContacts>
 			<li>#NOM</li>
@@ -20,7 +20,7 @@
 </BOUCLE_Organisation>
 	<nav id="miettesdepain" aria-label="Fil d'Ariane">
 		<ul>
-			<li><a href="#URL_SITE_SPIP" title="<:soyezcreateurs:accueil_site|attribut_html:>"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-home"></use></svg><span class="hide"><:soyezcreateurs:accueil:></a></span></li>
+			<li><a href="#URL_SITE_SPIP" title="<:soyezcreateurs:accueil_site|attribut_html:>"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-home"></use></svg><span class="hide"><:soyezcreateurs:accueil:></span></a></li>
 			<li><:soyezcreateurs:annuaire:></li>
 		</ul>
 	</nav>
diff --git a/noisettes/miettesdepain/antichrono.html b/noisettes/miettesdepain/antichrono.html
index 5d3aadb189d3d716a82cf231e1e83a76cdd1d213..1d1f82e7197ae0b6a1a153f3ca462a0fbe65d587 100644
--- a/noisettes/miettesdepain/antichrono.html
+++ b/noisettes/miettesdepain/antichrono.html
@@ -1,6 +1,6 @@
 	<nav id="miettesdepain" aria-label="Fil d'Ariane">
 		<ul>
-			<li><a href="#URL_SITE_SPIP" title="<:soyezcreateurs:accueil_site|attribut_html:>"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-home"></use></svg><span class="hide"><:soyezcreateurs:accueil:></a></span></li>
+			<li><a href="#URL_SITE_SPIP" title="<:soyezcreateurs:accueil_site|attribut_html:>"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-home"></use></svg><span class="hide"><:soyezcreateurs:accueil:></span></a></li>
 			<li>[(#CONFIG{soyezcreateurs/texte_actualite_toutes}|extraire_multi|typo|sinon{<:soyezcreateurs:actualite_toutes:>})] (<:soyezcreateurs:actualite_toutes_arbo:>)</li>
 		</ul>
 	</nav>
diff --git a/noisettes/miettesdepain/antichrono_grid.html b/noisettes/miettesdepain/antichrono_grid.html
index 067576aedd66f9ecf14513aa3ff317f48f69ccc7..3aaaf96f79142b2fd384c20ca86723f19c32e066 100644
--- a/noisettes/miettesdepain/antichrono_grid.html
+++ b/noisettes/miettesdepain/antichrono_grid.html
@@ -1,6 +1,6 @@
 	<nav id="miettesdepain" aria-label="Fil d'Ariane">
 		<ul>
-			<li><a href="#URL_SITE_SPIP" title="<:soyezcreateurs:accueil_site|attribut_html:>"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-home"></use></svg><span class="hide"><:soyezcreateurs:accueil:></a></span></li>
+			<li><a href="#URL_SITE_SPIP" title="<:soyezcreateurs:accueil_site|attribut_html:>"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-home"></use></svg><span class="hide"><:soyezcreateurs:accueil:></span></a></li>
 			<li>[(#CONFIG{soyezcreateurs/texte_actualite_toutes}|extraire_multi|typo|sinon{<:soyezcreateurs:actualite_toutes:>})] (<:soyezcreateurs:actualite_toutes_blocs:>)</li>
 		</ul>
 	</nav>
diff --git a/noisettes/miettesdepain/article.html b/noisettes/miettesdepain/article.html
index b7d26bec8e9e4eb26ff2369dcf1b6a42aa843785..6ab476ca369a983370e8b0fe5f8254a44c3d24a8 100644
--- a/noisettes/miettesdepain/article.html
+++ b/noisettes/miettesdepain/article.html
@@ -1,7 +1,7 @@
 <BOUCLE_article_principal(ARTICLES) {id_article}>
 	<nav id="miettesdepain" aria-label="Fil d'Ariane">
 		<ul>
-			<li><a href="#URL_SITE_SPIP" title="<:soyezcreateurs:accueil_site|attribut_html:>"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-home"></use></svg><span class="hide"><:soyezcreateurs:accueil:></a></span></li>
+			<li><a href="#URL_SITE_SPIP" title="<:soyezcreateurs:accueil_site|attribut_html:>"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-home"></use></svg><span class="hide"><:soyezcreateurs:accueil:></span></a></li>
 			<BOUCLE_plan(HIERARCHIE){id_article}{!titre_mot=PasDansFildAriane}>
 			<li><a href="#URL_RUBRIQUE"[ title="(#DESCRIPTIF|supprimer_tags|attribut_html)"]>[(#TITRE|replace{<br />,''})]</a></li>
 			</BOUCLE_plan>
@@ -10,4 +10,4 @@
 		[(#INCLURE{fond=noisettes/affrubcomplete,id_rubrique,lang})]
 	</nav>
 </BOUCLE_article_principal>
-#FILTRE{mini_html}
\ No newline at end of file
+#FILTRE{mini_html}
diff --git a/noisettes/miettesdepain/auteur.html b/noisettes/miettesdepain/auteur.html
index 7c078aca8c9debcc8e0083222cee910c0b365f77..531deaa1146e6810a358bf84c22ef01f834ad219 100644
--- a/noisettes/miettesdepain/auteur.html
+++ b/noisettes/miettesdepain/auteur.html
@@ -1,7 +1,7 @@
 <BOUCLE_auteur_principal(AUTEURS) {id_auteur}{tous}>
 	<nav id="miettesdepain" aria-label="Fil d'Ariane">
 		<ul>
-			<li><a href="#URL_SITE_SPIP" title="<:soyezcreateurs:accueil_site|attribut_html:>"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-home"></use></svg><span class="hide"><:soyezcreateurs:accueil:></a></span></li>
+			<li><a href="#URL_SITE_SPIP" title="<:soyezcreateurs:accueil_site|attribut_html:>"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-home"></use></svg><span class="hide"><:soyezcreateurs:accueil:></span></a></li>
 			<li><a href="#URL_PAGE{auteur}" title="<:soyezcreateurs:auteurs_liste|attribut_html:>"><:soyezcreateurs:auteurs_site:></a></li>
 			<li>[(#NOM)]</li>
 		</ul>
@@ -9,7 +9,7 @@
 </BOUCLE_auteur_principal>
 	<nav id="miettesdepain" aria-label="Fil d'Ariane">
 		<ul>
-			<li><a href="#URL_SITE_SPIP" title="<:soyezcreateurs:accueil_site|attribut_html:>"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-home"></use></svg><span class="hide"><:soyezcreateurs:accueil:></a></span></li>
+			<li><a href="#URL_SITE_SPIP" title="<:soyezcreateurs:accueil_site|attribut_html:>"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-home"></use></svg><span class="hide"><:soyezcreateurs:accueil:></span></a></li>
 			<li><:soyezcreateurs:auteurs_site:></li>
 		</ul>
 	</nav>
diff --git a/noisettes/miettesdepain/bank_attente.html b/noisettes/miettesdepain/bank_attente.html
index 1587a3922a11d3a8eec092ed95dfa4022d736040..4b5c59d1ec6635506c3495bb68cf6038fa08dcd1 100644
--- a/noisettes/miettesdepain/bank_attente.html
+++ b/noisettes/miettesdepain/bank_attente.html
@@ -1,6 +1,6 @@
 	<nav id="miettesdepain" aria-label="Fil d'Ariane">
 		<ul>
-			<li><a href="#URL_SITE_SPIP" title="<:soyezcreateurs:accueil_site|attribut_html:>"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-home"></use></svg><span class="hide"><:soyezcreateurs:accueil:></a></span></li>
+			<li><a href="#URL_SITE_SPIP" title="<:soyezcreateurs:accueil_site|attribut_html:>"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-home"></use></svg><span class="hide"><:soyezcreateurs:accueil:></span></a></li>
 			<li><:bank:titre_reglement_ok:></li>
 		</ul>
 	</nav>
diff --git a/noisettes/miettesdepain/bank_echec.html b/noisettes/miettesdepain/bank_echec.html
index 5a0c1cc142af51deb220222734c87044544de4c9..d2c9b8c3c1706034227c09e1ca73ce9bfb6141a6 100644
--- a/noisettes/miettesdepain/bank_echec.html
+++ b/noisettes/miettesdepain/bank_echec.html
@@ -1,6 +1,6 @@
 	<nav id="miettesdepain" aria-label="Fil d'Ariane">
 		<ul>
-			<li><a href="#URL_SITE_SPIP" title="<:soyezcreateurs:accueil_site|attribut_html:>"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-home"></use></svg><span class="hide"><:soyezcreateurs:accueil:></a></span></li>
+			<li><a href="#URL_SITE_SPIP" title="<:soyezcreateurs:accueil_site|attribut_html:>"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-home"></use></svg><span class="hide"><:soyezcreateurs:accueil:></span></a></li>
 			<li><:bank:titre_reglement_annule:></li>
 		</ul>
 	</nav>
diff --git a/noisettes/miettesdepain/bank_ok.html b/noisettes/miettesdepain/bank_ok.html
index 1587a3922a11d3a8eec092ed95dfa4022d736040..4b5c59d1ec6635506c3495bb68cf6038fa08dcd1 100644
--- a/noisettes/miettesdepain/bank_ok.html
+++ b/noisettes/miettesdepain/bank_ok.html
@@ -1,6 +1,6 @@
 	<nav id="miettesdepain" aria-label="Fil d'Ariane">
 		<ul>
-			<li><a href="#URL_SITE_SPIP" title="<:soyezcreateurs:accueil_site|attribut_html:>"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-home"></use></svg><span class="hide"><:soyezcreateurs:accueil:></a></span></li>
+			<li><a href="#URL_SITE_SPIP" title="<:soyezcreateurs:accueil_site|attribut_html:>"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-home"></use></svg><span class="hide"><:soyezcreateurs:accueil:></span></a></li>
 			<li><:bank:titre_reglement_ok:></li>
 		</ul>
 	</nav>
diff --git a/noisettes/miettesdepain/breve.html b/noisettes/miettesdepain/breve.html
index 4d6ca8342bdcbc590d208d905ef1b762a1986555..7398875292f4d439e997860905ccb36bb15a3364 100644
--- a/noisettes/miettesdepain/breve.html
+++ b/noisettes/miettesdepain/breve.html
@@ -1,7 +1,7 @@
 <BOUCLE_breve_principal(BREVES?) {id_breve}>
 	<nav id="miettesdepain" aria-label="Fil d'Ariane">
 		<ul>
-			<li><a href="#URL_SITE_SPIP" title="<:soyezcreateurs:accueil_site|attribut_html:>"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-home"></use></svg><span class="hide"><:soyezcreateurs:accueil:></a></span></li>
+			<li><a href="#URL_SITE_SPIP" title="<:soyezcreateurs:accueil_site|attribut_html:>"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-home"></use></svg><span class="hide"><:soyezcreateurs:accueil:></span></a></li>
 			<BOUCLE_plan(HIERARCHIE){id_rubrique}{tout}{!titre_mot=PasDansFildAriane}>
 			<li><a href="#URL_RUBRIQUE"[ title="(#DESCRIPTIF|supprimer_tags|attribut_html)"]>[(#TITRE|replace{<br />,''})]</a></li>
 			</BOUCLE_plan>
diff --git a/noisettes/miettesdepain/forum.html b/noisettes/miettesdepain/forum.html
index 117702e323e9665633c1b9bbcca6d4e3c37ad0ca..f4e9d997e9d88426e895e4e7d7fea5f0295cb4b7 100644
--- a/noisettes/miettesdepain/forum.html
+++ b/noisettes/miettesdepain/forum.html
@@ -1,7 +1,7 @@
 <BOUCLE_article_titre(ARTICLES) {id_article}>
 	<nav id="miettesdepain" aria-label="Fil d'Ariane">
 		<ul>
-			<li><a href="#URL_SITE_SPIP" title="<:soyezcreateurs:accueil_site|attribut_html:>"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-home"></use></svg><span class="hide"><:soyezcreateurs:accueil:></a></span></li>
+			<li><a href="#URL_SITE_SPIP" title="<:soyezcreateurs:accueil_site|attribut_html:>"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-home"></use></svg><span class="hide"><:soyezcreateurs:accueil:></span></a></li>
 			<BOUCLE_plan(HIERARCHIE){id_article}{!titre_mot=PasDansFildAriane}><li><a href="#URL_RUBRIQUE"[ title="(#DESCRIPTIF|supprimer_tags|attribut_html)"]>[(#TITRE|replace{<br />,''})]</a></li>
 			</BOUCLE_plan>
 			<li><a href="#ARTICLE_URL"[ title="(#DESCRIPTIF|supprimer_tags|attribut_html)"]>[(#TITRE|replace{<br />,''})]</a></li>
diff --git a/noisettes/miettesdepain/identifiants.html b/noisettes/miettesdepain/identifiants.html
index 9be8116c83fc45da1762dc108e5fc56d0573cc18..53a4526d44deba09a53cbc999251e1f30c97bdd1 100644
--- a/noisettes/miettesdepain/identifiants.html
+++ b/noisettes/miettesdepain/identifiants.html
@@ -1,6 +1,6 @@
 	<nav id="miettesdepain" aria-label="Fil d'Ariane">
 		<ul>
-			<li><a href="#URL_SITE_SPIP" title="<:soyezcreateurs:accueil_site|attribut_html:>"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-home"></use></svg><span class="hide"><:soyezcreateurs:accueil:></a></span></li>
+			<li><a href="#URL_SITE_SPIP" title="<:soyezcreateurs:accueil_site|attribut_html:>"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-home"></use></svg><span class="hide"><:soyezcreateurs:accueil:></span></a></li>
 			<li><:pass_vousinscrire:></li>
 		</ul>
 	</nav>
diff --git a/noisettes/miettesdepain/inscription_infolettre.html b/noisettes/miettesdepain/inscription_infolettre.html
index 5a8cb31a4aec5136f34aedb07da59f4500ebbb2d..3429e319cbae81ad8fc1c5f948aa9073afcd40c2 100644
--- a/noisettes/miettesdepain/inscription_infolettre.html
+++ b/noisettes/miettesdepain/inscription_infolettre.html
@@ -1,6 +1,6 @@
 	<nav id="miettesdepain" aria-label="Fil d'Ariane">
 		<ul>
-			<li><a href="#URL_SITE_SPIP" title="<:soyezcreateurs:accueil_site|attribut_html:>"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-home"></use></svg><span class="hide"><:soyezcreateurs:accueil:></a></span></li>
+			<li><a href="#URL_SITE_SPIP" title="<:soyezcreateurs:accueil_site|attribut_html:>"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-home"></use></svg><span class="hide"><:soyezcreateurs:accueil:></span></a></li>
 			<li><:soyezcreateurs:newsletter_recevoir:></li>
 		</ul>
 	</nav>
diff --git a/noisettes/miettesdepain/liste_mail.html b/noisettes/miettesdepain/liste_mail.html
index 7e27a9e87302dd79690f41a6d2659924f9015af0..5e7d00540b130a5358da2ef57792e1110c2f5cbe 100644
--- a/noisettes/miettesdepain/liste_mail.html
+++ b/noisettes/miettesdepain/liste_mail.html
@@ -5,7 +5,7 @@
 <BOUCLE_list(CM_LISTS){lst_id}>
 	<nav id="miettesdepain" aria-label="Fil d'Ariane">
 		<ul>
-			<li><a href="#URL_SITE_SPIP" title="<:soyezcreateurs:accueil_site|attribut_html:>"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-home"></use></svg><span class="hide"><:soyezcreateurs:accueil:></a></span></li>
+			<li><a href="#URL_SITE_SPIP" title="<:soyezcreateurs:accueil_site|attribut_html:>"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-home"></use></svg><span class="hide"><:soyezcreateurs:accueil:></span></a></li>
 			<li><a href="#URL_PAGE{liste_mail}" title="<:soyezcreateurs:newsletter|attribut_html:>"><:soyezcreateurs:newsletter:></a></li>
 			<BOUCLE_Uneliste(CM_LISTS) {lst_id}>
 			<li>#LST_NAME</li>
@@ -15,7 +15,7 @@
 </BOUCLE_list>
 	<nav id="miettesdepain" aria-label="Fil d'Ariane">
 		<ul>
-			<li><a href="#URL_SITE_SPIP" title="<:soyezcreateurs:accueil_site|attribut_html:>"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-home"></use></svg><span class="hide"><:soyezcreateurs:accueil:></a></span></li>
+			<li><a href="#URL_SITE_SPIP" title="<:soyezcreateurs:accueil_site|attribut_html:>"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-home"></use></svg><span class="hide"><:soyezcreateurs:accueil:></span></a></li>
 			<li><:soyezcreateurs:newsletter:></li>
 		</ul>
 	</nav>
diff --git a/noisettes/miettesdepain/meteo.html b/noisettes/miettesdepain/meteo.html
index b505ae56bb1e8ef16a7799fd6d4b3111065eafe0..0d5f6fb78a5e7e911de240e5a15bf84ffa6ddb61 100644
--- a/noisettes/miettesdepain/meteo.html
+++ b/noisettes/miettesdepain/meteo.html
@@ -4,7 +4,7 @@
 #SET{nom_ville,#RAINETTE_INFOS{#CONFIG{soyezcreateurs/rainette_ville, #GET{ville}}, ville, #GET{service}}}
 	<nav id="miettesdepain" aria-label="Fil d'Ariane">
 		<ul>
-			<li><a href="#URL_SITE_SPIP" title="<:soyezcreateurs:accueil_site|attribut_html:>"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-home"></use></svg><span class="hide"><:soyezcreateurs:accueil:></a></span></li>
+			<li><a href="#URL_SITE_SPIP" title="<:soyezcreateurs:accueil_site|attribut_html:>"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-home"></use></svg><span class="hide"><:soyezcreateurs:accueil:></span></a></li>
 			<li><:rainette:meteo_de{ville=#GET{nom_ville}}:></li>
 		</ul>
 	</nav>
diff --git a/noisettes/miettesdepain/mot.html b/noisettes/miettesdepain/mot.html
index cc82a71b0770afed86125e7eb2eb2c03322ecfa5..9dea35588ea97413eeda1106fed59fa359ed63d8 100644
--- a/noisettes/miettesdepain/mot.html
+++ b/noisettes/miettesdepain/mot.html
@@ -1,7 +1,7 @@
 <BOUCLE_mot_principal(MOTS){id_mot}>
 	<nav id="miettesdepain" aria-label="Fil d'Ariane">
 		<ul>
-			<li><a href="#URL_SITE_SPIP" title="<:soyezcreateurs:accueil_site|attribut_html:>"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-home"></use></svg><span class="hide"><:soyezcreateurs:accueil:></a></span></li>
+			<li><a href="#URL_SITE_SPIP" title="<:soyezcreateurs:accueil_site|attribut_html:>"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-home"></use></svg><span class="hide"><:soyezcreateurs:accueil:></span></a></li>
 			<li><a href="#URL_PAGE{mot}" title="<:soyezcreateurs:mots_title|attribut_html:>"><:soyezcreateurs:mots:></a></li>
 			<li><a href="[(#URL_PAGE{mot}|parametre_url{id_groupe,#ID_GROUPE})]" title="<:soyezcreateurs:motsgroupe|attribut_html:>"><BOUCLE_TitreGroupe(GROUPES_MOTS){id_groupe}>#TITRE</BOUCLE_TitreGroupe></a></li>
 			<BOUCLE_PluginsMotsArborescents(CONDITION){si #PLUGIN{motsar}}><BOUCLE_MotsArborescents(HIERARCHIE_MOTS?){id_mot}><li><a href="[(#PLUGIN{critere_mots}|?{[(#URL_PAGE{mots_filtres}|parametre_url{mots,#ARRAY{mots,#ID_MOT}}|replace{'\\[\\]','%5B%5D'})],#URL_MOT})]" rel="tag"[ title="(#DESCRIPTIF|supprimer_tags|attribut_html)"]>[(#TITRE|sc_replace{'_',' '})]</a></li> </BOUCLE_MotsArborescents></BOUCLE_PluginsMotsArborescents>
@@ -12,7 +12,7 @@
 <BOUCLE_Groupe_principal(GROUPES_MOTS){id_groupe}>
 	<nav id="miettesdepain" aria-label="Fil d'Ariane">
 		<ul>
-			<li><a href="#URL_SITE_SPIP" title="<:soyezcreateurs:accueil_site|attribut_html:>"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-home"></use></svg><span class="hide"><:soyezcreateurs:accueil:></a></span></li>
+			<li><a href="#URL_SITE_SPIP" title="<:soyezcreateurs:accueil_site|attribut_html:>"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-home"></use></svg><span class="hide"><:soyezcreateurs:accueil:></span></a></li>
 			<li><a href="#URL_PAGE{mot}" title="<:soyezcreateurs:mots_title:>"><:soyezcreateurs:mots:></a></li>
 			<li>[(#TITRE|replace{<br />,''})]</li>
 		</ul>
@@ -20,7 +20,7 @@
 </BOUCLE_Groupe_principal>
 	<nav id="miettesdepain" aria-label="Fil d'Ariane">
 		<ul>
-			<li><a href="#URL_SITE_SPIP" title="<:soyezcreateurs:accueil_site|attribut_html:>"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-home"></use></svg><span class="hide"><:soyezcreateurs:accueil:></a></span></li>
+			<li><a href="#URL_SITE_SPIP" title="<:soyezcreateurs:accueil_site|attribut_html:>"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-home"></use></svg><span class="hide"><:soyezcreateurs:accueil:></span></a></li>
 			<li><:soyezcreateurs:mots:></li>
 		</ul>
 	</nav>
diff --git a/noisettes/miettesdepain/mots_filtres.html b/noisettes/miettesdepain/mots_filtres.html
index 3bb610e08312559fcdb66d098bd5c2abe4b31d0c..afcfe354cca085eb1d4a93602d4fe1d1d049e230 100644
--- a/noisettes/miettesdepain/mots_filtres.html
+++ b/noisettes/miettesdepain/mots_filtres.html
@@ -2,7 +2,7 @@
 [(#SET{title,<:resultats_recherche|texte_script:>[ : (#GET{tags}|attribut_html|texte_script)]})]
 	<nav id="miettesdepain" aria-label="Fil d'Ariane">
 		<ul>
-			<li><a href="#URL_SITE_SPIP" title="<:soyezcreateurs:accueil_site|attribut_html:>"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-home"></use></svg><span class="hide"><:soyezcreateurs:accueil:></a></span></li>
+			<li><a href="#URL_SITE_SPIP" title="<:soyezcreateurs:accueil_site|attribut_html:>"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-home"></use></svg><span class="hide"><:soyezcreateurs:accueil:></span></a></li>
 			<li>#GET{tags}</li>
 		</ul>
 	</nav>
diff --git a/noisettes/miettesdepain/mots_filtres_agenda.html b/noisettes/miettesdepain/mots_filtres_agenda.html
index 3bb610e08312559fcdb66d098bd5c2abe4b31d0c..afcfe354cca085eb1d4a93602d4fe1d1d049e230 100644
--- a/noisettes/miettesdepain/mots_filtres_agenda.html
+++ b/noisettes/miettesdepain/mots_filtres_agenda.html
@@ -2,7 +2,7 @@
 [(#SET{title,<:resultats_recherche|texte_script:>[ : (#GET{tags}|attribut_html|texte_script)]})]
 	<nav id="miettesdepain" aria-label="Fil d'Ariane">
 		<ul>
-			<li><a href="#URL_SITE_SPIP" title="<:soyezcreateurs:accueil_site|attribut_html:>"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-home"></use></svg><span class="hide"><:soyezcreateurs:accueil:></a></span></li>
+			<li><a href="#URL_SITE_SPIP" title="<:soyezcreateurs:accueil_site|attribut_html:>"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-home"></use></svg><span class="hide"><:soyezcreateurs:accueil:></span></a></li>
 			<li>#GET{tags}</li>
 		</ul>
 	</nav>
diff --git a/noisettes/miettesdepain/plan.html b/noisettes/miettesdepain/plan.html
index aa67396de7b500ba9e6b2e789079f33e91a52198..582fb149b249200e39648834ac8a765e23fa4b8e 100644
--- a/noisettes/miettesdepain/plan.html
+++ b/noisettes/miettesdepain/plan.html
@@ -1,6 +1,6 @@
 	<nav id="miettesdepain" aria-label="Fil d'Ariane">
 		<ul>
-			<li><a href="#URL_SITE_SPIP" title="<:soyezcreateurs:accueil_site|attribut_html:>"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-home"></use></svg><span class="hide"><:soyezcreateurs:accueil:></a></span></li>
+			<li><a href="#URL_SITE_SPIP" title="<:soyezcreateurs:accueil_site|attribut_html:>"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-home"></use></svg><span class="hide"><:soyezcreateurs:accueil:></span></a></li>
 			<li><:plan_site:></li>
 		</ul>
 	</nav>
diff --git a/noisettes/miettesdepain/proposer_evenement.html b/noisettes/miettesdepain/proposer_evenement.html
index f43ca9625ddaf2123f2ff76a04e6991c277ddef7..938b699f75f89c1d675d8a09f756fc462330a89d 100755
--- a/noisettes/miettesdepain/proposer_evenement.html
+++ b/noisettes/miettesdepain/proposer_evenement.html
@@ -1,6 +1,6 @@
 	<nav id="miettesdepain" aria-label="Fil d'Ariane">
 		<ul>
-			<li><a href="#URL_SITE_SPIP" title="<:soyezcreateurs:accueil_site|attribut_html:>"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-home"></use></svg><span class="hide"><:soyezcreateurs:accueil:></a></span></li>
+			<li><a href="#URL_SITE_SPIP" title="<:soyezcreateurs:accueil_site|attribut_html:>"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-home"></use></svg><span class="hide"><:soyezcreateurs:accueil:></span></a></li>
 			<li><<:soyezcreateurs:agenda_proposer_evenement:></li>
 		</ul>
 	</nav>
diff --git a/noisettes/miettesdepain/recherche.html b/noisettes/miettesdepain/recherche.html
index 4237962fb711fdf372410f82512f17596ee64903..04e1ed51cadba96199c1a7bbc072140c08337737 100644
--- a/noisettes/miettesdepain/recherche.html
+++ b/noisettes/miettesdepain/recherche.html
@@ -1,6 +1,6 @@
 	<nav id="miettesdepain" aria-label="Fil d'Ariane">
 		<ul>
-			<li><a href="#URL_SITE_SPIP" title="<:soyezcreateurs:accueil_site|attribut_html:>"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-home"></use></svg><span class="hide"><:soyezcreateurs:accueil:></a></span></li>
+			<li><a href="#URL_SITE_SPIP" title="<:soyezcreateurs:accueil_site|attribut_html:>"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-home"></use></svg><span class="hide"><:soyezcreateurs:accueil:></span></a></li>
 			<li><:resultats_recherche:>[ : <em>(#RECHERCHE)</em>]</li>
 		</ul>
 	</nav>
diff --git a/noisettes/miettesdepain/rubrique.html b/noisettes/miettesdepain/rubrique.html
index 504dd0b58125c7f060a865418169c12034518a1f..eb87447c196fe39ee4af18cb312080c0d6943d14 100644
--- a/noisettes/miettesdepain/rubrique.html
+++ b/noisettes/miettesdepain/rubrique.html
@@ -1,7 +1,7 @@
 <BOUCLE_rubrique_principal(RUBRIQUES) {id_rubrique}{!lang_select}>
 	<nav id="miettesdepain" aria-label="Fil d'Ariane">
 		<ul>
-			<li><a href="#URL_SITE_SPIP" title="<:soyezcreateurs:accueil_site|attribut_html:>"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-home"></use></svg><span class="hide"><:soyezcreateurs:accueil:></a></span></li>
+			<li><a href="#URL_SITE_SPIP" title="<:soyezcreateurs:accueil_site|attribut_html:>"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-home"></use></svg><span class="hide"><:soyezcreateurs:accueil:></span></a></li>
 			<BOUCLE_plan(HIERARCHIE){id_rubrique}{!titre_mot=PasDansFildAriane}>
 			<li><a href="#URL_RUBRIQUE"[ title="(#DESCRIPTIF|supprimer_tags|attribut_html)"]>[(#TITRE|replace{<br />,''})]</a></li>
 			</BOUCLE_plan>
diff --git a/noisettes/miettesdepain/sigles.html b/noisettes/miettesdepain/sigles.html
index 95513244ca86efa2dc29ca767530984ca79d8dc8..74f9fc9d02c890115cd5764b513c071a7f8d8b7d 100644
--- a/noisettes/miettesdepain/sigles.html
+++ b/noisettes/miettesdepain/sigles.html
@@ -1,6 +1,6 @@
 	<nav id="miettesdepain" aria-label="Fil d'Ariane">
 		<ul>
-			<li><a href="#URL_SITE_SPIP" title="<:soyezcreateurs:accueil_site|attribut_html:>"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-home"></use></svg><span class="hide"><:soyezcreateurs:accueil:></a></span></li>
+			<li><a href="#URL_SITE_SPIP" title="<:soyezcreateurs:accueil_site|attribut_html:>"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-home"></use></svg><span class="hide"><:soyezcreateurs:accueil:></span></a></li>
 			<li><:definition:titre_definitions:></li>
 		</ul>
 	</nav>
diff --git a/noisettes/miettesdepain/site.html b/noisettes/miettesdepain/site.html
index 49f5f9767e4cb6427de65648ff2be95ec420431d..2edc6eeca3ae6229906343049fab7daabe91401a 100755
--- a/noisettes/miettesdepain/site.html
+++ b/noisettes/miettesdepain/site.html
@@ -1,7 +1,7 @@
 <BOUCLE_site(SITES){id_syndic}>
 	<nav id="miettesdepain" aria-label="Fil d'Ariane">
 		<ul>
-			<li><a href="#URL_SITE_SPIP" title="<:soyezcreateurs:accueil_site|attribut_html:>"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-home"></use></svg><span class="hide"><:soyezcreateurs:accueil:></a></span></li>
+			<li><a href="#URL_SITE_SPIP" title="<:soyezcreateurs:accueil_site|attribut_html:>"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-home"></use></svg><span class="hide"><:soyezcreateurs:accueil:></span></a></li>
 			<BOUCLE_ariane(HIERARCHIE){id_syndic}{!titre_mot=PasDansFildAriane}><li><a href="#URL_RUBRIQUE"[ title="(#DESCRIPTIF|supprimer_tags|attribut_html)"]>[(#TITRE|replace{<br />,''})]</a></li></BOUCLE_ariane><li><a href="#URL_PAGE{site}"><:sites_web:></a></li>
 			<BOUCLE_UnArticleSyndique(SYNDIC_ARTICLES) {id_syndic_article}>
 			<li><a href="[(#ID_SYNDIC|generer_url_entite{'site'})]">[(#NOM_SITE|typo)]</a></li>
@@ -14,7 +14,7 @@
 </BOUCLE_site>
 <nav id="miettesdepain" aria-label="Fil d'Ariane">
 	<ul>
-		<li><a href="#URL_SITE_SPIP" title="<:soyezcreateurs:accueil_site|attribut_html:>"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-home"></use></svg><span class="hide"><:soyezcreateurs:accueil:></a></span></li>
+		<li><a href="#URL_SITE_SPIP" title="<:soyezcreateurs:accueil_site|attribut_html:>"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-home"></use></svg><span class="hide"><:soyezcreateurs:accueil:></span></a></li>
 		<li><:sites_web:></li>
 	</ul>
 </nav>
diff --git a/noisettes/miettesdepain/sommaire_modeactualites.html b/noisettes/miettesdepain/sommaire_modeactualites.html
index 54875688e47e935c99430945f6ea2807f694b9cc..3f6b973cb27a86c068e9baa29c60594c944b5674 100644
--- a/noisettes/miettesdepain/sommaire_modeactualites.html
+++ b/noisettes/miettesdepain/sommaire_modeactualites.html
@@ -1,6 +1,6 @@
 	<nav id="miettesdepain" aria-label="Fil d'Ariane">
 		<ul>
-			<li><a href="#URL_SITE_SPIP" title="<:soyezcreateurs:accueil_site|attribut_html:>"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-home"></use></svg><span class="hide"><:soyezcreateurs:accueil:></a></span></li>
+			<li><a href="#URL_SITE_SPIP" title="<:soyezcreateurs:accueil_site|attribut_html:>"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-home"></use></svg><span class="hide"><:soyezcreateurs:accueil:></span></a></li>
 			<li><BOUCLE_ZoomSur(ARTICLES) {titre_mot=ZoomSur}{0,1}{lang}{!par date}>
 [(#TITRE|replace{<br />,''})]
 </BOUCLE_ZoomSur>
diff --git a/noisettes/miettesdepain/sommaire_modeblog.html b/noisettes/miettesdepain/sommaire_modeblog.html
index 96ffa7c7b7d2ea883e997b947cb8b0e8ff0f74c0..5dfe6b58252eed4dd5ac3712634e531c9b88dd9e 100644
--- a/noisettes/miettesdepain/sommaire_modeblog.html
+++ b/noisettes/miettesdepain/sommaire_modeblog.html
@@ -1,6 +1,6 @@
 	<nav id="miettesdepain" aria-label="Fil d'Ariane">
 		<ul>
-			<li><a href="#URL_SITE_SPIP" title="<:soyezcreateurs:accueil_site|attribut_html:>"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-home"></use></svg><span class="hide"><:soyezcreateurs:accueil:></a></span></li>
+			<li><a href="#URL_SITE_SPIP" title="<:soyezcreateurs:accueil_site|attribut_html:>"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-home"></use></svg><span class="hide"><:soyezcreateurs:accueil:></span></a></li>
 			<li>[(#NOM_SITE_SPIP)]</li>
 		</ul>
 	</nav>
diff --git a/noisettes/miettesdepain/sommaire_modecommuniquant.html b/noisettes/miettesdepain/sommaire_modecommuniquant.html
index 96ffa7c7b7d2ea883e997b947cb8b0e8ff0f74c0..5dfe6b58252eed4dd5ac3712634e531c9b88dd9e 100644
--- a/noisettes/miettesdepain/sommaire_modecommuniquant.html
+++ b/noisettes/miettesdepain/sommaire_modecommuniquant.html
@@ -1,6 +1,6 @@
 	<nav id="miettesdepain" aria-label="Fil d'Ariane">
 		<ul>
-			<li><a href="#URL_SITE_SPIP" title="<:soyezcreateurs:accueil_site|attribut_html:>"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-home"></use></svg><span class="hide"><:soyezcreateurs:accueil:></a></span></li>
+			<li><a href="#URL_SITE_SPIP" title="<:soyezcreateurs:accueil_site|attribut_html:>"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-home"></use></svg><span class="hide"><:soyezcreateurs:accueil:></span></a></li>
 			<li>[(#NOM_SITE_SPIP)]</li>
 		</ul>
 	</nav>
diff --git a/noisettes/miettesdepain/sommaire_modeedito.html b/noisettes/miettesdepain/sommaire_modeedito.html
index ad6ad0f6a349fbefa7c48190ab09a0dfd23b42ac..0f56a2364e71b2e3762818d82c682b70b2a86621 100644
--- a/noisettes/miettesdepain/sommaire_modeedito.html
+++ b/noisettes/miettesdepain/sommaire_modeedito.html
@@ -1,6 +1,6 @@
 	<nav id="miettesdepain" aria-label="Fil d'Ariane">
 		<ul>
-			<li><a href="#URL_SITE_SPIP" title="<:soyezcreateurs:accueil_site|attribut_html:>"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-home"></use></svg><span class="hide"><:soyezcreateurs:accueil:></a></span></li>
+			<li><a href="#URL_SITE_SPIP" title="<:soyezcreateurs:accueil_site|attribut_html:>"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-home"></use></svg><span class="hide"><:soyezcreateurs:accueil:></span></a></li>
 			<li><BOUCLE_article_principal(ARTICLES){lang}{titre_mot=EDITO#ENV{typeedito}}{!par date}{0,1}>[(#TITRE|replace{<br />,''})]</BOUCLE_article_principal>#NOM_SITE_SPIP<//B_article_principal></li>
 		</ul>
 	</nav>
diff --git a/noisettes/miettesdepain/sommaire_modemairie.html b/noisettes/miettesdepain/sommaire_modemairie.html
index 96ffa7c7b7d2ea883e997b947cb8b0e8ff0f74c0..5dfe6b58252eed4dd5ac3712634e531c9b88dd9e 100644
--- a/noisettes/miettesdepain/sommaire_modemairie.html
+++ b/noisettes/miettesdepain/sommaire_modemairie.html
@@ -1,6 +1,6 @@
 	<nav id="miettesdepain" aria-label="Fil d'Ariane">
 		<ul>
-			<li><a href="#URL_SITE_SPIP" title="<:soyezcreateurs:accueil_site|attribut_html:>"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-home"></use></svg><span class="hide"><:soyezcreateurs:accueil:></a></span></li>
+			<li><a href="#URL_SITE_SPIP" title="<:soyezcreateurs:accueil_site|attribut_html:>"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-home"></use></svg><span class="hide"><:soyezcreateurs:accueil:></span></a></li>
 			<li>[(#NOM_SITE_SPIP)]</li>
 		</ul>
 	</nav>
diff --git a/noisettes/miettesdepain/sommaire_modenews.html b/noisettes/miettesdepain/sommaire_modenews.html
index 38990448dca765484701217ac399172aaf0fdf2e..05c5ae3d8c1ea7e822ca1d8e946be245c19ecbda 100644
--- a/noisettes/miettesdepain/sommaire_modenews.html
+++ b/noisettes/miettesdepain/sommaire_modenews.html
@@ -1,6 +1,6 @@
 	<nav id="miettesdepain" aria-label="Fil d'Ariane">
 		<ul>
-			<li><a href="#URL_SITE_SPIP" title="<:soyezcreateurs:accueil_site|attribut_html:>"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-home"></use></svg><span class="hide"><:soyezcreateurs:accueil:></a></span></li>
+			<li><a href="#URL_SITE_SPIP" title="<:soyezcreateurs:accueil_site|attribut_html:>"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-home"></use></svg><span class="hide"><:soyezcreateurs:accueil:></span></a></li>
 			<li><BOUCLE_articles_recentsAlaUne(ARTICLES){lang}{0,(#CONFIG{soyezcreateurs/nombres_alanune,4})}{doublons}{titre_mot=AlaUne}> </BOUCLE_articles_recentsAlaUne>
 <:soyezcreateurs:alaune:>
 </B_articles_recentsAlaUne>
diff --git a/noisettes/miettesdepain/sommaire_modeportail.html b/noisettes/miettesdepain/sommaire_modeportail.html
index 96ffa7c7b7d2ea883e997b947cb8b0e8ff0f74c0..5dfe6b58252eed4dd5ac3712634e531c9b88dd9e 100644
--- a/noisettes/miettesdepain/sommaire_modeportail.html
+++ b/noisettes/miettesdepain/sommaire_modeportail.html
@@ -1,6 +1,6 @@
 	<nav id="miettesdepain" aria-label="Fil d'Ariane">
 		<ul>
-			<li><a href="#URL_SITE_SPIP" title="<:soyezcreateurs:accueil_site|attribut_html:>"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-home"></use></svg><span class="hide"><:soyezcreateurs:accueil:></a></span></li>
+			<li><a href="#URL_SITE_SPIP" title="<:soyezcreateurs:accueil_site|attribut_html:>"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-home"></use></svg><span class="hide"><:soyezcreateurs:accueil:></span></a></li>
 			<li>[(#NOM_SITE_SPIP)]</li>
 		</ul>
 	</nav>
diff --git a/noisettes/miettesdepain/sommaire_modeportailagence.html b/noisettes/miettesdepain/sommaire_modeportailagence.html
index 96ffa7c7b7d2ea883e997b947cb8b0e8ff0f74c0..5dfe6b58252eed4dd5ac3712634e531c9b88dd9e 100644
--- a/noisettes/miettesdepain/sommaire_modeportailagence.html
+++ b/noisettes/miettesdepain/sommaire_modeportailagence.html
@@ -1,6 +1,6 @@
 	<nav id="miettesdepain" aria-label="Fil d'Ariane">
 		<ul>
-			<li><a href="#URL_SITE_SPIP" title="<:soyezcreateurs:accueil_site|attribut_html:>"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-home"></use></svg><span class="hide"><:soyezcreateurs:accueil:></a></span></li>
+			<li><a href="#URL_SITE_SPIP" title="<:soyezcreateurs:accueil_site|attribut_html:>"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-home"></use></svg><span class="hide"><:soyezcreateurs:accueil:></span></a></li>
 			<li>[(#NOM_SITE_SPIP)]</li>
 		</ul>
 	</nav>
diff --git a/noisettes/miettesdepain/telecharger.html b/noisettes/miettesdepain/telecharger.html
index b01f3798da3e60a85b69feb660686b95fdfc5f04..c46340c0784afa3adfa03e0c2b993b183e16473d 100644
--- a/noisettes/miettesdepain/telecharger.html
+++ b/noisettes/miettesdepain/telecharger.html
@@ -1,6 +1,6 @@
 	<nav id="miettesdepain" aria-label="Fil d'Ariane">
 		<ul>
-			<li><a href="#URL_SITE_SPIP" title="<:soyezcreateurs:accueil_site|attribut_html:>"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-home"></use></svg><span class="hide"><:soyezcreateurs:accueil:></a></span></li>
+			<li><a href="#URL_SITE_SPIP" title="<:soyezcreateurs:accueil_site|attribut_html:>"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-home"></use></svg><span class="hide"><:soyezcreateurs:accueil:></span></a></li>
 			<li><:medias:info_documents:></li>
 		</ul>
 	</nav>
diff --git a/noisettes/miettesdepain/transaction_merci.html b/noisettes/miettesdepain/transaction_merci.html
index 53588f23f2536b6ef451f51e09554bf1ba388c6c..940d2bd1d574aebce36c76af5557347d1aadd690 100644
--- a/noisettes/miettesdepain/transaction_merci.html
+++ b/noisettes/miettesdepain/transaction_merci.html
@@ -1,6 +1,6 @@
 	<nav id="miettesdepain" aria-label="Fil d'Ariane">
 		<ul>
-			<li><a href="#URL_SITE_SPIP" title="<:soyezcreateurs:accueil_site|attribut_html:>"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-home"></use></svg><span class="hide"><:soyezcreateurs:accueil:></a></span></li>
+			<li><a href="#URL_SITE_SPIP" title="<:soyezcreateurs:accueil_site|attribut_html:>"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-home"></use></svg><span class="hide"><:soyezcreateurs:accueil:></span></a></li>
 			<li><:transaction:merci:></li>
 		</ul>
 	</nav>
diff --git a/noisettes/miettesdepain/transaction_regret.html b/noisettes/miettesdepain/transaction_regret.html
index 633c06be49701a39886b9a1eee40f2be1c64e846..28f011425d5b2f4c751f352eb328017d1d1aa061 100644
--- a/noisettes/miettesdepain/transaction_regret.html
+++ b/noisettes/miettesdepain/transaction_regret.html
@@ -1,7 +1,7 @@
 	<nav id="miettesdepain" aria-label="Fil d'Ariane">
 		<ul>
-			<li><a href="#URL_SITE_SPIP" title="<:soyezcreateurs:accueil_site|attribut_html:>"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-home"></use></svg><span class="hide"><:soyezcreateurs:accueil:></a></span></li>
+			<li><a href="#URL_SITE_SPIP" title="<:soyezcreateurs:accueil_site|attribut_html:>"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-home"></use></svg><span class="hide"><:soyezcreateurs:accueil:></span></a></li>
 			<li><:transaction:regret:></li>
 		</ul>
 	</nav>
-#FILTRE{mini_html}
\ No newline at end of file
+#FILTRE{mini_html}
diff --git a/noisettes/plan/inc_antichrono.html b/noisettes/plan/inc_antichrono.html
index 40e733b86d6f3340f04722e3b1a16310d8f08a18..7d0dbb145dd9a4f3117b987517738eb07fb111a1 100644
--- a/noisettes/plan/inc_antichrono.html
+++ b/noisettes/plan/inc_antichrono.html
@@ -15,7 +15,7 @@
 		{source table,#ENV{listeannes}}
 		{!par year}
 	>
-		<li>[(#ENV{year,#GET{firstyear}}|=={#YEAR}|?{<strong>,<a href="[(#SELF|parametre_url{'year',[(#YEAR|!={#GET{firstyear}}|?{#YEAR,''})]})]" class="ajax">})]#YEAR[(#ENV{year}|=={#YEAR}|?{</strong>,</a>})]</li>
+		<li>[(#ENV{year,#GET{firstyear}}|=={#YEAR}|?{<strong>,<a href="[(#SELF|parametre_url{'year',[(#YEAR|!={#GET{firstyear}}|?{#YEAR,''})]})]" class="ajax">})]#YEAR[(#ENV{year,#GET{firstyear}}|=={#YEAR}|?{</strong>,</a>})]</li>
 	</BOUCLE_Sommaire>
 	</ul>
 	</B_Sommaire>
@@ -113,4 +113,4 @@
 	</B_ListeMois>
 	</BOUCLE_AnneeObjet>
 </B_AnneeObjet>
-#FILTRE{mini_html}
\ No newline at end of file
+#FILTRE{mini_html}
diff --git a/noisettes/plan/inc_antichrono_grid.html b/noisettes/plan/inc_antichrono_grid.html
index 1992fb7de4ebe56adb2a811aaf8cc28aa90dc1b7..96eaa6ddfd72ed462c1cb028ca96ee447409a9f3 100644
--- a/noisettes/plan/inc_antichrono_grid.html
+++ b/noisettes/plan/inc_antichrono_grid.html
@@ -17,7 +17,7 @@
 		{source table,#ENV{listeannes}}
 		{!par year}
 	>
-		<li>[(#ENV{year,#GET{firstyear}}|=={#YEAR}|?{<strong>,<a href="[(#SELF|parametre_url{'year',[(#YEAR|!={#GET{firstyear}}|?{#YEAR,''})]})]" class="ajax">})]#YEAR[(#ENV{year}|=={#YEAR}|?{</strong>,</a>})]</li>
+		<li>[(#ENV{year,#GET{firstyear}}|=={#YEAR}|?{<strong>,<a href="[(#SELF|parametre_url{'year',[(#YEAR|!={#GET{firstyear}}|?{#YEAR,''})]})]" class="ajax">})]#YEAR[(#ENV{year,#GET{firstyear}}|=={#YEAR}|?{</strong>,</a>})]</li>
 	</BOUCLE_Sommaire>
 	</ul>
 </div>
@@ -97,14 +97,14 @@
 
 
 <B_AnneeObjet>
-<div class="masonry petitestuiles">
+<div class="grid petitestuiles">
 	<BOUCLE_AnneeObjet(DATA)
 		{source table,#ENV{listeannes}}
 		{year=#ENV{year,#GET{firstyear}}}
 		{!par year}
 	>
 	<B_ListeMois>
-	<div id="annee_#YEAR" class="grid-item masonry-brick">
+	<div id="annee_#YEAR" class="grid-item">
 		<div class="content-actus alaune year">
 			[<img src="(#GET{logoyear}|image_focus{308,#CONFIG{soyezcreateurs/hauteur_quoi2neuf,340}}|extraire_attribut{src})" alt="" width="308" height="#CONFIG{soyezcreateurs/hauteur_quoi2neuf,340}" />]
 			<div class="h2" tabindex="-1"><span class="titre-actus">[(#YEAR)]</span></div>
@@ -115,7 +115,7 @@
 			{liste 12,11,10,9,8,7,6,5,4,3,2,1}
 		>
 		<B_ObjetsDuMois>
-		<div class="grid-item masonry-brick">
+		<div class="grid-item">
 			<div class="content-actus alaune month">
 				[<img src="(#GET{logomonth}|image_focus{308,#CONFIG{soyezcreateurs/hauteur_quoi2neuf,340}}|extraire_attribut{src})" alt="" width="308" height="#CONFIG{soyezcreateurs/hauteur_quoi2neuf,340}" />]
 				<div class="h2" tabindex="-1"><span class="titre-actus">[(#YEAR|concat{-,#_ListeMois:VALEUR#VAL,-01}|nom_mois|ucfirst)]</span></div>
@@ -127,10 +127,10 @@
 				{month=#_ListeMois:VALEUR}
 				{!par date}
 			>
-			<div class="grid-item masonry-brick[ (#CLASS)]">
+			<div class="grid-item[ (#CLASS)]">
 				<div class="content-actus alaune[ (#COULEURRUBRIQUE)]">
 					<a href="#URL"[ title="(#DESCRIPTIF|supprimer_tags|attribut_html)"]>
-						[<img src="(#LOGO|image_focus{308,#CONFIG{soyezcreateurs/hauteur_quoi2neuf,340}}|extraire_attribut{src})" alt="" width="308" height="#CONFIG{soyezcreateurs/hauteur_quoi2neuf,340}" />]
+						[<div class="img-hover-zoom"><img src="(#LOGO|image_focus{308,#CONFIG{soyezcreateurs/hauteur_quoi2neuf,340}}|extraire_attribut{src})" alt="" width="308" height="#CONFIG{soyezcreateurs/hauteur_quoi2neuf,340}" /></div>]
 						<div class="h2" tabindex="-1"><span class="titre-actus">#TITRE[ <span class="secondary-information">((#TYPE))</span>]</span>
 							<svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-arrow-right2"></use></svg></div>
 					</a>
@@ -144,4 +144,4 @@
 	</BOUCLE_AnneeObjet>
 </div>
 </B_AnneeObjet>
-#FILTRE{mini_html}
\ No newline at end of file
+#FILTRE{mini_html}
diff --git a/noisettes/rubriques/rubrique_automatique_article_bloc.html b/noisettes/rubriques/rubrique_automatique_article_bloc.html
index e7d75b3f980b361684f50a913ad8dfa4f6b50ebe..fda7454a0738aeebafcf7b623dad47772e1d338e 100644
--- a/noisettes/rubriques/rubrique_automatique_article_bloc.html
+++ b/noisettes/rubriques/rubrique_automatique_article_bloc.html
@@ -1,7 +1,7 @@
-<BOUCLE_(ARTICLES){id_article}>[(#CONFIG{soyezcreateurs_layout/cadragelogoarticlerubrique,#CONFIG{soyezcreateurs_layout/cadragelogocontenuautomatique,entier}}|=={recadre}|oui)[(#SET{lelogo,[(#LOGO_ARTICLE_NORMAL|image_focus{#CONFIG{soyezcreateurs_layout/largeurlogoarticlerubrique,#CONFIG{soyezcreateurs_layout/largeurlogocontenuautomatique,64}},#CONFIG{soyezcreateurs_layout/hauteurlogoarticlerubrique,#CONFIG{soyezcreateurs_layout/hauteurlogocontenuautomatique,64}}})]})]][(#CONFIG{soyezcreateurs_layout/cadragelogoarticlerubrique,#CONFIG{soyezcreateurs_layout/cadragelogocontenuautomatique,entier}}|=={entier}|oui)[(#SET{lelogo,[(#LOGO_ARTICLE_NORMAL|image_reduire{#CONFIG{soyezcreateurs_layout/largeurlogoarticlerubrique,#CONFIG{soyezcreateurs_layout/largeurlogocontenuautomatique,64}},#CONFIG{soyezcreateurs_layout/hauteurlogoarticlerubrique,#CONFIG{soyezcreateurs_layout/hauteurlogocontenuautomatique,64}}})]})]]
+<BOUCLE_(ARTICLES){id_article}>[(#CONFIG{soyezcreateurs_layout/cadragelogoarticlerubrique,#CONFIG{soyezcreateurs_layout/cadragelogocontenuautomatique,entier}}|=={recadre}|oui)[(#SET{lelogo,[(#LOGO_ARTICLE_NORMAL|sinon{#LOGO_RUBRIQUE_NORMAL}|image_focus{#CONFIG{soyezcreateurs_layout/largeurlogoarticlerubrique,#CONFIG{soyezcreateurs_layout/largeurlogocontenuautomatique,64}},#CONFIG{soyezcreateurs_layout/hauteurlogoarticlerubrique,#CONFIG{soyezcreateurs_layout/hauteurlogocontenuautomatique,64}}})]})]][(#CONFIG{soyezcreateurs_layout/cadragelogoarticlerubrique,#CONFIG{soyezcreateurs_layout/cadragelogocontenuautomatique,entier}}|=={entier}|oui)[(#SET{lelogo,[(#LOGO_ARTICLE_NORMAL|sinon{#LOGO_RUBRIQUE_NORMAL}|image_reduire{#CONFIG{soyezcreateurs_layout/largeurlogoarticlerubrique,#CONFIG{soyezcreateurs_layout/largeurlogocontenuautomatique,64}},#CONFIG{soyezcreateurs_layout/hauteurlogoarticlerubrique,#CONFIG{soyezcreateurs_layout/hauteurlogocontenuautomatique,64}}})]})]]
 	[(#CONFIG{soyezcreateurs_layout/logoarticlerubrique,[(#CONFIG{soyezcreateurs_layout/logoarticlenavigation,content})]}|=={contenthauttitre}|oui)[<dt class="haslogo nogap[(#COMPTEUR_BOUCLE|alterner{'',' odd'})]"><a href="#ARTICLE_URL"[ title="(#DESCRIPTIF|supprimer_tags|attribut_html)[ ((#INCLURE{fond=noisettes/aff_datepublication,id_article}|supprimer_tags))]"]><img class="logo contenthauttitre" src="(#GET{lelogo}|extraire_attribut{src}|strval|embarque_fichier)" width="[(#GET{lelogo}|largeur)]" height="[(#GET{lelogo}|hauteur)]" alt="" /></a></dt>]]
 	<dt class="#EDIT{titre} h2[(#CONFIG{soyezcreateurs_layout/logoarticlerubrique,[(#CONFIG{soyezcreateurs_layout/logoarticlenavigation,content})]}|=={content}|oui)haslogo][(#CONFIG{soyezcreateurs_layout/logoarticlerubrique,[(#CONFIG{soyezcreateurs_layout/logoarticlenavigation,content})]}|=={contentbastitre}|oui)nogap][(#COMPTEUR_BOUCLE|alterner{'',' odd'})]">[(#INCLURE{fond=noisettes/aff_datepublication,id_article})]<a href="#ARTICLE_URL"[ title="(#DESCRIPTIF|supprimer_tags|attribut_html)[ ((#INCLURE{fond=noisettes/aff_datepublication,id_article}|supprimer_tags))]"]>[(#CONFIG{soyezcreateurs_layout/logoarticlerubrique,[(#CONFIG{soyezcreateurs_layout/logoarticlenavigation,content})]}|=={content}|oui)[<img class="logo logo_modenews" src="(#GET{lelogo}|extraire_attribut{src}|strval|embarque_fichier)" width="[(#GET{lelogo}|largeur)]" height="[(#GET{lelogo}|hauteur)]" alt="" />]][(#TITRE)][ <span class="titrerubblog">#(#ENV{affrub}|?{#INFO_TITRE{rubrique,#ID_RUBRIQUE}})</span>]</a>[(#INCLURE{fond=noisettes/liste_auteurs,id_article,lang,nolink=1})]</dt>
 	[(#CONFIG{soyezcreateurs_layout/logoarticlerubrique,[(#CONFIG{soyezcreateurs_layout/logoarticlenavigation,content})]}|=={contentbastitre}|oui)[<dt class="haslogo [(#COMPTEUR_BOUCLE|alterner{'',' odd'})]"><a href="#ARTICLE_URL"[ title="(#DESCRIPTIF|supprimer_tags|attribut_html)[ ((#INCLURE{fond=noisettes/aff_datepublication,id_article}|supprimer_tags))]"]><img class="logo contentbastitre" src="(#GET{lelogo}|extraire_attribut{src}|strval|embarque_fichier)" width="[(#GET{lelogo}|largeur)]" height="[(#GET{lelogo}|hauteur)]" alt="" /></a></dt>]]
 	[<dd class="cursor-pointer[(#COMPTEUR_BOUCLE|alterner{'',' odd'})] #EDIT{introduction}" onclick="location.href='#ARTICLE_URL';" title="<:soyezcreateurs:liresuitede:>[ (#TITRE|supprimer_tags|attribut_html)]">(#CHAPO|sinon{#DESCRIPTIF}|sinon{[<p>(#TEXTE|couper{300})</p>]}|image_reduire{#CONFIG{soyezcreateurs_layout/maxlargeurimage,720}|mult{2}|div{3},0})</dd>]
 	[<dd>(#INCLURE{fond=noisettes/inc_liste_document_article,id_article,listerdocuniqueaussi=oui})</dd>]
-</BOUCLE_>
\ No newline at end of file
+</BOUCLE_>
diff --git a/noisettes/rubriques/typerubrique_ArticlesParAnnees.html b/noisettes/rubriques/typerubrique_ArticlesParAnnees.html
index bafe1c5adf41069cebcb318f0b7b8f23b3ceccaf..090f99063bb98a9313fb819bcf037984654fa840 100644
--- a/noisettes/rubriques/typerubrique_ArticlesParAnnees.html
+++ b/noisettes/rubriques/typerubrique_ArticlesParAnnees.html
@@ -1,19 +1,13 @@
-<BOUCLE_secteurs(RUBRIQUES) {id_rubrique}>
-[(#INCLURE{fond=noisettes/cartouches/rubrique_cartouche_ssrubriques,id_rubrique})]
-<div class="texte">
-<main id="main">
-	<!-- Une : contenu de la rubrique -->
-[(#CONFIG{soyezcreateurs_layout/positioncartouchetitre,contenu}|=={contenu}|oui)
-	<div class="cartouche">
-	<div class="titrepage"><h1 class="#EDIT{titre} surlignable">[<img src="(#LOGO_RUBRIQUE_NORMAL|image_reduire{#CONFIG{soyezcreateurs_layout/largeurlogocontenuautomatique,64},#CONFIG{soyezcreateurs_layout/hauteurlogocontenuautomatique,64}}|extraire_attribut{src}|strval|embarque_fichier)" class="logo_rubrique" alt="" width="[(#LOGO_RUBRIQUE_NORMAL|image_reduire{#CONFIG{soyezcreateurs_layout/largeurlogocontenuautomatique,64},#CONFIG{soyezcreateurs_layout/hauteurlogocontenuautomatique,64}}|largeur)]" height="[(#LOGO_RUBRIQUE_NORMAL|image_reduire{#CONFIG{soyezcreateurs_layout/largeurlogocontenuautomatique,64},#CONFIG{soyezcreateurs_layout/hauteurlogocontenuautomatique,64}}|hauteur)]" />][(#TITRE)][(#ENV{archive}|oui)(<:soyezcreateurs:archives:>)]</h1></div>
-	[(#ENV{archive}|non)[(#INCLURE{fond=noisettes/cartouches/article_cartouche_archives,id_rubrique,lang}|oui)<div class="lienarchives pas_surlignable"><a href="[(#SELF|parametre_url{archive,oui})]" title="<:soyezcreateurs:archives_title|attribut_html:>"><:soyezcreateurs:archives:></a></div>]]
-	</div>
-]
-	<div id="letexte" class="surlignable">
-	[(#ENV{archive}|non)[(#INCLURE{fond=noisettes/rubriques/ArticlesParAnnees,id_rubrique,lang})]]
-	[(#ENV{archive}|oui)[(#INCLURE{fond=noisettes/rubriques/ArticlesParAnnees_Archives,id_rubrique,lang})]]
-	</div><!-- Fin de #LeTexte -->
-</main></div><!-- Fin de .texte -->
-		
-</BOUCLE_secteurs>
-#FILTRE{mini_html}
\ No newline at end of file
+<BOUCLE_secteurs(RUBRIQUES) {id_rubrique}>
+[(#INCLURE{fond=noisettes/cartouches/rubrique_cartouche_ssrubriques,id_rubrique})]
+<div class="texte">
+<main id="main">
+	<!-- Une : contenu de la rubrique -->
+	<div id="letexte" class="surlignable">
+	[(#ENV{archive}|non)[(#INCLURE{fond=noisettes/rubriques/ArticlesParAnnees,id_rubrique,lang})]]
+	[(#ENV{archive}|oui)[(#INCLURE{fond=noisettes/rubriques/ArticlesParAnnees_Archives,id_rubrique,lang})]]
+	</div><!-- Fin de #LeTexte -->
+</main></div><!-- Fin de .texte -->
+
+</BOUCLE_secteurs>
+#FILTRE{mini_html}
diff --git a/noisettes/rubriques/typerubrique_ContenuArticles.html b/noisettes/rubriques/typerubrique_ContenuArticles.html
index 2b94b7aa56eadb8891c1bcc2dba2c2e148eaaf85..1addeb15f5f572bed90b2383517f4461ed47380f 100644
--- a/noisettes/rubriques/typerubrique_ContenuArticles.html
+++ b/noisettes/rubriques/typerubrique_ContenuArticles.html
@@ -1,21 +1,15 @@
-<BOUCLE_secteurs(RUBRIQUES) {id_rubrique}>
-[(#INCLURE{fond=noisettes/cartouches/rubrique_cartouche_ssrubriques,id_rubrique})]
-<div class="texte">
-<main id="main">
-	<!-- Une : contenu de la rubrique -->
-[(#CONFIG{soyezcreateurs_layout/positioncartouchetitre,contenu}|=={contenu}|oui)
-	<div class="cartouche">
-	<div class="titrepage"><h1 class="#EDIT{titre} surlignable">[<img src="(#LOGO_RUBRIQUE_NORMAL|image_reduire{#CONFIG{soyezcreateurs_layout/largeurlogocontenuprincipal,#CONFIG{soyezcreateurs_layout/largeurlogocontenuautomatique,64}},#CONFIG{soyezcreateurs_layout/hauteurlogocontenuprincipal,#CONFIG{soyezcreateurs_layout/hauteurlogocontenuautomatique,64}}}|extraire_attribut{src}|strval|embarque_fichier)" class="logo_rubrique" alt="" width="[(#LOGO_RUBRIQUE_NORMAL|image_reduire{#CONFIG{soyezcreateurs_layout/largeurlogocontenuprincipal,#CONFIG{soyezcreateurs_layout/largeurlogocontenuautomatique,64}},#CONFIG{soyezcreateurs_layout/hauteurlogocontenuprincipal,#CONFIG{soyezcreateurs_layout/hauteurlogocontenuautomatique,64}}}|largeur)]" height="[(#LOGO_RUBRIQUE_NORMAL|image_reduire{#CONFIG{soyezcreateurs_layout/largeurlogocontenuprincipal,#CONFIG{soyezcreateurs_layout/largeurlogocontenuautomatique,64}},#CONFIG{soyezcreateurs_layout/hauteurlogocontenuprincipal,#CONFIG{soyezcreateurs_layout/hauteurlogocontenuautomatique,64}}}|hauteur)]" />][(#TITRE)][(#ENV{archive}|oui)(<:soyezcreateurs:archives:>)]</h1></div>
-	[(#ENV{archive}|non)[(#INCLURE{fond=noisettes/cartouches/article_cartouche_archives,id_rubrique,lang}|oui)<div class="lienarchives pas_surlignable"><a href="[(#SELF|parametre_url{archive,oui})]" title="<:soyezcreateurs:archives_title|attribut_html:>"><:soyezcreateurs:archives:></a></div>]]
-	</div>
-]
-	<div id="letexte" class="surlignable">
-		[<div class="#EDIT{descriptif} descriptif">(#DESCRIPTIF|image_reduire{#CONFIG{soyezcreateurs_layout/maxlargeurimage,720},0})</div>]
-	[(#ENV{archive}|non)[(#INCLURE{fond=noisettes/rubriques/ContenuArticles,id_rubrique,lang})]]
-	[(#ENV{archive}|oui)[(#INCLURE{fond=noisettes/rubriques/ContenuArticles_Archives,id_rubrique,lang})]]
-	</div><!-- Fin de #LeTexte -->
-</main>
-</div><!-- Fin de .texte -->
-		
-</BOUCLE_secteurs>
-#FILTRE{mini_html}
\ No newline at end of file
+<BOUCLE_secteurs(RUBRIQUES) {id_rubrique}>
+[(#INCLURE{fond=noisettes/cartouches/rubrique_cartouche_ssrubriques,id_rubrique})]
+<div class="texte">
+<main id="main">
+	<!-- Une : contenu de la rubrique -->
+	<div id="letexte" class="surlignable">
+		[<div class="#EDIT{descriptif} descriptif">(#DESCRIPTIF|image_reduire{#CONFIG{soyezcreateurs_layout/maxlargeurimage,720},0})</div>]
+	[(#ENV{archive}|non)[(#INCLURE{fond=noisettes/rubriques/ContenuArticles,id_rubrique,lang})]]
+	[(#ENV{archive}|oui)[(#INCLURE{fond=noisettes/rubriques/ContenuArticles_Archives,id_rubrique,lang})]]
+	</div><!-- Fin de #LeTexte -->
+</main>
+</div><!-- Fin de .texte -->
+
+</BOUCLE_secteurs>
+#FILTRE{mini_html}
diff --git a/noisettes/rubriques/typerubrique_ListeArticlesParAnnees.html b/noisettes/rubriques/typerubrique_ListeArticlesParAnnees.html
index a7cc5f509d1973ffd13f28e08c0ecd9d17e26992..3ab1105457e51eb5bca6fa274265b1815813ab6e 100644
--- a/noisettes/rubriques/typerubrique_ListeArticlesParAnnees.html
+++ b/noisettes/rubriques/typerubrique_ListeArticlesParAnnees.html
@@ -1,20 +1,14 @@
-<BOUCLE_secteurs(RUBRIQUES) {id_rubrique}>
-[(#INCLURE{fond=noisettes/cartouches/rubrique_cartouche_ssrubriques,id_rubrique})]
-<div class="texte">
-<main id="main">
-	<!-- Une : contenu de la rubrique -->
-[(#CONFIG{soyezcreateurs_layout/positioncartouchetitre,contenu}|=={contenu}|oui)
-	<div class="cartouche">
-	<div class="titrepage"><h1 class="#EDIT{titre} surlignable">[<img src="(#LOGO_RUBRIQUE_NORMAL|image_reduire{#CONFIG{soyezcreateurs_layout/largeurlogocontenuautomatique,64},#CONFIG{soyezcreateurs_layout/hauteurlogocontenuautomatique,64}}|extraire_attribut{src}|strval|embarque_fichier)" class="logo_rubrique" alt="" width="[(#LOGO_RUBRIQUE_NORMAL|image_reduire{#CONFIG{soyezcreateurs_layout/largeurlogocontenuautomatique,64},#CONFIG{soyezcreateurs_layout/hauteurlogocontenuautomatique,64}}|largeur)]" height="[(#LOGO_RUBRIQUE_NORMAL|image_reduire{#CONFIG{soyezcreateurs_layout/largeurlogocontenuautomatique,64},#CONFIG{soyezcreateurs_layout/hauteurlogocontenuautomatique,64}}|hauteur)]" />][(#TITRE)][(#ENV{archive}|oui)(<:soyezcreateurs:archives:>)]</h1></div>
-	[(#ENV{archive}|non)[(#INCLURE{fond=noisettes/cartouches/article_cartouche_archives,id_rubrique,lang}|oui)<div class="lienarchives pas_surlignable"><a href="[(#SELF|parametre_url{archive,oui})]" title="<:soyezcreateurs:archives_title|attribut_html:>"><:soyezcreateurs:archives:></a></div>]]
-	</div>
-]
-	<div id="letexte" class="surlignable">
-	[(#ENV{archive}|non)[(#INCLURE{fond=noisettes/rubriques/ListeArticlesParAnnees,id_rubrique})]]
-	[(#ENV{archive}|oui)[(#INCLURE{fond=noisettes/rubriques/ListeArticlesParAnnees_Archives,id_rubrique})]]
-	</div><!-- Fin de #LeTexte -->
-</main>
-</div><!-- Fin de .texte -->
-	
-</BOUCLE_secteurs>
-#FILTRE{mini_html}
\ No newline at end of file
+<BOUCLE_secteurs(RUBRIQUES) {id_rubrique}>
+[(#INCLURE{fond=noisettes/cartouches/rubrique_cartouche_ssrubriques,id_rubrique})]
+<div class="texte">
+<main id="main">
+	<!-- Une : contenu de la rubrique -->
+	<div id="letexte" class="surlignable">
+	[(#ENV{archive}|non)[(#INCLURE{fond=noisettes/rubriques/ListeArticlesParAnnees,id_rubrique})]]
+	[(#ENV{archive}|oui)[(#INCLURE{fond=noisettes/rubriques/ListeArticlesParAnnees_Archives,id_rubrique})]]
+	</div><!-- Fin de #LeTexte -->
+</main>
+</div><!-- Fin de .texte -->
+
+</BOUCLE_secteurs>
+#FILTRE{mini_html}
diff --git a/noisettes/rubriques/typerubrique_Magazines.html b/noisettes/rubriques/typerubrique_Magazines.html
index 0a50c21338ed9eb77755e7a5a05bbdc2a3fb96a0..872255707f4209065d79149537c98489b8a11021 100644
--- a/noisettes/rubriques/typerubrique_Magazines.html
+++ b/noisettes/rubriques/typerubrique_Magazines.html
@@ -1,23 +1,17 @@
-<BOUCLE_secteurs(RUBRIQUES) {id_rubrique}>
-[(#INCLURE{fond=noisettes/cartouches/rubrique_cartouche_ssrubriques,id_rubrique})]
-<div class="texte">
-<main id="main">
-	<!-- Une : contenu de la rubrique -->
-[(#CONFIG{soyezcreateurs_layout/logorubriquenavigation,content}|=={contenthauttitre}|oui)[<img src="(#GET{logo_rubrique}|extraire_attribut{src})" class="logo_rubrique" alt="" width="[(#GET{logo_rubrique}|largeur)]" height="[(#GET{logo_rubrique}|hauteur)]" />]]
-[(#CONFIG{soyezcreateurs_layout/positioncartouchetitre,contenu}|=={contenu}|oui)
-<div class="cartouche surlignable">
-<div class="titrepage"><h1 class="#EDIT{titre} surlignable">[(#CONFIG{soyezcreateurs_layout/logorubriquenavigation,content}|=={content}|oui)[<img src="(#GET{logo_rubrique}|extraire_attribut{src})" class="logo_rubrique" alt="" width="[(#GET{logo_rubrique}|largeur)]" height="[(#GET{logo_rubrique}|hauteur)]" />]][(#TITRE)][(#ENV{archive}|oui)(<:soyezcreateurs:archives:>)]</h1>[(#FORMULAIRE_FAVORI)]</div>
-[(#ENV{archive}|non)[(#INCLURE{fond=noisettes/cartouches/article_cartouche_archives,id_rubrique,lang}|oui)<div class="lienarchives pas_surlignable"><a href="[(#SELF|parametre_url{archive,oui})]" title="<:soyezcreateurs:archives_title|attribut_html:>"><:soyezcreateurs:archives:></a></div>]]
-</div>
-]
-[(#CONFIG{soyezcreateurs_layout/logorubriquenavigation,content}|=={contentbastitre}|oui)[<img src="(#GET{logo_rubrique}|extraire_attribut{src})" class="logo_rubrique" alt="" width="[(#GET{logo_rubrique}|largeur)]" height="[(#GET{logo_rubrique}|hauteur)]" />]]
-	<div id="letexte" class="surlignable">
-[<div class="#EDIT{descriptif} chapo">(#DESCRIPTIF|image_reduire{#CONFIG{soyezcreateurs_layout/maxlargeurimage,720},0})</div>]
-	[(#ENV{archive}|non)[(#INCLURE{fond=noisettes/rubriques/ListeMagazines,id_rubrique})]]
-	[(#ENV{archive}|oui)[(#INCLURE{fond=noisettes/rubriques/ListeMagazines_Archives,id_rubrique})]]
-	</div><!-- Fin de #LeTexte -->
-</main>
-</div><!-- Fin de .texte -->
-	
-</BOUCLE_secteurs>
-#FILTRE{mini_html}
\ No newline at end of file
+<BOUCLE_secteurs(RUBRIQUES) {id_rubrique}>
+[(#INCLURE{fond=noisettes/cartouches/rubrique_cartouche_ssrubriques,id_rubrique})]
+<div class="texte">
+<main id="main">
+	<!-- Une : contenu de la rubrique -->
+[(#CONFIG{soyezcreateurs_layout/logorubriquenavigation,content}|=={contenthauttitre}|oui)[<img src="(#GET{logo_rubrique}|extraire_attribut{src})" class="logo_rubrique" alt="" width="[(#GET{logo_rubrique}|largeur)]" height="[(#GET{logo_rubrique}|hauteur)]" />]]
+[(#CONFIG{soyezcreateurs_layout/logorubriquenavigation,content}|=={contentbastitre}|oui)[<img src="(#GET{logo_rubrique}|extraire_attribut{src})" class="logo_rubrique" alt="" width="[(#GET{logo_rubrique}|largeur)]" height="[(#GET{logo_rubrique}|hauteur)]" />]]
+	<div id="letexte" class="surlignable">
+[<div class="#EDIT{descriptif} chapo">(#DESCRIPTIF|image_reduire{#CONFIG{soyezcreateurs_layout/maxlargeurimage,720},0})</div>]
+	[(#ENV{archive}|non)[(#INCLURE{fond=noisettes/rubriques/ListeMagazines,id_rubrique})]]
+	[(#ENV{archive}|oui)[(#INCLURE{fond=noisettes/rubriques/ListeMagazines_Archives,id_rubrique})]]
+	</div><!-- Fin de #LeTexte -->
+</main>
+</div><!-- Fin de .texte -->
+
+</BOUCLE_secteurs>
+#FILTRE{mini_html}
diff --git a/noisettes/rubriques/typerubrique_Mosaique.html b/noisettes/rubriques/typerubrique_Mosaique.html
index 2eb8c2cce01af0069bad884e4c958734f93d4b6d..7507ff77c37edd83bfe831359cefa2455ef50dbf 100644
--- a/noisettes/rubriques/typerubrique_Mosaique.html
+++ b/noisettes/rubriques/typerubrique_Mosaique.html
@@ -1,27 +1,21 @@
-<BOUCLE_secteurs(RUBRIQUES) {id_rubrique}>
-[(#INCLURE{fond=noisettes/cartouches/rubrique_cartouche_ssrubriques,id_rubrique})]
-<div class="texte">
-<main id="main">
-	<!-- Une : contenu de la rubrique -->
-[(#CONFIG{soyezcreateurs_layout/logorubriquenavigation,content}|=={contenthauttitre}|oui)[<img src="(#GET{logo_rubrique}|extraire_attribut{src})" class="logo_rubrique" alt="" width="[(#GET{logo_rubrique}|largeur)]" height="[(#GET{logo_rubrique}|hauteur)]" />]]
-[(#CONFIG{soyezcreateurs_layout/positioncartouchetitre,contenu}|=={contenu}|oui)
-<div class="cartouche surlignable">
-<div class="titrepage"><h1 class="#EDIT{titre} surlignable">[(#CONFIG{soyezcreateurs_layout/logorubriquenavigation,content}|=={content}|oui)[<img src="(#GET{logo_rubrique}|extraire_attribut{src})" class="logo_rubrique" alt="" width="[(#GET{logo_rubrique}|largeur)]" height="[(#GET{logo_rubrique}|hauteur)]" />]][(#TITRE)][(#ENV{archive}|oui)(<:soyezcreateurs:archives:>)]</h1>[(#FORMULAIRE_FAVORI)]</div>
-[(#ENV{archive}|non)[(#INCLURE{fond=noisettes/cartouches/article_cartouche_archives,id_rubrique,lang}|oui)<div class="lienarchives pas_surlignable"><a href="[(#SELF|parametre_url{archive,oui})]" title="<:soyezcreateurs:archives_title|attribut_html:>"><:soyezcreateurs:archives:></a></div>]]
-</div>
-]
-[(#CONFIG{soyezcreateurs_layout/logorubriquenavigation,content}|=={contentbastitre}|oui)[<img src="(#GET{logo_rubrique}|extraire_attribut{src})" class="logo_rubrique" alt="" width="[(#GET{logo_rubrique}|largeur)]" height="[(#GET{logo_rubrique}|hauteur)]" />]]
-	<div id="letexte" class="surlignable">
-[<div class="#EDIT{descriptif} chapo">(#DESCRIPTIF|image_reduire{#CONFIG{soyezcreateurs_layout/maxlargeurimage,720},0})</div>]
-	[(#ENV{archive}|non)[(#INCLURE{fond=noisettes/rubriques/ListeMosaique,id_rubrique})]]
-	[(#ENV{archive}|oui)[(#INCLURE{fond=noisettes/rubriques/ListeMosaique_Archives,id_rubrique})]]
-	[(#REM) Vérification de la présence du plugin GIS dans la rubrique et si oui on inclut la carte grace au modèle, qui est dans la page carte_gis.html]
-	[<div id="carto">
-	(#PLUGIN{GIS}|oui)[(#INCLURE{fond=json/gis_articles_plus_sites_branche,id_rubrique,limit=1}|oui)[(#INCLURE{fond=modeles/carte_gis,id_rubrique,objets=articles_plus_sites_branche,autocenterandzoom=oui,hauteur=#CONFIG{soyezcreateurs_layout/hauteurgisrubriques,400px},cluster=[(#PLUGIN{GISGEOM}|?{'non','oui'})],maxClusterRadius=40,clusterShowCoverageOnHover=oui,clusterSpiderfyOnMaxZoom=oui,fullscreen=oui,zoom_wheel=non})]]
-	</div>]
-	</div><!-- Fin de #LeTexte -->
-</main>
-</div><!-- Fin de .texte -->
-	
-</BOUCLE_secteurs>
-#FILTRE{mini_html}
\ No newline at end of file
+<BOUCLE_secteurs(RUBRIQUES) {id_rubrique}>
+[(#INCLURE{fond=noisettes/cartouches/rubrique_cartouche_ssrubriques,id_rubrique})]
+<div class="texte">
+<main id="main">
+	<!-- Une : contenu de la rubrique -->
+[(#CONFIG{soyezcreateurs_layout/logorubriquenavigation,content}|=={contenthauttitre}|oui)[<img src="(#GET{logo_rubrique}|extraire_attribut{src})" class="logo_rubrique" alt="" width="[(#GET{logo_rubrique}|largeur)]" height="[(#GET{logo_rubrique}|hauteur)]" />]]
+[(#CONFIG{soyezcreateurs_layout/logorubriquenavigation,content}|=={contentbastitre}|oui)[<img src="(#GET{logo_rubrique}|extraire_attribut{src})" class="logo_rubrique" alt="" width="[(#GET{logo_rubrique}|largeur)]" height="[(#GET{logo_rubrique}|hauteur)]" />]]
+	<div id="letexte" class="surlignable">
+[<div class="#EDIT{descriptif} chapo">(#DESCRIPTIF|image_reduire{#CONFIG{soyezcreateurs_layout/maxlargeurimage,720},0})</div>]
+	[(#ENV{archive}|non)[(#INCLURE{fond=noisettes/rubriques/ListeMosaique,id_rubrique})]]
+	[(#ENV{archive}|oui)[(#INCLURE{fond=noisettes/rubriques/ListeMosaique_Archives,id_rubrique})]]
+	[(#REM) Vérification de la présence du plugin GIS dans la rubrique et si oui on inclut la carte grace au modèle, qui est dans la page carte_gis.html]
+	[<div id="carto">
+	(#PLUGIN{GIS}|oui)[(#INCLURE{fond=json/gis_articles_plus_sites_branche,id_rubrique,limit=1}|oui)[(#INCLURE{fond=modeles/carte_gis,id_rubrique,objets=articles_plus_sites_branche,autocenterandzoom=oui,hauteur=#CONFIG{soyezcreateurs_layout/hauteurgisrubriques,400px},cluster=[(#PLUGIN{GISGEOM}|?{'non','oui'})],maxClusterRadius=40,clusterShowCoverageOnHover=oui,clusterSpiderfyOnMaxZoom=oui,fullscreen=oui,zoom_wheel=non})]]
+	</div>]
+	</div><!-- Fin de #LeTexte -->
+</main>
+</div><!-- Fin de .texte -->
+
+</BOUCLE_secteurs>
+#FILTRE{mini_html}
diff --git a/noisettes/rubriques/typerubrique_multicolonnes.html b/noisettes/rubriques/typerubrique_multicolonnes.html
index abcd5a79d5d19779dffddbb3913a5caf6a5e3ed7..edb60c79c7b136cc0e71b7f5551d4cf43e59f353 100644
--- a/noisettes/rubriques/typerubrique_multicolonnes.html
+++ b/noisettes/rubriques/typerubrique_multicolonnes.html
@@ -3,12 +3,6 @@
 	<div class="texte">
 	<main id="main">
 		<!-- Une : contenu de la rubrique -->
-[(#CONFIG{soyezcreateurs_layout/positioncartouchetitre,contenu}|=={contenu}|oui)
-		<div class="cartouche">
-		<div class="titrepage"><h1 class="#EDIT{titre} surlignable">[<img src="(#LOGO_RUBRIQUE_NORMAL|image_reduire{#CONFIG{soyezcreateurs_layout/largeurlogocontenuprincipal,#CONFIG{soyezcreateurs_layout/largeurlogocontenuautomatique,64}},#CONFIG{soyezcreateurs_layout/hauteurlogocontenuprincipal,#CONFIG{soyezcreateurs_layout/hauteurlogocontenuautomatique,64}}}|extraire_attribut{src}|strval|embarque_fichier)" class="logo_rubrique" alt="" width="[(#LOGO_RUBRIQUE_NORMAL|image_reduire{#CONFIG{soyezcreateurs_layout/largeurlogocontenuprincipal,#CONFIG{soyezcreateurs_layout/largeurlogocontenuautomatique,64}},#CONFIG{soyezcreateurs_layout/hauteurlogocontenuprincipal,#CONFIG{soyezcreateurs_layout/hauteurlogocontenuautomatique,64}}}|largeur)]" height="[(#LOGO_RUBRIQUE_NORMAL|image_reduire{#CONFIG{soyezcreateurs_layout/largeurlogocontenuprincipal,#CONFIG{soyezcreateurs_layout/largeurlogocontenuautomatique,64}},#CONFIG{soyezcreateurs_layout/hauteurlogocontenuprincipal,#CONFIG{soyezcreateurs_layout/hauteurlogocontenuautomatique,64}}}|hauteur)]" />][(#TITRE)][(#ENV{archive}|oui)(<:soyezcreateurs:archives:>)]</h1></div>
-		[(#ENV{archive}|non)[(#INCLURE{fond=noisettes/cartouches/article_cartouche_archives,id_rubrique,lang}|oui)<div class="lienarchives pas_surlignable"><a href="[(#SELF|parametre_url{archive,oui})]" title="<:soyezcreateurs:archives_title|attribut_html:>"><:soyezcreateurs:archives:></a></div>]]
-		</div>
-]
 		<div id="letexte" class="surlignable">
 			<div id="troiscolonnes">
 [(#ENV{archive}|non)[(#INCLURE{fond=noisettes/rubriques/rubrique_automatique_articles,id_rubrique,lang})]]
@@ -18,6 +12,6 @@
 		</div><!-- Fin de #LeTexte -->
 	</main>
 	</div><!-- Fin de .texte -->
-		
+
 </BOUCLE_secteurs>
-#FILTRE{mini_html}
\ No newline at end of file
+#FILTRE{mini_html}
diff --git a/noisettes/sommaire/sommaire_modeactualites.html b/noisettes/sommaire/sommaire_modeactualites.html
index 509f5f534ae2186cf27c9eac2cc5b154520c21c3..ef192f01ff8ba137b5f58eb562cf433c8a179d44 100644
--- a/noisettes/sommaire/sommaire_modeactualites.html
+++ b/noisettes/sommaire/sommaire_modeactualites.html
@@ -2,16 +2,14 @@
 <main id="main">
 	<div id="letexte" class="modeactualites">
 
-		[(#REM) 
+		[(#REM)
 				Afficher au dessus des 2 colonnes sur une seule colonne :
 				- Le dernier article ayant le mot clef ZoomSur (comme le mode portail)
 				- À défaut, Le dernier article ayant le mot clef EDITO
 		]
+		<div id="laune">
 		<BOUCLE_ZoomSur(ARTICLES) {titre_mot=ZoomSur}{!par date}{0,(#CONFIG{soyezcreateurs/nombres_zoomsur,1})}{lang}{doublons}>
-		[(#CONFIG{soyezcreateurs_layout/positioncartouchetitre,contenu}|=={contenu}|oui)
-		<h1 class="#EDIT{titre} zoomsur">[(#TITRE)]</h1>
-		]
-		<div class="zoomsur">
+		<div id="zoomsur" class="zoomsur">
 		<div class="infos">[(#INCLURE{fond=noisettes/liste_auteurs,id_article,virgule=1,nodiv=1})][(#INCLURE{fond=noisettes/aff_datepublication,id_article,lang})]</div>
 		<div>[<img class="logo_modenews" src="(#LOGO_ARTICLE|image_reduire{48,48}|extraire_attribut{src}|strval|embarque_fichier)" width="[(#LOGO_ARTICLE|image_reduire{48,48}|largeur)]" height="[(#LOGO_ARTICLE|image_reduire{48,48}|hauteur)]" alt="" />]
 		[<div class="[(#CHAPO*|?{#EDIT{chapo},#EDIT{descriptif}}) ]chapo">(#CHAPO|image_reduire{#CONFIG{soyezcreateurs_layout/maxlargeurimage,720},0}|sinon{#DESCRIPTIF})</div>]
@@ -24,10 +22,7 @@
 		</div>
 		</BOUCLE_ZoomSur>
 		<BOUCLE_ZoomSurEDITO(ARTICLES) {titre_mot=EDITO}{!par date}{0,1}{lang}{doublons}>
-		[(#CONFIG{soyezcreateurs_layout/positioncartouchetitre,contenu}|=={contenu}|oui)
-		<h1 class="#EDIT{titre} zoomsur">[(#TITRE)]</h1>
-		]
-		<div class="zoomsur">
+		<div id="zoomsur" class="zoomsur">
 		<div class="infos">[(#INCLURE{fond=noisettes/liste_auteurs,id_article,virgule=1,nodiv=1})][(#INCLURE{fond=noisettes/aff_datepublication,id_article,lang})]</div>
 		<div>[<img class="logo_modenews" src="(#LOGO_ARTICLE|image_reduire{48,48}|extraire_attribut{src}|strval|embarque_fichier)" width="[(#LOGO_ARTICLE|image_reduire{48,48}|largeur)]" height="[(#LOGO_ARTICLE|image_reduire{48,48}|hauteur)]" alt="" />]
 		[<div class="[(#CHAPO*|?{#EDIT{chapo},#EDIT{descriptif}}) ]chapo">(#CHAPO|image_reduire{#CONFIG{soyezcreateurs_layout/maxlargeurimage,720},0}|sinon{#DESCRIPTIF})</div>]
@@ -40,7 +35,7 @@
 		</div>
 		</BOUCLE_ZoomSurEDITO>
 		<//B_ZoomSur>
-	
+
 		[(#REM) Les dernières brèves ]
 		<B_Actualites>
 		<div class="fond actualites">
@@ -52,7 +47,8 @@
 		</ul>
 		</div>
 		</B_Actualites>
-	
+		</div><!-- /laune -->
+
 		<div id="col1">
 			<B_articles_recentsAlaUne>
 			<div class="alaune">
@@ -64,7 +60,7 @@
 			</BOUCLE_articles_recentsAlaUne>
 			</div>
 			</B_articles_recentsAlaUne>
-			
+
 #SET{LargeurContaineur,(#CONFIG{soyezcreateurs_layout/largeurconteneur,960})}
 #SET{LargeurMenuGauche,(#CONFIG{soyezcreateurs_layout/largeurmenugauche,180})}
 #SET{LargeurMenuDroit,(#CONFIG{soyezcreateurs_layout/largeurmenudroit,180})}
@@ -87,7 +83,7 @@
 		</div><!-- /col1 -->
 		<div id="col2">
 			[(#PLUGIN{AGENDA}|oui)[(#CONFIG{soyezcreateurs/homeagenda,on}|=={on}|oui)#INCLURE{fond=noisettes/agenda/agenda_sommaire_modeactualites}]]
-			
+
 			<BOUCLE_Secteurs_Exclus(RUBRIQUES){titre_mot=SecteurPasDansQuoiDeNeuf}><BOUCLE_Articles_Secteurs_Exclus(ARTICLES){id_secteur}{doublons} /></BOUCLE_Secteurs_Exclus>
 			<BOUCLE_Rubriques_Exclues(RUBRIQUES){titre_mot=PasDansQuoiDeNeuf}><BOUCLE_Articles_Exclus(ARTICLES){id_rubrique}{doublons}{lang} /></BOUCLE_Rubriques_Exclues>
 			<BOUCLE_exclus(ARTICLES){titre_mot=PasDansQuoiDeNeuf}{doublons} />
@@ -103,7 +99,7 @@
 			</div>
 			</B_articles_QuoideNeuf>
 		</div><!-- /col2 -->
-		
+
 		[(#REM) Liens des forums ]
 		<B_forums_liens>
 		<div class="fond">
@@ -119,4 +115,4 @@
 	</div><!-- Fin de LeTexte -->
 </main>
 </div><!-- Fin de .texte -->
-#FILTRE{mini_html}
\ No newline at end of file
+#FILTRE{mini_html}
diff --git a/noisettes/sommaire/sommaire_modecommuniquant.html b/noisettes/sommaire/sommaire_modecommuniquant.html
index 25d81b240c273a0d2e789b96d29a5dd82fcf0a2e..894a297bc44cbba6917376d01c691d58a899d433 100644
--- a/noisettes/sommaire/sommaire_modecommuniquant.html
+++ b/noisettes/sommaire/sommaire_modecommuniquant.html
@@ -3,9 +3,6 @@
 #SET{LargeurMenuDroit,(#CONFIG{soyezcreateurs_layout/largeurmenudroit,180})}
 #SET{Largeurcontent_central,(#GET{LargeurContaineur}|moins{#GET{LargeurMenuGauche}}|moins{#GET{LargeurMenuDroit}})}
 #SET{Largeurcontent_extra,(#GET{LargeurContaineur}|moins{#GET{Largeurcontent_central}})}
-<script type="text/javascript">
-	CanceladjustLayout = true;
-</script>
 <main id="main"><div id="communiquant_content">
 <a id="letexte"></a>
 [(#CONFIG{soyezcreateurs/largeur_slideshow_communiquant,etroite}|=={large}|oui)[(#INCLURE{fond=noisettes/sommaire/sommaire_modecommuniquant_slideshow,Largeurcontent_central=#GET{LargeurContaineur},mode=large})]]
@@ -98,7 +95,7 @@
 [(#CONFIG{soyezcreateurs/positionquoi2neuf,content}|=={extra}|oui)<INCLURE{fond=noisettes/sommaire/sommaire_modecommuniquant_quoi2neuf,doublons}>]
 [(#PLUGIN{campagnes}|oui)
   <div id="bangoodiesavant" class="encart">
-	  <INCLURE{fond=inclure/encart, identifiant=bangoodiesavant}>  
+	  <INCLURE{fond=inclure/encart, identifiant=bangoodiesavant}>
   </div>
 ]
 [(#CONFIG{soyezcreateurs/positiongoodies,extra}|=={extra}|oui)[(#INCLURE{fond=noisettes/sommaire/goodies})]]
@@ -116,7 +113,7 @@
 
 [(#PLUGIN{campagnes}|oui)
   <div id="banlocalisationavant" class="encart">
-	  <INCLURE{fond=inclure/encart, identifiant=banlocalisationavant}>  
+	  <INCLURE{fond=inclure/encart, identifiant=banlocalisationavant}>
   </div>
 ]
 
@@ -146,4 +143,4 @@
 </B_Actualites>
 
 </div><!-- communiquant_content --></main>
-#FILTRE{mini_html}
\ No newline at end of file
+#FILTRE{mini_html}
diff --git a/noisettes/sommaire/sommaire_modeedito.html b/noisettes/sommaire/sommaire_modeedito.html
index ac5914e23f06f27d2b0a03ee29da5c6775b437de..5cabcf320f5ff77d03f0297713bcb601e10b9707 100644
--- a/noisettes/sommaire/sommaire_modeedito.html
+++ b/noisettes/sommaire/sommaire_modeedito.html
@@ -11,14 +11,6 @@ D'où l'inversion de la condition pour avoir l'édito restreint si pertinent]
 <div class="texte">
 <main id="main">
 [(#PLUGIN{SOCIALTAGS}|oui)<div id="socialtags"></div>]
-[(#CONFIG{soyezcreateurs_layout/positioncartouchetitre,contenu}|=={contenu}|oui)
-<div class="cartouche surlignable">
-[<div class="#EDIT{surtitre} surtitre"><span>(#SURTITRE)</span></div>]
-[(#INCLURE{fond=noisettes/aff_datepublication,id_article,lang})]
-<div class="titrepage"><h1 class="#EDIT{titre} entry-title">[<img src="(#LOGO_ARTICLE_NORMAL|image_reduire{#CONFIG{soyezcreateurs_layout/largeurlogocontenuautomatique,64},#CONFIG{soyezcreateurs_layout/hauteurlogocontenuautomatique,64}}|extraire_attribut{src}|strval|embarque_fichier)" class="logo_article" alt="" width="[(#LOGO_ARTICLE_NORMAL|image_reduire{#CONFIG{soyezcreateurs_layout/largeurlogocontenuautomatique,64},#CONFIG{soyezcreateurs_layout/hauteurlogocontenuautomatique,64}}|largeur)]" height="[(#LOGO_ARTICLE_NORMAL|image_reduire{#CONFIG{soyezcreateurs_layout/largeurlogocontenuautomatique,64},#CONFIG{soyezcreateurs_layout/hauteurlogocontenuautomatique,64}}|hauteur)]" />][(#TITRE)]</h1></div>
-[<div class="#EDIT{soustitre} soustitre"><span>(#SOUSTITRE)</span></div>][(#INCLURE{fond=noisettes/liste_auteurs,id_article,lang})]
-</div>
-]
 	<div id="letexte" class="surlignable">
 [<div class="[(#CHAPO*|?{#EDIT{chapo},#EDIT{descriptif}}) ]chapo">(#CHAPO|image_reduire{#CONFIG{soyezcreateurs_layout/maxlargeurimage,720},0}|sinon{#DESCRIPTIF})</div>]
 [<div class="#EDIT{texte} entry-content">(#TEXTE|image_reduire{#CONFIG{soyezcreateurs_layout/maxlargeurimage,720},0})</div>]
@@ -41,4 +33,4 @@ D'où l'inversion de la condition pour avoir l'édito restreint si pertinent]
 </BOUCLE_articleedito>
 [(#ENV{typeedito}|=={''}|?{#INCLURE{fond=noisettes/mode_emploi},#INCLURE{fond=noisettes/sommaire/sommaire_modeedito_type}})]
 <//B_articleedito>
-#FILTRE{mini_html}
\ No newline at end of file
+#FILTRE{mini_html}
diff --git a/noisettes/sommaire/sommaire_modeinternational.html b/noisettes/sommaire/sommaire_modeinternational.html
index 8b27ced73cc02669518e570d48cdf9d8a5ba74d8..e96cab7daffdd9146e6e0e8dd50d54ac8d9c48cc 100644
--- a/noisettes/sommaire/sommaire_modeinternational.html
+++ b/noisettes/sommaire/sommaire_modeinternational.html
@@ -25,9 +25,6 @@
 	}
 )]
 
-<script type="text/javascript">
-	CancelMonitorTextSize = true;
-</script>
 #INCLURE{fond=noisettes/sommaire/inc_sommaire_modeinternational_newsticker}
 <div class="outerinternational">
 	<BOUCLE_concours(ARTICLES){titre_mot=Defilant}{!par date}{0,1}>
@@ -147,4 +144,4 @@
 })]
 		</div>
 </div><!-- Fin de .outerinternational -->
-#FILTRE{mini_html}
\ No newline at end of file
+#FILTRE{mini_html}
diff --git a/noisettes/sommaire/sommaire_modemairie.html b/noisettes/sommaire/sommaire_modemairie.html
index 18aab3b271ef434cc1fc53c4931d01d33e00cb06..f267b7d471df561c0e5e894e601167d9ba3adc85 100644
--- a/noisettes/sommaire/sommaire_modemairie.html
+++ b/noisettes/sommaire/sommaire_modemairie.html
@@ -4,9 +4,6 @@
 #SET{Largeurmairie_central,(#GET{LargeurContaineur}|moins{#GET{LargeurMenuGauche}}|moins{#GET{LargeurMenuDroit}})}
 #SET{Largeurmairie_video,(#GET{Largeurmairie_central}|div{3})}
 #SET{Largeurmairie_edito,(#GET{Largeurmairie_central}|moins{#GET{Largeurmairie_video}})}
-<script type="text/javascript">
-	CanceladjustLayout = true;
-</script>
 <div id="mairie_content">
 <a id="letexte"></a>
 <div id="mairie_content_left">
@@ -37,7 +34,7 @@
 		</BOUCLE_DernierMagazine>
 	</div><!-- magazine -->
 	</BOUCLE_RubMagazines>
-	
+
 [(#CONFIG{soyezcreateurs_layout/positionliensnav,menu_footer}|=={nav}|oui)
 [<div class="espaceavant">
 <ul>(#INCLURE{fond=noisettes/liensnav/bloc_liensnav,template})</ul>
@@ -144,4 +141,4 @@
 <div class="clearing"></div>
 </div><!-- mairie_content -->
 [(#PLUGIN{SOCIALTAGS}|oui)<div id="socialtags"></div>]
-#FILTRE{mini_html}
\ No newline at end of file
+#FILTRE{mini_html}
diff --git a/noisettes/sommaire/sommaire_modenews.html b/noisettes/sommaire/sommaire_modenews.html
index f724f7f33730238470c11d0d75638f115849bc3c..1f865532af3d5df679090060a35a6f89b1d1252d 100644
--- a/noisettes/sommaire/sommaire_modenews.html
+++ b/noisettes/sommaire/sommaire_modenews.html
@@ -3,11 +3,6 @@
 	<div id="letexte" class="modenews">
 #SET{AlaUne,''}
 <B_articles_recentsAlaUne>#SET{AlaUne,Vu}
-[(#CONFIG{soyezcreateurs_layout/positioncartouchetitre,contenu}|=={contenu}|oui)
-<div class="cartouche">
-<div class="titrepage"><h1><:soyezcreateurs:alaune:></h1></div>
-</div>
-]
 [(#INCLURE{fond=noisettes/cartouches/sommaire_modenews_cartouche})]
 <div class="alaune">
 <BOUCLE_articles_recentsAlaUne(ARTICLES){lang}{!par #CONFIG{soyezcreateurs/ordre_quoideneuf,date_modif}}{0,(#CONFIG{soyezcreateurs/nombres_alanune,4})}{doublons}{titre_mot=AlaUne}>
@@ -35,11 +30,6 @@
 <BOUCLE_Rubriques_Exclues2(RUBRIQUES){titre_mot=PasDansQuoiDeNeuf}><BOUCLE_Articles_Exclus2(ARTICLES){id_rubrique}{doublons}{lang} /></BOUCLE_Rubriques_Exclues2>
 <BOUCLE_exclus2(ARTICLES){titre_mot=PasDansQuoiDeNeuf}{doublons} />
 <B_articles_recents>
-[(#CONFIG{soyezcreateurs_layout/positioncartouchetitre,contenu}|=={contenu}|ou{#GET{AlaUne}}|oui)
-<div class="cartouche">
-<div class="titrepage"><h1>[(#CONFIG{soyezcreateurs/texte_quoi2neuf}|extraire_multi|typo|sinon{<:soyezcreateurs:quoideneuf:>})]</h1></div>
-</div>
-]
 [(#INCLURE{fond=noisettes/cartouches/sommaire_modenews_cartouche})]
 
 <BOUCLE_articles_recents(ARTICLES) {!par #CONFIG{soyezcreateurs/ordre_quoideneuf,date_modif}}{0,(#CONFIG{soyezcreateurs/nombres_quoideneuf,5})}{doublons} {lang}>
@@ -55,4 +45,4 @@
 	</div><!-- Fin de LeTexte -->
 </main>
 </div><!-- Fin de .texte -->
-#FILTRE{mini_html}
\ No newline at end of file
+#FILTRE{mini_html}
diff --git a/noisettes/sommaire/sommaire_modeportail.html b/noisettes/sommaire/sommaire_modeportail.html
index e0a92a21d497508a9ba95a60f09442eaaefcd0a3..c9039092da3228d2f6556d68fbdf277220531512 100644
--- a/noisettes/sommaire/sommaire_modeportail.html
+++ b/noisettes/sommaire/sommaire_modeportail.html
@@ -1,6 +1,3 @@
-<script type="text/javascript">
-	CanceladjustLayout = true;
-</script>
 <main id="main">
 <div id="gauchedroite">
 
@@ -144,4 +141,4 @@
 
 </div>
 </main>
-#FILTRE{mini_html}
\ No newline at end of file
+#FILTRE{mini_html}
diff --git a/noisettes/sommaire/sommaire_modeportail_pictosdroite.html b/noisettes/sommaire/sommaire_modeportail_pictosdroite.html
index fcbd86c33454982c6256beaa7ea4563ba47bb879..fe995bf08050779fd523e947c3c4bdca0a48588e 100644
--- a/noisettes/sommaire/sommaire_modeportail_pictosdroite.html
+++ b/noisettes/sommaire/sommaire_modeportail_pictosdroite.html
@@ -1,5 +1,5 @@
 [(#REM) Pictos de droite]
-	<nav aria-label="Menu de navigation secondaire"><div id="extra" class="navStuff equilibre laststackable">
+	<nav aria-label="Menu de navigation secondaire" id="extra" class="navStuff">
 <INCLURE{fond=noisettes/sommaire/sommaire_modeportail_pictos_#CONFIG{soyezcreateurs_couleurs/autovignettes,auto},pictoscherches=^[02468]\.}>
 [(#CONFIG{soyezcreateurs/citationsheader,extra}|=={extra}|oui)<INCLURE{fond=noisettes/extra/citations}>]
 [(#PLUGIN{splickr}|oui)<INCLURE{fond=noisettes/extra/splickr}>]
@@ -11,5 +11,5 @@
 </div>]
 [(#PLUGIN{ACCESRESTREINT}|oui)[(#CONFIG{soyezcreateurs/mode_affichage,communiquant}|=={portailcognac}|ou{#CONFIG{soyezcreateurs_layout/pictogrammesoutils,non}|=={avecoutils}}|non)<INCLURE{fond=noisettes/accesrestreint/login-logout,env}>]]
 
-	</div><!-- id="extra" --></nav>
+	</nav><!-- id="extra" -->
 #FILTRE{mini_html}
diff --git a/noisettes/sommaire/sommaire_modeportail_pictosgauche.html b/noisettes/sommaire/sommaire_modeportail_pictosgauche.html
index 6461c5170783c5ac9519c514c65fda4a73d25a78..fd0cf05a4e6e2b893bcd1349dd7f617203d33042 100644
--- a/noisettes/sommaire/sommaire_modeportail_pictosgauche.html
+++ b/noisettes/sommaire/sommaire_modeportail_pictosgauche.html
@@ -1,5 +1,5 @@
 [(#REM) Pictos de gauche]
-	<nav id="menusite" aria-label="Menu de navigation primaire"><div id="navigation" class="equilibre stackable">
+	<nav id="navigation" aria-label="Menu de navigation primaire"><div id="menusite">
 <INCLURE{fond=noisettes/sommaire/sommaire_modeportail_pictos_#CONFIG{soyezcreateurs_couleurs/autovignettes,auto},pictoscherches=^[13579]\.}>
 <B_Racines>
 <div class="espaceavant">
@@ -33,5 +33,5 @@
 
 [(#CONFIG{soyezcreateurs/affichage_ephemeride,oui}|=={oui}|oui)<INCLURE{fond=noisettes/ephemeride/ephemeride_bloc,env}>]
 
-	</div><!-- id="navigation" --></nav>
+	</div></nav><!-- id="navigation" -->
 #FILTRE{mini_html}
diff --git a/noisettes/sommaire/sommaire_modeportailagence.html b/noisettes/sommaire/sommaire_modeportailagence.html
index 1d3ebf0ff265c633a5e1263ced6ee8e2d0527269..c7a8034c0326b6a6f599c50d882de8a1bcf2e8aa 100644
--- a/noisettes/sommaire/sommaire_modeportailagence.html
+++ b/noisettes/sommaire/sommaire_modeportailagence.html
@@ -3,9 +3,6 @@
 #SET{LargeurMenuDroit,(#CONFIG{soyezcreateurs_layout/largeurmenudroit,180})}
 #SET{Largeurcontent_central,(#GET{LargeurContaineur}|moins{#GET{LargeurMenuGauche}}|moins{#GET{LargeurMenuDroit}})}
 #SET{Largeurcontent_extra,(#GET{LargeurContaineur}|moins{#GET{Largeurcontent_central}})}
-<script type="text/javascript">
-	CanceladjustLayout = true;
-</script>
 <main id="main"><div id="agence_content">
 	<a id="letexte"></a>
 
@@ -16,7 +13,7 @@
 		</header>
 	</div>
 	<!-- fin SLOGAN -->
-	
+
 	<B_Defilant>
 	<!-- Defilant -->
 	<div id="diaporama" class="zone-slider">
@@ -181,4 +178,4 @@
 	});
 </script>
 
-#FILTRE{mini_html}
\ No newline at end of file
+#FILTRE{mini_html}
diff --git a/noisettes/sommaire/sommaire_modeportailcognac.html b/noisettes/sommaire/sommaire_modeportailcognac.html
index d52b7805e1e3e1ab5a1dff7d7cc218cb944bc00a..85eba80dad2207d23696e375c1dda78e85c338b0 100644
--- a/noisettes/sommaire/sommaire_modeportailcognac.html
+++ b/noisettes/sommaire/sommaire_modeportailcognac.html
@@ -1,155 +1,130 @@
-#SET{LargeurContaineur,(#CONFIG{soyezcreateurs_layout/largeurconteneur,960})}
-<script type="text/javascript">
-	CanceladjustLayout = true;
-</script>
-<main id="main"><div id="cognac_content">
-<a id="letexte"></a>
-
-[(#PLUGIN{NOIZETIER}|oui)
-#INCLURE{fond=bloc_compiler,id_conteneur=contenu/corps_sommaire_modecognac,env}]
-[(#PLUGIN{NOIZETIER}|non)
-#INCLURE{fond=noisettes/sommaire_modeportailcognac_zoomsur,env}
-#INCLURE{fond=noisettes/sommaire_modeportailcognac_cycloshow,env}
-#INCLURE{fond=noisettes/sommaire_modeportailcognac_sc_edito,env}
-#INCLURE{fond=noisettes/sommaire_modeportailcognac_quoideneuf,env}
-#INCLURE{fond=noisettes/sommaire_modeportailcognac_bandeau,env}
-#INCLURE{fond=noisettes/sommaire_modeportailcognac_dessousBreves,env}
-#INCLURE{fond=noisettes/sommaire_modeportailcognac_goodies,env}
-]
-
-[(#PLUGIN{SOCIALTAGS}|oui)<div id="socialtags"></div>]
-
-</div><!-- cognac_content --></main>
-
-[<script src="(#CHEMIN{javascript/packery.pkgd.min.js})" type="text/javascript"></script>]
-[<script src="(#CHEMIN{javascript/imagesloaded.pkgd.min.js})" type="text/javascript"></script>]
-<script type="text/javascript">
-	// slider Slick
-	$(document).ready(function(){
-		$('#diaporama .slider-slick').slick({
-		  autoplay: true,
-		  lazyLoad: 'ondemand',
-		  pauseOnHover: true,
-		  autoplaySpeed: #CONFIG{soyezcreateurs/vitesse_slider,10000},
-		  fade: true,
-		  cssEase: 'linear',
-		  arrows: false,
-		  dots: true,
-		  centerMode: true
-		});
-		
-		$('#diaporama .diaporama-play').hide();
-		
-		$('#diaporama .diaporama-pause').on('click', function() {
-		  $('#diaporama .slider-slick').slick('slickPause');
-		  $('#diaporama .diaporama-pause').hide();
-		  $('#diaporama .diaporama-play').show();
-		});
-
-		$('#diaporama .diaporama-play').on('click', function() {
-		  $('#diaporama .slider-slick').slick('slickPlay');
-		  $('#diaporama .diaporama-pause').show();
-		  $('#diaporama .diaporama-play').hide();
-		});
-		
-		$('#cycloshow .slider-slick').slick({
-		  autoplay: true,
-		  lazyLoad: 'ondemand',
-		  pauseOnHover: true,
-		  autoplaySpeed: #CONFIG{soyezcreateurs/vitesse_slider,10000},
-		  fade: true,
-		  cssEase: 'linear',
-		  arrows: true,
-		  prevArrow: '<button type="button" class="slick-prev slick-arrow" aria-label="Précédent"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-chevron-thin-left"></use></svg></button>',
-		  nextArrow: '<button type="button" class="slick-next slick-arrow" aria-label="Suivant"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-chevron-thin-right"></use></svg></button>',
-		  dots: true,
-		  centerMode: true
-		});
-		
-		$('#cycloshow .diaporama-play').hide();
-		
-		$('#cycloshow .diaporama-pause').on('click', function() {
-		  $('#cycloshow .slider-slick').slick('slickPause');
-		  $('#cycloshow .diaporama-pause').hide();
-		  $('#cycloshow .diaporama-play').show();
-		});
-
-		$('#cycloshow .diaporama-play').on('click', function() {
-		  $('#cycloshow .slider-slick').slick('slickPlay');
-		  $('#cycloshow .diaporama-pause').show();
-		  $('#cycloshow .diaporama-play').hide();
-		});
-		
-		// Pour que les éventuelles vidéos soient jouées
-		// Ceci concerne la première vidéo (ou la seule)
-		var vid = $('.slider-slick').find('video');
-		if (vid.length > 0)
-			$(vid).get(0).play();
-		//  Ceci concerne les autres vidéos
-		$('.slider-slick').on('afterChange', function(event, slick, currentSlide){
-			var vid = $(slick.$slides[currentSlide]).find('video');
-			if (vid.length > 0)
-				$(vid).get(0).play();
-		});
-		
-		$('.slider-pratique').slick({
-		  dots: false,
-		  prevArrow: '<button type="button" class="slick-prev slick-arrow" aria-label="Précédent"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-chevron-thin-left"></use></svg></button>',
-		  nextArrow: '<button type="button" class="slick-next slick-arrow" aria-label="Suivant"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-chevron-thin-right"></use></svg></button>',
-		  infinite: false,
-		  lazyLoad: 'ondemand',
-		  slidesToShow: 6,
-		  slidesToScroll: 6,
-		  variableWidth: false,
-			responsive: [
-				{
-				  breakpoint: 1920,
-				  settings: {
-					slidesToShow: 5,
-					slidesToScroll: 5
-				  }
-				},
-				{
-				  breakpoint: 1616,
-				  settings: {
-					slidesToShow: 4,
-					slidesToScroll: 4
-				  }
-				},
-				{
-				  breakpoint: 1312,
-				  settings: {
-					slidesToShow: 3,
-					slidesToScroll: 3
-				  }
-				},
-				{
-				  breakpoint: 1040,
-				  settings: {
-					slidesToShow: 2,
-					slidesToScroll: 2
-				  }
-				},
-				{
-				  breakpoint: 740,
-				  settings: {
-					slidesToShow: 1,
-					slidesToScroll: 1
-				  }
-				}
-			  ]
-		});
-	});
-	// external js: packery.pkgd.js, imagesloaded.pkgd.js
-	// init packery after all images have loaded
-	var $grid = $('.grid').imagesLoaded( function() {
-	  $grid.packery({
-		itemSelector: '.grid-item',
-		gutter: '.gutter-sizer',
-		columnWidth: '.grid-sizer',
-		percentPosition: false
-	  });
-	});
-</script>
-
-#FILTRE{mini_html}
\ No newline at end of file
+#SET{LargeurContaineur,(#CONFIG{soyezcreateurs_layout/largeurconteneur,960})}
+<main id="main"><div id="cognac_content">
+<a id="letexte"></a>
+
+[(#PLUGIN{NOIZETIER}|oui)
+#INCLURE{fond=bloc_compiler,id_conteneur=contenu/corps_sommaire_modecognac,env}]
+[(#PLUGIN{NOIZETIER}|non)
+#INCLURE{fond=noisettes/sommaire_modeportailcognac_zoomsur,env}
+#INCLURE{fond=noisettes/sommaire_modeportailcognac_cycloshow,env}
+#INCLURE{fond=noisettes/sommaire_modeportailcognac_sc_edito,env}
+#INCLURE{fond=noisettes/sommaire_modeportailcognac_quoideneuf,env}
+#INCLURE{fond=noisettes/sommaire_modeportailcognac_bandeau,env}
+#INCLURE{fond=noisettes/sommaire_modeportailcognac_dessousBreves,env}
+#INCLURE{fond=noisettes/sommaire_modeportailcognac_goodies,env}
+]
+
+[(#PLUGIN{SOCIALTAGS}|oui)<div id="socialtags"></div>]
+
+</div><!-- cognac_content --></main>
+
+<script type="text/javascript">
+	// slider Slick
+	$(document).ready(function(){
+		$('#diaporama .slider-slick').slick({
+		  autoplay: true,
+		  lazyLoad: 'ondemand',
+		  pauseOnHover: true,
+		  autoplaySpeed: #CONFIG{soyezcreateurs/vitesse_slider,10000},
+		  fade: true,
+		  cssEase: 'linear',
+		  arrows: false,
+		  dots: true,
+		  centerMode: true
+		});
+
+		$('#diaporama .diaporama-play').hide();
+
+		$('#diaporama .diaporama-pause').on('click', function() {
+		  $('#diaporama .slider-slick').slick('slickPause');
+		  $('#diaporama .diaporama-pause').hide();
+		  $('#diaporama .diaporama-play').show();
+		});
+
+		$('#diaporama .diaporama-play').on('click', function() {
+		  $('#diaporama .slider-slick').slick('slickPlay');
+		  $('#diaporama .diaporama-pause').show();
+		  $('#diaporama .diaporama-play').hide();
+		});
+
+		$('#cycloshow .slider-slick').slick({
+		  autoplay: true,
+		  lazyLoad: 'ondemand',
+		  pauseOnHover: true,
+		  autoplaySpeed: #CONFIG{soyezcreateurs/vitesse_slider,10000},
+		  fade: true,
+		  cssEase: 'linear',
+		  arrows: true,
+		  prevArrow: '<button type="button" class="slick-prev slick-arrow" aria-label="Précédent"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-chevron-thin-left"></use></svg></button>',
+		  nextArrow: '<button type="button" class="slick-next slick-arrow" aria-label="Suivant"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-chevron-thin-right"></use></svg></button>',
+		  dots: true,
+		  centerMode: true
+		});
+
+		$('#cycloshow .diaporama-play').hide();
+
+		$('#cycloshow .diaporama-pause').on('click', function() {
+		  $('#cycloshow .slider-slick').slick('slickPause');
+		  $('#cycloshow .diaporama-pause').hide();
+		  $('#cycloshow .diaporama-play').show();
+		});
+
+		$('#cycloshow .diaporama-play').on('click', function() {
+		  $('#cycloshow .slider-slick').slick('slickPlay');
+		  $('#cycloshow .diaporama-pause').show();
+		  $('#cycloshow .diaporama-play').hide();
+		});
+
+		// Pour que les éventuelles vidéos soient jouées
+		// Ceci concerne la première vidéo (ou la seule)
+		var vid = $('.slider-slick').find('video');
+		if (vid.length > 0)
+			$(vid).get(0).play();
+		//  Ceci concerne les autres vidéos
+		$('.slider-slick').on('afterChange', function(event, slick, currentSlide){
+			var vid = $(slick.$slides[currentSlide]).find('video');
+			if (vid.length > 0)
+				$(vid).get(0).play();
+		});
+
+		$('.slider-pratique').slick({
+		  dots: false,
+		  prevArrow: '<button type="button" class="slick-prev slick-arrow" aria-label="Précédent"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-chevron-thin-left"></use></svg></button>',
+		  nextArrow: '<button type="button" class="slick-next slick-arrow" aria-label="Suivant"><svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-chevron-thin-right"></use></svg></button>',
+		  infinite: false,
+		  lazyLoad: 'ondemand',
+		  variableWidth: false
+		});
+
+		// Calcul du nombre de tuiles à afficher dans le carrousel
+		function SlickBreakPoints() {
+			if( typeof SlickBreakPoints.nombre_max_tuile_static == 'undefined' ) {
+				SlickBreakPoints.nombre_max_tuile_static = 0;
+			}
+
+			let largeur_slider = $("#pratique .slick-list").width();
+			let largeur_ecran = document.body.offsetWidth;
+
+			let largeur_tuile = 280;
+			let marge_tuile = 20;
+
+			let nombre_max_tuile = Math.floor((largeur_slider - marge_tuile) / (largeur_tuile + marge_tuile));
+
+			if (nombre_max_tuile != SlickBreakPoints.nombre_max_tuile_static) {
+				$('.slider-pratique').slick('slickSetOption', {
+					slidesToShow: nombre_max_tuile,
+					slidesToScroll: nombre_max_tuile
+				}, true);
+				SlickBreakPoints.nombre_max_tuile_static = nombre_max_tuile;
+			}
+
+		}
+
+		// Initialiser le nombre de tuiles à afficher
+		SlickBreakPoints();
+		// Mettre à jour si le navigateur est redimensionné
+		window.addEventListener("resize", SlickBreakPoints);
+	});
+</script>
+
+#FILTRE{mini_html}
diff --git a/noisettes/sommaire/sommaire_modeportailcognac_quoideneuf.html b/noisettes/sommaire/sommaire_modeportailcognac_quoideneuf.html
index 74e3d21218cc20cbb89e35f1a60cda3f035930bf..10e66d07747f74114659bb299721eeb6318f73fc 100644
--- a/noisettes/sommaire/sommaire_modeportailcognac_quoideneuf.html
+++ b/noisettes/sommaire/sommaire_modeportailcognac_quoideneuf.html
@@ -4,8 +4,6 @@
 	</header>
 	<div class="row">
 		<div class="grid">
-			<div class="grid-sizer"></div>
-			<div class="gutter-sizer"></div>
 #SET{blocouvert,oui}]
 	<B_articles_recentsAlaUne>
 [(#CONFIG{soyezcreateurs/typequoideneuf,quoideneuf}|=={quoideneuf}|non)
@@ -14,8 +12,6 @@
 	</header>
 	<div class="row">
 		<div class="grid">
-			<div class="grid-sizer"></div>
-			<div class="gutter-sizer"></div>
 #SET{blocouvert,oui}]
 			<BOUCLE_articles_recentsAlaUne(ARTICLES){lang}{!par #CONFIG{soyezcreateurs/ordre_quoideneuf,date_modif}}{0,(#CONFIG{soyezcreateurs/nombres_alanune,4})}{doublons}{titre_mot=AlaUne}{!archive}>
 			[(#SET{logo,[(#LOGO_ARTICLE_SURVOL|sinon{#LOGO_ARTICLE_NORMAL}|sinon{#LOGO_RUBRIQUE_NORMAL}|sinon{[(#CHEMIN{images/placeholder.jpg}|image_focus{308,#CONFIG{soyezcreateurs/hauteur_quoi2neuf,340}})]})]})]
@@ -33,7 +29,7 @@
 			<div class="grid-item[ grid-item-x(#GET{facteur})]">
 				<div class="content-actus alaune #EDIT{titre}<BOUCLE_RubriqueColoreealaune(HIERARCHIE){id_rubrique}{tout}{type_mot=_CouleurRubrique}{inverse} {0,1}><BOUCLE_CouleurRubriquealaune(MOTS){id_rubrique}{type=_CouleurRubrique}{0,1}> couleurrubrique#ID_MOT</BOUCLE_CouleurRubriquealaune></BOUCLE_RubriqueColoreealaune>">
 					<a href="#URL_ARTICLE"[ title="(#DESCRIPTIF|supprimer_tags|attribut_html)"]>
-						[<img src="(#GET{logo}|image_focus{#GET{largeur},#CONFIG{soyezcreateurs/hauteur_quoi2neuf,340}}|extraire_attribut{src})" alt="" width="#GET{largeur}" height="#CONFIG{soyezcreateurs/hauteur_quoi2neuf,340}" />]
+						[<div class="img-hover-zoom"><img src="(#GET{logo}|image_focus{#GET{largeur},#CONFIG{soyezcreateurs/hauteur_quoi2neuf,340}}|extraire_attribut{src})" alt="" width="#GET{largeur}" height="#CONFIG{soyezcreateurs/hauteur_quoi2neuf,340}" /></div>]
 						<div class="h2" tabindex="-1">
 							<svg class="svg-icon alaune"[ title="(#CONFIG{soyezcreateurs/texte_alaune}|extraire_multi|typo|sinon{<:soyezcreateurs:alaune:>}|supprimer_tags|attribut_html)"]><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-star-full"></use></svg>
 							<span class="titre-actus">#TITRE</span>
@@ -55,8 +51,6 @@
 	</header>
 	<div class="row">
 		<div class="grid">
-			<div class="grid-sizer"></div>
-			<div class="gutter-sizer"></div>
 #SET{blocouvert,oui}]
 			<BOUCLE_Breves(BREVES?){!par date}{age<120}{lang}>
 			[(#SET{logo,[(#LOGO_BREVE_SURVOL|sinon{#LOGO_BREVE_NORMAL}|sinon{#LOGO_RUBRIQUE_NORMAL}|sinon{[(#CHEMIN{images/placeholder.jpg}|image_focus{308,#CONFIG{soyezcreateurs/hauteur_quoi2neuf,340}})]})]})]
@@ -74,7 +68,7 @@
 			<div class="grid-item[ grid-item-x(#GET{facteur})]">
 				<div class="content-actus alaune #EDIT{titre}<BOUCLE_RubriqueColoreeBreve(HIERARCHIE){id_rubrique}{tout}{type_mot=_CouleurRubrique}{inverse} {0,1}><BOUCLE_CouleurRubriqueBreve(MOTS){id_rubrique}{type=_CouleurRubrique}{0,1}> couleurrubrique#ID_MOT</BOUCLE_CouleurRubriqueBreve></BOUCLE_RubriqueColoreeBreve>">
 					<a href="#URL_BREVE"[ title="(#DESCRIPTIF|supprimer_tags|attribut_html)"]>
-						[<img src="(#GET{logo}|image_focus{#GET{largeur},#CONFIG{soyezcreateurs/hauteur_quoi2neuf,340}}|extraire_attribut{src})" alt="" width="#GET{largeur}" height="#CONFIG{soyezcreateurs/hauteur_quoi2neuf,340}" />]
+						[<div class="img-hover-zoom"><img src="(#GET{logo}|image_focus{#GET{largeur},#CONFIG{soyezcreateurs/hauteur_quoi2neuf,340}}|extraire_attribut{src})" alt="" width="#GET{largeur}" height="#CONFIG{soyezcreateurs/hauteur_quoi2neuf,340}" /></div>]
 						<div class="h2" tabindex="-1"><span class="titre-actus">#TITRE</span>
 							<svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-arrow-right2"></use></svg></div>
 					</a>
@@ -93,8 +87,6 @@
 	</header>
 	<div class="row">
 		<div class="grid">
-			<div class="grid-sizer"></div>
-			<div class="gutter-sizer"></div>
 #SET{blocouvert,oui}]
 			<div class="grid-item[ (#CONFIG{soyezcreateurs/nombres_agenda_par_bloc,2}|=={1demie}|?{grid-item-demie})]">
 			<BOUCLE_AgendaDerniersAjouts(EVENEMENTS)
@@ -108,7 +100,7 @@
 			<BOUCLE_DernierEvenementArticle(ARTICLES){id_article}>
 				<div class="content-actus #EDIT{titre}<BOUCLE_RubriqueColoreeactus(HIERARCHIE){id_rubrique}{tout}{type_mot=_CouleurRubrique}{inverse} {0,1}><BOUCLE_CouleurRubriqueactus(MOTS){id_rubrique}{type=_CouleurRubrique}{0,1}> couleurrubrique#ID_MOT</BOUCLE_CouleurRubriqueactus></BOUCLE_RubriqueColoreeactus>">
 					<a href="#URL_ARTICLE"[ title="(#DESCRIPTIF|supprimer_tags|attribut_html)"]>
-						[<img src="(#LOGO_EVENEMENT_NORMAL|sinon{#LOGO_ARTICLE_SURVOL}|sinon{#LOGO_ARTICLE_NORMAL}|sinon{#LOGO_RUBRIQUE_NORMAL}|sinon{#CHEMIN{images/placeholder.jpg}}|image_focus{308,[(#CONFIG{soyezcreateurs/nombres_agenda_par_bloc,2}|=={1}|?{#CONFIG{soyezcreateurs/hauteur_quoi2neuf,340},108})]}|extraire_attribut{src})" alt="" width="308" height="[(#CONFIG{soyezcreateurs/nombres_agenda_par_bloc,2}|=={1}|?{#CONFIG{soyezcreateurs/hauteur_quoi2neuf,340},108})]" />]
+						[<div class="img-hover-zoom"><img src="(#LOGO_EVENEMENT_NORMAL|sinon{#LOGO_ARTICLE_SURVOL}|sinon{#LOGO_ARTICLE_NORMAL}|sinon{#LOGO_RUBRIQUE_NORMAL}|sinon{#CHEMIN{images/placeholder.jpg}}|image_focus{308,[(#CONFIG{soyezcreateurs/nombres_agenda_par_bloc,2}|=={1}|?{#CONFIG{soyezcreateurs/hauteur_quoi2neuf,340},108})]}|extraire_attribut{src})" alt="" width="308" height="[(#CONFIG{soyezcreateurs/nombres_agenda_par_bloc,2}|=={1}|?{#CONFIG{soyezcreateurs/hauteur_quoi2neuf,340},108})]" /></div>]
 						<div class="agenda flexbox-flex">
 							<div class="date debutfin[(#CONFIG{soyezcreateurs/agenda_date_format,complete}|=={complete}|oui)[ (#HORAIRE|=={oui}|?{horaires,[(#_AgendaDerniersAjouts:DATE_DEBUT|affdate{Ymd}|!={#_AgendaDerniersAjouts:DATE_FIN|affdate{Ymd}}|oui|?{journees,journee})]})]][(#CONFIG{soyezcreateurs/agenda_date_format,complete}|=={complete}|non)journee]" itemscope itemtype="https://schema.org/Event">
 								<time class="debut ladate" itemprop="startDate" title="#_AgendaDerniersAjouts:DATE_DEBUT" datetime="#_AgendaDerniersAjouts:DATE_DEBUT">
@@ -155,8 +147,6 @@
 	</header>
 	<div class="row">
 		<div class="grid">
-			<div class="grid-sizer"></div>
-			<div class="gutter-sizer"></div>
 #SET{blocouvert,oui}]
 			<BOUCLE_articles_QuoideNeuf(ARTICLES) {id_rubrique>0}{!par #CONFIG{soyezcreateurs/ordre_quoideneuf,date_modif}}{0,(#CONFIG{soyezcreateurs/nombres_quoideneuf,5})}{doublons}{!archive}{lang}>
 			[(#SET{logo,[(#LOGO_ARTICLE_SURVOL|sinon{#LOGO_ARTICLE_NORMAL}|sinon{#LOGO_RUBRIQUE_NORMAL}|sinon{[(#CHEMIN{images/placeholder.jpg}|image_focus{308,#CONFIG{soyezcreateurs/hauteur_quoi2neuf,340}})]})]})]
@@ -174,7 +164,7 @@
 			<div class="grid-item[ grid-item-x(#GET{facteur})]">
 				<div class="content-actus quoideneuf #EDIT{titre}<BOUCLE_RubriqueColoree(HIERARCHIE){id_rubrique}{tout}{type_mot=_CouleurRubrique}{inverse} {0,1}><BOUCLE_CouleurRubrique(MOTS){id_rubrique}{type=_CouleurRubrique}{0,1}> couleurrubrique#ID_MOT</BOUCLE_CouleurRubrique></BOUCLE_RubriqueColoree>">
 					<a href="#URL_ARTICLE"[ title="(#DESCRIPTIF|supprimer_tags|attribut_html)"]>
-						[<img src="(#GET{logo}|image_focus{#GET{largeur},#CONFIG{soyezcreateurs/hauteur_quoi2neuf,340}}|extraire_attribut{src})" alt="" width="#GET{largeur}" height="#CONFIG{soyezcreateurs/hauteur_quoi2neuf,340}" />]
+						[<div class="img-hover-zoom"><img src="(#GET{logo}|image_focus{#GET{largeur},#CONFIG{soyezcreateurs/hauteur_quoi2neuf,340}}|extraire_attribut{src})" alt="" width="#GET{largeur}" height="#CONFIG{soyezcreateurs/hauteur_quoi2neuf,340}" /></div>]
 						<div class="h2" tabindex="-1"><span class="titre-actus">#TITRE</span>
 							<svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-arrow-right2"></use></svg></div>
 					</a>
diff --git a/noisettes/sommaire_modeportailcognac_bandeau.html b/noisettes/sommaire_modeportailcognac_bandeau.html
index c4c4e1dc86a72a54ae434bd3920b9e6468eb851f..c64c6b129b9bde6ea0e1d6ad7631ade5d5368c13 100644
--- a/noisettes/sommaire_modeportailcognac_bandeau.html
+++ b/noisettes/sommaire_modeportailcognac_bandeau.html
@@ -1,15 +1,16 @@
-
-<BOUCLE_EDITO(ARTICLES) {titre_mot=Goodies2}{!par date}{0,1}{lang}{!archive}>
-
-<!-- Goodies2 -->
-<div id="goodies2" class="zone-goodies2 navstuff">
-	<header class="titre-sommaire">
-		<h1 class="#EDIT{titre}"><span>#TITRE</span></h1>
-	</header>
-	[<a href="#ARTICLE_URL"[ title="(#TITRE|supprimer_tags|attribut_html)"]><img class="editologo" src="(#LOGO_ARTICLE|image_focus{#CONFIG{soyezcreateurs_layout/largeurconteneur,960},200}|extraire_attribut{src})" width="[(#LOGO_ARTICLE|image_focus{#CONFIG{soyezcreateurs_layout/largeurconteneur,960},200}|largeur)]" height="[(#LOGO_ARTICLE|image_focus{#CONFIG{soyezcreateurs_layout/largeurconteneur,960},200}|hauteur)]" alt="[(#DESCRIPTIF|sinon{#TITRE}|supprimer_tags|attribut_html)]" /></a>
-	]
-</div>
-<!-- fin Goodies2 -->
-</BOUCLE_EDITO>
-
-#FILTRE{mini_html}
\ No newline at end of file
+
+<BOUCLE_EDITO(ARTICLES) {titre_mot=Goodies2}{!par date}{0,1}{lang}{!archive}>
+
+<!-- Goodies2 -->
+<div id="goodies2" class="zone-goodies2 navstuff">
+	<header class="titre-sommaire">
+		<h1 class="#EDIT{titre}"><span>#TITRE</span></h1>
+	</header>
+	[<div class="center-item">
+		<a href="#ARTICLE_URL"[ title="(#TITRE|supprimer_tags|attribut_html)"]><div class="img-hover-zoom lent"><img src="(#LOGO_ARTICLE|image_focus{#CONFIG{soyezcreateurs_layout/largeurconteneur,960},200}|extraire_attribut{src})" width="[(#LOGO_ARTICLE|image_focus{#CONFIG{soyezcreateurs_layout/largeurconteneur,960},200}|largeur)]" height="[(#LOGO_ARTICLE|image_focus{#CONFIG{soyezcreateurs_layout/largeurconteneur,960},200}|hauteur)]" alt="[(#DESCRIPTIF|sinon{#TITRE}|supprimer_tags|attribut_html)]" /></div></a>
+	</div>]
+</div>
+<!-- fin Goodies2 -->
+</BOUCLE_EDITO>
+
+#FILTRE{mini_html}
diff --git a/noisettes/sommaire_modeportailcognac_cycloshow.html b/noisettes/sommaire_modeportailcognac_cycloshow.html
index 3d74008b609cdbcb3685c850ac15365d1519eb85..8f0c1ce0c98d0559fce147af5a344408782d99e1 100644
--- a/noisettes/sommaire_modeportailcognac_cycloshow.html
+++ b/noisettes/sommaire_modeportailcognac_cycloshow.html
@@ -9,14 +9,14 @@
 		<div class="slider show-for-medium" role="region" aria-label="Diaporama d'accueil">
 			<div class="slider-diapo-imgfull">
 				<a href="#URL_ARTICLE">
-					<picture>
+					<div class="img-hover-zoom lent grand"><picture>
 						<source srcset="[(#LOGO_ARTICLE_NORMAL|sinon{#LOGO_RUBRIQUE_NORMAL}|sinon{#CHEMIN{images/placeholder.jpg}}|image_focus{[(#CONFIG{soyezcreateurs/variante_bloccycloshow,contenu}|=={contenu}|?{#CONFIG{soyezcreateurs_layout/largeurconteneur,960},1920})],#CONFIG{soyezcreateurs/hauteur_slider,580}}|image_aplatir{jpg,#CONFIG{soyezcreateurs_couleurs/container_bk,#f6f6f6}}|extraire_attribut{src})]" media="(min-width: 1160px)" />
 						[(#CONFIG{soyezcreateurs_layout/largeurconteneur,960}|>{1024}|oui)<source srcset="[(#LOGO_ARTICLE_NORMAL|sinon{#LOGO_RUBRIQUE_NORMAL}|sinon{#CHEMIN{images/placeholder.jpg}}|image_focus{#CONFIG{soyezcreateurs_layout/largeurconteneur,960},[(#CONFIG{soyezcreateurs/hauteur_slider,580}|div{1.4})]}|extraire_attribut{src})]" media="(min-width: #CONFIG{soyezcreateurs_layout/largeurconteneur,960}px)" />]
 						<source srcset="[(#LOGO_ARTICLE_NORMAL|sinon{#LOGO_RUBRIQUE_NORMAL}|sinon{#CHEMIN{images/placeholder.jpg}}|sinon{#CHEMIN{images/placeholder.jpg}}|sinon{#CHEMIN{images/placeholder.jpg}}|image_focus{1024,[(#CONFIG{soyezcreateurs/hauteur_slider,580}|div{1.6})]}|extraire_attribut{src})]" media="(min-width: 1024px)" />
 						<source srcset="[(#LOGO_ARTICLE_NORMAL|sinon{#LOGO_RUBRIQUE_NORMAL}|sinon{#CHEMIN{images/placeholder.jpg}}|sinon{#CHEMIN{images/placeholder.jpg}}|sinon{#CHEMIN{images/placeholder.jpg}}|image_focus{640,[(#CONFIG{soyezcreateurs/hauteur_slider,580}|div{1.9})]}|extraire_attribut{src})]" media="(min-width: 640px)" />
-						<source srcset="[(#LOGO_ARTICLE_NORMAL|sinon{#LOGO_RUBRIQUE_NORMAL}|sinon{#CHEMIN{images/placeholder.jpg}}|sinon{#CHEMIN{images/placeholder.jpg}}|image_focus{320,[(#CONFIG{soyezcreateurs/hauteur_slider,580}|div{2})]}|image_aplatir{jpg,#CONFIG{soyezcreateurs_couleurs/container_bk,#f6f6f6}}|extraire_attribut{src})]" />					
+						<source srcset="[(#LOGO_ARTICLE_NORMAL|sinon{#LOGO_RUBRIQUE_NORMAL}|sinon{#CHEMIN{images/placeholder.jpg}}|sinon{#CHEMIN{images/placeholder.jpg}}|image_focus{320,[(#CONFIG{soyezcreateurs/hauteur_slider,580}|div{2})]}|image_aplatir{jpg,#CONFIG{soyezcreateurs_couleurs/container_bk,#f6f6f6}}|extraire_attribut{src})]" />
 						<img src="[(#LOGO_ARTICLE_NORMAL|sinon{#LOGO_RUBRIQUE_NORMAL}|sinon{#CHEMIN{images/placeholder.jpg}}|image_focus{320,[(#CONFIG{soyezcreateurs/hauteur_slider,580}|div{2})]}|image_aplatir{jpg,#CONFIG{soyezcreateurs_couleurs/container_bk,#f6f6f6}}|extraire_attribut{src})]" alt="" width="320" height="[(#CONFIG{soyezcreateurs/hauteur_slider,580}|div{2})]" />
-					</picture>
+					</picture></div>
 					<div class="slider-content desc-gauche text-center">
 						<h2 class="#EDIT{titre}">#TITRE</h2>
 						[<p class="hide-for-small-only #EDIT{descriptif}">(#DESCRIPTIF|ptobr)</p>]
@@ -30,4 +30,4 @@
 	</div>
 </div>
 </B_CycloShow>
-#FILTRE{mini_html}
\ No newline at end of file
+#FILTRE{mini_html}
diff --git a/noisettes/sommaire_modeportailcognac_dessousBreves.html b/noisettes/sommaire_modeportailcognac_dessousBreves.html
index 14aeb6f09509150cfb796e6e534c6a7926008def..2fb20358be5a175ab0c2f17a3de23525037c63d3 100644
--- a/noisettes/sommaire_modeportailcognac_dessousBreves.html
+++ b/noisettes/sommaire_modeportailcognac_dessousBreves.html
@@ -1,27 +1,27 @@
-
-<B_DessousBreves>
-<!-- PROJETS -->
-<div id="lesprojets" class="zone-projets navstuff">
-	<header class="titre-sommaire">
-		<h1><span>Zoom sur</span></h1>
-	</header>
-	<div id="projets" class="avec-margin-top">
-		<BOUCLE_DessousBreves(RUBRIQUES){titre_mot IN DessousBreves,ZoomSur2}{par num titre}>
-		<div class="projet idprojet#COMPTEUR_BOUCLE #EDIT{titre}<BOUCLE_RubriqueColoree(HIERARCHIE){id_rubrique}{tout}{type_mot=_CouleurRubrique}{inverse} {0,1}><BOUCLE_CouleurRubrique(MOTS){id_rubrique}{type=_CouleurRubrique}{0,1}> couleurrubrique#ID_MOT</BOUCLE_CouleurRubrique></BOUCLE_RubriqueColoree>">
-			<div class="content-projets">
-				<BOUCLE_articles_plusdun(ARTICLES) {id_rubrique} {1,1}{lang}{!archive}><a href="#URL_RUBRIQUE"[ title="(#_DessousBreves:DESCRIPTIF|supprimer_tags|attribut_html)"]></BOUCLE_articles_plusdun><BOUCLE_articles_unseul(ARTICLES) {id_rubrique} {0,1}{lang}{!archive}><a href="#ARTICLE_URL"[ title="(#_DessousBreves:DESCRIPTIF|supprimer_tags|attribut_html)"]></BOUCLE_articles_unseul><a href="#URL_RUBRIQUE"[ title="(#_DessousBreves:DESCRIPTIF|supprimer_tags|attribut_html)"]><//B_articles_unseul><//B_articles_plusdun>
-					<div class="h2">#TITRE</div>
-					<div class="suite">
-						<svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-arrow-right2"></use></svg>
-					</div>
-				</a>
-			</div>
-		</div>
-		</BOUCLE_DessousBreves>
-	</div>
-	<div class="clearfix"></div>
-</div>
-<!-- fin PROJETS -->
-</B_DessousBreves>
-
-#FILTRE{mini_html}
\ No newline at end of file
+
+<B_DessousBreves>
+<!-- PROJETS -->
+<div id="lesprojets" class="zone-projets navstuff">
+	<header class="titre-sommaire">
+		<h1><span>Zoom sur</span></h1>
+	</header>
+	<div id="projets" class="avec-margin-top">
+		<BOUCLE_DessousBreves(RUBRIQUES){titre_mot IN DessousBreves,ZoomSur2}{par num titre}>
+		<div class="projet idprojet#COMPTEUR_BOUCLE #EDIT{titre}<BOUCLE_RubriqueColoree(HIERARCHIE){id_rubrique}{tout}{type_mot=_CouleurRubrique}{inverse} {0,1}><BOUCLE_CouleurRubrique(MOTS){id_rubrique}{type=_CouleurRubrique}{0,1}> couleurrubrique#ID_MOT</BOUCLE_CouleurRubrique></BOUCLE_RubriqueColoree>">
+			<div class="content-projets">
+				<BOUCLE_articles_plusdun(ARTICLES) {id_rubrique} {1,1}{lang}{!archive}><a href="#URL_RUBRIQUE"[ title="(#_DessousBreves:DESCRIPTIF|supprimer_tags|attribut_html)"]></BOUCLE_articles_plusdun><BOUCLE_articles_unseul(ARTICLES) {id_rubrique} {0,1}{lang}{!archive}><a href="#ARTICLE_URL"[ title="(#_DessousBreves:DESCRIPTIF|supprimer_tags|attribut_html)"]></BOUCLE_articles_unseul><a href="#URL_RUBRIQUE"[ title="(#_DessousBreves:DESCRIPTIF|supprimer_tags|attribut_html)"]><//B_articles_unseul><//B_articles_plusdun>
+					<div class="h2">#TITRE</div>
+					<div class="suite">
+						<svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-arrow-right2"></use></svg>
+					</div>
+				</a>
+			</div>
+		</div>
+		</BOUCLE_DessousBreves>
+	</div>
+	<div class="clearfix"></div>
+</div>
+<!-- fin PROJETS -->
+</B_DessousBreves>
+
+#FILTRE{mini_html}
diff --git a/noisettes/sommaire_modeportailcognac_goodies.html b/noisettes/sommaire_modeportailcognac_goodies.html
index ce2db33ae2510013566ce13f360408e98e4b3b59..09b228a287c0aaa349a7253331cc2089a1ce04af 100644
--- a/noisettes/sommaire_modeportailcognac_goodies.html
+++ b/noisettes/sommaire_modeportailcognac_goodies.html
@@ -13,7 +13,7 @@
 			<div class="content-pratique #EDIT{titre}">
 				<a href="#ARTICLE_URL"[ title="(#DESCRIPTIF|supprimer_tags|attribut_html)"]>
 					[(#SET{picto,[(#LOGO_ARTICLE_SURVOL|sinon{#LOGO_ARTICLE_NORMAL}|sinon{#LOGO_RUBRIQUE_NORMAL}|sinon{#CHEMIN{images/placeholder.jpg}}|image_focus{280,190})]})]
-					<img data-lazy="[(#GET{picto}|extraire_attribut{src})]" width="[(#GET{picto}|largeur)]" height="[(#GET{picto}|hauteur)]" alt="" />
+					<div class="img-hover-zoom"><img data-lazy="[(#GET{picto}|extraire_attribut{src})]" width="[(#GET{picto}|largeur)]" height="[(#GET{picto}|hauteur)]" alt="" /></div>
 					<div class="h2"><span class="titre-pratique">#TITRE</span>
 						<svg class="svg-icon"><use xlink:href="#CHEMIN{images/icones/picto-defs.svg}#icon-arrow-right2"></use></svg>
 					</div>
@@ -28,4 +28,4 @@
 <!-- fin PRATIQUE -->
 </B_GroupeBlocsDefilants>
 
-#FILTRE{mini_html}
\ No newline at end of file
+#FILTRE{mini_html}
diff --git a/noisettes/sommaire_modeportailcognac_quoideneuf.html b/noisettes/sommaire_modeportailcognac_quoideneuf.html
index f1f9ec99cf14f6ea8c37f4f2656221b676cd8b39..26d2c3f66a0f09466d1b03a138675528820a1710 100644
--- a/noisettes/sommaire_modeportailcognac_quoideneuf.html
+++ b/noisettes/sommaire_modeportailcognac_quoideneuf.html
@@ -1,13 +1,13 @@
-
-[<!-- ACTUS -->
-<div id="actualites" class="zone-actus navstuff">
-	(#INCLURE{fond=noisettes/sommaire/sommaire_modeportailcognac_quoideneuf})
-
-	[(#CONFIG{soyezcreateurs/affichage_lien_antichrono,on}|=={on}|oui)<div class="text-center avec-margin-top avec-margin-bottom">
-		<a class="button texte-blanc triadeA" href="[(#URL_PAGE{[(#CONFIG{soyezcreateurs/antichrono_grid_lien,on}|=={on}|?{[(#CONFIG{soyezcreateurs/page_antichrono,antichrono})],antichrono})]})]">[(#CONFIG{soyezcreateurs/texte_actualite_toutes}|typo|sinon{<:soyezcreateurs:actualite_toutes:>})]</a>
-	</div>]
-</div>
-<!-- fin ACTUS -->
-]
-
-#FILTRE{mini_html}
\ No newline at end of file
+
+[<!-- ACTUS -->
+<div id="actualites" class="zone-actus navstuff">
+	(#INCLURE{fond=noisettes/sommaire/sommaire_modeportailcognac_quoideneuf})
+
+	[(#CONFIG{soyezcreateurs/affichage_lien_antichrono,on}|=={on}|oui)<div class="text-center avec-margin-top avec-margin-bottom">
+		<a class="button texte-blanc triadeA" href="[(#URL_PAGE{[(#CONFIG{soyezcreateurs/antichrono_grid_lien,on}|=={on}|?{[(#CONFIG{soyezcreateurs/page_antichrono,antichrono})],antichrono})]})]">[(#CONFIG{soyezcreateurs/texte_actualite_toutes}|typo|sinon{<:soyezcreateurs:actualite_toutes:>})]</a>
+	</div>]
+</div>
+<!-- fin ACTUS -->
+]
+
+#FILTRE{mini_html}
diff --git a/noisettes/sommaire_modeportailcognac_sc_edito.html b/noisettes/sommaire_modeportailcognac_sc_edito.html
index 1214bec106c5e258291688c3f79f630bc7361f08..d02e89a2a7748c0efe152a1fc7567ab7b40ba869 100644
--- a/noisettes/sommaire_modeportailcognac_sc_edito.html
+++ b/noisettes/sommaire_modeportailcognac_sc_edito.html
@@ -1,39 +1,39 @@
-[(#REM) Attention : le SET est exécuté de toute manière, et c'est le dernier qui a raison !
-D'où l'inversion de la condition pour avoir l'édito restreint si pertinent]
-<?php if (!(isset($GLOBALS['visiteur_session']['id_auteur']) AND $GLOBALS['visiteur_session']['id_auteur'])) { ?>
-<BOUCLE_EDITO(ARTICLES) {titre_mot=EDITO}{!par date}{0,1}{lang}{!archive}>[(#SET{articleedito,#ID_ARTICLE})]</BOUCLE_EDITO>
-<?php } else { ?>
-<BOUCLE_EDITO_RESTREINT(ARTICLES) {titre_mot=EDITO_Restreint}{!par date}{0,1}{lang}{!archive}>[(#REM) Espace nécessaire poyur que la boucle ne soit pas vide et que //B ne soit pas exécutée ] [(#SET{articleedito,#ID_ARTICLE})]</BOUCLE_EDITO_RESTREINT><BOUCLE_EDITO_RESTREINT_NON(ARTICLES) {titre_mot=EDITO}{!par date}{0,1}{lang}{!archive}>[(#SET{articleedito,#ID_ARTICLE})]</BOUCLE_EDITO_RESTREINT_NON><//B_EDITO_RESTREINT>
-<?php } ?>
-<BOUCLE_LEDITO(ARTICLES) {id_article=#GET{articleedito}}>
-
-<!-- EDITO -->
-<div id="edito" class="zone-edito">
-	<header class="titre-sommaire">
-		<h1 class="#EDIT{titre}"><span>#TITRE</span></h1>
-	</header>
-	[(#CONFIG{soyezcreateurs/variante_blocedito,full}|=={full}|oui)
-	[<img class="editologo" src="(#LOGO_ARTICLE|image_focus{#CONFIG{soyezcreateurs_layout/largeurconteneur,960},200}|extraire_attribut{src})" width="[(#LOGO_ARTICLE|image_focus{#CONFIG{soyezcreateurs_layout/largeurconteneur,960},200}|largeur)]" height="[(#LOGO_ARTICLE|image_focus{#CONFIG{soyezcreateurs_layout/largeurconteneur,960},200}|hauteur)]" alt="" />]
-	]
-	<div id="editotexte" class="texte">
-		<div class="infos">[(#INCLURE{fond=noisettes/liste_auteurs,id_article,virgule=1,nodiv=1})][(#INCLURE{fond=noisettes/aff_datepublication,id_article,lang})]</div>
-		<div>
-			[<div class="[(#CHAPO*|?{#EDIT{chapo},#EDIT{descriptif}}) ]chapo">(#CHAPO|image_reduire{#CONFIG{soyezcreateurs_layout/largeurconteneur,960},0}|sinon{#DESCRIPTIF})</div>]
-			[(#CONFIG{soyezcreateurs/variante_blocedito,full}|=={full}|oui)
-			[<div class="#EDIT{texte} entry-content">(#TEXTE|image_reduire{#CONFIG{soyezcreateurs_layout/largeurconteneur,960},0})</div>]
-			[<div class="#EDIT{ps} ps">(#PS|image_reduire{#CONFIG{soyezcreateurs_layout/largeurconteneur,960},0})</div>]
-			[<div class="notes">(#NOTES)</div>]
-			[<p class="#EDIT{hyperlien} hyperlien"><:voir_en_ligne:> : <a href="(#URL_SITE)" class="spip_out">[(#NOM_SITE|sinon{[(#URL_SITE|couper{80})]})]</a></p>]
-			[(#INCLURE{fond=noisettes/galerie,ajax,id_article,env})]
-			][(#CONFIG{soyezcreateurs/variante_blocedito,full}|=={full}|non)[(#TEXTE|oui)
-			<div class="text-center avec-margin-top avec-margin-bottom">
-				<a class="button texte-blanc triadeA" href="#ARTICLE_URL" title="<:soyezcreateurs:liresuiteeditorial|supprimer_tags|attribut_html:>[ : (#TITRE|supprimer_tags|attribut_html)][ ((#INCLURE{fond=noisettes/aff_datepublication,id_article}|supprimer_tags))]"><:soyezcreateurs:liresuiteeditorial:></a>
-			</div>
-			]]
-		</div>
-	</div>
-</div>
-<!-- fin EDITO -->
-</BOUCLE_LEDITO>
-
-#FILTRE{mini_html}
\ No newline at end of file
+[(#REM) Attention : le SET est exécuté de toute manière, et c'est le dernier qui a raison !
+D'où l'inversion de la condition pour avoir l'édito restreint si pertinent]
+<?php if (!(isset($GLOBALS['visiteur_session']['id_auteur']) AND $GLOBALS['visiteur_session']['id_auteur'])) { ?>
+<BOUCLE_EDITO(ARTICLES) {titre_mot=EDITO}{!par date}{0,1}{lang}{!archive}>[(#SET{articleedito,#ID_ARTICLE})]</BOUCLE_EDITO>
+<?php } else { ?>
+<BOUCLE_EDITO_RESTREINT(ARTICLES) {titre_mot=EDITO_Restreint}{!par date}{0,1}{lang}{!archive}>[(#REM) Espace nécessaire poyur que la boucle ne soit pas vide et que //B ne soit pas exécutée ] [(#SET{articleedito,#ID_ARTICLE})]</BOUCLE_EDITO_RESTREINT><BOUCLE_EDITO_RESTREINT_NON(ARTICLES) {titre_mot=EDITO}{!par date}{0,1}{lang}{!archive}>[(#SET{articleedito,#ID_ARTICLE})]</BOUCLE_EDITO_RESTREINT_NON><//B_EDITO_RESTREINT>
+<?php } ?>
+<BOUCLE_LEDITO(ARTICLES) {id_article=#GET{articleedito}}>
+
+<!-- EDITO -->
+<div id="edito" class="zone-edito">
+	<header class="titre-sommaire">
+		<h1 class="#EDIT{titre}"><span>#TITRE</span></h1>
+	</header>
+	[(#CONFIG{soyezcreateurs/variante_blocedito,full}|=={full}|oui)
+	[<img class="editologo" src="(#LOGO_ARTICLE|image_focus{#CONFIG{soyezcreateurs_layout/largeurconteneur,960},200}|extraire_attribut{src})" width="[(#LOGO_ARTICLE|image_focus{#CONFIG{soyezcreateurs_layout/largeurconteneur,960},200}|largeur)]" height="[(#LOGO_ARTICLE|image_focus{#CONFIG{soyezcreateurs_layout/largeurconteneur,960},200}|hauteur)]" alt="" />]
+	]
+	<div id="editotexte" class="texte">
+		<div class="infos">[(#INCLURE{fond=noisettes/liste_auteurs,id_article,virgule=1,nodiv=1})][(#INCLURE{fond=noisettes/aff_datepublication,id_article,lang})]</div>
+		<div>
+			[<div class="[(#CHAPO*|?{#EDIT{chapo},#EDIT{descriptif}}) ]chapo">(#CHAPO|image_reduire{#CONFIG{soyezcreateurs_layout/largeurconteneur,960},0}|sinon{#DESCRIPTIF})</div>]
+			[(#CONFIG{soyezcreateurs/variante_blocedito,full}|=={full}|oui)
+			[<div class="#EDIT{texte} entry-content">(#TEXTE|image_reduire{#CONFIG{soyezcreateurs_layout/largeurconteneur,960},0})</div>]
+			[<div class="#EDIT{ps} ps">(#PS|image_reduire{#CONFIG{soyezcreateurs_layout/largeurconteneur,960},0})</div>]
+			[<div class="notes">(#NOTES)</div>]
+			[<p class="#EDIT{hyperlien} hyperlien"><:voir_en_ligne:> : <a href="(#URL_SITE)" class="spip_out">[(#NOM_SITE|sinon{[(#URL_SITE|couper{80})]})]</a></p>]
+			[(#INCLURE{fond=noisettes/galerie,ajax,id_article,env})]
+			][(#CONFIG{soyezcreateurs/variante_blocedito,full}|=={full}|non)[(#TEXTE|oui)
+			<div class="text-center avec-margin-top avec-margin-bottom">
+				<a class="button texte-blanc triadeA" href="#ARTICLE_URL" title="<:soyezcreateurs:liresuiteeditorial|supprimer_tags|attribut_html:>[ : (#TITRE|supprimer_tags|attribut_html)][ ((#INCLURE{fond=noisettes/aff_datepublication,id_article}|supprimer_tags))]"><:soyezcreateurs:liresuiteeditorial:></a>
+			</div>
+			]]
+		</div>
+	</div>
+</div>
+<!-- fin EDITO -->
+</BOUCLE_LEDITO>
+
+#FILTRE{mini_html}
diff --git a/noisettes/sommaire_modeportailcognac_zoomsur.html b/noisettes/sommaire_modeportailcognac_zoomsur.html
index 3ea28faacf37ec8d8fb5bc62e2d0d5d133174781..0454248c6cf52b84840581969e266086ed57c7ba 100644
--- a/noisettes/sommaire_modeportailcognac_zoomsur.html
+++ b/noisettes/sommaire_modeportailcognac_zoomsur.html
@@ -11,14 +11,14 @@
 			<div class="slider-diapo-imgfull">
 				<a href="#GET{article_url}"[ title="(#_ZoomSur:DESCRIPTIF|supprimer_tags|attribut_html)"]>
 					[(#MEDIA|=={image}|oui)
-					<picture>
+					<div class="img-hover-zoom lent grand"><picture>
 						<source srcset="[(#FICHIER|copie_locale|image_focus{1920,#CONFIG{soyezcreateurs/hauteur_slider,580}}|extraire_attribut{src})]" media="(min-width: 1160px)" />
 						[(#CONFIG{soyezcreateurs_layout/largeurconteneur,960}|>{1024}|oui)[(#CONFIG{soyezcreateurs_layout/largeurconteneur,960}|<{1160}|oui)<source srcset="[(#FICHIER|copie_locale|image_focus{#CONFIG{soyezcreateurs_layout/largeurconteneur,960},[(#CONFIG{soyezcreateurs/hauteur_slider,580}|div{1.2})]}|extraire_attribut{src})]" media="(min-width: #CONFIG{soyezcreateurs_layout/largeurconteneur,960}px)" />]]
 						<source srcset="[(#FICHIER|copie_locale|image_focus{1024,[(#CONFIG{soyezcreateurs/hauteur_slider,580}|div{1.4})]}|extraire_attribut{src})]" media="(min-width: 1024px)" />
 						<source srcset="[(#FICHIER|copie_locale|image_focus{640,[(#CONFIG{soyezcreateurs/hauteur_slider,580}|div{1.8})]}|extraire_attribut{src})]" media="(min-width: 640px)" />
 						<source srcset="[(#FICHIER|copie_locale|image_focus{320,[(#CONFIG{soyezcreateurs/hauteur_slider,580}|div{2.5})]}|extraire_attribut{src})]" />
 						<img src="[(#FICHIER|copie_locale|image_focus{320,[(#CONFIG{soyezcreateurs/hauteur_slider,580}|div{2.5})]}|extraire_attribut{src})]" alt="" width="320" height="[(#CONFIG{soyezcreateurs/hauteur_slider,580}|div{2.5})]" />
-					</picture>
+					</picture></div>
 					]
 					[(#MEDIA|=={video}|oui)
 					<div class="bg-video">
@@ -39,7 +39,7 @@
 		<div class="slider show-for-medium" role="region" aria-label="Diaporama d'accueil">
 			<div class="slider-diapo-imgfull">
 				<a href="#GET{article_url}"[ title="(#_ZoomSur:DESCRIPTIF|supprimer_tags|attribut_html)"]>
-					<img src="[(#CHEMIN{images/placeholder.jpg}|image_focus{1920,#CONFIG{soyezcreateurs/hauteur_slider,580}}|extraire_attribut{src})]" alt="" />
+					<div class="img-hover-zoom lent grand"><img src="[(#CHEMIN{images/placeholder.jpg}|image_focus{1920,#CONFIG{soyezcreateurs/hauteur_slider,580}}|extraire_attribut{src})]" alt="" /></div>
 				</a>
 			</div>
 		</div>
diff --git a/plan.html b/plan.html
index 02c62d4bc9cbb6600f095cfbe7c1124f78e4249c..b42780276772ec2a444cd2f9d3e6787035ef078f 100644
--- a/plan.html
+++ b/plan.html
@@ -9,12 +9,6 @@
 >
 <div class="texte">
 <main id="main">
-[(#CONFIG{soyezcreateurs_layout/positioncartouchetitre,contenu}|=={contenu}|oui)
-<div class="cartouche">
-<div class="titrepage"><h1><:plan_site:></h1></div>
-</div>
-]
-
 [(#INCLURE{fond=noisettes/plan/plan})]
 </main>
 </div><!-- Fin de .texte -->
@@ -25,4 +19,4 @@
 	{template=Plan}
 	{titretop=#GET{titretop}}
 >
-#FILTRE{mini_html}
\ No newline at end of file
+#FILTRE{mini_html}
diff --git a/proposer_evenement.html b/proposer_evenement.html
index 67deacd59d0b70d4c4a61dbf37b60aad44967ee9..d5c4518b60a2b8cc2548cb431aeccb76f9530aa3 100755
--- a/proposer_evenement.html
+++ b/proposer_evenement.html
@@ -9,11 +9,6 @@
 >
 <div class="texte">
 <main id="main">
-[(#CONFIG{soyezcreateurs_layout/positioncartouchetitre,contenu}|=={contenu}|oui)
-<div class="cartouche">
-<div class="titrepage"><h1><:soyezcreateurs:agenda_proposer_evenement:></h1></div>
-</div>
-]
 <p class="proposer_evenement_explication"><:soyezcreateurs:agenda_proposer_evenement_explication:></p>
 
 #FORMULAIRE_PROPOSER_EVENEMENT
@@ -26,4 +21,4 @@
 	{template=ProposerEvenement}
 	{titretop=#GET{titretop}}
 >]
-#FILTRE{mini_html}
\ No newline at end of file
+#FILTRE{mini_html}
diff --git a/recherche.html b/recherche.html
index 238ef818cedab1057a0df2fd53bc86fbf9e64020..a18f4817b60bc4dcc91725f018580c2a009faf13 100644
--- a/recherche.html
+++ b/recherche.html
@@ -9,11 +9,6 @@
 >
 <div class="texte">
 <main id="main">
-[(#CONFIG{soyezcreateurs_layout/positioncartouchetitre,contenu}|=={contenu}|oui)
-<div class="cartouche">
-<div class="titrepage"><h1><:resultats_recherche:>[ : <em>(#RECHERCHE)</em>]</h1></div>
-</div>
-]
 	<div id="letexte">
 #SET{Rubriques_PasDansRecherche, #ARRAY}
 <BOUCLE_RubriquesPasDansRecherche(RUBRIQUES){titre_mot=PasDansRecherche}>
@@ -117,4 +112,4 @@
 	env
 	}
 >
-#FILTRE{mini_html}
\ No newline at end of file
+#FILTRE{mini_html}
diff --git a/rubrique.html b/rubrique.html
index a426f16214f7575d5dd61a29daa1bf5dbac00eea..b102f2d3feacb2b7b5bac5fa6c4692e7562a9eb8 100644
--- a/rubrique.html
+++ b/rubrique.html
@@ -1,81 +1,75 @@
-<BOUCLE_rubrique_principal(RUBRIQUES) {id_rubrique}{!lang_select}>[(#SET{id_rubrique,#ID_RUBRIQUE})]<BOUCLE_RacineMenuHaut(HIERARCHIE){tout}{id_rubrique}{titre_mot=MenuHaut}{inverse} {0,1}>[(#SET{secteurencours,#ID_RUBRIQUE})]</BOUCLE_RacineMenuHaut>
-[(#SET{titretop,[(#TITRE|attribut_html|sc_nettoyer_marqueur|texte_script)]})]
-[(#SET{titrearchive,[(#ENV{archive}|?{[(#TITRE|attribut_html|texte_script)] (<:soyezcreateurs:archives:>),[(#TITRE|supprimer_tags|texte_script)]})]})]
-<INCLURE{fond=noisettes/header/header}
-	{id_rubrique}
-	{id_secteur}
-	{rubriqueencours=#ID_RUBRIQUE}
-	{secteurencours=#GET{secteurencours}}
-	{metadescription=(#DESCRIPTIF|sinon{#INFO_DESCRIPTIF{rubrique,#ID_PARENT}}|supprimer_tags|attribut_html)}
-	{title=#GET{titrearchive}}
-	{titretop=#GET{titretop}}
-	{type=rubrique}
-	{canonical=(#URL_RUBRIQUE|url_absolue)}
->
-<BOUCLE_EstAgenda(HIERARCHIE){id_rubrique}{tout}{titre_mot=Agenda}{inverse}{0,1}>
-[(#CONFIG{soyezcreateurs/agendathematique,}|=={#ENV{calendrier,on}}|oui)
-<INCLURE{fond=noisettes/agenda/agendathematique,id_rubrique=#_rubrique_principal:ID_RUBRIQUE,env} />
-]
-[(#CONFIG{soyezcreateurs/agendathematique,}|!={#ENV{calendrier,on}}|oui)
-<INCLURE{fond=noisettes/agenda/agendaliste,id_rubrique=#_rubrique_principal:ID_RUBRIQUE,date_ev,env} />
-]
-</BOUCLE_EstAgenda>
-
-<BOUCLE_TypeRubrique(HIERARCHIE){id_rubrique}{tout}{type_mot=_TypeRubrique}{inverse} {0,1}><BOUCLE_Mot_TypeRubrique(MOTS){type=_TypeRubrique}{id_rubrique}>[(#CHEMIN{noisettes/rubriques/typerubrique_#TITRE.html}|oui)
-[(#INCLURE{fond=noisettes/rubriques/typerubrique_#TITRE,id_rubrique=#_rubrique_principal:ID_RUBRIQUE,rubriqueencours,template,secteurencours,lang,racinetype=#_TypeRubrique:ID_RUBRIQUE,env})]
-]</BOUCLE_Mot_TypeRubrique></BOUCLE_TypeRubrique>
-
-[(#CONFIG{soyezcreateurs_layout/positioncartouche,bas}|=={haut}|oui)
-[(#REM) Ne pas afficher le cartouche si le texte est vide : on affiche déjà la liste des articles avec un extrait à la place du texte
-][(#TEXTE*|=={''}|non)[(#INCLURE{fond=noisettes/cartouches/rubrique_cartouche,id_rubrique,archive})]]
-[(#REM) Par contre, afficher les nouveautes si la config du site en décide
-][(#TEXTE*|=={''}|oui)[(#CONFIG{soyezcreateurs/nouveauteparbranche, }|=={on}|oui)[<div id="artrecents"[ class="(#ENV{classe})"]>(#INCLURE{fond=noisettes/cartouches/cartouche_nouveaute_branche,id_rubrique}|trim)</div>]]]
-]
-
-<div class="texte">
-[(#PLUGIN{SOCIALTAGS}|oui)<div id="socialtags"></div>]
-<main id="main">
-[(#CONFIG{soyezcreateurs_layout/cadragelogocontenuprincipal,entier}|=={recadre}|oui)[(#SET{logo_rubrique,[(#LOGO_RUBRIQUE_NORMAL|image_focus{#CONFIG{soyezcreateurs_layout/largeurlogocontenuprincipal,#CONFIG{soyezcreateurs_layout/largeurlogocontenuautomatique,64}},#CONFIG{soyezcreateurs_layout/hauteurlogocontenuprincipal,#CONFIG{soyezcreateurs_layout/hauteurlogocontenuautomatique,64}}})]})]][(#CONFIG{soyezcreateurs_layout/cadragelogocontenuprincipal,entier}|=={entier}|oui)[(#SET{logo_rubrique,[(#LOGO_RUBRIQUE_NORMAL|image_reduire{#CONFIG{soyezcreateurs_layout/largeurlogocontenuprincipal,#CONFIG{soyezcreateurs_layout/largeurlogocontenuautomatique,64}},#CONFIG{soyezcreateurs_layout/hauteurlogocontenuprincipal,#CONFIG{soyezcreateurs_layout/hauteurlogocontenuautomatique,64}}})]})]]
-[(#CONFIG{soyezcreateurs_layout/logorubriquenavigation,content}|=={contenthauttitre}|oui)[<img src="(#GET{logo_rubrique}|extraire_attribut{src})" class="logo_rubrique" alt="" width="[(#GET{logo_rubrique}|largeur)]" height="[(#GET{logo_rubrique}|hauteur)]" />]]
-[(#CONFIG{soyezcreateurs_layout/positioncartouchetitre,contenu}|=={contenu}|oui)
-<div class="cartouche surlignable">
-<div class="titrepage"><h1 class="#EDIT{titre} surlignable">[(#CONFIG{soyezcreateurs_layout/logorubriquenavigation,content}|=={content}|oui)[<img src="(#GET{logo_rubrique}|extraire_attribut{src})" class="logo_rubrique" alt="" width="[(#GET{logo_rubrique}|largeur)]" height="[(#GET{logo_rubrique}|hauteur)]" />]][(#TITRE)][(#ENV{archive}|oui)(<:soyezcreateurs:archives:>)]</h1>[(#FORMULAIRE_FAVORI)]</div>
-[(#ENV{archive}|non)[(#INCLURE{fond=noisettes/cartouches/article_cartouche_archives,id_rubrique,lang}|oui)<div class="lienarchives pas_surlignable"><a href="[(#SELF|parametre_url{archive,oui})]" title="<:soyezcreateurs:archives_title|attribut_html:>"><:soyezcreateurs:archives:></a></div>]]
-</div>
-]
-[(#CONFIG{soyezcreateurs_layout/logorubriquenavigation,content}|=={contentbastitre}|oui)[<img src="(#GET{logo_rubrique}|extraire_attribut{src})" class="logo_rubrique" alt="" width="[(#GET{logo_rubrique}|largeur)]" height="[(#GET{logo_rubrique}|hauteur)]" />]]
-	<div id="letexte" class="surlignable">
-[<div class="#EDIT{descriptif} chapo">(#DESCRIPTIF|image_reduire{#CONFIG{soyezcreateurs_layout/maxlargeurimage,720},0})</div>]
-[<div class="#EDIT{texte}">(#TEXTE|image_reduire{#CONFIG{soyezcreateurs_layout/maxlargeurimage,720},0})</div>][(#TEXTE*|=={''}|oui)[(#LANG|!={#CONFIG{langue_site}}|?{[(#INCLURE{fond=noisettes/rubriques/rubrique_automatique,id_rubrique,archive,lang=#LANG})],[(#INCLURE{fond=noisettes/rubriques/rubrique_automatique,id_rubrique,archive})]})]]
-[(#REM) Vérification de la présence du plugin GIS dans la rubrique et si oui on inclut la carte grace au modèle, qui est dans la page carte_gis.html]
-[<div id="carto">
-(#PLUGIN{GIS}|oui)[(#INCLURE{fond=json/gis_articles_plus_sites_branche,id_rubrique,limit=1}|oui)[(#INCLURE{fond=modeles/carte_gis,id_rubrique,objets=articles_plus_sites_branche,autocenterandzoom=oui,hauteur=#CONFIG{soyezcreateurs_layout/hauteurgisrubriques,400px},cluster=[(#PLUGIN{GISGEOM}|?{'non','oui'})],maxClusterRadius=40,clusterShowCoverageOnHover=oui,clusterSpiderfyOnMaxZoom=oui,fullscreen=oui,zoom_wheel=non})]]
-</div>]
-[<div class="notes">(#NOTES)</div>]
-[(#INCLURE{fond=noisettes/galerie,ajax,id_rubrique,env})]
-[(#VAL{enbas}|in_any{#CONFIG{soyezcreateurs/affichagelistedocuments,#ARRAY{0,enbas}}}|oui)
-[(#INCLURE{fond=modeles/documentsjoints,id_rubrique})]
-]
-	</div><!-- Fin de #LeTexte -->
-</main>
-</div><!-- Fin de .texte -->
-[(#CONFIG{soyezcreateurs_layout/positioncartouche,bas}|=={bas}|oui)
-[(#REM) Ne pas afficher le cartouche si le texte est vide : on affiche déjà la liste des articles avec un extrait à la place du texte
-][(#TEXTE*|=={''}|non)[(#INCLURE{fond=noisettes/cartouches/rubrique_cartouche,id_rubrique,archive,classe=artrecent_bas})]]
-[(#REM) Par contre, afficher les nouveautes si la config du site en décide
-][(#TEXTE*|=={''}|oui)[(#CONFIG{soyezcreateurs/nouveauteparbranche, }|=={on}|oui)[<div id="artrecents" class="artrecent_bas">(#INCLURE{fond=noisettes/cartouches/cartouche_nouveaute_branche,id_rubrique,classe=artrecent_bas}|trim)</div>]]]
-]
-
-<//B_TypeRubrique>
-
-<//B_EstAgenda>
-</BOUCLE_rubrique_principal>
-<INCLURE{fond=noisettes/footer/footer}
-	{rubriqueencours=#ID_RUBRIQUE}
-	{id_rubrique}
-	{secteurencours=#GET{secteurencours}}
-	{lang}
-	{titretop=#GET{titretop}}
->
-</B_rubrique_principal><//B_rubrique_principal>
-#FILTRE{mini_html}
+<BOUCLE_rubrique_principal(RUBRIQUES) {id_rubrique}{!lang_select}>[(#SET{id_rubrique,#ID_RUBRIQUE})]<BOUCLE_RacineMenuHaut(HIERARCHIE){tout}{id_rubrique}{titre_mot=MenuHaut}{inverse} {0,1}>[(#SET{secteurencours,#ID_RUBRIQUE})]</BOUCLE_RacineMenuHaut>
+[(#SET{titretop,[(#TITRE|attribut_html|sc_nettoyer_marqueur|texte_script)]})]
+[(#SET{titrearchive,[(#ENV{archive}|?{[(#TITRE|attribut_html|texte_script)] (<:soyezcreateurs:archives:>),[(#TITRE|supprimer_tags|texte_script)]})]})]
+<INCLURE{fond=noisettes/header/header}
+	{id_rubrique}
+	{id_secteur}
+	{rubriqueencours=#ID_RUBRIQUE}
+	{secteurencours=#GET{secteurencours}}
+	{metadescription=(#DESCRIPTIF|sinon{#INFO_DESCRIPTIF{rubrique,#ID_PARENT}}|supprimer_tags|attribut_html)}
+	{title=#GET{titrearchive}}
+	{titretop=#GET{titretop}}
+	{type=rubrique}
+	{canonical=(#URL_RUBRIQUE|url_absolue)}
+>
+<BOUCLE_EstAgenda(HIERARCHIE){id_rubrique}{tout}{titre_mot=Agenda}{inverse}{0,1}>
+[(#CONFIG{soyezcreateurs/agendathematique,}|=={#ENV{calendrier,on}}|oui)
+<INCLURE{fond=noisettes/agenda/agendathematique,id_rubrique=#_rubrique_principal:ID_RUBRIQUE,env} />
+]
+[(#CONFIG{soyezcreateurs/agendathematique,}|!={#ENV{calendrier,on}}|oui)
+<INCLURE{fond=noisettes/agenda/agendaliste,id_rubrique=#_rubrique_principal:ID_RUBRIQUE,date_ev,env} />
+]
+</BOUCLE_EstAgenda>
+
+<BOUCLE_TypeRubrique(HIERARCHIE){id_rubrique}{tout}{type_mot=_TypeRubrique}{inverse} {0,1}><BOUCLE_Mot_TypeRubrique(MOTS){type=_TypeRubrique}{id_rubrique}>[(#CHEMIN{noisettes/rubriques/typerubrique_#TITRE.html}|oui)
+[(#INCLURE{fond=noisettes/rubriques/typerubrique_#TITRE,id_rubrique=#_rubrique_principal:ID_RUBRIQUE,rubriqueencours,template,secteurencours,lang,racinetype=#_TypeRubrique:ID_RUBRIQUE,env})]
+]</BOUCLE_Mot_TypeRubrique></BOUCLE_TypeRubrique>
+
+[(#CONFIG{soyezcreateurs_layout/positioncartouche,bas}|=={haut}|oui)
+[(#REM) Ne pas afficher le cartouche si le texte est vide : on affiche déjà la liste des articles avec un extrait à la place du texte
+][(#TEXTE*|=={''}|non)[(#INCLURE{fond=noisettes/cartouches/rubrique_cartouche,id_rubrique,archive})]]
+[(#REM) Par contre, afficher les nouveautes si la config du site en décide
+][(#TEXTE*|=={''}|oui)[(#CONFIG{soyezcreateurs/nouveauteparbranche, }|=={on}|oui)[<div id="artrecents"[ class="(#ENV{classe})"]>(#INCLURE{fond=noisettes/cartouches/cartouche_nouveaute_branche,id_rubrique}|trim)</div>]]]
+]
+
+<div class="texte">
+[(#PLUGIN{SOCIALTAGS}|oui)<div id="socialtags"></div>]
+<main id="main">
+[(#CONFIG{soyezcreateurs_layout/cadragelogocontenuprincipal,entier}|=={recadre}|oui)[(#SET{logo_rubrique,[(#LOGO_RUBRIQUE_NORMAL|image_focus{#CONFIG{soyezcreateurs_layout/largeurlogocontenuprincipal,#CONFIG{soyezcreateurs_layout/largeurlogocontenuautomatique,64}},#CONFIG{soyezcreateurs_layout/hauteurlogocontenuprincipal,#CONFIG{soyezcreateurs_layout/hauteurlogocontenuautomatique,64}}})]})]][(#CONFIG{soyezcreateurs_layout/cadragelogocontenuprincipal,entier}|=={entier}|oui)[(#SET{logo_rubrique,[(#LOGO_RUBRIQUE_NORMAL|image_reduire{#CONFIG{soyezcreateurs_layout/largeurlogocontenuprincipal,#CONFIG{soyezcreateurs_layout/largeurlogocontenuautomatique,64}},#CONFIG{soyezcreateurs_layout/hauteurlogocontenuprincipal,#CONFIG{soyezcreateurs_layout/hauteurlogocontenuautomatique,64}}})]})]]
+[(#CONFIG{soyezcreateurs_layout/logorubriquenavigation,content}|=={contenthauttitre}|oui)[<img src="(#GET{logo_rubrique}|extraire_attribut{src})" class="logo_rubrique" alt="" width="[(#GET{logo_rubrique}|largeur)]" height="[(#GET{logo_rubrique}|hauteur)]" />]]
+[(#CONFIG{soyezcreateurs_layout/logorubriquenavigation,content}|=={contentbastitre}|oui)[<img src="(#GET{logo_rubrique}|extraire_attribut{src})" class="logo_rubrique" alt="" width="[(#GET{logo_rubrique}|largeur)]" height="[(#GET{logo_rubrique}|hauteur)]" />]]
+	<div id="letexte" class="surlignable">
+[<div class="#EDIT{descriptif} chapo">(#DESCRIPTIF|image_reduire{#CONFIG{soyezcreateurs_layout/maxlargeurimage,720},0})</div>]
+[<div class="#EDIT{texte}">(#TEXTE|image_reduire{#CONFIG{soyezcreateurs_layout/maxlargeurimage,720},0})</div>][(#TEXTE*|=={''}|oui)[(#LANG|!={#CONFIG{langue_site}}|?{[(#INCLURE{fond=noisettes/rubriques/rubrique_automatique,id_rubrique,archive,lang=#LANG})],[(#INCLURE{fond=noisettes/rubriques/rubrique_automatique,id_rubrique,archive})]})]]
+[(#REM) Vérification de la présence du plugin GIS dans la rubrique et si oui on inclut la carte grace au modèle, qui est dans la page carte_gis.html]
+[<div id="carto">
+(#PLUGIN{GIS}|oui)[(#INCLURE{fond=json/gis_articles_plus_sites_branche,id_rubrique,limit=1}|oui)[(#INCLURE{fond=modeles/carte_gis,id_rubrique,objets=articles_plus_sites_branche,autocenterandzoom=oui,hauteur=#CONFIG{soyezcreateurs_layout/hauteurgisrubriques,400px},cluster=[(#PLUGIN{GISGEOM}|?{'non','oui'})],maxClusterRadius=40,clusterShowCoverageOnHover=oui,clusterSpiderfyOnMaxZoom=oui,fullscreen=oui,zoom_wheel=non})]]
+</div>]
+[<div class="notes">(#NOTES)</div>]
+[(#INCLURE{fond=noisettes/galerie,ajax,id_rubrique,env})]
+[(#VAL{enbas}|in_any{#CONFIG{soyezcreateurs/affichagelistedocuments,#ARRAY{0,enbas}}}|oui)
+[(#INCLURE{fond=modeles/documentsjoints,id_rubrique})]
+]
+	</div><!-- Fin de #LeTexte -->
+</main>
+</div><!-- Fin de .texte -->
+[(#CONFIG{soyezcreateurs_layout/positioncartouche,bas}|=={bas}|oui)
+[(#REM) Ne pas afficher le cartouche si le texte est vide : on affiche déjà la liste des articles avec un extrait à la place du texte
+][(#TEXTE*|=={''}|non)[(#INCLURE{fond=noisettes/cartouches/rubrique_cartouche,id_rubrique,archive,classe=artrecent_bas})]]
+[(#REM) Par contre, afficher les nouveautes si la config du site en décide
+][(#TEXTE*|=={''}|oui)[(#CONFIG{soyezcreateurs/nouveauteparbranche, }|=={on}|oui)[<div id="artrecents" class="artrecent_bas">(#INCLURE{fond=noisettes/cartouches/cartouche_nouveaute_branche,id_rubrique,classe=artrecent_bas}|trim)</div>]]]
+]
+
+<//B_TypeRubrique>
+
+<//B_EstAgenda>
+</BOUCLE_rubrique_principal>
+<INCLURE{fond=noisettes/footer/footer}
+	{rubriqueencours=#ID_RUBRIQUE}
+	{id_rubrique}
+	{secteurencours=#GET{secteurencours}}
+	{lang}
+	{titretop=#GET{titretop}}
+>
+</B_rubrique_principal><//B_rubrique_principal>
+#FILTRE{mini_html}
diff --git a/sigles.html b/sigles.html
index 37e3d07fbe5648e4678c46a4593fa71c67bd6423..b34517d5df77579b3f51bce0c87abc67ff4845f1 100644
--- a/sigles.html
+++ b/sigles.html
@@ -7,11 +7,6 @@
 >
 <div class="texte">
 <main id="main">
-[(#CONFIG{soyezcreateurs_layout/positioncartouchetitre,contenu}|=={contenu}|oui)
-<div class="cartouche">
-<div class="titrepage"><h1><:definition:titre_definitions:></h1></div>
-</div>
-]
 <div id="letexte">
 	<div id="sigles">
 		[(#INCLURE{fond=modeles/dictionnaires})]
@@ -26,4 +21,4 @@
 	{template=Sigles}
 	{titretop=#GET{titretop}}
 >
-#FILTRE{mini_html}
\ No newline at end of file
+#FILTRE{mini_html}
diff --git a/site.html b/site.html
index 6ea62fd2a045044d757626b22a7868e17f18a613..98c7bb64dabcbd98a34b8a0af7a014021b976de4 100755
--- a/site.html
+++ b/site.html
@@ -33,13 +33,10 @@
 	{type=site}
 >
 <//B_ArticleSyndiqueTitre>
-	
+
 <div class="texte">
 <main id="main">
 <!-- Contenu : corps du site syndiqu� -->
-[(#CONFIG{soyezcreateurs_layout/positioncartouchetitre,contenu}|=={contenu}|oui)
-<INCLURE{fond=noisettes/cartouchetitre/site,env,lang}>
-]
 [(#NOTES|vide)]
 	<div id="letexte">
 	[<p class="urlsite">&rArr;&nbsp;<a href="#URL_SITE" class="spip_out">(#URL_SITE|couper{80})</a></p>]
@@ -56,11 +53,11 @@
 				<small>[(#DATE|affdate_court)][, <:par_auteur:> (#LESAUTEURS)][ &mdash; <em>(#TAGS|afficher_tags|supprimer_tags)</em>]</small>
 				[<div class="#EDIT{descriptif}">(#DESCRIPTIF|propre|image_reduire{300})</div>]
 				[<p class="#EDIT{syndic_article_hyperlien} hyperlien">&rarr;&nbsp;<a href="(#URL_ARTICLE)" class="spip_out"[ title="<:soyezcreateurs:liresuitede|typo|texte_script|supprimer_tags|attribut_html:> (#TITRE|typo|texte_script|supprimer_tags|attribut_html)"]><:soyezcreateurs:liresuitesyndic|typo:></a></p><br class="nettoyeur" />]
-				
+
 			</BOUCLE_ArticleSyndique>
 		</div>
 		</B_ArticleSyndique>
-	
+
 		[(#REM) Articles issus de la syndication ]
 		<B_articles>
 		<div class="syndic">
@@ -79,14 +76,14 @@
 			[<nav role="navigation" class="pagination">(#PAGINATION{page})</nav>]
 		</div>
 		</B_articles>
-		
+
 		<//B_ArticleSyndique>
 			[<div class="notes"><h2><:info_notes:></h2>(#NOTES)</div>]
-			
+
 	</div><!-- Fin de .letexte -->
 </main>
 </div><!-- Fin de #texte -->
-	
+
 
 
 <INCLURE{fond=noisettes/footer/footer}
@@ -113,9 +110,6 @@
 <div class="texte">
 <main id="main">
 <!-- Contenu : corps du site syndiqu� -->
-[(#CONFIG{soyezcreateurs_layout/positioncartouchetitre,contenu}|=={contenu}|oui)
-<INCLURE{fond=noisettes/cartouchetitre/site,env,lang}>
-]
 <div id="letexte">
 [(#INCLURE{fond=noisettes/sites_rubriques})]
 
@@ -126,7 +120,7 @@
 	</div><!-- Fin de .letexte -->
 </main>
 </div><!-- Fin de #texte -->
-					
+
 
 
 <INCLURE{fond=noisettes/footer/footer}
@@ -135,4 +129,4 @@
 	{template=Sites}
 >
 <//B_site>
-#FILTRE{mini_html}
\ No newline at end of file
+#FILTRE{mini_html}
diff --git a/stylescommuniquant.css.html b/stylescommuniquant.css.html
index bac9f81647df42c4c34f0aa93f92be9c933743f2..01255c2ff4546f69d056b29b6576fceef9b3c66a 100644
--- a/stylescommuniquant.css.html
+++ b/stylescommuniquant.css.html
@@ -1,229 +1,236 @@
-[(#REM)
-
-	Note: l'entete "Vary:" sert a repousser l'entete par
-	defaut "Vary: Cookie,Accept-Encoding", qui est (un peu)
-	genant en cas de "rotation du cookie de session" apres
-	un changement d'IP (effet de clignotement).
-
-	ATTENTION: il faut absolument le charset sinon Firefox croit que
-	c'est du text/html !
-	<style>
-]
-#CACHE{24*3600,cache-client}
-#HTTP_HEADER{Content-Type: text/css; charset=iso-8859-15}
-#HTTP_HEADER{Vary: Accept-Encoding}
-
-#SET{c_vignettes_bk,(#CONFIG{soyezcreateurs_couleurs/vignettes_bk,#ffffff})}
-#SET{c_navigation,(#CONFIG{soyezcreateurs_couleurs/navigation,#017ca5})}
-	#SET{c_navigation_bk,(#CONFIG{soyezcreateurs_couleurs/navigation_bk,#ffffff})}
-#SET{c_menuhaut,(#CONFIG{soyezcreateurs_couleurs/menuhaut,#017ca5})}
-	#SET{c_menuhaut_bk,(#CONFIG{soyezcreateurs_couleurs/menuhaut_bk,#ffffff})}
-#SET{c_extra,(#CONFIG{soyezcreateurs_couleurs/extra,#017ca5})}
-	#SET{c_extra_bk,(#CONFIG{soyezcreateurs_couleurs/extra_bk,#ffffff})}
-
-#SET{LargeurContaineur,(#CONFIG{soyezcreateurs_layout/largeurconteneur,960})}
-#SET{LargeurMenuGauche,(#CONFIG{soyezcreateurs_layout/largeurmenugauche,180})}
-#SET{LargeurMenuDroit,(#CONFIG{soyezcreateurs_layout/largeurmenudroit,180})}
-#SET{Largeurcontent_central,(#GET{LargeurContaineur}|moins{#GET{LargeurMenuGauche}}|moins{#GET{LargeurMenuDroit}})}
-#SET{Largeurcontent_extra,(#GET{LargeurContaineur}|moins{#GET{Largeurcontent_central}})}
-
-div#content { width:#GET{LargeurContaineur}px; margin-left: 0; margin-right:0; }
-#communiquant_content { clear: both; padding-bottom: 10px; }
-#communiquant_content_central {
-	width:#GET{Largeurcontent_central}px;
-	float:left;
-}
-#miettesdepain, .boutonstexte {display: none; }
-
-
-#header #citations {
-	clear:right;
-	float:right;
-	margin: 8px 0;
-}
-
-#letexte { padding: 0 }
-
-#homeSecondblock, #homecadre_outils, .forum_sommaire, #communiquant_actus, #communiquant_content_extra { font-size: #CONFIG{soyezcreateurs_couleurs/fontsizecontenu,1.3}em; }
-#communiquant_actus, .forum_sommaire { padding: 0 8px; }
-#homeSecondblock ul, #communiquant_actus ul, .forum_sommaire ul, .syndic ul {
-  margin-top: 6px;
-  padding-left: 20px;
-}
-#homeagenda ul { padding-left: 0; }
-#homeSecondblock li, .forum_sommaire li, .syndic li { list-style-type: disc; }
-
-#communiquant_content_extra {
-	float:left;
-	width:#GET{Largeurcontent_extra}px;
-	padding: 0 8px;
-}
-#communiquant_content_extra img { padding: 0; }
-
-#homeDessousBreves {
-	clear: left;
-	float:left;
-	width:[(#GET{Largeurcontent_central}|mult{4}|div{6})]px;
-}
-
-#homeDessousBreves ul.block { margin: 0; padding: 0; }
-.dessousbreves_ligne { margin-left: 136px; padding-bottom: .5em; }
-#content .dessousbreves_ligne img.logo { float: left; margin-left: -136px; padding: 4px 8px 4px 0; }
-#homeSecondblock .block li { list-style-type: none; }
-
-.listeafficherimages { overflow: hidden; }
-
-#homequoideneuf, #homeagenda {
-	clear: right;
-	float:right;
-	width:[(#GET{Largeurcontent_central}|mult{2}|div{6})]px;
-	padding: 0 8px;
-}
-#communiquant_content_central .VideoALaUne, #communiquant_content_central .goodies, #communiquant_content_central .syndic {
-	clear: both;
-	padding: 0 8px;
-}
-/*************** VIDEO A LA UNE */
-.video-container {
-	position: relative;
-	padding-bottom: 56.25%;
-	padding-top: 30px;
-	height: 0;
-	overflow: hidden;
-}
-.video-container iframe, .video-container object, .video-container embed {
-	position: absolute;
-	top: 0;
-	left: 0;
-	width: 100%;
-	height: 100%;
-}
-
-#communiquant_content_extra .goodies, #communiquant_content_extra #homequoideneuf {
-	clear: left;
-	float: none;
-	width: 100%;
-	padding: 0;
-}
-
-#communiquant_content div.goodies.underedito { font-size: 1.3em; padding: 0 8px; }
-
-[(#CONFIG{soyezcreateurs/largeur_slideshow_communiquant,etroite}|=={etroite}|oui)
-[(#CONFIG{soyezcreateurs/positiongoodies,extra}|=={extra}|oui)
-#communiquant_content_extra .goodies h2:first-child { margin-top: 0; }
-]
-]
-h2 { font-size: 2rem; }
-
-.cadreinfo { margin: 0; width: 100%; clear: both; padding: 0;}
-/*.formulaire_spip { margin-bottom: 0; }*/
-
-.dessousbreves { float:left; width:[(#GET{Largeurcontent_central}|mult{2}|div{6})]px;padding: 0 8px;}
-.dessousbreves.oddbreves {clear:left;}
-
-#homecadre_outils { clear:both; }
-#homecadre_outils ul { padding:0; }
-[(#REM) Pour justifier les pictos des outils horizontalement : cf http://stackoverflow.com/questions/10020046/full-justify-for-li-elements
-Voir aussi : http://portfolio.planetjon.ca/2014/04/19/css-recipes-justified-horizontal-menus/ ]
-#communiquant_content_central #homecadre_outils ul, .goodies.underedito ul { text-align: justify; }
-#communiquant_content_central #homecadre_outils ul::after, .goodies.underedito ul::after {width: 100%; display: inline-block; content: "."; visibility: hidden}
-#homecadre_outils li, .goodies.underedito li { display: inline-block; text-align:center; vertical-align: top; }
-#homecadre_outils img, .goodies.underedito img { padding: 0 10px; }
-
-.goody { clear: left; margin-bottom: 8px; min-height: 48px; }
-.goody_ligne { margin-left: #CONFIG{soyezcreateurs_layout/largeurlogogoody,48}px; }
-.goodytitre, .goodiedate { padding-left: 8px; }
-#content img.logo_goody { float: left; margin-left: -#CONFIG{soyezcreateurs_layout/largeurlogogoody,48}px; padding: 0; }
-#content img.spip_logos { padding: 0; }
-
-.ZoomSur { clear: left; padding: 0 8px; margin-bottom: 8px; min-height: [(#GET{Largeurcontent_central}|div{6}|plus{8})]px; }
-.ZoomSur_ligne { margin-left: [(#GET{Largeurcontent_central}|div{6}|plus{8})]px; padding-bottom: .5em; }
-#content img.logo_zoomsur { float: left; margin-left: -[(#GET{Largeurcontent_central}|div{6}|plus{8})]px; padding: 4px 8px 4px 0; }
-
-/*************** HOME SPECIAL FEATURE */
-[(#CONFIG{soyezcreateurs/largeur_slideshow_communiquant,etroite}|=={large}|oui)
-#SET{ModeSlideShow,large}
-#SET{LargeurSlideShow,#GET{LargeurContaineur}
-]
-[(#CONFIG{soyezcreateurs/largeur_slideshow_communiquant,etroite}|=={etroite}|oui)
-#SET{ModeSlideShow,''}
-#SET{LargeurSlideShow,#GET{Largeurcontent_central}
-]
-#homeSpecialFeature img { padding:0; background-color: transparent; }
-#homeSpecialFeature {[ background: url('(#CHEMIN{images/hsf_over.png}|image_reduire{[(#GET{LargeurSlideShow})],0}|extraire_attribut{src})') top left no-repeat; ]position: relative; margin: 0 0 10px 0; width: #GET{LargeurSlideShow}px; padding-top: 10px; [min-height: (#CHEMIN{images/hsf#GET{ModeSlideShow}.png}|image_reduire{[(#GET{LargeurSlideShow})],0}|hauteur)px;] height: auto; }
-#homeSpecialFeature h2 { margin: 0; }
-.hasJS #homeSpecialFeature .hSFItem { margin: 0 0 10px 10px; width: 209px; }
-#homeSpecialFeature .hSFItem .hSFDecoImg { display: block; }
-.hasJS #homeSpecialFeature .hSFItem .hSFDecoImg { position: absolute; top: 0; left: 0; z-index: 0; }
-#homeSpecialFeature .postListItem { padding: 10px 0 0 32px; }
-.hasJS #homeSpecialFeature .postListItem { padding: 7px; margin: 0; min-height: 36px; height: auto; position: relative; z-index: 1; }
-#homeSpecialFeature .postListItem .postListItemDate { position: relative; padding-bottom: 5px; z-index: 1; font-size: 1em; font-weight: bold; color: #CCCCCC; }
-#homeSpecialFeature .activehSFItem .postListItem .postListItemDate { color: #FFFFFF; }
-#homeSpecialFeature .postListItem .postListItemDate span { color: #999999; }
-#homeSpecialFeature .activehSFItem .postListItem .postListItemDate span { color: #999999; }
-#homeSpecialFeature .postListItem .postListItemTitle { position: relative; z-index: 1; font-size: 1.45em; font-weight: normal; border: none; }
-#homeSpecialFeature .postListItem .postListItemTitle a { color: #999999; }
-#homeSpecialFeature .activehSFItem .postListItem .postListItemTitle a, #homeSpecialFeature .postListItem .postListItemTitle a:hover { color: #fff; }
-#homeSpecialFeature .hSFItem .hSFDecoSpan { display: block; background: #000000; position: absolute; top: 0; left: 0; z-index: 0; }
-#homeSpecialFeature ul { list-style-type: none; list-style-image: none; }
-
-/*#content .formulaire_spip label { color: inherit; float: inherit; margin: inherit; text-align: inherit; width: inherit; }
-#content h2, .h2 { margin-top: 0; }
-#content .formulaire_spip input.text, #content .formulaire_spip textarea, #content .formulaire_spip select, #content .formulaire_spip div.choix, #content .formulaire_spip p.explication, #content .formulaire_spip em.attention, #content .formulaire_spip li p { display: inherit; margin-left: inherit; width: 97%; }
-*/
-
-#content .formulaire_spip { border: none; -webkit-border-radius: 0; -moz-border-radius: 0; border-radius: 0; }
-.formulaire_newsletter_subscribe input.submit { width: auto; }
-
-.loginlogout ul { padding-left: 0; }
-.loginlogout li { list-style-type: none; }
-
-.Edito { font-size: 160%; padding: 0 8px; margin-bottom: 2em; }
-.Edito.ZoomSur { font-size: inherit; }
-.Edito .suite { text-align: right; }
-#content .VideoALaUne img { padding: 0; max-width: 100%; }
-
-@media (max-width: [(#GET{LargeurContaineur})]px) {
- #communiquant_content_central {
-	float: none;
-	width: 100%;
- }
- #homeSpecialFeature {
-	width: 100%;
- }
- .Edito { width: 100%; }
- #homeDessousBreves {
-	width: 66%;
- }
- .dessousbreves {
-	padding:0 1%;
-	width:48%;
- }
- #homequoideneuf, #homeagenda {
-	padding:0;
-	width:34%;
- }
- .goodies {
-	float: left;
-	clear: left;
-	width: auto;	
-}
- #communiquant_content_extra {
-	float: none;
-	width: inherit;
- }
-}
-
-@media (max-width: 640px) {
- #homeDessousBreves, .dessousbreves, #homequoideneuf, #homeagenda {
-	width: inherit;
-	float: none;
- }
- #homeSpecialFeature {
-	min-height: initial;
- }
-}
-
-[(#CHEMIN{images/stylescommuniquant_perso.css}|?{'/* Surcharge eventuelle */'})
-[(#INCLURE{#CHEMIN{images/stylescommuniquant_perso.css}|url_absolue_css}|compacte{css})]
-]
+[(#REM)
+
+	Note: l'entete "Vary:" sert a repousser l'entete par
+	defaut "Vary: Cookie,Accept-Encoding", qui est (un peu)
+	genant en cas de "rotation du cookie de session" apres
+	un changement d'IP (effet de clignotement).
+
+	ATTENTION: il faut absolument le charset sinon Firefox croit que
+	c'est du text/html !
+	<style>
+]
+#CACHE{24*3600,cache-client}
+#HTTP_HEADER{Content-Type: text/css; charset=iso-8859-15}
+#HTTP_HEADER{Vary: Accept-Encoding}
+
+#SET{c_vignettes_bk,(#CONFIG{soyezcreateurs_couleurs/vignettes_bk,#ffffff})}
+#SET{c_navigation,(#CONFIG{soyezcreateurs_couleurs/navigation,#017ca5})}
+	#SET{c_navigation_bk,(#CONFIG{soyezcreateurs_couleurs/navigation_bk,#ffffff})}
+#SET{c_menuhaut,(#CONFIG{soyezcreateurs_couleurs/menuhaut,#017ca5})}
+	#SET{c_menuhaut_bk,(#CONFIG{soyezcreateurs_couleurs/menuhaut_bk,#ffffff})}
+#SET{c_extra,(#CONFIG{soyezcreateurs_couleurs/extra,#017ca5})}
+	#SET{c_extra_bk,(#CONFIG{soyezcreateurs_couleurs/extra_bk,#ffffff})}
+
+#SET{LargeurContaineur,(#CONFIG{soyezcreateurs_layout/largeurconteneur,960})}
+#SET{LargeurMenuGauche,(#CONFIG{soyezcreateurs_layout/largeurmenugauche,180})}
+#SET{LargeurMenuDroit,(#CONFIG{soyezcreateurs_layout/largeurmenudroit,180})}
+#SET{Largeurcontent_central,(#GET{LargeurContaineur}|moins{#GET{LargeurMenuGauche}}|moins{#GET{LargeurMenuDroit}})}
+#SET{Largeurcontent_extra,(#GET{LargeurContaineur}|moins{#GET{Largeurcontent_central}})}
+
+div#content { width:#GET{LargeurContaineur}px; margin-left: 0; margin-right:0; }
+#communiquant_content { clear: both; padding-bottom: 10px; }
+#communiquant_content_central {
+	width:#GET{Largeurcontent_central}px;
+	float:left;
+}
+#maincontent { display: block; }
+
+@media screen and (min-width: [(#GET{LargeurContaineur})]px) {
+	#shadow {
+		backdrop-filter: blur(10px);
+	}
+}
+#miettesdepain, .boutonstexte {display: none; }
+
+
+#header #citations {
+	clear:right;
+	float:right;
+	margin: 8px 0;
+}
+
+#letexte { padding: 0 }
+
+#homeSecondblock, #homecadre_outils, .forum_sommaire, #communiquant_actus, #communiquant_content_extra { font-size: #CONFIG{soyezcreateurs_couleurs/fontsizecontenu,1.3}em; }
+#communiquant_actus, .forum_sommaire { padding: 0 8px; }
+#homeSecondblock ul, #communiquant_actus ul, .forum_sommaire ul, .syndic ul {
+  margin-top: 6px;
+  padding-left: 20px;
+}
+#homeagenda ul { padding-left: 0; }
+#homeSecondblock li, .forum_sommaire li, .syndic li { list-style-type: disc; }
+
+#communiquant_content_extra {
+	float:left;
+	width:#GET{Largeurcontent_extra}px;
+	padding: 0 8px;
+}
+#communiquant_content_extra img { padding: 0; }
+
+#homeDessousBreves {
+	clear: left;
+	float:left;
+	width:[(#GET{Largeurcontent_central}|mult{4}|div{6})]px;
+}
+
+#homeDessousBreves ul.block { margin: 0; padding: 0; }
+.dessousbreves_ligne { margin-left: 136px; padding-bottom: .5em; }
+#content .dessousbreves_ligne img.logo { float: left; margin-left: -136px; padding: 4px 8px 4px 0; }
+#homeSecondblock .block li { list-style-type: none; }
+
+.listeafficherimages { overflow: hidden; }
+
+#homequoideneuf, #homeagenda {
+	clear: right;
+	float:right;
+	width:[(#GET{Largeurcontent_central}|mult{2}|div{6})]px;
+	padding: 0 8px;
+}
+#communiquant_content_central .VideoALaUne, #communiquant_content_central .goodies, #communiquant_content_central .syndic {
+	clear: both;
+	padding: 0 8px;
+}
+/*************** VIDEO A LA UNE */
+.video-container {
+	position: relative;
+	padding-bottom: 56.25%;
+	padding-top: 30px;
+	height: 0;
+	overflow: hidden;
+}
+.video-container iframe, .video-container object, .video-container embed {
+	position: absolute;
+	top: 0;
+	left: 0;
+	width: 100%;
+	height: 100%;
+}
+
+#communiquant_content_extra .goodies, #communiquant_content_extra #homequoideneuf {
+	clear: left;
+	float: none;
+	width: 100%;
+	padding: 0;
+}
+
+#communiquant_content div.goodies.underedito { font-size: 1.3em; padding: 0 8px; }
+
+[(#CONFIG{soyezcreateurs/largeur_slideshow_communiquant,etroite}|=={etroite}|oui)
+[(#CONFIG{soyezcreateurs/positiongoodies,extra}|=={extra}|oui)
+#communiquant_content_extra .goodies h2:first-child { margin-top: 0; }
+]
+]
+h2 { font-size: 2rem; }
+
+.cadreinfo { margin: 0; width: 100%; clear: both; padding: 0;}
+/*.formulaire_spip { margin-bottom: 0; }*/
+
+.dessousbreves { float:left; width:[(#GET{Largeurcontent_central}|mult{2}|div{6})]px;padding: 0 8px;}
+.dessousbreves.oddbreves {clear:left;}
+
+#homecadre_outils { clear:both; }
+#homecadre_outils ul { padding:0; }
+[(#REM) Pour justifier les pictos des outils horizontalement : cf http://stackoverflow.com/questions/10020046/full-justify-for-li-elements
+Voir aussi : http://portfolio.planetjon.ca/2014/04/19/css-recipes-justified-horizontal-menus/ ]
+#communiquant_content_central #homecadre_outils ul, .goodies.underedito ul { text-align: justify; }
+#communiquant_content_central #homecadre_outils ul::after, .goodies.underedito ul::after {width: 100%; display: inline-block; content: "."; visibility: hidden}
+#homecadre_outils li, .goodies.underedito li { display: inline-block; text-align:center; vertical-align: top; }
+#homecadre_outils img, .goodies.underedito img { padding: 0 10px; }
+
+.goody { clear: left; margin-bottom: 8px; min-height: 48px; }
+.goody_ligne { margin-left: #CONFIG{soyezcreateurs_layout/largeurlogogoody,48}px; }
+.goodytitre, .goodiedate { padding-left: 8px; }
+#content img.logo_goody { float: left; margin-left: -#CONFIG{soyezcreateurs_layout/largeurlogogoody,48}px; padding: 0; }
+#content img.spip_logos { padding: 0; }
+
+.ZoomSur { clear: left; padding: 0 8px; margin-bottom: 8px; min-height: [(#GET{Largeurcontent_central}|div{6}|plus{8})]px; }
+.ZoomSur_ligne { margin-left: [(#GET{Largeurcontent_central}|div{6}|plus{8})]px; padding-bottom: .5em; }
+#content img.logo_zoomsur { float: left; margin-left: -[(#GET{Largeurcontent_central}|div{6}|plus{8})]px; padding: 4px 8px 4px 0; }
+
+/*************** HOME SPECIAL FEATURE */
+[(#CONFIG{soyezcreateurs/largeur_slideshow_communiquant,etroite}|=={large}|oui)
+#SET{ModeSlideShow,large}
+#SET{LargeurSlideShow,#GET{LargeurContaineur}
+]
+[(#CONFIG{soyezcreateurs/largeur_slideshow_communiquant,etroite}|=={etroite}|oui)
+#SET{ModeSlideShow,''}
+#SET{LargeurSlideShow,#GET{Largeurcontent_central}
+]
+#homeSpecialFeature img { padding:0; background-color: transparent; }
+#homeSpecialFeature {[ background: url('(#CHEMIN{images/hsf_over.png}|image_reduire{[(#GET{LargeurSlideShow})],0}|extraire_attribut{src})') top left no-repeat; ]position: relative; margin: 0 0 10px 0; width: #GET{LargeurSlideShow}px; padding-top: 10px; [min-height: (#CHEMIN{images/hsf#GET{ModeSlideShow}.png}|image_reduire{[(#GET{LargeurSlideShow})],0}|hauteur)px;] height: auto; }
+#homeSpecialFeature h2 { margin: 0; }
+.hasJS #homeSpecialFeature .hSFItem { margin: 0 0 10px 10px; width: 209px; }
+#homeSpecialFeature .hSFItem .hSFDecoImg { display: block; }
+.hasJS #homeSpecialFeature .hSFItem .hSFDecoImg { position: absolute; top: 0; left: 0; z-index: 0; }
+#homeSpecialFeature .postListItem { padding: 10px 0 0 32px; }
+.hasJS #homeSpecialFeature .postListItem { padding: 7px; margin: 0; min-height: 36px; height: auto; position: relative; z-index: 1; }
+#homeSpecialFeature .postListItem .postListItemDate { position: relative; padding-bottom: 5px; z-index: 1; font-size: 1em; font-weight: bold; color: #CCCCCC; }
+#homeSpecialFeature .activehSFItem .postListItem .postListItemDate { color: #FFFFFF; }
+#homeSpecialFeature .postListItem .postListItemDate span { color: #999999; }
+#homeSpecialFeature .activehSFItem .postListItem .postListItemDate span { color: #999999; }
+#homeSpecialFeature .postListItem .postListItemTitle { position: relative; z-index: 1; font-size: 1.45em; font-weight: normal; border: none; }
+#homeSpecialFeature .postListItem .postListItemTitle a { color: #999999; }
+#homeSpecialFeature .activehSFItem .postListItem .postListItemTitle a, #homeSpecialFeature .postListItem .postListItemTitle a:hover { color: #fff; }
+#homeSpecialFeature .hSFItem .hSFDecoSpan { display: block; background: #000000; position: absolute; top: 0; left: 0; z-index: 0; }
+#homeSpecialFeature ul { list-style-type: none; list-style-image: none; }
+
+/*#content .formulaire_spip label { color: inherit; float: inherit; margin: inherit; text-align: inherit; width: inherit; }
+#content h2, .h2 { margin-top: 0; }
+#content .formulaire_spip input.text, #content .formulaire_spip textarea, #content .formulaire_spip select, #content .formulaire_spip div.choix, #content .formulaire_spip p.explication, #content .formulaire_spip em.attention, #content .formulaire_spip li p { display: inherit; margin-left: inherit; width: 97%; }
+*/
+
+#content .formulaire_spip { border: none; -webkit-border-radius: 0; -moz-border-radius: 0; border-radius: 0; }
+.formulaire_newsletter_subscribe input.submit { width: auto; }
+
+.loginlogout ul { padding-left: 0; }
+.loginlogout li { list-style-type: none; }
+
+.Edito { font-size: 160%; padding: 0 8px; margin-bottom: 2em; }
+.Edito.ZoomSur { font-size: inherit; }
+.Edito .suite { text-align: right; }
+#content .VideoALaUne img { padding: 0; max-width: 100%; }
+
+@media (max-width: [(#GET{LargeurContaineur})]px) {
+ #communiquant_content_central {
+	float: none;
+	width: 100%;
+ }
+ #homeSpecialFeature {
+	width: 100%;
+ }
+ .Edito { width: 100%; }
+ #homeDessousBreves {
+	width: 66%;
+ }
+ .dessousbreves {
+	padding:0 1%;
+	width:48%;
+ }
+ #homequoideneuf, #homeagenda {
+	padding:0;
+	width:34%;
+ }
+ .goodies {
+	float: left;
+	clear: left;
+	width: auto;
+}
+ #communiquant_content_extra {
+	float: none;
+	width: inherit;
+ }
+}
+
+@media (max-width: 640px) {
+ #homeDessousBreves, .dessousbreves, #homequoideneuf, #homeagenda {
+	width: inherit;
+	float: none;
+ }
+ #homeSpecialFeature {
+	min-height: initial;
+ }
+}
+
+[(#CHEMIN{images/stylescommuniquant_perso.css}|?{'/* Surcharge eventuelle */'})
+[(#INCLURE{#CHEMIN{images/stylescommuniquant_perso.css}|url_absolue_css}|compacte{css})]
+]
diff --git a/stylesportail.css.html b/stylesportail.css.html
index 636269f0b7df9c7a86b099b2496ffb7cef354d76..f90b1774bf8a6a974aa803fdedfff756b503df72 100644
--- a/stylesportail.css.html
+++ b/stylesportail.css.html
@@ -1,131 +1,132 @@
-[(#REM)
-
-	Note: l'entete "Vary:" sert a repousser l'entete par
-	defaut "Vary: Cookie,Accept-Encoding", qui est (un peu)
-	genant en cas de "rotation du cookie de session" apres
-	un changement d'IP (effet de clignotement).
-
-	ATTENTION: il faut absolument le charset sinon Firefox croit que
-	c'est du text/html !
-	<style>
-]
-#CACHE{24*3600,cache-client}
-#HTTP_HEADER{Content-Type: text/css; charset=iso-8859-15}
-#HTTP_HEADER{Vary: Accept-Encoding}
-
-#SET{c_vignettes_bk,(#CONFIG{soyezcreateurs_couleurs/vignettes_bk,#ffffff})}
-#SET{c_navigation,(#CONFIG{soyezcreateurs_couleurs/navigation,#017ca5})}
-	#SET{c_navigation_bk,(#CONFIG{soyezcreateurs_couleurs/navigation_bk,#ffffff})}
-#SET{c_menuhaut,(#CONFIG{soyezcreateurs_couleurs/menuhaut,#017ca5})}
-	#SET{c_menuhaut_bk,(#CONFIG{soyezcreateurs_couleurs/menuhaut_bk,#ffffff})}
-#SET{c_extra,(#CONFIG{soyezcreateurs_couleurs/extra,#017ca5})}
-	#SET{c_extra_bk,(#CONFIG{soyezcreateurs_couleurs/extra_bk,#ffffff})}
-
-#SET{LargeurContaineur,(#CONFIG{soyezcreateurs_layout/largeurconteneur,960})}
-#SET{LargeurMenuGauche,(#CONFIG{soyezcreateurs_layout/largeurmenugauche,180})}
-#SET{LargeurMenuDroit,(#CONFIG{soyezcreateurs_layout/largeurmenudroit,180})}
-#SET{LargeurMilieu,(#GET{LargeurContaineur}|moins{#GET{LargeurMenuGauche}}|moins{#GET{LargeurMenuDroit}}|div{2})}
-
-div#wrapper { float: left; width: #GET{LargeurContaineur}px; 
-	border-left: #GET{LargeurMenuGauche}px solid #GET{c_navigation_bk}; 
-	border-right: #GET{LargeurMenuDroit}px solid #GET{c_extra_bk};
-	[(#CONFIG{soyezcreateurs_couleurs/transparencenavigation,1}|!={1}|oui)border-left-color: rgba([(#GET{c_navigation_bk}|sc_rgb)], #CONFIG{soyezcreateurs_couleurs/transparencenavigation,1});]
-	[(#CONFIG{soyezcreateurs_couleurs/transparencenavigation,1}|!={1}|oui)border-right-color: rgba([(#GET{c_extra_bk}|sc_rgb)], #CONFIG{soyezcreateurs_couleurs/transparenceextra,1});]
-}
-div#content { margin: 0; width: 100%; }
-#pre-header { position: relative; margin: 0 auto; }
-#contenu { clear: both; margin-top: 0; }
-#gauchedroite { position: relative; clear: both; }
-#droite { position: relative; float: left; padding: 0 20px; width: 50%; }
-#gauche { position: relative; float: left; padding: 0 20px; width: 50%; }
-
-#sommaire_mode_portail #navigation { float: left; margin-left: -#GET{LargeurContaineur}px; background-color: transparent; }
-#sommaire_mode_portail #extra { margin-left: -#GET{LargeurMenuDroit}px; background-color: transparent; }
-
-dl, dd, dt { margin: 0; }
-
-a.vignette { display: block; position: relative; padding: 5px 0 0 0; margin-bottom: 1em; text-align: center;}
-a.vignette img { border: 4px solid #GET{c_vignettes_bk}; }
-
-div.important span.datepublication { float: none; padding: 0; }
-div.important dt a { display: block; }
-div.important dd { margin-bottom: 1em; }
-div.important dl.odd { }
-
-div.zoomsur {padding:0 10px 10px; }
-#content h1.zoomsur { margin-top:2.2em; }
-div.goodies {clear: both; padding-top: 1em; }
-div.goody {padding:0 10px 10px; }
-#content h1 { margin-top: 1em; }
-
-div.encart dt a { color: #2F2C2C; }
-div.encart dd { padding: .2em 0 .5em 0; font-style: italic; }
-
-div.espaceavant ul { padding: 0; margin: 0 15px 0 5px; list-style: none; }
-div.espaceavant ul li a { display: block; padding: .5em; color: #GET{c_navigation}; font-weight: normal; }
-div.espaceavant ul a:hover, div.espaceavant ul a:focus { text-decoration: none; }
-div.cadreinfo { margin-top: 1em; }
-
-span.infos { display: block; padding-top: .5em; font-style: italic; }
-#pagesommaire div.encart span.sinfos { display: block; clear: both; margin: .5em 0 0 0; }
-
-#pagesommaire .slogan p.spip, #pagesommaire .slogan p.spip strong.spip { display: block; margin: 0 0 .3em 0; color: #523d32; font-size: 1.6em; font-style: italic; font-family: "times new roman", serif; font-weight: normal; }
-#pagesommaire .slogan p.spip { margin: 0 0 1.2em 0; color: #4F4F4F; font-size: 1.1em; }
-#pagesommaire #wrapper { padding: 0; }
-#pagesommaire #wrapper div p { padding: .5em 0 0 0; margin: 0; }
-#pagesommaire #content h2 { padding: .6em 1em .6em 25px; margin-left: 0; font-size: 1.2em; font-weight: normal; }
-#pagesommaire #content h2.f { font-weight: bold; }
-#pagesommaire h3 { padding: .4em 0 0 0; margin: 0; font-style: italic; }
-#pagesommaire a.av { display: block; float: left; width: 49%; padding: 0 0 11px 0; margin: 1em 0 0 0; text-align: center; font-weight: normal; font-size: 1.25em; }
-#pagesommaire a.av:hover, #pagesommaire a.av:focus { font-weight: bold; text-decoration: none; }
-
-#content table.agenda caption { width: auto; }
-#content table.agenda { margin-top: 0; }
-#content .miniagenda table.agenda { width: 100%; }
-#content .miniagenda td, #content .miniagenda th { padding: 2px 1px; text-align: center; }
-#content .fond, #content .miniagenda table { padding: .5em 1em 1em 1em; }
-#content .miniagenda .fond { padding: .5em 0 1em 0; }
-#content .fond dl, #content .fond li { clear:right; }
-
-@media (max-width: [(#GET{LargeurContaineur})]px) {
- div#wrapper {
-	border-left-width:0;
-	border-right-width: 0;
-	float: none;
-	width: 100%;
- }
- #gauche {
-	padding-right:2%;
-	width:48%;
- }
- #droite {
-	padding-left:2%;
-	width:48%;
- }
- div#navigation, div#extra  { 
-	text-align: center;
- }
- a.vignette { 
-	display: inline;
- }
- .espaceavant, div.cadreinfo, #citations { 
-	text-align: left;
- }
-}
-
-@media (max-width: 640px) {
- #gauche {
-	float:none;
-	padding-right:0;
-	width:100%;
- }
- #droite {
-	float:none;
-	padding-left:0;
-	width:100%;
- }
-}
-
-[(#CHEMIN{images/stylesportail_perso.css}|?{'/* Surcharge eventuelle */'})
-[(#INCLURE{#CHEMIN{images/stylesportail_perso.css}|url_absolue_css}|compacte{css})]
-]
\ No newline at end of file
+[(#REM)
+
+	Note: l'entete "Vary:" sert a repousser l'entete par
+	defaut "Vary: Cookie,Accept-Encoding", qui est (un peu)
+	genant en cas de "rotation du cookie de session" apres
+	un changement d'IP (effet de clignotement).
+
+	ATTENTION: il faut absolument le charset sinon Firefox croit que
+	c'est du text/html !
+	<style>
+]
+#CACHE{24*3600,cache-client}
+#HTTP_HEADER{Content-Type: text/css; charset=iso-8859-15}
+#HTTP_HEADER{Vary: Accept-Encoding}
+
+#SET{c_vignettes_bk,(#CONFIG{soyezcreateurs_couleurs/vignettes_bk,#ffffff})}
+#SET{c_navigation,(#CONFIG{soyezcreateurs_couleurs/navigation,#017ca5})}
+	#SET{c_navigation_bk,(#CONFIG{soyezcreateurs_couleurs/navigation_bk,#ffffff})}
+#SET{c_menuhaut,(#CONFIG{soyezcreateurs_couleurs/menuhaut,#017ca5})}
+	#SET{c_menuhaut_bk,(#CONFIG{soyezcreateurs_couleurs/menuhaut_bk,#ffffff})}
+#SET{c_extra,(#CONFIG{soyezcreateurs_couleurs/extra,#017ca5})}
+	#SET{c_extra_bk,(#CONFIG{soyezcreateurs_couleurs/extra_bk,#ffffff})}
+
+#SET{LargeurContaineur,(#CONFIG{soyezcreateurs_layout/largeurconteneur,960})}
+#SET{LargeurMenuGauche,(#CONFIG{soyezcreateurs_layout/largeurmenugauche,180})}
+#SET{LargeurMenuDroit,(#CONFIG{soyezcreateurs_layout/largeurmenudroit,180})}
+#SET{LargeurMilieu,(#GET{LargeurContaineur}|moins{#GET{LargeurMenuGauche}}|moins{#GET{LargeurMenuDroit}}|div{2})}
+
+div#content {
+	[(#CONFIG{soyezcreateurs_couleurs/transparencenavigation,1}|!={1}|oui)border-left-color: rgba([(#GET{c_navigation_bk}|sc_rgb)], #CONFIG{soyezcreateurs_couleurs/transparencenavigation,1});]
+	[(#CONFIG{soyezcreateurs_couleurs/transparencenavigation,1}|!={1}|oui)border-right-color: rgba([(#GET{c_extra_bk}|sc_rgb)], #CONFIG{soyezcreateurs_couleurs/transparenceextra,1});]
+}
+div#content { margin: 0; width: 100%; }
+#pre-header { position: relative; margin: 0 auto; }
+#contenu { margin-top: 0; }
+@media screen and (min-width: 768px) {
+	#gauchedroite {
+		display: grid;
+		grid-template-areas:
+			"gauche droite";
+		grid-template-columns: 1fr 1fr;
+		grid-gap: 20px;
+		padding-left: 20px;
+		padding-right: 20px;
+	}
+	#droite {
+		grid-area: droite;
+	}
+	#gauche {
+		grid-area: gauche;
+		display: block;
+	}
+}
+#navigation, #extra { display: block; }
+
+dl, dd, dt { margin: 0; }
+
+a.vignette { display: block; position: relative; padding: 5px 0 0 0; margin-bottom: 1em; text-align: center;}
+a.vignette img { border: 4px solid #GET{c_vignettes_bk}; }
+
+div.important span.datepublication { float: none; padding: 0; }
+div.important dt a { display: block; }
+div.important dd { margin-bottom: 1em; }
+div.important dl.odd { }
+
+div.zoomsur {padding:0 10px 10px; }
+#content h1.zoomsur { margin-top:2.2em; }
+div.goodies {clear: both; padding-top: 1em; }
+div.goody {padding:0 10px 10px; }
+#content h1 { margin-top: 1em; }
+
+div.encart dt a { color: #2F2C2C; }
+div.encart dd { padding: .2em 0 .5em 0; font-style: italic; }
+
+div.espaceavant ul { padding: 0; margin: 0 15px 0 5px; list-style: none; }
+div.espaceavant ul li a { display: block; padding: .5em; color: #GET{c_navigation}; font-weight: normal; }
+div.espaceavant ul a:hover, div.espaceavant ul a:focus { text-decoration: none; }
+div.cadreinfo { margin-top: 1em; }
+
+span.infos { display: block; padding-top: .5em; font-style: italic; }
+#pagesommaire div.encart span.sinfos { display: block; clear: both; margin: .5em 0 0 0; }
+
+#pagesommaire .slogan p.spip, #pagesommaire .slogan p.spip strong.spip { display: block; margin: 0 0 .3em 0; color: #523d32; font-size: 1.6em; font-style: italic; font-family: "times new roman", serif; font-weight: normal; }
+#pagesommaire .slogan p.spip { margin: 0 0 1.2em 0; color: #4F4F4F; font-size: 1.1em; }
+#pagesommaire #content { padding: 0; }
+#pagesommaire #content div p { padding: .5em 0 0 0; margin: 0; }
+#pagesommaire #content h2 { padding: .6em 1em .6em 25px; margin-left: 0; font-size: 1.2em; font-weight: normal; }
+#pagesommaire #content h2.f { font-weight: bold; }
+#pagesommaire h3 { padding: .4em 0 0 0; margin: 0; font-style: italic; }
+#pagesommaire a.av { display: block; float: left; width: 49%; padding: 0 0 11px 0; margin: 1em 0 0 0; text-align: center; font-weight: normal; font-size: 1.25em; }
+#pagesommaire a.av:hover, #pagesommaire a.av:focus { font-weight: bold; text-decoration: none; }
+
+#content table.agenda caption { width: auto; }
+#content table.agenda { margin-top: 0; }
+#content .miniagenda table.agenda { width: 100%; }
+#content .miniagenda td, #content .miniagenda th { padding: 2px 1px; text-align: center; }
+#content .fond, #content .miniagenda table { padding: .5em 1em 1em 1em; }
+#content .miniagenda .fond { padding: .5em 0 1em 0; }
+#content .fond dl, #content .fond li { clear:right; }
+
+@media (max-width: [(#GET{LargeurContaineur})]px) {
+ div#content {
+	border-left-width:0;
+	border-right-width: 0;
+ }
+ div#navigation, div#extra  {
+	text-align: center;
+ }
+ a.vignette {
+	display: inline;
+ }
+ .espaceavant, div.cadreinfo, #citations {
+	text-align: left;
+ }
+}
+
+@media (max-width: 768px) {
+ #gauche {
+	padding-right:0;
+ }
+ #droite {
+	padding-left:0;
+ }
+ #navigation, #extra {
+	display: grid;
+	text-align: center;
+ }
+}
+
+[(#CHEMIN{images/stylesportail_perso.css}|?{'/* Surcharge eventuelle */'})
+[(#INCLURE{#CHEMIN{images/stylesportail_perso.css}|url_absolue_css}|compacte{css})]
+]
diff --git a/stylesportailagence.css.html b/stylesportailagence.css.html
index 771145ad68a23c582c747cb859baae01261710fc..a1c89674f170ffb8534047859017846d95fe4c5a 100644
--- a/stylesportailagence.css.html
+++ b/stylesportailagence.css.html
@@ -1,136 +1,139 @@
-[(#REM)
-
-	Note: l'entete "Vary:" sert a repousser l'entete par
-	defaut "Vary: Cookie,Accept-Encoding", qui est (un peu)
-	genant en cas de "rotation du cookie de session" apres
-	un changement d'IP (effet de clignotement).
-
-	ATTENTION: il faut absolument le charset sinon Firefox croit que
-	c'est du text/html !
-	<style>
-]
-#CACHE{24*3600,cache-client}
-#HTTP_HEADER{Content-Type: text/css; charset=iso-8859-15}
-#HTTP_HEADER{Vary: Accept-Encoding}
-
-#SET{c_vignettes_bk,(#CONFIG{soyezcreateurs_couleurs/vignettes_bk,#ffffff})}
-#SET{c_navigation,(#CONFIG{soyezcreateurs_couleurs/navigation,#017ca5})}
-#SET{c_body_bk,(#CONFIG{soyezcreateurs_couleurs/body_bk,#eceded})}
-#SET{c_logo_bk,(#CONFIG{soyezcreateurs_couleurs/logo_bk,transparent})}
-#SET{c_header,(#CONFIG{soyezcreateurs_couleurs/header,#262626})}
-	#SET{c_header_bk,(#CONFIG{soyezcreateurs_couleurs/header_bk,#ffffff})}
-#SET{c_footer,(#CONFIG{soyezcreateurs_couleurs/footer,#595959})}
-	#SET{c_footer_bk,(#CONFIG{soyezcreateurs_couleurs/footer_bk,#ffffff})}
-#SET{c_navigation,(#CONFIG{soyezcreateurs_couleurs/navigation,#017ca5})}
-	#SET{c_navigation_bk,(#CONFIG{soyezcreateurs_couleurs/navigation_bk,#ffffff})}
-#SET{c_menuhaut,(#CONFIG{soyezcreateurs_couleurs/menuhaut,#017ca5})}
-	#SET{c_menuhaut_bk,(#CONFIG{soyezcreateurs_couleurs/menuhaut_bk,#ffffff})}
-#SET{c_extra,(#CONFIG{soyezcreateurs_couleurs/extra,#017ca5})}
-	#SET{c_extra_bk,(#CONFIG{soyezcreateurs_couleurs/extra_bk,#ffffff})}
-#SET{c_datemajsite,(#CONFIG{soyezcreateurs_couleurs/datemajsite,#595959})}
-	#SET{c_datemajsite_bk,(#CONFIG{soyezcreateurs_couleurs/datemajsite_bk,#ffffff})}
-#SET{c_menu_a,(#CONFIG{soyezcreateurs_couleurs/menu_a,#005e7a})}
-	#SET{c_menu_a_bk,(#CONFIG{soyezcreateurs_couleurs/menu_a_bk,#ffffff})}
-#SET{c_menu_a_hover,(#CONFIG{soyezcreateurs_couleurs/menu_a_hover,#ffffff})}
-	#SET{c_menu_a_hover_bk,(#CONFIG{soyezcreateurs_couleurs/menu_a_hover_bk,#0b7899})}
-#SET{c_menu_a_active,(#CONFIG{soyezcreateurs_couleurs/menu_a_active,#ffffff})}
-	#SET{c_menu_a_active_bk,(#CONFIG{soyezcreateurs_couleurs/menu_a_active_bk,#0b7899})}
-#SET{c_menu_a_strong,(#CONFIG{soyezcreateurs_couleurs/menu_a_strong,#ffffff})}
-	#SET{c_menu_a_strong_bk,(#CONFIG{soyezcreateurs_couleurs/menu_a_strong_bk,#0b7899})}
-
-#SET{c_container,(#CONFIG{soyezcreateurs_couleurs/container,#02265a})}
-	#SET{c_container_bk,(#CONFIG{soyezcreateurs_couleurs/container_bk,#f6f6f6})}
-
-#SET{LargeurContaineur,(#CONFIG{soyezcreateurs_layout/largeurconteneur,960})}
-#SET{LargeurMenuGauche,(#CONFIG{soyezcreateurs_layout/largeurmenugauche,180})}
-#SET{LargeurMenuDroit,(#CONFIG{soyezcreateurs_layout/largeurmenudroit,180})}
-#SET{LargeurMilieu,(#GET{LargeurContaineur}|moins{#GET{LargeurMenuGauche}}|moins{#GET{LargeurMenuDroit}}|div{2})}
-
-
-div#content { width: 100%; }
-#content, #navigation, #extra { padding-bottom:0; margin-bottom:0; }
-#miettesdepain, .boutonstexte {display: none; }
-
-iframe {
-  width: 100%;
-}
-img {
-  display: inline-block;
-  vertical-align: middle;
-  max-width: 100%;
-  height: auto;
-  -ms-interpolation-mode: bicubic;
-}
-select {
-  cursor: pointer;
-}
-.ariaformprop {
-  padding: 0;
-  margin: 0;
-  position: relative;
-  z-index: 99;
-  background-color: white;
-  font-size: 80%;
-}
-.ajaxbloc {
-  height: 100%;
-}
-
-/* L'équipe
-------------- */
-.content-lequipe {
-	display: flex;
-	flex-wrap:wrap;
-	justify-content:space-around;
-}
-.content-lequipe article {
-	max-width: 280px;
-	margin: 1em 1em 2em;
-	text-align: center;
-}
-.content-lequipe figure {
-	display: inline-block;
-}
-.content-lequipe article img {
-	padding: 0!important;
-}
-
-/* Réalisations
-------------- */
-.content-realisations {}
-
-/* Prestations
-------------- */
-.content-prestations {
-	display: flex;
-	flex-wrap:wrap;
-	justify-content:space-around;
-}
-.content-prestations article {
-	max-width: 250px;
-	margin: 1em 1em 2em;
-	text-align: center;
-}
-.content-prestations article img {
-	padding: 0!important;
-}
-
-
-
-[(#PLUGIN{lesscss}|oui)
-	[(#CHEMIN{images/stylesportailagence_perso.less.html}|?{'/* Surcharge eventuelle */'})
-
-		[(#PRODUIRE{fond=images/stylesportailagence_perso.less,format=less}
-				|supprimer_timestamp
-				|appliquer_filtre{less_css}
-				|file_get_contents
-		)
-		#SET{lessdone,1}
-		]
-	]
-]
-[(#GET{lessdone}|non)
-[(#CHEMIN{images/stylesportailagence_perso.css}|?{'/* Surcharge eventuelle */'})
-[(#INCLURE{#CHEMIN{images/stylesportailagence_perso.css}|url_absolue_css}|compacte{css})]
-]
-]
\ No newline at end of file
+[(#REM)
+
+	Note: l'entete "Vary:" sert a repousser l'entete par
+	defaut "Vary: Cookie,Accept-Encoding", qui est (un peu)
+	genant en cas de "rotation du cookie de session" apres
+	un changement d'IP (effet de clignotement).
+
+	ATTENTION: il faut absolument le charset sinon Firefox croit que
+	c'est du text/html !
+	<style>
+]
+#CACHE{24*3600,cache-client}
+#HTTP_HEADER{Content-Type: text/css; charset=iso-8859-15}
+#HTTP_HEADER{Vary: Accept-Encoding}
+
+#SET{c_vignettes_bk,(#CONFIG{soyezcreateurs_couleurs/vignettes_bk,#ffffff})}
+#SET{c_navigation,(#CONFIG{soyezcreateurs_couleurs/navigation,#017ca5})}
+#SET{c_body_bk,(#CONFIG{soyezcreateurs_couleurs/body_bk,#eceded})}
+#SET{c_logo_bk,(#CONFIG{soyezcreateurs_couleurs/logo_bk,transparent})}
+#SET{c_header,(#CONFIG{soyezcreateurs_couleurs/header,#262626})}
+	#SET{c_header_bk,(#CONFIG{soyezcreateurs_couleurs/header_bk,#ffffff})}
+#SET{c_footer,(#CONFIG{soyezcreateurs_couleurs/footer,#595959})}
+	#SET{c_footer_bk,(#CONFIG{soyezcreateurs_couleurs/footer_bk,#ffffff})}
+#SET{c_navigation,(#CONFIG{soyezcreateurs_couleurs/navigation,#017ca5})}
+	#SET{c_navigation_bk,(#CONFIG{soyezcreateurs_couleurs/navigation_bk,#ffffff})}
+#SET{c_menuhaut,(#CONFIG{soyezcreateurs_couleurs/menuhaut,#017ca5})}
+	#SET{c_menuhaut_bk,(#CONFIG{soyezcreateurs_couleurs/menuhaut_bk,#ffffff})}
+#SET{c_extra,(#CONFIG{soyezcreateurs_couleurs/extra,#017ca5})}
+	#SET{c_extra_bk,(#CONFIG{soyezcreateurs_couleurs/extra_bk,#ffffff})}
+#SET{c_datemajsite,(#CONFIG{soyezcreateurs_couleurs/datemajsite,#595959})}
+	#SET{c_datemajsite_bk,(#CONFIG{soyezcreateurs_couleurs/datemajsite_bk,#ffffff})}
+#SET{c_menu_a,(#CONFIG{soyezcreateurs_couleurs/menu_a,#005e7a})}
+	#SET{c_menu_a_bk,(#CONFIG{soyezcreateurs_couleurs/menu_a_bk,#ffffff})}
+#SET{c_menu_a_hover,(#CONFIG{soyezcreateurs_couleurs/menu_a_hover,#ffffff})}
+	#SET{c_menu_a_hover_bk,(#CONFIG{soyezcreateurs_couleurs/menu_a_hover_bk,#0b7899})}
+#SET{c_menu_a_active,(#CONFIG{soyezcreateurs_couleurs/menu_a_active,#ffffff})}
+	#SET{c_menu_a_active_bk,(#CONFIG{soyezcreateurs_couleurs/menu_a_active_bk,#0b7899})}
+#SET{c_menu_a_strong,(#CONFIG{soyezcreateurs_couleurs/menu_a_strong,#ffffff})}
+	#SET{c_menu_a_strong_bk,(#CONFIG{soyezcreateurs_couleurs/menu_a_strong_bk,#0b7899})}
+
+#SET{c_container,(#CONFIG{soyezcreateurs_couleurs/container,#02265a})}
+	#SET{c_container_bk,(#CONFIG{soyezcreateurs_couleurs/container_bk,#f6f6f6})}
+
+#SET{LargeurContaineur,(#CONFIG{soyezcreateurs_layout/largeurconteneur,960})}
+#SET{LargeurMenuGauche,(#CONFIG{soyezcreateurs_layout/largeurmenugauche,180})}
+#SET{LargeurMenuDroit,(#CONFIG{soyezcreateurs_layout/largeurmenudroit,180})}
+#SET{LargeurMilieu,(#GET{LargeurContaineur}|moins{#GET{LargeurMenuGauche}}|moins{#GET{LargeurMenuDroit}}|div{2})}
+
+#maincontent {
+	display: block;
+	margin-top: 0;
+}
+div#content { width: 100%; }
+#content, #navigation, #extra { padding-bottom:0; margin-bottom:0; }
+#miettesdepain, .boutonstexte {display: none; }
+
+iframe {
+  width: 100%;
+}
+img {
+  display: inline-block;
+  vertical-align: middle;
+  max-width: 100%;
+  height: auto;
+  -ms-interpolation-mode: bicubic;
+}
+select {
+  cursor: pointer;
+}
+.ariaformprop {
+  padding: 0;
+  margin: 0;
+  position: relative;
+  z-index: 99;
+  background-color: white;
+  font-size: 80%;
+}
+.ajaxbloc {
+  height: 100%;
+}
+
+/* L'équipe
+------------- */
+.content-lequipe {
+	display: flex;
+	flex-wrap:wrap;
+	justify-content:space-around;
+}
+.content-lequipe article {
+	max-width: 280px;
+	margin: 1em 1em 2em;
+	text-align: center;
+}
+.content-lequipe figure {
+	display: inline-block;
+}
+.content-lequipe article img {
+	padding: 0!important;
+}
+
+/* Réalisations
+------------- */
+.content-realisations {}
+
+/* Prestations
+------------- */
+.content-prestations {
+	display: flex;
+	flex-wrap:wrap;
+	justify-content:space-around;
+}
+.content-prestations article {
+	max-width: 250px;
+	margin: 1em 1em 2em;
+	text-align: center;
+}
+.content-prestations article img {
+	padding: 0!important;
+}
+
+
+
+[(#PLUGIN{lesscss}|oui)
+	[(#CHEMIN{images/stylesportailagence_perso.less.html}|?{'/* Surcharge eventuelle */'})
+
+		[(#PRODUIRE{fond=images/stylesportailagence_perso.less,format=less}
+				|supprimer_timestamp
+				|appliquer_filtre{less_css}
+				|file_get_contents
+		)
+		#SET{lessdone,1}
+		]
+	]
+]
+[(#GET{lessdone}|non)
+[(#CHEMIN{images/stylesportailagence_perso.css}|?{'/* Surcharge eventuelle */'})
+[(#INCLURE{#CHEMIN{images/stylesportailagence_perso.css}|url_absolue_css}|compacte{css})]
+]
+]
diff --git a/stylesportailcognac.css.html b/stylesportailcognac.css.html
index 52aecebe0f420208ca2fb7a94e82cad516b84767..8e84526a48d52275d187aa01db1cb27fb68a85bd 100644
--- a/stylesportailcognac.css.html
+++ b/stylesportailcognac.css.html
@@ -51,7 +51,27 @@
 #SET{LargeurMenuDroit,(#CONFIG{soyezcreateurs_layout/largeurmenudroit,180})}
 #SET{LargeurMilieu,(#GET{LargeurContaineur}|moins{#GET{LargeurMenuGauche}}|moins{#GET{LargeurMenuDroit}}|div{2})}
 
+[(#CONFIG{soyezcreateurs_layout/navigationaccueilcognac,masque}|=={masque}|oui)
+#shadow, #maincontent {
+	display: block;
+}
+#maincontent {
+	margin: 0;
+	padding: 0;
+}
+@media screen and (min-width: [(#GET{LargeurContaineur})]px) {
+	#maincontent {
+		padding: [(#CONFIG{soyezcreateurs_layout/aff_logoaccueil,on}|=={on}|?{3em,0})] 0 3em;
+		backdrop-filter: blur(10px);
+	}
+}
 #miettesdepain, .boutonstexte {display: none; }
+]
+#cognac_content {
+	display: grid;
+	row-gap: 5em;
+	grid-template-columns: minmax(0, 1fr); /* Bug slick : cf https://github.com/kenwheeler/slick/issues/3415 */
+}
 
 div#content { width: 100%; }
 .portailcognac .boutonstexte {
@@ -271,12 +291,12 @@ select {
 #projets .projet:hover,
 #projets .projet:focus  { [background-color: rgba((#GET{c_triadeb}|textebrut|sc_rgb), 0.2);] }
 
-#projets a, #projets .h2 { 
+#projets a, #projets .h2 {
   color: inherit;
   height: 100%;
 }
 
-.portailcognac #content .h2 { 
+.portailcognac #content .h2 {
 	color: inherit;
 	position: relative;
 }
@@ -380,6 +400,9 @@ select {
 .hasJS .slider:not(:first-child) { display:none; }
 .hasJS .slick-initialized .slider:not(:first-child) { display:block; }
 
+.slick-slider.slick-dotted {
+	margin-bottom: 30px;;
+}
 
 .slider-pratique {
   margin: 0 4rem;
@@ -482,26 +505,33 @@ select {
   }
 }
 
-#content .titre-sommaire {
-  margin-top: 4em;
-}
-#content .titre-sommaire:before {
-  content: "";
-  display: block;
-  background-color: #GET{c_titraille};
-  width: 100%;
-  height: 1px;
-}
+
+
 #content .titre-sommaire h1 {
   display: block;
   background-color: #GET{c_titraille_bk};
   max-width: [(#GET{LargeurContaineur}|moins{40})]px;
-  margin: -1.1em auto .5em auto;
+  margin: 0;
   padding: .5em .8em .5em;
   color: #GET{c_titraille};
   font-size: 2rem;
   line-height: 1em;
-  border-left: 1px solid #GET{c_titraille};
+}
+@media screen and (min-width: [(#GET{LargeurContaineur})]px) {
+	#content .titre-sommaire h1 {
+		margin: 0 auto .5em auto;
+		border-left: 1px solid #GET{c_titraille};
+	}
+	#content .titre-sommaire:before {
+		content: "";
+		display: block;
+		background-color: #GET{c_titraille};
+		width: 100%;
+		height: 1px;
+		top: 2.1em;
+		position: relative;
+		z-index: -1;
+	}
 }
 @media screen and (max-width: 1178px) {
    #content .titre-sommaire h1 {
@@ -607,22 +637,10 @@ select {
 	object-fit: cover;
 }
 
-#actualites {
-  margin-top: 7em;
-  margin-bottom: 5em;
-}
-#lesprojets, #goodies2 {
-  margin-top: 0em;
-  margin-bottom: 5em;
-}
 #lesprojets .titre-sommaire {
   display: none;
 }
 
-#pratique {
-  margin-top: 6.5em;
-  margin-bottom: 4em;
-}
 .VideoALaUne figcaption { display: none; }
 .VideoALaUne .spip_documents.spip_documents_center { margin-bottom: 0; }
 .VideoALaUne .spip_documents .oembed {
@@ -631,7 +649,7 @@ select {
   max-width: 100%!important;
   border: none;
 }
-#sommaire_mode_portailcognac header .logo_rubrique { margin-bottom: 3em; }
+
 #liens-diaporama {
   position: absolute;
   top: 100px;
@@ -716,9 +734,7 @@ select {
   display: block;
   clear: both;
 }
-#diaporama {
-	position: relative;
-}
+
 #editotexte {
   max-width: [(#GET{LargeurContaineur}|moins{44})]px;
   margin: 0 auto;
@@ -736,17 +752,25 @@ img.editologo {
   display: block;
 }
 
-
+.center-item {
+	display: flex;
+	justify-content: center;
+}
 
 /* gestion block texte sur slider : CycloShow */
 #cycloshow {
 	position: relative;
-	[(#CONFIG{soyezcreateurs/variante_bloccycloshow,contenu}|=={contenu}|oui)
-	max-width: #GET{LargeurContaineur}px;
-	]
-	width: 100%;
-    margin: 0 auto 7em auto;
+	[(#CONFIG{soyezcreateurs/variante_bloccycloshow,contenu}|=={contenu}|?{
+	width: #GET{LargeurContaineur}px;,100%;})]
+	margin: 0 auto;
 }
+@media only screen and (max-width:[(#GET{LargeurContaineur})]px) {
+	#cycloshow {
+		width: 100%;
+	}
+}
+
+
 
 
 .slider-diapo-imgfull {
@@ -775,7 +799,7 @@ img.editologo {
       backdrop-filter: blur(10px);
   }
 }
-#content .slider-diapo-imgfull a { 
+#content .slider-diapo-imgfull a {
   color: #GET{c_triadec};
 }
 #content .slider-content.desc-gauche h2 {
@@ -842,13 +866,10 @@ img.editologo {
   max-width: #GET{LargeurContaineur}px;
   margin: 0 auto;
   padding-left: 20px;
+  padding-right: 20px;
   text-align: center;
 }
 
-#pratique {
-  margin-bottom: 4em;
-}
-
 <BOUCLE_CouleursRubriques(MOTS){type=_CouleurRubrique}{par id_mot}>
 #projets .couleurrubrique#ID_MOT { [background-color: #(#TEXTE|textebrut);][ color: #(#TEXTE|textebrut|couleur_extreme|couleur_inverser);] }
 #projets .couleurrubrique#ID_MOT:hover,
@@ -857,7 +878,7 @@ img.editologo {
 
 [(#PLUGIN{lesscss}|oui)
 	[(#CHEMIN{images/stylesportailcognac_perso.less.html}|?{'/* Surcharge eventuelle */'})
-	
+
 		[(#PRODUIRE{fond=images/stylesportailcognac_perso.less,format=less}
 				|supprimer_timestamp
 				|appliquer_filtre{less_css}
@@ -871,4 +892,4 @@ img.editologo {
 [(#CHEMIN{images/stylesportailcognac_perso.css}|?{'/* Surcharge eventuelle */'})
 [(#INCLURE{#CHEMIN{images/stylesportailcognac_perso.css}|url_absolue_css}|compacte{css})]
 ]
-]
\ No newline at end of file
+]
diff --git a/stylessoyezcreateurs.css.html b/stylessoyezcreateurs.css.html
index 0a21b0716784dc76e6fc95962bbb7593a00fbe91..495c48eab6c25cdba248e4b0ff81ab6353835b20 100644
--- a/stylessoyezcreateurs.css.html
+++ b/stylessoyezcreateurs.css.html
@@ -705,7 +705,6 @@ a#logo { display: block; clear: right; margin-left: 80px; }
 	[(#CONFIG{soyezcreateurs_couleurs/transparencecontent,1}|!={1}|oui)background-color: rgba([(#GET{c_container_bk}|sc_rgb)], #CONFIG{soyezcreateurs_couleurs/transparencecontent,1});
 	backdrop-filter: blur(10px);]
 	color: #GET{c_container};
-	backdrop-filter: blur(10px);
 }
 #miettesdepain {
 	background-color: #GET{c_fildariane_bk};[(#CONFIG{soyezcreateurs_couleurs/transparencefildariane,1}|!={1}|oui)background-color: rgba([(#GET{c_fildariane_bk}|sc_rgb)], #CONFIG{soyezcreateurs_couleurs/transparencefildariane,1});
@@ -807,7 +806,7 @@ img.menu_plus, #menu img.menu_minus {
 }
 #extra ul ul li { padding: 0; padding-right:0; padding-left:10px; margin: 0; }
 #extra ul ul li a { overflow: hidden; padding: 0; padding-right:0; padding-left:15px; margin: 1px 0 0; }
-.rightmenu li a { display: block; padding: 5px 0; padding-right:0; padding-left:15px; margin: 3px 0; background: #GET{c_menu_a_bk}; color: #GET{c_menu_a}; font-weight: bold; text-decoration: none; }
+.rightmenu li a { display: block; padding: 5px 0; padding-right:0; margin: 3px 15px; background: #GET{c_menu_a_bk}; color: #GET{c_menu_a}; font-weight: bold; text-decoration: none; }
 .rightmenu li a:link { }
 .rightmenu li a:visited { }
 .rightmenu li a:hover, .rightmenu li a:focus { background: #GET{c_menu_a_hover_bk}; color: #GET{c_menu_a_hover}; }
@@ -927,7 +926,7 @@ img.menu_plus, #menu img.menu_minus {
 #content .timeline-me-picto img { padding: 0; display: inline; vertical-align: unset; }
 #content img.smiley { padding: 0; }
 #content img.fullwidth { margin:0; padding: 0; }
-#contenu h1 { clear: both; padding-left: 1.5rem; padding-right: 1.5rem; background-color: #GET{c_titraille_bk}; color: #GET{c_titraille};
+#maincontent h1 { clear: both; padding-left: 1.5rem; padding-right: 1.5rem; background-color: #GET{c_titraille_bk}; color: #GET{c_titraille};
 	[(#GET{c_titraille_bk}|!={transparent}|oui|et{[(#GET{d_titraille_degrade}|non)]})
 	background: #GET{c_titraille_bk}[ url((#CHEMIN{images/fond_degrade_fonce_en_bas4.png}|image_sepia{[(#GET{c_titraille_bk})]}|image_aplatir{jpg}|extraire_attribut{src}|strval|embarque_fichier)) repeat-x top];]
 	font-family: #GET{f_content}; font-weight: bold; border-bottom: 4px solid [#(#GET{c_titraille_bk}|couleur_foncerluminosite)];
@@ -1012,7 +1011,8 @@ h6 {
 /* fin base typo de foundation */
 
 #content h2, .h2 { clear: left; color: #GET{c_titraille_ssniveaux}; border-bottom: 2px solid [(#GET{c_titraille_ssniveaux_bk})]; font-family: #GET{f_content}; font-weight: bold; }
-#content h2, #content h3, #content h4, #content h5, #content h6  { margin-top: 3em; }
+#content h2, #content h3, #content h4, #content h5, #content h6  { margin-top: 1.5em; }
+#content h2:first-child  { margin-top: 0em; }
 #content h2 a:link, #content h2 a:visited { color: [#(#GET{c_titraille_ssniveaux}|couleur_inverserluminosite{5,true})]; }
 #content h3, .h3, #content h4, .h4, #content h5, .h5, #content h6, .h6 { clear: left; padding-left: .25em; border-left: 2px solid [(#GET{c_titraille_ssniveaux_bk})]; color: #GET{c_titraille_ssniveaux}; font-family: #GET{f_content}; font-weight: bold; text-align: left; }
 #content h4, .h4 { border-left-color: [(#GET{c_titraille_ssniveaux_bk})]; clear: left; }
@@ -1268,9 +1268,21 @@ ul.alaune li { list-style-image: url([(#CHEMIN{images/star.png}|embarque_fichier
 .alaune dd p { margin-bottom: 0; margin-top: 0; }
 
 /*************** HOME - MODE Actualités */
-.modeactualites #col1 { width:50%; float:left;}
-.modeactualites #col2 { margin-left:5%; width:45%; float:left; }
+@media screen and (min-width: 768px) {
+	#letexte.modeactualites {
+		display: grid;
+		grid-template-areas:
+			"laune laune"
+			"col1 col2";
+		grid-template-columns: 1fr 1fr;
+		grid-gap: 20px;
+	}
+	#letexte.modeactualites #laune { grid-area: laune;}
+	#letexte.modeactualites #col1 { grid-area: col1;}
+	#letexte.modeactualites #col2 { grid-area: col2;}
+}
 #content .modeactualites h2 { margin-left:0; }
+#content .modeactualites .logo_modenews { float: none; padding: 0;}
 
 /*************** HOME - MODE Blog */
 /** Derniers Articles */
@@ -1343,7 +1355,11 @@ dl#listearticlerubrique, dl#listerubriquerubrique { clear:left; padding: 0; marg
 #listearticlerubrique dt .datepublication, #listearticlerubrique dt .liste_auteurs { margin-right: 0; padding-right: 0; background: transparent; font-size: 0.5em; }
 #listearticlerubrique dt .liste_auteurs { color: [#(#GET{c_container}|couleur_inverserluminosite{30}|couleur_saturer{0})]; font-weight: normal; font-style: italic; }
 #listearticlerubrique dt .liste_auteurs:first-letter { text-transform: uppercase; }
-#listearticlerubrique dt.haslogo img.logo,#listerubriquerubrique dt.haslogo img.logo { padding: 0; }
+#listearticlerubrique dt.haslogo img.logo, #listerubriquerubrique dt.haslogo img.logo {
+	padding: 0;
+	width: 100%;
+	height: auto;
+}
 #listearticlerubrique dt .titrerubblog { font-style: italic; filter: contrast(25%); font-size: 0.75em; }
 #listearticlerubrique dd, #listerubriquerubrique dd { padding: 2px .5em 4px 1em; padding-right:.5em; padding-left:1em; margin-left: 2em; margin-bottom: 1.5em; border-left: 2px solid [#(#GET{c_titraille_bk}|couleur_foncerluminosite)]; }
 #content dd p:first-of-type { margin-top: 0.25rem; }
@@ -1436,11 +1452,8 @@ div.spip_poesie div { margin-left: 60px; text-indent: -60px; }
 .caractencadre-spip { color: #CONFIG{soyezcreateurs_couleurs/evidence,#ff6600}; font-weight: bold; background-color: transparent; }
 .caractencadre2-spip { color: #CONFIG{soyezcreateurs_couleurs/evidence2,#000099}; font-weight: bold;  background-color: transparent; }
 
-[(#CONFIG{soyezcreateurs_layout/positioncartouchetitre,contenu}|=={haut}|non)
-.cartouche { position: relative; padding-bottom: 3em; }
-]
 [(#CONFIG{soyezcreateurs_layout/positioncartouchetitre,contenu}|=={haut}|oui)
-#contenu h1 {
+#maincontent h1 {
 	margin-bottom: 0;
 }
 ]
@@ -1518,7 +1531,7 @@ header img.logo_article, header img.logo_rubrique, header img.logo_breve { width
 #content .logo_article, #content .logo_rubrique, #content .logo_breve { float:left; padding-left: 0; padding-right: 0.5em; }
 #content .cartouche .logo_article, #content .cartouche .logo_rubrique, #content .cartouche .logo_breve { padding-bottom: 1em; }
 .logo_agenda { float: left; padding: .2em 0.5em !important; }
-.menu_right_logo { margin: 3px 0; }
+.menu_right_logo { margin: 3px 0; width: 100%; }
 .menu_haut_logo { padding: 0 4px 0 0; margin: 0; vertical-align: middle; }
 .menu_gauche_logo { clear: right; float: right; margin: 0 4px; }
 .cadena { opacity: 0.4; }
@@ -1923,10 +1936,7 @@ background: rgba([(#GET{c_header_bk}|couleur_hexa_to_dec|table_valeur{red,0})],
 
 /*** adding sf-vertical in addition to sf-menu creates a vertical menu ***/
 .sf-vertical, .sf-vertical li {
-	width:	#GET{LargeurMenuGauche}px !important;
-}
-.portailcognac .sf-vertical, .portailcognac .sf-vertical li {
-	width:	calc(#GET{LargeurMenuGauche}px - 2rem)!important;
+	width:	100%;
 }
 .sf-menu li {
 	white-space: normal;
@@ -1950,7 +1960,7 @@ background: rgba([(#GET{c_header_bk}|couleur_hexa_to_dec|table_valeur{red,0})],
 #SET{Largeurmairie_central,(#GET{LargeurContaineur}|moins{#GET{LargeurMenuGauche}}|moins{#GET{LargeurMenuDroit}}|moins{48})}
 #SET{Largeurmairie_video,(#GET{Largeurmairie_central}|div{3})}
 #SET{Largeurmairie_edito,(#GET{Largeurmairie_central}|moins{#GET{Largeurmairie_video}}|moins{24})}
-
+#sommaire_mode_mairie #maincontent { display: block; }
 #sommaire_mode_mairie #content { width: 100%; }
 #mairie_content_left { width: #GET{LargeurMenuGauche}px; float:left; }
 #mairie_content_left select { width: [(#GET{LargeurMenuGauche}|moins{30})]px; }
@@ -1981,8 +1991,8 @@ background: rgba([(#GET{c_header_bk}|couleur_hexa_to_dec|table_valeur{red,0})],
 .spip_documents_player .spip_doc_descriptif { clear: none; float: left; text-align: left; }
 
 /*************** Liste de lecture */
-#contenu .radiobox { width: #CONFIG{soyezcreateurs_layout/maxlargeurimage,720}px; }
-#contenu #scroller_container, #contenu div#now_playing { width: [(#CONFIG{soyezcreateurs_layout/maxlargeurimage,720}|moins{80})]px; line-height: 13px; }
+#maincontent .radiobox { width: #CONFIG{soyezcreateurs_layout/maxlargeurimage,720}px; }
+#maincontent #scroller_container, #maincontent div#now_playing { width: [(#CONFIG{soyezcreateurs_layout/maxlargeurimage,720}|moins{80})]px; line-height: 13px; }
 #content .radiobox img { padding: 0; }
 #content ul.playliste { font-size: 1.2em; }
 
@@ -2064,15 +2074,6 @@ div \[lang\], span \[lang\] { font-style: italic; }
 @media (max-width: [(#GET{LargeurContaineur})]px) {
 
  /* passer tous les éléments de largeur fixe en largeur automatique */
- body, #container, #shadow, #content {
-   width: 100% !important;
-   margin: auto !important;
-   padding: 0 !important;
- }
- #menu {
-   width: auto !important;
- }
- #header { background-image: none !important; min-height: inherit !important; padding-top: 0!important; }
  #mobile-header { display: block; }
  #responsive-menu-button-navigation { float: right; }
  .responsive-menu-button { float: left; }
@@ -2091,15 +2092,6 @@ div \[lang\], span \[lang\] { font-style: italic; }
    white-space: pre-line; /* passage à la ligne spécifique pour les éléments à châsse fixe */
  }
 
- #navigation, #extra, #content {
-   height: auto !important;
- }
-
- #navigation, #extra {
-   width: 50% !important;
-   margin: auto !important;
-   padding: 0 !important;
- }
  #mairie_content_left, #mairie_content_extra {
    width: 100%;
    margin: auto !important;
@@ -2147,7 +2139,7 @@ div \[lang\], span \[lang\] { font-style: italic; }
  }
 
  /* Passer à une seule colonne (à appliquer aux éléments multi-colonnes) */
- #wrapper, #content, #navigation, #navHaute, #extra, #artrecents, #escapelinks  {
+ #content, #content, #navigation, #navHaute, #extra, #artrecents, #escapelinks  {
    float: none !important;
    width: 100% !important
  }
@@ -2192,9 +2184,7 @@ div \[lang\], span \[lang\] { font-style: italic; }
 	vertical-align: middle;
  }
  .modeactualites #col1, .modeactualites #col2 {
-	float:none;
-	margin-left:0;
-	width:100%;
+	display: grid;
  }
  #sommaire_mode_mairie .dessousbreves {
 	width: 100%;
@@ -2230,13 +2220,6 @@ div \[lang\], span \[lang\] { font-style: italic; }
     top: 18px;
     z-index: initial;
 }
-.portailcognac #header #logo a:hover,
-.portailcognac #header #logo a:focus,
-.portailcognac #header #logo a:active {
-  background-color: transparent;
-  display: inline-block;
-  border: none;
-}
 .portailcognac #header .searchfrm label {
   overflow: hidden;
   position: relative;
@@ -2310,9 +2293,9 @@ a\[href\]:focus {
 	transform: translateX(-50%);
 }
 
-.portailcognac #header #logo a:hover,
-.portailcognac #header #logo a:focus,
-.portailcognac #header #logo a:active {
+#header #logo a:hover,
+#header #logo a:focus,
+#header #logo a:active {
   background-color: transparent;
   display: inline-block;
   border: none;
@@ -2521,7 +2504,7 @@ a\[href\]:focus {
   height: auto;
   width: auto;
 }
-.portailcognac #contenu h1,
+.portailcognac #maincontent h1,
 .portailcognac #content h2,
 .portailcognac #content h3,
 .portailcognac #content h4,
@@ -2644,13 +2627,7 @@ a.button.triadeC:focus,
 .portailcognac #container {
   width: 100%;
 }
-.portailcognac #contenu {
-  max-width: #GET{LargeurContaineur}px;
-  margin: 0 auto;[(#CONFIG{soyezcreateurs_layout/logorubriquenavigation,content}|=={header}|oui)
-  [(#CONFIG{soyezcreateurs_layout/logoarticlenavigation,content}|=={header}|oui)[
-  margin-top: -(#CONFIG{soyezcreateurs_layout/decalageverticalcontenu,0})px;]]]
-  position: relative;
-}
+
 @media screen and (max-width: 960px) {
   .portailcognac #content {
     max-width: 100%;
@@ -2666,7 +2643,7 @@ a.button.triadeC:focus,
 .hide {
   display: none!important;
 }
-.portailcognac #header #logo {
+#header #logo {
   position: relative;
   left: auto;
   margin: 0 20px;
@@ -2675,7 +2652,7 @@ a.button.triadeC:focus,
 
 [(#CONFIG{soyezcreateurs/centrerlogo,non}|=={oui}|oui)
 #SET{logosite,#INCLURE{fond=noisettes/logosite_calcul}}
-.portailcognac #header #logo {
+#header #logo {
   position: absolute;
   left: calc(50% - [(#GET{logosite}|largeur|div{2})]px);
   margin: 0;
@@ -2811,6 +2788,7 @@ a.button.triadeC:focus,
 .portailcognac #content {
   padding-left: 1.5rem;
   padding-right: 1.5rem;
+  height: 100%;
 }
 #content,
 #navigation,
@@ -2922,7 +2900,7 @@ display: none;
     display: inline-block;
   }
 ]
-  .portailcognac #header #logo {
+  #header #logo {
 	position: initial;
 	margin: 36px 0 1em 3em;
 	text-align: left;
@@ -2932,7 +2910,7 @@ display: none;
 		margin: 0;
 		clear: both;
 	}
-  .portailcognac #header #logo img {
+  #header #logo img {
     display: inline-block;
 	width:80%;
   }
@@ -2948,9 +2926,8 @@ display: none;
 		min-height: auto!important;
 		height: auto!important;
   }
-  #content, .cartouche,
+  #content,
   .portailcognac #letexte {
-    display: block;
     padding: 0 0.75em;
   }
   #miettesdepain {
@@ -2962,7 +2939,7 @@ display: none;
   #sidr-main {
 	display: block;
   }
-	.portailcognac #contenu {
+	.portailcognac #maincontent {
 	  margin-top: 0;
 	}
 }
@@ -3123,7 +3100,7 @@ margin-bottom: 1em;
 .portailcognac.bodyarticle .cartouche .titrepage h1 {
   display: block;
   width: 100%;
-  margin: 1em 0 0;
+  margin: 0;
   padding: .75rem 0 .75rem 1.3rem;
   font-weight: 400;
 }
@@ -3170,10 +3147,12 @@ margin-bottom: 1em;
 .portailcognac #extra .rss_bottom a {
   margin: 0 .5rem;
 }
-.portailcognac #navigation .navstuff {
+.portailcognac #navigation {
   margin-top: 0;
+  [(#CONFIG{soyezcreateurs_layout/menuderoulant,replie}|!={deroulant}|oui)
   padding-right: 1rem;
   padding-left: 1rem;
+  ]
 }
 .portailcognac #navigation .navstuff .espaceavant {
   margin-top: 0;
@@ -3577,24 +3556,8 @@ dialog {
     align-self: auto;
     }
 
-.masonry {
-  display: flex;
-  flex-flow: row wrap;
-  margin-left: 0;
-  width: calc(100% + 20px);
-}
-
-.masonry-brick {
-  flex: auto;
-  min-width: calc(25% - 20px);
-  margin: 0 20px 20px 0!important; /* Some gutter */
-  float: none!important;
-  height: auto!important;
-}
-
 /* grid-item */
-.grid-item .h2 .svg-icon
- {
+.grid-item .h2 .svg-icon {
   font-size: 2.5rem;
 }
 .grid-item .svg-icon.alaune {
@@ -3603,11 +3566,21 @@ dialog {
 	top: 0.2rem;
 	left: 0.2rem;
 }
-.grid-item-x2 {
-  width: calc(50% - 20px) ;
+@media screen and (min-width:960px) {
+	.grid-item-x2 {
+	  grid-column: span 2;
+	}
+	.grid-item-x3 {
+	  grid-column: span 2;
+	}
 }
-.grid-item-x3 {
-  width: calc(75% - 20px) ;
+@media screen and (min-width:[(#GET{LargeurContaineur})]px) {
+	.grid-item-x2 {
+	  grid-column: span 2;
+	}
+	.grid-item-x3 {
+	  grid-column: span 3;
+	}
 }
 .grid {
   text-align: center;
@@ -3618,8 +3591,6 @@ dialog {
   transition: all .25s ease;
   background-color: #eae9e5;
   color: [(#GET{c_header_bk}|couleur_extreme|=={000000}|?{#GET{c_header_bk},#GET{c_header}})];
-  float: left;
-  margin-right: 20px;
 }
 .grid-item a {
   color: inherit;
@@ -3683,113 +3654,47 @@ dialog {
 }
 #content .grid-item img { padding: 0; }
 .grid-item img {
-  max-width: 100%;
-  width: 100%;
-  max-height: [(#CONFIG{soyezcreateurs/hauteur_quoi2neuf,340})]px;
-  background-color: #GET{c_body_bk};
+	max-width: 100%;
+	width: 100%;
+	background-color: #GET{c_body_bk};
+	height: [(#CONFIG{soyezcreateurs/hauteur_quoi2neuf,340})]px;
+	object-fit: cover;
 }
-.grid-item {
-  margin-bottom: 20px;
+/* [1] The container */
+.img-hover-zoom {
+  /*height: 300px; /* [1.1] Set it as per your need */
+  overflow: hidden; /* [1.2] Hide the overflowing of child elements */
 }
 
-#SET{masonry,308}
-/*
-M : [(#GET{masonry}|mult{4}|moins{100})]
-LC: #GET{LargeurContaineur}
-*/
-.gutter-sizer { width: 20px; }
-[(#GET{masonry}|mult{4}|moins{100}|<={#GET{LargeurContaineur}}|oui)
-/* M <= LC */
-	.grid-sizer, .grid-item {
-	  width: calc(25% - 20px);
-	  min-width: 263px;
-	}
-	.grid-item {
-	  height: calc([(#CONFIG{soyezcreateurs/hauteur_quoi2neuf,340})]px + 65px);
-	}
-	.grid-item-autoheight {
-	  height: auto;
-	}
-	.grid-item-demie {
-	  height: calc(127px + 65px);
-	  margin-bottom: 0;
-	}
-	.grid-item-x2 {
-	  width: calc(50% - 20px);
-	}
-	.grid-item-x3 {
-	  width: calc(75% - 20px);
-	}
-	@media only screen and (max-width: #GET{LargeurContaineur}px) {
-	  .grid-item {
-		height: calc([(#CONFIG{soyezcreateurs/hauteur_quoi2neuf,340})]px + 90px);
-	  }
-	  .grid-item-demie {
-		height: calc(127px + 90px);
-		margin-bottom: 0;
-	  }
-	}
-]
-[(#GET{masonry}|mult{4}|moins{100}|<={#GET{LargeurContaineur}}|non)
-/* M > LC */
-	.grid-sizer, .grid-item {
-	  width: calc(33.333% - 20px);
-	}
-	.grid-item {
-	height: calc([(#CONFIG{soyezcreateurs/hauteur_quoi2neuf,340})]px + 90px);
-	}
-	.grid-item-demie {
-	height: calc(127px + 90px);
-	margin-bottom: 0;
-	}
-	.grid-item-x2 {
-	width: calc(66.666% - 20px);
-	}
-	.grid-item-x3 {
-	width: calc(100% - 20px);
-	}
-]
-@media only screen and (max-width:[(#GET{masonry}|mult{4}|moins{100})]px) {
-  .grid-sizer, .grid-item {
-    width: calc(33.333% - 20px);
-  }
-  .grid-item {
-    height: calc([(#CONFIG{soyezcreateurs/hauteur_quoi2neuf,340})]px + 90px);
-  }
-  .grid-item-demie {
-    height: calc(127px + 90px);
-	margin-bottom: 0;
-  }
-  .grid-item-x2 {
-    width: calc(66.666% - 20px);
-  }
-  .grid-item-x3 {
-    width: calc(100% - 20px);
-  }
+/* [2] Transition property for smooth transformation of images */
+.img-hover-zoom img {
+  transition: transform .5s ease;
 }
-@media only screen and (max-width: [(#GET{masonry}|mult{3}|moins{80})]px) {
-  .grid-sizer, .grid-item {
-    width: calc(50% - 20px);
-  }
-  .grid-item {
-    height: calc([(#CONFIG{soyezcreateurs/hauteur_quoi2neuf,340})]px + 90px);
-  }
-  .grid-item-demie {
-    height: calc(127px + 90px);
-	margin-bottom: 0;
-  }
-  .grid-item-x2 {
-    width: calc(100% - 20px);
-  }
+.img-hover-zoom.lent {
+  transition: transform 1s ease;
 }
-@media only screen and (max-width: [(#GET{masonry}|mult{2}|moins{60})]px) {
-  .grid-sizer, .grid-item {
-    width: calc(100% - 20px);
-  }
-  .grid-item {
-    height: auto;
-  }
+
+/* [3] Finally, transforming the image when container gets hovered */
+a:hover .img-hover-zoom img,
+a:focus .img-hover-zoom img {
+  transform: scale(1.1);
 }
+a:hover .img-hover-zoom.grand,
+a:focus .img-hover-zoom.grand {
+  transform: scale(1.04);
+}
+
+.grid-item {
+  margin-bottom: 20px;
+}
+
+.grid {
+  display: grid;
+  grid-template-columns: repeat(auto-fill, minmax(264px, 1fr));
+  grid-column-gap: 20px;
+  grid-template-rows: masonry;
+}
+
 
 <BOUCLE_CouleursRubriques(MOTS){si #CONFIG{soyezcreateurs_couleurs/cards_apparence,classique}|=={colorees}}{type=_CouleurRubrique}{par id_mot}>
 .grid-item .couleurrubrique#ID_MOT,
diff --git a/telecharger.html b/telecharger.html
index 9096c80bb203a607793989feb2b5494b76d7679a..fab1bb50595a32d03313d7e300fc89dba7d72377 100644
--- a/telecharger.html
+++ b/telecharger.html
@@ -8,11 +8,6 @@
 >
 	<div class="texte">
 	<main id="main">
-[(#CONFIG{soyezcreateurs_layout/positioncartouchetitre,contenu}|=={contenu}|oui)
-	<div class="cartouche">
-		<div class="titrepage"><h1><:medias:info_documents:></h1></div>
-	</div>
-]
 		[(#VAL{masquerdocumentsvus}|in_any{#CONFIG{soyezcreateurs/affichagelistedocuments,#ARRAY{0,enbas}}}|oui)[(#SET{vu,non})]]
 
 			[(#INCLURE{fond=noisettes/telecharger_tableau,env,vu=#GET{vu},ajax})]
@@ -25,4 +20,4 @@
 	{template=Documents}
 	{titretop=#GET{titretop}}
 >
-#FILTRE{mini_html}
\ No newline at end of file
+#FILTRE{mini_html}
diff --git a/transaction_merci.html b/transaction_merci.html
index c1a553204b0be90546432cb2f30a964a1c95aab5..fe38e4aa47218ef9d8be93d6c6aebd349befcc65 100644
--- a/transaction_merci.html
+++ b/transaction_merci.html
@@ -6,11 +6,6 @@
 >
 <div class="texte">
 <main id="main">
-[(#CONFIG{soyezcreateurs_layout/positioncartouchetitre,contenu}|=={contenu}|oui)
-	<div class="cartouche">
-		<div class="titrepage"><h1><:transaction:merci|typo:></h1></div>
-	</div>
-]
 	<div id="letexte">
 		  	<p><:transaction:texte_merci|typo:></p>
 	</div><!-- Fin de #LeTexte -->
@@ -23,4 +18,4 @@
 	{template=Connexion}
 	{titretop=#GET{titretop}}
 >
-#FILTRE{mini_html}
\ No newline at end of file
+#FILTRE{mini_html}
diff --git a/transaction_regret.html b/transaction_regret.html
index ffbf636a3f6a38d3fdeb80ee470e4071414436f7..0188bf555ce178e9afa69d1d75a5274feda0d272 100644
--- a/transaction_regret.html
+++ b/transaction_regret.html
@@ -6,11 +6,6 @@
 >
 <div class="texte">
 <main id="main">
-[(#CONFIG{soyezcreateurs_layout/positioncartouchetitre,contenu}|=={contenu}|oui)
-	<div class="cartouche">
-		<div class="titrepage"><h1><:transaction:regret|typo:></h1></div>
-	</div>
-]
 	<div id="letexte">
 		  	<p><:transaction:texte_regret|typo:></p>
 	</div><!-- Fin de #LeTexte -->
@@ -23,4 +18,4 @@
 	{template=Connexion}
 	{titretop=#GET{titretop}}
 >
-#FILTRE{mini_html}
\ No newline at end of file
+#FILTRE{mini_html}