:root {
  --lightBlue: #B7DCEE;
  --blue: #00B0E6;
  --darkBlue: #00235B;
  --font-size-std: 1.6rem;
  --font-family-std: "Montserrat", sans-serif;
  --gray-100: #f1f5f9;
  --gray-50: #f8fafc;
  --slate-300: #cbd5e1;
  --slate-200: #e2e8f0;
  --slate-400: #94a3b8;
  --slate-800: #1e293b;
  --tw-ring-offset-shadow:0 0 #0000;
  --tw-ring-shadow:0 0 #0000;

  --shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
  --shadow-lg: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
}

html {
  font-size: 62.5%;
}
/* scroll-margin-top sur les cibles d'ancre (plus fiable cross-browser que scroll-padding-top seul) */
#homeSearchBySerialNumber { scroll-margin-top: 14rem; }
@media (min-width: 768px)  { #homeSearchBySerialNumber { scroll-margin-top: 19rem; } }
@media (min-width: 1000px) { #homeSearchBySerialNumber { scroll-margin-top: 15rem; } }
#wrapper, #content-wrapper { margin-block: 3rem; }

a { color: var(--blue); }
a:hover { color: var(--darkBlue); }
.break-line { white-space: normal; overflow-wrap: anywhere; word-break: normal; }

.label, .form-control, .bootstrap-touchspin .input-group-btn-vertical i,
.cart-summary-line .label, .cart-summary-line .value,
.card-block.cart-summary-totals .cart-summary-line.cart-total .label,
.card-block.cart-summary-totals .cart-summary-line.cart-total .value,
.page-content.page-cms .products-selection ul, .page-content.page-cms .products-selection ul .select-title, .page-content.page-cms .products-selection ul .sort-by, .products-selection .page-content.page-cms ul, .products-selection .page-content.page-cms ul .select-title, .products-selection .page-content.page-cms ul .sort-by, .products-selection .sort-by-row, .products-selection .sort-by-row .select-title, .products-selection .sort-by-row .sort-by, .products-selection p, .products-selection p .select-title, .products-selection p .sort-by { font-size: var(--font-size-std); }

/* Titre "Imprimer un devis" (module pdfquotation) : réduit du 50px générique à une taille de carte */
#print-quotation .h1, #print-quotation h1 { font-size: 22px; line-height: 1.3; }

.bootstrap-touchspin input.form-control, .bootstrap-touchspin input.input-group { height: 3.4rem; }

.container > .row { margin: 0 !important; }
.elementor-section.elementor-section-boxed>.elementor-container { max-width: 1600px; }
.page-content.page-cms ul, p { font-size: var(--font-size-std);}
.icoSvg svg { height: auto !important; }

.btnAnimation, .btnAnimation a, .btn-primary, .elementor-button:not(#cart .elementor-button) { border-radius: 0 15px 15px 15px; border: 0; transition: border-radius 0.8s ease; }
.btnAnimation:hover, .btnAnimation a:hover, .btn-primary:hover, .elementor-button:not(#cart .elementor-button):hover { border-radius: 15px 15px 0 15px !important; }

.imgStyle img { border-radius: 0 30px 30px 30px; }
.imgBorder img { border: 1rem solid white; }

.table td, .table th { padding: 1rem; }
.alert-info { background-color: var(--lightBlue); border-color: var(--blue); color: var(--darkBlue); }

/* Spotlight cutout pour ancre #homeSearchBlocks */
.spotlight-cutout {
    position: fixed;
    z-index: 9999;
    border-radius: 12px;
    box-shadow: 0 0 0 9999px rgba(0, 0, 0, 0.6);
    opacity: 0;
    transition: opacity 0.4s ease;
    pointer-events: none;
}
.spotlight-cutout.active {
    opacity: 1;
}

/* Header + Top Bar */
#header { background: transparent; }
#customHeader { z-index: 2; } /* Au-dessus de #mainMenu sticky (z-index:1) pour les dropdowns */
/* #topBar { padding-inline: 3rem; }

#logoNavBar { margin-block-start: 4rem; border: 0; transition: padding-inline 0.3s ease; }
#logoNavBar.elementor-sticky--active { padding-block: 0; }
#logoNavBar { position: relative; width: 100%; transition: all 0.3s ease; }
#logoNavBar.fixed { position: fixed; z-index: 1; top: 0; left: 0; width: 100%; box-shadow: 1px 1px 11px 0px rgba(0, 0, 0, 0.2); }
#logoNavBar #logo { margin-bottom: 2rem; }
#logoNavBar #logo svg { width: 20rem; height: auto; transition: transform 0.3s ease; transform: scale(1); }
#logoNavBar.fixed #logo { position: absolute; z-index: 5; top: -3.7rem; width: fit-content; margin-bottom: 0; }
#logoNavBar.fixed #logo svg * { fill: white; }
#logoNavBar.fixed #logo svg { transform: scale(.7); }
#logoNavBar #navBar { padding-bottom: .5rem;background-color: white; }
#logoNavBar.fixed #navBar { padding-bottom: 0; } */

/* #topBar #spareLink, #topBar #lang { display: flex; width: auto; margin: 0; }
#topBar #spareLink { margin-right: 1rem; padding-right: 2rem; }
#topBar #spareLink:after, #topBar #lang:after { content: ""; position: absolute; right: 0; top: 50%; transform: translateY(-50%); display: block; width: 1px; height: 70%; background-color: white; } */

/* #topBar #lang { margin-left: 3rem; }
#topBar #lang:after { left: -.5rem; right: initial; }
#topBar #lang a.has-submenu { padding: .4rem 1rem; color: white; }
#topBar #lang ul.sub-menu a { font-size: 1.3rem; } */

/* #topBar #search i, #topBar #account i, #topBar #cart i { color: white; }
#topBar #cart { padding: 0 0.5rem; } */

footer#footer #logoFooter svg * { fill: white; }


#customHeader #colLogo { flex: 1; width: initial !important; }
#customHeader #colLogo #logo { display: flex; align-items: center; }
#customHeader #colLogo #logo svg {
  width: 19rem; height: auto; transition: transform 0.3s ease; transform: scale(1);
}

#customHeader svg * { fill: white; }

#customHeader #colSearch { order: 3; flex: 100%; width: initial !important; justify-content: flex-start; padding-left: 1.5rem; }
#customHeader #colSearch > * { margin: auto; }
@media (min-width: 1025px) {
    #customHeader #colSearch > * { max-width: 770px !important; }
}
#customHeader #colSearch #homeSearchBlocks form { display: flex; flex-direction: row; width: 100%; }
#customHeader #colSearch #homeSearchBlocks label { display: none; }
#customHeader #colSearch #homeSearchBlocks input[type="search"] {
  padding: 1rem 2rem; width: 100%; border: 1px solid #FBFBFB87;
  border-top-left-radius: 10px; border-bottom-right-radius: 10px; font-size: 1.4rem; color: var(--blue);
}
#customHeader #colSearch #homeSearchBlocks input[type="search"]:focus-visible {
  border: 1px solid rgba(255, 255, 255, 1); outline: none;
}
#customHeader #colSearch #homeSearchBlocks input[type="search"]::placeholder { color: var(--darkBlue) !important; }
#customHeader #colSearch #homeSearchBlocks input[type="search"]::-webkit-input-placeholder { color: var(--darkBlue) !important; }
#customHeader #colSearch #homeSearchBlocks input[type="search"]::-moz-placeholder { color: var(--darkBlue) !important; }
#customHeader #colSearch #homeSearchBlocks input[type="search"]:-ms-input-placeholder { color: var(--darkBlue) !important; }

#customHeader #colSearch #homeSearchBlocks input[type="submit"] {
  padding: 1rem 2rem; margin-left: 1rem; background-color: var(--darkBlue); color: var(--lightBlue); font-weight: bold;
}
#customHeader #colSearch #homeSearchBlocks input[type="submit"]:hover { cursor: pointer; color: white; }

/* Produit inactif → PrestaShop rend une 404 via ProductController, mais le body
   reste #product : la règle produit `#product #content{max-width:452px}` (colonne
   info) écrase alors le template 404 (CE #10170101) et l'affiche sur ~½ largeur.
   On rétablit la pleine largeur uniquement quand #content contient ce template 404,
   pour un rendu identique à la vraie page 404 (/dsfg). */
