/*
Impression : feuille A4 en portrait, le plus souvent en noir et blanc.
Chargée avec media="print", après style.css (inc/theme.php). Les règles d'écran du thème et des extensions portent
souvent des #id et des classes de body : bien des déclarations ci-dessous sont en !important pour l'emporter.
Les fonds ne s'impriment pas par défaut : rien ne doit en dépendre, sauf sur la carte (print-color-adjust).
*/

/* ─── Page ─── */

@page
{
	size: A4 portrait;
	margin: 15mm 16mm 17mm;
}

html
{
	font-size: 10pt; /* 1rem = 10 pt : les tailles en rem de style.css suivent */
}

body
{
	background: #FFF;
	display: block; /* pas de colonne flex : découpage en pages plus sûr */
	font-size: 10.5pt;
	line-height: 1.5;
}

/* Textes en vrai noir, sans ombre : bleu marine, liens, gris, code vert sur noir, texte blanc des boutons… */
*,
*::before,
*::after
{
	box-shadow: none !important;
	color: #000 !important;
	text-shadow: none !important;
}

/* ─── Ce qui ne sert à rien sur papier ─── */

/* Hors de <main> : en-tête et menu, citation du pied de page, lien d'évitement, recherche, visionneuse des images,
   fenêtres des extensions. Dans <main> : commentaires, navigation, pagination, filtres, sommaire, formulaires,
   boutons, lien de modification, commandes de la carte */
body > :not(main),
#wrap > hr,
#commentaires,
nav,
form,
button,
audio,
.post-edit-link,
li:has(> .post-edit-link),
.load-more-btn,
#ez-toc-container,
.wp-block-buttons,
.wp-block-search,
.leaflet-control-zoom,
.leaflet-control-layers:not(.leaflet-control-layers-expanded),
.leaflet-control-layers-base,
.leaflet-control-layers-separator,
.leaflet-control-layers-selector,
.leaflet-popup-close-button,
.leaflet-map:empty,
h2.geoloc:has(+ .leaflet-map:empty)
{
	display: none !important;
}

/* ─── Mise en page ─── */

#contenu,
#wrap
{
	margin: 0;
	max-width: none;
	padding: 0;
	width: auto;
}

/* Archive des emplacements : ni colonne flex ni hauteur d'écran */
body.pleine-largeur,
body.pleine-largeur #contenu,
body.pleine-largeur #wrap,
body.pleine-largeur .carte-emplacements
{
	display: block;
	min-height: 0;
}

/* ─── Titres ─── */

#wrap h1,
#wrap h2,
#wrap h3,
#wrap h4,
#wrap h5,
#wrap h6
{
	break-after: avoid;
	break-inside: avoid;
	hyphens: manual;
}

#wrap h1
{
	font-size: 22pt;
	line-height: 1.2;
	margin: 0 0 6mm;
}

#wrap h2
{
	font-size: 15pt;
	line-height: 1.25;
	margin: 7mm 0 2.5mm;
}

#wrap h3
{
	font-size: 12.5pt;
	line-height: 1.3;
	margin: 5mm 0 2mm;
}

#wrap h4
{
	font-size: 11pt;
	line-height: 1.3;
	margin: 4mm 0 1.5mm;
}

#wrap h5,
#wrap h6
{
	font-size: 10.5pt;
	line-height: 1.3;
	margin: 3mm 0 1mm;
}

/* Titre de la carte des emplacements, masqué à l'écran */
body.pleine-largeur #wrap > h1.screen-reader-text
{
	clip-path: none !important;
	height: auto !important;
	margin: 0 0 6mm !important;
	overflow: visible !important;
	position: static !important;
	white-space: normal !important;
	width: auto !important;
}

/* ─── Texte ─── */

#wrap p,
#wrap ul,
#wrap ol,
#wrap li,
#wrap dt,
#wrap dd,
#wrap td,
#wrap th
{
	font-size: 10.5pt !important;
	line-height: 1.5 !important;
}

#wrap p
{
	margin: 0 0 3mm !important;
}

#wrap ul,
#wrap ol
{
	margin: 0 0 3mm !important;
	padding-left: 6mm !important;
}

#wrap li
{
	margin: 0 0 1mm !important;
}

#wrap li > ul,
#wrap li > ol
{
	margin: 1mm 0 0 !important;
}

/* Liens : du texte, sans soulignement (l'adresse n'apparaîtrait pas) */
a
{
	text-decoration: none !important;
}

#wrap p.intro,
#wrap .taxonomy-description,
#wrap .taxonomy-description p
{
	font-size: 11pt !important;
	line-height: 1.5 !important;
	margin: 0 0 6mm !important;
}

#wrap blockquote
{
	margin: 0 0 3mm;
	padding: 0 0 0 6mm;
}

#wrap blockquote > p:last-child
{
	margin-bottom: 0 !important;
}

#wrap pre,
#wrap pre code
{
	background: none !important;
	font-size: 8.5pt;
	line-height: 1.4;
	overflow-wrap: anywhere;
	padding: 0 !important;
	white-space: pre-wrap !important;
}

#wrap pre
{
	border: 0.75pt solid #000;
	margin: 0 0 3mm;
	padding: 3mm !important;
}

#wrap hr.wp-block-separator
{
	border: 0;
	border-top: 0.75pt solid #000;
	margin: 5mm auto;
}

/* Tableaux : en-tête répété sur chaque page, lignes entières */
#wrap table
{
	border-collapse: collapse;
	width: 100%;
}

#wrap thead
{
	display: table-header-group;
}

