/**
 * GP Base Client — WooCommerce (design premium & chaleureux)
 * Chargé uniquement sur les pages WooCommerce (voir inc/woocommerce.php).
 * Périmètre actuel : FICHE PRODUIT + cartes produit (associés / future boutique).
 *
 * Les couleurs/tailles personnalisables sont pilotées par des variables CSS,
 * surchargées depuis le Customizer (section « WooCommerce (GP Base) »).
 */

:root {
	/* --- Personnalisables (Customizer) --- */
	--pmw-wc-primary: #0f395f;          /* accents : onglets, liens, contours */
	--pmw-wc-btn-bg: #0f395f;           /* bouton : fond */
	--pmw-wc-btn-bg-hover: #0a2c49;     /* bouton : fond au survol */
	--pmw-wc-btn-text: #ffffff;         /* bouton : texte */
	--pmw-wc-title-color: #1a2230;      /* titre produit : couleur */
	--pmw-wc-price-color: #0f395f;      /* prix : couleur */
	--pmw-wc-star: #f4a72c;             /* étoiles avis */
	--pmw-wc-sale: #e0533d;             /* badge promo */
	/* (title-size / price-size : non définies ici => voir var() fallback) */

	/* --- Structurel (constant) --- */
	--pmw-wc-ink: #1a2230;
	--pmw-wc-muted: #5b6472;
	--pmw-wc-line: #e7e9ee;
	--pmw-wc-card: #ffffff;
	--pmw-wc-radius: 16px;
	--pmw-wc-radius-sm: 10px;
	--pmw-wc-shadow-lg: 0 18px 50px rgba(15, 57, 95, .16);
}

/* ============================================================
   BOUTONS — style premium (toutes les pages WooCommerce)
   ============================================================ */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt {
	background: var(--pmw-wc-btn-bg);
	color: var(--pmw-wc-btn-text);
	border: 0;
	border-radius: 999px;
	padding: .85em 1.9em;
	font-weight: 600;
	letter-spacing: .2px;
	line-height: 1.2;
	box-shadow: 0 6px 18px rgba(15, 57, 95, .18);
	transition: transform .18s ease, background-color .18s ease, box-shadow .18s ease;
}

.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover {
	background: var(--pmw-wc-btn-bg-hover);
	color: var(--pmw-wc-btn-text);
	transform: translateY(-2px);
	box-shadow: 0 10px 26px rgba(15, 57, 95, .28);
}

/* ============================================================
   FICHE PRODUIT — mise en page 2 colonnes (flex moderne)
   ============================================================ */
.woocommerce div.product {
	display: flex;
	flex-wrap: wrap;
	gap: clamp(24px, 4vw, 56px);
	align-items: flex-start;
}

.woocommerce div.product > .woocommerce-product-gallery {
	float: none !important;
	width: auto !important;
	flex: 1 1 46%;
	min-width: min(100%, 320px);
	margin: 0 !important;
	position: relative;
}

.woocommerce div.product > .summary {
	float: none !important;
	width: auto !important;
	flex: 1 1 42%;
	min-width: min(100%, 320px);
	margin: 0 !important;
}

/* Onglets + associés : sortis de div.product (voir hooks PHP) => éléments
   pleine largeur SOUS la fiche, pour que l'image sticky se libère. */
.woocommerce .woocommerce-tabs,
.woocommerce .related,
.woocommerce .upsells {
	clear: both;
	width: 100%;
}
.woocommerce .related,
.woocommerce .upsells {
	margin-top: clamp(28px, 4vw, 52px);
}

/* --- Image principale : cadre arrondi --- */
.woocommerce div.product .woocommerce-product-gallery__wrapper {
	margin: 0;
	border-radius: var(--pmw-wc-radius);
	overflow: hidden;
}

.woocommerce div.product .woocommerce-product-gallery__image {
	position: relative;
}

/* --- Miniatures : COLONNE VERTICALE À GAUCHE de l'image (desktop) --- */
@media (min-width: 769px) {
	.woocommerce div.product .woocommerce-product-gallery {
		display: flex;
		flex-direction: row;
		align-items: flex-start;
		gap: 14px;
	}
	.woocommerce div.product .woocommerce-product-gallery__wrapper {
		order: 0;
		flex: 1 1 auto;
		min-width: 0;
	}
	.woocommerce div.product div.images .flex-control-thumbs {
		order: -1;                 /* garantit la colonne À GAUCHE de l'image */
		flex: 0 0 100px;           /* largeur FIXE (pas de grow) => rail stable */
		width: 100px;
		display: flex;
		flex-direction: column;
		gap: 12px;
		/* Beaucoup de photos ? le rail défile au lieu de déborder.
		   Règle --pmw-wc-thumbs-maxh pour la hauteur max. */
		max-height: var(--pmw-wc-thumbs-maxh, 520px);
		overflow-y: auto;
		overscroll-behavior: contain;
	}
	/* Surcharge le défaut WC (li{width:25%;float:left}) — même profondeur de
	   sélecteur que WC (div.images … li) => notre règle gagne, sans !important. */
	.woocommerce div.product div.images .flex-control-thumbs li {
		width: 100%;
		float: none;
		margin: 0;
	}

	/* Image COLLANTE : reste visible si la description est longue.
	   Sélecteur aligné sur la spécificité WC (div.images.woocommerce-product-gallery,
	   qui force position:relative) => notre position:sticky gagne, chargé après.
	   Surcharge --pmw-wc-gallery-top si ton header sticky est plus haut. */
	.woocommerce div.product div.images.woocommerce-product-gallery {
		position: sticky;
		top: var(--pmw-wc-gallery-top, 100px);
		align-self: flex-start;
	}
}

/* --- Miniatures : rangée sous l'image en mobile --- */
@media (max-width: 768px) {
	.woocommerce div.product div.images .flex-control-thumbs {
		margin-top: 12px;
		display: flex;
		flex-wrap: wrap;
		gap: 8px;
	}
	.woocommerce div.product div.images .flex-control-thumbs li {
		width: 76px;
		float: none;
		margin: 0;
	}
}

/* --- Miniatures : style commun (sélecteurs alignés sur la profondeur WC :
       div.images … li img => on gagne à spécificité égale, chargé après) --- */
.woocommerce div.product div.images .flex-control-thumbs {
	margin: 0;
	padding: 0;
	list-style: none;
}
.woocommerce div.product div.images .flex-control-thumbs li {
	margin: 0;
	float: none;
	list-style: none;
}
.woocommerce div.product div.images .flex-control-thumbs li img {
	width: 100%;
	height: auto;
	border-radius: var(--pmw-wc-radius-sm);
	opacity: .55;                            /* inactives en léger retrait, SANS bordure */
	cursor: pointer;
	transition: opacity .18s ease;
}
.woocommerce div.product div.images .flex-control-thumbs li img.flex-active,
.woocommerce div.product div.images .flex-control-thumbs li img:hover {
	opacity: 1;                              /* active/survol : nettes (aucun trait) */
}

/* --- Badge promo --- */
.woocommerce span.onsale {
	background: var(--pmw-wc-sale);
	color: #fff;
	border-radius: 999px;
	min-height: 0;
	min-width: 0;
	padding: .42em .95em;
	font-weight: 700;
	font-size: .72rem;
	letter-spacing: .5px;
	text-transform: uppercase;
	line-height: 1;
	top: 14px;
	left: 14px;
	margin: 0;
	box-shadow: 0 6px 16px rgba(224, 83, 61, .35);
}

/* --- Résumé produit --- */
.woocommerce div.product .product_title {
	font-weight: 700;
	line-height: 1.15;
	color: var(--pmw-wc-title-color);
	margin: 0 0 .35em;
	font-size: var(--pmw-wc-title-size, clamp(1.3rem, 2.2vw, 1.75rem));
}

/* Note WC par défaut masquée : on la ré-affiche en ligne avec le prix (voir hook). */
.woocommerce div.product .summary > .woocommerce-product-rating {
	display: none;
}

/* --- Prix + note (étoiles) sur une même ligne --- */
.woocommerce div.product .summary .gpbc-price-rating {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	justify-content: flex-start;   /* étoiles JUSTE à côté du prix */
	gap: 8px 14px;
	margin: 0 0 1em;
}

.woocommerce div.product .summary .gpbc-price-rating p.price,
.woocommerce div.product .summary .gpbc-price-rating .price {
	margin: 0 !important;
}

.gpbc-inline-rating {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	white-space: nowrap;
}

.gpbc-inline-rating .star-rating {
	margin: 0;
	float: none;
	font-size: 1.05em;
	line-height: 1;
}

.gpbc-review-jump {
	color: var(--pmw-wc-muted);
	font-size: .92rem;
	text-decoration: none;
	transition: color .18s ease;
}

.gpbc-review-jump:hover {
	color: var(--pmw-wc-primary);
	text-decoration: underline;
}

.woocommerce .star-rating span::before,
.woocommerce div.product .stars a::before {
	color: var(--pmw-wc-star);
}

.woocommerce div.product p.price,
.woocommerce div.product span.price {
	color: var(--pmw-wc-price-color);
	font-weight: 700;
	font-size: var(--pmw-wc-price-size, clamp(1.1rem, 1.6vw, 1.35rem));
	margin-bottom: .6em;
}

.woocommerce div.product p.price del,
.woocommerce div.product span.price del {
	color: var(--pmw-wc-muted);
	font-weight: 500;
	opacity: .7;
}

.woocommerce div.product p.price ins,
.woocommerce div.product span.price ins {
	text-decoration: none;
}

