/*
Saint-Marcellin : styles propres à la section (voies, lieux, histoire, fiches, cartes), chargés par paulv1_scripts()
(inc/theme.php) sur ses pages seulement (paulv1_sm_page(), inc/saint-marcellin.php), après style.css. Ce qui sert aussi au
blog (typographie de body.single, body.page, etc., même quand une règle cite aussi un type du modèle) reste dans style.css.
Une règle placée ici passe après toutes celles de style.css : à égalité de spécificité, elle l'emporte.
*/

/* ─── Listes, archives et cartes ─── */

/* Numéros d'une voie, sous sa carte et sa description (template-parts/saint-marcellin/voie.php), en colonnes */
body.tax-sm_voie .voie-emplacements
{
	margin-bottom: 3.125rem;
	text-align: left;
}

body.tax-sm_voie .voie-emplacements h2
{
	margin-bottom: 1rem;
}

body.tax-sm_voie .voie-emplacements ul
{
	column-gap: 2rem;
	columns: 16rem;
	list-style: none;
}

body.tax-sm_voie .voie-emplacements li
{
	break-inside: avoid;
	margin-bottom: .5rem;
}

body.tax-sm_voie .voie-emplacements a,
body.post-type-archive-organisation .liste-organisations a
{
	color: #4a77b0;
}

body.tax-sm_voie .voie-emplacements a:hover,
body.post-type-archive-organisation .liste-organisations a:hover
{
	color: #d1002a;
}

/* Page d'un lieu (taxonomy-sm_lieu.php) : sous-lieux, puis emplacements voie par voie, en colonnes comme les numéros d'une voie */
body.tax-sm_lieu .liste-emplacements
{
	margin-bottom: 3.125rem;
	text-align: left;
}

body.tax-sm_lieu .liste-emplacements:not(.sous-lieux)
{
	column-gap: 2rem;
	columns: 18rem;
}

body.tax-sm_lieu .sous-lieux ul
{
	column-gap: 2rem;
	columns: 16rem;
}

/* Histoire : sommaire des récits (taxonomy-sm_category-histoire.php), période sous le titre d'un récit, documents de la période,
   récit précédent et suivant (template-parts/saint-marcellin/recit.php), liste et page d'un document */
.sommaire-histoire
{
	list-style: none;
	margin: 0 auto 2.5rem;
	max-width: 52rem;
	text-align: left;
}

.sommaire-histoire li
{
	margin-bottom: 1.75rem;
}

.sommaire-histoire h2
{
	font-size: 1.5rem;
	margin: 0 0 .25rem;
}

.sommaire-histoire a,
.etudes-histoire a,
.liste-documents a,
.documents-periode a,
.navigation-recits a,
.recit-du-document a
{
	color: #4a77b0;
}

.sommaire-histoire a:hover,
.etudes-histoire a:hover,
.liste-documents a:hover,
.documents-periode a:hover,
.navigation-recits a:hover,
.recit-du-document a:hover
{
	color: #d1002a;
}

.periode-recit,
.date-document,
.cote-document,
.resume-recit
{
	color: #767676;
}

.periode-recit
{
	font-style: italic;
	margin: 0 0 1rem;
}

.sommaire-histoire .periode-recit
{
	margin-bottom: .5rem;
}

.etudes-histoire,
.liste-documents
{
	margin: 0 auto 2.5rem;
	max-width: 52rem;
	text-align: left;
}

.etudes-histoire ul,
.liste-documents
{
	list-style: none;
}

.etudes-histoire li,
.liste-documents li
{
	margin-bottom: .75rem;
}

.etudes-histoire .resume-recit,
.liste-documents .cote-document
{
	display: block;
}

.liste-documents .date-document
{
	margin-right: .5rem;
}

.documents-periode
{
	margin: 2.5rem 0 0;
	text-align: left;
}

.documents-periode ul
{
	list-style: none;
}

.documents-periode li
{
	margin-bottom: .5rem;
}

.navigation-recits
{
	display: flex;
	flex-wrap: wrap;
	gap: 1rem 2rem;
	justify-content: space-between;
	margin: 2.5rem 0 1.5rem;
}

.navigation-recits .recit-suivant
{
	margin-left: auto;
	text-align: right;
}

.texte-document
{
	border-left: 3px solid #d0d0d0;
	margin: 1.5rem 0;
	padding-left: 1.25rem;
	text-align: left;
}

.recit-du-document
{
	margin: 1.5rem 0;
}

/* Archive des organisations (archive-organisation.php) : liste en colonnes, comme les numéros d'une voie */
body.post-type-archive-organisation .liste-organisations
{
	column-gap: 2rem;
	columns: 16rem;
	list-style: none;
	margin-bottom: 3.125rem;
	text-align: left;
}

body.post-type-archive-organisation .liste-organisations li
{
	break-inside: avoid;
	margin-bottom: .5rem;
}

