/* =============================================================================
   Retouches LYNX HD par-dessus le thème Machic (base.css).
   Couleurs de la charte : bleu nuit #0A1A33, ambre #E8830F, brun #7A3E0C, blanc.
   Police : Montserrat (titres 800, prix 700, texte 500).
   ========================================================================== */

:root {
  --lynx-nuit: #0A1A33;
  --lynx-nuit-2: #13284d;
  --lynx-ambre: #E8830F;
  --lynx-brun: #7A3E0C;
  --lynx-fond: #f4f6f9;

  --color-primary: var(--lynx-nuit);
  --color-secondary: var(--lynx-ambre);
  --color-main-text: #0A1A33;
  --color-link: #13284d;
  --color-shop-button: var(--lynx-ambre);
  --color-shop-button-active: var(--lynx-brun);
  --color-theme-warning: #d26a00;
  --font-primary: var(--font-montserrat), "Montserrat", Arial, sans-serif;
  --font-secondary: var(--font-montserrat), "Montserrat", Arial, sans-serif;
  --swiper-theme-color: var(--lynx-ambre);
}

body { font-family: var(--font-primary); font-weight: 500; color: var(--color-main-text); }
h1, h2, h3, h4, h5, h6, .entry-title { font-family: var(--font-primary); }
.price, .amount { font-weight: 700; }
.color-warning { color: var(--color-theme-warning); }
button { font-family: inherit; }

