/**** ACCUEIL : SHORTCODE Hero banner ****/
.aec-hero {
	--header-h: 90px;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 20px;
	height: 100%;
}

.aec-hero__cell {
	position: relative;
	overflow: hidden;
	display: flex;
	align-items: flex-end;
	padding: 20px;
	height: 100%;
	/*min-height: calc(50vh - 84px - var(--header-h) / 2);*/
	min-height:280px;
	text-decoration: none;
	color: inherit;
}

.aec-hero__cell::before,
.aec-hero__cell::after {
	content: "";
	position: absolute;
	inset: 0;
}

.aec-hero__cell::before {
	background: var(--img) center / cover no-repeat;
	transition: transform 0.4s;
}

.aec-hero__cell::after {
	background: rgba(0, 0, 0, 0.25);
	transition: background 0.4s;
}

.aec-hero__cell:hover::before {
	transform: scale(1.1);
}

.aec-hero__cell:hover::after {
	background: rgba(0, 0, 0, 0.5);
}

.aec-hero__cell span {
	position: relative;
	z-index: 1;
	color: #fff;
	line-height: 1.3em;
    font-family: 'Poppins';
}

@media (max-width: 1400px) {
	.aec-hero__cell {
		min-height:unset;
	}
}
@media (max-width: 991px) {
	.aec-hero__cell {
		height: 300px;
	}
}
@media screen and (min-width:992px){
	.hero-banner-left>.brz-column__items, 
	.hero-banner-left>.brz-column__items>.brz-wrapper, 
	.hero-banner-left>.brz-column__items>.brz-wrapper>.brz-wp-shortcode, 
	.hero-banner-left>.brz-column__items>.brz-wrapper>.brz-wp-shortcode>div{
		height: 100%;
	}	
}
@media (max-width: 767px) {
	.aec-hero__cell {
		height: 200px;
	}
	.aec-hero{
		gap: 15px;
	}
}


/*** ACCUEIL : étapes */
@media screen and (min-width:992px){
	.voiture-etape-1{
		transform: translateY(-100%);
		position: absolute!important;
		top: 20px;
		left: 0;
		width: 90%;
		z-index:2;
	}
	.voiture-etape-2-3{
		transform: translateY(-100%);
		position: absolute!important;
		top: 20px;
		left: 0;
		width: 150%;
		max-width:unset!important;
		z-index:2;
	}	
}
@media screen and (max-width:991px){
	.voiture-etape-1{
		width: 300px;
	}		
	.voiture-etape-2-3{
		width: 450px;
	}		
}
@media screen and (max-width:767px){
	.voiture-etape-1{
		width: 200px;
	}		
	.voiture-etape-2-3{
		width: 350px;
	}		
}



/**** GLOBAL : CARTES — produits et articles ****

   Même anatomie pour les cartes produits (shortcode [produits-liste] et boutique)
   et les cartes d'articles (page /blog) : media, footer, info, bouton. Seuls les
   noms de classe diffèrent, les règles ne sont écrites qu'une fois.

   Le nombre de colonnes passe par --aec-cartes-colonnes : un seul endroit à
   changer, et les points de rupture n'ont plus à réénumérer tous les sélecteurs.
*/
.aec-produits,
.aec-articles {
	--aec-cartes-colonnes: 4;
	display: grid;
	grid-template-columns: repeat(var(--aec-cartes-colonnes), 1fr);
	gap: 25px;
}

.aec-produits--cols-3 {
	--aec-cartes-colonnes: 3;
}

.aec-produits--cols-2 {
	--aec-cartes-colonnes: 2;
}

.aec-articles {
	--aec-cartes-colonnes: 3;
}

.aec-produit,
.aec-article {
	display: block;
	color: inherit;
	text-decoration: none;
}

.aec-produit__media,
.aec-article__media {
	display: block;
	overflow: hidden;
}

.aec-produit img,
.aec-article img {
	display: block;
	width: 100%;
	aspect-ratio: 8 / 8;
	object-fit: cover;
	transition: transform 0.4s ease;
}

.aec-produit:hover img,
.aec-article:hover img {
	transform: scale(1.08);
}

.aec-produits--cols-3 .aec-produit img,
.aec-article img {
	aspect-ratio: 8 / 6;
}

.aec-produits--cols-2 .aec-produit img {
	aspect-ratio: 8 / 4;
}

