/*
Theme Name: Divi Child
Theme URI: https://www.groupement-gnm.com/
Description: Theme enfant Divi pour GNM.
Author: Occtam
Template: Divi
Version: 1.0.0
Text Domain: divi-child
*/

/* Mapping Variables
lines = var()
cut = var(--gvid-9rnak1skq1)
*/

body{
    font-size:1.0625rem;
}

:root {
    --gnm-product-bar-1: var(--gcid-primary-color, #003c49);
    --gnm-product-bar-2: var(--gcid-secondary-color, #60beb9);
    --gnm-product-bar-3: var(--gcid-link-color, #137e98);
    --gnm-product-bar-height: 5px;
}

.et_pb_button,
.et_pb_button:hover{
	background:var(--gcid-primary-color);
	font-size:0.85rem;
	font-weight:700;
    padding: 1rem 2rem!important;
    border: none!important;
    white-space: nowrap;
    color: #fff!important;
    text-decoration: none;
    clip-path: polygon(
        0 10px,
		10px 0,
		calc(100% - 10px) 0,
		100% 10px,
		100% 100%,
		0 100%
    );
    transition: background-color .25s ease, color .25s ease;
	text-transform:uppercase;
	letter-spacing:0.1rem;
}
.et_pb_button.slider-btn,
.et_pb_button.slider-btn:hover{
	background:var(--gcid-link-color);
}
.et_pb_button.white-bordered,
.et_pb_button.white-bordered:hover{
	background:white;
	color:var(--gcid-primary-color)!important;
}
/*.et_pb_button::before{
	content:'';
	display:inline-block;
	width:20px;
	height:1px;
	background:white;
	position:relative;
	opacity:1;
	top:auto;
}*/
.et_pb_button::after{
	display:none;
}
.et_pb_button:hover,
.et_pb_button.white-bordered:hover{
	background:var(--gcid-secondary-color)!important;
	color:white!important
}


/* ============================================================
   :is(.gnm-form7, body.page-id-749 .et_pb_text_inner) — Contact Form 7 (module Code Divi)
   Scope : classe CSS du module → .et_pb_code_inner
   ============================================================ */

:is(.gnm-form7, body.page-id-749 .et_pb_text_inner) {
	--gnm-form-mid: var(--gcid-link-color, #137e98);
	--gnm-form-deep: var(--gcid-primary-color, #003c49);
	--gnm-form-accent: var(--gcid-secondary-color, #60beb9);
	--gnm-form-ink: #12262b;
	--gnm-form-line: #e3ecec;
	--gnm-form-wash: #f4f8f8;
	--gnm-form-hint: #8ba0a4;
	--gnm-form-err: #c0453c;
	--gnm-form-err-bg: #fff8f7;
	--gnm-form-focus-ring: rgba(19, 126, 152, 0.12);
}

:is(.gnm-form7, body.page-id-749 .et_pb_text_inner) .wpcf7-form {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 13px 16px;
	margin: 0;
}

:is(.gnm-form7, body.page-id-749 .et_pb_text_inner) .wpcf7-form > p,
:is(.gnm-form7, body.page-id-749 .et_pb_text_inner) .wpcf7-form > .rgpd,
:is(.gnm-form7, body.page-id-749 .et_pb_text_inner) .wpcf7-form > .wpcf7-response-output {
	margin: 0;
}

:is(.gnm-form7, body.page-id-749 .et_pb_text_inner) .wpcf7-form > p:not(:has(.half)),
:is(.gnm-form7, body.page-id-749 .et_pb_text_inner) .wpcf7-form > .rgpd,
:is(.gnm-form7, body.page-id-749 .et_pb_text_inner) .wpcf7-form > .wpcf7-response-output {
	grid-column: 1 / -1;
}

:is(.gnm-form7, body.page-id-749 .et_pb_text_inner) .wpcf7-form label {
	display: flex;
	flex-direction: column;
	gap: 4px;
	margin: 0;
	font-size: 11px;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--gnm-form-ink);
}

:is(.gnm-form7, body.page-id-749 .et_pb_text_inner) .gnm-label-text {
	display: flex;
	align-items: baseline;
	gap: 3px;
	line-height: 1.2;
}

:is(.gnm-form7, body.page-id-749 .et_pb_text_inner) .gnm-required {
	display: inline;
	color: var(--gnm-form-err);
	font-weight: 800;
}

:is(.gnm-form7, body.page-id-749 .et_pb_text_inner) .wpcf7-form-control-wrap {
	display: block;
}

:is(.gnm-form7, body.page-id-749 .et_pb_text_inner) .wpcf7-form input[type="text"],
:is(.gnm-form7, body.page-id-749 .et_pb_text_inner) .wpcf7-form input[type="email"],
:is(.gnm-form7, body.page-id-749 .et_pb_text_inner) .wpcf7-form input[type="tel"],
:is(.gnm-form7, body.page-id-749 .et_pb_text_inner) .wpcf7-form input[type="url"],
:is(.gnm-form7, body.page-id-749 .et_pb_text_inner) .wpcf7-form input[type="number"],
:is(.gnm-form7, body.page-id-749 .et_pb_text_inner) .wpcf7-form input[type="date"],
:is(.gnm-form7, body.page-id-749 .et_pb_text_inner) .wpcf7-form select,
:is(.gnm-form7, body.page-id-749 .et_pb_text_inner) .wpcf7-form textarea {
	box-sizing: border-box;
	width: 100%;
	margin: 0;
	padding: 10px 12px;
	border: 1px solid var(--gnm-form-line);
	border-radius: 3px;
	background: #fff;
	font-size: 15px;
	font-weight: 400;
	letter-spacing: normal;
	text-transform: none;
	color: var(--gnm-form-ink);
	transition: border-color 150ms ease, box-shadow 150ms ease;
}

:is(.gnm-form7, body.page-id-749 .et_pb_text_inner) .wpcf7-form textarea {
	min-height: 112px;
	resize: vertical;
}

:is(.gnm-form7, body.page-id-749 .et_pb_text_inner) .gnm-message-counter {
	display: block;
	margin-top: 5px;
	text-align: right;
	font-size: 12px;
	font-weight: 500;
	letter-spacing: normal;
	text-transform: none;
	color: var(--gnm-form-hint);
}

:is(.gnm-form7, body.page-id-749 .et_pb_text_inner) .gnm-message-counter.is-near-limit {
	color: var(--gnm-form-mid);
}

:is(.gnm-form7, body.page-id-749 .et_pb_text_inner) .gnm-message-counter.is-at-limit {
	color: var(--gnm-form-err);
	font-weight: 700;
}

:is(.gnm-form7, body.page-id-749 .et_pb_text_inner) .wpcf7-form input:focus,
:is(.gnm-form7, body.page-id-749 .et_pb_text_inner) .wpcf7-form select:focus,
:is(.gnm-form7, body.page-id-749 .et_pb_text_inner) .wpcf7-form textarea:focus {
	outline: none;
	border-color: var(--gnm-form-mid);
	box-shadow: 0 0 0 3px var(--gnm-form-focus-ring);
}

:is(.gnm-form7, body.page-id-749 .et_pb_text_inner) .wpcf7-form .wpcf7-not-valid {
	border-color: var(--gnm-form-err);
	background: var(--gnm-form-err-bg);
}

:is(.gnm-form7, body.page-id-749 .et_pb_text_inner) .wpcf7-not-valid-tip {
	display: block;
	margin-top: 7px;
	font-size: 12px;
	font-weight: 400;
	letter-spacing: normal;
	text-transform: none;
	color: var(--gnm-form-err);
}

/* Accueil — ligne de réassurance : conserver la trame webmaster,
   avec pictogramme en haut à gauche et texte sur toute la largeur. */
body.page-id-7 .et_pb_section_1 .et_pb_blurb_content {
	display: flex !important;
	flex-direction: column !important;
	align-items: flex-start !important;
	gap: 8px;
	max-width: none;
	margin: 0;
}

body.page-id-7 .et_pb_section_1 .et_pb_main_blurb_image {
	width: 34px !important;
	margin: 0 0 2px !important;
	line-height: 1;
	text-align: left;
}

body.page-id-7 .et_pb_section_1 .et_pb_image_wrap,
body.page-id-7 .et_pb_section_1 .et-pb-icon {
	display: block;
	width: 34px;
	height: 34px;
	font-size: 30px !important;
	line-height: 34px !important;
}

body.page-id-7 .et_pb_section_1 .et_pb_blurb_container {
	width: 100%;
	padding-left: 0 !important;
	text-align: left;
}

body.page-id-7 .et_pb_section_1 .et_pb_module_header {
	max-width: none;
	margin-bottom: 6px !important;
	word-break: normal;
	overflow-wrap: normal;
	hyphens: none;
}

body.page-id-7 .et_pb_section_1 .et_pb_blurb_description,
body.page-id-7 .et_pb_section_1 .et_pb_blurb_description small {
	display: block;
	max-width: none;
}

/* Select — flèche custom */
:is(.gnm-form7, body.page-id-749 .et_pb_text_inner) .wpcf7-form select {
	appearance: none;
	-webkit-appearance: none;
	padding-right: 42px;
	background-color: #fff;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%234d5f64' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 14px center;
	cursor: pointer;
}

/* Checkbox RGPD */
:is(.gnm-form7, body.page-id-749 .et_pb_text_inner) .rgpd {
	font-size: 12px;
	font-weight: 400;
	letter-spacing: normal;
	text-transform: none;
	color: var(--gnm-form-hint);
	line-height: 1.5;
}

:is(.gnm-form7, body.page-id-749 .et_pb_text_inner) .rgpd .wpcf7-list-item {
	display: block;
	margin: 0;
}

:is(.gnm-form7, body.page-id-749 .et_pb_text_inner) .rgpd .wpcf7-list-item label {
	flex-direction: row;
	align-items: flex-start;
	gap: 12px;
	font-size: 12px;
	font-weight: 400;
	letter-spacing: normal;
	text-transform: none;
	color: var(--gnm-form-hint);
	cursor: pointer;
}

:is(.gnm-form7, body.page-id-749 .et_pb_text_inner) .rgpd input[type="checkbox"] {
	appearance: none;
	-webkit-appearance: none;
	box-sizing: border-box;
	flex: none;
	width: 18px;
	height: 18px;
	margin: 1px 0 0;
	padding: 0;
	border: 1px solid var(--gnm-form-line);
	border-radius: 3px;
	background: #fff;
	cursor: pointer;
	transition: border-color 150ms ease, background-color 150ms ease, box-shadow 150ms ease;
}

:is(.gnm-form7, body.page-id-749 .et_pb_text_inner) .rgpd input[type="checkbox"]:checked {
	border-color: var(--gnm-form-mid);
	background-color: var(--gnm-form-mid);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='10' viewBox='0 0 12 10' fill='none'%3E%3Cpath d='M1 5L4.5 8.5L11 1.5' stroke='%23fff' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: center;
	background-size: 12px 10px;
}

:is(.gnm-form7, body.page-id-749 .et_pb_text_inner) .rgpd input[type="checkbox"]:focus-visible {
	outline: none;
	border-color: var(--gnm-form-mid);
	box-shadow: 0 0 0 3px var(--gnm-form-focus-ring);
}

/* Bouton envoi */
:is(.gnm-form7, body.page-id-749 .et_pb_text_inner) .wpcf7-form input.wpcf7-submit {
	display: inline-block;
	width: auto;
	max-width: 100%;
	padding: 11px 42px 11px 22px;
	border: none;
	border-radius: 2px;
	background-color: var(--gcid-primary-color);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='12' viewBox='0 0 18 12' fill='none'%3E%3Cpath d='M0 6H16M16 6L11 1M16 6L11 11' stroke='%23fff' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 18px center;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.02em;
	text-transform: none;
	color: #fff;
	cursor: pointer;
	transition: background-color 0.25s ease;
}

:is(.gnm-form7, body.page-id-749 .et_pb_text_inner) .wpcf7-form input.wpcf7-submit:hover {
	background-color: var(--gcid-secondary-color);
}

:is(.gnm-form7, body.page-id-749 .et_pb_text_inner) .wpcf7-form input.wpcf7-submit:focus-visible {
	outline: none;
	box-shadow: 0 0 0 3px var(--gnm-form-focus-ring);
}

:is(.gnm-form7, body.page-id-749 .et_pb_text_inner) .wpcf7-spinner {
	margin-left: 10px;
}

/* Réponse CF7 */
:is(.gnm-form7, body.page-id-749 .et_pb_text_inner) .wpcf7-response-output {
	margin-top: 4px;
	padding: 16px 18px;
	border: 1px solid var(--gnm-form-line);
	border-radius: 4px;
	background: var(--gnm-form-wash);
	font-size: 14px;
	color: var(--gnm-form-ink);
}

:is(.gnm-form7, body.page-id-749 .et_pb_text_inner) .wpcf7 form.sent .wpcf7-response-output {
	border-left: 4px solid var(--gnm-form-accent);
}

:is(.gnm-form7, body.page-id-749 .et_pb_text_inner) .wpcf7 form.invalid .wpcf7-response-output,
:is(.gnm-form7, body.page-id-749 .et_pb_text_inner) .wpcf7 form.failed .wpcf7-response-output,
:is(.gnm-form7, body.page-id-749 .et_pb_text_inner) .wpcf7 form.aborted .wpcf7-response-output {
	border-color: var(--gnm-form-err);
	background: var(--gnm-form-err-bg);
	color: var(--gnm-form-err);
}

@media (max-width: 900px) {
	:is(.gnm-form7, body.page-id-749 .et_pb_text_inner) .wpcf7-form {
		grid-template-columns: 1fr;
	}
}


/* ============================================================
   Header + footer — desktop d'abord, puis un seul palier mobile
   ============================================================ */

/* Palette Divi réelle : primary #25596e, secondary #137e98, link #63c0bb.
   deep   = fond sombre (footer, menu mobile, burger)
   mid    = accent lisible sur blanc  (nav active, surtitre header)
   accent = accent lisible sur sombre (surtitres footer, hovers) */
:root {
	--gnm-deep: var(--gcid-heading-color, #163b48);
	--gnm-mid: var(--gcid-secondary-color, #137e98);
	--gnm-accent: var(--gcid-link-color, #63c0bb);
	--gnm-ink: #12262b;
	--gnm-line: #e3ecec;

	/* Hauteur totale du header, liseré et bordure comprises.
	   Seul endroit où ce nombre est écrit. */
	--gnm-head-h: 82px;

	--gnm-title-font: var(--et_global_heading_font, sans-serif), system-ui, sans-serif;
}

.admin-bar {
	--gnm-admin-h: 32px;
}

/* Divi pose « .et-tb-has-header #page-container{padding-top:0!important} »
   dans la media query ≤980px. On reprend la même spécificité pour repasser
   devant, et la règle reste juste si les templates Theme Builder sont retirés. */
body #page-container,
.et-tb-has-header #page-container {
	padding-top: var(--gnm-head-h) !important;
}

.gnm-header .et_pb_row,
.gnm-footer .et_pb_row {
	padding-top: 0;
	padding-bottom: 0;
	margin-bottom: 0;
}

.gnm-header .et_pb_row::after,
.gnm-footer .et_pb_row::after {
	content: none;
}


/* ---------- header ---------- */

.gnm-header {
	position: fixed;
	top: var(--gnm-admin-h, 0px);
	right: 0;
	left: 0;
	z-index: 70;
	padding-top: var(--gnm-product-bar-height);
	border-bottom: 1px solid var(--gnm-line);
	background:
		linear-gradient(
			90deg,
			var(--gnm-product-bar-1) 0 33.333%,
			var(--gnm-product-bar-2) 33.333% 66.666%,
			var(--gnm-product-bar-3) 66.666%
		) top / 100% var(--gnm-product-bar-height) no-repeat,
		#fff;
}

.gnm-burger,
.gnm-phone-icon,
.gnm-cta-icon {
	display: none;
}

.gnm-header-in {
	position: relative;
	display: flex;
	align-items: center;
	gap: 28px;
	min-height: calc(var(--gnm-head-h) - var(--gnm-product-bar-height) - 1px);
}

.gnm-logo {
	flex: none;
	line-height: 0;
}

.gnm-logo img {
	display: block;
	height: 46px;
	width: auto;
}

.gnm-nav {
	display: flex;
	flex: 1 1 auto;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 28px;
	min-width: 0;
	font-family: var(--gnm-title-font);
	font-size: 0.9rem;
	font-weight: 700;
}

.gnm-nav a {
	padding: 4px 0;
	border-bottom: 2px solid transparent;
	color: var(--gnm-ink);
	text-decoration: none;
	transition: color .2s ease, border-color .2s ease;
}

.gnm-nav a:hover,
.gnm-nav a[aria-current="page"],
.gnm-nav a.current-menu-item {
	border-color: var(--gnm-mid);
	color: var(--gnm-mid);
}

.gnm-head-side {
	flex: none;
	display: flex;
	align-items: center;
	gap: 18px;
}

.gnm-phone {
	font-family: var(--gnm-title-font);
	color: var(--gnm-ink);
	text-decoration: none;
	font-size: 0.9rem;
	font-weight: 700;
	line-height: 1.2;
	transition: color .2s ease;
}

.gnm-phone:hover {
	color: var(--gnm-mid);
}

.gnm-phone-label {
	display: block;
	margin-bottom: 2px;
	font-size: 0.65rem;
	font-weight: 600;
	letter-spacing: 0.11em;
	text-transform: uppercase;
	color: var(--gnm-mid);
}

.gnm-header .et_pb_button {
	padding: 0.7rem 1.35rem !important;
	margin: 0;
}


/* ---------- footer ---------- */

.gnm-footer {
	position: relative;
	overflow: hidden;
	background: #0b262e;
	color: rgba(255, 255, 255, 0.8);
	font-size: 14.5px;
	line-height: 1.6;
	padding: 50px 0 20px;
}

.gnm-footer a {
	color: rgba(255, 255, 255, 0.86);
	text-decoration: none;
	transition: color .2s ease;
}

.gnm-footer a:hover {
	color: var(--gnm-accent);
}

.gnm-footer-top {
	display: grid;
	grid-template-columns: 1.5fr 1fr 1.2fr;
	gap: 48px;
	padding: 56px 0;
}

.gnm-footer-logo {
	display: inline-block;
	margin-bottom: 18px;
	line-height: 0;
}

.gnm-footer-logo img {
	display: block;
	height: 50px;
	width: auto;
}

.gnm-footer-brand p {
	margin: 0;
	max-width: 44ch;
}

.gnm-footer-title {
	margin: 0 0 16px;
	padding: 0;
	font-family: var(--gnm-title-font);
	color: #fff;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.gnm-footer-nav {
	display: flex;
	flex-direction: column;
	gap: 9px;
}

.gnm-footer-row {
	margin-bottom: 14px;
}

.gnm-footer-row span {
	display: block;
	margin-bottom: 3px;
	font-family: var(--gnm-title-font);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--gnm-accent);
}

.gnm-footer-bar {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 16px;
	padding: 15px 0 0!important;
	border-top: 1px solid rgba(255, 255, 255, 0.14);
	font-size: 12.5px;
	color: rgba(255, 255, 255, 0.66);
}

.gnm-footer-legal a {
	color: rgba(255, 255, 255, 0.66);
}

.gnm-footer-legal a:hover {
	color: var(--gnm-accent);
}

/* Catalogue WooCommerce — préserver les visuels fournisseurs.
   Les plaquettes, photos produit et schémas ont des formats différents :
   on garde les cartes régulières sans recadrer les images. */
.woocommerce ul.products li.product .et_shop_image,
.woocommerce-page ul.products li.product .et_shop_image,
.woocommerce ul.products li.product-category a > img,
.woocommerce-page ul.products li.product-category a > img {
	display: flex;
	align-items: center;
	justify-content: center;
	aspect-ratio: 4 / 3;
	width: 100%;
	overflow: hidden;
	border: 1px solid #e3ecec;
	border-radius: 6px;
	background: #f4f8f8;
}

.woocommerce ul.products li.product .et_shop_image img,
.woocommerce-page ul.products li.product .et_shop_image img,
.woocommerce ul.products li.product-category a > img,
.woocommerce-page ul.products li.product-category a > img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
	object-position: center;
	background: #fff;
}

.woocommerce ul.products li.product .et_shop_image .et_overlay,
.woocommerce-page ul.products li.product .et_shop_image .et_overlay {
	inset: 0;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce-page ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product-category .woocommerce-loop-category__title,
.woocommerce-page ul.products li.product-category .woocommerce-loop-category__title {
	overflow-wrap: anywhere;
}

/* Finition premium GNM — bibliothèques et fiches produit.
   Surcouche volontairement légère : on garde la structure webmaster, on rend
   la lecture plus dense, plus régulière et plus proche de la charte GNM. */
body.archive.tax-product_cat.woocommerce #main-content .container,
body.archive.tax-product_brand.woocommerce #main-content .container,
body.single-product.woocommerce #main-content .container {
	width: min(1180px, calc(100% - 56px));
	max-width: 1180px;
	padding-top: 34px;
}

body.archive.tax-product_cat.woocommerce .woocommerce-products-header,
body.archive.tax-product_brand.woocommerce .woocommerce-products-header {
	margin-bottom: 22px;
	padding-bottom: 18px;
	border-bottom: 1px solid #dbe8e8;
}

body.archive.tax-product_cat.woocommerce .woocommerce-products-header__title,
body.archive.tax-product_brand.woocommerce .woocommerce-products-header__title,
body.archive.tax-product_cat.woocommerce .page-title,
body.archive.tax-product_brand.woocommerce .page-title {
	max-width: 840px;
	margin: 0 0 8px;
	font-size: clamp(2rem, 3.2vw, 3.1rem);
	font-weight: 800;
	line-height: 1.02;
	letter-spacing: 0;
	color: var(--gcid-primary-color, #003c49);
}

body.archive.tax-product_cat.woocommerce .term-description,
body.archive.tax-product_brand.woocommerce .term-description {
	max-width: 760px;
	margin: 0 0 18px;
	color: #405a60;
}

body.archive.tax-product_cat.woocommerce .term-description p,
body.archive.tax-product_brand.woocommerce .term-description p {
	font-size: 15.5px;
	line-height: 1.55;
}

body.archive.tax-product_cat.woocommerce .woocommerce-result-count,
body.archive.tax-product_cat.woocommerce .woocommerce-ordering,
body.archive.tax-product_brand.woocommerce .woocommerce-result-count,
body.archive.tax-product_brand.woocommerce .woocommerce-ordering {
	display: none !important;
}

body.archive.tax-product_cat.woocommerce ul.products,
body.archive.tax-product_brand.woocommerce ul.products,
body.post-type-archive-product.woocommerce ul.products {
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 26px 24px;
	align-items: stretch;
	margin: 0 !important;
}

body.archive.tax-product_cat.woocommerce ul.products::before,
body.archive.tax-product_cat.woocommerce ul.products::after,
body.archive.tax-product_brand.woocommerce ul.products::before,
body.archive.tax-product_brand.woocommerce ul.products::after,
body.post-type-archive-product.woocommerce ul.products::before,
body.post-type-archive-product.woocommerce ul.products::after {
	content: none !important;
	display: none !important;
}

body.archive.tax-product_cat.woocommerce ul.products li.product,
body.archive.tax-product_brand.woocommerce ul.products li.product,
body.post-type-archive-product.woocommerce ul.products li.product {
	position: relative;
	float: none !important;
	display: flex;
	width: 100% !important;
	margin: 0 !important;
	padding: 0 0 12px !important;
	border: 1px solid #dceaea;
	border-radius: 7px;
	background: #fff;
	box-shadow: 0 12px 30px rgba(0, 60, 73, 0.06);
	transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease;
}

body.archive.tax-product_cat.woocommerce ul.products li.product:hover,
body.archive.tax-product_brand.woocommerce ul.products li.product:hover,
body.post-type-archive-product.woocommerce ul.products li.product:hover {
	border-color: rgba(96, 190, 185, 0.72);
	box-shadow: 0 18px 38px rgba(0, 60, 73, 0.1);
	transform: translateY(-2px);
}

body.archive.tax-product_cat.woocommerce ul.products li.product a.woocommerce-LoopProduct-link,
body.archive.tax-product_brand.woocommerce ul.products li.product a.woocommerce-LoopProduct-link,
body.post-type-archive-product.woocommerce ul.products li.product a.woocommerce-LoopProduct-link {
	display: flex;
	flex-direction: column;
	width: 100%;
	color: inherit;
}

body.archive.tax-product_cat.woocommerce ul.products li.product .et_shop_image,
body.archive.tax-product_brand.woocommerce ul.products li.product .et_shop_image,
body.post-type-archive-product.woocommerce ul.products li.product .et_shop_image {
	aspect-ratio: 16 / 11;
	margin: 0;
	border: 0;
	border-bottom: 1px solid #e4eeee;
	border-radius: 7px 7px 0 0;
	background: linear-gradient(180deg, #f8fbfb 0%, #eef6f6 100%);
}

body.archive.tax-product_cat.woocommerce ul.products li.product .et_shop_image img,
body.archive.tax-product_brand.woocommerce ul.products li.product .et_shop_image img,
body.post-type-archive-product.woocommerce ul.products li.product .et_shop_image img {
	padding: 8px;
	background: transparent;
	object-fit: contain;
}

body.archive.tax-product_cat.woocommerce ul.products li.product .woocommerce-loop-product__title,
body.archive.tax-product_brand.woocommerce ul.products li.product .woocommerce-loop-product__title,
body.post-type-archive-product.woocommerce ul.products li.product .woocommerce-loop-product__title {
	padding: 13px 14px 0 !important;
	font-size: 15px !important;
	font-weight: 700 !important;
	line-height: 1.2 !important;
	letter-spacing: 0 !important;
	color: var(--gcid-primary-color, #003c49);
	text-transform: none;
}

body.archive.tax-product_cat.woocommerce ul.products li.product .woocommerce-loop-category__title,
body.archive.tax-product_brand.woocommerce ul.products li.product .woocommerce-loop-category__title,
body.post-type-archive-product.woocommerce ul.products li.product .woocommerce-loop-category__title {
	padding: 13px 14px 0 !important;
	font-size: 15px !important;
	line-height: 1.2 !important;
}

body.single-product.woocommerce div.product {
	display: grid;
	grid-template-columns: minmax(0, 0.92fr) minmax(340px, 1.08fr);
	gap: 34px;
	align-items: start;
}

body.single-product.woocommerce div.product div.images,
body.single-product.woocommerce div.product div.summary {
	float: none !important;
	width: auto !important;
	margin: 0 !important;
}

body.single-product.woocommerce div.product div.images {
	position: sticky;
	top: calc(var(--gnm-head-h, 86px) + 22px);
}

body.single-product.woocommerce div.product .product_title {
	margin-bottom: 12px;
	font-size: clamp(2rem, 3vw, 3rem);
	font-weight: 800;
	line-height: 1.03;
	letter-spacing: 0;
	color: var(--gcid-primary-color, #003c49);
}

body.single-product.woocommerce div.product .woocommerce-product-gallery__image,
body.single-product.woocommerce div.product div.images .flex-viewport {
	border-radius: 7px;
	background: #f7fbfb;
}

body.single-product.woocommerce div.product div.images .flex-control-thumbs {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 10px;
	margin-top: 12px;
}

body.single-product.woocommerce div.product div.images .flex-control-thumbs li {
	width: auto !important;
	margin: 0 !important;
}

body.single-product.woocommerce div.product div.images .flex-control-thumbs img {
	aspect-ratio: 1 / 1;
	border: 1px solid #dceaea;
	border-radius: 5px;
	background: #fff;
	object-fit: contain;
}

.gnm-product-hero-resources {
	margin-top: 22px !important;
	padding: 18px !important;
	border: 1px solid #dceaea;
	border-radius: 7px;
	background: #f6fbfb;
}

.gnm-product-hero-resources-title {
	margin-bottom: 12px !important;
	font-size: 11px !important;
	font-weight: 800 !important;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--gcid-primary-color, #003c49);
}

.gnm-product-hero-resource-links {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.gnm-product-hero-resource-link,
.gnm-product-hero-resource-links a {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	min-height: 42px;
	padding: 11px 16px !important;
	border: 1px solid var(--gcid-primary-color, #003c49) !important;
	border-radius: 4px !important;
	background: var(--gcid-primary-color, #003c49) !important;
	color: #fff !important;
	font-size: 12px !important;
	font-weight: 800 !important;
	line-height: 1.2 !important;
	letter-spacing: 0.06em !important;
	text-transform: uppercase;
	clip-path: none !important;
}

.gnm-product-hero-resource-link-alt,
.gnm-product-hero-resource-links a.gnm-product-hero-resource-link-alt {
	background: #fff !important;
	color: var(--gcid-primary-color, #003c49) !important;
}

.gnm-product-hero-resource-link:hover,
.gnm-product-hero-resource-links a:hover {
	border-color: var(--gcid-secondary-color, #60beb9) !important;
	background: var(--gcid-secondary-color, #60beb9) !important;
	color: #fff !important;
}

@media (max-width: 1180px) {
	body.archive.tax-product_cat.woocommerce ul.products,
	body.archive.tax-product_brand.woocommerce ul.products,
	body.post-type-archive-product.woocommerce ul.products {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (max-width: 980px) {
	body.single-product.woocommerce div.product {
		display: block;
	}

	body.single-product.woocommerce div.product div.images {
		position: static;
		margin-bottom: 26px !important;
	}
}

@media (max-width: 760px) {
	body.archive.tax-product_cat.woocommerce #main-content .container,
	body.archive.tax-product_brand.woocommerce #main-content .container,
	body.single-product.woocommerce #main-content .container {
		width: calc(100% - 36px);
		padding-top: 24px;
	}

	body.archive.tax-product_cat.woocommerce ul.products,
	body.archive.tax-product_brand.woocommerce ul.products,
	body.post-type-archive-product.woocommerce ul.products {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 18px 16px;
	}

	body.archive.tax-product_cat.woocommerce ul.products li.product .woocommerce-loop-product__title,
	body.archive.tax-product_brand.woocommerce ul.products li.product .woocommerce-loop-product__title,
	body.post-type-archive-product.woocommerce ul.products li.product .woocommerce-loop-product__title {
		font-size: 13.5px !important;
		line-height: 1.18 !important;
	}
}

@media (max-width: 460px) {
	body.archive.tax-product_cat.woocommerce ul.products,
	body.archive.tax-product_brand.woocommerce ul.products,
	body.post-type-archive-product.woocommerce ul.products {
		grid-template-columns: 1fr;
	}
}


/* ============================================================
   Mobile
   ============================================================ */

@media (max-width: 980px) {
	:root {
		--gnm-head-h: 70px;
	}

	html,
	body,
	#page-container {
		max-width: 100%;
		overflow-x: hidden;
	}

	/* Le logo ne peut jamais atteindre le burger, qui reste centré écran. */
	.gnm-logo {
		flex: 0 1 auto;
		min-width: 0;
		max-width: calc(50% - 32px);
	}

	.gnm-logo img {
		height: 34px;
		max-width: 100%;
		object-fit: contain;
		object-position: left center;
	}

	.gnm-phone-label,
	.gnm-phone-num,
	.gnm-cta-label {
		display: none;
	}

	.gnm-phone-icon,
	.gnm-cta-icon {
		display: block;
	}

	.gnm-phone,
	.gnm-header .gnm-cta,
	.gnm-header .gnm-cta:hover {
		display: flex;
		align-items: center;
		justify-content: center;
		width: 42px;
		height: 42px;
		padding: 0 !important;
		background: none !important;
		color: var(--gnm-deep) !important;
		clip-path: none;
	}

	.gnm-head-side {
		gap: 4px;
		margin-left: auto;
	}

	/* Burger — modèle 3 : deux barres qui pivotent, la médiane masquée
	   par le cache ::after qui descend. */
	.gnm-burger {
		position: absolute;
		left: 50%;
		top: 50%;
		display: block;
		overflow: hidden;
		width: 44px;
		height: 44px;
		padding: 0;
		border: 0;
		background: transparent;
		cursor: pointer;
		transform: translate(-50%, -50%);
	}

	.gnm-burger span {
		position: absolute;
		left: 11px;
		z-index: 1;
		width: 22px;
		height: 2px;
		border-radius: 2px;
		background: var(--gnm-deep);
		transition: top 0.3s ease 0.3s, transform 0.3s ease-out 0.1s;
	}

	.gnm-burger span:nth-child(1) { top: 14px; z-index: 3; }
	.gnm-burger span:nth-child(2) { top: 21px; }
	.gnm-burger span:nth-child(3) { top: 28px; z-index: 3; }

	.gnm-burger::after {
		content: "";
		position: absolute;
		top: -8px;
		right: 0;
		left: 0;
		z-index: 2;
		height: 22px;
		background: #fff;
		transition: top 0.3s ease 0.2s;
	}

	.gnm-header.is-open .gnm-burger span:nth-child(1),
	.gnm-header.is-open .gnm-burger span:nth-child(3) {
		top: 21px;
		transition: top 0.3s ease 0.1s, transform 0.3s ease-out 0.5s;
	}

	.gnm-header.is-open .gnm-burger span:nth-child(1) { transform: rotate(45deg); }
	.gnm-header.is-open .gnm-burger span:nth-child(3) { transform: rotate(-45deg); }
	.gnm-header.is-open .gnm-burger::after { top: 10px; }

	/* Menu plein écran, monte depuis le bas. */
	.gnm-nav {
		position: fixed;
		top: calc(var(--gnm-admin-h, 0px) + var(--gnm-head-h));
		right: 0;
		bottom: 0;
		left: 0;
		z-index: 1;
		flex: none;
		flex-direction: column;
		flex-wrap: nowrap;
		align-items: center;
		justify-content: center;
		justify-content: safe center;
		gap: 22px;
		padding: 24px 0;
		overflow-y: auto;
		font-size: 1.25rem;
		background: var(--gnm-deep) url("https://www.groupement-gnm.com/wp-content/uploads/2026/08/picto-gnm-simple.svg") top center / 150% no-repeat;
		transform: translateY(100%);
		visibility: hidden;
		transition: transform 0.4s ease, visibility 0.4s;
	}

	.gnm-header.is-open .gnm-nav {
		transform: none;
		visibility: visible;
	}

	.gnm-nav a {
		border: 0;
		color: #fff;
	}

	.gnm-nav a:hover,
	.gnm-nav a[aria-current="page"],
	.gnm-nav a.current-menu-item {
		border: 0;
		color: var(--gnm-accent);
	}

	body.gnm-nav-open {
		overflow: hidden;
	}

	.gnm-footer-top {
		grid-template-columns: 1fr;
		gap: 34px;
		padding: 42px 0;
	}
}

@media (max-width: 782px) {
	.admin-bar {
		--gnm-admin-h: 46px;
	}
}

@media (max-width: 767px) {
	body .et_pb_row {
		box-sizing: border-box;
		width: calc(100% - 48px) !important;
		max-width: calc(100% - 48px) !important;
	}

	body .et_pb_text h1 {
		font-size: clamp(2rem, 9.2vw, 2.45rem) !important;
		line-height: 1.08 !important;
		letter-spacing: 0 !important;
		white-space: normal !important;
		overflow-wrap: anywhere;
	}

	body .et_pb_text h2 {
		font-size: clamp(1.85rem, 8.5vw, 2.35rem) !important;
		line-height: 1.12 !important;
		letter-spacing: 0 !important;
		white-space: normal !important;
		overflow-wrap: anywhere;
	}

	body .et_pb_text p,
	body .et_pb_text li {
		font-size: 16px !important;
		line-height: 1.6 !important;
		white-space: normal !important;
		overflow-wrap: anywhere;
	}

	body .et_pb_button,
	body .et_pb_button.et_pb_button {
		max-width: 100%;
		white-space: normal;
		overflow-wrap: anywhere;
		line-height: 1.25 !important;
		text-align: center;
	}

	body.page-id-7 .et_pb_section_1 .et_pb_column_1 {
		display: grid !important;
		grid-template-columns: 1fr;
		gap: 0;
		float: none !important;
		width: 100% !important;
		max-width: 100% !important;
	}

	body.page-id-7 .et_pb_section_1 .et_pb_blurb {
		box-sizing: border-box;
		float: none !important;
		width: auto !important;
		max-width: none !important;
		margin: 0 !important;
		padding: 22px 24px !important;
	}

	body.page-id-7 .et_pb_section_1 .et_pb_module_header {
		font-size: 16px !important;
		line-height: 1.15 !important;
		overflow-wrap: normal;
	}

	body.page-id-7 .et_pb_section_1 .et_pb_blurb_description {
		font-size: 14px !important;
		line-height: 1.35 !important;
		overflow-wrap: normal;
	}

	.woocommerce ul.products,
	.woocommerce-page ul.products {
		display: grid !important;
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		gap: 22px !important;
		margin-right: 0 !important;
		margin-left: 0 !important;
	}

	.woocommerce ul.products li.product,
	.woocommerce-page ul.products li.product,
	.woocommerce ul.products li.product-category,
	.woocommerce-page ul.products li.product-category {
		float: none !important;
		clear: none !important;
		width: 100% !important;
		max-width: 100% !important;
		margin: 0 !important;
	}

	.woocommerce ul.products li.product .woocommerce-loop-product__title,
	.woocommerce-page ul.products li.product .woocommerce-loop-product__title,
	.woocommerce ul.products li.product-category .woocommerce-loop-category__title,
	.woocommerce-page ul.products li.product-category .woocommerce-loop-category__title {
		font-size: 15px !important;
		line-height: 1.22 !important;
		overflow-wrap: break-word;
	}

	body.page-id-956 .et_pb_text_inner {
		max-width: calc(100vw - 48px);
		overflow: hidden;
	}

	body.page-id-956 .et_pb_text h1 {
		font-size: 38px !important;
		line-height: 1.1 !important;
		white-space: normal !important;
		overflow-wrap: anywhere;
	}

	body.page-id-956 .et_pb_text p {
		max-width: calc(100vw - 48px);
		white-space: normal !important;
		overflow-wrap: anywhere;
	}
}

@media (max-width: 479px) {
	body .et_pb_row {
		width: calc(100% - 40px) !important;
		max-width: calc(100% - 40px) !important;
	}

	body.page-id-7 .et_pb_section_1 .et_pb_column_1 {
		grid-template-columns: 1fr;
	}

	.woocommerce ul.products,
	.woocommerce-page ul.products {
		grid-template-columns: 1fr !important;
		gap: 24px !important;
	}
}

/* Suppression du raccourci téléphone/rappel dans l'en-tête et en flottant. */
.gnm-header .gnm-phone,
.gnm-header .gnm-phone-icon,
.gnm-floating-phone,
.gnm-callback-tab,
.gnm-callback-button,
.callback-button,
.call-back-button,
a[href^="tel:"].gnm-phone,
a[href^="tel:"][class*="callback"],
a[href^="tel:"][class*="rappel"] {
	display: none !important;
	visibility: hidden !important;
	pointer-events: none !important;
}

.gnm-seo-home-h1 {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
}

body.page-id-751 .et_pb_blurb_4 {
	display: none !important;
}

/* Archives catalogue : présentation compacte et régulière sur les largeurs intermédiaires. */
@media (max-width: 980px) {
	body.archive.tax-product_cat.woocommerce ul.products,
	body.archive.tax-product_cat.woocommerce-page ul.products {
		display: grid !important;
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		gap: 24px 22px !important;
	}

	body.archive.tax-product_cat.woocommerce ul.products::before,
	body.archive.tax-product_cat.woocommerce ul.products::after,
	body.archive.tax-product_cat.woocommerce-page ul.products::before,
	body.archive.tax-product_cat.woocommerce-page ul.products::after {
		content: none !important;
		display: none !important;
	}

	body.archive.tax-product_cat.woocommerce ul.products li.product,
	body.archive.tax-product_cat.woocommerce-page ul.products li.product,
	body.archive.tax-product_cat.woocommerce ul.products li.product-category,
	body.archive.tax-product_cat.woocommerce-page ul.products li.product-category {
		float: none !important;
		clear: none !important;
		width: 100% !important;
		max-width: 100% !important;
		margin: 0 !important;
	}

	body.archive.tax-product_cat.woocommerce ul.products li.product .et_shop_image,
	body.archive.tax-product_cat.woocommerce-page ul.products li.product .et_shop_image {
		width: 100% !important;
		height: auto !important;
		min-height: 0 !important;
	}

	body.archive.tax-product_cat.woocommerce ul.products li.product .woocommerce-loop-product__title,
	body.archive.tax-product_cat.woocommerce-page ul.products li.product .woocommerce-loop-product__title,
	body.archive.tax-product_cat.woocommerce ul.products li.product-category .woocommerce-loop-category__title,
	body.archive.tax-product_cat.woocommerce-page ul.products li.product-category .woocommerce-loop-category__title {
		font-size: 14px !important;
		font-weight: 600 !important;
		line-height: 1.22 !important;
		overflow-wrap: normal !important;
		word-break: normal !important;
	}
}

/* Valeurs ajoutées : pictogrammes de secours lorsque Divi ne rend pas l'icône du blurb. */
.et_pb_column > .va .et_pb_blurb_content {
	position: relative;
	display: flex !important;
	align-items: center !important;
	gap: 16px;
}

.et_pb_column > .va .et_pb_blurb_content::before {
	content: "";
	flex: 0 0 48px;
	width: 48px;
	height: 48px;
	border-radius: 999px;
	background-color: rgba(96, 190, 185, 0.14);
	background-repeat: no-repeat;
	background-position: center;
	background-size: 25px 25px;
	box-shadow: inset 0 0 0 1px rgba(19, 126, 152, 0.22);
}

.et_pb_column > .va:nth-of-type(1) .et_pb_blurb_content::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 24 24' fill='none' stroke='%23003c49' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 10.5 12 3l9 7.5'/%3E%3Cpath d='M5 9.5V21h14V9.5'/%3E%3Cpath d='m9 14 2 2 4-5'/%3E%3C/svg%3E");
}

.et_pb_column > .va:nth-of-type(2) .et_pb_blurb_content::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 24 24' fill='none' stroke='%23003c49' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 19V5'/%3E%3Cpath d='M4 19h16'/%3E%3Cpath d='m7 15 4-4 3 3 5-7'/%3E%3Cpath d='M17 7h2v2'/%3E%3C/svg%3E");
}

.et_pb_column > .va:nth-of-type(3) .et_pb_blurb_content::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 24 24' fill='none' stroke='%23003c49' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10 13a5 5 0 0 0 7.07 0l2.12-2.12a5 5 0 0 0-7.07-7.07L11 4.93'/%3E%3Cpath d='M14 11a5 5 0 0 0-7.07 0L4.81 13.12a5 5 0 0 0 7.07 7.07L13 19.07'/%3E%3C/svg%3E");
}

.et_pb_column > .va:nth-of-type(4) .et_pb_blurb_content::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 24 24' fill='none' stroke='%23003c49' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='7' r='4'/%3E%3Cpath d='M5.5 21a6.5 6.5 0 0 1 13 0'/%3E%3Cpath d='m16.5 11.5 1.5 1.5 3-3'/%3E%3C/svg%3E");
}

.et_pb_column > .va .et_pb_blurb_container {
	min-width: 0;
}

@media (max-width: 767px) {
	.et_pb_column > .va .et_pb_blurb_content {
		align-items: flex-start !important;
		gap: 12px;
	}

	.et_pb_column > .va .et_pb_blurb_content::before {
		flex-basis: 42px;
		width: 42px;
		height: 42px;
		background-size: 22px 22px;
	}
}

/* Accueil : le CTA catalogue ne doit jamais se compresser en texte vertical. */
.home .et_pb_button_module_wrapper.et_pb_button_0_wrapper {
	display: flex !important;
	justify-content: flex-start;
	width: 100% !important;
	margin-top: 24px !important;
}

.home .et_pb_button_module_wrapper.et_pb_button_0_wrapper .et_pb_button {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	width: auto !important;
	min-width: min(100%, 320px);
	max-width: 100%;
	box-sizing: border-box;
	padding: 14px 24px !important;
	white-space: normal !important;
	word-break: normal !important;
	overflow-wrap: normal !important;
	text-align: center;
	line-height: 1.25 !important;
	letter-spacing: .03em;
}

@media (max-width: 767px) {
	.home .et_pb_button_module_wrapper.et_pb_button_0_wrapper {
		justify-content: stretch;
	}

	.home .et_pb_button_module_wrapper.et_pb_button_0_wrapper .et_pb_button {
		width: 100% !important;
		min-width: 0;
		padding-right: 18px !important;
		padding-left: 18px !important;
	}
}


/* GNM — lisibilite, formulaires et navigation responsive — 14 septembre 2026 */
body .wpcf7-form {min-width:0;}
body .wpcf7-form input:not([type="checkbox"]):not([type="submit"]), body .wpcf7-form select, body .wpcf7-form textarea {font-size:16px; min-height:46px; line-height:1.5;}
body .wpcf7-form textarea {min-height:160px;}
body .wpcf7-form .gnm-label-text {font-size:13px; line-height:1.45; letter-spacing:.025em;}
body .wpcf7-form .gnm-message-counter, body .wpcf7-form .rgpd label {color:#475f65;font-size:13px;line-height:1.6;}
body .wpcf7-form input.wpcf7-submit {min-height:48px;white-space:normal;background-color:#25596e;}
body .wpcf7-form input.wpcf7-submit:hover {background-color:#174354;}
body .wpcf7-form > p {min-width:0;}
body .wpcf7-form .wpcf7-response-output {grid-column:1 / -1;}
body.page-id-751 .et_pb_blurb_4 {display:block!important;}
body.page-id-747 .et_pb_row_4 > .et_pb_column_5 {flex-basis:100%!important;width:100%!important;max-width:800px;}
body.page-id-747 .et_pb_row_4 > .et_pb_column:empty {display:none;}
body .et_pb_button {white-space:normal;overflow-wrap:break-word;text-align:center;}
body .gnm-footer a {overflow-wrap:anywhere;}
body a:focus-visible, body button:focus-visible {outline:3px solid #137e98;outline-offset:4px;}
@media(max-width:980px){
 body .gnm-home-slider .swiper-button-prev, body .gnm-home-slider .swiper-button-next {top:auto;bottom:18px;margin-top:0;width:44px;height:44px;}
 body .gnm-home-slider .swiper-button-prev {left:24px;right:auto;}
 body .gnm-home-slider .swiper-button-next {left:82px;right:auto;}
 body .gnm-home-slider .gnm-slide-content {padding-bottom:88px;}
 body.page-id-956 .et_pb_column {flex-basis:100%!important;width:100%!important;}
 body.page-id-956 .et_pb_text_inner {max-width:100%;overflow:visible;}
}
@media(max-width:767px){
 body.page-id-749 .et_pb_section_0, body.page-id-745 .et_pb_section_0, body.page-id-751 .et_pb_section_0 {padding-top:40px!important;padding-bottom:56px!important;}
 body.page-id-749 .et_pb_section_0 h1, body.page-id-745 .et_pb_section_0 h1, body.page-id-751 .et_pb_section_0 h1 {font-size:32px!important;line-height:1.15!important;}
 body .wpcf7-form {grid-template-columns:minmax(0,1fr)!important;gap:18px!important;}
 body .wpcf7-form input.wpcf7-submit {width:100%;padding:14px 38px 14px 14px;}
}

/* GNM — catalogue responsive et images produits complètes, 14/09/2026 */
.gnm-product-layout .gnm-product-hero-main img{position:absolute;inset:0;width:100%!important;height:100%!important;object-fit:contain!important;background:#fff;}
#gnm-catalog .gnm-catalog-filter-panel>summary{cursor:pointer;padding:16px 18px;background:#003c49;color:#fff;border-radius:6px;font-weight:700;min-height:48px;}
#gnm-catalog .gnm-catalog-filter-panel[open]>summary{margin-bottom:16px;}
#gnm-catalog .gnm-catalog-filter-panel>summary:focus-visible{outline:3px solid #137e98;outline-offset:3px;}
@media(min-width:981px){#gnm-catalog .gnm-catalog-filter-panel>summary{display:none;}}

/* Contact : une seule colonne lisible sur mobile et tablette. */
@media(max-width:980px){
 body.page-id-749 .et_pb_row_1{flex-direction:column!important;gap:28px!important;}
 body.page-id-749 .et_pb_row_1>.et_pb_column{width:100%!important;flex-basis:auto!important;max-width:100%!important;}
 body.page-id-749 .et_pb_text_1,body.page-id-749 .et_pb_text_1 .et_pb_text_inner{width:100%!important;}
}

/* Adhésion : formulaire pleine largeur, contraste des mentions. */
:is(.gnm-form7,body.page-id-749 .et_pb_text_inner){--gnm-form-hint:#526870;--gnm-form-line:#c2d0d3;}
body .wpcf7-form .rgpd .wpcf7-list-item label{font-size:14px!important;line-height:1.5!important;color:#334b52!important;}
body .wpcf7-form .gnm-message-counter{font-size:13px!important;color:#526870!important;}
@media(max-width:980px){
 body.page-id-751 .et_pb_row_5{flex-direction:column!important;gap:28px!important;}
 body.page-id-751 .et_pb_row_5>.et_pb_column{width:100%!important;flex-basis:auto!important;max-width:100%!important;}
 body.page-id-751 .et_pb_column_5 .et_pb_text_4{padding:0!important;width:100%!important;}
 body.page-id-751 .et_pb_text_4 .et_pb_text_inner{width:100%!important;}
 body .wpcf7-form input.wpcf7-submit{width:100%!important;}
}

@media(max-width:980px){
 body.page-id-956 .et_pb_section_0 .et_pb_text_0 .et_pb_text_inner h1{max-width:100%!important;overflow-wrap:normal!important;word-break:normal!important;}
 body.page-id-956 .et_pb_section_0{padding-top:48px!important;padding-bottom:48px!important;}
}

/* Pages d’information : lecture confortable et liens identifiables. */
body.page-id-754 #main-content .container,body.page-id-1540 #main-content .container{max-width:820px;padding-top:56px;padding-bottom:64px;}
.gnm-information{font-size:16px;line-height:1.75;color:#334b52;}
.gnm-information h2{font-size:25px;line-height:1.3;margin-top:32px;margin-bottom:12px;color:#003c49;}
.gnm-information p{padding-bottom:16px;}
.gnm-information a,.gnm-privacy-note a{color:#11637a;text-decoration:underline;text-underline-offset:3px;}
.gnm-information a:focus-visible,.gnm-privacy-note a:focus-visible{outline:3px solid #137e98;outline-offset:3px;}
.gnm-antispam{margin-top:24px;padding:18px;background:#f2f7f7;border:1px solid #c2d0d3;border-radius:8px;}
.gnm-privacy-note{font-size:14px;line-height:1.6;margin-top:16px;}
@media(max-width:767px){body.page-id-754 #main-content .container,body.page-id-1540 #main-content .container{padding-top:36px;padding-bottom:40px;}.gnm-information h2{font-size:22px;}}

/* Archivo et Manrope : polices locales, SIL Open Font License 1.1. */
@font-face{font-family:Archivo;font-style:normal;font-weight:100 900;font-stretch:62% 125%;font-display:swap;src:url("/wp-content/uploads/fonts/gnm-archivo-latin.woff2") format("woff2");}
@font-face{font-family:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url("/wp-content/uploads/fonts/gnm-manrope-latin.woff2") format("woff2");}

/* Catalogue et fiches : même famille moderne que la navigation. */
body.woocommerce,body.page-id-747 .gnm-catalog,.gnm-product-layout,.gnm-catalog{font-family:Archivo,system-ui,sans-serif;}
body.woocommerce h1,body.woocommerce h2,body.woocommerce h3,body.woocommerce h4,.gnm-product-layout h1,.gnm-product-layout h2,.gnm-product-layout h3{font-family:Archivo,system-ui,sans-serif;}

/* Licences des polices : /wp-content/uploads/2026/09/gnm-licences-polices.txt */
#gnm-catalog{font-family:Archivo,system-ui,sans-serif;}
.gnm-map-choice{padding:24px;background:#f2f7f7;border:1px solid #c2d0d3;border-radius:10px;margin-bottom:16px;color:#334b52;line-height:1.65;}
.gnm-map-choice p{font-size:15px;max-width:65ch;}
.gnm-map-choice [role=status]:empty{display:none;}
.gnm-map-choice button{cursor:pointer;margin-top:12px;}
.gnm-map-choice button:disabled{opacity:.65;cursor:wait;}
.gnm-map-choice button:focus-visible{outline:3px solid #137e98;outline-offset:4px;}

/* Responsive : éviter les colonnes de texte comprimées sur téléphone/tablette. */
@media(max-width:980px){
 body.page-id-7 .et_pb_column_2{flex-direction:column!important;align-items:stretch!important;gap:24px!important;}
 body.page-id-7 .et_pb_column_2>.et_pb_module{width:100%!important;max-width:100%!important;min-width:0;}
 body.page-id-7 .et_pb_column_1,body.page-id-7 .et_pb_column_9{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:20px!important;}
 body.page-id-7 .et_pb_column_1>.et_pb_blurb,body.page-id-7 .et_pb_column_9>.et_pb_blurb{width:100%!important;min-width:0;max-width:100%!important;margin:0!important;box-sizing:border-box;}
 body.page-id-7 .et_pb_column_9 .et_pb_blurb_content,body.page-id-7 .et_pb_column_9 .et_pb_blurb_container{width:100%!important;max-width:100%!important;min-width:0;}
 body.page-id-747 .et_pb_column_4{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
}
@media(max-width:600px){
 body.page-id-7 .et_pb_column_1,body.page-id-7 .et_pb_column_9,body.page-id-747 .et_pb_column_4{grid-template-columns:minmax(0,1fr)!important;}
 body.page-id-7 .et_pb_code_1>.et_pb_code_inner{grid-template-columns:minmax(0,1fr)!important;}
 body.page-id-7 .et_pb_button{white-space:normal!important;text-align:center;max-width:100%;box-sizing:border-box;padding-left:20px!important;padding-right:20px!important;}
 body.page-id-7 .gnm-product-title,body.page-id-7 .gnm-product-category{letter-spacing:normal;}
}

/* Tablette paysage : cartes confortables et navigation sur une ligne. */
@media(min-width:981px) and (max-width:1199px){
 #gnm-catalog .gnm-catalog-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
 .gnm-header .gnm-header-in{width:calc(100% - 40px)!important;max-width:none!important;gap:16px;}
 .gnm-header .gnm-logo img{height:36px;}
 .gnm-header .gnm-nav{gap:16px;font-size:13px;flex-wrap:nowrap;}
 .gnm-header .gnm-nav a{white-space:nowrap;}
}

@media(max-width:980px){
 body.page-id-749 .wpcf7 input:not([type=submit]):not([type=checkbox]):not([type=hidden]),body.page-id-751 .wpcf7 input:not([type=submit]):not([type=checkbox]):not([type=hidden]),body.page-id-749 .wpcf7 select,body.page-id-751 .wpcf7 select,body.page-id-749 .wpcf7 textarea,body.page-id-751 .wpcf7 textarea{font-size:16px!important;}
}

/* Visuels fournisseurs : image entière, centrée et séparée des bords. */
.gnm-product img{object-fit:contain!important;object-position:center!important;aspect-ratio:4 / 3;padding:14px;box-sizing:border-box;background:#fff;}
.gnm-product-layout .gnm-product-hero-main img{object-position:center!important;padding:clamp(16px,3vw,32px);box-sizing:border-box;}
.gnm-product-layout .gnm-product-hero-thumb img{object-position:center;padding:8px;box-sizing:border-box;}
.woocommerce ul.products li.product .et_shop_image img,.woocommerce-page ul.products li.product .et_shop_image img{object-position:center!important;padding:12px;box-sizing:border-box;}


/* Bouton d'adhesion - finition GNM metallisee, visible sur chaque page. */
.gnm-header a.gnm-cta.et_pb_button,
.gnm-header a.gnm-cta.et_pb_button:hover {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 42px;
	margin: 0;
	padding: 10px 17px !important;
	border: 1px solid rgba(176, 239, 237, 0.62) !important;
	border-radius: 4px !important;
	background-color: #0b6178 !important;
	background-image:
		linear-gradient(135deg, rgba(255, 255, 255, 0.2) 0 8%, transparent 8% 44%, rgba(255, 255, 255, 0.1) 44% 49%, transparent 49% 100%),
		linear-gradient(100deg, #0a4357 0%, #117c94 46%, #63c0bb 100%) !important;
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.34), inset 0 -1px 0 rgba(0, 31, 41, 0.38), 0 5px 13px rgba(0, 60, 73, 0.2) !important;
	clip-path: none !important;
	color: #fff !important;
	font-size: 13px !important;
	font-weight: 800 !important;
	letter-spacing: 0.025em !important;
	line-height: 1.15 !important;
	text-decoration: none !important;
	text-transform: none !important;
	isolation: isolate;
	transition: transform 180ms ease, box-shadow 180ms ease, filter 180ms ease;
}

.gnm-header a.gnm-cta.et_pb_button::after {
	content: "";
	position: absolute !important;
	inset: 0 !important;
	display: block !important;
	width: auto !important;
	height: auto !important;
	background: linear-gradient(112deg, transparent 18%, rgba(255, 255, 255, 0.08) 30%, rgba(255, 255, 255, 0.58) 39%, rgba(255, 255, 255, 0.08) 48%, transparent 61%) 0 0 / 220% 100% !important;
	mix-blend-mode: screen;
	opacity: 0.74;
	pointer-events: none;
	animation: gnm-adhesion-shine 7s ease-in-out infinite !important;
	transform: none !important;
}

.gnm-header .gnm-cta-label,
.gnm-header .gnm-cta-icon {
	position: relative;
	z-index: 1;
}

.gnm-header a.gnm-cta.et_pb_button:hover {
	filter: brightness(1.07);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.44), inset 0 -1px 0 rgba(0, 31, 41, 0.32), 0 8px 18px rgba(0, 60, 73, 0.27) !important;
	transform: translateY(-1px);
}

.gnm-header a.gnm-cta.et_pb_button:focus-visible {
	outline: 3px solid #63c0bb;
	outline-offset: 3px;
}

@keyframes gnm-adhesion-shine {
	0%, 26% { background-position: 120% 0; }
	48%, 100% { background-position: -115% 0; }
}

@media (max-width: 980px) {
	.gnm-header a.gnm-cta.et_pb_button,
	.gnm-header a.gnm-cta.et_pb_button:hover {
		width: auto !important;
		height: auto !important;
		min-height: 38px;
		padding: 8px 11px !important;
		color: #fff !important;
	}

	.gnm-header .gnm-cta-label,
	.gnm-header .gnm-cta-label::before {
		display: inline !important;
		color: #fff !important;
		font-size: 11px !important;
	}

	.gnm-header .gnm-cta-icon { display: none !important; }
}
	/* Header desktop : navigation sur une ligne aux largeurs intermédiaires. */@media (min-width: 981px) and (max-width: 1350px) {  .gnm-header .gnm-header-in { width: calc(100% - 40px) !important; max-width: none !important; gap: 16px; }  .gnm-header .gnm-logo img { height: 36px; }  .gnm-header .gnm-nav { gap: 16px; font-size: 13px; flex-wrap: nowrap; }  .gnm-header .gnm-nav a { white-space: nowrap; }}


/* Adhésion : les trois étapes restent lisibles sur téléphone. */
@media (max-width: 767px) {
  body.page-id-751 .et_pb_row_4 .et_pb_text_3 ul {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 18px;
    margin: 0;
    padding: 0;
  }

  body.page-id-751 .et_pb_row_4 .et_pb_text_3 li {
    min-width: 0;
    padding: 18px 0;
    border-top: 1px solid rgba(37, 89, 110, 0.2);
  }

  body.page-id-751 .et_pb_row_4 .et_pb_text_3 li:first-child {
    padding-top: 0;
    border-top: 0;
  }
}


/* Page Adhérer — guide de fonctionnement et FAQ. */
.gnm-adherez-guide {
  width: min(1180px, calc(100% - 56px));
  box-sizing: border-box;
  margin: 72px auto 92px;
  padding: 48px;
  border-top: 5px solid #63c0bb;
  background: #f3f8f8;
  color: #17343b;
}
.gnm-adherez-guide__intro { max-width: 790px; }
.gnm-adherez-guide__eyebrow {
  margin: 0 0 12px;
  font-size: 12px;
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: .12em;
  color: #137e98;
}
.gnm-adherez-guide h2 {
  margin: 0 0 18px;
  color: #163b48;
  font-size: clamp(1.7rem, 2.7vw, 2.4rem);
  line-height: 1.1;
  font-weight: 800;
}
.gnm-adherez-guide p {
  margin: 0 0 16px;
  max-width: 76ch;
  font-size: 16px;
  line-height: 1.65;
}
.gnm-adherez-guide a {
  color: #11637a;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.gnm-adherez-guide__faq {
  max-width: 920px;
  margin-top: 38px;
}
.gnm-adherez-guide__faq h2 { font-size: 1.65rem; }
.gnm-adherez-guide details {
  border-top: 1px solid #c8dadd;
  background: rgba(255, 255, 255, .66);
}
.gnm-adherez-guide details:last-of-type { border-bottom: 1px solid #c8dadd; }
.gnm-adherez-guide summary {
  position: relative;
  padding: 16px 42px 16px 18px;
  cursor: pointer;
  color: #17343b;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.35;
  list-style: none;
}
.gnm-adherez-guide summary::-webkit-details-marker { display: none; }
.gnm-adherez-guide summary::after {
  content: "+";
  position: absolute;
  right: 18px;
  top: 50%;
  transform: translateY(-50%);
  color: #137e98;
  font-size: 26px;
  font-weight: 400;
  line-height: 1;
}
.gnm-adherez-guide details[open] summary::after { content: "-"; }
.gnm-adherez-guide details p { margin: 0; padding: 0 18px 18px; }
.gnm-adherez-guide__cta {
  margin: 34px 0 0 !important;
  padding-top: 22px;
  border-top: 1px solid #c8dadd;
  font-weight: 600;
}
@media (max-width: 767px) {
  .gnm-adherez-guide {
    width: calc(100% - 40px);
    margin: 48px auto 60px;
    padding: 30px 20px;
  }
  .gnm-adherez-guide h2 { font-size: clamp(1.65rem, 8vw, 2.1rem); }
  .gnm-adherez-guide p { font-size: 16px; line-height: 1.6; }
  .gnm-adherez-guide summary { padding: 15px 40px 15px 14px; font-size: 15px; }
  .gnm-adherez-guide details p { padding: 0 14px 16px; }
}


/* GNM - boutons publics unifies : finition adhesion, reflet et lisibilite. */
body:not(.wp-admin) .et_pb_button:not(.gnm-cta),
body:not(.wp-admin) .et_pb_button.slider-btn:not(.gnm-cta),
body:not(.wp-admin) .et_pb_button.white-bordered:not(.gnm-cta) {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  border: 0 !important;
  border-radius: 4px;
  clip-path: none;
  background-color: #0b6178 !important;
  background-image: linear-gradient(135deg, rgba(255,255,255,.20) 0 8%, transparent 8% 44%, rgba(255,255,255,.10) 44% 49%, transparent 49% 100%), linear-gradient(100deg, #0a4357 0%, #117c94 46%, #63c0bb 100%) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.34), inset 0 -1px 0 rgba(0,31,41,.38), 0 5px 13px rgba(0,60,73,.20);
  transition: transform .2s ease, box-shadow .2s ease, filter .2s ease;
}
body:not(.wp-admin) .et_pb_button:not(.gnm-cta)::before {
  content: "";
  display: block !important;
  position: absolute;
  top: -40%;
  left: -56%;
  width: 34%;
  height: 180%;
  pointer-events: none;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.40), transparent);
  transform: skewX(-18deg);
  opacity: 0;
  animation: gnm-button-shine 5.8s ease-in-out infinite;
}
body:not(.wp-admin) .et_pb_button:not(.gnm-cta):hover,
body:not(.wp-admin) .et_pb_button.slider-btn:not(.gnm-cta):hover,
body:not(.wp-admin) .et_pb_button.white-bordered:not(.gnm-cta):hover {
  background-color: #0b6178 !important;
  background-image: linear-gradient(135deg, rgba(255,255,255,.24) 0 8%, transparent 8% 44%, rgba(255,255,255,.14) 44% 49%, transparent 49% 100%), linear-gradient(100deg, #0b5269 0%, #158aa3 46%, #71c9c3 100%) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.42), inset 0 -1px 0 rgba(0,31,41,.32), 0 7px 16px rgba(0,60,73,.26);
  color: #fff !important;
  filter: none;
  transform: translateY(-1px);
}
@keyframes gnm-button-shine {
  0%, 56% { transform: translateX(0) skewX(-18deg); opacity: 0; }
  63% { opacity: .52; }
  80%, 100% { transform: translateX(510%) skewX(-18deg); opacity: 0; }
}
body .wpcf7-form input.wpcf7-submit {
  padding: 11px 24px;
  border: 0;
  border-radius: 4px;
  background-color: #0b6178 !important;
  background-image: linear-gradient(105deg, transparent 34%, rgba(255,255,255,.42) 45%, transparent 56%), linear-gradient(135deg, rgba(255,255,255,.20) 0 8%, transparent 8% 44%, rgba(255,255,255,.10) 44% 49%, transparent 49% 100%), linear-gradient(100deg, #0a4357 0%, #117c94 46%, #63c0bb 100%) !important;
  background-repeat: no-repeat;
  background-size: 250% 100%, 100% 100%, 100% 100%;
  background-position: -150% 0, 0 0, 0 0;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.34), inset 0 -1px 0 rgba(0,31,41,.38), 0 5px 13px rgba(0,60,73,.20);
  transition: transform .2s ease, box-shadow .2s ease;
  animation: gnm-submit-shine 5.8s ease-in-out infinite;
}
body .wpcf7-form input.wpcf7-submit:hover {
  box-shadow: inset 0 1px 0 rgba(255,255,255,.42), inset 0 -1px 0 rgba(0,31,41,.32), 0 7px 16px rgba(0,60,73,.26);
  transform: translateY(-1px);
}
@keyframes gnm-submit-shine {
  0%, 56% { background-position: -150% 0, 0 0, 0 0; }
  80%, 100% { background-position: 250% 0, 0 0, 0 0; }
}
@media (prefers-reduced-motion: reduce) {
  body:not(.wp-admin) .et_pb_button:not(.gnm-cta)::before { animation: none; opacity: .16; transform: translateX(135%) skewX(-18deg); }
  body .wpcf7-form input.wpcf7-submit { animation: none; background-position: 135% 0, 0 0, 0 0; }
}
@media (max-width: 980px) {
  .gnm-logo { max-width: calc(50% - 54px); }
}
/*
Theme Name: Divi Child
Theme URI: https://www.groupement-gnm.com/
Description: Theme enfant Divi pour GNM.
Author: Occtam
Template: Divi
Version: 1.0.0
Text Domain: divi-child
*/

/* Mapping Variables
lines = var()
cut = var(--gvid-9rnak1skq1)
*/

body{
    font-size:1.0625rem;
}

:root {
    --gnm-product-bar-1: var(--gcid-primary-color, #003c49);
    --gnm-product-bar-2: var(--gcid-secondary-color, #60beb9);
    --gnm-product-bar-3: var(--gcid-link-color, #137e98);
    --gnm-product-bar-height: 5px;
}

.et_pb_button,
.et_pb_button:hover{
	background:var(--gcid-primary-color);
	font-size:0.85rem;
	font-weight:700;
    padding: 1rem 2rem!important;
    border: none!important;
    white-space: nowrap;
    color: #fff!important;
    text-decoration: none;
    clip-path: polygon(
        0 10px,
		10px 0,
		calc(100% - 10px) 0,
		100% 10px,
		100% 100%,
		0 100%
    );
    transition: background-color .25s ease, color .25s ease;
	text-transform:uppercase;
	letter-spacing:0.1rem;
}
.et_pb_button.slider-btn,
.et_pb_button.slider-btn:hover{
	background:var(--gcid-link-color);
}
.et_pb_button.white-bordered,
.et_pb_button.white-bordered:hover{
	background:white;
	color:var(--gcid-primary-color)!important;
}
/*.et_pb_button::before{
	content:'';
	display:inline-block;
	width:20px;
	height:1px;
	background:white;
	position:relative;
	opacity:1;
	top:auto;
}*/
.et_pb_button::after{
	display:none;
}
.et_pb_button:hover,
.et_pb_button.white-bordered:hover{
	background:var(--gcid-secondary-color)!important;
	color:white!important
}


/* ============================================================
   :is(.gnm-form7, body.page-id-749 .et_pb_text_inner) — Contact Form 7 (module Code Divi)
   Scope : classe CSS du module → .et_pb_code_inner
   ============================================================ */

:is(.gnm-form7, body.page-id-749 .et_pb_text_inner) {
	--gnm-form-mid: var(--gcid-link-color, #137e98);
	--gnm-form-deep: var(--gcid-primary-color, #003c49);
	--gnm-form-accent: var(--gcid-secondary-color, #60beb9);
	--gnm-form-ink: #12262b;
	--gnm-form-line: #e3ecec;
	--gnm-form-wash: #f4f8f8;
	--gnm-form-hint: #8ba0a4;
	--gnm-form-err: #c0453c;
	--gnm-form-err-bg: #fff8f7;
	--gnm-form-focus-ring: rgba(19, 126, 152, 0.12);
}

:is(.gnm-form7, body.page-id-749 .et_pb_text_inner) .wpcf7-form {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 13px 16px;
	margin: 0;
}

:is(.gnm-form7, body.page-id-749 .et_pb_text_inner) .wpcf7-form > p,
:is(.gnm-form7, body.page-id-749 .et_pb_text_inner) .wpcf7-form > .rgpd,
:is(.gnm-form7, body.page-id-749 .et_pb_text_inner) .wpcf7-form > .wpcf7-response-output {
	margin: 0;
}

:is(.gnm-form7, body.page-id-749 .et_pb_text_inner) .wpcf7-form > p:not(:has(.half)),
:is(.gnm-form7, body.page-id-749 .et_pb_text_inner) .wpcf7-form > .rgpd,
:is(.gnm-form7, body.page-id-749 .et_pb_text_inner) .wpcf7-form > .wpcf7-response-output {
	grid-column: 1 / -1;
}

:is(.gnm-form7, body.page-id-749 .et_pb_text_inner) .wpcf7-form label {
	display: flex;
	flex-direction: column;
	gap: 4px;
	margin: 0;
	font-size: 11px;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--gnm-form-ink);
}

:is(.gnm-form7, body.page-id-749 .et_pb_text_inner) .gnm-label-text {
	display: flex;
	align-items: baseline;
	gap: 3px;
	line-height: 1.2;
}

:is(.gnm-form7, body.page-id-749 .et_pb_text_inner) .gnm-required {
	display: inline;
	color: var(--gnm-form-err);
	font-weight: 800;
}

:is(.gnm-form7, body.page-id-749 .et_pb_text_inner) .wpcf7-form-control-wrap {
	display: block;
}

:is(.gnm-form7, body.page-id-749 .et_pb_text_inner) .wpcf7-form input[type="text"],
:is(.gnm-form7, body.page-id-749 .et_pb_text_inner) .wpcf7-form input[type="email"],
:is(.gnm-form7, body.page-id-749 .et_pb_text_inner) .wpcf7-form input[type="tel"],
:is(.gnm-form7, body.page-id-749 .et_pb_text_inner) .wpcf7-form input[type="url"],
:is(.gnm-form7, body.page-id-749 .et_pb_text_inner) .wpcf7-form input[type="number"],
:is(.gnm-form7, body.page-id-749 .et_pb_text_inner) .wpcf7-form input[type="date"],
:is(.gnm-form7, body.page-id-749 .et_pb_text_inner) .wpcf7-form select,
:is(.gnm-form7, body.page-id-749 .et_pb_text_inner) .wpcf7-form textarea {
	box-sizing: border-box;
	width: 100%;
	margin: 0;
	padding: 10px 12px;
	border: 1px solid var(--gnm-form-line);
	border-radius: 3px;
	background: #fff;
	font-size: 15px;
	font-weight: 400;
	letter-spacing: normal;
	text-transform: none;
	color: var(--gnm-form-ink);
	transition: border-color 150ms ease, box-shadow 150ms ease;
}

:is(.gnm-form7, body.page-id-749 .et_pb_text_inner) .wpcf7-form textarea {
	min-height: 112px;
	resize: vertical;
}

:is(.gnm-form7, body.page-id-749 .et_pb_text_inner) .gnm-message-counter {
	display: block;
	margin-top: 5px;
	text-align: right;
	font-size: 12px;
	font-weight: 500;
	letter-spacing: normal;
	text-transform: none;
	color: var(--gnm-form-hint);
}

:is(.gnm-form7, body.page-id-749 .et_pb_text_inner) .gnm-message-counter.is-near-limit {
	color: var(--gnm-form-mid);
}

:is(.gnm-form7, body.page-id-749 .et_pb_text_inner) .gnm-message-counter.is-at-limit {
	color: var(--gnm-form-err);
	font-weight: 700;
}

:is(.gnm-form7, body.page-id-749 .et_pb_text_inner) .wpcf7-form input:focus,
:is(.gnm-form7, body.page-id-749 .et_pb_text_inner) .wpcf7-form select:focus,
:is(.gnm-form7, body.page-id-749 .et_pb_text_inner) .wpcf7-form textarea:focus {
	outline: none;
	border-color: var(--gnm-form-mid);
	box-shadow: 0 0 0 3px var(--gnm-form-focus-ring);
}

:is(.gnm-form7, body.page-id-749 .et_pb_text_inner) .wpcf7-form .wpcf7-not-valid {
	border-color: var(--gnm-form-err);
	background: var(--gnm-form-err-bg);
}

:is(.gnm-form7, body.page-id-749 .et_pb_text_inner) .wpcf7-not-valid-tip {
	display: block;
	margin-top: 7px;
	font-size: 12px;
	font-weight: 400;
	letter-spacing: normal;
	text-transform: none;
	color: var(--gnm-form-err);
}

/* Accueil — ligne de réassurance : conserver la trame webmaster,
   avec pictogramme en haut à gauche et texte sur toute la largeur. */
body.page-id-7 .et_pb_section_1 .et_pb_blurb_content {
	display: flex !important;
	flex-direction: column !important;
	align-items: flex-start !important;
	gap: 8px;
	max-width: none;
	margin: 0;
}

body.page-id-7 .et_pb_section_1 .et_pb_main_blurb_image {
	width: 34px !important;
	margin: 0 0 2px !important;
	line-height: 1;
	text-align: left;
}

body.page-id-7 .et_pb_section_1 .et_pb_image_wrap,
body.page-id-7 .et_pb_section_1 .et-pb-icon {
	display: block;
	width: 34px;
	height: 34px;
	font-size: 30px !important;
	line-height: 34px !important;
}

body.page-id-7 .et_pb_section_1 .et_pb_blurb_container {
	width: 100%;
	padding-left: 0 !important;
	text-align: left;
}

body.page-id-7 .et_pb_section_1 .et_pb_module_header {
	max-width: none;
	margin-bottom: 6px !important;
	word-break: normal;
	overflow-wrap: normal;
	hyphens: none;
}

body.page-id-7 .et_pb_section_1 .et_pb_blurb_description,
body.page-id-7 .et_pb_section_1 .et_pb_blurb_description small {
	display: block;
	max-width: none;
}

/* Select — flèche custom */
:is(.gnm-form7, body.page-id-749 .et_pb_text_inner) .wpcf7-form select {
	appearance: none;
	-webkit-appearance: none;
	padding-right: 42px;
	background-color: #fff;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%234d5f64' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 14px center;
	cursor: pointer;
}

/* Checkbox RGPD */
:is(.gnm-form7, body.page-id-749 .et_pb_text_inner) .rgpd {
	font-size: 12px;
	font-weight: 400;
	letter-spacing: normal;
	text-transform: none;
	color: var(--gnm-form-hint);
	line-height: 1.5;
}

:is(.gnm-form7, body.page-id-749 .et_pb_text_inner) .rgpd .wpcf7-list-item {
	display: block;
	margin: 0;
}

:is(.gnm-form7, body.page-id-749 .et_pb_text_inner) .rgpd .wpcf7-list-item label {
	flex-direction: row;
	align-items: flex-start;
	gap: 12px;
	font-size: 12px;
	font-weight: 400;
	letter-spacing: normal;
	text-transform: none;
	color: var(--gnm-form-hint);
	cursor: pointer;
}

:is(.gnm-form7, body.page-id-749 .et_pb_text_inner) .rgpd input[type="checkbox"] {
	appearance: none;
	-webkit-appearance: none;
	box-sizing: border-box;
	flex: none;
	width: 18px;
	height: 18px;
	margin: 1px 0 0;
	padding: 0;
	border: 1px solid var(--gnm-form-line);
	border-radius: 3px;
	background: #fff;
	cursor: pointer;
	transition: border-color 150ms ease, background-color 150ms ease, box-shadow 150ms ease;
}

:is(.gnm-form7, body.page-id-749 .et_pb_text_inner) .rgpd input[type="checkbox"]:checked {
	border-color: var(--gnm-form-mid);
	background-color: var(--gnm-form-mid);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='10' viewBox='0 0 12 10' fill='none'%3E%3Cpath d='M1 5L4.5 8.5L11 1.5' stroke='%23fff' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: center;
	background-size: 12px 10px;
}

:is(.gnm-form7, body.page-id-749 .et_pb_text_inner) .rgpd input[type="checkbox"]:focus-visible {
	outline: none;
	border-color: var(--gnm-form-mid);
	box-shadow: 0 0 0 3px var(--gnm-form-focus-ring);
}

/* Bouton envoi */
:is(.gnm-form7, body.page-id-749 .et_pb_text_inner) .wpcf7-form input.wpcf7-submit {
	display: inline-block;
	width: auto;
	max-width: 100%;
	padding: 11px 42px 11px 22px;
	border: none;
	border-radius: 2px;
	background-color: var(--gcid-primary-color);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='12' viewBox='0 0 18 12' fill='none'%3E%3Cpath d='M0 6H16M16 6L11 1M16 6L11 11' stroke='%23fff' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 18px center;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.02em;
	text-transform: none;
	color: #fff;
	cursor: pointer;
	transition: background-color 0.25s ease;
}

:is(.gnm-form7, body.page-id-749 .et_pb_text_inner) .wpcf7-form input.wpcf7-submit:hover {
	background-color: var(--gcid-secondary-color);
}

:is(.gnm-form7, body.page-id-749 .et_pb_text_inner) .wpcf7-form input.wpcf7-submit:focus-visible {
	outline: none;
	box-shadow: 0 0 0 3px var(--gnm-form-focus-ring);
}

:is(.gnm-form7, body.page-id-749 .et_pb_text_inner) .wpcf7-spinner {
	margin-left: 10px;
}

/* Réponse CF7 */
:is(.gnm-form7, body.page-id-749 .et_pb_text_inner) .wpcf7-response-output {
	margin-top: 4px;
	padding: 16px 18px;
	border: 1px solid var(--gnm-form-line);
	border-radius: 4px;
	background: var(--gnm-form-wash);
	font-size: 14px;
	color: var(--gnm-form-ink);
}

:is(.gnm-form7, body.page-id-749 .et_pb_text_inner) .wpcf7 form.sent .wpcf7-response-output {
	border-left: 4px solid var(--gnm-form-accent);
}

:is(.gnm-form7, body.page-id-749 .et_pb_text_inner) .wpcf7 form.invalid .wpcf7-response-output,
:is(.gnm-form7, body.page-id-749 .et_pb_text_inner) .wpcf7 form.failed .wpcf7-response-output,
:is(.gnm-form7, body.page-id-749 .et_pb_text_inner) .wpcf7 form.aborted .wpcf7-response-output {
	border-color: var(--gnm-form-err);
	background: var(--gnm-form-err-bg);
	color: var(--gnm-form-err);
}

@media (max-width: 900px) {
	:is(.gnm-form7, body.page-id-749 .et_pb_text_inner) .wpcf7-form {
		grid-template-columns: 1fr;
	}
}


/* ============================================================
   Header + footer — desktop d'abord, puis un seul palier mobile
   ============================================================ */

/* Palette Divi réelle : primary #25596e, secondary #137e98, link #63c0bb.
   deep   = fond sombre (footer, menu mobile, burger)
   mid    = accent lisible sur blanc  (nav active, surtitre header)
   accent = accent lisible sur sombre (surtitres footer, hovers) */
:root {
	--gnm-deep: var(--gcid-heading-color, #163b48);
	--gnm-mid: var(--gcid-secondary-color, #137e98);
	--gnm-accent: var(--gcid-link-color, #63c0bb);
	--gnm-ink: #12262b;
	--gnm-line: #e3ecec;

	/* Hauteur totale du header, liseré et bordure comprises.
	   Seul endroit où ce nombre est écrit. */
	--gnm-head-h: 82px;

	--gnm-title-font: var(--et_global_heading_font, sans-serif), system-ui, sans-serif;
}

.admin-bar {
	--gnm-admin-h: 32px;
}

/* Divi pose « .et-tb-has-header #page-container{padding-top:0!important} »
   dans la media query ≤980px. On reprend la même spécificité pour repasser
   devant, et la règle reste juste si les templates Theme Builder sont retirés. */
body #page-container,
.et-tb-has-header #page-container {
	padding-top: var(--gnm-head-h) !important;
}

.gnm-header .et_pb_row,
.gnm-footer .et_pb_row {
	padding-top: 0;
	padding-bottom: 0;
	margin-bottom: 0;
}

.gnm-header .et_pb_row::after,
.gnm-footer .et_pb_row::after {
	content: none;
}


/* ---------- header ---------- */

.gnm-header {
	position: fixed;
	top: var(--gnm-admin-h, 0px);
	right: 0;
	left: 0;
	z-index: 70;
	padding-top: var(--gnm-product-bar-height);
	border-bottom: 1px solid var(--gnm-line);
	background:
		linear-gradient(
			90deg,
			var(--gnm-product-bar-1) 0 33.333%,
			var(--gnm-product-bar-2) 33.333% 66.666%,
			var(--gnm-product-bar-3) 66.666%
		) top / 100% var(--gnm-product-bar-height) no-repeat,
		#fff;
}

.gnm-burger,
.gnm-phone-icon,
.gnm-cta-icon {
	display: none;
}

.gnm-header-in {
	position: relative;
	display: flex;
	align-items: center;
	gap: 28px;
	min-height: calc(var(--gnm-head-h) - var(--gnm-product-bar-height) - 1px);
}

.gnm-logo {
	flex: none;
	line-height: 0;
}

.gnm-logo img {
	display: block;
	height: 46px;
	width: auto;
}

.gnm-nav {
	display: flex;
	flex: 1 1 auto;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 28px;
	min-width: 0;
	font-family: var(--gnm-title-font);
	font-size: 0.9rem;
	font-weight: 700;
}

.gnm-nav a {
	padding: 4px 0;
	border-bottom: 2px solid transparent;
	color: var(--gnm-ink);
	text-decoration: none;
	transition: color .2s ease, border-color .2s ease;
}

.gnm-nav a:hover,
.gnm-nav a[aria-current="page"],
.gnm-nav a.current-menu-item {
	border-color: var(--gnm-mid);
	color: var(--gnm-mid);
}

.gnm-head-side {
	flex: none;
	display: flex;
	align-items: center;
	gap: 18px;
}

.gnm-phone {
	font-family: var(--gnm-title-font);
	color: var(--gnm-ink);
	text-decoration: none;
	font-size: 0.9rem;
	font-weight: 700;
	line-height: 1.2;
	transition: color .2s ease;
}

.gnm-phone:hover {
	color: var(--gnm-mid);
}

.gnm-phone-label {
	display: block;
	margin-bottom: 2px;
	font-size: 0.65rem;
	font-weight: 600;
	letter-spacing: 0.11em;
	text-transform: uppercase;
	color: var(--gnm-mid);
}

.gnm-header .et_pb_button {
	padding: 0.7rem 1.35rem !important;
	margin: 0;
}


/* ---------- footer ---------- */

.gnm-footer {
	position: relative;
	overflow: hidden;
	background: #0b262e;
	color: rgba(255, 255, 255, 0.8);
	font-size: 14.5px;
	line-height: 1.6;
	padding: 50px 0 20px;
}

.gnm-footer a {
	color: rgba(255, 255, 255, 0.86);
	text-decoration: none;
	transition: color .2s ease;
}

.gnm-footer a:hover {
	color: var(--gnm-accent);
}

.gnm-footer-top {
	display: grid;
	grid-template-columns: 1.5fr 1fr 1.2fr;
	gap: 48px;
	padding: 56px 0;
}

.gnm-footer-logo {
	display: inline-block;
	margin-bottom: 18px;
	line-height: 0;
}

.gnm-footer-logo img {
	display: block;
	height: 50px;
	width: auto;
}

.gnm-footer-brand p {
	margin: 0;
	max-width: 44ch;
}

.gnm-footer-title {
	margin: 0 0 16px;
	padding: 0;
	font-family: var(--gnm-title-font);
	color: #fff;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.gnm-footer-nav {
	display: flex;
	flex-direction: column;
	gap: 9px;
}

.gnm-footer-row {
	margin-bottom: 14px;
}

.gnm-footer-row span {
	display: block;
	margin-bottom: 3px;
	font-family: var(--gnm-title-font);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--gnm-accent);
}

.gnm-footer-bar {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 16px;
	padding: 15px 0 0!important;
	border-top: 1px solid rgba(255, 255, 255, 0.14);
	font-size: 12.5px;
	color: rgba(255, 255, 255, 0.66);
}

.gnm-footer-legal a {
	color: rgba(255, 255, 255, 0.66);
}

.gnm-footer-legal a:hover {
	color: var(--gnm-accent);
}

/* Catalogue WooCommerce — préserver les visuels fournisseurs.
   Les plaquettes, photos produit et schémas ont des formats différents :
   on garde les cartes régulières sans recadrer les images. */
.woocommerce ul.products li.product .et_shop_image,
.woocommerce-page ul.products li.product .et_shop_image,
.woocommerce ul.products li.product-category a > img,
.woocommerce-page ul.products li.product-category a > img {
	display: flex;
	align-items: center;
	justify-content: center;
	aspect-ratio: 4 / 3;
	width: 100%;
	overflow: hidden;
	border: 1px solid #e3ecec;
	border-radius: 6px;
	background: #f4f8f8;
}

.woocommerce ul.products li.product .et_shop_image img,
.woocommerce-page ul.products li.product .et_shop_image img,
.woocommerce ul.products li.product-category a > img,
.woocommerce-page ul.products li.product-category a > img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
	object-position: center;
	background: #fff;
}

.woocommerce ul.products li.product .et_shop_image .et_overlay,
.woocommerce-page ul.products li.product .et_shop_image .et_overlay {
	inset: 0;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce-page ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product-category .woocommerce-loop-category__title,
.woocommerce-page ul.products li.product-category .woocommerce-loop-category__title {
	overflow-wrap: anywhere;
}

/* Finition premium GNM — bibliothèques et fiches produit.
   Surcouche volontairement légère : on garde la structure webmaster, on rend
   la lecture plus dense, plus régulière et plus proche de la charte GNM. */
body.archive.tax-product_cat.woocommerce #main-content .container,
body.archive.tax-product_brand.woocommerce #main-content .container,
body.single-product.woocommerce #main-content .container {
	width: min(1180px, calc(100% - 56px));
	max-width: 1180px;
	padding-top: 34px;
}

body.archive.tax-product_cat.woocommerce .woocommerce-products-header,
body.archive.tax-product_brand.woocommerce .woocommerce-products-header {
	margin-bottom: 22px;
	padding-bottom: 18px;
	border-bottom: 1px solid #dbe8e8;
}

body.archive.tax-product_cat.woocommerce .woocommerce-products-header__title,
body.archive.tax-product_brand.woocommerce .woocommerce-products-header__title,
body.archive.tax-product_cat.woocommerce .page-title,
body.archive.tax-product_brand.woocommerce .page-title {
	max-width: 840px;
	margin: 0 0 8px;
	font-size: clamp(2rem, 3.2vw, 3.1rem);
	font-weight: 800;
	line-height: 1.02;
	letter-spacing: 0;
	color: var(--gcid-primary-color, #003c49);
}

body.archive.tax-product_cat.woocommerce .term-description,
body.archive.tax-product_brand.woocommerce .term-description {
	max-width: 760px;
	margin: 0 0 18px;
	color: #405a60;
}

body.archive.tax-product_cat.woocommerce .term-description p,
body.archive.tax-product_brand.woocommerce .term-description p {
	font-size: 15.5px;
	line-height: 1.55;
}

body.archive.tax-product_cat.woocommerce .woocommerce-result-count,
body.archive.tax-product_cat.woocommerce .woocommerce-ordering,
body.archive.tax-product_brand.woocommerce .woocommerce-result-count,
body.archive.tax-product_brand.woocommerce .woocommerce-ordering {
	display: none !important;
}

body.archive.tax-product_cat.woocommerce ul.products,
body.archive.tax-product_brand.woocommerce ul.products,
body.post-type-archive-product.woocommerce ul.products {
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 26px 24px;
	align-items: stretch;
	margin: 0 !important;
}

body.archive.tax-product_cat.woocommerce ul.products::before,
body.archive.tax-product_cat.woocommerce ul.products::after,
body.archive.tax-product_brand.woocommerce ul.products::before,
body.archive.tax-product_brand.woocommerce ul.products::after,
body.post-type-archive-product.woocommerce ul.products::before,
body.post-type-archive-product.woocommerce ul.products::after {
	content: none !important;
	display: none !important;
}

body.archive.tax-product_cat.woocommerce ul.products li.product,
body.archive.tax-product_brand.woocommerce ul.products li.product,
body.post-type-archive-product.woocommerce ul.products li.product {
	position: relative;
	float: none !important;
	display: flex;
	width: 100% !important;
	margin: 0 !important;
	padding: 0 0 12px !important;
	border: 1px solid #dceaea;
	border-radius: 7px;
	background: #fff;
	box-shadow: 0 12px 30px rgba(0, 60, 73, 0.06);
	transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease;
}

body.archive.tax-product_cat.woocommerce ul.products li.product:hover,
body.archive.tax-product_brand.woocommerce ul.products li.product:hover,
body.post-type-archive-product.woocommerce ul.products li.product:hover {
	border-color: rgba(96, 190, 185, 0.72);
	box-shadow: 0 18px 38px rgba(0, 60, 73, 0.1);
	transform: translateY(-2px);
}

body.archive.tax-product_cat.woocommerce ul.products li.product a.woocommerce-LoopProduct-link,
body.archive.tax-product_brand.woocommerce ul.products li.product a.woocommerce-LoopProduct-link,
body.post-type-archive-product.woocommerce ul.products li.product a.woocommerce-LoopProduct-link {
	display: flex;
	flex-direction: column;
	width: 100%;
	color: inherit;
}

body.archive.tax-product_cat.woocommerce ul.products li.product .et_shop_image,
body.archive.tax-product_brand.woocommerce ul.products li.product .et_shop_image,
body.post-type-archive-product.woocommerce ul.products li.product .et_shop_image {
	aspect-ratio: 16 / 11;
	margin: 0;
	border: 0;
	border-bottom: 1px solid #e4eeee;
	border-radius: 7px 7px 0 0;
	background: linear-gradient(180deg, #f8fbfb 0%, #eef6f6 100%);
}

body.archive.tax-product_cat.woocommerce ul.products li.product .et_shop_image img,
body.archive.tax-product_brand.woocommerce ul.products li.product .et_shop_image img,
body.post-type-archive-product.woocommerce ul.products li.product .et_shop_image img {
	padding: 8px;
	background: transparent;
	object-fit: contain;
}

body.archive.tax-product_cat.woocommerce ul.products li.product .woocommerce-loop-product__title,
body.archive.tax-product_brand.woocommerce ul.products li.product .woocommerce-loop-product__title,
body.post-type-archive-product.woocommerce ul.products li.product .woocommerce-loop-product__title {
	padding: 13px 14px 0 !important;
	font-size: 15px !important;
	font-weight: 700 !important;
	line-height: 1.2 !important;
	letter-spacing: 0 !important;
	color: var(--gcid-primary-color, #003c49);
	text-transform: none;
}

body.archive.tax-product_cat.woocommerce ul.products li.product .woocommerce-loop-category__title,
body.archive.tax-product_brand.woocommerce ul.products li.product .woocommerce-loop-category__title,
body.post-type-archive-product.woocommerce ul.products li.product .woocommerce-loop-category__title {
	padding: 13px 14px 0 !important;
	font-size: 15px !important;
	line-height: 1.2 !important;
}

body.single-product.woocommerce div.product {
	display: grid;
	grid-template-columns: minmax(0, 0.92fr) minmax(340px, 1.08fr);
	gap: 34px;
	align-items: start;
}

body.single-product.woocommerce div.product div.images,
body.single-product.woocommerce div.product div.summary {
	float: none !important;
	width: auto !important;
	margin: 0 !important;
}

body.single-product.woocommerce div.product div.images {
	position: sticky;
	top: calc(var(--gnm-head-h, 86px) + 22px);
}

body.single-product.woocommerce div.product .product_title {
	margin-bottom: 12px;
	font-size: clamp(2rem, 3vw, 3rem);
	font-weight: 800;
	line-height: 1.03;
	letter-spacing: 0;
	color: var(--gcid-primary-color, #003c49);
}

body.single-product.woocommerce div.product .woocommerce-product-gallery__image,
body.single-product.woocommerce div.product div.images .flex-viewport {
	border-radius: 7px;
	background: #f7fbfb;
}

body.single-product.woocommerce div.product div.images .flex-control-thumbs {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 10px;
	margin-top: 12px;
}

body.single-product.woocommerce div.product div.images .flex-control-thumbs li {
	width: auto !important;
	margin: 0 !important;
}

body.single-product.woocommerce div.product div.images .flex-control-thumbs img {
	aspect-ratio: 1 / 1;
	border: 1px solid #dceaea;
	border-radius: 5px;
	background: #fff;
	object-fit: contain;
}

.gnm-product-hero-resources {
	margin-top: 22px !important;
	padding: 18px !important;
	border: 1px solid #dceaea;
	border-radius: 7px;
	background: #f6fbfb;
}

.gnm-product-hero-resources-title {
	margin-bottom: 12px !important;
	font-size: 11px !important;
	font-weight: 800 !important;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--gcid-primary-color, #003c49);
}

.gnm-product-hero-resource-links {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.gnm-product-hero-resource-link,
.gnm-product-hero-resource-links a {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	min-height: 42px;
	padding: 11px 16px !important;
	border: 1px solid var(--gcid-primary-color, #003c49) !important;
	border-radius: 4px !important;
	background: var(--gcid-primary-color, #003c49) !important;
	color: #fff !important;
	font-size: 12px !important;
	font-weight: 800 !important;
	line-height: 1.2 !important;
	letter-spacing: 0.06em !important;
	text-transform: uppercase;
	clip-path: none !important;
}

.gnm-product-hero-resource-link-alt,
.gnm-product-hero-resource-links a.gnm-product-hero-resource-link-alt {
	background: #fff !important;
	color: var(--gcid-primary-color, #003c49) !important;
}

.gnm-product-hero-resource-link:hover,
.gnm-product-hero-resource-links a:hover {
	border-color: var(--gcid-secondary-color, #60beb9) !important;
	background: var(--gcid-secondary-color, #60beb9) !important;
	color: #fff !important;
}

@media (max-width: 1180px) {
	body.archive.tax-product_cat.woocommerce ul.products,
	body.archive.tax-product_brand.woocommerce ul.products,
	body.post-type-archive-product.woocommerce ul.products {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (max-width: 980px) {
	body.single-product.woocommerce div.product {
		display: block;
	}

	body.single-product.woocommerce div.product div.images {
		position: static;
		margin-bottom: 26px !important;
	}
}

@media (max-width: 760px) {
	body.archive.tax-product_cat.woocommerce #main-content .container,
	body.archive.tax-product_brand.woocommerce #main-content .container,
	body.single-product.woocommerce #main-content .container {
		width: calc(100% - 36px);
		padding-top: 24px;
	}

	body.archive.tax-product_cat.woocommerce ul.products,
	body.archive.tax-product_brand.woocommerce ul.products,
	body.post-type-archive-product.woocommerce ul.products {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 18px 16px;
	}

	body.archive.tax-product_cat.woocommerce ul.products li.product .woocommerce-loop-product__title,
	body.archive.tax-product_brand.woocommerce ul.products li.product .woocommerce-loop-product__title,
	body.post-type-archive-product.woocommerce ul.products li.product .woocommerce-loop-product__title {
		font-size: 13.5px !important;
		line-height: 1.18 !important;
	}
}

@media (max-width: 460px) {
	body.archive.tax-product_cat.woocommerce ul.products,
	body.archive.tax-product_brand.woocommerce ul.products,
	body.post-type-archive-product.woocommerce ul.products {
		grid-template-columns: 1fr;
	}
}


/* ============================================================
   Mobile
   ============================================================ */

@media (max-width: 980px) {
	:root {
		--gnm-head-h: 70px;
	}

	html,
	body,
	#page-container {
		max-width: 100%;
		overflow-x: hidden;
	}

	/* Le logo ne peut jamais atteindre le burger, qui reste centré écran. */
	.gnm-logo {
		flex: 0 1 auto;
		min-width: 0;
		max-width: calc(50% - 32px);
	}

	.gnm-logo img {
		height: 34px;
		max-width: 100%;
		object-fit: contain;
		object-position: left center;
	}

	.gnm-phone-label,
	.gnm-phone-num,
	.gnm-cta-label {
		display: none;
	}

	.gnm-phone-icon,
	.gnm-cta-icon {
		display: block;
	}

	.gnm-phone,
	.gnm-header .gnm-cta,
	.gnm-header .gnm-cta:hover {
		display: flex;
		align-items: center;
		justify-content: center;
		width: 42px;
		height: 42px;
		padding: 0 !important;
		background: none !important;
		color: var(--gnm-deep) !important;
		clip-path: none;
	}

	.gnm-head-side {
		gap: 4px;
		margin-left: auto;
	}

	/* Burger — modèle 3 : deux barres qui pivotent, la médiane masquée
	   par le cache ::after qui descend. */
	.gnm-burger {
		position: absolute;
		left: 50%;
		top: 50%;
		display: block;
		overflow: hidden;
		width: 44px;
		height: 44px;
		padding: 0;
		border: 0;
		background: transparent;
		cursor: pointer;
		transform: translate(-50%, -50%);
	}

	.gnm-burger span {
		position: absolute;
		left: 11px;
		z-index: 1;
		width: 22px;
		height: 2px;
		border-radius: 2px;
		background: var(--gnm-deep);
		transition: top 0.3s ease 0.3s, transform 0.3s ease-out 0.1s;
	}

	.gnm-burger span:nth-child(1) { top: 14px; z-index: 3; }
	.gnm-burger span:nth-child(2) { top: 21px; }
	.gnm-burger span:nth-child(3) { top: 28px; z-index: 3; }

	.gnm-burger::after {
		content: "";
		position: absolute;
		top: -8px;
		right: 0;
		left: 0;
		z-index: 2;
		height: 22px;
		background: #fff;
		transition: top 0.3s ease 0.2s;
	}

	.gnm-header.is-open .gnm-burger span:nth-child(1),
	.gnm-header.is-open .gnm-burger span:nth-child(3) {
		top: 21px;
		transition: top 0.3s ease 0.1s, transform 0.3s ease-out 0.5s;
	}

	.gnm-header.is-open .gnm-burger span:nth-child(1) { transform: rotate(45deg); }
	.gnm-header.is-open .gnm-burger span:nth-child(3) { transform: rotate(-45deg); }
	.gnm-header.is-open .gnm-burger::after { top: 10px; }

	/* Menu plein écran, monte depuis le bas. */
	.gnm-nav {
		position: fixed;
		top: calc(var(--gnm-admin-h, 0px) + var(--gnm-head-h));
		right: 0;
		bottom: 0;
		left: 0;
		z-index: 1;
		flex: none;
		flex-direction: column;
		flex-wrap: nowrap;
		align-items: center;
		justify-content: center;
		justify-content: safe center;
		gap: 22px;
		padding: 24px 0;
		overflow-y: auto;
		font-size: 1.25rem;
		background: var(--gnm-deep) url("https://www.groupement-gnm.com/wp-content/uploads/2026/08/picto-gnm-simple.svg") top center / 150% no-repeat;
		transform: translateY(100%);
		visibility: hidden;
		transition: transform 0.4s ease, visibility 0.4s;
	}

	.gnm-header.is-open .gnm-nav {
		transform: none;
		visibility: visible;
	}

	.gnm-nav a {
		border: 0;
		color: #fff;
	}

	.gnm-nav a:hover,
	.gnm-nav a[aria-current="page"],
	.gnm-nav a.current-menu-item {
		border: 0;
		color: var(--gnm-accent);
	}

	body.gnm-nav-open {
		overflow: hidden;
	}

	.gnm-footer-top {
		grid-template-columns: 1fr;
		gap: 34px;
		padding: 42px 0;
	}
}

@media (max-width: 782px) {
	.admin-bar {
		--gnm-admin-h: 46px;
	}
}

@media (max-width: 767px) {
	body .et_pb_row {
		box-sizing: border-box;
		width: calc(100% - 48px) !important;
		max-width: calc(100% - 48px) !important;
	}

	body .et_pb_text h1 {
		font-size: clamp(2rem, 9.2vw, 2.45rem) !important;
		line-height: 1.08 !important;
		letter-spacing: 0 !important;
		white-space: normal !important;
		overflow-wrap: anywhere;
	}

	body .et_pb_text h2 {
		font-size: clamp(1.85rem, 8.5vw, 2.35rem) !important;
		line-height: 1.12 !important;
		letter-spacing: 0 !important;
		white-space: normal !important;
		overflow-wrap: anywhere;
	}

	body .et_pb_text p,
	body .et_pb_text li {
		font-size: 16px !important;
		line-height: 1.6 !important;
		white-space: normal !important;
		overflow-wrap: anywhere;
	}

	body .et_pb_button,
	body .et_pb_button.et_pb_button {
		max-width: 100%;
		white-space: normal;
		overflow-wrap: anywhere;
		line-height: 1.25 !important;
		text-align: center;
	}

	body.page-id-7 .et_pb_section_1 .et_pb_column_1 {
		display: grid !important;
		grid-template-columns: 1fr;
		gap: 0;
		float: none !important;
		width: 100% !important;
		max-width: 100% !important;
	}

	body.page-id-7 .et_pb_section_1 .et_pb_blurb {
		box-sizing: border-box;
		float: none !important;
		width: auto !important;
		max-width: none !important;
		margin: 0 !important;
		padding: 22px 24px !important;
	}

	body.page-id-7 .et_pb_section_1 .et_pb_module_header {
		font-size: 16px !important;
		line-height: 1.15 !important;
		overflow-wrap: normal;
	}

	body.page-id-7 .et_pb_section_1 .et_pb_blurb_description {
		font-size: 14px !important;
		line-height: 1.35 !important;
		overflow-wrap: normal;
	}

	.woocommerce ul.products,
	.woocommerce-page ul.products {
		display: grid !important;
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		gap: 22px !important;
		margin-right: 0 !important;
		margin-left: 0 !important;
	}

	.woocommerce ul.products li.product,
	.woocommerce-page ul.products li.product,
	.woocommerce ul.products li.product-category,
	.woocommerce-page ul.products li.product-category {
		float: none !important;
		clear: none !important;
		width: 100% !important;
		max-width: 100% !important;
		margin: 0 !important;
	}

	.woocommerce ul.products li.product .woocommerce-loop-product__title,
	.woocommerce-page ul.products li.product .woocommerce-loop-product__title,
	.woocommerce ul.products li.product-category .woocommerce-loop-category__title,
	.woocommerce-page ul.products li.product-category .woocommerce-loop-category__title {
		font-size: 15px !important;
		line-height: 1.22 !important;
		overflow-wrap: break-word;
	}

	body.page-id-956 .et_pb_text_inner {
		max-width: calc(100vw - 48px);
		overflow: hidden;
	}

	body.page-id-956 .et_pb_text h1 {
		font-size: 38px !important;
		line-height: 1.1 !important;
		white-space: normal !important;
		overflow-wrap: anywhere;
	}

	body.page-id-956 .et_pb_text p {
		max-width: calc(100vw - 48px);
		white-space: normal !important;
		overflow-wrap: anywhere;
	}
}

@media (max-width: 479px) {
	body .et_pb_row {
		width: calc(100% - 40px) !important;
		max-width: calc(100% - 40px) !important;
	}

	body.page-id-7 .et_pb_section_1 .et_pb_column_1 {
		grid-template-columns: 1fr;
	}

	.woocommerce ul.products,
	.woocommerce-page ul.products {
		grid-template-columns: 1fr !important;
		gap: 24px !important;
	}
}

/* Suppression du raccourci téléphone/rappel dans l'en-tête et en flottant. */
.gnm-header .gnm-phone,
.gnm-header .gnm-phone-icon,
.gnm-floating-phone,
.gnm-callback-tab,
.gnm-callback-button,
.callback-button,
.call-back-button,
a[href^="tel:"].gnm-phone,
a[href^="tel:"][class*="callback"],
a[href^="tel:"][class*="rappel"] {
	display: none !important;
	visibility: hidden !important;
	pointer-events: none !important;
}

.gnm-seo-home-h1 {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
}

body.page-id-751 .et_pb_blurb_4 {
	display: none !important;
}

/* Archives catalogue : présentation compacte et régulière sur les largeurs intermédiaires. */
@media (max-width: 980px) {
	body.archive.tax-product_cat.woocommerce ul.products,
	body.archive.tax-product_cat.woocommerce-page ul.products {
		display: grid !important;
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		gap: 24px 22px !important;
	}

	body.archive.tax-product_cat.woocommerce ul.products::before,
	body.archive.tax-product_cat.woocommerce ul.products::after,
	body.archive.tax-product_cat.woocommerce-page ul.products::before,
	body.archive.tax-product_cat.woocommerce-page ul.products::after {
		content: none !important;
		display: none !important;
	}

	body.archive.tax-product_cat.woocommerce ul.products li.product,
	body.archive.tax-product_cat.woocommerce-page ul.products li.product,
	body.archive.tax-product_cat.woocommerce ul.products li.product-category,
	body.archive.tax-product_cat.woocommerce-page ul.products li.product-category {
		float: none !important;
		clear: none !important;
		width: 100% !important;
		max-width: 100% !important;
		margin: 0 !important;
	}

	body.archive.tax-product_cat.woocommerce ul.products li.product .et_shop_image,
	body.archive.tax-product_cat.woocommerce-page ul.products li.product .et_shop_image {
		width: 100% !important;
		height: auto !important;
		min-height: 0 !important;
	}

	body.archive.tax-product_cat.woocommerce ul.products li.product .woocommerce-loop-product__title,
	body.archive.tax-product_cat.woocommerce-page ul.products li.product .woocommerce-loop-product__title,
	body.archive.tax-product_cat.woocommerce ul.products li.product-category .woocommerce-loop-category__title,
	body.archive.tax-product_cat.woocommerce-page ul.products li.product-category .woocommerce-loop-category__title {
		font-size: 14px !important;
		font-weight: 600 !important;
		line-height: 1.22 !important;
		overflow-wrap: normal !important;
		word-break: normal !important;
	}
}

/* Valeurs ajoutées : pictogrammes de secours lorsque Divi ne rend pas l'icône du blurb. */
.et_pb_column > .va .et_pb_blurb_content {
	position: relative;
	display: flex !important;
	align-items: center !important;
	gap: 16px;
}

.et_pb_column > .va .et_pb_blurb_content::before {
	content: "";
	flex: 0 0 48px;
	width: 48px;
	height: 48px;
	border-radius: 999px;
	background-color: rgba(96, 190, 185, 0.14);
	background-repeat: no-repeat;
	background-position: center;
	background-size: 25px 25px;
	box-shadow: inset 0 0 0 1px rgba(19, 126, 152, 0.22);
}

.et_pb_column > .va:nth-of-type(1) .et_pb_blurb_content::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 24 24' fill='none' stroke='%23003c49' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 10.5 12 3l9 7.5'/%3E%3Cpath d='M5 9.5V21h14V9.5'/%3E%3Cpath d='m9 14 2 2 4-5'/%3E%3C/svg%3E");
}

.et_pb_column > .va:nth-of-type(2) .et_pb_blurb_content::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 24 24' fill='none' stroke='%23003c49' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 19V5'/%3E%3Cpath d='M4 19h16'/%3E%3Cpath d='m7 15 4-4 3 3 5-7'/%3E%3Cpath d='M17 7h2v2'/%3E%3C/svg%3E");
}

.et_pb_column > .va:nth-of-type(3) .et_pb_blurb_content::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 24 24' fill='none' stroke='%23003c49' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10 13a5 5 0 0 0 7.07 0l2.12-2.12a5 5 0 0 0-7.07-7.07L11 4.93'/%3E%3Cpath d='M14 11a5 5 0 0 0-7.07 0L4.81 13.12a5 5 0 0 0 7.07 7.07L13 19.07'/%3E%3C/svg%3E");
}

.et_pb_column > .va:nth-of-type(4) .et_pb_blurb_content::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 24 24' fill='none' stroke='%23003c49' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='7' r='4'/%3E%3Cpath d='M5.5 21a6.5 6.5 0 0 1 13 0'/%3E%3Cpath d='m16.5 11.5 1.5 1.5 3-3'/%3E%3C/svg%3E");
}

.et_pb_column > .va .et_pb_blurb_container {
	min-width: 0;
}

@media (max-width: 767px) {
	.et_pb_column > .va .et_pb_blurb_content {
		align-items: flex-start !important;
		gap: 12px;
	}

	.et_pb_column > .va .et_pb_blurb_content::before {
		flex-basis: 42px;
		width: 42px;
		height: 42px;
		background-size: 22px 22px;
	}
}

/* Accueil : le CTA catalogue ne doit jamais se compresser en texte vertical. */
.home .et_pb_button_module_wrapper.et_pb_button_0_wrapper {
	display: flex !important;
	justify-content: flex-start;
	width: 100% !important;
	margin-top: 24px !important;
}

.home .et_pb_button_module_wrapper.et_pb_button_0_wrapper .et_pb_button {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	width: auto !important;
	min-width: min(100%, 320px);
	max-width: 100%;
	box-sizing: border-box;
	padding: 14px 24px !important;
	white-space: normal !important;
	word-break: normal !important;
	overflow-wrap: normal !important;
	text-align: center;
	line-height: 1.25 !important;
	letter-spacing: .03em;
}

@media (max-width: 767px) {
	.home .et_pb_button_module_wrapper.et_pb_button_0_wrapper {
		justify-content: stretch;
	}

	.home .et_pb_button_module_wrapper.et_pb_button_0_wrapper .et_pb_button {
		width: 100% !important;
		min-width: 0;
		padding-right: 18px !important;
		padding-left: 18px !important;
	}
}


/* GNM — lisibilite, formulaires et navigation responsive — 14 septembre 2026 */
body .wpcf7-form {min-width:0;}
body .wpcf7-form input:not([type="checkbox"]):not([type="submit"]), body .wpcf7-form select, body .wpcf7-form textarea {font-size:16px; min-height:46px; line-height:1.5;}
body .wpcf7-form textarea {min-height:160px;}
body .wpcf7-form .gnm-label-text {font-size:13px; line-height:1.45; letter-spacing:.025em;}
body .wpcf7-form .gnm-message-counter, body .wpcf7-form .rgpd label {color:#475f65;font-size:13px;line-height:1.6;}
body .wpcf7-form input.wpcf7-submit {min-height:48px;white-space:normal;background-color:#25596e;}
body .wpcf7-form input.wpcf7-submit:hover {background-color:#174354;}
body .wpcf7-form > p {min-width:0;}
body .wpcf7-form .wpcf7-response-output {grid-column:1 / -1;}
body.page-id-751 .et_pb_blurb_4 {display:block!important;}
body.page-id-747 .et_pb_row_4 > .et_pb_column_5 {flex-basis:100%!important;width:100%!important;max-width:800px;}
body.page-id-747 .et_pb_row_4 > .et_pb_column:empty {display:none;}
body .et_pb_button {white-space:normal;overflow-wrap:break-word;text-align:center;}
body .gnm-footer a {overflow-wrap:anywhere;}
body a:focus-visible, body button:focus-visible {outline:3px solid #137e98;outline-offset:4px;}
@media(max-width:980px){
 body .gnm-home-slider .swiper-button-prev, body .gnm-home-slider .swiper-button-next {top:auto;bottom:18px;margin-top:0;width:44px;height:44px;}
 body .gnm-home-slider .swiper-button-prev {left:24px;right:auto;}
 body .gnm-home-slider .swiper-button-next {left:82px;right:auto;}
 body .gnm-home-slider .gnm-slide-content {padding-bottom:88px;}
 body.page-id-956 .et_pb_column {flex-basis:100%!important;width:100%!important;}
 body.page-id-956 .et_pb_text_inner {max-width:100%;overflow:visible;}
}
@media(max-width:767px){
 body.page-id-749 .et_pb_section_0, body.page-id-745 .et_pb_section_0, body.page-id-751 .et_pb_section_0 {padding-top:40px!important;padding-bottom:56px!important;}
 body.page-id-749 .et_pb_section_0 h1, body.page-id-745 .et_pb_section_0 h1, body.page-id-751 .et_pb_section_0 h1 {font-size:32px!important;line-height:1.15!important;}
 body .wpcf7-form {grid-template-columns:minmax(0,1fr)!important;gap:18px!important;}
 body .wpcf7-form input.wpcf7-submit {width:100%;padding:14px 38px 14px 14px;}
}

/* GNM — catalogue responsive et images produits complètes, 14/09/2026 */
.gnm-product-layout .gnm-product-hero-main img{position:absolute;inset:0;width:100%!important;height:100%!important;object-fit:contain!important;background:#fff;}
#gnm-catalog .gnm-catalog-filter-panel>summary{cursor:pointer;padding:16px 18px;background:#003c49;color:#fff;border-radius:6px;font-weight:700;min-height:48px;}
#gnm-catalog .gnm-catalog-filter-panel[open]>summary{margin-bottom:16px;}
#gnm-catalog .gnm-catalog-filter-panel>summary:focus-visible{outline:3px solid #137e98;outline-offset:3px;}
@media(min-width:981px){#gnm-catalog .gnm-catalog-filter-panel>summary{display:none;}}

/* Contact : une seule colonne lisible sur mobile et tablette. */
@media(max-width:980px){
 body.page-id-749 .et_pb_row_1{flex-direction:column!important;gap:28px!important;}
 body.page-id-749 .et_pb_row_1>.et_pb_column{width:100%!important;flex-basis:auto!important;max-width:100%!important;}
 body.page-id-749 .et_pb_text_1,body.page-id-749 .et_pb_text_1 .et_pb_text_inner{width:100%!important;}
}

/* Adhésion : formulaire pleine largeur, contraste des mentions. */
:is(.gnm-form7,body.page-id-749 .et_pb_text_inner){--gnm-form-hint:#526870;--gnm-form-line:#c2d0d3;}
body .wpcf7-form .rgpd .wpcf7-list-item label{font-size:14px!important;line-height:1.5!important;color:#334b52!important;}
body .wpcf7-form .gnm-message-counter{font-size:13px!important;color:#526870!important;}
@media(max-width:980px){
 body.page-id-751 .et_pb_row_5{flex-direction:column!important;gap:28px!important;}
 body.page-id-751 .et_pb_row_5>.et_pb_column{width:100%!important;flex-basis:auto!important;max-width:100%!important;}
 body.page-id-751 .et_pb_column_5 .et_pb_text_4{padding:0!important;width:100%!important;}
 body.page-id-751 .et_pb_text_4 .et_pb_text_inner{width:100%!important;}
 body .wpcf7-form input.wpcf7-submit{width:100%!important;}
}

@media(max-width:980px){
 body.page-id-956 .et_pb_section_0 .et_pb_text_0 .et_pb_text_inner h1{max-width:100%!important;overflow-wrap:normal!important;word-break:normal!important;}
 body.page-id-956 .et_pb_section_0{padding-top:48px!important;padding-bottom:48px!important;}
}

/* Pages d’information : lecture confortable et liens identifiables. */
body.page-id-754 #main-content .container,body.page-id-1540 #main-content .container{max-width:820px;padding-top:56px;padding-bottom:64px;}
.gnm-information{font-size:16px;line-height:1.75;color:#334b52;}
.gnm-information h2{font-size:25px;line-height:1.3;margin-top:32px;margin-bottom:12px;color:#003c49;}
.gnm-information p{padding-bottom:16px;}
.gnm-information a,.gnm-privacy-note a{color:#11637a;text-decoration:underline;text-underline-offset:3px;}
.gnm-information a:focus-visible,.gnm-privacy-note a:focus-visible{outline:3px solid #137e98;outline-offset:3px;}
.gnm-antispam{margin-top:24px;padding:18px;background:#f2f7f7;border:1px solid #c2d0d3;border-radius:8px;}
.gnm-privacy-note{font-size:14px;line-height:1.6;margin-top:16px;}
@media(max-width:767px){body.page-id-754 #main-content .container,body.page-id-1540 #main-content .container{padding-top:36px;padding-bottom:40px;}.gnm-information h2{font-size:22px;}}

/* Archivo et Manrope : polices locales, SIL Open Font License 1.1. */
@font-face{font-family:Archivo;font-style:normal;font-weight:100 900;font-stretch:62% 125%;font-display:swap;src:url("/wp-content/uploads/fonts/gnm-archivo-latin.woff2") format("woff2");}
@font-face{font-family:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url("/wp-content/uploads/fonts/gnm-manrope-latin.woff2") format("woff2");}

/* Catalogue et fiches : même famille moderne que la navigation. */
body.woocommerce,body.page-id-747 .gnm-catalog,.gnm-product-layout,.gnm-catalog{font-family:Archivo,system-ui,sans-serif;}
body.woocommerce h1,body.woocommerce h2,body.woocommerce h3,body.woocommerce h4,.gnm-product-layout h1,.gnm-product-layout h2,.gnm-product-layout h3{font-family:Archivo,system-ui,sans-serif;}

/* Licences des polices : /wp-content/uploads/2026/09/gnm-licences-polices.txt */
#gnm-catalog{font-family:Archivo,system-ui,sans-serif;}
.gnm-map-choice{padding:24px;background:#f2f7f7;border:1px solid #c2d0d3;border-radius:10px;margin-bottom:16px;color:#334b52;line-height:1.65;}
.gnm-map-choice p{font-size:15px;max-width:65ch;}
.gnm-map-choice [role=status]:empty{display:none;}
.gnm-map-choice button{cursor:pointer;margin-top:12px;}
.gnm-map-choice button:disabled{opacity:.65;cursor:wait;}
.gnm-map-choice button:focus-visible{outline:3px solid #137e98;outline-offset:4px;}

/* Responsive : éviter les colonnes de texte comprimées sur téléphone/tablette. */
@media(max-width:980px){
 body.page-id-7 .et_pb_column_2{flex-direction:column!important;align-items:stretch!important;gap:24px!important;}
 body.page-id-7 .et_pb_column_2>.et_pb_module{width:100%!important;max-width:100%!important;min-width:0;}
 body.page-id-7 .et_pb_column_1,body.page-id-7 .et_pb_column_9{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:20px!important;}
 body.page-id-7 .et_pb_column_1>.et_pb_blurb,body.page-id-7 .et_pb_column_9>.et_pb_blurb{width:100%!important;min-width:0;max-width:100%!important;margin:0!important;box-sizing:border-box;}
 body.page-id-7 .et_pb_column_9 .et_pb_blurb_content,body.page-id-7 .et_pb_column_9 .et_pb_blurb_container{width:100%!important;max-width:100%!important;min-width:0;}
 body.page-id-747 .et_pb_column_4{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
}
@media(max-width:600px){
 body.page-id-7 .et_pb_column_1,body.page-id-7 .et_pb_column_9,body.page-id-747 .et_pb_column_4{grid-template-columns:minmax(0,1fr)!important;}
 body.page-id-7 .et_pb_code_1>.et_pb_code_inner{grid-template-columns:minmax(0,1fr)!important;}
 body.page-id-7 .et_pb_button{white-space:normal!important;text-align:center;max-width:100%;box-sizing:border-box;padding-left:20px!important;padding-right:20px!important;}
 body.page-id-7 .gnm-product-title,body.page-id-7 .gnm-product-category{letter-spacing:normal;}
}

/* Tablette paysage : cartes confortables et navigation sur une ligne. */
@media(min-width:981px) and (max-width:1199px){
 #gnm-catalog .gnm-catalog-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
 .gnm-header .gnm-header-in{width:calc(100% - 40px)!important;max-width:none!important;gap:16px;}
 .gnm-header .gnm-logo img{height:36px;}
 .gnm-header .gnm-nav{gap:16px;font-size:13px;flex-wrap:nowrap;}
 .gnm-header .gnm-nav a{white-space:nowrap;}
}

@media(max-width:980px){
 body.page-id-749 .wpcf7 input:not([type=submit]):not([type=checkbox]):not([type=hidden]),body.page-id-751 .wpcf7 input:not([type=submit]):not([type=checkbox]):not([type=hidden]),body.page-id-749 .wpcf7 select,body.page-id-751 .wpcf7 select,body.page-id-749 .wpcf7 textarea,body.page-id-751 .wpcf7 textarea{font-size:16px!important;}
}

/* Visuels fournisseurs : image entière, centrée et séparée des bords. */
.gnm-product img{object-fit:contain!important;object-position:center!important;aspect-ratio:4 / 3;padding:14px;box-sizing:border-box;background:#fff;}
.gnm-product-layout .gnm-product-hero-main img{object-position:center!important;padding:clamp(16px,3vw,32px);box-sizing:border-box;}
.gnm-product-layout .gnm-product-hero-thumb img{object-position:center;padding:8px;box-sizing:border-box;}
.woocommerce ul.products li.product .et_shop_image img,.woocommerce-page ul.products li.product .et_shop_image img{object-position:center!important;padding:12px;box-sizing:border-box;}


/* Bouton d'adhesion - finition GNM metallisee, visible sur chaque page. */
.gnm-header a.gnm-cta.et_pb_button,
.gnm-header a.gnm-cta.et_pb_button:hover {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 42px;
	margin: 0;
	padding: 10px 17px !important;
	border: 1px solid rgba(176, 239, 237, 0.62) !important;
	border-radius: 4px !important;
	background-color: #0b6178 !important;
	background-image:
		linear-gradient(135deg, rgba(255, 255, 255, 0.2) 0 8%, transparent 8% 44%, rgba(255, 255, 255, 0.1) 44% 49%, transparent 49% 100%),
		linear-gradient(100deg, #0a4357 0%, #117c94 46%, #63c0bb 100%) !important;
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.34), inset 0 -1px 0 rgba(0, 31, 41, 0.38), 0 5px 13px rgba(0, 60, 73, 0.2) !important;
	clip-path: none !important;
	color: #fff !important;
	font-size: 13px !important;
	font-weight: 800 !important;
	letter-spacing: 0.025em !important;
	line-height: 1.15 !important;
	text-decoration: none !important;
	text-transform: none !important;
	isolation: isolate;
	transition: transform 180ms ease, box-shadow 180ms ease, filter 180ms ease;
}

.gnm-header a.gnm-cta.et_pb_button::after {
	content: "";
	position: absolute !important;
	inset: 0 !important;
	display: block !important;
	width: auto !important;
	height: auto !important;
	background: linear-gradient(112deg, transparent 18%, rgba(255, 255, 255, 0.08) 30%, rgba(255, 255, 255, 0.58) 39%, rgba(255, 255, 255, 0.08) 48%, transparent 61%) 0 0 / 220% 100% !important;
	mix-blend-mode: screen;
	opacity: 0.74;
	pointer-events: none;
	animation: gnm-adhesion-shine 7s ease-in-out infinite !important;
	transform: none !important;
}

.gnm-header .gnm-cta-label,
.gnm-header .gnm-cta-icon {
	position: relative;
	z-index: 1;
}

.gnm-header a.gnm-cta.et_pb_button:hover {
	filter: brightness(1.07);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.44), inset 0 -1px 0 rgba(0, 31, 41, 0.32), 0 8px 18px rgba(0, 60, 73, 0.27) !important;
	transform: translateY(-1px);
}

.gnm-header a.gnm-cta.et_pb_button:focus-visible {
	outline: 3px solid #63c0bb;
	outline-offset: 3px;
}

@keyframes gnm-adhesion-shine {
	0%, 26% { background-position: 120% 0; }
	48%, 100% { background-position: -115% 0; }
}

@media (max-width: 980px) {
	.gnm-header a.gnm-cta.et_pb_button,
	.gnm-header a.gnm-cta.et_pb_button:hover {
		width: auto !important;
		height: auto !important;
		min-height: 38px;
		padding: 8px 11px !important;
		color: #fff !important;
	}

	.gnm-header .gnm-cta-label,
	.gnm-header .gnm-cta-label::before {
		display: inline !important;
		color: #fff !important;
		font-size: 11px !important;
	}

	.gnm-header .gnm-cta-icon { display: none !important; }
}
	/* Header desktop : navigation sur une ligne aux largeurs intermédiaires. */@media (min-width: 981px) and (max-width: 1350px) {  .gnm-header .gnm-header-in { width: calc(100% - 40px) !important; max-width: none !important; gap: 16px; }  .gnm-header .gnm-logo img { height: 36px; }  .gnm-header .gnm-nav { gap: 16px; font-size: 13px; flex-wrap: nowrap; }  .gnm-header .gnm-nav a { white-space: nowrap; }}


/* Adhésion : les trois étapes restent lisibles sur téléphone. */
@media (max-width: 767px) {
  body.page-id-751 .et_pb_row_4 .et_pb_text_3 ul {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 18px;
    margin: 0;
    padding: 0;
  }

  body.page-id-751 .et_pb_row_4 .et_pb_text_3 li {
    min-width: 0;
    padding: 18px 0;
    border-top: 1px solid rgba(37, 89, 110, 0.2);
  }

  body.page-id-751 .et_pb_row_4 .et_pb_text_3 li:first-child {
    padding-top: 0;
    border-top: 0;
  }
}


/* Page Adhérer — guide de fonctionnement et FAQ. */
.gnm-adherez-guide {
  width: min(1180px, calc(100% - 56px));
  box-sizing: border-box;
  margin: 72px auto 92px;
  padding: 48px;
  border-top: 5px solid #63c0bb;
  background: #f3f8f8;
  color: #17343b;
}
.gnm-adherez-guide__intro { max-width: 790px; }
.gnm-adherez-guide__eyebrow {
  margin: 0 0 12px;
  font-size: 12px;
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: .12em;
  color: #137e98;
}
.gnm-adherez-guide h2 {
  margin: 0 0 18px;
  color: #163b48;
  font-size: clamp(1.7rem, 2.7vw, 2.4rem);
  line-height: 1.1;
  font-weight: 800;
}
.gnm-adherez-guide p {
  margin: 0 0 16px;
  max-width: 76ch;
  font-size: 16px;
  line-height: 1.65;
}
.gnm-adherez-guide a {
  color: #11637a;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.gnm-adherez-guide__faq {
  max-width: 920px;
  margin-top: 38px;
}
.gnm-adherez-guide__faq h2 { font-size: 1.65rem; }
.gnm-adherez-guide details {
  border-top: 1px solid #c8dadd;
  background: rgba(255, 255, 255, .66);
}
.gnm-adherez-guide details:last-of-type { border-bottom: 1px solid #c8dadd; }
.gnm-adherez-guide summary {
  position: relative;
  padding: 16px 42px 16px 18px;
  cursor: pointer;
  color: #17343b;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.35;
  list-style: none;
}
.gnm-adherez-guide summary::-webkit-details-marker { display: none; }
.gnm-adherez-guide summary::after {
  content: "+";
  position: absolute;
  right: 18px;
  top: 50%;
  transform: translateY(-50%);
  color: #137e98;
  font-size: 26px;
  font-weight: 400;
  line-height: 1;
}
.gnm-adherez-guide details[open] summary::after { content: "-"; }
.gnm-adherez-guide details p { margin: 0; padding: 0 18px 18px; }
.gnm-adherez-guide__cta {
  margin: 34px 0 0 !important;
  padding-top: 22px;
  border-top: 1px solid #c8dadd;
  font-weight: 600;
}
@media (max-width: 767px) {
  .gnm-adherez-guide {
    width: calc(100% - 40px);
    margin: 48px auto 60px;
    padding: 30px 20px;
  }
  .gnm-adherez-guide h2 { font-size: clamp(1.65rem, 8vw, 2.1rem); }
  .gnm-adherez-guide p { font-size: 16px; line-height: 1.6; }
  .gnm-adherez-guide summary { padding: 15px 40px 15px 14px; font-size: 15px; }
  .gnm-adherez-guide details p { padding: 0 14px 16px; }
}


/* GNM - boutons publics unifies : finition adhesion, reflet et lisibilite. */
body:not(.wp-admin) .et_pb_button:not(.gnm-cta),
body:not(.wp-admin) .et_pb_button.slider-btn:not(.gnm-cta),
body:not(.wp-admin) .et_pb_button.white-bordered:not(.gnm-cta) {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  border: 0 !important;
  border-radius: 4px;
  clip-path: none;
  background-color: #0b6178 !important;
  background-image: linear-gradient(135deg, rgba(255,255,255,.20) 0 8%, transparent 8% 44%, rgba(255,255,255,.10) 44% 49%, transparent 49% 100%), linear-gradient(100deg, #0a4357 0%, #117c94 46%, #63c0bb 100%) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.34), inset 0 -1px 0 rgba(0,31,41,.38), 0 5px 13px rgba(0,60,73,.20);
  transition: transform .2s ease, box-shadow .2s ease, filter .2s ease;
}
body:not(.wp-admin) .et_pb_button:not(.gnm-cta)::before {
  content: "";
  display: block !important;
  position: absolute;
  top: -40%;
  left: -56%;
  width: 34%;
  height: 180%;
  pointer-events: none;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.40), transparent);
  transform: skewX(-18deg);
  opacity: 0;
  animation: gnm-button-shine 5.8s ease-in-out infinite;
}
body:not(.wp-admin) .et_pb_button:not(.gnm-cta):hover,
body:not(.wp-admin) .et_pb_button.slider-btn:not(.gnm-cta):hover,
body:not(.wp-admin) .et_pb_button.white-bordered:not(.gnm-cta):hover {
  background-color: #0b6178 !important;
  background-image: linear-gradient(135deg, rgba(255,255,255,.24) 0 8%, transparent 8% 44%, rgba(255,255,255,.14) 44% 49%, transparent 49% 100%), linear-gradient(100deg, #0b5269 0%, #158aa3 46%, #71c9c3 100%) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.42), inset 0 -1px 0 rgba(0,31,41,.32), 0 7px 16px rgba(0,60,73,.26);
  color: #fff !important;
  filter: none;
  transform: translateY(-1px);
}
@keyframes gnm-button-shine {
  0%, 56% { transform: translateX(0) skewX(-18deg); opacity: 0; }
  63% { opacity: .52; }
  80%, 100% { transform: translateX(510%) skewX(-18deg); opacity: 0; }
}
body .wpcf7-form input.wpcf7-submit {
  padding: 11px 24px;
  border: 0;
  border-radius: 4px;
  background-color: #0b6178 !important;
  background-image: linear-gradient(105deg, transparent 34%, rgba(255,255,255,.42) 45%, transparent 56%), linear-gradient(135deg, rgba(255,255,255,.20) 0 8%, transparent 8% 44%, rgba(255,255,255,.10) 44% 49%, transparent 49% 100%), linear-gradient(100deg, #0a4357 0%, #117c94 46%, #63c0bb 100%) !important;
  background-repeat: no-repeat;
  background-size: 250% 100%, 100% 100%, 100% 100%;
  background-position: -150% 0, 0 0, 0 0;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.34), inset 0 -1px 0 rgba(0,31,41,.38), 0 5px 13px rgba(0,60,73,.20);
  transition: transform .2s ease, box-shadow .2s ease;
  animation: gnm-submit-shine 5.8s ease-in-out infinite;
}
body .wpcf7-form input.wpcf7-submit:hover {
  box-shadow: inset 0 1px 0 rgba(255,255,255,.42), inset 0 -1px 0 rgba(0,31,41,.32), 0 7px 16px rgba(0,60,73,.26);
  transform: translateY(-1px);
}
@keyframes gnm-submit-shine {
  0%, 56% { background-position: -150% 0, 0 0, 0 0; }
  80%, 100% { background-position: 250% 0, 0 0, 0 0; }
}
@media (prefers-reduced-motion: reduce) {
  body:not(.wp-admin) .et_pb_button:not(.gnm-cta)::before { animation: none; opacity: .16; transform: translateX(135%) skewX(-18deg); }
  body .wpcf7-form input.wpcf7-submit { animation: none; background-position: 135% 0, 0 0, 0 0; }
}
@media (max-width: 980px) {
  .gnm-logo { max-width: calc(50% - 54px); }
}

/* GNM - bouton de formulaire : meme rayon que les appels a action. */
body .wpcf7-form input.wpcf7-submit { border-radius: 4px !important; }


/* Accueil - CTA d'adhesion : le libelle reste un vrai texte, jamais un pseudo-element anime. */
body.home a.et_pb_button_2.et_pb_button {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  position: relative;
  box-sizing: border-box;
  min-height: 48px;
  padding: 13px 24px !important;
  border: 0 !important;
  border-radius: 4px !important;
  clip-path: none !important;
  color: #fff !important;
  font-size: 13px !important;
  font-weight: 800 !important;
  line-height: 1.25 !important;
  letter-spacing: .025em !important;
  text-indent: 0 !important;
  text-transform: none !important;
  text-decoration: none !important;
  white-space: normal !important;
  overflow-wrap: anywhere;
  background-color: #0b6178 !important;
  background-image: linear-gradient(105deg, transparent 34%, rgba(255,255,255,.42) 45%, transparent 56%), linear-gradient(135deg, rgba(255,255,255,.20) 0 8%, transparent 8% 44%, rgba(255,255,255,.10) 44% 49%, transparent 49% 100%), linear-gradient(100deg, #0a4357 0%, #117c94 46%, #63c0bb 100%) !important;
  background-repeat: no-repeat !important;
  background-size: 250% 100%, 100% 100%, 100% 100% !important;
  background-position: -150% 0, 0 0, 0 0 !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.34), inset 0 -1px 0 rgba(0,31,41,.38), 0 5px 13px rgba(0,60,73,.20) !important;
  animation: gnm-home-cta-shine 5.8s ease-in-out infinite !important;
}
body.home a.et_pb_button_2.et_pb_button::before,
body.home a.et_pb_button_2.et_pb_button::after {
  content: none !important;
  display: none !important;
  animation: none !important;
}
@keyframes gnm-home-cta-shine {
  0%, 56% { background-position: -150% 0, 0 0, 0 0; }
  80%, 100% { background-position: 250% 0, 0 0, 0 0; }
}
@media (prefers-reduced-motion: reduce) {
  body.home a.et_pb_button_2.et_pb_button { animation: none !important; background-position: 135% 0, 0 0, 0 0 !important; }
}


/* Divi declare ce module en 0px : annulation explicite pour le CTA final de l'accueil. */
body.home .et_pb_section_4 a.et_pb_button[href*="/adherez/"] {
  font: 800 13px/1.25 Archivo, system-ui, sans-serif !important;
  letter-spacing: .025em !important;
  color: #fff !important;
  text-indent: 0 !important;
}


/* Priorite maximale face au CSS genere par Divi : le texte du CTA doit rester rendu. */
body.home.page-id-7 #page-container .et_pb_section_4 a.et_pb_button_2.et_pb_button[href*="/adherez/"] {
  font-size: 13px !important;
  line-height: 1.25 !important;
}


/* Priorite maximale face au CSS genere par Divi : le texte du CTA doit rester rendu. */
body.home.page-id-7 #page-container .et_pb_section_4 a.et_pb_button_2.et_pb_button[href*="/adherez/"] {
  font-size: 13px !important;
  line-height: 1.25 !important;
}


/* Accueil - appel final : CTA d'adhesion volontairement plus present. */
body.home.page-id-7 #page-container .et_pb_section_4 a.et_pb_button_2.et_pb_button[href*="/adherez/"] {
  min-width: 300px;
  min-height: 58px;
  padding: 17px 32px !important;
  font-size: 15px !important;
  line-height: 1.25 !important;
  letter-spacing: .03em !important;
}
@media (max-width: 767px) {
  body.home.page-id-7 #page-container .et_pb_section_4 a.et_pb_button_2.et_pb_button[href*="/adherez/"] {
    width: min(100%, 330px) !important;
    min-width: 0;
    min-height: 56px;
    padding: 16px 24px !important;
  }
}


/* Same moving highlight for the header and the final membership CTA. */
.gnm-header a.gnm-cta.et_pb_button,
body.home.page-id-7 #page-container .et_pb_section_4 a.et_pb_button_2.et_pb_button[href*="/adherez/"] {
	background-image: linear-gradient(105deg, transparent 34%, rgba(255,255,255,.58) 45%, transparent 56%), linear-gradient(135deg, rgba(255,255,255,.20) 0 8%, transparent 8% 44%, rgba(255,255,255,.10) 44% 49%, transparent 49% 100%), linear-gradient(100deg, #0a4357 0%, #117c94 46%, #63c0bb 100%) !important;
	background-repeat: no-repeat !important;
	background-size: 250% 100%, 100% 100%, 100% 100% !important;
	background-position: -150% 0, 0 0, 0 0 !important;
	animation: gnm-membership-shine 4.2s ease-in-out infinite !important;
}

@keyframes gnm-membership-shine {
	0%, 48% { background-position: -150% 0, 0 0, 0 0; }
	73%, 100% { background-position: 250% 0, 0 0, 0 0; }
}


/* Systeme unifie des boutons d'action : contenu, presentation et formulaires. */
body:not(.wp-admin) #page-container .et_pb_section a.et_pb_button,
body:not(.wp-admin) #page-container .gnm-presentation__primary,
body:not(.wp-admin) #page-container .gnm-presentation__secondary,
body:not(.wp-admin) #page-container .wpcf7-form input.wpcf7-submit {
  position: relative !important;
  box-sizing: border-box !important;
  min-height: 48px !important;
  border: 1px solid rgba(179, 239, 235, .72) !important;
  border-radius: 4px !important;
  color: #fff !important;
  font-family: Archivo, system-ui, sans-serif !important;
  font-size: 13px !important;
  font-weight: 800 !important;
  line-height: 1.25 !important;
  letter-spacing: .025em !important;
  text-decoration: none !important;
  text-shadow: 0 1px 0 rgba(0, 31, 41, .24) !important;
  background-color: #0b6178 !important;
  background-image: linear-gradient(105deg, transparent 34%, rgba(255,255,255,.58) 45%, transparent 56%), linear-gradient(135deg, rgba(255,255,255,.20) 0 8%, transparent 8% 44%, rgba(255,255,255,.10) 44% 49%, transparent 49% 100%), linear-gradient(100deg, #0a4357 0%, #117c94 46%, #63c0bb 100%) !important;
  background-repeat: no-repeat !important;
  background-size: 250% 100%, 100% 100%, 100% 100% !important;
  background-position: -150% 0, 0 0, 0 0 !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.34), inset 0 -1px 0 rgba(0,31,41,.38), 0 5px 13px rgba(0,60,73,.20) !important;
  animation: gnm-site-cta-shine 4.2s ease-in-out infinite !important;
}
body:not(.wp-admin) #page-container .et_pb_section a.et_pb_button::before,
body:not(.wp-admin) #page-container .et_pb_section a.et_pb_button::after,
body:not(.wp-admin) #page-container .gnm-presentation__primary::before,
body:not(.wp-admin) #page-container .gnm-presentation__primary::after,
body:not(.wp-admin) #page-container .gnm-presentation__secondary::before,
body:not(.wp-admin) #page-container .gnm-presentation__secondary::after {
  content: none !important;
  display: none !important;
}
.gnm-header a.gnm-cta.et_pb_button {
  font-size: 14px !important;
}
body.home.page-id-7 #page-container .et_pb_section_4 a.et_pb_button_2.et_pb_button[href*="/adherez/"] {
  font-size: 16px !important;
}
@keyframes gnm-site-cta-shine {
  0%, 48% { background-position: -150% 0, 0 0, 0 0; }
  73%, 100% { background-position: 250% 0, 0 0, 0 0; }
}
@media (prefers-reduced-motion: reduce) {
  body:not(.wp-admin) #page-container .et_pb_section a.et_pb_button,
  body:not(.wp-admin) #page-container .gnm-presentation__primary,
  body:not(.wp-admin) #page-container .gnm-presentation__secondary,
  body:not(.wp-admin) #page-container .wpcf7-form input.wpcf7-submit {
    animation: none !important;
    background-position: 135% 0, 0 0, 0 0 !important;
  }
}
@media (max-width: 767px) {
  .gnm-header a.gnm-cta.et_pb_button { font-size: 13px !important; }
  body.home.page-id-7 #page-container .et_pb_section_4 a.et_pb_button_2.et_pb_button[href*="/adherez/"] { font-size: 15px !important; }
}


/* Les CTA ne conservent aucune decoupe propre a un module Divi. */
body:not(.wp-admin) #page-container .et_pb_section a.et_pb_button,
body:not(.wp-admin) #page-container .gnm-presentation__primary,
body:not(.wp-admin) #page-container .gnm-presentation__secondary,
body:not(.wp-admin) #page-container .wpcf7-form input.wpcf7-submit {
  clip-path: none !important;
  overflow: hidden !important;
}


/* Les liens d'action situes sous la presentation suivent le meme systeme CTA. */
body:not(.wp-admin) #page-container .gnm-presentation__links a {
  position: relative !important;
  box-sizing: border-box !important;
  min-height: 48px !important;
  border: 1px solid rgba(179, 239, 235, .72) !important;
  border-radius: 4px !important;
  clip-path: none !important;
  overflow: hidden !important;
  color: #fff !important;
  font-family: Archivo, system-ui, sans-serif !important;
  font-size: 13px !important;
  font-weight: 800 !important;
  line-height: 1.25 !important;
  letter-spacing: .025em !important;
  text-decoration: none !important;
  text-shadow: 0 1px 0 rgba(0, 31, 41, .24) !important;
  background-color: #0b6178 !important;
  background-image: linear-gradient(105deg, transparent 34%, rgba(255,255,255,.58) 45%, transparent 56%), linear-gradient(135deg, rgba(255,255,255,.20) 0 8%, transparent 8% 44%, rgba(255,255,255,.10) 44% 49%, transparent 49% 100%), linear-gradient(100deg, #0a4357 0%, #117c94 46%, #63c0bb 100%) !important;
  background-repeat: no-repeat !important;
  background-size: 250% 100%, 100% 100%, 100% 100% !important;
  background-position: -150% 0, 0 0, 0 0 !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.34), inset 0 -1px 0 rgba(0,31,41,.38), 0 5px 13px rgba(0,60,73,.20) !important;
  animation: gnm-site-cta-shine 4.2s ease-in-out infinite !important;
}
body:not(.wp-admin) #page-container .gnm-presentation__links a::before,
body:not(.wp-admin) #page-container .gnm-presentation__links a::after {
  content: none !important;
  display: none !important;
}
@media (prefers-reduced-motion: reduce) {
  body:not(.wp-admin) #page-container .gnm-presentation__links a {
    animation: none !important;
    background-position: 135% 0, 0 0, 0 0 !important;
  }
}


/* Cohérence stricte des boutons d'action. */
body:not(.wp-admin) #page-container .gnm-presentation__links > a,
body:not(.wp-admin) #page-container .gnm-presentation__primary,
body:not(.wp-admin) #page-container .gnm-presentation__secondary {
  box-sizing: border-box !important;
  min-height: 54px !important;
  border-radius: 4px !important;
  clip-path: none !important;
  overflow: hidden !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  line-height: 1.25 !important;
}
@media (min-width: 768px) {
  body:not(.wp-admin) #page-container .gnm-presentation__links > a {
    min-width: 310px !important;
  }
}
@media (max-width: 767px) {
  body:not(.wp-admin) #page-container .gnm-presentation__links > a,
  body:not(.wp-admin) #page-container .gnm-presentation__primary,
  body:not(.wp-admin) #page-container .gnm-presentation__secondary {
    width: 100% !important;
    max-width: none !important;
    min-height: 52px !important;
  }
}

@media (min-width: 768px) {
  body:not(.wp-admin) #page-container .gnm-presentation__links > a,
  body:not(.wp-admin) #page-container .gnm-presentation__primary,
  body:not(.wp-admin) #page-container .gnm-presentation__secondary {
    width: 310px !important;
    min-width: 310px !important;
  }
}


/* Commandes de la liseuse : controles utilitaires, sans effet promotionnel. */
body:not(.wp-admin) #page-container .gnm-pdf-reader .gnm-pdf-reader__toolbar button,
body:not(.wp-admin) #page-container .gnm-pdf-reader .gnm-pdf-reader__toolbar a {
  appearance: none !important;
  -webkit-appearance: none !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 36px !important;
  min-width: 0 !important;
  padding: 8px 12px !important;
  border: 1px solid #168b93 !important;
  border-radius: 3px !important;
  background: #198f96 !important;
  background-image: none !important;
  box-shadow: none !important;
  color: #ffffff !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  line-height: 1.15 !important;
  letter-spacing: 0 !important;
  text-decoration: none !important;
  text-transform: none !important;
  clip-path: none !important;
  overflow: visible !important;
  transform: none !important;
  transition: background-color .16s ease, border-color .16s ease !important;
  animation: none !important;
}
body:not(.wp-admin) #page-container .gnm-pdf-reader .gnm-pdf-reader__toolbar button::before,
body:not(.wp-admin) #page-container .gnm-pdf-reader .gnm-pdf-reader__toolbar button::after,
body:not(.wp-admin) #page-container .gnm-pdf-reader .gnm-pdf-reader__toolbar a::before,
body:not(.wp-admin) #page-container .gnm-pdf-reader .gnm-pdf-reader__toolbar a::after {
  display: none !important;
  content: none !important;
}
body:not(.wp-admin) #page-container .gnm-pdf-reader .gnm-pdf-reader__toolbar button:hover,
body:not(.wp-admin) #page-container .gnm-pdf-reader .gnm-pdf-reader__toolbar a:hover,
body:not(.wp-admin) #page-container .gnm-pdf-reader .gnm-pdf-reader__toolbar button:focus-visible,
body:not(.wp-admin) #page-container .gnm-pdf-reader .gnm-pdf-reader__toolbar a:focus-visible {
  background: #0d717b !important;
  border-color: #0d717b !important;
  box-shadow: 0 0 0 3px rgba(29, 143, 150, .20) !important;
  outline: none !important;
}
body:not(.wp-admin) #page-container .gnm-pdf-reader .gnm-pdf-reader__toolbar button:disabled {
  background: #d8e8ea !important;
  border-color: #c5d9dc !important;
  color: #607b80 !important;
  box-shadow: none !important;
  cursor: not-allowed !important;
}
@media (max-width: 767px) {
  body:not(.wp-admin) #page-container .gnm-pdf-reader .gnm-pdf-reader__toolbar button,
  body:not(.wp-admin) #page-container .gnm-pdf-reader .gnm-pdf-reader__toolbar a {
    min-height: 34px !important;
    padding: 7px 10px !important;
    font-size: 12px !important;
  }
}


/* Pictogrammes des commandes fonctionnelles de la liseuse. */
body:not(.wp-admin) #page-container .gnm-pdf-reader .gnm-pdf-reader__toolbar [data-gnm-pdf-prev]::before { content: "\2190" !important; }
body:not(.wp-admin) #page-container .gnm-pdf-reader .gnm-pdf-reader__toolbar [data-gnm-pdf-next]::before { content: "\2192" !important; }
body:not(.wp-admin) #page-container .gnm-pdf-reader .gnm-pdf-reader__toolbar [data-gnm-pdf-zoom-out]::before { content: "\2212" !important; }
body:not(.wp-admin) #page-container .gnm-pdf-reader .gnm-pdf-reader__toolbar [data-gnm-pdf-zoom-in]::before { content: "+" !important; }
body:not(.wp-admin) #page-container .gnm-pdf-reader .gnm-pdf-reader__toolbar [data-gnm-pdf-fullscreen]::before { content: "\26F6" !important; }
body:not(.wp-admin) #page-container .gnm-pdf-reader .gnm-pdf-reader__toolbar [data-gnm-pdf-open]::before { content: "\2197" !important; }
body:not(.wp-admin) #page-container .gnm-pdf-reader .gnm-pdf-reader__toolbar [data-gnm-pdf-print]::before { content: "\2399" !important; }
body:not(.wp-admin) #page-container .gnm-pdf-reader .gnm-pdf-reader__toolbar [data-gnm-pdf-download]::before { content: "\2193" !important; }
body:not(.wp-admin) #page-container .gnm-pdf-reader .gnm-pdf-reader__toolbar button::before,
body:not(.wp-admin) #page-container .gnm-pdf-reader .gnm-pdf-reader__toolbar a::before {
  display: inline-block !important;
  width: 1em !important;
  margin-right: 7px !important;
  color: currentColor !important;
  font-size: 1.2em !important;
  font-weight: 700 !important;
  line-height: 1 !important;
}



/* GNM - nouveau logo : echelle adaptee sans perturber la navigation. */
@media (min-width: 1351px) {
  .gnm-header .gnm-logo img { height: 52px !important; }
}
@media (min-width: 981px) and (max-width: 1350px) {
  .gnm-header .gnm-logo img { height: 46px !important; }
}
@media (max-width: 980px) {
  .gnm-header .gnm-logo img { height: 42px !important; max-width: 100%; }
}


/* GNM - logo d'en-tete : presence renforcee sur ordinateur. */
@media (min-width: 1351px) {
  .gnm-header .gnm-logo img { height: 58px !important; }
}
@media (min-width: 981px) and (max-width: 1350px) {
  .gnm-header .gnm-logo img { height: 54px !important; }
}


/* GNM - logo d'en-tete : confort de lecture sur mobile. */
@media (max-width: 980px) {
  .gnm-header .gnm-logo img { height: 48px !important; }
}


/* GNM - logo mobile : largeur disponible pour afficher la taille demandee. */
@media (max-width: 980px) {
  .gnm-header .gnm-logo {
    flex: 0 0 auto !important;
    max-width: calc(50% - 20px) !important;
  }
  .gnm-header .gnm-logo img {
    height: 48px !important;
    max-width: none !important;
  }
}


/* GNM - logo mobile : alignement visuel avec le bord gauche. */
@media (max-width: 980px) {
  .gnm-header .gnm-logo { transform: translateX(-6px); }
  .gnm-header .gnm-logo img { height: 46px !important; }
}



/* GNM - pictogrammes catalogue SVG uniformises (23 septembre 2026). */
body #gnm-catalog .gnm-catalog-category-link::before {
  width: 52px !important;
  height: 52px !important;
  min-width: 52px !important;
  border-radius: 15px !important;
  background-color: #e5fbfb !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  background-size: 52px 52px !important;
  box-shadow: none !important;
}
body #gnm-catalog .gnm-catalog-category-link-all::before { background-image: url("https://www.groupement-gnm.com/wp-content/uploads/2026/09/tous-les-produits.svg") !important; }
body #gnm-catalog .gnm-catalog-category-link[href*="=97"]::before { background-image: url("https://www.groupement-gnm.com/wp-content/uploads/2026/09/menuiseries-aluminium.svg") !important; }
body #gnm-catalog .gnm-catalog-category-link[href*="=103"]::before { background-image: url("https://www.groupement-gnm.com/wp-content/uploads/2026/09/menuiseries-pvc.svg") !important; }
body #gnm-catalog .gnm-catalog-category-link[href*="=109"]::before { background-image: url("https://www.groupement-gnm.com/wp-content/uploads/2026/09/menuiseries-bois.svg") !important; }
body #gnm-catalog .gnm-catalog-category-link[href*="=114"]::before { background-image: url("https://www.groupement-gnm.com/wp-content/uploads/2026/09/menuiseries-mixtes.svg") !important; }
body #gnm-catalog .gnm-catalog-category-link[href*="=119"]::before { background-image: url("https://www.groupement-gnm.com/wp-content/uploads/2026/09/portes-entree-techniques.svg") !important; }
body #gnm-catalog .gnm-catalog-category-link[href*="=127"]::before { background-image: url("https://www.groupement-gnm.com/wp-content/uploads/2026/09/volets.svg") !important; }
body #gnm-catalog .gnm-catalog-category-link[href*="=145"]::before { background-image: url("https://www.groupement-gnm.com/wp-content/uploads/2026/09/portes-garage.svg") !important; }
body #gnm-catalog .gnm-catalog-category-link[href*="=135"]::before { background-image: url("https://www.groupement-gnm.com/wp-content/uploads/2026/09/portails-clotures.svg") !important; }
body #gnm-catalog .gnm-catalog-category-link[href*="=174"]::before { background-image: url("https://www.groupement-gnm.com/wp-content/uploads/2026/09/pergolas.svg") !important; }
body #gnm-catalog .gnm-catalog-category-link[href*="=176"]::before { background-image: url("https://www.groupement-gnm.com/wp-content/uploads/2026/09/stores-zip-bso.svg") !important; }
body #gnm-catalog .gnm-catalog-category-link[href*="=235"]::before { background-image: url("https://www.groupement-gnm.com/wp-content/uploads/2026/09/amenagement-exterieur.svg") !important; }
body #gnm-catalog .gnm-catalog-category-link[href*="=157"]::before { background-image: url("https://www.groupement-gnm.com/wp-content/uploads/2026/09/amenagement-interieur.svg") !important; }
body #gnm-catalog .gnm-catalog-category-link[href*="=210"]::before { background-image: url("https://www.groupement-gnm.com/wp-content/uploads/2026/09/portes-interieures.svg") !important; }
body #gnm-catalog .gnm-catalog-category-link[href*="=209"]::before { background-image: url("https://www.groupement-gnm.com/wp-content/uploads/2026/09/verrieres-atelier.svg") !important; }
body #gnm-catalog .gnm-catalog-category-link[href*="=163"]::before { background-image: url("https://www.groupement-gnm.com/wp-content/uploads/2026/09/metal-ferronnerie.svg") !important; }
body #gnm-catalog .gnm-catalog-category-link[href*="=234"]::before { background-image: url("https://www.groupement-gnm.com/wp-content/uploads/2026/09/moustiquaires.svg") !important; }
body #gnm-catalog .gnm-catalog-category-link[href*="=239"]::before { background-image: url("https://www.groupement-gnm.com/wp-content/uploads/2026/09/guide-vitrages.svg") !important; }


/* GNM - priorite finale : le module catalogue ne peut plus reprendre les PNG. */
body #gnm-catalog .gnm-catalog-category-nav > li > a.gnm-catalog-category-link.gnm-catalog-category-link::before {
  width: 52px !important;
  height: 52px !important;
  min-width: 52px !important;
  border-radius: 15px !important;
  background-color: #e5fbfb !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  background-size: 52px 52px !important;
  box-shadow: none !important;
}
body #gnm-catalog .gnm-catalog-category-nav > li > a.gnm-catalog-category-link.gnm-catalog-category-link.gnm-catalog-category-link-all::before { background-image: url("https://www.groupement-gnm.com/wp-content/uploads/2026/09/tous-les-produits.svg") !important; }
body #gnm-catalog .gnm-catalog-category-nav > li > a.gnm-catalog-category-link.gnm-catalog-category-link[href*="=97"]::before { background-image: url("https://www.groupement-gnm.com/wp-content/uploads/2026/09/menuiseries-aluminium.svg") !important; }
body #gnm-catalog .gnm-catalog-category-nav > li > a.gnm-catalog-category-link.gnm-catalog-category-link[href*="=103"]::before { background-image: url("https://www.groupement-gnm.com/wp-content/uploads/2026/09/menuiseries-pvc.svg") !important; }
body #gnm-catalog .gnm-catalog-category-nav > li > a.gnm-catalog-category-link.gnm-catalog-category-link[href*="=109"]::before { background-image: url("https://www.groupement-gnm.com/wp-content/uploads/2026/09/menuiseries-bois.svg") !important; }
body #gnm-catalog .gnm-catalog-category-nav > li > a.gnm-catalog-category-link.gnm-catalog-category-link[href*="=114"]::before { background-image: url("https://www.groupement-gnm.com/wp-content/uploads/2026/09/menuiseries-mixtes.svg") !important; }
body #gnm-catalog .gnm-catalog-category-nav > li > a.gnm-catalog-category-link.gnm-catalog-category-link[href*="=119"]::before { background-image: url("https://www.groupement-gnm.com/wp-content/uploads/2026/09/portes-entree-techniques.svg") !important; }
body #gnm-catalog .gnm-catalog-category-nav > li > a.gnm-catalog-category-link.gnm-catalog-category-link[href*="=127"]::before { background-image: url("https://www.groupement-gnm.com/wp-content/uploads/2026/09/volets.svg") !important; }
body #gnm-catalog .gnm-catalog-category-nav > li > a.gnm-catalog-category-link.gnm-catalog-category-link[href*="=145"]::before { background-image: url("https://www.groupement-gnm.com/wp-content/uploads/2026/09/portes-garage.svg") !important; }
body #gnm-catalog .gnm-catalog-category-nav > li > a.gnm-catalog-category-link.gnm-catalog-category-link[href*="=135"]::before { background-image: url("https://www.groupement-gnm.com/wp-content/uploads/2026/09/portails-clotures.svg") !important; }
body #gnm-catalog .gnm-catalog-category-nav > li > a.gnm-catalog-category-link.gnm-catalog-category-link[href*="=174"]::before { background-image: url("https://www.groupement-gnm.com/wp-content/uploads/2026/09/pergolas.svg") !important; }
body #gnm-catalog .gnm-catalog-category-nav > li > a.gnm-catalog-category-link.gnm-catalog-category-link[href*="=176"]::before { background-image: url("https://www.groupement-gnm.com/wp-content/uploads/2026/09/stores-zip-bso.svg") !important; }
body #gnm-catalog .gnm-catalog-category-nav > li > a.gnm-catalog-category-link.gnm-catalog-category-link[href*="=235"]::before { background-image: url("https://www.groupement-gnm.com/wp-content/uploads/2026/09/amenagement-exterieur.svg") !important; }
body #gnm-catalog .gnm-catalog-category-nav > li > a.gnm-catalog-category-link.gnm-catalog-category-link[href*="=157"]::before { background-image: url("https://www.groupement-gnm.com/wp-content/uploads/2026/09/amenagement-interieur.svg") !important; }
body #gnm-catalog .gnm-catalog-category-nav > li > a.gnm-catalog-category-link.gnm-catalog-category-link[href*="=210"]::before { background-image: url("https://www.groupement-gnm.com/wp-content/uploads/2026/09/portes-interieures.svg") !important; }
body #gnm-catalog .gnm-catalog-category-nav > li > a.gnm-catalog-category-link.gnm-catalog-category-link[href*="=209"]::before { background-image: url("https://www.groupement-gnm.com/wp-content/uploads/2026/09/verrieres-atelier.svg") !important; }
body #gnm-catalog .gnm-catalog-category-nav > li > a.gnm-catalog-category-link.gnm-catalog-category-link[href*="=163"]::before { background-image: url("https://www.groupement-gnm.com/wp-content/uploads/2026/09/metal-ferronnerie.svg") !important; }
body #gnm-catalog .gnm-catalog-category-nav > li > a.gnm-catalog-category-link.gnm-catalog-category-link[href*="=234"]::before { background-image: url("https://www.groupement-gnm.com/wp-content/uploads/2026/09/moustiquaires.svg") !important; }
body #gnm-catalog .gnm-catalog-category-nav > li > a.gnm-catalog-category-link.gnm-catalog-category-link[href*="=239"]::before { background-image: url("https://www.groupement-gnm.com/wp-content/uploads/2026/09/guide-vitrages.svg") !important; }


/* GNM - amenagement exterieur : trace allege, couleur uniforme. */
body #gnm-catalog .gnm-catalog-category-nav > li > a.gnm-catalog-category-link.gnm-catalog-category-link[href*="=235"]::before {
  background-image: url("https://www.groupement-gnm.com/wp-content/uploads/2026/09/amenagement-exterieur-1.svg") !important;
}


/* GNM - amenagement exterieur : cabanon simplifie. */
body #gnm-catalog .gnm-catalog-category-nav > li > a.gnm-catalog-category-link.gnm-catalog-category-link[href*="=235"]::before {
  background-image: url("https://www.groupement-gnm.com/wp-content/uploads/2026/09/amenagement-exterieur-2.svg") !important;
}


/* GNM - deux pictogrammes volontairement plus presents, sans toucher aux autres tuiles. */
body #gnm-catalog .gnm-catalog-category-nav > li > a.gnm-catalog-category-link.gnm-catalog-category-link[href*="=176"]::before,
body #gnm-catalog .gnm-catalog-category-nav > li > a.gnm-catalog-category-link.gnm-catalog-category-link[href*="=235"]::before {
  background-size: 58px 58px !important;
}


/* GNM - pictogrammes a contenu volontairement plus aeré : echelle harmonisee. */
body #gnm-catalog .gnm-catalog-category-nav > li > a.gnm-catalog-category-link.gnm-catalog-category-link[href*="=174"]::before,
body #gnm-catalog .gnm-catalog-category-nav > li > a.gnm-catalog-category-link.gnm-catalog-category-link[href*="=176"]::before,
body #gnm-catalog .gnm-catalog-category-nav > li > a.gnm-catalog-category-link.gnm-catalog-category-link[href*="=235"]::before {
  background-size: 62px 62px !important;
}


/* GNM - pictogramme SVG Metal et ferronnerie. */
body #gnm-catalog .gnm-catalog-category-nav > li > a.gnm-catalog-category-link.gnm-catalog-category-link[href*="=163"]::before {
  background-image: url("https://www.groupement-gnm.com/wp-content/uploads/2026/09/metal-ferronnerie-v2.svg") !important;
  background-size: 52px 52px !important;
}

/* GNM - grille de defense et ferronnerie : silhouette rehaussee et contour affine. */
body #gnm-catalog .gnm-catalog-category-nav > li > a.gnm-catalog-category-link.gnm-catalog-category-link[href*="=163"]::before {
  background-image: url("https://www.groupement-gnm.com/wp-content/uploads/2026/09/metal-ferronnerie-v3.svg") !important;
  background-size: 52px 52px !important;
}

/* GNM - guide des vitrages affine et moustiquaire legerement agrandie. */
body #gnm-catalog .gnm-catalog-category-nav > li > a.gnm-catalog-category-link.gnm-catalog-category-link[href*="=239"]::before {
  background-image: url("https://www.groupement-gnm.com/wp-content/uploads/2026/09/guide-vitrages-v2.svg") !important;
  background-size: 52px 52px !important;
}
body #gnm-catalog .gnm-catalog-category-nav > li > a.gnm-catalog-category-link.gnm-catalog-category-link[href*="=234"]::before {
  background-size: 58px 58px !important;
}

/* Catalogue : référence unique des libellés, sans variation selon la catégorie. */
body #gnm-catalog .gnm-catalog-category-nav > li > a.gnm-catalog-category-link,
body #gnm-catalog .gnm-catalog-category-nav > li > a.gnm-catalog-category-link > span {
  color: #005A70 !important;
  font-family: Archivo, system-ui, sans-serif !important;
  font-size: 12px !important;
  font-style: normal !important;
  font-weight: 700 !important;
  font-feature-settings: normal !important;
  font-kerning: normal !important;
  font-optical-sizing: auto !important;
  font-synthesis: none !important;
  font-variation-settings: normal !important;
  letter-spacing: normal !important;
  line-height: 1.3 !important;
  opacity: 1 !important;
  text-shadow: none !important;
  text-transform: uppercase !important;
  word-spacing: normal !important;
}

/* Écrans Android étroits : réserver une zone nette autour du bouton Menu. */
@media (max-width: 480px) {
  .gnm-header .gnm-logo {
    flex: 0 1 calc(50% - 50px) !important;
    max-width: calc(50% - 50px) !important;
    transform: none !important;
  }

  .gnm-header .gnm-logo img {
    display: block;
    width: 100% !important;
    max-width: 154px !important;
    height: auto !important;
  }
}