#product #content:has(> .elementor-10170101) { max-width: none; }

/* Sur cette 404, on veut le rendu identique à la vraie page 404 (/dsfg) :
   on masque le bandeau d'erreur « Ce produit n'est plus disponible. » et le
   breadcrumb, qui n'existent pas sur /dsfg. Scopé à la 404 produit uniquement
   (via le template CE #10170101) pour ne pas toucher les fiches actives. */
body#product:has(#content > .elementor-10170101) #notifications,
body#product:has(#content > .elementor-10170101) .breadcrumb { display: none; }

/* Bloc recherche pièces détachées — contexte contenu (page 404, etc.), fond clair */
#insideSearchBlocks form { display: flex; flex-direction: row; width: 100%; }
#insideSearchBlocks label { display: none; }
#insideSearchBlocks input[type="search"] {
  padding: 1rem 2rem; width: 100%; border: 1px solid var(--slate-300);
  border-top-left-radius: 10px; border-bottom-right-radius: 10px; font-size: 1.4rem; color: var(--blue);
}
#insideSearchBlocks input[type="search"]:focus-visible {
  border: 1px solid var(--blue); outline: none;
}
#insideSearchBlocks input[type="search"]::placeholder { color: var(--darkBlue) !important; }
#insideSearchBlocks input[type="search"]::-webkit-input-placeholder { color: var(--darkBlue) !important; }
#insideSearchBlocks input[type="search"]::-moz-placeholder { color: var(--darkBlue) !important; }
#insideSearchBlocks input[type="search"]:-ms-input-placeholder { color: var(--darkBlue) !important; }

#insideSearchBlocks input[type="submit"] {
  padding: 1rem 2rem; margin-left: 1rem; background-color: var(--darkBlue); color: var(--lightBlue); font-weight: bold;
}
#insideSearchBlocks input[type="submit"]:hover { cursor: pointer; color: white; }

/* Carte "Rechercher par pièce détachée" — même style que #advancedSearch form.serial-form */
#sparePartsSearch {
  margin: 0 auto 1% auto;
  padding: 2.5rem 2rem;
  width: 95%;
  max-width: 1100px;
  border-top-left-radius: 20px;
  border-bottom-right-radius: 20px;
  border-top: 4px solid var(--blue);
  background-color: white;
  --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 20px 25px -5px #0000, 0 8px 10px -6px #0000;
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
@media (min-width: 992px) {
  #sparePartsSearch {
    width: 85%;
    padding: 2.5rem 3rem;
  }
}

#customHeader #colIcons { margin-left: auto !important; margin-right: 3rem; width: initial; flex: 2; }
#customHeader #colIcons #account a.elementor-item, #customHeader #colIcons #cart .elementor-cart__toggle > a.elementor-button {
  display: flex;
  justify-content: center;
  padding: 0 5px 0 0;
  color: white;
}
#customHeader #colIcons #account a:hover i, #customHeader #colIcons #cart a:hover i { color: var(--blue); }
#customHeader #colIcons #account i { color: white; }
#customHeader #colIcons #account .menu-item-type-account a>span:not(:first-child) { padding-left: 0; }
#customHeader #colIcons #account .elementor-nav .sub-arrow { margin-top: -15px; font-size: 1.2rem; }
#customHeader #colIcons #account ul.sub-menu.elementor-nav--dropdown { left: -7px !important; }
#customHeader #colIcons #account ul.sub-menu a.elementor-sub-item i { margin-right: 1rem; }
#customHeader #colIcons #account ul.sub-menu a.elementor-sub-item:hover i { color: white; }
/* Item du sous-menu "Mon compte" au focus clavier : fond bleu (comme le hover) au lieu du gris par défaut d'Elementor */
#customHeader #colIcons #account ul.sub-menu a.elementor-sub-item:focus,
#customHeader #colIcons #account ul.sub-menu a.elementor-sub-item:focus-visible {
  background-color: var(--blue) !important;
  color: #fff !important;
}
#customHeader #colIcons #account ul.sub-menu a.elementor-sub-item:focus::before,
#customHeader #colIcons #account ul.sub-menu a.elementor-sub-item:focus-visible::before {
  background-color: var(--blue) !important;
}
#customHeader #colIcons #account ul.sub-menu a.elementor-sub-item:focus i,
#customHeader #colIcons #account ul.sub-menu a.elementor-sub-item:focus-visible i { color: #fff !important; }

#customHeader #colIcons #cart { padding: 0 1.5rem 0 0.5rem; }
/* Focus identique pour les icônes "Mon compte" et "Panier" : anneau navy solide, à l'intérieur du cercle.
   Outline SOLIDE explicite (qui suit bien le border-radius) car le ring "auto" par défaut du navigateur
   ne suivait pas le cercle sur le panier et s'affichait rectangulaire. Même règle sur les deux => rendu identique. */
#customHeader #colIcons #cart .elementor-cart__toggle > a:focus,
#customHeader #colIcons #cart .elementor-cart__toggle > a:focus-visible,
#customHeader #colIcons #account a.elementor-item:focus,
#customHeader #colIcons #account a.elementor-item:focus-visible {
  outline: 2px solid var(--darkBlue) !important;
  outline-offset: -2px !important;
  border-radius: 50% !important;
}
#customHeader #colIcons a.has-submenu.highlighted { color: white; }

#customHeader #colIcons #lang ul li > a { padding-left: 5px; }
#customHeader #colIcons #lang .sub-menu.elementor-nav--dropdown { margin-left: 10px !important; min-width: 30px !important; z-index: 10; }

#customHeader #colIcons #lang .elementor-langs__code { display: none; }

@media (min-width: 768px) {
  #customHeader #colLogo #logo svg { width: 20rem; }
  #customHeader #colIcons { margin-right: 4rem; }
  #customHeader #colIcons #account a.elementor-item, #customHeader #colIcons #cart .elementor-cart__toggle > a.elementor-button {
    display: flex;
    justify-content: center;
    padding: initial;
    width: 3.5rem;
    height: 3.5rem;
    background-color: white;
    border-radius: 50%;
    color: var(--darkBlue);
  }
  #customHeader #colIcons #account i { color: var(--darkBlue); }
}
@media (min-width: 1000px) {
  
  #customHeader #colIcons #lang .elementor-langs__code { display: initial; }
  #customHeader #colIcons { margin-right: initial; }
  #customHeader #colLogo { flex: 0; }
  #customHeader #colSearch { order: 2; flex: 1; }
  #customHeader #colIcons { flex: initial; margin-right: initial; order: 3; }
}

/* Menu principal */
#mainMenu { background-color: white; }
@media (max-width: 999px) {
  #mainMenu {
    position: absolute;
    z-index: 2;
    top: 10px !important;
    right: 8px !important;
    padding: 0;
    max-height: 36px;
    width: fit-content;
    background-color: var(--blue) !important;
  }
}

#mainMenu.elementor-sticky--active { border-bottom-color: var(--blue); }
#mainMenu #colMenu { flex: 0; margin: 0 auto; }

#cbp-hrmenu > ul:not(.cbp-links) > li > a { font-weight: 600; }
#cbp-hrmenu ul li ul > li { margin-right: 0; width: 100%; }

#iqitmegamenu-mobile #iqitmegamenu-shower { padding: 0; width: fit-content; max-width: 21px; }
#iqitmegamenu-mobile #iqitmegamenu-shower span { display: none; }
/* Menu ouvert : masquer le burger (☰) à droite ; la croix de fermeture (#cbp-close-mobile) suffit */
body.cbp-spmenu-push-toright #iqitmegamenu-shower { display: none; }

@media (max-width: 999px) {
  #iqitmegamenu-horizontal { background-color: var(--blue) !important; }
  #iqitmegamenu-mobile #iqitmegamenu-shower .iqitmegamenu-icon { margin-right: 0 !important; width: auto; }
  .container.container-iqit-menu { margin: 0; padding: 0 !important; width: 21px !important; border: 0;} 
}