.woocommerce div.product .woocommerce-product-details__short-description {
	color: var(--pmw-wc-muted);
	line-height: 1.7;
	margin-bottom: 1.4em;
}

/* --- Quantité + ajouter au panier --- */
.woocommerce div.product form.cart {
	margin: 1.2em 0;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
}

.woocommerce .quantity .qty {
	height: 52px;
	width: 84px;
	border: 1px solid var(--pmw-wc-line);
	border-radius: 999px;
	text-align: center;
	font-weight: 600;
	color: var(--pmw-wc-ink);
	background: #fff;
}

.woocommerce div.product form.cart .button {
	height: 52px;
	display: inline-flex;
	align-items: center;
	font-size: 1rem;
}

/* --- Méta produit (SKU, catégories, tags) --- */
.woocommerce div.product .product_meta {
	margin-top: 1.6em;
	padding-top: 1.2em;
	border-top: 1px solid var(--pmw-wc-line);
	color: var(--pmw-wc-muted);
	font-size: .9rem;
}

.woocommerce div.product .product_meta a {
	color: var(--pmw-wc-primary);
}

/* ============================================================
   ONGLETS (description / infos / avis)
   ============================================================ */
.woocommerce .woocommerce-tabs {
	margin-top: clamp(28px, 4vw, 52px);
}

.woocommerce .woocommerce-tabs ul.tabs {
	padding: 0;
	margin: 0;
	list-style: none;            /* supprime la puce (onglets sortis de div.product) */
	border-bottom: 1px solid var(--pmw-wc-line);
	display: flex;
	flex-wrap: wrap;
	gap: 4px;
}

.woocommerce .woocommerce-tabs ul.tabs::before {
	display: none;
}

.woocommerce .woocommerce-tabs ul.tabs li {
	background: none;
	border: 0;
	border-radius: 0;
	margin: 0;
	padding: 0;
	list-style: none;            /* pas de puce sur les onglets */
}

.woocommerce .woocommerce-tabs ul.tabs li::before,
.woocommerce .woocommerce-tabs ul.tabs li::after {
	display: none;
}

.woocommerce .woocommerce-tabs ul.tabs li a {
	display: block;
	padding: 14px 20px;
	color: var(--pmw-wc-muted);
	font-weight: 600;
	border-bottom: 3px solid transparent;
	transition: color .18s ease, border-color .18s ease;
}

.woocommerce .woocommerce-tabs ul.tabs li a:hover {
	color: var(--pmw-wc-ink);
}

.woocommerce .woocommerce-tabs ul.tabs li.active a {
	color: var(--pmw-wc-primary);
	border-bottom-color: var(--pmw-wc-primary);
}

.woocommerce .woocommerce-tabs .panel {
	padding-top: 1.6em;
	color: var(--pmw-wc-ink);
	line-height: 1.75;
}

.woocommerce .woocommerce-tabs .panel > h2:first-child {
	margin-top: 0;
}

/* ============================================================
   AVIS PRODUIT — cartes premium
   ============================================================ */
.woocommerce #reviews #comments > h2 {
	font-weight: 700;
	color: var(--pmw-wc-ink);
	font-size: clamp(1.25rem, 2.4vw, 1.6rem);
	margin: 0 0 1.1em;
}

/* Mur d'avis : colonnes façon masonry (pas de cellule vide possible).
   Paliers : 1 col mobile / 2 col tablette / 3 col ordi. */
.woocommerce #reviews #comments ol.commentlist {
	margin: 0;
	padding: 0;
	list-style: none;
	column-count: 1;             /* mobile */
	column-gap: 16px;
	padding-left: clamp(16px, 3vw, 32px);
	padding-right: clamp(16px, 3vw, 32px);
}
@media (min-width: 768px) {     /* tablette / iPad */
	.woocommerce #reviews #comments ol.commentlist {
		column-count: 2;
	}
}
@media (min-width: 1025px) {    /* ordinateur */
	.woocommerce #reviews #comments ol.commentlist {
		column-count: 3;
	}
}

.woocommerce #reviews #comments ol.commentlist li.review,
.woocommerce #reviews #comments ol.commentlist li.comment {
	margin: 0 0 16px;
	padding: 0;
	border: 0;
	background: none;
	break-inside: avoid;              /* une carte ne se coupe jamais entre 2 colonnes */
	-webkit-column-break-inside: avoid;
}

/* La carte d'avis */
.woocommerce #reviews #comments ol.commentlist li .comment_container {
	display: flex;
	gap: 16px;
	align-items: flex-start;
	background: var(--pmw-wc-card);
	border: 1px solid var(--pmw-wc-line);
	border-radius: var(--pmw-wc-radius);
	padding: 20px 22px;
	box-shadow: 0 2px 12px rgba(15, 57, 95, .05);
	transition: box-shadow .2s ease;
}
.woocommerce #reviews #comments ol.commentlist li .comment_container:hover {
	box-shadow: 0 10px 30px rgba(15, 57, 95, .10);
}

/* Avatar masqué */
.woocommerce #reviews #comments ol.commentlist li img.avatar {
	display: none;
}

/* Bloc texte (annule l'indentation flottante par défaut de WC) */
.woocommerce #reviews #comments ol.commentlist li .comment-text {
	margin: 0;
	border: 0;
	border-radius: 0;
	padding: 0;
	flex: 1 1 auto;
	min-width: 0;
}

/* Étoiles en haut à droite de la carte */
.woocommerce #reviews #comments .comment-text .star-rating {
	float: right;
	margin: 0 0 .4em 14px;
	font-size: 1em;
}

/* En-tête : auteur (gras) + date (dessous), tiret masqué */
.woocommerce #reviews #comments .comment-text .meta {
	margin: 0 0 .55em;
	color: var(--pmw-wc-muted);
	font-size: .88rem;
	line-height: 1.4;
}
.woocommerce #reviews #comments .comment-text .woocommerce-review__author {
	display: inline-block;
	color: var(--pmw-wc-ink);
	font-weight: 700;
	font-size: 1rem;
}
.woocommerce #reviews #comments .comment-text .woocommerce-review__dash {
	display: none;
}
.woocommerce #reviews #comments .comment-text .woocommerce-review__published-date {
	display: block;
	margin-top: 3px;
}

/* Badge « achat vérifié » */
.woocommerce #reviews #comments .comment-text .meta .woocommerce-review__verified {
	display: inline-block;
	margin-left: 8px;
	padding: 2px 9px;
	border-radius: 999px;
	background: rgba(21, 122, 60, .10);
	color: #157a3c;
	font-size: .72rem;
	font-weight: 700;
	vertical-align: middle;
}

.woocommerce #reviews #comments .comment-text .description {
	color: var(--pmw-wc-ink);
	line-height: 1.7;
}
.woocommerce #reviews #comments .comment-text .description p:last-child {
	margin-bottom: 0;
}

/* ---- Formulaire « Ajouter un avis » ---- */
.woocommerce #review_form_wrapper {
	margin-top: 28px;
}
.woocommerce #review_form #respond.comment-respond {
	background: var(--pmw-wc-card);
	border: 1px solid var(--pmw-wc-line);
	border-radius: var(--pmw-wc-radius);
	padding: 24px 24px 10px;
}
.woocommerce #review_form #respond .comment-reply-title {
	display: block;
	font-weight: 700;
	font-size: 1.15rem;
	color: var(--pmw-wc-ink);
	margin-bottom: .3em;
}
.woocommerce #review_form #respond .comment-notes {
	color: var(--pmw-wc-muted);
	font-size: .9rem;
	margin-bottom: 1.2em;
}
.woocommerce #review_form #respond .comment-form label {
	display: block;
	font-weight: 600;
	color: var(--pmw-wc-ink);
	margin-bottom: .35em;
}
.woocommerce #review_form #respond .comment-form-rating {
	margin-bottom: 1.1em;
}
.woocommerce #review_form #respond input[type="text"],
.woocommerce #review_form #respond input[type="email"],
.woocommerce #review_form #respond textarea {
	width: 100%;
	box-sizing: border-box;
	border: 1px solid var(--pmw-wc-line);
	border-radius: 10px;
	padding: 12px 14px;
	background: #fff;
	color: var(--pmw-wc-ink);
	font: inherit;
	transition: border-color .18s ease, box-shadow .18s ease;
}
.woocommerce #review_form #respond input[type="text"]:focus,
.woocommerce #review_form #respond input[type="email"]:focus,
.woocommerce #review_form #respond textarea:focus {
	border-color: var(--pmw-wc-primary);
	box-shadow: 0 0 0 3px rgba(15, 57, 95, .12);
	outline: 0;
}
/* Étoiles cliquables du formulaire */
.woocommerce #review_form #respond p.stars a::before,
.woocommerce #review_form #respond p.stars a.active::before,
.woocommerce #review_form #respond p.stars a:hover::before {
	color: var(--pmw-wc-star);
}
.woocommerce #review_form #respond .form-submit {
	margin-top: .6em;
}

/* ============================================================
   CARTES PRODUIT (produits associés + future grille boutique)
   ============================================================ */
.woocommerce ul.products {
	display: grid;
	/* Grille FLUIDE : le nombre de colonnes s'adapte à la largeur RÉELLE de la zone
	   produits (fonctionne avec OU sans sidebar). Largeur mini d'une carte = 230px. */
	grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
	gap: clamp(16px, 2vw, 28px);
	margin: 0;
	padding: 0;
	list-style: none;
}