/* Image contenant du texte (ACF « contient_du_texte ») — contain sur fond de couleur */
.aec-produit__media--contain {
	background-color: var(--aec-image-bg, #000);
}
.aec-produit__media--contain img {
	object-fit: contain;
}

.aec-produit__footer,
.aec-article__footer {
	display: flex;
	justify-content: space-between;
	gap: 14px;
    padding-top: 12px;
}

.aec-produit__info,
.aec-article__info {
	display: flex;
	flex-direction: column;
	gap: 0.15rem;
	min-width: 0;
}

.aec-produit__titre,
.aec-article__titre {
	font-size: 16px;
	font-weight: 700;
	line-height: 1.2em;
	font-family: 'Poppins', sans-serif;
}



/* Les titres d'articles sont longs et de tailles très inégales : on les borne à
   trois lignes pour que les cartes d'une même rangée restent alignées. */
.aec-article__titre {
	display: -webkit-box;
	-webkit-line-clamp: 3;
	line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.aec-produit__prix,
.aec-article__date {
	font-size: 15px;
	font-weight: 400;
	font-family: 'Poppins', sans-serif;
	line-height:1.2em;
}

.aec-produit__prix--rupture {
	color: #C1121F;
	font-weight: 400;
	line-height:1em;
}

.aec-produit__plus,
.aec-article__plus {
	flex-shrink: 0;
	display: grid;
	place-items: center;
	width: 36px;
	height: 36px;
	color: #fff;
	font-size: 20px;
	line-height: 1;
	box-sizing: border-box;
	/*border-radius: 8px;*/
	border: 1px solid #050505;
	background: linear-gradient(248deg, var(--Gris-500, #A1A6AB) 13.04%, var(--Black, #050505) 62.46%);
	/*box-shadow: 0 17px 5px 0 rgba(0, 0, 0, 0.00), 0 11px 4px 0 rgba(0, 0, 0, 0.01), 0 6px 4px 0 rgba(0, 0, 0, 0.05), 0 3px 3px 0 rgba(0, 0, 0, 0.09), 0 1px 2px 0 rgba(0, 0, 0, 0.10);*/
	transition: transform 0.3s ease;
}

.aec-produit:hover .aec-produit__plus,
.aec-article:hover .aec-article__plus {
	transform: translateY(-4px);
}

.aec-produit--rupture .aec-produit__plus {
	border-color: #A1A6AB;
	background: #A1A6AB;
	box-shadow: none;
}

@media (max-width: 991px) {
	.aec-produit__plus,
	.aec-article__plus {
		width: 34px;
		height: 34px;
		font-size: 19px;
	}
	.aec-produit__titre,
	.aec-article__titre {
		font-size: 15px;
	}
	.aec-produit__footer,
	.aec-article__footer {
		gap: 12px;
		padding-top: 12px;
	}
}
@media (max-width: 767px) {
	.aec-produit__plus,
	.aec-article__plus {
		width: 32px;
		height: 32px;
		font-size: 18px;
	}
	.aec-produit__titre,
	.aec-article__titre {
		font-size: 14px;
	}
	.aec-produit__footer,
	.aec-article__footer {
		gap: 8px;
		padding-top: 10px;
	}
}
@media (max-width: 420px) {
	.aec-produit__footer,
	.aec-article__footer {
		gap: 6px;
	}
}


/**** WOO : LISTE PRODUITS ****
   WooCommerce sort les produits dans un <ul class="products"> : on neutralise ses
   flottants et on lui fait suivre la grille commune ci-dessus.
*/
.woocommerce ul.products.aec-produits,
.woocommerce-page ul.products.aec-produits {
	grid-template-columns: repeat(var(--aec-cartes-colonnes), 1fr);
	list-style: none;
	padding: 0;
	margin: 0 0 1.5rem;
	float: none;
}

.woocommerce ul.products.aec-produits li.product,
.woocommerce-page ul.products.aec-produits li.product {
	float: none !important;
	width: auto !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
}


/* Points de rupture — une seule variable à redéfinir.
   Le blog passe en une colonne dès 767px : ses cartes portent un titre long,
   illisible sur deux colonnes étroites. Les produits tiennent jusqu'à 400px. */
@media (max-width: 991px) {
	.aec-produits,
	.aec-articles {
		--aec-cartes-colonnes: 2;
		gap: 30px 20px;
	}
	.aec-produit__prix, .aec-article__date {
		font-size: 14px;
	}
}

@media (max-width: 767px) {
	.aec-articles {
		--aec-cartes-colonnes: 1;
	}

	.aec-produits, .aec-articles {
		gap: 20px 14px;
	}
	.aec-produit__prix, .aec-article__date {
		font-size: 13px;
	}
}
@media (max-width: 420px) {
	.aec-produits, .aec-articles {
		gap: 20px 14px;
	}
	.aec-produit__prix, .aec-article__date {
		font-size: 13px;
	}
}
@media (max-width: 400px) {
	.aec-produits {
		--aec-cartes-colonnes: 1;
	}
}




/**** AGENCES : SHORTCODES Note Google ****/
.aec-google-note {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 8px 16px 8px 12px;
	border-radius: 48px;
	background: var(--Gris-100, #F2F2F2);
	box-shadow: 0 45px 13px 0 rgba(0, 0, 0, 0.00), 0 29px 12px 0 rgba(0, 0, 0, 0.01), 0 16px 10px 0 rgba(0, 0, 0, 0.05), 0 7px 7px 0 rgba(0, 0, 0, 0.09), 0 2px 4px 0 rgba(0, 0, 0, 0.10);
	line-height: 1;
	vertical-align: middle;
	text-decoration: none;
	color: inherit;
}

a.aec-google-note {
	cursor: pointer;
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

a.aec-google-note:hover {
	transform: translateY(-1px);
}

.aec-google-note__logo {
	display: block;
	flex-shrink: 0;
}

.aec-google-note__value {
	font-family: 'Poppins', sans-serif;
	font-size: 16px;
	font-weight: 700;
	color: #050505;
	line-height: 1;
}

.aec-google-note__stars {
	display: flex;
	align-items: center;
	gap: 1px;
}

.aec-google-note__star {
	position: relative;
	display: block;
	width: 16px;
	height: 16px;
	color: #F4B400;
}

.aec-google-note__star-bg {
	display: block;
	color: #D9D9D9;
}

.aec-google-note__star-fill {
	position: absolute;
	top: 0;
	left: 0;
	height: 100%;
	overflow: hidden;
}

.aec-google-note__star-fill svg {
	display: block;
	width: 16px;
	height: 16px;
}

/**** AGENCES : SHORTCODES Infos agence ****/
.aec-agence {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 16px;
	width: 100%;
	box-sizing: border-box;
	/*padding: 24px;
	border-radius: 20px;
	background: #fff;
	box-shadow: 0 45px 13px 0 rgba(0, 0, 0, 0.00), 0 29px 12px 0 rgba(0, 0, 0, 0.01), 0 16px 10px 0 rgba(0, 0, 0, 0.05), 0 7px 7px 0 rgba(0, 0, 0, 0.09), 0 2px 4px 0 rgba(0, 0, 0, 0.10);*/
	color: #050505;
	font-family: 'Poppins', sans-serif;
}

.aec-agence__extra,
.aec-agence__horaires-title,
.aec-agence__horaire,
.aec-agence__text {
	margin: 0;
	font-family: 'Poppins', sans-serif;
	color: inherit;
	overflow-wrap: break-word;
}

.aec-agence p.aec-agence__title,
.aec-agence h2.aec-agence__title,
.aec-agence h3.aec-agence__title {
	margin: 0;
	font-family: 'Poppins', sans-serif;
	color: inherit;
	overflow-wrap: break-word;
	font-size: 18px;
	font-weight: 700;
	line-height: 1.3;
}

.aec-agence--detail p.aec-agence__title,
.aec-agence--detail h2.aec-agence__title,
.aec-agence--detail h3.aec-agence__title {
	font-size: 24px;
}

@media (max-width: 991px) {
	.aec-agence p.aec-agence__title,
	.aec-agence h2.aec-agence__title,
	.aec-agence h3.aec-agence__title {
		font-size: 17px;
	}

	.aec-agence--detail p.aec-agence__title,
	.aec-agence--detail h2.aec-agence__title,
	.aec-agence--detail h3.aec-agence__title {
		font-size: 22px;
	}
}

@media (max-width: 767px) {
	.aec-agence p.aec-agence__title,
	.aec-agence h2.aec-agence__title,
	.aec-agence h3.aec-agence__title {
		font-size: 16px;
	}

	.aec-agence--detail p.aec-agence__title,
	.aec-agence--detail h2.aec-agence__title,
	.aec-agence--detail h3.aec-agence__title {
		font-size: 20px;
	}
}

.aec-agence__coords,
.aec-agence__horaires,
.aec-agence__horaires-list {
	display: flex;
	flex-direction: column;
	width: 100%;
}

.aec-agence__coords {
	gap: 8px;
}

.aec-agence__row {
	display: flex;
	align-items: flex-start;
	gap: 10px;
}

.aec-agence__icon {
	flex-shrink: 0;
	width: 24px;
	min-height: 1.4em;
	display: flex;
	align-items: center;
	justify-content: center;
	color: inherit;
}

.aec-agence__icon svg {
	display: block;
}

.aec-agence__text {
	min-width: 0;
	font-size: 16px;
	font-weight: 400;
	line-height: 1.4;
	text-decoration: none;
}

.aec-agence .aec-google-note {
	flex-shrink: 0;
}

a.aec-agence__text:hover {
	text-decoration: underline;
}

.aec-agence__extra {
	font-size: 16px;
	font-weight: 700;
	line-height: 1.4;
}

.aec-agence__horaires {
	gap: 8px;
}

.aec-agence__horaires-title {
	font-size: 18px;
	font-weight: 700;
	line-height: 1.4;
}

.aec-agence__horaires-list {
	gap: 2px;
}

.aec-agence__horaire {
	font-size: 16px;
	font-weight: 400;
	line-height: 1.45;
}

.aec-agence__cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 10px 24px;
	border: 2px solid #050505;
	/* border-radius: 8px; */
	background: #fff;
	color: #050505;
	font-family: 'Anton', sans-serif;
	font-size: 1rem;
	font-weight: 400;
	letter-spacing: 0.02em;
	line-height: 1.2;
	text-transform: uppercase;
	text-decoration: none;
	transition: 0.3s ease-in-out;
	/* box-shadow: -4px 48px 14px 0 rgba(0, 0, 0, 0.00), -3px 31px 12px 0 rgba(0, 0, 0, 0.01), -2px 17px 10px 0 rgba(0, 0, 0, 0.05), -1px 8px 8px 0 rgba(0, 0, 0, 0.09), 0 2px 4px 0 rgba(0, 0, 0, 0.10) !important; */
	margin-top: 5px;
}

.aec-agence__cta:hover {
	background: #050505;
	color: #fff;
}

/**** AGENCES : SHORTCODE CTA hero ****/
.aec-agence-cta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
	justify-content: end;
}

.aec-agence-cta__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	padding: 12px 30px;
	border: 2px solid;
	/*border-radius: 8px;*/
	font-family: 'Anton', sans-serif;
	font-size: 16px;
	font-weight: 400;
	letter-spacing: 0.02em;
	line-height: 1;
	text-transform: uppercase;
	text-decoration: none;
	white-space: nowrap;
	transition: 0.3s ease-in-out;
}

.aec-agence-cta__btn--inscrire {
	background: #fff;
	border-color: #fff;
	color: #050505;
}

.aec-agence-cta__btn--inscrire:hover {
	background: #383838;
	border-color: #383838;
	color: #fff;
}

.aec-agence-cta__btn--appeler {
	background: rgba(255, 255, 255, 0.17);
	border-color: #fff;
	color: #fff;
}

.aec-agence-cta__btn--appeler:hover {
	background: #fff;
	border-color: #fff;
	color: #050505;
}

@media (max-width: 767px) {
	.aec-agence-cta__btn {
		font-size: 15px;
		padding: 10px 20px;
	}
	.aec-agence-cta {
		justify-content: start;
	}

}

/**** ACCUEIL : SHORTCODE barre d'assurances ****/
.aec-assurance {
	display: flex;
	flex-wrap: nowrap;
	justify-content: center;
	align-items: stretch;
	gap: 30px;
	width: 100%;
	min-width: 0;
	max-width: 100%;
	color: #fff;
}

.aec-assurance__item {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: flex-end;
	flex: 0 1 auto;
	min-width: 0;
	max-width: 100%;
	text-align: center;
}

.aec-assurance__icon {
	display: flex;
	align-items: flex-end;
	justify-content: center;
	margin-bottom: 20px;
}

.aec-assurance__icon img {
	display: block;
	height: auto;
	max-width: none;
	flex-shrink: 0;
}

.aec-assurance__label {
	margin: 0;
	font-family: 'Poppins', sans-serif;
	font-size: 18px;
	font-weight: 700;
	line-height: 1.6;
	letter-spacing: -0.01em;
	color: #fff;
	overflow-wrap: break-word;
}

.sep-assurance {
	flex-shrink: 0;
	width: 1px;
	background: #fff;
	align-self: stretch;
}

@media (max-width: 991px) and (min-width: 768px) {
	.aec-assurance {
		display: grid;
		grid-template-columns: max-content 1px max-content;
		justify-content: center;
		align-items: stretch;
	}

	.aec-assurance__item {
		width: auto;
	}

	.aec-assurance .sep-assurance:nth-child(4) {
		grid-column: 1 / -1;
		width: auto;
		height: 1px;
		align-self: stretch;
	}
}

@media (max-width: 767px) {
	.aec-assurance {
		display: flex;
		flex-direction: column;
		flex-wrap: nowrap;
		align-items: stretch;
		width: max-content;
		max-width: 100%;
		margin-inline: auto;
	}

	.aec-assurance__item {
		width: auto;
	}

	.aec-assurance .sep-assurance {
		width: auto;
		height: 1px;
		align-self: stretch;
	}

	.aec-assurance__label {
		white-space: normal;
	}
}


/**** FORMATIONS SHORTCODES : Assurance titre + texte ****/
.aec-infos {
	display: flex;
	flex-wrap: nowrap;
	justify-content: center;
	align-items: stretch;
	gap: 30px;
	width: 100%;
	min-width: 0;
	max-width: 100%;
	color: #fff;
}

.aec-infos__item {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: flex-start;
	gap: 4px;
	flex: 0 1 auto;
	min-width: 0;
	max-width: 100%;
	text-align: left;
}

.aec-infos__title,
.aec-infos__text {
	margin: 0;
	font-family: 'Poppins', sans-serif;
	line-height: 1.5;
	color: #fff;
	overflow-wrap: break-word;
}

.aec-infos__title {
	font-size: 18px;
	font-weight: 700;
	letter-spacing: -0.01em;
}

.aec-infos__text {
	font-size: 16px;
	font-weight: 400;
}

@media (max-width: 1400px) {
	.aec-infos {
		display: grid;
		grid-template-columns: minmax(0, max-content) 1px minmax(0, max-content) 1px minmax(0, max-content);
		justify-content: space-between;
		align-items: stretch;
	}

	.aec-infos .sep-assurance:nth-child(6n) {
		grid-column: 1 / -1;
		width: auto;
		height: 1px;
		align-self: stretch;
	}
}

@media (max-width: 991px) {
	.aec-infos {
		grid-template-columns: minmax(0, max-content) 1px minmax(0, max-content);
	}

	.aec-infos .sep-assurance:nth-child(6n) {
		grid-column: auto;
		width: 1px;
		height: auto;
	}

	.aec-infos .sep-assurance:nth-child(4n) {
		grid-column: 1 / -1;
		width: auto;
		height: 1px;
		align-self: stretch;
	}
}

@media (max-width: 767px) {
	.aec-infos {
		display: flex;
		flex-direction: column;
		flex-wrap: nowrap;
		align-items: stretch;
		width: 100%;
		max-width: 100%;
		margin-inline: auto;
	}

	.aec-infos .sep-assurance,
	.aec-infos .sep-assurance:nth-child(4n),
	.aec-infos .sep-assurance:nth-child(6n) {
		grid-column: auto;
		width: 100%;
		height: 1px;
		align-self: stretch;
	}
}

/**** WOOCOMMERCE : SINGLE PRODUCT ****/

.single.single-product {
    background: #EFEFEF;
}

.single-product .entry-summary {
	padding-top: 72px;
	padding-bottom: 72px;
	align-self: center!important;
}

/* Notices (ajout au panier, erreurs) — décollées du header. */
.single-product .woocommerce-notices-wrapper > :first-child {
	margin-top: 20px;
	margin-bottom: 20px;
}

/* Coins alignés sur la charte : 16px comme l'encadré panier, 8px comme les boutons. */
.woocommerce-notices-wrapper .woocommerce-message,
.woocommerce-notices-wrapper .woocommerce-info,
.woocommerce-notices-wrapper .woocommerce-error {
	border-radius: 16px;
}

.woocommerce-notices-wrapper .button {
	border-radius: 8px;
}

/* Produit : Prix des variations */
.single-product .entry-summary .price,
.single-product .entry-summary .ct-product-price {
	display: flex;
	margin: 0.35em 0 1.25em;
	font-size: 0.95rem;
	font-weight: 500;
	color: #050505;
	line-height: 1.2;
}

.aec-price-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.aec-price-tag {
	display: inline-flex;
	align-items: center;
	gap: 0.35em;
	padding: 8px 16px;
	border-radius: 8px;
	border: 1px solid #050505;
	background: #050505;
	color: #fff;
	font-family: 'Poppins', sans-serif;
	font-size: 0.9rem;
	font-weight: 500;
	line-height: 1.2;
	white-space: nowrap;
}

/* Produit variable : seule la pastille de l'option choisie reste noire. */
.aec-price-tags--variable .aec-price-tag:not(.is-selected) {
	background: #fff;
	color: #050505;
}

.aec-price-tag .woocommerce-Price-amount,
.aec-price-tag .woocommerce-Price-currencySymbol,
.single-product .entry-summary .price .woocommerce-Price-amount,
.single-product .entry-summary .price .amount {
	font-size: inherit;
	font-weight: inherit;
	color: inherit;
}

.single-product .sku_wrapper,
.single-product .ct-product-sku,
.single-product .product_meta .sku {
	display: none !important;
}

.single-product .product.outofstock form.variations_form.cart{
	display:none;
}
/* Encadré du formulaire panier : produits variables, simples et carte cadeau (même rendu). */
.single-product form.variations_form.cart,
.single-product .entry-summary form.cart {
	width: 100%;
	margin-top: 1.75rem;
	margin-bottom: 1.5rem;
	padding: 24px;
	background: #fff;
	border-radius: 16px;
	box-shadow: 0 17px 5px 0 rgba(0, 0, 0, 0.00), 0 11px 4px 0 rgba(0, 0, 0, 0.01), 0 6px 4px 0 rgba(0, 0, 0, 0.05), 0 3px 3px 0 rgba(0, 0, 0, 0.09), 0 1px 2px 0 rgba(0, 0, 0, 0.10);
	box-sizing: border-box;
}

.single-product .product.outofstock  .stock.out-of-stock{
	color: #C1121F;
}

.single-product form.variations_form table.variations,
.single-product form.variations_form .variations {
	display: block;
	width: 100%;
	margin: 0 0 18px;
	border: 0;
}

.single-product .ct-variation-swatches {
	display: none !important;
}

.single-product form.variations_form table.variations tbody,
.single-product form.variations_form table.variations tr {
	display: flex;
	align-items: center;
	justify-content: center!important;
	gap: 12px;
	flex-wrap: wrap;
	width: 100%;
	flex-direction: row!important;
    
    
}

.single-product form.variations_form .variations td.value {
	min-width: 0;
}

.single-product form.variations_form .variations th.label,
.single-product form.variations_form .variations td.value,
.single-product form.variations_form .variations th,
.single-product form.variations_form .variations td {
	display: block;
	padding: 0;
	margin: 0;
	border: 0;
	background: transparent;
	width: auto;
	font-weight: 400;
	text-align: left;
	vertical-align: middle;
}

.single-product form.variations_form .variations th.label,
.single-product form.variations_form .variations .label,
.single-product form.variations_form .variations label {
	font-family: 'Poppins', sans-serif;
	font-size: 0.95rem;
	font-weight: 400;
	color: #050505;
}

.single-product form.variations_form .reset_variations {
	display: none !important;
}

.aec-variation-select {
	position: relative;
	display: flex;
	flex-wrap: wrap;
	width: fit-content!important;
	gap: 8px;
}

.aec-variation-select select {
	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;
}

.aec-variation-buttons {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-end;
	gap: 8px;
}

.aec-variation-btn {
	appearance: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.35em;
	padding: 8px 16px;
	border-radius: 8px;
	border: 1px solid #050505;
	background: #fff;
	color: #050505;
	font-family: 'Poppins', sans-serif;
	font-size: 0.9rem;
	font-weight: 500;
	line-height: 1.2;
	cursor: pointer;
	transition: background 0.2s ease, color 0.2s ease;
}

.aec-variation-btn .woocommerce-Price-amount,
.aec-variation-btn .woocommerce-Price-currencySymbol {
	font-size: inherit;
	font-weight: inherit;
	color: inherit;
}

.aec-variation-btn:hover,
.aec-variation-btn.is-selected {
	background: #050505;
	color: #fff;
}

.single-product form.variations_form .woocommerce-variation {
	min-height: 0 !important;
}

.single-product form.variations_form .woocommerce-variation-description,
.single-product form.variations_form .woocommerce-variation-price {
	display: none;
}

.single-product form.variations_form .quantity {
	display: none;
}

.single-product form.variations_form .single_variation_wrap,
.single-product form.variations_form .woocommerce-variation-add-to-cart {
	width: 100%;
	margin: 0;
}

.single-product form.variations_form .single_add_to_cart_button,
.single-product .entry-summary form.cart .single_add_to_cart_button {
	width: 100%;
	margin: 0;
	border: 1px solid #050505;
	border-radius: 8px;
	background: linear-gradient(248deg, var(--Gris-500, #A1A6AB) 13.04%, var(--Black, #050505) 62.46%) !important;
	box-shadow: 0 17px 5px 0 rgba(0, 0, 0, 0.00), 0 11px 4px 0 rgba(0, 0, 0, 0.01), 0 6px 4px 0 rgba(0, 0, 0, 0.05), 0 3px 3px 0 rgba(0, 0, 0, 0.09), 0 1px 2px 0 rgba(0, 0, 0, 0.10);
	color: #fff !important;
	font-family: 'Anton', sans-serif;
	font-size: 1.05rem;
	font-weight: 400;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	transition: 0.3s ease-in-out;
}

.single-product form.variations_form .single_add_to_cart_button:hover,
.single-product .entry-summary form.cart .single_add_to_cart_button:hover {
	background: #050505 !important;
	border: 1px solid #050505!important;
}

/* Carte cadeau (Ultimate Gift Cards) : le plugin rend son propre formulaire, sans le
   conteneur .ct-cart-actions de Blocksy — quantité et bouton y sont posés à nu et le
   bouton pleine largeur passait à la ligne. On reproduit l'alignement de Blocksy. */
.single-product .product-type-wgm_gift_card .entry-summary form.cart {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.single-product .product-type-wgm_gift_card .entry-summary form.cart > * {
	flex: 0 0 100%;
}

/* Le clearfix de WooCommerce deviendrait un élément flex invisible, avec son espacement. */
.single-product .product-type-wgm_gift_card .entry-summary form.cart::before,
.single-product .product-type-wgm_gift_card .entry-summary form.cart::after {
	content: none;
	display: none;
}

.single-product .product-type-wgm_gift_card .entry-summary form.cart > .quantity {
	flex: 0 0 130px;
	margin: 0;
}

.single-product .product-type-wgm_gift_card .entry-summary form.cart > .single_add_to_cart_button {
	flex: 1 1 0;
	width: auto;
	min-width: 0;
}

.ct-cart-actions .quantity{
	--quantity-height: 40px!important;	
}
.woocommerce button.button, .added_to_cart{
	min-height: 40px!important;
}

:is(.product .entry-summary-items,.ct-quick-view-card) .product_meta>span{
	text-transform: none!important;
}

#tab-description > h2:first-child,
.woocommerce-Tabs-panel--description > h2:first-child {
	display: none;
}

@media (max-width: 999px) {
	.single-product .entry-summary {
		padding-top: 0px;
		padding-bottom: 40px;
	}
}

@media (max-width: 767px) {


	.single-product form.variations_form.cart,
	.single-product .entry-summary form.cart {
		padding: 18px;
	}

	.single-product form.variations_form table.variations tr {
		align-items: flex-start;
		flex-direction: column;
	}

	.aec-variation-select,
	.aec-variation-buttons {
		justify-content: center;
		width: 100%;
	}
}

/* Produit : Image en absolute */
@media screen and (min-width: 1000px) {
	.single-product .product-entry-wrapper {
		min-height: calc(100vh - 90px);
	}

	.single-product .woocommerce-product-gallery{
		overflow:unset!important;
		align-self:unset!important;
	}
	.single-product .ct-product-gallery-container {
		position: absolute!important;
		top: 0;
		left: 0;
		width: calc(100% + ((100vw - 1280px) / 2) + 0px);
		height: 100%;
		transform: translateX(calc((100vw - 1280px ) / -2) );
	}

	.ct-product-gallery-container .ct-media-container,
	.ct-product-gallery-container .ct-media-container img{
		aspect-ratio: unset!important;
		height: 100%;
		width: 100%;
		object-fit: cover;
	}
}
@media screen and (min-width: 1000px) and (max-width: 1400px) {
	.single-product .ct-product-gallery-container{
		left: -65px;
		width: calc(100% + 60px);
		transform: none;
	}
}
@media screen and (max-width: 1000px){
	.single-product .woocommerce-product-gallery {
		max-height: 45vh;
		width: 100vw!important;
		left: 50%;
		transform: translateX(-50%);
	}
}

/* Produit : image contenant du texte (ACF « contient_du_texte ») — contain sur fond de couleur */
.aec-image-contain .ct-product-gallery-container .ct-media-container {
	background-color: var(--aec-image-bg, #000);
}
.aec-image-contain .ct-product-gallery-container .ct-media-container img {
	object-fit: contain !important;
	object-position: 50% 30%;
}

/* Sous 1000px, la galerie est bridée à 45vh : le cadre carré de Blocksy (100vw de haut)
   la dépassait et l'image « contain » était rognée en bas. Le cadre prend la hauteur visible. */
@media screen and (max-width: 1000px) {
	.aec-image-contain .ct-product-gallery-container .ct-media-container {
		aspect-ratio: unset !important;
		height: 45vh;
	}
	.aec-image-contain .ct-product-gallery-container .ct-media-container img {
		width: 100%;
		height: 100%;
	}
}

/* Produit carte cadeau (Ultimate Gift Cards) */

/* Aperçu en direct du plugin : glissé DANS la galerie (image en absolute), il débordait
   sur le footer. Masqué — reste l'aperçu « PREVIEW » en fenêtre. */
.single-product .product-type-wgm_gift_card .wps_wgm_wrapper_for_preview {
	display: none;
}

.single-product .product-type-wgm_gift_card .wps_wgm_delivery_method {
	background: #fff;
}

/* Fenêtre d'aperçu (thickbox, ajoutée en fin de body) — largeur passée à 800 par scripts/carte-cadeau.js. */
.single-product #TB_window {
	max-width: 800px !important;
}

.single-product #TB_window iframe#TB_iframeContent {
	max-width: 800px;
	height: 520px !important;
	max-height: calc(100vh - 100px);
}

@media only screen and (max-width: 640px) {
	.single-product #TB_window {
		height: 450px;
	}
}

.single-product #TB_title {
	border-bottom: 0 solid #ddd;
	background: #f1f1f1;
}

/**** WOOCOMMERCE : ARCHIVES boutique + catégories ****/
body.woocommerce-shop,
body.tax-product_cat,
body.tax-product_tag,
body.blog {
	background: #EFEFEF;
}

body.woocommerce-shop .hero-section,
body.tax-product_cat .hero-section,
body.tax-product_tag .hero-section,
body.woocommerce-shop .woo-listing-top,
body.tax-product_cat .woo-listing-top,
body.tax-product_tag .woo-listing-top {
	display: none;
}

/* Le conteneur Blocksy des archives WooCommerce porte data-vertical-spacing, qui
   ajoute --theme-content-vertical-spacing (60px par défaut) en haut et en bas.
   Le template du blog ne l'a pas : on l'annule pour que boutique et blog
   partagent les mêmes espacements, portés par le titre et le wrap. */
body.woocommerce-shop #main > [data-vertical-spacing],
body.tax-product_cat #main > [data-vertical-spacing],
body.tax-product_tag #main > [data-vertical-spacing] {
	padding-top: 0;
	padding-bottom: 0;
}

/* Titre calé sur le H1 des pages Brizy (ex. /mon-compte). Brizy y empile padding
   de section, marges de colonne et de wrapper, puis un spacer : environ
   95 / 75 / 70px au-dessus du titre, 70 / 90 / 70px en dessous. */
.aec-shop__title {
	margin: 0 0 48px;
	padding: 96px 20px 0;
	color: #050505;
	font-family: 'Poppins', sans-serif;
	font-size: 62px; /* Brizy heading1 : 62 / 52 / 40px */
	font-weight: 700;
	line-height: 1.1;
	text-align: center;
}


.aec-shop-wrap {
	box-sizing: border-box;
	background: #fefefe;
	padding: 40px;
	margin: 0 0 60px;
}

.aec-shop-wrap__head {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	justify-content: space-between;
	gap: 24px 32px;
	margin-bottom: 32px;
}

.aec-shop-wrap__desc {
	flex: 1 1 280px;
	max-width: 720px;
	color: #050505;
	font-family: 'Poppins', sans-serif;
	font-size: 16px;
	font-weight: 400;
	line-height: 1.5;
}

.aec-shop-wrap__desc p {
	margin: 0 0 0.75em;
}

.aec-shop-wrap__desc p:last-child {
	margin-bottom: 0;
}

.aec-shop-wrap__sort {
	flex: 0 0 auto;
	margin-left: auto;
}

.aec-shop-wrap__sort .woocommerce-ordering {
	margin: 0;
}

.aec-shop-wrap__sort select {
	min-width: 220px;
	max-width: 100%;
	padding: 10px 0;
	background: transparent;
	color: #050505;
	font-family: 'Poppins', sans-serif;
	font-size: 14px;
}

.aec-shop-wrap ul.products {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 1.5rem;
	list-style: none;
	padding: 0;
	margin: 0;
	float: none;
	width: 100%;
}

/* Boutique : 3 colonnes sur desktop. Seule la variable change : les points de
   rupture communs (2 colonnes ≤ 991px, 1 ≤ 400px) prennent le relais en dessous. */
@media (min-width: 992px) {
	.aec-shop-wrap .aec-produits {
		--aec-cartes-colonnes: 3;
	}
}

.aec-shop-wrap ul.products li.product {
	float: none !important;
	width: auto !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
}

.aec-shop-wrap .woocommerce-pagination {
	margin: 32px 0 0;
}

@media (max-width: 991px) {
	.aec-shop__title {
		font-size: 52px;
		padding-top: 76px;
		margin-bottom: 40px;
	}

	.aec-shop-wrap {
		padding: 28px 24px;
	}

	.aec-shop-wrap ul.products {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 767px) {
	.aec-shop__title {
		font-size: 40px;
		padding-top: 64px;
		margin-bottom: 32px;
	}

	.aec-shop-wrap {
		padding: 20px;
		margin-bottom: 40px;
	}

	.aec-shop-wrap__head {
		flex-direction: column;
		align-items: stretch;
		margin-bottom: 24px;
	}

	/* En colonne, flex-basis porte sur la hauteur : le 280px de .aec-shop-wrap__desc
	   devenait une hauteur imposée, d'où un grand blanc sous le texte. */
	.aec-shop-wrap__desc {
		flex: 0 1 auto;
	}

	.aec-shop-wrap__sort {
		margin-left: 0;
		width: 100%;
	}

	.aec-shop-wrap__sort select {
		width: 100%;
		min-width: 0;
	}
}

@media (max-width: 400px) {
	.aec-shop-wrap ul.products {
		grid-template-columns: 1fr;
	}
}


/* CARDS PRODUITS : image avec texte : a gauche */
.aec-produit__media--contain img{
	object-position: left top;
}

/* Page de confirmation de commande — masquer le bloc d'instructions.
   Demandé par Flore le 2026-09-21. La classe n'est produite par rien aujourd'hui :
   les passerelles chèque, virement et paiement à la livraison affichent leurs
   instructions sans conteneur, en simples <p>. Règle prête pour le jour où le bloc
   sera posé. */
.woocommerce-order-received .instructions-commande {
	display: none!important;
}

/* ---------------------------------------------------------------------------
   Blog — galeries d'images des articles

   Markup produit par l'import des articles repris de l'ancien site :
       <div class="aec-galerie">
           <figure><img src="…"></figure>
           …
       </div>
   Les photos mélangent portrait et paysage : le ratio 3/2 + object-fit
   les aligne sur une grille régulière sans les déformer.
   --------------------------------------------------------------------------- */
.aec-galerie {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
	margin: 30px 0;
}

.aec-galerie figure {
	margin: 0;
	overflow: hidden;
	border-radius: 4px;
}

.aec-galerie img {
	display: block;
	width: 100%;
	height: 100%;
	aspect-ratio: 3 / 2;
	object-fit: cover;
	transition: transform .35s ease;
}

.aec-galerie figure:hover img {
	transform: scale(1.04);
}

/* Une galerie d'une seule photo n'est pas une grille : on la laisse respirer
   dans sa hauteur d'origine plutôt que de la recadrer au ratio commun. */
.aec-galerie:has(figure:only-child) {
	grid-template-columns: minmax(0, 520px);
}

.aec-galerie figure:only-child img {
	aspect-ratio: auto;
	height: auto;
}

@media (max-width: 991px) {
	.aec-galerie {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 767px) {
	.aec-galerie {
		grid-template-columns: 1fr;
		gap: 20px;
	}
}

/**** BLOG : page des articles et single ****/

/* La grille et les cartes sont définies plus haut, avec les cartes produits.
   Ne vit ici que ce qui est propre au blog.

   La règle qui suit surcharge volontairement un style partagé avec la boutique
   (.aec-shop-wrap__desc) : elle est donc portée par .aec-blog-wrap, pour ne
   toucher que la page des articles. */

/* Le blog n'a pas de barre de tri à droite du chapeau, contrairement à la
   boutique : le texte peut occuper toute la largeur. */
.aec-blog-wrap .aec-shop-wrap__desc {
	flex: 1 1 100%;
	max-width: none;
}
.aec-articles__vide {
	margin: 0;
	font-family: 'Poppins', sans-serif;
	font-size: 16px;
}

.aec-blog-wrap .nav-links {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: 10px;
	margin-top: 40px;
	font-family: 'Poppins', sans-serif;
}

.aec-blog-wrap .nav-links .page-numbers {
	display: grid;
	place-items: center;
	min-width: 36px;
	height: 36px;
	padding: 0 10px;
	box-sizing: border-box;
	border: 1px solid #050505;
	border-radius: 8px;
	color: #050505;
	text-decoration: none;
	transition: background 0.25s ease, color 0.25s ease;
}

.aec-blog-wrap .nav-links .page-numbers:hover,
.aec-blog-wrap .nav-links .page-numbers.current {
	background: #050505;
	color: #fff;
}

.aec-blog-wrap .nav-links .page-numbers.dots {
	border-color: transparent;
}

/* Single article — respiration verticale autour du contenu. */
.single-post .entry-content {
	padding-top: 60px;
	padding-bottom: 60px;
}

@media (max-width: 767px) {
	.single-post .entry-content {
		padding-top: 40px;
		padding-bottom: 40px;
	}
}

/* Les images de galerie s'ouvrent en lightbox — voir scripts/lightbox-galerie.js */
.aec-galerie img {
	cursor: zoom-in;
}