/* HOME 
---------- */
.hero {
    position: relative;
    height: 440px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}
.hero .heroContent { width: 100%; }

/* Search by serial number */
#advancedSearch { margin-top: -7rem; text-align: center; }
#advancedSearch form.serial-form {
  margin: 0 auto 1% auto;
  padding: 2.5rem 2rem;
  width: 95%;
  max-width: 1100px;
  border-top-left-radius: 20px;
  border-bottom-right-radius: 20px;
  border-top: 4px solid var(--blue);
  background-color: white;
  --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 20px 25px -5px #0000, 0 8px 10px -6px #0000;
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
#advancedSearch form.serial-form .form-fields { display: flex; flex-wrap: wrap; gap: 3rem; align-items: center; }

#advancedSearch form.serial-form .title {
  flex: 0 0 100%;
  width: 100%;
  display: flex;
  text-align: initial;
  font-size: 2rem;
  color: var(--darkBlue) !important;
  font-weight: bold;
}
#advancedSearch form.serial-form .title svg { margin-right: 1rem; stroke: var(--blue); }
#advancedSearch form.serial-form .title small { margin-top: -2.5rem; font-size: 1.3rem; }

#advancedSearch .form-fields .search-field label {
    display: block;
    margin-bottom: 0.25rem;
    text-align: initial;
    text-transform: uppercase;
    font-size: 1.3rem;
    color: var(--slate-400);
    font-weight: 700;
}
#advancedSearch .form-fields input, #advancedSearch .form-fields select {
  flex: 1;
  width: 100%;
  min-height: 35px;
  border: 0;
  color: var(--darkBlue) !important;  
  font-weight: 600;
  outline: none;
}
#advancedSearch .form-fields input:focus-visible, #advancedSearch .form-fields select:focus-visible {
    border: 0;
    outline: 1px solid rgba(255, 255, 255, .5);
}
#advancedSearch .form-fields input[type="text"] {
  width: calc(80% - 4px);
  margin-right: 4px;
}

#advancedSearch .form-fields input::placeholder { color: var(--darkBlue) !important; opacity: 1 !important; }
#advancedSearch .form-fields input::-webkit-input-placeholder { color: var(--darkBlue) !important; opacity: 1 !important; }
#advancedSearch .form-fields input::-moz-placeholder { color: var(--darkBlue) !important; opacity: 1 !important; }
#advancedSearch .form-fields input:-ms-input-placeholder { color: var(--darkBlue)!important;  opacity: 1 !important; }

#advancedSearch .form-fields input.submitBtn {
  padding: 1rem 2rem !important;
  border-radius: 0 15px 15px 15px;
  border-bottom: 0 !important;
  background-color: var(--blue) !important;
  font-weight: bold;
  color: white !important;
  cursor: pointer;
  max-width: fit-content;
}
#advancedSearch .form-fields input.submitBtn:hover { background-color: var(--darkBlue) !important; }

@media (max-width: 767px) {
  .hero { padding-bottom: 6rem; }
  .hero .elementor-background-overlay { opacity: 1 !important; }
  #advancedSearch .form-fields .search-field { width: 100%; }
  #advancedSearch .form-fields, #advancedSearch .form-fields input { max-width: 100%; width: 100%; }
  #advancedSearch .form-fields input.submitBtn { margin: auto; }
}
@media (min-width: 768px) {
  .hero { height: 500px; }
  .hero .heroContent { padding-left: 2rem; }
  #advancedSearch { margin-top: -10rem; }
  #advancedSearch form.serial-form { /* width: 85%; */ padding: 2.5rem 3rem; }
  #advancedSearch .form-fields .search-field { font-size: 1.4rem; }
  #advancedSearch .form-fields .search-field:not(:last-of-type) { padding-right: 0.5rem; border-right: 1px solid var(--gray-100); }
  #advancedSearch .form-fields { flex-direction: row; flex-wrap: wrap; }
  #advancedSearch .form-fields select,
  #advancedSearch .form-fields input[type="search"],
  #advancedSearch .form-fields > div { flex: 1 1 calc(30% - 0.75rem); }
  #advancedSearch .form-fields input[type="submit"] { flex: 1 1 100%; margin: 0 auto; }
}
@media (min-width: 992px) {
  #advancedSearch form.serial-form { width: 85%; padding: 2.5rem 3rem; }
  #advancedSearch .form-fields .search-field { font-size: initial; }
}
@media (min-width: 1024px) {
  .hero { height: 600px; }
  .hero .heroContent { width: 70%; }
}
@media (max-width: 1199px) {
  #advancedSearch .form-fields .title { max-width: 100%; width: 100%; }
  #advancedSearch .form-fields .title br.desktop-only { display: none; }
}
@media (min-width: 1200px) {
  .hero .heroContent { width: 60%; }
  #advancedSearch .form-fields select,
  #advancedSearch .form-fields input[type="search"],
  #advancedSearch .form-fields > div { flex: 1 1 auto; min-width: 210px; }
}

/* 4 blocks HP */
.blocks4cols .block-icon,
.blocks3cols .block-icon { width: 100% !important; }
.blocks4cols .elementor-row,
.blocks3cols .elementor-row { justify-content: space-between; gap: 2rem; }
.block-icon { background-color: white; border-radius: 20px; border: 1px solid rgb(241, 245, 249); }
.block-icon .elementor-element-populated { padding: 2.4rem !important; }
.block-icon .icon .elementor-icon { padding: 1.4rem; background-color: rgb(239, 246, 255); border-radius: 1.2rem; }
.block-icon .icon i { font-size: 3rem !important; color: var(--blue) !important; }
.block-icon:hover {
  --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.transition {
  transition-property: color, background-color, border-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-text-decoration-color, -webkit-backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-text-decoration-color, -webkit-backdrop-filter;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.block-icon:hover .icon .elementor-icon { background-color: var(--blue) !important; }
.block-icon:hover .icon .elementor-icon i, .block-icon:hover .icon .elementor-icon svg { color: rgb(239, 246, 255) !important; }

@media (min-width: 768px) {
  .blocks4cols .block-icon { width: calc(50% - 1rem) !important; }
}
@media (min-width: 1024px) {

}
@media (min-width: 1025px) {
  /* .blocks4cols .elementor-row { gap: 1rem; } */
  .blocks4cols .block-icon { width: calc(25% - 2rem) !important; }
  .blocks3cols .block-icon { width: calc(33% - 2rem) !important; }
}

/* 2 blocks : Suivi incident + Intervenant */
.section2Cards .elementor-widget-wrap .htmlBlockHP,
.section2Cards .elementor-widget-wrap .htmlBlockHP .elementor-widget-container {
    height: 100%;
}

.section2Cards .elementor-widget-wrap {
  align-content: stretch;
  flex-direction: column;
}

.section2Cards .elementor-widget-wrap .htmlBlockHP .elementor-widget-container {
  flex: 1;
  display: flex;
}

.space-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 2rem;
  width: 100%;
  border-radius: 1rem;
  border-left: 8px solid var(--blue);
  background-color: white;
  box-shadow: var(--shadow);
  transition: transform 0.3s;
}
.space-card:hover { transform: translateX(10px); }
.space-card-dark {
    background: var(--darkBlue);
    color: var(--white);
    border-left-color: var(--slate-400);
}
.space-card-dark h3, .space-card-dark p, .space-card-dark svg { color: white; }
.space-card-dark:hover svg { color: var(--slate-400); }

.homeCarouselLogosBrand img { opacity: 0.5; transition: opacity 0.2s ease; }
.homeCarouselLogosBrand img:hover { opacity: 1; }

a[data-target="whereFind"] { color: var(--darkBlue); }
a[data-target="whereFind"]:hover { color: var(--blue); }
#whereFindModal {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.6); /* Fond noir à 60% */
  z-index: 1000;
  justify-content: center;
  align-items: center;
}

#whereFindModal .contentModal {
  position: relative;
  z-index: 50;
  padding: 1rem;
  justify-content: center;
  background-color: white;
  max-width: 700px;
  width: 60vh;
  min-height: 500px;
  max-height: 80vh;
}