/* En-tête ------------------------------------------------------------------ */
.site-header .header-top.dark { background-color: var(--lynx-nuit); }
.site-header .header-top .site-menu .menu a,
.site-header .header-top .lynx-haut-texte { color: #fff; font-size: .75rem; display: inline-flex; align-items: center; gap: 6px; }
.site-header .header-top .lynx-haut-texte i { color: var(--lynx-ambre); }
.site-header .header-top .site-menu .menu a:hover { color: var(--lynx-ambre); }
.lynx-logo { height: 54px; width: auto; display: block; }
.header-mobile .lynx-logo { height: 40px; }
.site-offcanvas .lynx-logo { height: 44px; }
.site-search .input-search-button .btn-primary { background-color: var(--lynx-ambre); border-color: var(--lynx-ambre); font-weight: 700; }
.site-search .input-search-button .btn-primary:hover { background-color: var(--lynx-brun); border-color: var(--lynx-brun); }
.site-header .header-addons-icon .button-count { background-color: var(--lynx-ambre); color: #fff; }
.lynx-rebond { animation: lynx-rebond .6s ease; }
@keyframes lynx-rebond { 0%, 100% { transform: scale(1); } 40% { transform: scale(1.25); } }

.site-header .header-nav { background-color: var(--lynx-nuit); }
.site-header .header-nav .site-menu.primary > .menu > li > a { color: #fff; font-weight: 600; }
.site-header .header-nav .site-menu.primary > .menu > li > a:hover,
.site-header .header-nav .site-menu.primary > .menu > li.current-menu-item > a { color: var(--lynx-ambre); }
.site-departments.large .site-departments-wrapper > a { background-color: var(--lynx-ambre); color: #fff; }
.site-departments .site-departments-wrapper > a .departments-text { font-weight: 700; }
.site-departments .departments-menu { background-color: #fff; z-index: 50; box-shadow: 0 12px 24px rgba(10, 26, 51, .08); }
.departments-menu > li > a { display: flex; align-items: center; gap: 12px; color: var(--color-main-text); font-weight: 600; }
.departments-menu > li > a:hover { color: var(--lynx-ambre); }
.departments-menu > li > a .menu-icon { display: inline-flex; width: 26px; justify-content: center; color: var(--lynx-nuit); }
.departments-menu > li > a .menu-icon i { font-size: 20px; }
.discount-products .discount-banner { text-decoration: none; color: #fff; }
.discount-products .discount-banner .discount-banner-icon i { color: var(--lynx-ambre); }
.discount-products .discount-banner .main-text { color: #fff; }
.discount-products .discount-banner .small-text { color: rgba(255, 255, 255, .7); }

/* Mini-panier */
.cart-dropdown .products .product .product-content { position: relative; display: flex; gap: 10px; align-items: center; }
.cart-dropdown .products .product .thumbnail-wrapper img { width: 56px; height: 56px; object-fit: contain; }
.lynx-retirer { background: none; border: 0; color: var(--color-text-light); margin-left: auto; padding: 4px; }
.lynx-retirer:hover { color: var(--color-theme-danger); }
.cart-dropdown .woocommerce-mini-cart__buttons { display: flex; gap: 8px; }
.cart-dropdown .woocommerce-mini-cart__buttons .btn { flex: 1; }
.cart-dropdown .woocommerce-mini-cart__buttons .btn.checkout { background-color: var(--lynx-ambre); border-color: var(--lynx-ambre); color: #fff; }
.cart-dropdown .cart-empty { padding: 20px; text-align: center; color: var(--color-text-light); }

/* Menu latéral et barre du bas (téléphone) --------------------------------- */
.site-offcanvas { visibility: hidden; transition: transform .45s cubic-bezier(.77, 0, .18, 1), visibility 0s linear .45s; }
.site-offcanvas.lynx-ouvert { visibility: visible; transform: translateX(0); transition: transform .45s cubic-bezier(.77, 0, .18, 1); }
.site-offcanvas-close { background: none; border: 0; font-size: 1.25rem; color: inherit; }
.site-offcanvas .departments-menu { list-style: none; padding: 0; margin: 0 0 1rem; }
.site-offcanvas .departments-menu > li > a { padding: 10px 0; text-decoration: none; }
.site-offcanvas .all-categories { display: flex; align-items: center; gap: 10px; padding: 12px 14px; background: var(--lynx-nuit); color: #fff; border-radius: 6px; text-decoration: none; font-weight: 700; margin-bottom: 8px; }
.site-overlay { position: fixed; inset: 0; background: rgba(10, 26, 51, .55); z-index: 1000; opacity: 0; visibility: hidden; transition: opacity .3s, visibility 0s linear .3s; }
.site-overlay.lynx-ouvert { opacity: 1; visibility: visible; transition: opacity .3s; }
.klb-mobile-search { position: fixed; left: 0; right: 0; bottom: 0; z-index: 999; background: #fff; padding: 12px 12px 76px; box-shadow: 0 -6px 16px rgba(10, 26, 51, .12); transform: translateY(100%); visibility: hidden; transition: transform .3s, visibility 0s linear .3s; }
.klb-mobile-search.active { transform: translateY(0); visibility: visible; transition: transform .3s; }
.klb-mobile-search .input-search-addon { display: none; }
.mobile-bottom-menu .mobile-menu ul li a.active,
.mobile-bottom-menu .mobile-menu ul li a:hover { color: var(--lynx-ambre); }
.lynx-panier-bas { position: relative; }
.lynx-pastille { position: absolute; top: 2px; left: 50%; margin-left: 4px; min-width: 18px; height: 18px; border-radius: 9px; background: var(--lynx-ambre); color: #fff; font-size: 11px; font-style: normal; font-weight: 700; display: flex; align-items: center; justify-content: center; padding: 0 4px; }
@media (min-width: 75rem) { .klb-mobile-search { display: none; } }
@media (max-width: 74.99rem) { body.klb-bottom-menu { padding-bottom: 64px; } }

/* Cartes produit ------------------------------------------------------------ */
.product .thumbnail-wrapper img { aspect-ratio: 1 / 1; object-fit: contain; width: 100%; height: auto; }
.product-badges .badge.onsale { background-color: var(--color-theme-danger); }
.lynx-badge-nouveau { background-color: var(--lynx-nuit) !important; color: #fff !important; }
.product .product-title a { font-weight: 600; }
.product-price-cart .add_to_cart_button { border: 1px solid #f3d6b3; }
.product-price-cart .add_to_cart_button:hover { background-color: #fff4e6; border-color: var(--lynx-ambre); }
.product-price-cart .add_to_cart_button:disabled { opacity: .35; cursor: not-allowed; }
.product.outofstock .thumbnail-wrapper img { opacity: .55; }
.lynx-grille { margin: 0 -10px; }

/* Accueil ------------------------------------------------------------------- */
.lynx-haut-accueil { padding-top: 20px; position: relative; }
.lynx-rayons-page { display: none; } /* seulement avec l'en-tête ordinateur (≥ 1 200 px) */
.lynx-haut-grille { display: grid; gap: 20px; grid-template-columns: 1fr; }
@media (min-width: 64rem) {
  .lynx-haut-grille { grid-template-columns: minmax(0, 1fr) 300px; min-height: 405px; }
}
/* Le menu des rayons n'est ouvert à gauche du bandeau qu'avec l'en-tête ordinateur (≥ 1 200 px). */
@media (min-width: 75rem) { .lynx-haut-grille { margin-left: 313px; } }
.lynx-diaporama { border-radius: var(--size-border-radius); overflow: hidden; height: 100%; }
.lynx-diaporama .swiper-container, .lynx-diaporama .swiper-slide { height: 100%; }
.lynx-diapo {
  display: flex; align-items: center; min-height: 405px; height: 100%; overflow: hidden;
  background: radial-gradient(circle at 78% 40%, #1f3d73 0%, var(--lynx-nuit) 62%);
  color: #fff;
}
.lynx-diapo::after { content: ""; position: absolute; right: -80px; bottom: -120px; width: 360px; height: 360px; border-radius: 50%; background: var(--lynx-ambre); opacity: .9; }
.lynx-diapo .banner-content { position: relative; z-index: 2; max-width: 56%; padding: 2.5rem; }
.lynx-diapo .entry-subtitle { color: var(--lynx-ambre); text-transform: uppercase; letter-spacing: .12em; font-size: .75rem; font-weight: 700; }
.lynx-diapo .entry-title { color: #fff; font-size: 2.25rem; font-weight: 500; line-height: 1.1; }
.lynx-diapo .entry-title strong { display: block; font-weight: 800; font-size: 2.75rem; }
.lynx-diapo .entry-description p { color: rgba(255, 255, 255, .8); }
.lynx-diapo .banner-image { position: absolute; right: 0; top: 0; width: 52%; height: 100%; z-index: 1; display: flex; align-items: center; justify-content: center; }
.lynx-diapo .banner-image img { width: 100%; max-width: 420px; height: auto; filter: drop-shadow(0 18px 30px rgba(0, 0, 0, .35)); }
.lynx-diaporama .swiper-pagination-bullet { background: #fff; opacity: .5; }
.lynx-diaporama .swiper-pagination-bullet-active { background: var(--lynx-ambre); opacity: 1; }
.lynx-diaporama .swiper-button-prev, .lynx-diaporama .swiper-button-next { color: #fff; }
.lynx-btn-ambre { background-color: var(--lynx-ambre) !important; border-color: var(--lynx-ambre) !important; color: #fff !important; font-weight: 700; }
.lynx-btn-ambre:hover { background-color: var(--lynx-brun) !important; border-color: var(--lynx-brun) !important; }
.lynx-btn-nuit { background-color: var(--lynx-nuit) !important; border-color: var(--lynx-nuit) !important; color: #fff !important; font-weight: 700; }

.lynx-haut-cotes { display: grid; gap: 20px; grid-template-columns: 1fr 1fr; }
@media (min-width: 64rem) { .lynx-haut-cotes { grid-template-columns: 1fr; } }
.lynx-banniere-cote { position: relative; display: flex; align-items: center; overflow: hidden; border-radius: var(--size-border-radius); padding: 18px; min-height: 180px; text-decoration: none; }
.lynx-banniere-cote img { position: absolute; right: -24px; bottom: -18px; width: 170px; height: auto; transition: transform .3s; }
.lynx-banniere-cote:hover img { transform: scale(1.05); }
.lynx-cote-texte { position: relative; z-index: 1; max-width: 60%; display: flex; flex-direction: column; gap: 4px; }
.lynx-cote-texte small { font-size: .75rem; text-transform: uppercase; letter-spacing: .1em; font-weight: 700; }
.lynx-cote-texte strong { font-size: 1.125rem; font-weight: 800; line-height: 1.2; }
.lynx-cote-texte em { font-style: normal; font-size: .8125rem; }
.lynx-cote-clair { background: #eef2f7; color: var(--lynx-nuit); }
.lynx-cote-clair small { color: var(--lynx-ambre); }
.lynx-cote-ambre { background: var(--lynx-ambre); color: #fff; }
.lynx-cote-ambre small { color: var(--lynx-nuit); }

.lynx-reassurance { margin-top: 24px; row-gap: 12px; }
.lynx-reassurance .klb-icon-box { display: flex; align-items: center; gap: 14px; padding: 16px; border: 1px solid var(--color-theme-border); border-radius: var(--size-border-radius); height: 100%; }
.lynx-reassurance .klb-icon-box .icon i { font-size: 2rem; color: var(--lynx-ambre); }
.lynx-reassurance .klb-icon-box .entry-title { font-size: .9375rem; font-weight: 700; margin: 0 0 2px; }
.lynx-reassurance .klb-icon-box p { margin: 0; font-size: .8125rem; color: var(--color-text-light); }

.lynx-accueil section > .site-module { margin-top: 40px; }
.lynx-accueil .lynx-haut-accueil .site-module { margin-top: 0; }
.lynx-accueil .klb-custom-title + .module-category-list { margin-top: 12px; }
.lynx-rayon-icone { display: flex; align-items: center; justify-content: center; width: 96px; height: 96px; margin: 0 auto 10px; border-radius: 50%; background: #eef2f7; color: var(--lynx-nuit); transition: background .2s, color .2s; }
.category-item a { text-decoration: none; text-align: center; display: block; }
.category-item a:hover .lynx-rayon-icone { background: var(--lynx-nuit); color: #fff; }
.category-item .category-name { font-size: .875rem; font-weight: 700; margin: 0; color: var(--color-main-text); }
.category-item .category-detail span { font-size: .75rem; color: var(--color-text-light); }

.lynx-offres .entry-title { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; }
.lynx-fin-offre { font-size: .8125rem; font-weight: 600; color: var(--color-text-light); }
.lynx-rebours { display: inline-flex; gap: 6px; }
.lynx-rebours span { display: inline-flex; align-items: baseline; gap: 2px; background: var(--lynx-nuit); color: #fff; border-radius: 4px; padding: 3px 7px; }
.lynx-rebours strong { font-size: .875rem; font-weight: 800; }
.lynx-rebours small { font-size: .75rem; opacity: .75; }
.lynx-offres .products.list-style { padding: 0; overflow: visible; row-gap: 16px; }
.lynx-offres .product { border: 2px solid var(--lynx-ambre); border-radius: var(--size-border-radius); padding: 16px; height: 100%; }
.lynx-offres .product-content { display: flex; gap: 16px; align-items: center; }
.lynx-offres .thumbnail-wrapper { flex: 0 0 38%; position: relative; }
.lynx-offres .content-wrapper { flex: 1; }
.product-progress { height: 6px; border-radius: 3px; background: #eef2f7; overflow: hidden; margin: 8px 0; }
.product-progress span { display: block; height: 100%; background: linear-gradient(90deg, var(--lynx-ambre), var(--lynx-brun)); }
.product-count-detail { display: flex; justify-content: space-between; font-size: .75rem; }

.lynx-bannieres { margin-top: 36px; row-gap: 20px; }
.lynx-banniere { position: relative; display: flex; align-items: center; min-height: 220px; padding: 28px; border-radius: var(--size-border-radius); overflow: hidden; text-decoration: none; }
.lynx-banniere img { position: absolute; right: -10px; bottom: -30px; width: 280px; height: auto; transition: transform .3s; }
.lynx-banniere:hover img { transform: scale(1.04); }
.lynx-banniere-texte { position: relative; z-index: 1; max-width: 55%; display: flex; flex-direction: column; align-items: flex-start; gap: 6px; }
.lynx-banniere-texte small { text-transform: uppercase; letter-spacing: .12em; font-size: .75rem; font-weight: 700; }
.lynx-banniere-texte strong { font-size: 1.5rem; font-weight: 800; line-height: 1.15; }
.lynx-banniere-texte em { font-style: normal; font-size: .875rem; margin-bottom: 8px; }
.lynx-banniere-nuit { background: var(--lynx-nuit); color: #fff; }
.lynx-banniere-nuit small { color: var(--lynx-ambre); }
.lynx-banniere-ambre { background: linear-gradient(120deg, var(--lynx-ambre), #f5a54a); color: #fff; }
.lynx-banniere-ambre small { color: var(--lynx-nuit); }

.lynx-marques { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px 34px; margin-top: 40px; padding: 26px; border-top: 1px solid var(--color-theme-border); border-bottom: 1px solid var(--color-theme-border); }
.lynx-marques a { font-size: 1.25rem; font-weight: 800; color: #a3adbb; text-decoration: none; letter-spacing: .02em; text-transform: uppercase; }
.lynx-marques a:hover { color: var(--lynx-nuit); }

.lynx-presentation { display: flex; flex-wrap: wrap; gap: 20px; align-items: center; justify-content: space-between; margin: 36px 0 48px; padding: 28px; border-radius: var(--size-border-radius); background: var(--lynx-fond); }
.lynx-presentation > div { flex: 1 1 520px; }
.lynx-presentation h2 { font-size: 1.25rem; font-weight: 800; }
.lynx-presentation p { margin: 0; color: #3d4a5c; }
.lynx-btn-whatsapp { background-color: #1fa855 !important; border-color: #1fa855 !important; color: #fff !important; font-weight: 700; display: inline-flex; align-items: center; gap: 8px; }
.lynx-btn-whatsapp:hover { background-color: #178a45 !important; }

/* Pied de page ------------------------------------------------------------- */
.site-footer .footer-newsletter.dark { background-color: var(--lynx-nuit); color: #fff; }
.site-footer .footer-newsletter .entry-title { color: #fff; }
.site-footer .footer-newsletter .entry-description p { color: rgba(255, 255, 255, .75); }
.site-footer .widget-title { font-size: .9375rem; font-weight: 800; margin-bottom: 14px; }
.site-footer .widget .menu { list-style: none; padding: 0; margin: 0; }
.site-footer .widget .menu li { margin-bottom: 8px; font-size: .8125rem; }
.site-footer .widget .menu a { color: #3d4a5c; text-decoration: none; }
.site-footer .widget .menu a:hover { color: var(--lynx-ambre); }
.lynx-contact-ligne { display: flex; gap: 8px; color: #3d4a5c; }
.lynx-contact-ligne i { color: var(--lynx-ambre); }
.lynx-logotype { height: 52px; width: auto; }
.lynx-paiements { display: flex; flex-wrap: wrap; gap: 8px 18px; font-size: .75rem; font-weight: 600; color: #3d4a5c; }
.lynx-paiements i { color: var(--lynx-ambre); }

/* Pages intérieures ------------------------------------------------------- */
.lynx-page { padding: 24px 0 56px; }
.lynx-fil { font-size: .8125rem; color: var(--color-text-light); margin-bottom: 18px; }
.lynx-fil a { color: var(--color-text-light); text-decoration: none; }
.lynx-fil a:hover { color: var(--lynx-ambre); }
.lynx-titre-page { font-size: 1.75rem; font-weight: 800; margin-bottom: 6px; }
.lynx-sous-titre { color: var(--color-text-light); margin-bottom: 24px; }
.lynx-carte { border: 1px solid var(--color-theme-border); border-radius: var(--size-border-radius); padding: 20px; background: #fff; }
.lynx-note { font-size: .8125rem; color: var(--color-text-light); }
.lynx-encadre-ambre { border-left: 4px solid var(--lynx-ambre); background: #fff7ee; padding: 14px 16px; border-radius: 4px; font-size: .875rem; }

/* Liste de produits (boutique, rayon, recherche) --------------------------- */
.lynx-avant-liste { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 16px; padding-bottom: 12px; border-bottom: 1px solid var(--color-theme-border); }
.lynx-avant-liste .woocommerce-result-count { margin: 0; font-size: .875rem; color: var(--color-text-light); }
.lynx-tri { margin-left: auto; display: flex; align-items: center; gap: 8px; font-size: .8125rem; }
.lynx-tri select { width: auto; font-size: .8125rem; }
.lynx-bouton-filtres { border: 1px solid var(--color-theme-border); background: #fff; font-weight: 600; font-size: .8125rem; }
.lynx-widget { margin-bottom: 24px; }
.lynx-widget .widget-title { font-size: .9375rem; font-weight: 800; margin-bottom: 12px; padding-bottom: 8px; border-bottom: 1px solid var(--color-theme-border); }
.lynx-widget ul { list-style: none; padding: 0; margin: 0; }
.lynx-widget li { display: flex; justify-content: space-between; align-items: center; font-size: .8125rem; padding: 4px 0; }
.lynx-widget li a { color: var(--color-main-text); text-decoration: none; }
.lynx-widget li a:hover { color: var(--lynx-ambre); }
.lynx-widget li > span { color: var(--color-text-light); font-size: .75rem; }
.lynx-widget label { cursor: pointer; display: flex; gap: 8px; align-items: center; font-size: .8125rem; }
.lynx-widget input { accent-color: var(--lynx-ambre); }
.lynx-lien { background: none; border: 0; padding: 0; color: var(--lynx-ambre); font-weight: 600; font-size: .8125rem; text-decoration: underline; }
@media (max-width: 74.99rem) {
  .lynx-filtres { display: none; }
  .lynx-filtres.lynx-filtres-ouverts { display: block; order: 0; margin-bottom: 16px; }
  .lynx-tri span { display: none; }
}
.products.lynx-grille { padding: 0; }
.lynx-vide { text-align: center; padding: 40px 20px; }
.lynx-vide-icone { font-size: 3rem; color: #c4ccd6; }

/* Fiche produit -------------------------------------------------------------- */
.lynx-fiche { margin-bottom: 32px; }
.lynx-galerie { position: relative; border: 1px solid var(--color-theme-border); border-radius: var(--size-border-radius); padding: 24px; text-align: center; }
.lynx-galerie img { width: 100%; max-width: 480px; height: auto; }
.lynx-galerie .product-badges { position: absolute; top: 16px; left: 16px; }
.lynx-marque-fiche { font-size: .75rem; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; color: var(--lynx-ambre); margin-bottom: 6px; }
.klb-product-detail .product_title { font-size: 1.75rem; font-weight: 800; line-height: 1.2; margin-bottom: 12px; }
.lynx-prix-fiche { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; margin-bottom: 10px; }
.lynx-prix-fiche .price { font-size: 1.75rem; }
.lynx-economie { background: #fde8e8; color: var(--color-theme-danger); font-size: .75rem; font-weight: 700; padding: 4px 8px; border-radius: 4px; }
.lynx-offre-fiche { font-size: .8125rem; font-weight: 600; color: var(--color-theme-danger); margin: 0 0 10px; }
.lynx-dispo { font-weight: 700; font-size: .875rem; margin-bottom: 12px; }
.lynx-achat { display: flex; flex-direction: column; gap: 12px; margin: 18px 0; padding: 18px 0; border-top: 1px solid var(--color-theme-border); border-bottom: 1px solid var(--color-theme-border); }
.lynx-achat form.cart { display: flex; gap: 12px; flex-wrap: wrap; }
.lynx-achat .single_add_to_cart_button { flex: 1; min-height: 48px; font-size: 1rem; display: inline-flex; align-items: center; justify-content: center; gap: 8px; }
.lynx-quantite { display: inline-flex; align-items: center; border: 1px solid var(--color-theme-border); border-radius: 6px; overflow: hidden; height: 48px; }
.lynx-quantite .quantity-button { width: 40px; height: 100%; background: #f4f6f9; border: 0; color: var(--lynx-nuit); }
.lynx-quantite input { width: 48px; height: 100%; border: 0; text-align: center; font-weight: 700; -moz-appearance: textfield; }
.lynx-quantite input::-webkit-outer-spin-button, .lynx-quantite input::-webkit-inner-spin-button { -webkit-appearance: none; }
.lynx-quantite.petite { height: 38px; }
.lynx-quantite.petite .quantity-button { width: 32px; }
.lynx-quantite.petite input { width: 38px; }
.lynx-ajoute { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px; background: #e9f7ef; color: #146c3a; padding: 10px 14px; border-radius: 6px; font-size: .875rem; font-weight: 600; }
.lynx-ajoute a { color: #146c3a; }
.lynx-lien-fort { font-weight: 800; }
.lynx-btn-large { min-height: 48px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; width: 100%; font-size: 1rem; }
.lynx-atouts { list-style: none; padding: 0; margin: 0 0 16px; display: grid; gap: 8px; font-size: .875rem; }
.lynx-atouts i { color: var(--lynx-ambre); margin-right: 6px; }
.lynx-atouts a { color: var(--color-main-text); text-decoration: underline; }
.lynx-meta { display: flex; flex-wrap: wrap; gap: 6px 20px; font-size: .8125rem; color: var(--color-text-light); }
.lynx-meta a { color: var(--color-main-text); }
.lynx-onglets { row-gap: 20px; margin-bottom: 20px; }
.lynx-titre-section { font-size: 1.0625rem; font-weight: 800; margin-bottom: 12px; display: flex; align-items: center; gap: 10px; }
.lynx-caracteristiques { width: 100%; font-size: .875rem; }
.lynx-caracteristiques th, .lynx-caracteristiques td { padding: 8px 6px; border-bottom: 1px solid var(--color-theme-border); vertical-align: top; }
.lynx-caracteristiques th { width: 42%; color: var(--color-text-light); font-weight: 600; }
.lynx-proches { margin-top: 32px; }

/* Panier, commande, suivi --------------------------------------------------- */
.lynx-panier, .lynx-commande { row-gap: 20px; }
.lynx-lignes { padding: 4px 20px; }
.lynx-ligne { display: grid; grid-template-columns: 80px minmax(0, 1fr) auto auto auto; gap: 14px; align-items: center; padding: 14px 0; }
.lynx-ligne + .lynx-ligne { border-top: 1px solid var(--color-theme-border); }
.lynx-ligne-image img { width: 80px; height: 80px; object-fit: contain; }
.lynx-ligne-info { display: flex; flex-direction: column; gap: 2px; }
.lynx-ligne-nom { font-weight: 700; color: var(--color-main-text); text-decoration: none; }
.lynx-ligne-total { min-width: 110px; text-align: right; }
@media (max-width: 47.98rem) {
  .lynx-ligne { grid-template-columns: 64px minmax(0, 1fr) auto; grid-template-areas: "img info suppr" "img qte total"; row-gap: 8px; }
  .lynx-ligne-image { grid-area: img; } .lynx-ligne-image img { width: 64px; height: 64px; }
  .lynx-ligne-info { grid-area: info; } .lynx-ligne .lynx-quantite { grid-area: qte; justify-self: start; }
  .lynx-ligne-total { grid-area: total; min-width: 0; } .lynx-ligne .lynx-retirer { grid-area: suppr; }
}
.lynx-continuer { margin-top: 12px; }
.lynx-totaux, .lynx-recap { position: sticky; top: 90px; }
.lynx-total-ligne { display: flex; justify-content: space-between; gap: 12px; padding: 8px 0; font-size: .9375rem; }
.lynx-total-final { border-top: 2px solid var(--lynx-nuit); margin-top: 6px; padding-top: 12px; font-size: 1.125rem; }
.lynx-total-final strong { font-size: 1.375rem; }
.lynx-totaux .btn, .lynx-recap .btn { margin-top: 14px; }
.lynx-rassurant { margin-top: 12px; display: flex; gap: 8px; }
.lynx-rassurant i { color: var(--lynx-ambre); font-size: 1.125rem; }
.lynx-commande section.lynx-carte + section.lynx-carte { margin-top: 20px; }
.lynx-etape { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: 50%; background: var(--lynx-nuit); color: #fff; font-size: .8125rem; }
.lynx-champs { display: grid; gap: 4px 16px; grid-template-columns: 1fr; }
@media (min-width: 48rem) { .lynx-champs { grid-template-columns: 1fr 1fr; } }
.lynx-commande .form-row, .lynx-suivi .form-row { display: flex; flex-direction: column; gap: 6px; margin-bottom: 12px; }
.lynx-commande label, .lynx-suivi label { font-size: .8125rem; font-weight: 600; }
.lynx-commande .form-control[aria-invalid="true"] { border-color: var(--color-theme-danger); }
.lynx-indicatif { display: flex; }
.lynx-indicatif > span { display: inline-flex; align-items: center; padding: 0 10px; background: #f4f6f9; border: 1px solid var(--color-form-border); border-right: 0; border-radius: 6px 0 0 6px; font-weight: 700; font-size: .875rem; }
.lynx-indicatif input { border-radius: 0 6px 6px 0 !important; }
.lynx-erreur { color: var(--color-theme-danger); font-size: .75rem; font-weight: 600; }
.lynx-choix { display: grid; gap: 10px; margin-bottom: 14px; }
.lynx-option { display: flex !important; align-items: flex-start; gap: 12px; padding: 12px 14px; border: 1px solid var(--color-theme-border); border-radius: 6px; cursor: pointer; font-weight: 500 !important; }
.lynx-option.choisi { border-color: var(--lynx-ambre); background: #fff7ee; box-shadow: 0 0 0 1px var(--lynx-ambre); }
.lynx-option input { margin-top: 4px; accent-color: var(--lynx-ambre); }
.lynx-option strong { display: block; font-size: .9375rem; }
.lynx-option small { color: var(--color-text-light); }
.lynx-recap-lignes { list-style: none; padding: 0; margin: 0 0 10px; }
.lynx-recap-lignes li { display: flex; align-items: center; gap: 10px; padding: 8px 0; border-bottom: 1px dashed var(--color-theme-border); font-size: .875rem; }
.lynx-recap-lignes li img { width: 44px; height: 44px; object-fit: contain; }
.lynx-recap-lignes li span { flex: 1; }
.lynx-recap-lignes small { color: var(--color-text-light); }
.lynx-cgv { display: flex !important; align-items: center; gap: 8px; margin-top: 14px; font-weight: 500 !important; }
.lynx-cgv.erreur { color: var(--color-theme-danger); }
.lynx-cgv input { accent-color: var(--lynx-ambre); }
.lynx-merci { display: grid; gap: 20px; max-width: 760px; }
.lynx-merci-tete { text-align: center; }
.lynx-merci-tete > i { font-size: 3.5rem; color: #1fa855; }
.lynx-numero { font-size: 1.25rem; letter-spacing: .04em; color: var(--lynx-ambre); }
.lynx-boutons { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; }
.lynx-suivi { max-width: 760px; }
.lynx-suivi-form { display: grid; gap: 4px 16px; grid-template-columns: 1fr; align-items: end; margin-bottom: 20px; }
@media (min-width: 48rem) { .lynx-suivi-form { grid-template-columns: 1fr 1fr auto; } .lynx-suivi-form .btn { margin-bottom: 12px; height: 42px; } }
.lynx-erreur-bloc { color: var(--color-theme-danger); font-weight: 600; }
.lynx-etapes { list-style: none; padding: 0; margin: 0 0 12px; display: grid; gap: 14px; }
.lynx-etapes li { display: flex; gap: 12px; align-items: flex-start; color: var(--color-text-light); }
.lynx-etapes li strong { display: block; }
.lynx-etapes li.faite, .lynx-etapes li.en-cours { color: var(--color-main-text); }
.lynx-pastille-etape { flex: 0 0 30px; height: 30px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; border: 2px solid #c4ccd6; font-weight: 700; font-size: .8125rem; }
.lynx-etapes li.faite .lynx-pastille-etape { background: #1fa855; border-color: #1fa855; color: #fff; }
.lynx-etapes li.en-cours .lynx-pastille-etape { background: var(--lynx-ambre); border-color: var(--lynx-ambre); color: #fff; }

/* Contact, textes ------------------------------------------------------------ */
.lynx-contact { row-gap: 20px; }
.lynx-contact-bloc { height: 100%; }
.lynx-contact-bloc > i { font-size: 2rem; color: var(--lynx-ambre); }
.lynx-tel { display: block; font-weight: 700; font-size: 1.0625rem; color: var(--color-main-text); text-decoration: none; }
.lynx-texte { max-width: 860px; }
.lynx-texte section { margin-top: 20px; }
.lynx-apropos-tete { display: flex; flex-wrap: wrap; gap: 24px; align-items: center; margin-bottom: 24px; }
.lynx-apropos-tete img { width: 200px; height: auto; }
.lynx-apropos-tete > div { flex: 1 1 360px; }
.lynx-apropos-rayons { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 12px; margin-bottom: 24px; }
.lynx-apropos-rayons a { display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 18px; border: 1px solid var(--color-theme-border); border-radius: var(--size-border-radius); color: var(--lynx-nuit); text-decoration: none; font-weight: 700; font-size: .875rem; }
.lynx-apropos-rayons a:hover { border-color: var(--lynx-ambre); }

/* Correctifs après capture n° 1 */
.site-header .site-brand img.lynx-logo, .site-offcanvas .site-brand img.lynx-logo { height: 60px; width: auto; }
.site-header .header-mobile .site-brand img.lynx-logo { height: 42px; }
.site-offcanvas .site-brand img.lynx-logo { height: 46px; }
.site-footer .site-brand img.lynx-logotype { height: 52px; width: auto; }
.site-header .header-top .lynx-haut-texte { padding-top: .75rem; padding-bottom: .75rem; }
.module-header .entry-title, .klb-custom-title .entry-title { font-weight: 800; }
.lynx-reassurance .klb-icon-box { padding: 14px 16px; min-height: 0; }
.lynx-reassurance .klb-icon-box .icon { margin: 0; }

/* Correctifs après capture n° 2 */
.lynx-diapo .banner-content { max-width: 58%; padding: 2.25rem 2.5rem; }
.lynx-diapo .entry-subtitle.style-3 { background: rgba(232, 131, 15, .16); color: var(--lynx-ambre); padding: 5px 12px; border-radius: 30px; font-size: .75rem; margin-bottom: 14px; }
.lynx-diapo.banner.large .entry-title { font-size: 2rem; font-weight: 500; margin-bottom: 12px; }
.lynx-diapo.banner.large .entry-title strong { font-size: 2.625rem; font-weight: 800; }
.lynx-diapo.banner.large .entry-description { font-size: 1rem; margin-bottom: 0; }
.lynx-diapo .entry-button { margin-top: 1.25rem; }
.lynx-diapo .entry-button .btn { white-space: nowrap; width: auto; height: auto; padding: 12px 24px; font-size: .875rem; }
.module-category-list.style-3 .category-image.lynx-rayon-icone { min-height: 0; width: 96px; height: 96px; margin: 6px auto 10px; background-color: #eef2f7; }
.module-category-list.style-3 .category-name { font-weight: 700; }
.lynx-reassurance .iconbox-module .icon { font-size: 2rem; max-width: 2.75rem; min-width: 2.75rem; color: var(--lynx-ambre); }
.lynx-reassurance .iconbox-module .content .entry-title { font-weight: 700; }
.lynx-reassurance + * { margin-top: 0; }

/* Correctifs après capture n° 3 */
.swiper-container.product-carousel.products { display: block; flex-flow: row nowrap; padding: 0; }
.lynx-diapo .entry-subtitle.style-3 { white-space: nowrap; }
@media (max-width: 47.98rem) {
  .lynx-diapo { flex-direction: column-reverse; justify-content: flex-end; min-height: 0; }
  .lynx-diapo::after { width: 220px; height: 220px; right: -60px; bottom: auto; top: -40px; }
  .lynx-diapo .banner-image { position: relative; width: 100%; height: auto; padding: 18px 0 0; }
  .lynx-diapo .banner-image img { max-width: 210px; }
  .lynx-diapo .banner-content { max-width: 100%; padding: .75rem 1.25rem 2.75rem; }
  .lynx-diapo.banner.large .entry-title { font-size: 1.375rem; }
  .lynx-diapo.banner.large .entry-title strong { font-size: 1.875rem; }
  .lynx-diapo.banner.large .entry-description { font-size: .875rem; }
  .lynx-diaporama .swiper-button-prev, .lynx-diaporama .swiper-button-next { display: none; }
  .lynx-banniere-cote { min-height: 150px; padding: 14px; }
  .lynx-banniere-cote img { width: 100px; right: -14px; bottom: -10px; }
  .lynx-cote-texte { max-width: 78%; }
  .lynx-cote-texte strong { font-size: .9375rem; }
  .lynx-cote-texte em { font-size: .75rem; }
  .lynx-reassurance .klb-icon-box { flex-direction: column; align-items: flex-start; gap: 6px; padding: 12px; }
  .lynx-reassurance .iconbox-module .icon { text-align: left; font-size: 1.625rem; }
  .lynx-reassurance .iconbox-module .content .entry-title { font-size: .8125rem; }
  .lynx-reassurance .iconbox-module .content p { font-size: .75rem; }
  .lynx-offres .product { padding: 12px; }
  .lynx-offres .thumbnail-wrapper { flex-basis: 32%; }
  .lynx-offres .content-wrapper { min-width: 0; }
  .lynx-offres .product-title { font-size: .875rem; }
  .lynx-offres .product-price-cart .price { font-size: 1.125rem; min-width: 0; }
  .lynx-offres .entry-title { font-size: 1.125rem; }
  .lynx-banniere { min-height: 170px; padding: 20px; }
  .lynx-banniere img { width: 170px; right: -30px; bottom: -20px; }
  .lynx-banniere-texte strong { font-size: 1.125rem; }
  .lynx-marques { gap: 8px 20px; padding: 18px 0; }
  .lynx-marques a { font-size: .9375rem; }
}
@media (max-width: 47.98rem) {
  .slider-module .lynx-diapo .banner-image { position: relative !important; inset: auto !important; }
  .lynx-offres .thumbnail-wrapper { flex-basis: 36%; }
}
@media (max-width: 63.98rem) {
  .products.lynx-grille .product { flex: 0 0 50%; max-width: 50%; }
}
.lynx-diapo .banner-image img { position: relative !important; top: auto !important; left: auto !important; height: auto !important; object-fit: contain !important; }
@media (max-width: 47.98rem) { .lynx-diapo .banner-image img { width: 210px !important; } }

/* Correctifs après le parcours d'essai */
.shop-content .shop-page-header { display: block; }
.lynx-quantite .quantity-button span { font-size: 1.25rem; font-weight: 700; line-height: 1; }
.lynx-widget li label { flex: 1; }
.lynx-widget li > span { padding-left: 8px; }
.lynx-quantite .quantity-button::before, .lynx-quantite .quantity-button::after { display: none !important; }
.lynx-bouton-filtres { color: var(--lynx-nuit) !important; background: #fff !important; border: 1px solid var(--color-theme-border) !important; height: 38px; padding: 0 14px; display: inline-flex; align-items: center; gap: 6px; font-size: .8125rem !important; }
@media (max-width: 47.98rem) {
  .product-price-cart .price { font-size: 1.0625rem; min-width: 0; padding-right: 6px; }
  .product-price-cart .add_to_cart_button { width: 2rem; height: 2rem; flex: 0 0 2rem; }
  .product .product-title { font-size: .8125rem; }
}

/* =============================================================================
   Mise en avant vidéosurveillance et réseau (demande LYNX HD) + pagination
   ========================================================================== */
.lynx-filtres .sidebar-inner { padding-right: 14px; }

/* Pagination */
.lynx-pagination { margin-top: 28px; display: flex; justify-content: center; }
.lynx-pagination .page-numbers { list-style: none; display: flex; flex-wrap: wrap; gap: 6px; padding: 0; margin: 0; align-items: center; }
.lynx-pagination a.page-numbers, .lynx-pagination span.page-numbers { display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-width: 40px; height: 40px; padding: 0 12px; border: 1px solid var(--color-theme-border); border-radius: 6px; font-weight: 700; font-size: .875rem; color: var(--lynx-nuit); text-decoration: none; background: #fff; }
.lynx-pagination a.page-numbers:hover { border-color: var(--lynx-ambre); color: var(--lynx-ambre); }
.lynx-pagination span.current { background: var(--lynx-nuit); border-color: var(--lynx-nuit); color: #fff; }
.lynx-pagination span.dots { border: 0; min-width: 20px; padding: 0; }
@media (max-width: 47.98rem) { .lynx-pagination .prev span, .lynx-pagination .next span { display: none; } }

/* Menu des rayons : étiquette « Spécialité » */
.departments-menu > li > a .lynx-label-vedette { margin-left: auto; font-size: .75rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; background: #fff1e0; color: var(--lynx-brun); padding: 2px 7px; border-radius: 10px; }
.site-header .header-nav .site-menu.primary > .menu > li > a { padding-left: .75rem; padding-right: .75rem; }

/* Rayons vedettes dans le bandeau des rayons */
.lynx-rayon-vedette .lynx-rayon-icone { background: var(--lynx-nuit) !important; color: #fff; box-shadow: 0 0 0 4px #fff, 0 0 0 6px var(--lynx-ambre); }
.lynx-rayon-vedette .category-name { color: var(--lynx-nuit); }

/* Vitrine d'un rayon mis en avant */
.lynx-vitrine { display: grid; grid-template-columns: 1fr; gap: 20px; margin-top: 40px; }
@media (min-width: 64rem) { .lynx-vitrine { grid-template-columns: 330px minmax(0, 1fr); } }
.lynx-vitrine-panneau { position: relative; overflow: hidden; border-radius: var(--size-border-radius); padding: 26px; color: #fff; display: flex; flex-direction: column; gap: 8px; }
.lynx-vitrine-nuit .lynx-vitrine-panneau { background: radial-gradient(circle at 90% 110%, #1f3d73 0%, var(--lynx-nuit) 60%); }
.lynx-vitrine-ambre .lynx-vitrine-panneau { background: linear-gradient(140deg, var(--lynx-ambre), #c96a05); }
.lynx-vitrine-panneau::after { content: ""; position: absolute; width: 220px; height: 220px; border-radius: 50%; right: -90px; top: -90px; background: rgba(255, 255, 255, .08); }
.lynx-vitrine-icone { display: inline-flex; width: 64px; height: 64px; align-items: center; justify-content: center; border-radius: 50%; background: rgba(255, 255, 255, .12); color: #fff; }
.lynx-vitrine-panneau small { text-transform: uppercase; letter-spacing: .12em; font-size: .75rem; font-weight: 700; color: var(--lynx-ambre); margin-top: 6px; }
.lynx-vitrine-ambre .lynx-vitrine-panneau small { color: var(--lynx-nuit); }
.lynx-vitrine-panneau h2 { color: #fff; font-size: 1.75rem; font-weight: 800; margin: 0 0 6px; }
.lynx-vitrine-panneau ul { list-style: none; padding: 0; margin: 0 0 12px; display: grid; gap: 8px; font-size: .875rem; }
.lynx-vitrine-panneau li i { color: var(--lynx-ambre); margin-right: 6px; }
.lynx-vitrine-ambre .lynx-vitrine-panneau li i { color: #fff; }
.lynx-vitrine-boutons { margin-top: auto; display: flex; flex-wrap: wrap; align-items: center; gap: 12px 18px; position: relative; z-index: 1; }
.lynx-btn-blanc { background: #fff !important; border-color: #fff !important; color: var(--lynx-nuit) !important; font-weight: 700; padding: 10px 20px !important; height: auto !important; }
.lynx-btn-blanc:hover { background: #fff1e0 !important; }
.lynx-vitrine-lien { color: #fff; font-weight: 700; font-size: .875rem; text-decoration: none; }
.lynx-vitrine-lien:hover { color: #fff; text-decoration: underline; }
.lynx-vitrine-produits { min-width: 0; border: 1px solid var(--color-theme-border); border-radius: var(--size-border-radius); padding: 8px; }

/* Page Installation */
.lynx-installation-tete { border-radius: var(--size-border-radius); padding: 34px; margin-bottom: 24px; color: #fff; background: radial-gradient(circle at 85% 30%, #1f3d73 0%, var(--lynx-nuit) 60%); }
.lynx-installation-tete small { text-transform: uppercase; letter-spacing: .12em; font-size: .75rem; font-weight: 700; color: var(--lynx-ambre); }
.lynx-installation-tete h1 { color: #fff; font-size: 2rem; font-weight: 800; max-width: 760px; margin: 8px 0 10px; }
.lynx-installation-tete p { color: rgba(255, 255, 255, .8); max-width: 680px; }
.lynx-pour-qui { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 14px; }
.lynx-pour-qui span { display: inline-flex; align-items: center; gap: 8px; background: rgba(255, 255, 255, .1); padding: 8px 14px; border-radius: 30px; font-size: .8125rem; font-weight: 600; }
.lynx-pour-qui i { color: var(--lynx-ambre); }
.lynx-services { row-gap: 20px; }
.lynx-service { height: 100%; scroll-margin-top: 110px; }
.lynx-service .lynx-vitrine-icone { background: #eef2f7; color: var(--lynx-nuit); }
.lynx-service h2 { font-size: 1.375rem; font-weight: 800; margin: 12px 0 6px; }
.lynx-service ul { list-style: none; padding: 0; margin: 12px 0; display: grid; gap: 8px; font-size: .875rem; }
.lynx-service li i { color: var(--lynx-ambre); margin-right: 6px; }
.lynx-etapes-installation { margin: 32px 0; }
.lynx-etapes-installation ol { list-style: none; padding: 0; margin: 0; display: grid; gap: 16px; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.lynx-etapes-installation li { border: 1px solid var(--color-theme-border); border-radius: var(--size-border-radius); padding: 18px; }
.lynx-etapes-installation li > span { display: inline-flex; width: 34px; height: 34px; border-radius: 50%; align-items: center; justify-content: center; background: var(--lynx-ambre); color: #fff; font-weight: 800; margin-bottom: 8px; }
.lynx-etapes-installation li strong { display: block; margin-bottom: 4px; }
.lynx-etapes-installation li p { margin: 0; font-size: .875rem; color: #3d4a5c; }
.lynx-devis { display: grid; gap: 20px; grid-template-columns: 1fr; border: 2px solid var(--lynx-ambre); }
@media (min-width: 64rem) { .lynx-devis { grid-template-columns: 300px minmax(0, 1fr); } }
.lynx-devis fieldset { border: 0; padding: 0; margin: 0 0 14px; }
.lynx-devis legend { font-size: .8125rem; font-weight: 700; margin-bottom: 8px; }
.lynx-devis .form-row { display: flex; flex-direction: column; gap: 6px; margin-bottom: 12px; }
.lynx-devis label { font-size: .8125rem; font-weight: 600; }
.lynx-pastilles-choix { display: flex; flex-wrap: wrap; gap: 8px; }
.lynx-pastilles-choix label { display: inline-flex; align-items: center; gap: 6px; padding: 8px 14px; border: 1px solid var(--color-theme-border); border-radius: 30px; cursor: pointer; font-weight: 600; }
.lynx-pastilles-choix label.choisi { border-color: var(--lynx-ambre); background: #fff7ee; color: var(--lynx-brun); }
.lynx-pastilles-choix input { accent-color: var(--lynx-ambre); }
.lynx-diapo .banner-content { flex: 0 0 56%; width: 56%; }
.lynx-diapo .banner-image { width: 44%; }
@media (max-width: 47.98rem) {
  .lynx-diapo .banner-content { flex: 1 1 auto; width: 100%; }
  .lynx-diapo .banner-image { width: 100%; }
  .module-category-list.style-3 .category-name { font-size: .75rem; hyphens: manual; overflow-wrap: break-word; }
  .lynx-banniere-cote img { width: 78px; opacity: .9; }
  .lynx-vitrine-panneau { padding: 20px; }
  .lynx-vitrine-panneau h2 { font-size: 1.375rem; }
}
.lynx-diapo .banner-content { position: relative; height: auto; }
.lynx-diapo .banner-content-wrapper { max-width: 100%; }

/* =============================================================================
   Pleine largeur (demande LYNX HD) : en-tête, menus et contenu occupent toute
   la largeur de l'écran ; les marges latérales s'adaptent à la taille d'écran,
   et le nombre de colonnes de produits augmente avec la largeur.
   ========================================================================== */
:root { --lynx-marge: clamp(14px, 2.6vw, 56px); --size-site-width: 100%; }
.container { max-width: 100% !important; width: 100%; padding-left: var(--lynx-marge) !important; padding-right: var(--lynx-marge) !important; }
html, body { overflow-x: clip; }
body { min-height: 100vh; display: flex; flex-direction: column; }
body > main.site-primary { flex: 1 0 auto; }

/* Grilles de produits : 2 colonnes (téléphone), 3, puis 4, 5 et 6 sur grands écrans. */
@media (min-width: 1400px) {
  .products.column-3.lynx-grille .product { flex: 0 0 25%; max-width: 25%; }
  .products.column-4.lynx-grille .product { flex: 0 0 20%; max-width: 20%; }
  .lynx-vitrine { grid-template-columns: 360px minmax(0, 1fr); }
  .lynx-haut-grille { grid-template-columns: minmax(0, 1fr) 360px; }
}
@media (min-width: 1900px) {
  .products.column-3.lynx-grille .product { flex: 0 0 16.6666%; max-width: 16.6666%; }
  .products.column-4.lynx-grille .product { flex: 0 0 14.2857%; max-width: 14.2857%; }
  .lynx-vitrine { grid-template-columns: 400px minmax(0, 1fr); }
  .lynx-haut-grille { grid-template-columns: minmax(0, 1fr) 420px; min-height: 470px; }
  .lynx-diapo { min-height: 470px; }
  .lynx-diapo .banner-image img { max-width: 500px; }
}

/* Corrections de débordements relevés par scripts/audit-responsive.mjs */
.product-content-fade { display: none !important; }
.module-header { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px 16px; }
.module-header .btn.link { white-space: nowrap; }
.lynx-prix-fiche .price { display: inline-flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; }
.mobile-bottom-menu-wrapper { box-sizing: border-box; width: 100%; max-width: 100%; }
img, svg { max-width: 100%; }

/* Seuil unique ordinateur / mobile : 1 200 px (75rem), comme l'en-tête Machic. */
.lynx-diapo .banner-image { left: auto; }
@media (min-width: 48rem) and (max-width: 74.99rem) {
  .lynx-diapo { min-height: 360px; }
  .lynx-diapo .banner-content { padding: 2rem; }
  .lynx-diapo.banner.large .entry-title { font-size: 1.625rem; }
  .lynx-diapo.banner.large .entry-title strong { font-size: 2.125rem; }
  .lynx-diapo .banner-image img { max-width: 300px; }
  .lynx-haut-cotes { grid-template-columns: 1fr 1fr; }
}
@media (min-width: 64rem) and (max-width: 74.99rem) {
  .lynx-haut-grille { grid-template-columns: 1fr; }
}
/* Très petits téléphones (≤ 374 px, ex. iPhone SE) */
@media (max-width: 374px) {
  .product-price-cart { flex-wrap: wrap; gap: 6px; }
  .product-price-cart .price { font-size: .9375rem; width: 100%; padding-right: 0; }
  .product-price-cart .add_to_cart_button { margin-left: 0; }
  .lynx-total-final strong { font-size: 1.125rem; }
  .lynx-recap-lignes li { font-size: .8125rem; }
  .lynx-recap-lignes li img { display: none; }
}
@media (max-width: 374px) {
  .products .product .price, .products .product .price ins, .products .product .price .amount { font-size: .875rem !important; }
  .products .product .price del, .products .product .price del .amount { font-size: .75rem !important; }
  .products.lynx-grille .product .product-wrapper, .product-carousel .product .product-wrapper { padding-left: 6px; padding-right: 6px; }
  .lynx-offres .product-content { flex-direction: column; align-items: stretch; }
  .lynx-offres .thumbnail-wrapper { flex-basis: auto; width: 55%; margin: 0 auto; }
}

/* Pages de lecture (texte, suivi, confirmation) : colonne centrée et lisible. */
.container.lynx-texte, .container.lynx-suivi, .container.lynx-merci { max-width: calc(880px + 2 * var(--lynx-marge)) !important; margin-left: auto; margin-right: auto; }

/* Ordinateurs 1 200 – 1 439 px : en-tête plus compact pour que le menu tienne sur une ligne. */
@media (min-width: 75rem) and (max-width: 89.99rem) {
  .site-header .header-nav .discount-products { display: none; }
  .site-header .header-nav .site-menu.primary > .menu > li > a { padding-left: .5rem; padding-right: .5rem; font-size: .875rem; }
  .site-departments.large .site-departments-wrapper > a { min-width: 260px; }
  .site-departments .departments-menu { min-width: 260px; }
  .lynx-haut-grille { margin-left: 280px; grid-template-columns: minmax(0, 1fr) 260px; }
  .lynx-diapo.banner.large .entry-title { font-size: 1.5rem; }
  .lynx-diapo.banner.large .entry-title strong { font-size: 2rem; }
  .lynx-diapo .banner-content { padding: 1.75rem 2rem; }
  .site-header .header-addons .header-addons-text .primary-text { font-size: .8125rem; }
}

/* =============================================================================
   ÉCHELLE DE TAILLES (UI/UX)
   - Base 16 px sur téléphone et ordinateur portable, qui grandit doucement sur
     grands écrans (17 px à 1 920 px, 18 px à 2 560 px) : comme Machic est en rem,
     textes, boutons et espacements restent proportionnés à la largeur.
   - Aucun texte sous 12 px ; texte courant 15–16 px ; zones tactiles ≥ 44 px.
   ========================================================================== */
html { font-size: clamp(16px, calc(0.25vw + 12.4px), 18px); }
:root {
  --lynx-espace-section: clamp(32px, 3vw, 64px);
  --lynx-titre-section: clamp(1.25rem, 0.9vw + 0.9rem, 1.625rem);
}
body { font-size: 1rem; line-height: 1.55; }

/* --- En-tête ordinateur : proportions --- */
@media (min-width: 75rem) {
  .site-header .header-top .site-menu .menu a, .site-header .header-top .lynx-haut-texte { font-size: .8125rem; }
  .site-header .header-main .header-wrapper { gap: clamp(20px, 3vw, 64px); }
  .site-header .header-main .column.right { flex: 1 1 auto; display: flex; align-items: center; justify-content: flex-end; gap: clamp(16px, 1.6vw, 36px); }
  .site-header .header-main .site-search { flex: 1 1 auto; max-width: 860px; margin-left: clamp(16px, 4vw, 120px); margin-right: auto; }
  .site-header .site-brand img.lynx-logo { height: clamp(56px, 3.6vw, 76px); }
  .site-header .header-addons-text .sub-text { font-size: .75rem; }
  .site-header .header-addons-text .primary-text { font-size: 1rem; font-weight: 700; }
  .site-header .header-addons-icon i { font-size: 1.625rem; }
  .site-header .header-nav .site-menu.primary > .menu > li > a { font-size: .9375rem; }
  .site-departments .departments-menu a { font-size: .9375rem; }
  .departments-menu > li > a { min-height: 46px; }
  .discount-products .discount-banner .main-text { font-size: .9375rem; }
  .discount-products .discount-banner .small-text { font-size: .75rem; }
}
.site-search .form-control, .site-search .form-select { font-size: .9375rem; }

/* --- Titres et textes de contenu --- */
.module-header .entry-title, .klb-custom-title .entry-title, .lynx-titre-section { font-size: var(--lynx-titre-section); }
.lynx-titre-page { font-size: clamp(1.625rem, 1.4vw + 1rem, 2.25rem); }
.lynx-sous-titre { font-size: 1rem; }
.lynx-accueil section > .site-module, .lynx-vitrine, .lynx-bannieres, .lynx-marques { margin-top: var(--lynx-espace-section); }
.lynx-note, .lynx-fil, .lynx-widget li, .lynx-widget label { font-size: .875rem; }
.lynx-widget .widget-title { font-size: 1rem; }

/* --- Cartes produit --- */
.product .product-title { font-size: .9375rem; line-height: 1.35; min-height: 4.05em; }
.product .product-message { font-size: .8125rem; }
.product-badges .badge { font-size: .75rem; }
.product-price-cart .add_to_cart_button { width: 2.5rem; height: 2.5rem; }

/* --- Grand bandeau : hauteur et titres proportionnés à l'écran --- */
@media (min-width: 75rem) {
  .lynx-haut-grille, .lynx-diapo { min-height: clamp(400px, 24vw, 600px); }
  .lynx-diapo.banner.large .entry-title { font-size: clamp(1.5rem, 1.2vw + .9rem, 2.375rem); }
  .lynx-diapo.banner.large .entry-title strong { font-size: clamp(2rem, 1.8vw + 1rem, 3.25rem); }
  .lynx-diapo.banner.large .entry-description { font-size: clamp(.9375rem, .4vw + .7rem, 1.25rem); }
  .lynx-diapo .banner-image img { max-width: min(560px, 100%); }
  .lynx-cote-texte strong { font-size: clamp(1.0625rem, .6vw + .7rem, 1.5rem); }
  .lynx-banniere-cote img { width: clamp(150px, 10vw, 220px); }
}

/* --- Téléphone : zones tactiles et lisibilité --- */
@media (max-width: 74.99rem) {
  .mobile-bottom-menu .mobile-menu ul li a { min-height: 56px; font-size: .75rem; }
  .mobile-bottom-menu .mobile-menu ul li a i { font-size: 1.375rem; }
  .header-mobile .header-addons a { min-width: 44px; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; }
  .lynx-reassurance .iconbox-module .content .entry-title { font-size: .875rem; }
  .lynx-reassurance .iconbox-module .content p { font-size: .8125rem; }
  .btn { min-height: 44px; }
  .lynx-tri select, .lynx-bouton-filtres { min-height: 44px; }
}
@media (max-width: 47.98rem) {
  .product .product-title { font-size: .875rem; }
  .product-price-cart .add_to_cart_button { width: 2.5rem; height: 2.5rem; flex: 0 0 2.5rem; }
  .lynx-diapo.banner.large .entry-title strong { font-size: 1.75rem; }
}

/* Largeur du menu des rayons, partagée avec le décalage du grand bandeau d'accueil. */
:root { --lynx-menu-rayons: clamp(290px, calc(15vw + 110px), 400px); }
@media (min-width: 75rem) {
  .site-departments.large .site-departments-wrapper > a,
  .site-departments .departments-menu { min-width: 0; width: var(--lynx-menu-rayons); }
  .lynx-haut-grille { margin-left: calc(var(--lynx-menu-rayons) + 20px); }
}

/* Menu des rayons : rayons vedettes en ambre ; étiquette « Spécialité » seulement si la place suffit. */
.departments-menu > li > a .menu-icon { flex: 0 0 26px; }
.departments-menu > li.lynx-vedette > a { font-weight: 700; color: var(--lynx-nuit); }
.departments-menu > li.lynx-vedette > a .menu-icon { color: var(--lynx-ambre); }
.departments-menu > li > a .lynx-label-vedette { white-space: nowrap; flex: 0 0 auto; }
@media (min-width: 75rem) and (max-width: 89.99rem) { .departments-menu > li > a .lynx-label-vedette { display: none; } }

/* Cartes produit sur téléphone et tablette : le prix tient à côté du bouton panier. */
@media (max-width: 74.99rem) {
  .products .product .product-price-cart .price,
  .products .product .product-price-cart .price ins,
  .products .product .product-price-cart .price .amount { font-size: 1.0625rem; }
  .products .product .product-price-cart .price del,
  .products .product .product-price-cart .price del .amount { font-size: .8125rem; }
  .products .product .product-price-cart .price { min-width: 0; padding-right: 6px; }
}
@media (max-width: 400px) {
  .products .product .product-price-cart .price,
  .products .product .product-price-cart .price ins,
  .products .product .product-price-cart .price .amount { font-size: 1rem; }
}
@media (max-width: 47.98rem) {
  .lynx-avant-liste { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
  .lynx-avant-liste .woocommerce-result-count { grid-column: 1 / -1; }
  .lynx-avant-liste .lynx-bouton-filtres { width: 100%; justify-content: center; }
  .lynx-tri { margin-left: 0; }
  .lynx-tri select { width: 100%; }
}

/* Accueil ordinateur : le menu des rayons (ouvert d'office) et le grand bandeau
   ont exactement la même hauteur, pour ne laisser aucun vide sous le menu à gauche.
   Les rubriques du menu se répartissent la hauteur disponible. */
:root { --lynx-haut-h: clamp(440px, calc(8vw + 340px), 600px); }
@media (min-width: 75rem) {
  .lynx-haut-grille { height: var(--lynx-haut-h); min-height: 0; }
  .lynx-haut-grille .lynx-diapo { min-height: 0; }
  .lynx-haut-cotes { grid-template-rows: 1fr 1fr; height: 100%; }
  .lynx-haut-cotes .lynx-banniere-cote { min-height: 0; }
  .lynx-rayons-page { display: block; position: absolute; top: 0; left: var(--lynx-marge); z-index: 1; }
  .lynx-rayons-page .departments-menu.show {
    display: flex; flex-direction: column;
    height: calc(var(--lynx-haut-h) + 20px); /* + marge haute du bandeau */
  }
  .lynx-rayons-page .departments-menu.show > li { flex: 1 1 0; display: flex; }
  .lynx-rayons-page .departments-menu.show > li > a { flex: 1; height: auto; min-height: 0; } /* Machic fixe 44 px */
}
/* Ordinateurs 1 200 – 1 799 px : bandeau plus étroit, le texte prend plus de place
   et l'illustration se réduit, pour que tout tienne dans la hauteur commune. */
@media (min-width: 75rem) and (max-width: 112.49rem) {
  .lynx-haut-grille .lynx-diapo .banner-content { max-width: 66%; padding: 1.5rem 1.75rem; }
  .lynx-haut-grille .lynx-diapo .banner-image { width: 40%; }
  .lynx-haut-grille .lynx-diapo .banner-image img { max-width: 230px; }
  .lynx-haut-grille .lynx-diapo::after { width: 260px; height: 260px; right: -70px; bottom: -90px; }
  .lynx-haut-grille .lynx-diapo.banner.large .entry-title { font-size: 1.375rem; }
  .lynx-haut-grille .lynx-diapo.banner.large .entry-title strong { font-size: 1.875rem; }
  .lynx-haut-grille .lynx-diapo.banner.large .entry-description { font-size: .9375rem; }
}

/* Menu latéral (téléphone) : trop étroit pour l'étiquette « Spécialité » ;
   les rayons vedettes restent en tête, en gras, avec leur icône ambre. */
.site-offcanvas .departments-menu > li > a .lynx-label-vedette { display: none; }

/* En-tête fixe au défilement --------------------------------------------------
   Ordinateur : la barre bleu nuit (rayons, navigation, offres) reste en haut.
   Téléphone et tablette : l'en-tête compact (menu, logo, panier) reste en haut. */
.site-header { position: sticky; top: 0; z-index: 900; background: #fff; }
@media (min-width: 75rem) {
  .site-header { top: calc(-1 * var(--lynx-entete-decalage, 160px)); }
}
.site-header .header-nav, .site-header .header-mobile { transition: box-shadow .2s; }
.site-header.sticky-header .header-nav,
.site-header.sticky-header .header-mobile { box-shadow: 0 6px 18px rgba(10, 26, 51, .14); }
/* Récapitulatifs collants (panier, commande) : sous la barre fixe. */
.lynx-totaux, .lynx-recap { top: 84px; }

/* =============================================================================
   ÉCRAN DE CHARGEMENT — 5 s au total (demande LYNX HD) : le logo officiel se
   construit, reste affiché, puis s'efface.
   0,00 s  les deux cercles arrivent de chaque côté et se rejoignent
   0,75 s  l'intersection brune apparaît
   1,05 s  l'objectif s'ouvre (léger rebond), la pupille fait la mise au point
   1,60 s  « LYNX » et « HD » glissent en place ; 1,75 s le reflet s'allume
   2,00 s  la signature apparaît
   3,40 s  l'anneau brille et l'objectif refait une mise au point (logo complet)
   4,50 s  fondu de sortie (0,5 s) — sans JavaScript, l'écran s'efface quand même.
   La barre ambre se remplit pendant tout le chargement.
   ========================================================================== */
.lynx-chargement {
  position: fixed; inset: 0; z-index: 5000;
  display: flex; align-items: center; justify-content: center;
  background: radial-gradient(circle at 50% 45%, #ffffff 0%, #ffffff 45%, #f3f5f9 100%);
  animation: lc-sortie .5s ease 4.5s forwards;
}
.lynx-chargement-logo { width: min(340px, 72vw); display: flex; flex-direction: column; align-items: center; animation: lc-respire .5s ease 4.5s forwards; }
.lynx-chargement svg { width: 100%; height: auto; overflow: visible; display: block; }
.lynx-chargement svg * { transform-box: fill-box; transform-origin: center; }

.lc-cercle-gauche { animation: lc-gauche 1.05s cubic-bezier(.2, .8, .2, 1) both; }
.lc-cercle-droit  { animation: lc-droit  1.05s cubic-bezier(.2, .8, .2, 1) both; }
.lc-intersection  { animation: lc-apparait .5s ease .75s both; }
.lc-objectif      { animation: lc-ouvre .8s cubic-bezier(.34, 1.56, .64, 1) 1.05s both; }
/* Deuxième animation en « forwards » seulement : elle ne doit pas s'appliquer avant de démarrer. */
.lc-anneau        { animation: lc-anneau 1.3s ease 1.05s both, lc-anneau 1s ease 3.4s forwards; }
.lc-iris          { animation: lc-iris .9s cubic-bezier(.34, 1.4, .64, 1) 1.3s both; }
.lc-pupille       { animation: lc-mise-au-point 1.05s cubic-bezier(.5, 0, .2, 1) 1.35s both, lc-mise-au-point .9s cubic-bezier(.5, 0, .2, 1) 3.4s forwards; }
.lc-reflet        { animation: lc-reflet .6s ease-out 1.75s both; }
.lc-lynx          { animation: lc-texte-gauche .75s cubic-bezier(.2, .8, .2, 1) 1.6s both; }
.lc-hd            { animation: lc-texte-droit  .75s cubic-bezier(.2, .8, .2, 1) 1.6s both; }
.lc-signature     { animation: lc-monte .75s ease 2s both; }
.lynx-chargement-barre {
  display: block; width: 46%; height: 3px; margin-top: 18px; border-radius: 3px;
  background: #e6eaf0; position: relative; overflow: hidden;
}
.lynx-chargement-barre::after {
  content: ""; position: absolute; inset: 0; background: var(--lynx-ambre);
  transform-origin: left; transform: scaleX(0); animation: lc-barre 4.2s cubic-bezier(.4, 0, .2, 1) .15s forwards;
}

@keyframes lc-gauche { from { opacity: 0; transform: translateX(-70px) scale(.7); } to { opacity: 1; transform: none; } }
@keyframes lc-droit  { from { opacity: 0; transform: translateX(70px) scale(.7); }  to { opacity: 1; transform: none; } }
@keyframes lc-apparait { from { opacity: 0; } to { opacity: 1; } }
@keyframes lc-ouvre { from { opacity: 0; transform: scale(0) rotate(-90deg); } to { opacity: 1; transform: none; } }
@keyframes lc-anneau { 0% { filter: brightness(1); } 55% { filter: brightness(1.35); } 100% { filter: brightness(1); } }
@keyframes lc-iris { from { transform: scale(.3); } to { transform: none; } }
@keyframes lc-mise-au-point { 0% { transform: scale(1.9); } 45% { transform: scale(.7); } 75% { transform: scale(1.12); } 100% { transform: none; } }
@keyframes lc-reflet { 0% { opacity: 0; transform: scale(0); } 60% { opacity: 1; transform: scale(1.5); } 100% { opacity: 1; transform: none; } }
@keyframes lc-texte-gauche { from { opacity: 0; transform: translateX(-16px); } to { opacity: 1; transform: none; } }
@keyframes lc-texte-droit  { from { opacity: 0; transform: translateX(16px); }  to { opacity: 1; transform: none; } }
@keyframes lc-monte { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
@keyframes lc-barre { to { transform: scaleX(1); } }
@keyframes lc-respire { to { transform: scale(1.06); } }
@keyframes lc-sortie { to { opacity: 0; visibility: hidden; pointer-events: none; } }

/* Déjà vu pendant cette visite, ou animations réduites demandées : pas d'écran de chargement. */
.lynx-sans-intro .lynx-chargement { display: none; }
@media (prefers-reduced-motion: reduce) { .lynx-chargement { display: none; } }

/* =============================================================================
   MARQUES PARTENAIRES — deux bandes de logos officiels qui défilent en continu,
   en sens opposés (vidéosurveillance et réseau sur la première).
   Boucle sans saut : la piste contient deux fois la liste et glisse de -50 %.
   Chaque carte fait au moins 11 % de la largeur d'écran : 10 cartes couvrent
   toujours l'écran, donc aucun vide n'apparaît en fin de boucle.
   ========================================================================== */
.lynx-marques-titre { margin-top: var(--lynx-espace-section); }
.lynx-marques-partenaires {
  display: grid; gap: 6px; margin-top: 4px;
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 7%, #000 93%, transparent 100%);
          mask-image: linear-gradient(90deg, transparent 0, #000 7%, #000 93%, transparent 100%);
}
.lynx-marques-bande { overflow: hidden; padding: 10px 0 12px; }
.lynx-marques-piste {
  display: flex; width: max-content; list-style: none; margin: 0; padding: 0;
  animation: lynx-defile var(--lynx-duree, 40s) linear infinite;
}
.lynx-vers-droite .lynx-marques-piste { animation-direction: reverse; }
.lynx-marques-bande:hover .lynx-marques-piste,
.lynx-marques-bande:focus-within .lynx-marques-piste { animation-play-state: paused; }
@keyframes lynx-defile { from { transform: translateX(0); } to { transform: translateX(-50%); } }

.lynx-marque-carte { flex: 0 0 auto; width: clamp(150px, 11vw, 240px); margin-right: clamp(14px, 1.3vw, 26px); }
.lynx-marque-carte a {
  display: flex; align-items: center; justify-content: center;
  height: clamp(78px, 5vw, 104px); padding: clamp(14px, 1vw, 20px) clamp(18px, 1.4vw, 28px);
  background: #fff; border: 1px solid var(--color-theme-border); border-radius: 14px;
  text-decoration: none; position: relative; overflow: hidden;
  transition: transform .3s cubic-bezier(.2, .8, .2, 1), box-shadow .3s, border-color .3s;
}
.lynx-marque-carte img { width: 100%; height: 100%; object-fit: contain; display: block; transition: transform .3s; }
/* Reflet lumineux qui traverse la carte au survol. */
.lynx-marque-carte a::after {
  content: ""; position: absolute; top: 0; bottom: 0; left: -60%; width: 40%;
  background: linear-gradient(100deg, transparent, rgba(255, 255, 255, .75), transparent);
  transform: skewX(-18deg); pointer-events: none;
}
.lynx-marque-carte a:hover, .lynx-marque-carte a:focus-visible {
  transform: translateY(-5px); border-color: var(--lynx-ambre);
  box-shadow: 0 12px 26px rgba(10, 26, 51, .12);
}
.lynx-marque-carte a:hover img { transform: scale(1.06); }
.lynx-marque-carte a:hover::after { animation: lynx-reflet-carte .7s ease; }
@keyframes lynx-reflet-carte { to { left: 130%; } }
.lynx-marque-texte { font-weight: 800; font-size: clamp(1.125rem, 1.2vw, 1.5rem); letter-spacing: .1em; text-transform: uppercase; color: var(--lynx-nuit); }

@media (max-width: 47.98rem) {
  .lynx-marque-carte { width: 132px; margin-right: 12px; }
  .lynx-marque-carte a { height: 68px; padding: 12px 16px; border-radius: 12px; }
  .lynx-marques-partenaires { gap: 0; }
}
/* Animations réduites : pas de défilement, logos en grille, sans la copie. */
@media (prefers-reduced-motion: reduce) {
  .lynx-marques-partenaires { -webkit-mask-image: none; mask-image: none; }
  .lynx-marques-piste { animation: none; flex-wrap: wrap; justify-content: center; width: auto; row-gap: 12px; }
  .lynx-marque-carte[aria-hidden="true"] { display: none; }
}

/* =============================================================================
   DEUX LARGEURS (demande LYNX HD) :
   - en-tête (bandeau du haut, logo + recherche, barre de navigation) : toute la largeur ;
   - contenu (sections, fiches, listes, bas de page) : 1 480 px au plus, centré, pour
     garder des cartes, des textes et des images à une taille confortable.
   Le haut de l'accueil (grand bandeau + réassurance) reste aligné sur l'en-tête,
   car le menu des rayons ouvert à sa gauche appartient à l'en-tête.
   Les pages de lecture gardent leur colonne de 880 px.
   ========================================================================== */
:root { --lynx-contenu-max: 1480px; }
.site-primary .container:not(.lynx-pleine-largeur):not(.lynx-texte):not(.lynx-suivi):not(.lynx-merci),
.site-footer .container {
  max-width: calc(var(--lynx-contenu-max) + 2 * var(--lynx-marge)) !important;
  margin-left: auto; margin-right: auto;
}
/* Plus de colonnes supplémentaires au-delà de 1 900 px : le contenu ne s'élargit plus. */
@media (min-width: 1900px) {
  .products.column-3.lynx-grille .product { flex: 0 0 25%; max-width: 25%; }
  .products.column-4.lynx-grille .product { flex: 0 0 20%; max-width: 20%; }
}

/* Carrousel sans rien à faire défiler (tous les éléments tiennent) : pas de flèches. */
.swiper-button-prev.swiper-button-lock, .swiper-button-next.swiper-button-lock { display: none !important; }

/* Fiche produit : les cartes « Dans le même rayon » gardent le style des cartes
   (Machic applique à toute la fiche le style de SES infos : cases grises et « | »). */
.single-product-wrapper .products .product-meta { display: block; font-weight: inherit; }
.single-product-wrapper .products .product-meta > *::after { content: none; }
.single-product-wrapper .products .product-message {
  display: block; margin-top: 0; padding: 0; background: none; border-radius: 0; font-size: .8125rem;
}
.single-product-wrapper .products .product-meta > .color-light { color: var(--color-text-light); }
.single-product-wrapper .products .product-meta > .color-success { color: var(--color-theme-success); }
.single-product-wrapper .products .product-meta > .color-warning { color: var(--color-theme-warning); }
.single-product-wrapper .products .product-meta > .color-danger { color: var(--color-theme-danger); }

/* Bannières de la caisse et offres (spec-promotions-et-bannieres.md) : gabarit LYNX HD,
   trois teintes de la charte, photo de produit dans un médaillon blanc rond. */
.lynx-diapo { position: relative; }
.lynx-diapo.lynx-teinte-ambre { background: var(--lynx-ambre); }
.lynx-diapo.lynx-teinte-ambre::after { background: var(--lynx-nuit); }
.lynx-diapo.lynx-teinte-ambre .entry-subtitle.style-3 { background: rgba(10, 26, 51, .18); color: var(--lynx-nuit); }
.lynx-diapo.lynx-teinte-ambre .entry-description p { color: rgba(255, 255, 255, .92); }
.lynx-diapo.lynx-teinte-clair { background: #eef2f7; color: var(--lynx-nuit); }
.lynx-diapo.lynx-teinte-clair .entry-title { color: var(--lynx-nuit); }
.lynx-diapo.lynx-teinte-clair .entry-description p { color: #4b5a70; }
.lynx-diapo.lynx-teinte-clair .swiper-button-prev, .lynx-diapo.lynx-teinte-clair .swiper-button-next { color: var(--lynx-nuit); }
.lynx-diapo .banner-image.lynx-medaillon img {
  width: min(72%, 340px) !important; max-width: none; aspect-ratio: 1; background: #fff; border-radius: 50%;
  padding: 7%; border: 5px solid rgba(255, 255, 255, .9); box-shadow: 0 18px 36px rgba(0, 0, 0, .28); filter: none;
}
.lynx-pastille {
  position: absolute; z-index: 3; display: flex; align-items: center; justify-content: center;
  width: 78px; height: 78px; border-radius: 50%; background: var(--lynx-ambre); color: #fff; border: 3px solid #fff;
  font-weight: 800; font-size: 1.125rem; box-shadow: 0 8px 20px rgba(0, 0, 0, .25);
}
.lynx-diapo .banner-image .lynx-pastille { top: 12%; right: 12%; }
.lynx-rebours-diapo { display: flex; align-items: center; gap: 8px; margin-top: 12px; font-size: .8125rem; font-weight: 700; }
.lynx-teinte-ambre .lynx-rebours-diapo, .lynx-teinte-nuit .lynx-rebours-diapo { color: #fff; }
.lynx-cote-nuit { background: radial-gradient(circle at 78% 40%, #1f3d73 0%, var(--lynx-nuit) 70%); color: #fff; }
.lynx-cote-nuit small { color: var(--lynx-ambre); }
.lynx-cote-texte .lynx-rebours { margin-top: 4px; }
.lynx-cote-texte .lynx-rebours span { padding: 2px 5px; }
.lynx-cote-texte .lynx-rebours strong { font-size: .75rem; }
.lynx-cote-texte .lynx-rebours small { font-size: .625rem; color: #fff; }
/* Encart avec photo : disque de la charte et médaillon blanc à droite. */
.lynx-cote-medaillon::before { content: ""; position: absolute; right: -40px; bottom: -60px; width: 190px; height: 190px; border-radius: 50%; background: var(--lynx-ambre); opacity: .9; }
.lynx-cote-medaillon.lynx-cote-ambre::before { background: var(--lynx-nuit); }
.lynx-banniere-cote.lynx-cote-medaillon img {
  right: 16px; bottom: auto; top: 50%; transform: translateY(-50%); width: 128px; aspect-ratio: 1; object-fit: contain;
  background: #fff; border-radius: 50%; padding: 12px; border: 4px solid rgba(255, 255, 255, .9); box-shadow: 0 12px 24px rgba(0, 0, 0, .22);
}
.lynx-banniere-cote.lynx-cote-medaillon:hover img { transform: translateY(-50%) scale(1.05); }
.lynx-banniere-cote .lynx-pastille { width: 54px; height: 54px; font-size: .875rem; right: 8px; top: 10px; }
@media (max-width: 47.98rem) {
  .lynx-diapo .banner-image.lynx-medaillon img { width: 170px !important; }
  .lynx-diapo .banner-image .lynx-pastille { top: 6px; right: calc(50% - 120px); width: 62px; height: 62px; font-size: .9375rem; }
  .lynx-banniere-cote.lynx-cote-medaillon img { width: 84px; padding: 8px; right: 8px; }
  .lynx-cote-medaillon::before { width: 130px; height: 130px; right: -40px; bottom: -50px; }
}

.lynx-pastille { white-space: nowrap; }
.lynx-banniere-cote .lynx-pastille { width: 58px; height: 58px; font-size: .8125rem; }
.lynx-cote-medaillon .lynx-cote-texte { max-width: calc(100% - 150px); }
.lynx-cote-medaillon .lynx-cote-texte strong { font-size: 1.0625rem; }
.lynx-cote-fin { font-weight: 700; }
@media (max-width: 47.98rem) { .lynx-cote-medaillon .lynx-cote-texte { max-width: calc(100% - 96px); } }
.lynx-rebours-diapo > span:first-child { white-space: nowrap; }
.lynx-teinte-nuit .lynx-rebours-diapo .lynx-rebours span { background: rgba(255, 255, 255, .14); }
.lynx-teinte-ambre .lynx-rebours-diapo .lynx-rebours span { background: var(--lynx-nuit); }
/* Téléphone : encarts côte à côte, étroits ; le médaillon passe au-dessus du texte. */
@media (max-width: 47.98rem) {
  .lynx-banniere-cote.lynx-cote-medaillon { flex-direction: column; align-items: flex-start; justify-content: flex-start; padding-top: 96px; }
  .lynx-banniere-cote.lynx-cote-medaillon img { top: 12px; right: auto; left: 14px; transform: none; width: 76px; padding: 7px; border-width: 3px; }
  .lynx-banniere-cote.lynx-cote-medaillon:hover img { transform: scale(1.05); }
  .lynx-cote-medaillon .lynx-cote-texte { max-width: 100%; }
  .lynx-cote-medaillon .lynx-cote-texte strong { font-size: .9375rem; }
  .lynx-banniere-cote .lynx-pastille { width: 48px; height: 48px; font-size: .6875rem; right: 8px; top: 8px; }
  .lynx-cote-medaillon::before { width: 120px; height: 120px; right: -36px; bottom: -44px; }
}

/* Blocs « à la une » du milieu de l'accueil : plus hauts que les encarts du haut. */
.lynx-banniere-cote.lynx-bloc-accueil { min-height: 220px; height: 100%; padding: 28px; }
.lynx-bloc-accueil .lynx-cote-texte strong { font-size: 1.375rem; }
.lynx-bloc-accueil .lynx-cote-texte em { font-size: 1rem; font-weight: 700; }
@media (max-width: 47.98rem) {
  /* Les blocs gardent la photo à droite (les petits encarts, eux, l'empilent). */
  .lynx-banniere-cote.lynx-bloc-accueil { flex-direction: row; align-items: center; justify-content: flex-start; min-height: 170px; padding: 20px; }
  .lynx-banniere-cote.lynx-bloc-accueil img { top: 50%; left: auto; right: 12px; transform: translateY(-50%); width: 104px; padding: 9px; }
  .lynx-banniere-cote.lynx-bloc-accueil:hover img { transform: translateY(-50%) scale(1.05); }
  .lynx-bloc-accueil .lynx-cote-texte { max-width: calc(100% - 118px); }
  .lynx-bloc-accueil .lynx-cote-texte strong { font-size: 1.0625rem; }
}

/* Textes jamais coupés au milieu d'un mot ; le titre des diapos profite de toute la place libre. */
.lynx-mot { white-space: nowrap; color: inherit !important; font-size: inherit !important; font-weight: inherit !important; }
@media (min-width: 48rem) { .lynx-haut-grille .lynx-diapo.banner .banner-content { padding-right: .5rem; } }

/* Tailles réglées dans la caisse (écran Bannières du site). En em : suivent la taille de chaque écran. */
.lynx-t { display: block; white-space: pre-line; }
.lynx-t-grand { font-size: 1em; }
.lynx-t-moyen { font-size: .82em; }
.lynx-t-petit { font-size: .66em; }
.lynx-banniere-cote .lynx-t-grand { font-size: 1.2em; }
.lynx-banniere-cote .lynx-t-moyen { font-size: 1em; }
.lynx-banniere-cote .lynx-t-petit { font-size: .88em; }
.lynx-tx-petit { font-size: .85em !important; }
