@page {
	margin: 1.5cm;
}

*,
*::before,
*::after {
	-webkit-print-color-adjust: exact;
	print-color-adjust: exact;
}

/* --------------------------------------------------------------------------
   Masquer les éléments non pertinents à l'impression
   -------------------------------------------------------------------------- */

.a42-ac,
.section-alert,
.layout-header,
.layout-breadcrumb,
.layout-navigation,
.page-filters,
.page-filters-footer,
.article-section-related,
.article-footer,
.layout-footer,
.scrolltop,
.map,
.social-toolbar,
.nav-summary-dropdown,
.swiper-button-prev,
.swiper-button-next,
.swiper-pagination,
.modal,
.search-fullscreen,
.back-to-top,
#outdated,
.pswp,
iframe,
.btn[data-bs-toggle] {
	display: none !important;
}

.collapse:not(.show) {
	display: block !important;
}

/* --------------------------------------------------------------------------
   Réinitialiser le positionnement qui casse le flux d'impression
   -------------------------------------------------------------------------- */

.sticky-top,
.article-nav,
[data-toggle="sticky"],
[data-sticky-wrap] {
	position: static !important;
	top: auto !important;
	max-height: none !important;
	overflow: visible !important;
}

.layout-main {
	padding-top: 0 !important;
	padding-bottom: 0 !important;
}

/* Forcer les retours à la ligne du texte et des blocs */
body,
p,
li,
h1,
h2,
h3,
h4,
h5,
h6,
td,
th,
div,
span,
a {
	overflow-wrap: break-word;
	word-wrap: break-word;
	white-space: normal !important;
}

pre,
code {
	white-space: pre-wrap !important;
	word-wrap: break-word;
}

/* --------------------------------------------------------------------------
   Grille Bootstrap — reproduire le rendu desktop sans flex
   -------------------------------------------------------------------------- */

.container {
	max-width: 100% !important;
}

.row {
	display: block !important;
	--bs-gutter-x: 1.875rem;
	margin-right: calc(-0.5 * var(--bs-gutter-x)) !important;
	margin-left: calc(-0.5 * var(--bs-gutter-x)) !important;
}

.row::after {
	clear: both;
	content: "";
	display: table;
}

.row > [class*="col-"] {
	box-sizing: border-box;
	display: block !important;
	float: left !important;
	padding-right: calc(var(--bs-gutter-x) * 0.5) !important;
	padding-left: calc(var(--bs-gutter-x) * 0.5) !important;
}

.row.justify-content-center {
	text-align: center;
}

.row.justify-content-center > [class*="col-"] {
	display: block !important;
	float: none !important;
	margin-left: auto !important;
	margin-right: auto !important;
	text-align: left;
	width: 100% !important;
}

/* Colonnes de base (mobile-first Bootstrap) */
.col-1 { width: 8.33333333% !important; }
.col-2 { width: 16.66666667% !important; }
.col-3 { width: 25% !important; }
.col-4 { width: 33.33333333% !important; }
.col-5 { width: 41.66666667% !important; }
.col-6 { width: 50% !important; }
.col-7 { width: 58.33333333% !important; }
.col-8 { width: 66.66666667% !important; }
.col-9 { width: 75% !important; }
.col-10 { width: 83.33333333% !important; }
.col-11 { width: 91.66666667% !important; }
.col-12 { width: 100% !important; }

/* Pleine largeur : forcer le retour à la ligne */
.row > .col-12:not([class*="col-lg-"]):not([class*="col-md-"]):not([class*="col-sm-"]) {
	clear: both;
}

/* Colonnes md (listings) — spécificité supérieure à .col-12 */
.row > .col-md-1 { width: 8.33333333% !important; }
.row > .col-md-2 { width: 16.66666667% !important; }
.row > .col-md-3 { width: 25% !important; }
.row > .col-md-4 { width: 33.33333333% !important; }
.row > .col-md-5 { width: 41.66666667% !important; }
.row > .col-md-6 { width: 50% !important; }
.row > .col-md-7 { width: 58.33333333% !important; }
.row > .col-md-8 { width: 66.66666667% !important; }
.row > .col-md-9 { width: 75% !important; }
.row > .col-md-10 { width: 83.33333333% !important; }
.row > .col-md-11 { width: 91.66666667% !important; }
.row > .col-md-12 { width: 100% !important; }