#usefulLinks ul {
  display: flex;
  justify-content: space-between;
  margin: 0;
  flex-direction: column;
  row-gap: 3rem;
}
@media (min-width: 768px) {
  #usefulLinks ul { flex-direction: row; gap: 4rem 2rem; }
  #usefulLinks ul li { flex: 0 0 48%; margin: 0; }
}
@media (max-width: 1023px) {
  #usefulLinks ul li a { flex-direction: column; align-items: center; gap: 2rem; }
}
@media (min-width: 1024px) {
  #usefulLinks ul { gap: 2rem; }
  #usefulLinks ul li { flex: auto; flex-grow: 0; }
}

@media (min-width: 768px) and (max-width: 1024px) {
  .avintageBlockHP .elementor-column-wrap { 
    max-width: 600px;
    margin: 30px auto !important;
  }
}


/* Sidebar Panier */
.elementor-cart__footer-buttons a { font-weight: bold; border-radius: 0 15px 15px 15px !important; transition: border-radius 0.8s ease; }
.elementor-cart__footer-buttons a:hover { border-radius: 15px 15px 0 15px !important; }
.elementor-cart__footer-buttons a.elementor-button--view-cart { background-color: var(--blue); }
.elementor-cart__footer-buttons a.elementor-button--view-cart:hover { background-color: var(--darkBlue); color: white !important; }
.elementor-cart__footer-buttons a.elementor-button--checkout:hover { border-color: var(--blue) !important; }

a.remove-from-cart:hover { color: var(--blue) !important; }
.card-block.checkout .btn-primary { transition: border-radius 0.8s ease; }
.card-block.checkout .btn-primary:hover { border-radius: 15px 15px 0 15px !important; }

/* Page commande & Tunnel */
body#checkout section.checkout-step { padding: 2rem 1rem; }
body#checkout section.checkout-step .delivery-options>.row { border-right: .1rem solid var(--blue); } 
body#checkout section.checkout-step.-reachable.-current .step-number { background-color: var(--darkBlue); }
body#checkout .cart-grid-right .card .cart-summary-subtotals-container .cart-summary-line .label,
body#checkout .cart-grid-right .card .cart-summary-subtotals-container .cart-summary-line .value,
body#checkout section.checkout-step .carrier-name, .wishlist-list-item-title { font-size: var(--font-size-std) !important; }

.form-control-comment, .text-muted, .definition-list dl dd, .definition-list dl dt, #order-items table tr td { font-size: 1.2rem; }
.input-group .input-group-btn>.btn[data-action=show-password] { background-color: var(--blue); font-size: 1rem; border-bottom-right-radius: 15px; }

body#checkout section.checkout-step .address-item.selected { border: 1px solid var(--blue); }
/* body#checkout a { color: var(--blue); }
body#checkout a:hover { color: var(--darkBlue); } */
body#checkout .custom-radio input[type=radio]:checked+span { top: .2rem; left: .2rem; background-color: var(--blue); }
body#checkout section.checkout-step.-reachable.-complete h1 .step-edit { font-family: "Montserrat", sans-serif; text-transform: capitalize; }
body#checkout #footer { padding: 0; }
body#checkout section.checkout-step .form-footer { display: flex; justify-content: flex-end; align-items: center; gap: 1rem; }
body#checkout section.checkout-step .form-footer button.continue { order: 2;}
body#checkout section.checkout-step .form-footer a.cancel-addres { order: 1;}

#content-hook_order_confirmation { margin-block: 3rem; }
#order-items .h3 { font-family: var(--font-family-std); }
#order-items .h3, .page-addresses .address .address-footer a i, .page-addresses .addresses-footer a i {
  font-size: 1.2rem;
}
#order-items > .row { margin-right: 1rem; border-bottom: 1px solid var(--lightBlue); }
.order-confirmation-table .order-line.row { display: flex; flex-direction: column; align-items: start; gap: 1.5rem; }
@media (min-width: 1024px) {
  .order-confirmation-table .order-line.row { flex-direction: row; align-items: center; }
}
#order-items .order-line { margin-top: 2rem; }
#order-items .image img { width: 100px; border: 1px solid var(--lightBlue); }
#order-items .details, #order-items .qty { margin-bottom: 0; }
#order-items .details { overflow-wrap: break-word; }
@media (max-width: 1023px) {
  #order-items .details, #order-items .qty { width: 100%; overflow-wrap: break-word; }
}
#order-items hr { border-top-color: var(--lightBlue); }
#order-details>.card-title { font-family: var(--font-family-std); font-size: var(--font-size-std); }
#order-details .card-title, #order-items .card-title { border-bottom: none !important; }

#content-hook_payment_return ul, #order-details ul { padding-left: 4rem; list-style: initial; }
/* #content-hook_payment_return a { color: var(--blue); }
#content-hook_payment_return a:hover { color: var(--darkBlue); } */

/* Pages compte client (account, orders, ...) */
.page-my-account .customer-number { float: right; font-size: var(--font-size-std); margin-bottom: 2rem !important; font-weight: bold; color: var(--blue) !important; }
.page-my-account .customer-number span { font-weight:normal; color:#7a7a7a; }
.page-my-account .customer-number +  .customer-number { padding-right:0.3em; }
.page-my-account .customer-number +  .customer-number:after { content:"|"; }
.page-my-account #content .links a { font-size: inherit; }
.page-my-account #content .links a span.link-item {
  display: flex; flex-direction: column; justify-content: center; min-height: 130px; border: 1px solid var(--lightBlue);
}
.page-my-account #content .links a:hover span.link-item { border: 1px solid var(--blue); color: var(--blue); }
/* Focus/clic : l'outline par défaut se dessine sur le <a> (colonne avec gouttière),
   donc plus grand et décalé que la boîte visible. On le retire et on porte
   l'indicateur sur le .link-item pour qu'il épouse exactement la bordure du bloc. */
.page-my-account #content .links a:focus,
.page-my-account #content .links a:focus-visible,
.page-my-account #content .links a:active { outline: none; }
.page-my-account #content .links a:focus span.link-item,
.page-my-account #content .links a:focus-visible span.link-item,
.page-my-account #content .links a:active span.link-item {
  border-color: var(--blue);
  outline: 2px solid var(--blue);
  outline-offset: -1px; /* colle l'outline sur la bordure 1px du bloc */
  color: var(--blue);
}

/* .page-footer a, .order-actions a { color: var(--blue); }
.page-footer a:hover, .order-actions a:hover { color: var(--darkBlue); } */

.page-footer .account-link { font-family: "Montserrat", sans-serif; }
.page-footer .account-link, .page-footer .account-link span, .page-footer .account-link i,
.page-addresses .address, .page-addresses .addresses-footer a span, .page-customer-account #content,
.page-order-detail #content, .wishlist-footer-links>a, .alert, .footer_links * { font-size: var(--font-size-std);}

.hastone-forms h6,
#module-hastone_forms-pannes h6,
.page-addresses .address .address-body h4,
.page-order-detail .addresses h4,
.page-order-detail h3,
#history h6,
#order-slip h6 { font-family: var(--font-family-std) !important; font-size: var(--font-size-std);} 
.page-addresses .address .address-footer a span { font-size: 1.4rem; }

.wishlist-products-container .sort-by-row { flex: 0 1 30%; }
@media screen and (max-width: 768px) {
  .wishlist-products-container .page-content.card {
    box-shadow: none !important;
  }
}
.order-message-form.box { margin-top: 3rem; }
.order-message-form.box header { margin-bottom: 4rem; }

/* Pages login, forgot, create */
.forgotten-password .form-fields { width: 100%; max-width: 100%; margin: 4rem auto 0 auto; }
.forgotten-password .form-fields .form-group { flex-wrap: wrap; gap: 1rem 0; }
.forgotten-password .form-fields .form-group label { flex: 100%; width: initial !important; text-align: initial; }
.forgotten-password .form-fields .form-group .email { flex: 100%; width: initial !important; }
.forgotten-password .form-fields .form-group button { width: 200px; margin: 2rem auto 0 auto; height: auto; }
#login-form .form-group.row, #login-form .forgot-password { margin: 3rem 0; }
#login-form footer { margin-bottom: 4rem; }
.page-authentication #content, .page-registration #content{ max-width: 100%; }