/* Archive des personnes (archive-personne.php) : portraits sur cinq colonnes, la dernière rangée alignée à gauche (ordre
   alphabétique), sans hauteur maximale d'image */
body.post-type-archive-personne section.grid
{
	column-gap: 1.25em;
	justify-content: flex-start;
}

body.post-type-archive-personne section.grid article
{
	width: calc((100% - 5em) / 5);
}

body.post-type-archive-personne section.grid article img
{
	max-height: unset;
}

/* Vignettes Saint-Marcellin à titre visible (articles, documents, personnes) : style des vignettes, pas celui des cartes du blog */
body.tax-sm_category.term-articles section.grid article h2,
body.tax-sm_category.term-documents section.grid article h2,
body.post-type-archive-personne section.grid article h2
{
	font-family: 'Montserrat', Arial, sans-serif;
	font-size: 1rem;
	height: 3.2rem;
	line-height: 1.35em;
}

/* Pastille de chaque calque, qui fait du sélecteur une légende (js/emplacements.js) : trait, surface ou épingle, de son style */
.calque-pastille
{
	box-sizing: border-box;
	display: inline-block;
	margin-right: 0.4em;
	vertical-align: middle;
	width: 1.5em;
}

.calque-surface
{
	height: 0.9em;
}

.calque-epingle
{
	text-align: center;
}

.calque-epingle svg
{
	display: inline-block;
	vertical-align: middle;
}

/* Icônes des tours et des portes sur la carte des emplacements (js/emplacements.js) : ombre à la place de celle des épingles */
.repere-rempart svg
{
	display: block;
	filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.45));
}

/* ─── Fiches et pages du modèle ─── */

/* Fiches emplacement, organisation, personne : tableau des occupations (template-parts/saint-marcellin/occupations.php),
   défilant à l'horizontale sur téléphone */
.tableau-occupations
{
	margin: 2rem 0;
	overflow-x: auto;
}

/* Sources d'une fiche emplacement ou personne (paulv1_sm_sources()) : texte plus petit, sous le contenu */
body.single #wrap article > .sources
{
	font-size: .9375rem;
	margin: 2rem 0;
	text-align: left;
}

body.single #wrap article > .sources p,
body.single #wrap article > .sources ul,
body.single #wrap article > .sources ol
{
	font-size: .9375rem;
	margin: .75rem 0;
	text-align: left;
}

body.single #wrap article > .sources li
{
	line-height: 1.5rem;
}

/* Avertissement en bas des pages du modèle Saint-Marcellin (template-parts/saint-marcellin/avertissement.php) */
#wrap .sm-avertissement
{
	border-top: 1px solid #767676;
	clear: both;
	font-family: 'Montserrat', Arial, sans-serif;
	margin: 3rem 0 1rem;
	padding-top: 1rem;
	text-align: left;
}

#wrap .sm-avertissement h2
{
	font-size: 1.25rem;
	margin: 0 0 1rem;
}

#wrap .sm-avertissement p
{
	font-size: .9375rem;
	line-height: 1.5rem;
	margin: 0 0 .75rem;
}

/* Lien en forme de bouton, comme « Charger plus » */
#wrap .sm-avertissement-contact a
{
	border: 1px solid #1b3360;
	color: #1b3360;
	display: inline-block;
	margin-top: .5rem;
	padding: .75rem 1.5rem;
	transition: all 250ms linear;
}

#wrap .sm-avertissement-contact a:hover,
#wrap .sm-avertissement-contact a:focus-visible
{
	border-color: #d1002a;
	color: #d1002a;
}

@media screen
{
	body.tax-sm_voie header > .carte-emplacements,
	body.tax-sm_lieu header > .carte-emplacements
	{
		margin: 1rem 0;
	}
}

/* Pages en pleine largeur (archive des emplacements) : ni largeur maximale ni marges, la carte touche les bords de la
   fenêtre. En hauteur, la carte occupe presque tout l'écran sous l'en-tête, puis vient la liste des emplacements : main,
   #wrap et le conteneur de la carte s'étirent en colonne. La base 0 de la carte remplace la hauteur que l'extension
   lui donne en ligne ; sous 300 px, la page défile plutôt que d'écraser la carte */
body.pleine-largeur
{
	flex-wrap: nowrap;
	min-height: 100vh;
	min-height: 100dvh;
}

/* Barre d'administration : WordPress décale la page de sa hauteur (32 px, 46 px sur mobile) */
body.pleine-largeur.admin-bar
{
	min-height: calc(100vh - 32px);
	min-height: calc(100dvh - 32px);
}

body.pleine-largeur #contenu,
body.pleine-largeur #wrap,
body.pleine-largeur .carte-emplacements
{
	display: flex;
	flex: 1 0 auto;
	flex-direction: column;
}