/* Colonnes lg (layout principal) — priorité sur .col-12 */
.row > .col-lg-1 { width: 8.33333333% !important; }
.row > .col-lg-2 { width: 16.66666667% !important; }
.row > .col-lg-3 { width: 25% !important; }
.row > .col-lg-4 { width: 33.33333333% !important; }
.row > .col-lg-5 { width: 41.66666667% !important; }
.row > .col-lg-6 { width: 50% !important; }
.row > .col-lg-7 { width: 58.33333333% !important; }
.row > .col-lg-8 { width: 66.66666667% !important; }
.row > .col-lg-9 { width: 75% !important; }
.row > .col-lg-10 { width: 83.33333333% !important; }
.row > .col-lg-11 { width: 91.66666667% !important; }
.row > .col-lg-12 { width: 100% !important; }

.offset-lg-1 { margin-left: 8.33333333% !important; }
.offset-lg-2 { margin-left: 16.66666667% !important; }
.offset-lg-3 { margin-left: 25% !important; }
.offset-lg-4 { margin-left: 33.33333333% !important; }
.offset-lg-5 { margin-left: 41.66666667% !important; }
.offset-lg-6 { margin-left: 50% !important; }

/* Map split : liste pleine largeur (carte masquée) */
.section-map-split > .row {
	margin: 0 !important;
}

.section-map-split .col-list {
	float: none !important;
	max-width: 100% !important;
	width: 100% !important;
}

/* --------------------------------------------------------------------------
   Utilitaires flex Bootstrap — inline-block + wrap (pas de table)
   -------------------------------------------------------------------------- */

.d-flex:not(.flex-column),
.d-flex.flex-wrap {
	display: block !important;
	width: 100%;
}

.d-flex:not(.flex-column) > *,
.d-flex.flex-wrap > * {
	display: inline-block !important;
	max-width: 100%;
	vertical-align: top;
	white-space: normal !important;
	word-break: break-word;
}

.d-flex.flex-column,
.d-grid {
	display: block !important;
	width: 100%;
}

.d-flex.flex-column > *,
.d-grid > * {
	display: block !important;
	max-width: 100%;
	white-space: normal !important;
}

/* gap horizontal avec wrap */
.d-flex:not(.flex-column).gap-1 > * { margin: 0 0.25rem 0.25rem 0 !important; }
.d-flex:not(.flex-column).gap-2 > * { margin: 0 0.5rem 0.5rem 0 !important; }
.d-flex:not(.flex-column).gap-3 > * { margin: 0 1rem 1rem 0 !important; }
.d-flex:not(.flex-column).gap-4 > * { margin: 0 1.5rem 1.5rem 0 !important; }
.d-flex:not(.flex-column).gap-5 > * { margin: 0 2.5rem 2.5rem 0 !important; }

.d-flex.flex-wrap.gap-1 > * { margin: 0 0.25rem 0.25rem 0 !important; }
.d-flex.flex-wrap.gap-2 > * { margin: 0 0.5rem 0.5rem 0 !important; }
.d-flex.flex-wrap.gap-3 > * { margin: 0 1rem 1rem 0 !important; }

/* gap vertical (colonne) */
.d-flex.flex-column.gap-1 > * + * { margin-top: 0.25rem !important; }
.d-flex.flex-column.gap-2 > * + * { margin-top: 0.5rem !important; }
.d-flex.flex-column.gap-3 > * + * { margin-top: 1rem !important; }
.d-flex.flex-column.gap-4 > * + * { margin-top: 1.5rem !important; }
.d-flex.flex-column.gap-5 > * + * { margin-top: 2.5rem !important; }