@media screen and (min-width: 768px) {
  .forgotten-password .form-fields { width: fit-content; margin-top: 4rem; }
  .forgotten-password .form-fields .form-group { gap: 2rem 0; }
  .forgotten-password .form-fields .form-group label { flex: 0 0 170px; }
  .forgotten-password .form-fields .form-group .email { flex: 1 1 350px; }
  .forgotten-password .form-fields .form-group button { width: fit-content; }
}

#module-psgdpr-gdpr .psgdprinfo17 { background-color: var( --gray-100); }
#module-psgdpr-gdpr .psgdprinfo17 h2 { color: var(--slate-800); }
#module-preorderandnotification-preorders #preordered-products-list h3 { margin-bottom: 1.563rem; font-size: 2.6rem; }
@media screen and (min-width: 768px) {
  #module-preorderandnotification-preorders #preordered-products-list h3 { font-size: 4rem; }
}
@media screen and (min-width: 1024px) {
  #module-preorderandnotification-preorders #preordered-products-list h3 { font-size: 5rem; }
}
#preordered-products-list hr { border-color: white; }

#module-pdfquotation-accountpdfquotation #main .page-content h6 {
  font-size: 1.6rem;
  font-family: var(--font-family-std);
  font-weight: normal;
}
/* Styles personnalisés pour les tableaux - Limité aux pages Mon Compte */
.hastone-forms .table-striped,
.page-my-account .table,
.page-customer-account .table,
.page-addresses .table,
.page-order-detail .table,
.page-order-history .table,
.page-order-slip .table {
  background-color: transparent;
  border-collapse: collapse;
  border-spacing: 0;
  width: 100%;
}

.hastone-forms .table-striped thead,
.page-my-account .table thead,
.page-customer-account .table thead,
.page-addresses .table thead,
.page-order-detail .table thead,
.page-order-history .table thead,
.page-order-slip .table thead {
  background-color: var(--blue);
  color: white;
  text-transform: uppercase;
}

.hastone-forms .table-striped thead th,
.page-my-account .table thead th,
.page-customer-account .table thead th,
.page-addresses .table thead th,
.page-order-detail .table thead th,
.page-order-history .table thead th,
.page-order-slip .table thead th {
  padding: 1rem 2rem;
  font-weight: bold;
  border: none;
  background-color: var(--blue);
  color: white;
}

.hastone-forms .table-striped tbody td,
.page-my-account .table tbody td,
.page-customer-account .table tbody td,
.page-addresses .table tbody td,
.page-order-detail .table tbody td,
.page-order-history .table tbody td,
.page-order-slip .table tbody td {
  padding: 1rem 2rem; 
}

.hastone-forms .table-striped tbody tr:nth-child(odd),
.page-my-account .table-striped tbody tr:nth-child(odd),
.page-customer-account .table-striped tbody tr:nth-child(odd),
.page-addresses .table-striped tbody tr:nth-child(odd),
.page-order-detail .table-striped tbody tr:nth-child(odd),
.page-order-history .table-striped tbody tr:nth-child(odd),
.page-order-slip .table-striped tbody tr:nth-child(odd) {
      background-color: white;
}

.hastone-forms .table-striped tbody tr:nth-child(even),
.page-my-account .table-striped tbody tr:nth-child(even),
.page-customer-account .table-striped tbody tr:nth-child(even),
.page-addresses .table-striped tbody tr:nth-child(even),
.page-order-detail .table-striped tbody tr:nth-child(even),
.page-order-history .table-striped tbody tr:nth-child(even),
.page-order-slip .table-striped tbody tr:nth-child(even) {
  background-color: rgba(183, 220, 238, 0.22);
}

.hastone-forms .table-bordered,
.page-my-account .table-bordered,
.page-customer-account .table-bordered,
.page-addresses .table-bordered,
.page-order-detail .table-bordered,
.page-order-history .table-bordered,
.page-order-slip .table-bordered {
  border: 1px solid white;
}

.hastone-forms .table-bordered th,
.hastone-forms .table-bordered td,
.page-my-account .table-bordered th,
.page-my-account .table-bordered td,
.page-customer-account .table-bordered th,
.page-customer-account .table-bordered td,
.page-addresses .table-bordered th,
.page-addresses .table-bordered td,
.page-order-detail .table-bordered th,
.page-order-detail .table-bordered td,
.page-order-history .table-bordered th,
.page-order-history .table-bordered td,
.page-order-slip .table-bordered th,
.page-order-slip .table-bordered td {
  border: 1px solid var(--lightBlue);
}

.hastone-forms .table-bordered a,
.page-my-account .table a,
.page-customer-account .table a,
.page-addresses .table a,
.page-order-detail .table a,
.page-order-history .table a,
.page-order-slip .table a {
  color: var(--blue);
  font-weight: bold;
}

.hastone-forms .table-bordered a:hover ,
.page-my-account .table a:hover,
.page-customer-account .table a:hover,
.page-addresses .table a:hover,
.page-order-detail .table a:hover,
.page-order-history .table a:hover,
.page-order-slip .table a:hover {
  color: var(--darkBlue);
}

/* Interventions details */
.hastone-forms .box { margin: 3rem 0; }
.hastone-forms .btn { text-wrap: wrap; }
.hastone-forms .h3 { margin-bottom: 2rem; font-size: 1.5em; color: var(--darkBlue); }
.hastone-forms .box td:first-child { background-color: var(--blue); color: white; }

@media (max-width: 767px) {
  .hastone-forms .box .table tr { display: flex; flex-direction: column; }
  .hastone-forms .box .table td{ width: 100%; }
}
@media (min-width: 768px) {
  .hastone-forms .box .mission-order td:first-child { width: 1%; white-space: nowrap; background-color: var(--blue); color: white; }
}

/* Listes mobile (pannes + interventions) */
.pannes.hidden-md-up .panne,
.interventions.hidden-md-up .intervention { padding: 1rem; }
.pannes.hidden-md-up .panne + .panne,
.interventions.hidden-md-up .intervention + .intervention { margin-top: .5rem; }
.pannes.hidden-md-up .panne:nth-child(odd),
.interventions.hidden-md-up .intervention:nth-child(odd) { background-color: white; }
.pannes.hidden-md-up .panne:nth-child(even),
.interventions.hidden-md-up .intervention:nth-child(even) { background-color: rgba(183, 220, 238, 0.22); }
.interventions.hidden-md-up a h3 { font-size: 2rem; }





/* Miniature prod */
.iconsFunction .elementor-icon, .iconsFunction .elementor-button {
  padding: 1rem;
  color: var(--darkBlue) !important;
  background-color: #ffffff;
  font-size: 1.8rem;
  border: 1px solid rgba(18, 52, 86, 0.1) !important;
}
.iconsFunction .elementor-icon:hover, .iconsFunction .elementor-button:hover {
  color: #ffffff !important; background-color: var(--darkBlue);
}
/* Icône lien : mêmes coins arrondis animés que le bouton panier (repos -> hover) */
.iconsFunction .elementor-icon {
  border-radius: 0 15px 15px !important;
  transition: border-radius .8s, background-color .3s, color .3s;
}
.iconsFunction .elementor-icon:hover {
  border-radius: 15px 15px 0 !important;
}
.productConsoBlock .elementor-widget-container { margin-inline: 5px; }

.labelPriceBlock { padding: 2rem 1rem 0 1rem; }
.labelPriceBlock .elementor-element-populated { padding: 0 !important; }
.labelPriceBlock .labelProduct .ce-product-name { font-size: 1.8rem; font-weight: 500; }
.labelPriceBlock .labelProduct .ce-product-name a:hover { color: var(--darkBlue) !important; }
.labelPriceBlock .labelProduct .ce-product-name a:hover { color: var(--blue) !important; }
.labelPriceBlock .priceProduct { margin-bottom: 1rem !important; }
.labelPriceBlock .priceProduct .ce-product-price { font-size: 2.5rem; font-weight: 600; color: var(--blue); }