/* Option « Grille produits plus dense » (body.gpbc-grid-dense) : on réduit la largeur
   mini d'une carte (230 → 184px) → une colonne de plus s'insère à chaque taille d'écran
   (tablette 2→3, ordinateur 3→4, grand écran 4→5). Le mobile (≤768px, forcé à 2 plus bas)
   n'est pas touché : la règle est bornée à partir de 769px. */
@media (min-width: 769px) {
	body.gpbc-grid-dense .woocommerce ul.products {
		grid-template-columns: repeat(auto-fill, minmax(184px, 1fr));
	}
}

.woocommerce ul.products::before,
.woocommerce ul.products::after {
	display: none;
}

.woocommerce ul.products li.product {
	width: auto !important;
	margin: 0 !important;
	float: none !important;
	background: var(--pmw-wc-card);
	border: 1px solid var(--pmw-wc-line);
	border-radius: var(--pmw-wc-radius);
	padding: 14px 14px 20px;
	text-align: center;
	position: relative;
	overflow: hidden;                 /* clippe l'image aux coins arrondis */
	transition: border-color .2s ease;
}

/* Survol : juste une bordure (couleur principale). Pas de lift ni de zoom. */
.woocommerce ul.products li.product:hover {
	border-color: var(--pmw-wc-primary);
}

/* Bloc HTML personnalisé de la fiche produit (avant l'ajout au panier). */
.woocommerce div.product .gpbc-product-html {
	margin: 0 0 18px;
}

/* -------- Option « Ombre + zoom sur l'image » (body.gpbc-cardhover-shadow) --------
   Remplace l'effet de bordure : la carte se soulève avec une ombre douce et l'image
   zoome légèrement (clippée par overflow:hidden de la carte). */
body.gpbc-cardhover-shadow ul.products li.product {
	transition: box-shadow .25s ease, border-color .2s ease;
}
body.gpbc-cardhover-shadow ul.products li.product:hover {
	border-color: var(--pmw-wc-line);      /* neutralise la bordure colorée */
	box-shadow: 0 18px 40px rgba(15, 57, 95, .16);
}
body.gpbc-cardhover-shadow ul.products li.product a img {
	transition: transform .5s ease;
	will-change: transform;
}
body.gpbc-cardhover-shadow ul.products li.product:hover a img {
	transform: scale(1.03);
}
@media (prefers-reduced-motion: reduce) {
	body.gpbc-cardhover-shadow ul.products li.product,
	body.gpbc-cardhover-shadow ul.products li.product a img {
		transition: none;
	}
	body.gpbc-cardhover-shadow ul.products li.product:hover {
		transform: none;
	}
	body.gpbc-cardhover-shadow ul.products li.product:hover a img {
		transform: none;
	}
}

/* Image collée à la bordure (top + côtés) : on annule le padding de la carte
   via des marges négatives, l'image remplit toute la largeur. */
.woocommerce ul.products li.product a img {
	display: block;
	width: calc(100% + 28px);
	max-width: none;
	margin: -14px -14px 14px;
	border-radius: 0;
}

/* Étoiles centrées */
.woocommerce ul.products li.product .star-rating {
	margin: 0 auto 8px;
	float: none;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
	font-size: 1rem;
	font-weight: 600;
	color: var(--pmw-wc-ink);
	padding: 0 4px;
}

.woocommerce ul.products li.product .price {
	color: var(--pmw-wc-price-color);
	font-weight: 700;
	display: block;
	margin: .3em 0 .1em;
}

.woocommerce ul.products li.product .price del {
	color: var(--pmw-wc-muted);
	font-weight: 500;
}

/* Bouton d'ajout au panier (grille boutique) : compact, contour transparent
   qui se remplit au survol. */