.d-grid.gap-1 > * + * { margin-top: 0.25rem !important; }
.d-grid.gap-2 > * + * { margin-top: 0.5rem !important; }
.d-grid.gap-3 > * + * { margin-top: 1rem !important; }
.d-grid.gap-4 > * + * { margin-top: 1.5rem !important; }
.d-grid.gap-5 > * + * { margin-top: 2.5rem !important; }

.flex-grow-1 {
	max-width: 100% !important;
}

/* --------------------------------------------------------------------------
   Composants article
   -------------------------------------------------------------------------- */

.article-infos {
	display: block !important;
	font-size: inherit;
}

.article-infos > li {
	display: inline-block !important;
	margin: 0 30px 15px 0;
	max-width: 100%;
	vertical-align: top;
	white-space: normal !important;
}

.article-infos > li > * + * {
	margin-left: 2px;
}

.nav-summary ul {
	display: block !important;
	list-style: none;
	padding-left: 0;
}

.nav-summary ul > li:not(:last-child) {
	margin-bottom: 20px;
}

/* --------------------------------------------------------------------------
   Novablocks — layouts côte à côte (desktop)
   -------------------------------------------------------------------------- */

.novablock-text-next-to-image .novablock {
	display: block !important;
	max-width: 100% !important;
	overflow: hidden;
	width: 100% !important;
}

.novablock-text-next-to-image .novablock-body {
	box-sizing: border-box;
	float: left;
	padding: 0 60px 0 0 !important;
	width: 36.4%;
	word-break: break-word;
}

.novablock-text-next-to-image .novablock-image {
	box-sizing: border-box;
	float: right;
	width: 63.6%;
}

.novablock-alternate .novablock {
	display: block !important;
	height: auto !important;
	max-width: 100% !important;
	overflow: hidden;
	width: 100% !important;
}

.novablock-alternate .novablock-image,
.novablock-alternate .novablock-wrapper {
	max-width: 50% !important;
	width: 50% !important;
}

.novablock-alternate .novablock.odd .novablock-wrapper {
	float: left;
}

.novablock-alternate .novablock.odd .novablock-image {
	float: right;
}

.novablock-alternate .novablock.even .novablock-image {
	float: left;
}

.novablock-alternate .novablock.even .novablock-wrapper {
	float: right;
}

.novablock-key-figures .novablock {
	display: block !important;
	overflow: hidden;
	width: 100%;
}

.novablock-key-figures .novablock-image {
	float: left;
	margin-right: 20px;
}

.novablock-key-figures .novablock-body {
	display: block !important;
	overflow: hidden;
}

.novablock-timeline .novablock-date {
	display: block !important;
}

.novablock-timeline .novablock-date > * {
	display: inline-block !important;
	margin-right: 10px;
	vertical-align: middle;
}

/* --------------------------------------------------------------------------
   Cartes et sections homepage
   -------------------------------------------------------------------------- */

.card-line {
	display: block !important;
	max-width: 100% !important;
	overflow: hidden;
	width: 100% !important;
}

.card-line .card-image {
	float: left;
	margin-right: 5px;
	max-width: 40%;
	width: 410px;
}

.card-line .card-body {
	display: block !important;
	overflow: hidden;
	word-break: break-word;
}

.card-line .card-body > * + * {
	margin-top: 25px;
}

.card-panel-related .card-body > * + * {
	margin-top: 10px;
}

.card-panel-related .card-footer > * + * {
	margin-top: 15px;
}

.section-works .works {
	display: block !important;
	overflow: hidden;
	width: 100%;
}

.section-works .works-icon {
	float: left;
	margin: 0 30px 15px 50px;
	width: 60px;
}

.section-works .works-body {
	display: block !important;
	overflow: hidden;
}

.section-works .works-footer {
	display: block !important;
}

.section-works .works-footer > * {
	display: inline-block !important;
	margin-right: 15px;
	vertical-align: top;
}

.section-spotlight .section-content > * + * {
	margin-top: 30px;
}

.section-spotlight .nav {
	display: block !important;
}

.section-spotlight .nav > * {
	display: inline-block !important;
	margin-right: 10px;
}