/* .stockMiniatureBlock { margin-inline: 1rem; }
.stockMiniatureBlock * { font-size: 1.4rem !important; } */
.badgeProduct { position: absolute; bottom: 1rem; right: 0; }
.badgeProduct .ce-product-badge { border-radius: 0 1rem 1rem 1rem; padding: .5rem .7rem; }
.badgeProduct .ce-product-badge-sale { color: #ffff; background-color: var(--darkBlue); }

/* Page produit */
.customQty i.ce-product-quantity__btn { position: absolute; background: none !important; color: var(--blue) !important; }
.customQty i.ce-product-quantity__btn:hover { color: var(--darkBlue) !important; }
.customQty i.ce-product-quantity__btn.ce-product-quantity__minus { left: 3px; }
.customQty i.ce-product-quantity__btn.ce-product-quantity__plus { right: 3px; }
.customQty input[name="qty"]{ width: 100px !important; }

/* Listings partageant le même rendu d'items : recherche (#search), meilleures
   ventes (#best-sales), promotions (#prices-drop), nouveaux produits
   (#new-products). Règles communes scopées :is(...) ; seules les règles
   "aucun résultat" restent propres à la recherche (#search). */
/* Ligne "Affichage 1-12 de 93 article(s)" plus grande et en bleu */
:is(#search, #best-sales, #prices-drop, #new-products) .elementor-widget-listing-info,
:is(#search, #best-sales, #prices-drop, #new-products) .elementor-widget-listing-info * { font-size: 1.6rem; color: var(--blue); text-align: right; }

/* Page sans résultat : message mis en avant (le widget de recherche est retiré
   côté template via themes/interfroid/templates/errors/not-found.tpl) */
#search #product-search-no-matches { font-size: 2.4rem; color: var(--blue); font-weight: 600; margin-bottom: .8rem; }

/* Quand #js-product-list ne contient PAS la grille produits (= aucun résultat),
   on masque le h4 "Aucun produit ne correspond à votre recherche" (redondant avec
   le widget CE "Aucun résultat / pour X" de l'en-tête). */
#search #js-product-list:not(:has(.products.ce-products.ce-product-grid.elementor-grid)) #product-search-no-matches { display: none; }

/* Cartes produit : bordure fine, ombre au survol, hauteurs égalisées, prix collé en bas */
:is(#search, #best-sales, #prices-drop, #new-products) .ce-products.elementor-grid,
:is(#search, #best-sales, #prices-drop, #new-products) .products.elementor-grid {
  align-items: stretch !important;
  grid-column-gap: 30px !important;
  grid-row-gap: 30px !important;
  gap: 30px !important;
}

:is(#search, #best-sales, #prices-drop, #new-products) [data-elementor-type="product-miniature"] {
  height: 100%;
  background: #fff;
  border: 1px solid rgba(18, 52, 86, 0.12);
  border-radius: 0 15px 15px 15px;
  overflow: hidden;
  transition: box-shadow .3s ease, transform .3s ease, border-radius .8s ease;
}
:is(#search, #best-sales, #prices-drop, #new-products) [data-elementor-type="product-miniature"]:hover {
  box-shadow: 0 10px 24px -8px rgba(0, 35, 91, 0.22);
  transform: translateY(-3px);
  border-radius: 15px 15px 0 15px;
  border-color: var(--blue);
}
/* La carte remplit la hauteur de sa cellule et pousse le prix en bas */
:is(#search, #best-sales, #prices-drop, #new-products) [data-elementor-type="product-miniature"] > article { height: 100%; display: flex; flex-direction: column; }
:is(#search, #best-sales, #prices-drop, #new-products) [data-elementor-type="product-miniature"] > article > section:nth-child(2) { flex: 1 1 auto; }
:is(#search, #best-sales, #prices-drop, #new-products) [data-elementor-type="product-miniature"] > article > section:nth-child(2) > .elementor-container,
:is(#search, #best-sales, #prices-drop, #new-products) [data-elementor-type="product-miniature"] > article > section:nth-child(2) .elementor-row,
:is(#search, #best-sales, #prices-drop, #new-products) [data-elementor-type="product-miniature"] > article > section:nth-child(2) .elementor-column,
:is(#search, #best-sales, #prices-drop, #new-products) [data-elementor-type="product-miniature"] > article > section:nth-child(2) .elementor-column-wrap { height: 100%; }
:is(#search, #best-sales, #prices-drop, #new-products) [data-elementor-type="product-miniature"] > article > section:nth-child(2) .elementor-widget-wrap {
  display: flex; flex-direction: column; height: 100%;
}
/* Titre à hauteur minimale (≈2 lignes) + prix repoussé en bas de carte */
:is(#search, #best-sales, #prices-drop, #new-products) .elementor-widget-product-miniature-name { min-height: 2.8em; }
:is(#search, #best-sales, #prices-drop, #new-products) .elementor-widget-product-miniature-price { margin-top: auto; }

:is(#search, #best-sales, #prices-drop, #new-products) #pagination a:not([rel="prev"]):not([rel="next"]) span {
  width: 3rem; height: 3rem;
  display: flex; justify-content: center; align-items: center;
  background-color: rgba(18, 52, 86, 0.05);
}

:is(#search, #best-sales, #prices-drop, #new-products) #pagination a:not([href]).elementor-active span { color: white !important; }
:is(#search, #best-sales, #prices-drop, #new-products) #pagination a:not([href]).elementor-active { background-color: var(--blue); color: white !important; }
:is(#search, #best-sales, #prices-drop, #new-products) #pagination a:not([rel="prev"]):not([rel="next"]):hover span { background-color: var(--darkBlue); color: white; }
:is(#search, #best-sales, #prices-drop, #new-products) #pagination .ce-pagination a .elementor-icon-list-icon i, :is(#search, #best-sales, #prices-drop, #new-products) #pagination .ce-pagination a .elementor-icon-list-icon svg { color: var(--blue); }
:is(#search, #best-sales, #prices-drop, #new-products) #pagination .ce-pagination a .elementor-icon-list-icon i:hover, :is(#search, #best-sales, #prices-drop, #new-products) #pagination .ce-pagination a .elementor-icon-list-icon svg:hover { cursor: pointer; color: var(--darkBlue);  }

/* Page marque (#brand) : rendu en liste 1 colonne, identique à la page serial
   (petite image à gauche, titre bleu à droite, séparateur entre les lignes).
   La miniature utilisée ici est 12170101 (format horizontal image | label). */
#brand .ce-product-grid.elementor-grid { display: grid; grid-template-columns: 1fr; grid-row-gap: 0; }

/* chaque produit = une ligne avec un fin séparateur */
#brand [data-elementor-type="product-miniature"] { border-bottom: 1px solid #e3e8ef; }
#brand [data-elementor-type="product-miniature"] .elementor-row { align-items: center; flex-wrap: nowrap; }

/* colonne image réduite à gauche */
#brand [data-elementor-type="product-miniature"] .elementor-col-33 { width: auto !important; flex: 0 0 auto !important; }
#brand [data-elementor-type="product-miniature"] .ce-product-image img,
#brand [data-elementor-type="product-miniature"] .elementor-widget-product-miniature-image img { width: 72px !important; height: auto !important; }

/* colonne label : prend le reste, titre bleu marine aligné à gauche */
#brand [data-elementor-type="product-miniature"] .elementor-col-66 { width: auto !important; flex: 1 1 auto !important; }
#brand [data-elementor-type="product-miniature"] .elementor-widget-product-miniature-name,
#brand [data-elementor-type="product-miniature"] .ce-product-name { text-align: left; }
#brand [data-elementor-type="product-miniature"] .ce-product-name a,
#brand [data-elementor-type="product-miniature"] .elementor-widget-product-miniature-name a { color: var(--darkBlue) !important; font-weight: 700; }

/* Page marques (#manufacturer) : logo affiché plus grand, sans déformation */
#manufacturer #main ul .brand-img img {
  width: auto;
  max-width: 100%;
  max-height: 110px;
  height: auto;
  object-fit: contain;
}

/* Plan du site (#sitemap) : grille type masonry (colonnes à hauteur naturelle),
   titres charte, fin du chevauchement, listes lisibles */
#sitemap .sitemap {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem 2.5rem;
  align-items: start;
}
#sitemap .sitemap .col-md-3 { width: auto; max-width: none; flex: none; float: none; margin: 0; padding: 0; }
#sitemap .sitemap h2 {
  height: auto;
  font-size: 2rem;
  line-height: 1.3;
  color: var(--darkBlue);
  border-bottom: 2px solid var(--lightBlue);
  padding-bottom: .6rem;
  margin: 0 0 1.2rem;
}
#sitemap .sitemap ul { list-style: none; padding-left: 0; margin: 0; }
#sitemap .sitemap li { margin-bottom: .5rem; line-height: 1.4; }
#sitemap .sitemap a { font-size: 1.5rem; }
#sitemap .sitemap ul.nested { margin: .5rem 0 .8rem 1.4rem; padding-left: 1rem; border-left: 2px solid #e3e8ef; }
#sitemap .sitemap ul.nested a { font-size: 1.4rem; }

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

/* Plan du site : pas de fil d'Ariane, titre sans capitalize, espace sous le titre */
.page-sitemap .breadcrumb { display: none; }
.page-sitemap .sitemap-title { text-transform: none; }
.page-sitemap #main .page-header { margin-bottom: 5rem; }

/* Tpl "Modele Produit pièce détachée" */
#spare-part-details .elementor-row { gap: 2rem 0; }
#spare-part-details .spare-col-img, #spare-part-details .spare-col-main, #spare-part-details .spare-col-features{ flex: 100%; }
#spare-part-details .spare-col-main .spare-col-main-title-product h1 { font-size: 2.6rem; }
#spare-part-details .spare-col-img { order: 3; }

@media (min-width: 768px) {
  #spare-part-details .spare-col-img { flex: 40%; order: initial; }
  #spare-part-details .spare-col-main { flex: 60%; }
}
@media (min-width: 1024px) {
  #spare-part-details .spare-col-img { flex: 25%; order: initial; }
  #spare-part-details .spare-col-main { flex: 45%; }
  #spare-part-details .spare-col-features {
    flex: 30%; border-left: 1px solid var(--slate-300); padding-left: 1rem;
  }
}

.ce-product-prices { display: flex; align-items: flex-start; font-size: 3.5rem; line-height: normal; font-weight: bold; color: var(--blue); }
.ce-product-prices .ce-tax-shipping-delivery-label { font-size: 1.3rem; }
/*Bloc Précommande */
#pre-order-module:has(.fmmpoLatestver) { display: none; }
#pre-order-module:has(.fmmpoLatestver.card.card-block) { display: block; }

/* Masquer "Ajouter au panier" par défaut */
.elementor-widget-product-add-to-cart { 
    display: none !important; 
}
/* Afficher "Ajouter au panier" si #fmmPreOrder est vide (pas de précommande) */
body:has(#fmmPreOrder:empty) .elementor-widget-product-add-to-cart {
    display: block !important;
}

#fmmPreOrder { text-align: initial; }
#fmmPreOrder.card { background-color: initial; }

/* Template "Modele Produit 'Cave non vendable'" */
#version-details .version-col-img:has(img[src$="medium_default.jpg"]),
#version-details .version-col-img:has(img[src$="default-original.jpg"]){
	display:none;
}
/* Cas où l'image principale/par défaut est cachée : col plus large */
@media (min-width: 768px) {
  #version-details .version-col-img:has(img[src$="medium_default.jpg"]) + .version-col-main.elementor-col-33 {
		width:66%!important;
	}
}
#version-details .version-col-features .block-document-product .ce-attachment a { font-size: 1.4rem; color: initial; }
#version-details .version-col-features .block-document-product .ce-attachment:hover .elementor-icon i, .elementor-icon svg { color: var(--blue); }
#version-details .version-col-features .block-document-product:not(:has([data-widget_type="product-attachments.default"])) {
  display: none;
}
.elementor-icon-box-description { display: none; } /* description documents joints */

/* Page recherche : bouton "Besoin d'aide" sur la même ligne que le titre, sans chevauchement */
.page-search .elementor-widget-wrap:has(> .btn-help) { align-items: baseline; }
.page-search .elementor-widget-wrap:has(> .btn-help) > .elementor-widget-heading:first-child {
  width: auto;
  flex: 1 1 auto;
  min-width: 0;
}
.page-search .elementor-widget-wrap:has(> .btn-help) > .btn-help {
  width: auto;
  flex: 0 0 auto;
  margin-left: auto;
}
/* Jusqu'à 1024px : bouton sous le titre, calé à gauche */
@media (max-width: 1024px) {
  .page-search .elementor-widget-wrap:has(> .btn-help) > .btn-help {
    flex: 0 0 100%;
    margin-left: 0;
    text-align: left;
  }
  .page-search .elementor-widget-wrap:has(> .btn-help) > .btn-help .elementor-widget-container {
    text-align: left;
  }
}

.hidden{ display:none; }

.bootstrap-touchspin input.form-control, .bootstrap-touchspin input.input-group { width: 3.5rem; }

#lpsproaccount{
  font-size: 1.5rem;
}

#lpsproaccount + .no-account{
  display:none;
}

/* ============================================================
   Blog (prestablog) — cartes articles
   Look aligné sur la charte : carte blanche, coins arrondis
   signature (carré en haut-gauche -> bascule en bas-droite au
   survol, comme les boutons), image au ratio constant, bouton
   "Lire l'article" pleine largeur épinglé en bas, hauteurs
   égalisées (la grille Masonry du module aligne déjà les <li>).
   ============================================================ */
#blog_list_1-7 .block_cont {
  display: flex;
  flex-direction: column;
  height: 100%;
  border: 1px solid rgba(18, 52, 86, 0.12);
  border-radius: 0 18px 18px 18px;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 1px 2px rgba(0, 35, 91, 0.04);
  transition: box-shadow .3s ease, transform .3s ease, border-color .3s ease, border-radius .8s ease;
}
#blog_list_1-7 li:hover .block_cont {
  box-shadow: 0 14px 30px -12px rgba(0, 35, 91, 0.30);
  transform: translateY(-4px);
  border-color: var(--blue);
  border-radius: 18px 18px 0 18px; /* le coin carré passe en bas-droite */
}

/* Image : ratio constant, jamais déformée */
#blog_list_1-7 .block_top { flex: 0 0 auto; width: 100%; aspect-ratio: 16 / 10; }
#blog_list_1-7 .block_cont .block_top a { display: block; width: 100%; height: 100%; }
#blog_list_1-7 .block_top img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* Contenu : pousse le bouton tout en bas */
#blog_list_1-7 .blog-grid .block_bas {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  width: 100%;
  padding: 18px 20px 14px;
}
#blog_list_1-7 .block_bas h2 {
  font-size: 1.9rem;
  line-height: 1.25;
  margin: 0 0 8px;
  padding: 0;
  border-bottom: none;
}
#blog_list_1-7 .block_bas h2 > a { color: var(--darkBlue); font-weight: 700; }
#blog_list_1-7 .block_bas h2 > a:hover { color: var(--blue); }
#blog_list_1-7 .block_bas h2 br { display: none; }

/* Métadonnées : date discrète + catégorie(s) en puce */
#blog_list_1-7 .date_blog-cat {
  display: block;
  margin-top: 6px;
  font-size: 1.2rem;
  font-weight: 400;
  line-height: 1.5;
}
#blog_list_1-7 .date_blog-cat a.categorie_blog {
  display: inline;
  margin: 0;
  padding: 0;
  background: none;
  border-radius: 0;
  font-size: inherit;
  font-weight: 400;
}
#blog_list_1-7 .date_blog-cat a.categorie_blog:hover {
  text-decoration: underline;
}

/* Extrait : 3 lignes max pour homogénéiser les cartes */
#blog_list_1-7 .prestablog_desc {
  margin: 12px 0 0;
  font-size: 1.4rem;
  line-height: 1.55;
  color: var(--slate-800);
  display: -webkit-box;
  -webkit-line-clamp: 3;
  line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* Barre d'action : bouton "Lire l'article" pleine largeur, collé en bas */
#blog_list_1-7 .prestablog_more {
  display: flex;
  align-items: stretch;
  margin-top: auto;
  min-height: 0;
  background: transparent;
  border-top: 1px solid rgba(18, 52, 86, 0.08);
}
#blog_list_1-7 .prestablog_more a.blog_link {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  flex: 1 1 auto;
  width: auto;
  height: auto;
  padding: 14px 16px;
  background: var(--darkBlue) !important; /* !important : passe outre blog1.css (généré) */
  color: #fff !important;
  font-size: 1.4rem;
  font-weight: 600;
  text-decoration: none;
}
#blog_list_1-7 .prestablog_more a.blog_link:hover { background: var(--blue) !important; color: #fff !important; }
#blog_list_1-7 .prestablog_more a.blog_link i.material-icons { font-size: 1.9rem; line-height: 1; }