.woocommerce ul.products li.product .button {
	margin-top: 10px;
	padding: .55em 1.2em;
	border-radius: 10px;
	font-size: .9rem;
	box-shadow: none;
	background: transparent;
	color: var(--pmw-wc-btn-bg, #0f395f);
	border: 1px solid var(--pmw-wc-btn-bg, #0f395f);
	transition: box-shadow .2s ease, background-color .2s ease, color .2s ease;
}
/* Survol de TOUTE la carte : on épaissit la bordure du bouton (pas de remplissage).
   Épaississement via box-shadow interne → aucun décalage de taille (contrairement
   à un changement de border-width). */
.woocommerce ul.products li.product:hover .button {
	background: transparent;
	color: var(--pmw-wc-btn-bg, #0f395f);
	border-color: var(--pmw-wc-btn-bg, #0f395f);
	box-shadow: inset 0 0 0 1px var(--pmw-wc-btn-bg, #0f395f);
}
/* Survol du BOUTON lui-même (ou focus) : là on remplit le fond. */
.woocommerce ul.products li.product .button:hover,
.woocommerce ul.products li.product .button:focus {
	transform: none;
	background: var(--pmw-wc-btn-bg, #0f395f);
	color: var(--pmw-wc-btn-text, #fff);
	border-color: var(--pmw-wc-btn-bg, #0f395f);
	box-shadow: none;
}

/* Badge « Nouveau » : pastille en haut à droite (produits récents). */
.gpbc-new-badge {
	position: absolute;
	z-index: 3;
	padding: 5px 12px;
	border-radius: 999px;
	background: var(--pmw-wc-primary, #0f395f);
	color: #fff;
	font-size: .7rem;
	font-weight: 700;
	line-height: 1.1;
	letter-spacing: .3px;
	text-transform: uppercase;
}
.woocommerce ul.products li.product .gpbc-new-badge { top: 12px; right: 12px; }
.woocommerce div.product { position: relative; }
.woocommerce div.product > .gpbc-new-badge { top: 14px; left: 14px; }

/* Badge « En promo » : petite pastille compacte en haut à gauche. */
.woocommerce ul.products li.product .onsale {
	position: absolute;
	top: 12px;
	left: 12px;
	right: auto;
	margin: 0;
	min-width: 0;
	min-height: 0;
	width: auto;
	height: auto;
	padding: 5px 12px;
	border-radius: 999px;
	background: var(--pmw-wc-sale, #e0533d);
	color: #fff;
	font-size: .7rem;
	font-weight: 700;
	line-height: 1.1;
	letter-spacing: .3px;
	text-transform: uppercase;
	z-index: 2;
}

/* Mobile : 2 produits par ligne (boutique + produits associés).
   On garde le padding/marge d'image cohérents (l'image est calée sur le padding
   via des marges négatives), juste resserrés pour les cartes plus étroites. */
@media (max-width: 768px) {
	.woocommerce ul.products {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 12px;
	}
	.woocommerce ul.products li.product { padding: 12px 12px 16px; }
	.woocommerce ul.products li.product a img {
		width: calc(100% + 24px);
		margin: -12px -12px 12px;
	}
	.woocommerce ul.products li.product .woocommerce-loop-product__title { font-size: .92rem; }
	.woocommerce ul.products li.product .price { font-size: .95rem; }
	.woocommerce ul.products li.product .button { padding: .5em .7em; font-size: .82rem; }
	.woocommerce ul.products li.product .gpbc-new-badge,
	.woocommerce ul.products li.product .onsale { top: 8px; }
	.woocommerce ul.products li.product .gpbc-new-badge { right: 8px; }
	.woocommerce ul.products li.product .onsale { left: 8px; padding: 4px 9px; font-size: .62rem; }
}

/* ============================================================
   NAVIGATION SOUS-CATÉGORIES (chips À CÔTÉ du fil d'Ariane)
   ============================================================ */
/* Le breadcrumb natif et la nav sont enveloppés dans .gpbc-crumb-row (flex)
   → breadcrumb à gauche, chips juste à côté, repli sous le breadcrumb si étroit. */
.gpbc-crumb-row {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px 16px;
	margin: 0 0 20px;
}
.gpbc-crumb-row .woocommerce-breadcrumb {
	margin: 0;
	padding: 0;
}
/* Séparateur vertical discret entre le breadcrumb et les chips (écrans larges). */
.gpbc-crumb-row .gpbc-subcat-nav {
	margin: 0;
	position: relative;
}
@media (min-width: 600px) {
	.gpbc-crumb-row .gpbc-subcat-nav {
		padding-left: 16px;
	}
	.gpbc-crumb-row .gpbc-subcat-nav::before {
		content: "";
		position: absolute;
		left: 0;
		top: 50%;
		transform: translateY(-50%);
		width: 1px;
		height: 18px;
		background: var(--pmw-wc-line, #d7dbe0);
	}
}
.gpbc-subcat-nav {
	margin: 4px 0 22px;
}
.gpbc-subcat-nav ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}
.gpbc-subcat-item a {
	display: inline-block;
	padding: 6px 14px;
	border: 1px solid var(--pmw-wc-line, #e3e6ea);
	border-radius: 999px;
	font-size: .88rem;
	line-height: 1.3;
	color: var(--pmw-wc-ink, #1a2b3c);
	background: var(--pmw-wc-card, #fff);
	text-decoration: none;
	transition: border-color .18s ease, background-color .18s ease, color .18s ease;
}
.gpbc-subcat-item a:hover,
.gpbc-subcat-item a:focus {
	border-color: var(--pmw-wc-primary, #0f395f);
	color: var(--pmw-wc-primary, #0f395f);
}
.gpbc-subcat-item.is-current a {
	background: var(--pmw-wc-primary, #0f395f);
	border-color: var(--pmw-wc-primary, #0f395f);
	color: #fff;
}
/* Niveaux profonds légèrement plus discrets (indice visuel de hiérarchie). */
.gpbc-subcat-item.depth-2 a,
.gpbc-subcat-item.depth-3 a,
.gpbc-subcat-item.depth-4 a { font-size: .8rem; opacity: .9; }
@media (max-width: 768px) {
	.gpbc-subcat-nav { margin: 2px 0 16px; }
	.gpbc-subcat-item a { padding: 5px 12px; font-size: .82rem; }
}

/* Pages WooCommerce AVEC sidebar : on inset le contenu des bords + on rend la
   sidebar sticky (elle reste à sa place au défilement). */
.woocommerce-page:not(.no-sidebar) .site-content,
.woocommerce:not(.no-sidebar) .site-content {
	padding-left: var(--gpbc-gutter, 24px);
	padding-right: var(--gpbc-gutter, 24px);
	box-sizing: border-box;
}
@media (min-width: 769px) {
	.woocommerce .site-content .content-area,
	.woocommerce-page .site-content .content-area { width: 76%; }
	.woocommerce .site-content .widget-area.sidebar,
	.woocommerce-page .site-content .widget-area.sidebar {
		width: 24%;
		align-self: flex-start;   /* requis pour le sticky dans un flex */
		position: sticky;
		/* Calée sous l'entête : --gpbc-header-h = bas réel de l'entête (mesuré en JS,
		   inclut top-bar / mode compact / barre d'admin). Repli 90px = dégage un
		   entête classique même si le JS n'a pas encore tourné. +22px d'air. */
		top: calc(var(--gpbc-header-h, 90px) + 22px);
	}
}

/* Sidebar : widget « Catégories » affiché en 2 colonnes (tous écrans).
   Cible le widget catégories produits ET le widget catégories du cœur WP. */
.widget-area .widget_product_categories > ul.product-categories,
.widget-area .widget_categories > ul {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0 22px;
	list-style: none;
	margin: 0;
	padding: 0;
}
/* Divider discret sous chaque item (top-niveau). */
.widget-area .widget_product_categories > ul.product-categories > li,
.widget-area .widget_categories > ul > li {
	margin: 0;
	border-bottom: 1px solid var(--pmw-wc-line, #e6e8ec);
}
.widget-area .widget_product_categories > ul.product-categories > li:last-child,
.widget-area .widget_categories > ul > li:last-child {
	border-bottom: 0;
}
/* Liens sans soulignage ; survol = couleur principale. */
.widget-area .widget_product_categories > ul.product-categories a,
.widget-area .widget_categories > ul a {
	display: block;
	padding: 9px 2px;
	text-decoration: none;
}
.widget-area .widget_product_categories > ul.product-categories a:hover,
.widget-area .widget_product_categories > ul.product-categories a:focus,
.widget-area .widget_categories > ul a:hover,
.widget-area .widget_categories > ul a:focus {
	text-decoration: none;
	color: var(--pmw-wc-primary, #0f395f);
}
/* Catégorie courante (classe current-cat ajoutée par le widget) : lien actif. */
.widget-area .widget_product_categories li.current-cat > a,
.widget-area .widget_categories li.current-cat > a {
	color: var(--pmw-wc-primary, #0f395f);
	font-weight: 700;
}
/* Sous-catégories (listes hiérarchiques) : pleine largeur, empilées. */
.widget-area .widget_product_categories > ul.product-categories ul,
.widget-area .widget_categories > ul ul {
	grid-column: 1 / -1;
	display: block;
	margin: 0;
	padding-left: 12px;
}

/* ============================================================
   SIDEBAR — conteneur widget soigné (contour + relief).
   On CONSERVE la couleur de fond définie dans GeneratePress ; on améliore
   uniquement l'encadrement : bordure fine, coins arrondis, ombre douce.
   ============================================================ */
.woocommerce .widget-area.sidebar .widget,
.woocommerce-page .widget-area.sidebar .widget {
	border: 1px solid rgba(0, 0, 0, .08);
	border-radius: var(--pmw-wc-radius, 16px);
	padding: 24px 24px 18px;
	box-shadow: 0 10px 30px rgba(15, 57, 95, .08);
	margin-bottom: 24px;
}
.woocommerce .widget-area.sidebar .widget:last-child,
.woocommerce-page .widget-area.sidebar .widget:last-child {
	margin-bottom: 0;
}

/* Titre du widget : séparateur fin + courte barre d'accent (couleur principale). */
.woocommerce .widget-area.sidebar .widget .widget-title,
.woocommerce-page .widget-area.sidebar .widget .widget-title {
	position: relative;
	margin: 0 0 18px;
	padding-bottom: 12px;
	border-bottom: 1px solid rgba(0, 0, 0, .1);
}
.woocommerce .widget-area.sidebar .widget .widget-title::after,
.woocommerce-page .widget-area.sidebar .widget .widget-title::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: -1px;
	width: 44px;
	height: 3px;
	border-radius: 3px;
	background: var(--pmw-wc-primary, #0f395f);
}

/* ============================================================
   PAGINATION (archives boutique) — pastilles soignées.
   Sélecteurs spécifiques pour passer au-dessus du CSS WooCommerce par défaut.
   ============================================================ */
.woocommerce nav.woocommerce-pagination {
	margin-top: 34px;
	text-align: center;
}
.woocommerce nav.woocommerce-pagination ul.page-numbers {
	display: inline-flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 8px;
	margin: 0;
	padding: 0;
	border: 0;
	list-style: none;
}
.woocommerce nav.woocommerce-pagination ul.page-numbers li {
	margin: 0;
	border: 0;
	display: inline-flex;
}
.woocommerce nav.woocommerce-pagination ul.page-numbers li .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 42px;
	height: 42px;
	padding: 0 12px;
	margin: 0;
	border: 1px solid var(--pmw-wc-line, #e6e8ec);
	border-radius: 12px;
	background: var(--pmw-wc-card, #fff);
	color: var(--pmw-wc-ink, #1a2230);
	font-weight: 600;
	font-size: .95rem;
	line-height: 1;
	text-decoration: none;
	transition: background-color .18s ease, border-color .18s ease, color .18s ease, transform .18s ease;
}
.woocommerce nav.woocommerce-pagination ul.page-numbers li a.page-numbers:hover,
.woocommerce nav.woocommerce-pagination ul.page-numbers li a.page-numbers:focus {
	border-color: var(--pmw-wc-primary, #0f395f);
	color: var(--pmw-wc-primary, #0f395f);
	transform: translateY(-1px);
}
.woocommerce nav.woocommerce-pagination ul.page-numbers li .page-numbers.current {
	background: var(--pmw-wc-primary, #0f395f);
	border-color: var(--pmw-wc-primary, #0f395f);
	color: #fff;
}
.woocommerce nav.woocommerce-pagination ul.page-numbers li .page-numbers.dots {
	min-width: 26px;
	padding: 0 2px;
	border-color: transparent;
	background: transparent;
	color: var(--pmw-wc-muted, #6b7280);
}
.woocommerce nav.woocommerce-pagination ul.page-numbers li .page-numbers.next,
.woocommerce nav.woocommerce-pagination ul.page-numbers li .page-numbers.prev {
	font-size: 1.15rem;
	font-weight: 700;
}
@media (prefers-reduced-motion: reduce) {
	.woocommerce nav.woocommerce-pagination ul.page-numbers li .page-numbers { transition: none; }
	.woocommerce nav.woocommerce-pagination ul.page-numbers li a.page-numbers:hover { transform: none; }
}

.woocommerce .related > h2,
.woocommerce .upsells > h2 {
	font-weight: 700;
	color: var(--pmw-wc-ink);
	margin-bottom: 1em;
}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 768px) {
	.woocommerce div.product {
		gap: 24px;
	}
	.woocommerce div.product form.cart .button {
		flex: 1 1 auto;
		justify-content: center;
	}
	.woocommerce .woocommerce-tabs ul.tabs {
		flex-wrap: nowrap;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
	}
}

/* ============================================================
   CHECKOUT — form à gauche, RÉCAP CLAIR sticky à droite avec le
   paiement (champs carte + bouton) DEDANS. Structure via hooks.
   ============================================================ */
.woocommerce-checkout .gpbc-co-grid {
	display: grid;
	padding-top: 40px;
	grid-template-columns: minmax(0, 1fr) 380px;
	gap: 44px;
	align-items: start;
	max-width: 1120px;
	margin: 0 auto;
}
.gpbc-co-main { min-width: 0; }

/* Titres de sections : annule le style MAJUSCULES/gros du thème */
.woocommerce-checkout .gpbc-co-main h3,
.woocommerce-checkout .gpbc-co-main .woocommerce-billing-fields h3,
.woocommerce-checkout .gpbc-co-main .woocommerce-additional-fields h3,
.woocommerce-checkout .gpbc-co-aside #order_review_heading {
	font-size: 1.2rem;
	font-weight: 700;
	text-transform: none;
	letter-spacing: 0;
	line-height: 1.3;
	margin: 0 0 1.1em;
	color: var(--pmw-wc-ink, #1a2230);
}

/* Coordonnées + infos : EMPILÉES (annule le col2-set côte à côte de WC) */
.woocommerce-checkout #customer_details.col2-set,
.woocommerce-checkout #customer_details .col2-set { display: block; }
.woocommerce-checkout #customer_details .col-1,
.woocommerce-checkout #customer_details .col-2 {
	width: 100%;
	max-width: none;
	float: none;
	margin: 0;
}
.woocommerce-checkout #customer_details .col-2 { margin-top: 34px; }

/* Champs (colonne gauche) */
.woocommerce-checkout .gpbc-co-main .form-row { margin: 0 0 18px; padding: 0; }
.woocommerce-checkout .gpbc-co-main .form-row label {
	display: block;
	font-weight: 500;
	font-size: .9rem;
	color: var(--pmw-wc-muted, #5b6472);
	margin-bottom: 6px;
}
.woocommerce-checkout .gpbc-co-main .form-row .required { color: var(--pmw-wc-sale, #e0533d); border: 0; }
.woocommerce-checkout .gpbc-co-main .input-text,
.woocommerce-checkout .gpbc-co-main select,
.woocommerce-checkout .gpbc-co-main textarea {
	width: 100%;
	box-sizing: border-box;
	border: 1px solid var(--pmw-wc-line, #e7e9ee);
	border-radius: 10px;
	padding: 13px 14px;
	background: #fff;
	color: var(--pmw-wc-ink, #1a2230);
	font: inherit;
	line-height: 1.3;
	transition: border-color .15s ease, box-shadow .15s ease;
}
.woocommerce-checkout .gpbc-co-main .input-text:focus,
.woocommerce-checkout .gpbc-co-main select:focus,
.woocommerce-checkout .gpbc-co-main textarea:focus {
	border-color: var(--pmw-wc-primary, #0f395f);
	box-shadow: 0 0 0 3px rgba(15, 57, 95, .12);
	outline: 0;
}
.woocommerce-checkout .gpbc-co-main textarea { min-height: 92px; }

/* --- Récap (colonne droite) : carte CLAIRE, sticky --- */
.gpbc-co-aside {
	position: sticky;
	top: 24px;
	background: #fff;
	color: var(--pmw-wc-ink, #1a2230);
	border: 1px solid var(--pmw-wc-line, #e7e9ee);
	border-radius: 16px;
	padding: 26px 24px;
	box-shadow: 0 14px 40px rgba(15, 57, 95, .07);
}

/* Tableau récap */
.gpbc-co-aside .shop_table {
	width: 100%;
	margin: 0 0 6px;
	border: 0;
	background: none;
	color: var(--pmw-wc-ink, #1a2230);
	border-collapse: collapse;
}
.gpbc-co-aside .shop_table thead { display: none; }
.gpbc-co-aside .shop_table th,
.gpbc-co-aside .shop_table td {
	border: 0;
	padding: 11px 0;
	background: none;
	color: var(--pmw-wc-ink, #1a2230);
}
.gpbc-co-aside .cart_item { border-bottom: 1px solid var(--pmw-wc-line, #e7e9ee); }
.gpbc-co-aside .cart_item td.product-name { font-weight: 600; line-height: 1.4; padding-right: 12px; }
.gpbc-co-aside .cart_item .product-quantity {
	display: inline-block;
	margin-left: 4px;
	color: var(--pmw-wc-muted, #5b6472);
	font-weight: 400;
}
.gpbc-co-aside .cart_item td.product-total {
	text-align: right;
	white-space: nowrap;
	vertical-align: top;
	font-weight: 600;
}
.gpbc-co-aside tfoot th,
.gpbc-co-aside tfoot td {
	color: var(--pmw-wc-muted, #5b6472);
	font-weight: 500;
	padding: 8px 0;
	border: 0;
}
.gpbc-co-aside tfoot td { text-align: right; }
.gpbc-co-aside tfoot .order-total th {
	color: var(--pmw-wc-ink, #1a2230);
	font-weight: 700;
	font-size: 1.25rem;
	border-top: 1px solid var(--pmw-wc-line, #e7e9ee);
	padding-top: 15px;
}
.gpbc-co-aside tfoot .order-total td {
	color: var(--pmw-wc-price-color, #0f395f);
	font-weight: 700;
	font-size: 1.25rem;
	border-top: 1px solid var(--pmw-wc-line, #e7e9ee);
	padding-top: 15px;
}

/* Coupon (récap, clair) */
.gpbc-co-aside .woocommerce-form-coupon-toggle { margin: 0 0 8px; }
.gpbc-co-aside .woocommerce-form-coupon-toggle .woocommerce-info {
	background: none;
	border: 0;
	padding: 0;
	margin: 0;
	color: var(--pmw-wc-muted, #5b6472);
	font-size: .9rem;
}
.gpbc-co-aside .woocommerce-form-coupon-toggle .woocommerce-info::before { display: none; }
.gpbc-co-aside .checkout_coupon { border: 0; padding: 0; margin: 10px 0 14px; background: none; }
.gpbc-co-aside .checkout_coupon .form-row { margin-bottom: 8px; }
.gpbc-co-aside .checkout_coupon .input-text {
	width: 100%;
	box-sizing: border-box;
	border: 1px solid var(--pmw-wc-line, #e7e9ee);
	border-radius: 8px;
	padding: 11px 12px;
}
.gpbc-co-aside .checkout_coupon .button {
	width: 100%;
	border-radius: 8px;
	background: var(--pmw-wc-ink, #1a2230);
	color: #fff;
}

/* --- Paiement DANS le récap --- */
.gpbc-co-aside #payment {
	background: none;
	margin-top: 14px;
	border-radius: 0;
}
.gpbc-co-aside #payment ul.payment_methods {
	list-style: none;
	margin: 0;
	padding: 0;
	border: 0;
	background: none;
}
.gpbc-co-aside #payment ul.payment_methods li {
	margin: 0;
	padding: 10px 0;
	border: 0;
	background: none;
}
.gpbc-co-aside #payment ul.payment_methods li label { display: inline; font-weight: 600; }
.gpbc-co-aside #payment div.payment_box {
	background: #f6f8fa;
	border-radius: 10px;
	margin: 8px 0 4px;
	font-size: .9rem;
	color: var(--pmw-wc-muted, #5b6472);
}
.gpbc-co-aside #payment div.payment_box::before { border-bottom-color: #f6f8fa; }
/* Champs de la passerelle (Numéro de carte, MM/AA, CVC…) */
.gpbc-co-aside #payment .input-text,
.gpbc-co-aside #payment input[type="text"],
.gpbc-co-aside #payment input[type="tel"],
.gpbc-co-aside #payment .wc-stripe-elements-field,
.gpbc-co-aside #payment .wc-credit-card-form-card-number {
	width: 100%;
	box-sizing: border-box;
	border: 1px solid var(--pmw-wc-line, #e7e9ee);
	border-radius: 8px;
	padding: 12px 12px;
	background: #fff;
}
.gpbc-co-aside #payment #place_order {
	width: 100%;
	margin: 16px 0 0;
	padding: 1.05em 1.4em;
	font-size: 1.05rem;
	font-weight: 700;
	border: 0;
	border-radius: 12px;
	background: var(--pmw-wc-btn-bg, #0f395f);
	color: var(--pmw-wc-btn-text, #fff);
	box-shadow: 0 8px 22px rgba(15, 57, 95, .18);
	transition: background-color .15s ease, transform .15s ease;
}
.gpbc-co-aside #payment #place_order:hover {
	background: var(--pmw-wc-btn-bg-hover, #0a2c49);
	color: var(--pmw-wc-btn-text, #fff);
	transform: translateY(-1px);
}

/* --- Responsive : une colonne, récap en bas --- */
@media (max-width: 900px) {
	.woocommerce-checkout .gpbc-co-grid {
		grid-template-columns: 1fr;
		gap: 30px;
		max-width: 640px;
	}
	.gpbc-co-aside { position: static; }
}

/* ============================================================
   CHECKOUT « SERVICES » — 3 colonnes (récap / infos / paiement).
   DOM natif = [infos][récap][paiement] ; on réordonne en CSS.
   ============================================================ */
.gpbc-model-services .gpbc-sco-grid {
	display: grid;
	padding-top: 40px;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
	align-items: start;
	max-width: 1200px;
	margin: 0 auto;
}
/* Ordre visuel : récap (1) → infos (2) → paiement (3). */
.gpbc-model-services #order_review   { order: 1; }
.gpbc-model-services #customer_details { order: 2; }
.gpbc-model-services .gpbc-sco-pay   { order: 3; }
.gpbc-model-services #order_review_heading { display: none; }

/* Cartes des 3 colonnes */
.gpbc-model-services #order_review,
.gpbc-model-services #customer_details,
.gpbc-model-services .gpbc-sco-pay {
	background: #fff;
	border: 1px solid var(--pmw-wc-line, #e7e9ee);
	border-radius: var(--pmw-wc-radius, 16px);
	padding: 24px 22px;
	box-shadow: 0 8px 30px rgba(15, 57, 95, .07);
	min-width: 0;
}
.gpbc-sco-title {
	margin: 0 0 18px;
	padding-bottom: 12px;
	border-bottom: 1px solid var(--pmw-wc-line, #e7e9ee);
	font-size: 1.02rem;
	font-weight: 700;
	letter-spacing: .2px;
	color: var(--pmw-wc-ink, #1a2230);
	text-transform: none;
}

/* --- Col 2 : formulaire condensé --- */
.gpbc-model-services #customer_details .col2-set,
.gpbc-model-services #customer_details.col2-set { display: block; }
.gpbc-model-services #customer_details .col-1 { width: 100%; max-width: none; float: none; margin: 0; }
.gpbc-model-services #customer_details .col-2 { display: none; }   /* pas de livraison */
.gpbc-model-services #customer_details .woocommerce-billing-fields > h3 { display: none; }
.gpbc-model-services #customer_details .woocommerce-account-fields,
.gpbc-model-services #customer_details .woocommerce-additional-fields { display: none; }
.gpbc-model-services #customer_details .form-row { margin: 0 0 16px; padding: 0; }
.gpbc-model-services #customer_details .form-row label {
	display: block;
	font-weight: 500;
	font-size: .9rem;
	color: var(--pmw-wc-muted, #5b6472);
	margin-bottom: 6px;
}
.gpbc-model-services #customer_details .form-row .required { color: var(--pmw-wc-sale, #e0533d); border: 0; }
.gpbc-model-services #customer_details .input-text {
	width: 100%;
	box-sizing: border-box;
	border: 1px solid var(--pmw-wc-line, #e7e9ee);
	border-radius: 10px;
	padding: 13px 14px;
	background: #fff;
	color: var(--pmw-wc-ink, #1a2230);
	font: inherit;
	line-height: 1.3;
	transition: border-color .15s ease, box-shadow .15s ease;
}
.gpbc-model-services #customer_details .input-text:focus {
	border-color: var(--pmw-wc-primary, #0f395f);
	box-shadow: 0 0 0 3px rgba(15, 57, 95, .12);
	outline: 0;
}

/* --- Col 1 : mini récap (table WooCommerce) --- */
.gpbc-model-services #order_review .shop_table {
	width: 100%;
	border: 0;
	margin: 0;
	background: none;
}
/* On retire l'en-tête « Produit / Sous-total » (bandeau bleu). */
.gpbc-model-services #order_review .shop_table thead { display: none; }
.gpbc-model-services #order_review .shop_table th,
.gpbc-model-services #order_review .shop_table td {
	padding: 10px 0;
	border: 0;
	border-bottom: 1px solid var(--pmw-wc-line, #e7e9ee);
	color: var(--pmw-wc-ink, #1a2230);
}
.gpbc-model-services #order_review .shop_table tfoot th,
.gpbc-model-services #order_review .shop_table tfoot td { font-weight: 700; }
.gpbc-model-services #order_review .shop_table .order-total td { color: var(--pmw-wc-price-color, #0f395f); font-size: 1.05rem; }

/* Croix rouge de suppression d'une ligne */
.gpbc-model-services #order_review .gpbc-sco-remove {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 20px;
	height: 20px;
	margin-left: 8px;
	border-radius: 50%;
	border: 1px solid var(--pmw-wc-sale, #e0533d);
	color: var(--pmw-wc-sale, #e0533d);
	font-size: 14px;
	font-weight: 700;
	line-height: 1;
	text-decoration: none;
	vertical-align: middle;
	transition: background-color .15s ease, color .15s ease, opacity .15s ease;
}
.gpbc-model-services #order_review .gpbc-sco-remove:hover {
	background: var(--pmw-wc-sale, #e0533d);
	color: #fff;
}
.gpbc-model-services #order_review .gpbc-sco-remove.is-busy { opacity: .4; pointer-events: none; }

/* --- Col 3 : paiement --- */
.gpbc-model-services .gpbc-sco-pay ul.payment_methods {
	list-style: none;
	margin: 0 0 16px;
	padding: 0;
	border: 0;
}
.gpbc-model-services .gpbc-sco-pay ul.payment_methods li {
	padding: 12px 14px;
	margin-bottom: 10px;
	border: 1px solid var(--pmw-wc-line, #e7e9ee);
	border-radius: 12px;
	background: #fff;
	list-style: none;
}
.gpbc-model-services .gpbc-sco-pay ul.payment_methods li label { display: inline; font-weight: 600; }
.gpbc-model-services .gpbc-sco-pay div.payment_box {
	background: #f6f8fa;
	border-radius: 10px;
	margin-top: 10px;
	padding: 16px;
	font-size: .88rem;
}
.gpbc-model-services .gpbc-sco-pay div.payment_box::before { border-bottom-color: #f6f8fa; }
/* Intitulé « Paiement sécurisé par carte » */
.gpbc-model-services .gpbc-sco-pay div.payment_box > p:first-child {
	margin: 0 0 14px;
	font-weight: 600;
	color: var(--pmw-wc-ink, #0f395f);
}
/* Lignes du formulaire carte : empilées (colonne étroite) — évite le retour à la
   ligne disgracieux des libellés (« Date d'expiration ») quand exp/CVC sont côte à côte. */
.gpbc-model-services .gpbc-sco-pay .wc-credit-card-form .form-row {
	float: none !important;
	width: 100% !important;
	margin: 0 0 14px !important;
	padding: 0 !important;
}
.gpbc-model-services .gpbc-sco-pay .wc-credit-card-form .form-row:last-child { margin-bottom: 0 !important; }
.gpbc-model-services .gpbc-sco-pay .wc-credit-card-form label {
	display: block;
	font-size: .8rem;
	font-weight: 600;
	line-height: 1.3;
	margin: 0 0 6px;
}
/* Conteneurs des champs Stripe = « input » blanc homogène (au lieu du gris terne). */
.gpbc-model-services .gpbc-sco-pay .sumosubs-stripe-card-group,
.gpbc-model-services .gpbc-sco-pay [id^="sumosubs-stripe-"][id$="-element"],
.gpbc-model-services .gpbc-sco-pay .wc-stripe-elements-field,
.gpbc-model-services .gpbc-sco-pay .wc-credit-card-form-card-number,
.gpbc-model-services .gpbc-sco-pay .wc-credit-card-form-card-expiry,
.gpbc-model-services .gpbc-sco-pay .wc-credit-card-form-card-cvc {
	background: #fff;
	border: 1px solid var(--pmw-wc-line, #e7e9ee);
	border-radius: 10px;
	padding: 13px 14px;
	min-height: 48px;
	display: flex;
	align-items: center;
}
.gpbc-model-services .gpbc-sco-pay .StripeElement { width: 100%; }
/* Focus : Stripe ajoute .StripeElement--focus sur le champ actif. */
.gpbc-model-services .gpbc-sco-pay .StripeElement--focus {
	box-shadow: 0 0 0 3px rgba(15, 57, 95, .12);
	border-radius: 6px;
}
.gpbc-model-services .gpbc-sco-pay #place_order {
	width: 100%;
	margin-top: 8px;
	padding: 15px 20px;
	border: 0;
	border-radius: 12px;
	background: var(--pmw-wc-btn-bg, #0f395f);
	color: var(--pmw-wc-btn-text, #fff);
	font-weight: 700;
	font-size: 1rem;
	cursor: pointer;
	transition: background-color .15s ease;
}
.gpbc-model-services .gpbc-sco-pay #place_order:hover { background: var(--pmw-wc-btn-bg-hover, #0a2c49); }

/* --- Responsive services : 1 colonne --- */
@media (max-width: 900px) {
	.gpbc-model-services .gpbc-sco-grid {
		grid-template-columns: 1fr;
		gap: 22px;
		max-width: 560px;
	}
}

/* ============================================================
   ÉCRAN « PANIER VIDE » (mode services)
   ============================================================ */
/* On masque le formulaire / notices par défaut quand le panier est vide. */
.gpbc-checkout-empty form.checkout,
.gpbc-checkout-empty .gpbc-sco-grid,
.gpbc-checkout-empty .woocommerce-notices-wrapper { display: none !important; }
.gpbc-cart-empty-view .cart-empty.woocommerce-info,
.gpbc-cart-empty-view .return-to-shop,
.gpbc-cart-empty-view .woocommerce-notices-wrapper { display: none !important; }

.gpbc-empty-cart {
	max-width: 560px;
	margin: 70px auto;
	padding: 40px 24px;
	text-align: center;
}
.gpbc-empty-cart-ic { color: var(--pmw-wc-muted, #5b6472); margin-bottom: 16px; line-height: 0; }
.gpbc-empty-cart-ic svg { width: 72px; height: 72px; }
.gpbc-empty-cart-title {
	font-size: 2rem;
	font-weight: 800;
	margin: 0 0 26px;
	color: var(--pmw-wc-ink, #1a2230);
}
.gpbc-empty-cart-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 14px 32px;
	border-radius: 12px;
	background: var(--pmw-wc-btn-bg, #0f395f);
	color: var(--pmw-wc-btn-text, #fff) !important;
	font-weight: 700;
	font-size: 1rem;
	text-decoration: none;
	transition: background-color .15s ease;
}
.gpbc-empty-cart-btn:hover { background: var(--pmw-wc-btn-bg-hover, #0a2c49); }

/* ============================================================
   PAGE PANIER — 2 colonnes (articles / totaux carte sticky)
   ============================================================ */
.woocommerce-cart .gpbc-cart-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 360px;
	gap: 40px;
	align-items: start;
	max-width: 1120px;
	margin: 0 auto;
	padding-top: 40px;
}
.woocommerce-cart .woocommerce-cart-form { margin: 0; min-width: 0; }

/* --- Table des articles --- */
.woocommerce-cart .woocommerce-cart-form .shop_table {
	border: 0;
	width: 100%;
	background: none;
}
.woocommerce-cart .woocommerce-cart-form thead th {
	border: 0;
	border-bottom: 2px solid var(--pmw-wc-line, #e7e9ee);
	padding: 0 10px 14px 0;
	text-align: left;
	font-size: .78rem;
	text-transform: uppercase;
	letter-spacing: .5px;
	color: var(--pmw-wc-muted, #5b6472);
	background: none;
}
.woocommerce-cart .woocommerce-cart-form .cart_item td {
	border: 0;
	border-bottom: 1px solid var(--pmw-wc-line, #e7e9ee);
	padding: 18px 10px 18px 0;
	vertical-align: middle;
	background: none;
}
.woocommerce-cart .woocommerce-cart-form td.product-thumbnail { width: 90px; }
.woocommerce-cart .woocommerce-cart-form td.product-thumbnail img {
	width: 74px;
	height: 74px;
	object-fit: cover;
	border-radius: 12px;
}
.woocommerce-cart .woocommerce-cart-form td.product-name a {
	font-weight: 600;
	color: var(--pmw-wc-ink, #1a2230);
	text-decoration: none;
}
.woocommerce-cart .woocommerce-cart-form td.product-name a:hover { color: var(--pmw-wc-primary, #0f395f); }
.woocommerce-cart .woocommerce-cart-form .product-price,
.woocommerce-cart .woocommerce-cart-form .product-subtotal {
	color: var(--pmw-wc-ink, #1a2230);
	font-weight: 600;
}

/* Croix de suppression (rouge, ronde) */
.woocommerce-cart .woocommerce-cart-form td.product-remove a.remove {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 24px;
	height: 24px;
	border-radius: 50%;
	border: 1px solid var(--pmw-wc-sale, #e0533d);
	color: var(--pmw-wc-sale, #e0533d) !important;
	font-size: 16px;
	line-height: 1;
	text-decoration: none;
}
.woocommerce-cart .woocommerce-cart-form td.product-remove a.remove:hover {
	background: var(--pmw-wc-sale, #e0533d);
	color: #fff !important;
}

/* Quantité — stepper − [n] + */
.woocommerce-cart .woocommerce-cart-form .quantity.gpbc-stepper {
	display: inline-flex;
	align-items: center;
	border: 1px solid var(--pmw-wc-line, #e7e9ee);
	border-radius: 10px;
	overflow: hidden;
}
.woocommerce-cart .woocommerce-cart-form .gpbc-qty-btn {
	width: 40px;
	height: 42px;
	border: 0;
	background: #f5f7f9;
	color: var(--pmw-wc-ink, #1a2230);
	font-size: 18px;
	line-height: 1;
	cursor: pointer;
	transition: background-color .15s ease;
}
.woocommerce-cart .woocommerce-cart-form .gpbc-qty-btn:hover { background: #e9edf2; }
.woocommerce-cart .woocommerce-cart-form .quantity.gpbc-stepper input.qty {
	width: 48px;
	height: 42px;
	border: 0;
	border-left: 1px solid var(--pmw-wc-line, #e7e9ee);
	border-right: 1px solid var(--pmw-wc-line, #e7e9ee);
	border-radius: 0;
	text-align: center;
	-moz-appearance: textfield;
	background: #fff;
}
.woocommerce-cart .woocommerce-cart-form .quantity.gpbc-stepper input.qty::-webkit-outer-spin-button,
.woocommerce-cart .woocommerce-cart-form .quantity.gpbc-stepper input.qty::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

/* Actions (coupon) — on garde le <td> en cellule de tableau normale (surtout
   PAS display:flex sur le td, sinon il sort du layout table et devient un petit
   bloc « fantôme »). Le flex est mis sur le .coupon à l'intérieur. */
.woocommerce-cart .woocommerce-cart-form td.actions {
	padding: 20px 0 0 !important;
	text-align: left !important;
	border: 0 !important;
}
/* Pas de coupon (coupons désactivés) => la ligne n'a plus d'utilité
   (le bouton « Mettre à jour » est masqué) : on la retire. */
.woocommerce-cart .woocommerce-cart-form td.actions:not(:has(.coupon)) { display: none !important; }
/* Coupon discret : petit champ + bouton « Appliquer » léger (contour). */
.woocommerce-cart .woocommerce-cart-form .actions .coupon {
	display: flex;
	gap: 6px;
	max-width: 320px;
}
.woocommerce-cart .woocommerce-cart-form .actions .coupon .input-text {
	flex: 1 1 auto;
	border: 1px solid var(--pmw-wc-line, #e7e9ee);
	border-radius: 8px;
	padding: 8px 11px;
	font-size: .88rem;
	background: #f7f8fa;
}
.woocommerce-cart .woocommerce-cart-form .actions .coupon .button {
	flex: 0 0 auto;
	padding: 8px 14px;
	border-radius: 8px;
	font-size: .82rem;
	font-weight: 600;
	background: transparent;
	color: var(--pmw-wc-primary, #0f395f);
	border: 1px solid var(--pmw-wc-line, #e7e9ee);
}
.woocommerce-cart .woocommerce-cart-form .actions .coupon .button:hover,
.woocommerce-cart .woocommerce-cart-form .actions .coupon .button:focus {
	background: var(--pmw-wc-primary, #0f395f);
	color: #fff;
	border-color: var(--pmw-wc-primary, #0f395f);
}
/* Bouton « Mettre à jour le panier » : masqué (le panier se met à jour tout
   seul au changement de quantité), mais conservé dans le DOM car le script
   déclenche son clic pour lancer la mise à jour WooCommerce. */
.woocommerce-cart .woocommerce-cart-form .actions button[name="update_cart"] {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	border: 0;
}

/* --- Totaux (colonne droite, carte sticky) --- */
.woocommerce-cart .cart-collaterals { width: auto; float: none; margin: 0; }
.woocommerce-cart .cart-collaterals .cart_totals { width: auto; float: none; }
.woocommerce-cart .cart_totals {
	position: sticky;
	top: 24px;
	background: #fff;
	border: 1px solid var(--pmw-wc-line, #e7e9ee);
	border-radius: 16px;
	padding: 24px;
	box-shadow: 0 8px 30px rgba(15, 57, 95, .07);
}
.woocommerce-cart .cart_totals h2 {
	margin: 0 0 16px;
	font-size: 1.1rem;
	font-weight: 700;
	color: var(--pmw-wc-ink, #1a2230);
	text-transform: none;
}
.woocommerce-cart .cart_totals table { border: 0; margin: 0; width: 100%; }
.woocommerce-cart .cart_totals table th,
.woocommerce-cart .cart_totals table td {
	border: 0;
	border-bottom: 1px solid var(--pmw-wc-line, #e7e9ee);
	padding: 12px 0;
	color: var(--pmw-wc-ink, #1a2230);
}
.woocommerce-cart .cart_totals .order-total td { font-size: 1.15rem; color: var(--pmw-wc-price-color, #0f395f); }
.woocommerce-cart .cart_totals .wc-proceed-to-checkout { padding: 18px 0 0; }
.woocommerce-cart .cart_totals .checkout-button {
	display: block;
	width: 100%;
	text-align: center;
	background: var(--pmw-wc-btn-bg, #0f395f);
	color: var(--pmw-wc-btn-text, #fff) !important;
	border-radius: 12px;
	padding: 15px 20px;
	font-weight: 700;
	font-size: 1rem;
}
.woocommerce-cart .cart_totals .checkout-button:hover { background: var(--pmw-wc-btn-bg-hover, #0a2c49); }

/* Panier : prix unitaire retiré (valeur vidée côté serveur), on masque aussi
   la cellule/colonne pour ne pas laisser d'espace vide. */
.woocommerce-cart .woocommerce-cart-form th.product-price,
.woocommerce-cart .woocommerce-cart-form td.product-price { display: none !important; }

/* Panier : on retire l'adresse de livraison + le lien « Modifier l'adresse »
   (on garde le choix du mode de livraison). */
.woocommerce-cart .cart_totals .woocommerce-shipping-destination,
.woocommerce-cart .cart_totals .shipping-calculator-button,
.woocommerce-cart .cart_totals .shipping-calculator-form { display: none !important; }

/* Produits croisés sous la grille, pleine largeur */
.woocommerce-cart .cross-sells { max-width: 1120px; margin: 50px auto 0; }

@media (max-width: 900px) {
	.woocommerce-cart .gpbc-cart-grid {
		grid-template-columns: 1fr;
		max-width: 640px;
		gap: 30px;
	}
	.woocommerce-cart .cart_totals { position: static; }
}

/* --- Panier MOBILE : carte horizontale condensée (image à gauche, détails
   à droite). Grille grid-template-areas => placement robuste quel que soit
   l'ordre du DOM, et !important pour passer devant woocommerce-smallscreen.css
   (text-align:right, libellés ::before, croix en position:absolute). --- */
@media (max-width: 768px) {
	.woocommerce-cart .woocommerce-cart-form thead { display: none !important; }
	.woocommerce-cart .woocommerce-cart-form table.shop_table,
	.woocommerce-cart .woocommerce-cart-form table.shop_table tbody { display: block; width: 100%; }

	.woocommerce-cart .woocommerce-cart-form tr.cart_item {
		display: grid !important;
		grid-template-columns: 92px 1fr;
		grid-template-areas:
			"img remove"
			"img name"
			"img qty"
			"img subtotal";
		column-gap: 16px;
		row-gap: 5px;
		align-items: center;
		padding: 20px 4px;
		border-bottom: 1px solid var(--pmw-wc-line, #e7e9ee);
	}
	.woocommerce-cart .woocommerce-cart-form tr.cart_item td {
		display: block !important;
		width: auto !important;
		max-width: 100%;
		border: 0 !important;
		padding: 0 !important;
		margin: 0 !important;
		text-align: left !important;
		float: none !important;
		position: static !important;
	}
	.woocommerce-cart .woocommerce-cart-form tr.cart_item td::before { display: none !important; }

	/* Image (colonne de gauche, sur toute la hauteur) */
	.woocommerce-cart .woocommerce-cart-form td.product-thumbnail {
		grid-area: img;
		align-self: center;
		display: block !important;
	}
	.woocommerce-cart .woocommerce-cart-form td.product-thumbnail img,
	.woocommerce-cart .woocommerce-cart-form td.product-thumbnail a img {
		width: 92px !important;
		height: 92px !important;
		max-width: none !important;
		object-fit: cover;
		border-radius: 12px;
		display: block !important;
		margin: 0 !important;
	}
	/* Détails (colonne de droite) */
	.woocommerce-cart .woocommerce-cart-form td.product-remove { grid-area: remove; text-align: right !important; }
	.woocommerce-cart .woocommerce-cart-form td.product-remove a.remove { margin-left: auto; }
	.woocommerce-cart .woocommerce-cart-form td.product-name { grid-area: name; font-size: 1.02rem; font-weight: 600; }
	/* Prix à l'unité (sous l'image) : masqué. */
	.woocommerce-cart .woocommerce-cart-form td.product-price,
	.woocommerce-cart .woocommerce-cart-form .product-price { display: none !important; }
	.woocommerce-cart .woocommerce-cart-form td.product-quantity { grid-area: qty; }
	/* Prix (sous-total) sous le stepper : un peu plus petit. */
	.woocommerce-cart .woocommerce-cart-form td.product-subtotal {
		grid-area: subtotal;
		font-size: .9rem;
		color: var(--pmw-wc-price-color, #0f395f);
		font-weight: 700;
	}

	/* Coupon pleine largeur */
	.woocommerce-cart .woocommerce-cart-form td.actions { text-align: center !important; }
	.woocommerce-cart .woocommerce-cart-form .actions .coupon { max-width: none; }
}

/* ============================================================
   MON COMPTE — connexion / inscription + tableau de bord
   ============================================================ */
/* Connexion / inscription : 2 cartes côte à côte */
.woocommerce-account .u-columns,
.woocommerce-account #customer_login.u-columns {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 40px;
	align-items: start;
	max-width: 1040px;
	margin: 0 auto;
	padding-top: 40px;
}
.woocommerce-account .u-columns::before,
.woocommerce-account .u-columns::after { display: none; }
.woocommerce-account .u-column1,
.woocommerce-account .u-column2 {
	width: auto !important;
	float: none !important;
	margin: 0 !important;
}
.woocommerce-account .u-columns > .u-column1 > h2,
.woocommerce-account .u-columns > .u-column2 > h2 {
	font-size: 1.5rem;
	font-weight: 800;
	color: var(--pmw-wc-ink, #1a2230);
	margin: 0 0 18px;
}
.woocommerce-account .woocommerce-form-login,
.woocommerce-account .woocommerce-form-register {
	background: #fff;
	border: 1px solid var(--pmw-wc-line, #e7e9ee);
	border-radius: var(--pmw-wc-radius, 16px);
	padding: 28px 26px;
	box-shadow: 0 8px 30px rgba(15, 57, 95, .06);
	margin: 0;
}

/* Champs (connexion, inscription, adresses, etc.) */
.woocommerce-account .form-row label,
.woocommerce-account .woocommerce-form-row label {
	display: block;
	font-weight: 500;
	font-size: .9rem;
	color: var(--pmw-wc-muted, #5b6472);
	margin-bottom: 6px;
}
.woocommerce-account .woocommerce-form-row .required,
.woocommerce-account .form-row .required { color: var(--pmw-wc-sale, #e0533d); border: 0; }
.woocommerce-account .woocommerce-Input,
.woocommerce-account .input-text,
.woocommerce-account input[type="text"],
.woocommerce-account input[type="email"],
.woocommerce-account input[type="password"],
.woocommerce-account input[type="tel"] {
	width: 100%;
	box-sizing: border-box;
	border: 1px solid var(--pmw-wc-line, #e7e9ee);
	border-radius: 10px;
	padding: 13px 14px;
	background: #fff;
	color: var(--pmw-wc-ink, #1a2230);
	font: inherit;
	line-height: 1.3;
	transition: border-color .15s ease, box-shadow .15s ease;
}
.woocommerce-account .woocommerce-Input:focus,
.woocommerce-account .input-text:focus,
.woocommerce-account input[type="text"]:focus,
.woocommerce-account input[type="email"]:focus,
.woocommerce-account input[type="password"]:focus,
.woocommerce-account input[type="tel"]:focus {
	border-color: var(--pmw-wc-primary, #0f395f);
	box-shadow: 0 0 0 3px rgba(15, 57, 95, .12);
	outline: 0;
}
/* Champ mot de passe avec l'œil : le bouton reste dans le cadre */
.woocommerce-account .woocommerce-password-hint { color: var(--pmw-wc-muted, #5b6472); }
.woocommerce-account .password-input { display: block; position: relative; }
.woocommerce-account .show-password-input { top: 14px; right: 14px; }

/* « Se souvenir de moi » + « Mot de passe perdu » */
.woocommerce-account .woocommerce-form-login__rememberme { font-size: .9rem; color: var(--pmw-wc-muted, #5b6472); }
.woocommerce-account .woocommerce-LostPassword { margin: 10px 0 0; }
.woocommerce-account .woocommerce-LostPassword a { color: var(--pmw-wc-primary, #0f395f); }

/* Espace sous chaque ligne de formulaire */
.woocommerce-account .woocommerce-form-login .form-row,
.woocommerce-account .woocommerce-form-register .form-row { margin: 0 0 16px; }

/* ---- Tableau de bord (connecté) : nav (gauche) + contenu (droite) ---- */
/* Flex plutôt que grid : plus tolérant aux largeurs héritées de WooCommerce. */
.woocommerce-account .woocommerce:has(.woocommerce-MyAccount-navigation) {
	display: flex;
	flex-wrap: wrap;
	gap: 30px;
	align-items: flex-start;
	max-width: 1080px;
	margin: 0 auto;
	padding-top: 40px;
}
.woocommerce-account .woocommerce-MyAccount-navigation {
	flex: 0 0 250px;
	width: 250px !important;
	max-width: 250px;
	float: none !important;
	margin: 0 !important;
	position: sticky;
	top: 24px;
}
.woocommerce-account .woocommerce-MyAccount-content {
	flex: 1 1 0;
	width: auto !important;
	min-width: 0;
	float: none !important;
	margin: 0 !important;
	background: #fff;
	border: 1px solid var(--pmw-wc-line, #e7e9ee);
	border-radius: var(--pmw-wc-radius, 16px);
	padding: 30px 28px;
	box-shadow: 0 10px 34px rgba(15, 57, 95, .07);
}
.woocommerce-account .woocommerce-MyAccount-content > p:first-child { margin-top: 0; }

/* Menu latéral en carte */
.woocommerce-account .woocommerce-MyAccount-navigation ul {
	list-style: none;
	margin: 0;
	padding: 8px;
	border: 1px solid var(--pmw-wc-line, #e7e9ee);
	border-radius: var(--pmw-wc-radius, 16px);
	background: #fff;
	box-shadow: 0 10px 34px rgba(15, 57, 95, .07);
}
.woocommerce-account .woocommerce-MyAccount-navigation li { border: 0 !important; margin: 0; padding: 0; }
.woocommerce-account .woocommerce-MyAccount-navigation li a {
	display: block;
	padding: 12px 15px;
	border-radius: 11px;
	color: var(--pmw-wc-ink, #1a2230);
	text-decoration: none;
	font-weight: 500;
	transition: background-color .15s ease, color .15s ease;
}
.woocommerce-account .woocommerce-MyAccount-navigation li a:hover {
	background: #f4f7fa;
	color: var(--pmw-wc-primary, #0f395f);
}
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a {
	background: var(--pmw-wc-primary, #0f395f);
	color: #fff;
	font-weight: 600;
}

/* Titres, tables et infos du contenu compte */
.woocommerce-account .woocommerce-MyAccount-content h2,
.woocommerce-account .woocommerce-MyAccount-content h3 {
	margin: 0 0 16px;
	font-weight: 700;
	color: var(--pmw-wc-ink, #1a2230);
}
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Message,
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-info,
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-message {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	flex-wrap: wrap;
	background: #f6f8fa;
	border: 1px solid var(--pmw-wc-line, #e7e9ee);
	border-left: 3px solid var(--pmw-wc-primary, #0f395f);
	border-radius: 10px;
	padding: 16px 18px;
	margin: 0;
	color: var(--pmw-wc-ink, #1a2230);
	list-style: none;
}
/* On masque l'icône ::before par défaut de WooCommerce (glyphe qui chevauchait le texte). */
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Message::before,
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-info::before,
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-message::before {
	display: none !important;
	content: none !important;
}
.woocommerce-account .woocommerce-MyAccount-content table.shop_table {
	border: 1px solid var(--pmw-wc-line, #e7e9ee);
	border-radius: 12px;
	overflow: hidden;
	border-collapse: separate;
	border-spacing: 0;
}

/* Boutons du compte : plus petits (dont « Parcourir les produits »). */
.woocommerce-account .woocommerce-MyAccount-content .button,
.woocommerce-account .woocommerce-info .button,
.woocommerce-account .woocommerce-message .button {
	padding: .5em 1.25em !important;
	font-size: .88rem !important;
	border-radius: 10px !important;
	box-shadow: none !important;
}
.woocommerce-account .woocommerce-MyAccount-content .button:hover,
.woocommerce-account .woocommerce-info .button:hover,
.woocommerce-account .woocommerce-message .button:hover { transform: none !important; box-shadow: none !important; }

@media (max-width: 768px) {
	.woocommerce-account .u-columns,
	.woocommerce-account #customer_login.u-columns { grid-template-columns: 1fr; max-width: 480px; gap: 26px; }
	.woocommerce-account .woocommerce-MyAccount-navigation {
		flex: 1 1 100%;
		width: 100% !important;
		max-width: none;
		position: static;
	}
	.woocommerce-account .woocommerce-MyAccount-content { flex: 1 1 100%; }
}