.news-themes {
	display: block !important;
}

.news-themes > * {
	display: inline-block !important;
	margin: 0 20px 20px 0;
	max-width: 100%;
	vertical-align: top;
	white-space: normal !important;
}

.section-territory .territory-list > * + * {
	margin-top: 10px;
}

/* --------------------------------------------------------------------------
   Neutraliser nowrap / flex sans wrap (thème + Bootstrap)
   -------------------------------------------------------------------------- */

.text-nowrap,
.text-truncate {
	overflow: visible !important;
	text-overflow: clip !important;
	white-space: normal !important;
}

.flex-nowrap,
.flex-sm-nowrap,
.flex-md-nowrap,
.flex-lg-nowrap,
.flex-xl-nowrap,
.flex-xxl-nowrap {
	display: block !important;
}

.flex-nowrap > *,
.flex-sm-nowrap > *,
.flex-md-nowrap > *,
.flex-lg-nowrap > *,
.flex-xl-nowrap > *,
.flex-xxl-nowrap > * {
	display: inline-block !important;
	max-width: 100%;
	vertical-align: top;
	white-space: normal !important;
}

/* Flex natifs du thème (sans .d-flex) */
.thumbnail-meta,
.thumbnail-tags,
.thumbnail-body,
.list-group-item,
.section-access-blocks,
.mailster-form-fields,
.layout-breadcrumb ul {
	display: block !important;
}

.thumbnail-tags > *,
.thumbnail-meta > *,
.mailster-form-fields > * {
	display: inline-block !important;
	margin: 0 0.5rem 0.5rem 0;
	max-width: 100%;
	vertical-align: top;
	white-space: normal !important;
}

/* Colonnes Gutenberg */
.wp-block-columns {
	display: block !important;
}

.wp-block-column {
	box-sizing: border-box;
	display: inline-block !important;
	margin-bottom: 1rem;
	max-width: 100%;
	padding: 0 0.5rem;
	vertical-align: top;
	width: 48% !important;
}

.wp-block-column:only-child {
	width: 100% !important;
}

/* --------------------------------------------------------------------------
   En-tête de page, listes, WP blocks
   -------------------------------------------------------------------------- */

.page-header .container {
	display: block !important;
	width: 100%;
}

.page-header .container > * {
	display: inline-block !important;
	margin-bottom: 10px;
	max-width: 100%;
	vertical-align: top;
}

.page-header-options {
	display: block !important;
}

.page-header-options > * {
	display: inline-block !important;
	margin: 0 10px 10px 0;
	max-width: 100%;
}

.list-icon {
	display: block !important;
	overflow: hidden;
	width: 100%;
}

.list-icon > *:last-child {
	display: block !important;
	overflow: hidden;
	word-break: break-word;
}

.wp-block-accordion > * + * {
	margin-top: 10px;
}

.portrait-header {
	display: block !important;
	overflow: hidden;
	width: 100%;
}

.portrait-header > *:first-child {
	float: left;
	margin-right: 15px;
}

.portrait-header > *:last-child {
	display: block !important;
	overflow: hidden;
}

/* --------------------------------------------------------------------------
   Carrousels / sliders — afficher tout le contenu
   -------------------------------------------------------------------------- */

.swiper-wrapper,
.swiper-slide,
.owl-stage,
.owl-item {
	display: block !important;
	height: auto !important;
	transform: none !important;
	width: 100% !important;
}

.swiper-container,
.swiper,
.owl-carousel {
	display: block !important;
	height: auto !important;
	overflow: visible !important;
}

/* --------------------------------------------------------------------------
   Images et sauts de page
   -------------------------------------------------------------------------- */

img {
	max-width: 100% !important;
	height: auto !important;
}

.article-content img,
.novablock-image img {
	page-break-inside: avoid;
	break-inside: avoid;
}

.article-header,
.article-image,
.card-panel-related,
.novablock,
.card-line {
	page-break-inside: avoid;
	break-inside: avoid;
}

a[href^="http"]::after {
	content: none;
}