/* Titre h1 de la page blog */
#module-prestablog-blog h1.prestablogcat { font-size: 3rem; }

/* Titres de la colonne de gauche (Recherche dans le blog, Derniers articles)
   ramenés à la taille du texte courant (étaient ~11px) */
#module-prestablog-blog #left-column .title_block { font-size: var(--font-size-std); }
#module-prestablog-blog #left-column .block_content { margin-top: 1.5rem; }

/* Bouton "Tous les articles" : même style que le bouton "Déclarer un incident
   maintenant" de la home (bleu, blanc, Montserrat 700 majuscules, coin carré
   en haut-gauche qui bascule en bas-droite au survol).
   !important : blog1.css (généré) force le fond en bleu clair. */
#module-prestablog-blog #left-column .btn_link {
  background-color: var(--blue) !important;
  color: #fff !important;
  font-family: var(--font-family-std);
  font-weight: 700;
  text-transform: uppercase;
  border: 0;
  border-radius: 0 15px 15px 15px;
  transition: border-radius .8s ease;
}
#module-prestablog-blog #left-column .btn_link:hover {
  background-color: var(--darkBlue) !important;
  color: #fff !important;
  border-radius: 15px 15px 0 15px;
}

/* Champ "Recherche dans le blog" : même traitement que la recherche du header.
   Input et bouton loupe séparés visuellement (flex + gap), coins arrondis
   diagonaux (haut-gauche + bas-droite), bouton bleu -> bleu foncé au survol.
   Le bouton était superposé sur l'input (position:absolute) : on le remet dans
   le flux. !important : blog1.css force le fond en bleu clair. */