#wrap tr
{
	break-inside: avoid;
}

#wrap th,
#wrap td
{
	border: 0.75pt solid #000;
	padding: 1mm 2mm;
}

/* Article de blog : date sous le titre */
#wrap article > header > time
{
	font-size: 10.5pt;
	line-height: 1.5;
	margin: 0 0 6mm;
}

/* ─── Images ─── */

/* Jamais plus haute qu'une page, titre compris ; réduite sans déformation */
#wrap img
{
	max-height: 215mm;
	object-fit: contain;
}

#wrap figure:not(.wp-block-gallery),
#wrap .wp-block-embed,
#wrap iframe
{
	break-inside: avoid;
}

/* Légendes sous l'image (et non par-dessus, sur un dégradé flouté) */
#wrap figcaption
{
	background: none !important;
	font-size: 9pt;
	line-height: 1.4;
	margin: 1.5mm 0 0;
	max-height: none;
	overflow: visible;
	padding: 0;
	position: static;
	text-align: center;
}

#wrap .wp-block-gallery figure.wp-block-image::before
{
	content: none !important;
	display: none !important;
}

/* Galeries des articles : Masonry (js/masonry-init.js) fixe en ligne la hauteur de la galerie et la position de
   chaque image, calculées pour l'écran, qui laisseraient des vides entre les rangées. Sans lui, rangées du cœur
   (flex), sans espace entre les images comme à l'écran : sinon deux images à 50 % ne tiendraient plus côte à côte */
#wrap .wp-block-gallery
{
	gap: 0;
	height: auto !important;
}

#wrap .wp-block-gallery > .wp-block-image
{
	left: auto !important;
	position: relative !important;
	top: auto !important;
}

/* ─── Cartes (Leaflet) ─── */

/* Le papier est plus étroit que l'écran, et Leaflet ne redessine pas la carte pour lui. Sa taille à l'écran et le
   point à garder au milieu (repères d'une fiche, centre d'une carte des emplacements), notés juste avant
   l'impression (js/cartes-impression.js), la recentrent sans sortir des tuiles chargées. À défaut, le coin
   supérieur gauche */
#wrap .leaflet-container
{
	border: 0.75pt solid #000 !important;
	break-inside: avoid;
	flex: none !important;
	height: min(var(--carte-hauteur, 400px), 215mm) !important;
	margin: 0 auto 6mm !important;
	min-height: 0 !important;
	width: min(100%, var(--carte-largeur, 100%)) !important;
}

#wrap .leaflet-container .leaflet-map-pane
{
	left: clamp(100% - var(--carte-largeur, 100%), 50% - var(--carte-x, 50%), 0px);
	top: clamp(100% - var(--carte-hauteur, 100%), 50% - var(--carte-y, 50%), 0px);
}

/* Sélecteur des calques : une légende des seuls calques affichés, sans les cases */
#wrap .leaflet-control-layers
{
	border: 0.75pt solid #000;
	border-radius: 0;
}

#wrap .leaflet-control-layers-overlays label:has(.leaflet-control-layers-selector:not(:checked):not(:indeterminate))
{
	display: none;
}

/* Fonds à garder, même sans l'option « Graphiques d'arrière-plan » : légende, attribution, bulles, pastilles des
   calques et des regroupements de repères */
.leaflet-control-layers,
.leaflet-control-attribution,
.leaflet-popup-content-wrapper,
.leaflet-popup-tip,
.calque-pastille,
.marker-cluster,
.marker-cluster div
{
	-webkit-print-color-adjust: exact;
	print-color-adjust: exact;
}

/* ─── Fiches Saint-Marcellin : pied ─── */

#wrap article > footer
{
	border-top: 0.75pt solid #000;
	break-inside: avoid;
	margin-top: 6mm;
	padding-top: 2mm;
}

#wrap article > footer li
{
	font-size: 9pt !important;
	line-height: 1.4 !important;
	margin: 0 0 0.5mm !important;
}

/* ─── Listes : accueil, catégories, recherche, archives ─── */

#wrap section.grid article
{
	break-inside: avoid;
	margin-bottom: 6mm;
}

/* Titres des listes : pas de « break-after: avoid », qui, sur le dernier élément d'une vignette, interdirait toute
   coupure entre les rangées et renverrait la grille entière à la page suivante */
#wrap section.grid article h2
{
	break-after: auto;
}

/* Cartes d'article du blog */
#wrap section.grid article > h2
{
	font-size: 14pt;
	height: auto;
	line-height: 1.25;
	margin: 0 0 2mm;
}

/* Vignettes Saint-Marcellin et mots-clés : titre court, au-dessus de l'image ou, s'il est masqué à l'écran, dessous */
#wrap section.grid article > a > h2
{
	font-family: var(--font-body);
	font-size: 8.5pt;
	font-style: normal;
	font-weight: 500;
	height: 3.9em;
	line-height: 1.3;
	margin: 0;
	padding: 0 0 1mm;
}

#wrap section.grid article > a > h2.screen-reader-text
{
	clip-path: none !important;
	height: auto !important;
	margin: 0 !important;
	overflow: visible !important;
	padding: 1mm 0 0 !important;
	position: static !important;
	white-space: normal !important;
	width: auto !important;
}

/* ─── Adresse de la page, en fin de document (footer.php) ─── */

#wrap .impression-source
{
	break-inside: avoid;
	display: block;
	font-size: 8.5pt !important;
	margin: 6mm 0 0 !important;
	overflow-wrap: anywhere;
	text-align: left;
}