body.pleine-largeur #wrap
{
	max-width: none;
	padding: 0;
}

body.pleine-largeur .leaflet-map
{
	border-width: 1px 0;
	flex: 1 0 0;
	margin-bottom: 0;
	min-height: 300px;
}

@media screen
{
	body.pleine-largeur .carte-emplacements
	{
		min-height: calc(100vh - 220px);
		min-height: calc(100dvh - 220px);
	}
	body.pleine-largeur #wrap > .liste-emplacements
	{
		box-sizing: border-box;
		column-gap: 2rem;
		columns: 18rem;
		flex: none;
		margin: 0 auto;
		max-width: 1190px;
		padding: 1.5rem .75rem 2rem;
		text-align: left;
		width: 100%;
	}
	.liste-emplacements .voie
	{
		break-inside: avoid;
	}
}

@media screen and (max-width: 779px)
{
	body.pleine-largeur .carte-emplacements
	{
		min-height: calc(100vh - 86px);
		min-height: calc(100dvh - 86px);
	}
}

.liste-emplacements .voie
{
	margin-bottom: 1.25rem;
}

.liste-emplacements h2
{
	font-size: 1.25rem;
	margin: 0 0 .5rem;
}

.liste-emplacements ul
{
	list-style: none;
}

.liste-emplacements li
{
	margin-bottom: .25rem;
}

.liste-emplacements a
{
	color: #4a77b0;
}

.liste-emplacements a:hover
{
	color: #d1002a;
}

@media screen and (min-width: 780px)
{
	body.pleine-largeur #mega-menu-wrap-max_mega_menu_1 #mega-menu-max_mega_menu_1:not(.mega-no-js) li.mega-menu-flyout:not(.mega-toggle-on) > ul.mega-sub-menu,
	body.pleine-largeur #mega-menu-wrap-max_mega_menu_1 #mega-menu-max_mega_menu_1:not(.mega-no-js) li.mega-menu-flyout li.mega-menu-item:not(.mega-toggle-on) > ul.mega-sub-menu
	{
		max-height: 0;
		overflow: hidden;
	}
}

@media screen and (max-width: 782px)
{
	body.pleine-largeur.admin-bar
	{
		min-height: calc(100vh - 46px);
		min-height: calc(100dvh - 46px);
	}
}

/* ─── Rubriques ─── */

p.intro
{
	font-size: 1.6em;
	line-height: 1.4em;
	text-align: justify;
	margin: 1em 0;
}

/* ─── Media Queries ─── */

@media screen and (max-width: 599px)
{
p.intro
	{
		font-size: 1.125rem;
		text-align: left;
	}
}

@media screen and (max-width: 779px)
{
body.post-type-archive-personne section.grid article
	{
		width: 100%;
	}
}

@media screen and (min-width: 780px) and (max-width: 1189px)
{
body.post-type-archive-personne section.grid article
	{
		width: calc((100% - 2.5em) / 3);
	}
}

/* ─── Évoqué dans ─── */

/* Récits, études et documents qui citent la page (template-parts/saint-marcellin/cite-dans.php) : fiches, voies, lieux, récits
   et documents. Liste sans puces, comme celle des documents de la période ; nature et période en gris, entre parenthèses.
   Pas de marge en haut : le h2 a la sienne, comme « Historique » ou « Sources » */
.cite-dans
{
	margin: 0 0 2.5rem;
	text-align: left;
}

.cite-dans ul,
body.single #wrap article .cite-dans ul
{
	list-style: none;
	padding-left: 0;
	text-align: left;
}

.cite-dans li
{
	margin-bottom: .5rem;
}

.cite-dans a
{
	color: #4a77b0;
}

.cite-dans a:hover
{
	color: #d1002a;
}

.cite-dans .nature-cite
{
	color: #767676;
}

/* ─── Cartes : hauteur réservée ─── */

/* L'extension ACF OpenStreetMap ne pose la hauteur de la carte (style="height: 400px", égale à data-height) que par
   JavaScript, une fois la carte créée : jusque-là le conteneur fait 0 px, puis la liste qui le suit descend de 400 px
   (CLS de 0,14 à 0,26 sur les fiches, les voies et les lieux, ramené à moins de 0,005). Cette règle donne la même hauteur dès le premier rendu ;
   le style en ligne de l'extension la remplace ensuite à l'identique. Une règle par valeur de data-height : tous les champs
   de carte du site (emplacements, cartes postales, photos de classe, cartes des voies et des lieux) sont à 400. Si un
   champ ACF ou un appel de l'extension prend une autre hauteur, ajouter sa règle ici. Sans effet sur la carte de la
   commune (body.pleine-largeur : hauteur par flex) ni à l'impression (print.css) */
@media screen
{
	.leaflet-map[data-height="400"]
	{
		height: 400px;
	}
}