#prestablog_bloc_search {
  display: flex;
  align-items: stretch;
  gap: 8px;
}
#prestablog_bloc_search #prestablog_search.form-control {
  flex: 1 1 auto;
  width: auto;
  margin: 0;
  padding: 13px;
  border: 1px solid var(--blue);
  border-radius: 15px 0 15px 0;
}
#prestablog_bloc_search .btn.button-search {
  position: relative; /* ancre l'icône ::after dans le bouton */
  flex: 0 0 auto;
  width: 45px;
  height: 45px;
  background-color: var(--blue) !important;
  color: var(--lightBlue) !important; /* couleur de l'icône loupe */
  border-radius: 0 15px 15px 15px; /* signature : seul le coin haut-gauche est carré */
  transition: border-radius .8s ease, background-color .3s ease, color .3s ease;
}
#prestablog_bloc_search .btn.button-search:hover {
  background-color: var(--darkBlue) !important;
  color: #fff !important; /* icône blanche au survol */
  border-radius: 15px 15px 0 15px; /* le coin carré passe en bas-droite */
}
/* icône loupe (::after Material Icons) recentrée dans le bouton */
#prestablog_bloc_search .btn.button-search::after {
  top: 50% !important;
  left: 50% !important;
  transform: translate(-50%, -50%);
  width: auto !important;
  height: auto !important;
  line-height: 1 !important;
}
#prestablog_bloc_search .clear { display: none; }

/* Page article : masquer le bloc .prestablogExtra quand il est "vide".
   Il n'est jamais réellement vide (contient toujours un <div class="clearfix">),
   donc on le masque s'il n'a aucun enfant autre que le clearfix. */
#prestablogfront, .prestablogExtra { border: none; background-color: transparent; }
.prestablogExtra:not(:has(> :not(.clearfix))) { display: none; }

/* Page article : retirer le trait décoratif de part et d'autre de la date
   (un border-top pleine largeur en ::before, masqué au centre par le fond
   blanc du span). */
#prestablogfront time.date::before { display: none; }

/* Titre de l'article (désormais une balise <p id="prestablog_article">) :
   taille 2rem, gardé en gras pour rester lisible comme un titre. */
#prestablogfront #prestablog_article {
  font-size: 2rem;
  font-weight: 700;
  text-align: center;
}
#prestablogfront h1, #prestablogfront h2, #prestablogfront h3, #prestablogfront h4, #prestablogfront h5, #prestablogfront h6, #prestablogauthor h1, #prestablogauthor h2, #prestablogauthor .prestablogtitle { margin: initial; }

/* Page marques : masquer la marque "Other (OEM)" (brand 3) */
li.brand:has(a[href*="/brand/3-other-oem"]) { display: none; }

/* Listing vide (promotions, nouveaux produits…) : le message
   "Aucun produit disponible pour le moment" est un <h4> → on le rend
   en texte courant (ni gras, ni taille de titre). */
#js-product-list h4 {
  margin-bottom: 2rem !important;
  font-family: var(--font-family-std);
  font-size: 1.6rem;
  font-weight: 400;
  line-height: inherit;
  margin: 0;
}

/* Listing vide : le widget de recherche natif (#search_widget) n'est pas stylé
   ici (classe .search-widgets au pluriel, hors scope des règles du thème).
   On le cale centré, largeur limitée, avec le même habillage que la recherche
   de contenu (#insideSearchBlocks). */
#js-product-list #search_widget {
  float: none;
  max-width: 500px;
  margin: 3.5rem auto 0;
}
#js-product-list #search_widget form {
  position: relative;
  display: flex;
  width: 100%;
}
#js-product-list #search_widget input[type="text"] {
  width: 100%;
  padding: 1rem 4rem 1rem 2rem; /* place pour l'icône loupe à droite */
  border: 1px solid var(--slate-300);
  border-top-left-radius: 10px; border-bottom-right-radius: 10px;
  font-size: 1.6rem; color: var(--blue);
}
#js-product-list #search_widget input[type="text"]:focus-visible {
  border: 1px solid var(--blue); outline: none;
}
#js-product-list #search_widget input[type="text"]::placeholder { color: var(--slate-800) !important; }
#js-product-list #search_widget .material-icons.search {
  position: absolute; top: 50%; right: 1.2rem; transform: translateY(-50%); line-height: 1.2rem;
  color: var(--blue); cursor: pointer;
}
#js-product-list #search_widget .material-icons.clear { display: none; }

/* Page liste d'attente (waitlist) : espacement vertical */
#userProductWaitlist { margin-block: 3rem; }

/* Page pré-commandes (preorders) : même traitement que waitlist */
#preordered-products-list { margin-block: 3rem; }

/* Lien "Retour" harmonisé avec le style .account-link (comme avoirs/waitlist) :
   on neutralise l'apparence bouton .btn-primary et on ajoute la flèche Material. */
#preordered-products-list a.push-top.btn.btn-primary {
  display: inline-block;
  padding: 0;
  border: 0 !important;
  border-radius: 0 !important;
  background: none !important;
  box-shadow: none;
  color: var(--blue);
  font-family: var(--font-family-std);
  font-weight: 400;
  font-size: 1.6rem; /* = 16px, taille réelle du lien sur avoirs (root = 10px) */
  text-transform: none;
  letter-spacing: normal;
}
#preordered-products-list a.push-top.btn.btn-primary:hover { color: var(--darkBlue); background: none !important; }
#preordered-products-list a.push-top.btn.btn-primary span { font-size: 1.6rem; vertical-align: middle; }
#preordered-products-list a.push-top.btn.btn-primary::before {
  content: "\e5cb"; /* keyboard_backspace, comme l'icône de .account-link */
  font-family: "Material Icons", Arial, sans-serif;
  -webkit-font-feature-settings: "liga"; font-feature-settings: "liga";
  font-size: 1.6rem; line-height: 1; vertical-align: middle; margin-right: .25rem;
}
