/**
 * Somef — fondation visuelle (fusion + Classic).
 * Couleurs :
 * - Rouge (--color-primary / dark / light) : accentuation (CTA, promos, drapeaux « chauds », pastilles remise).
 * - #2b3c45 (--color-accent-blue) : hiérarchie texte & navigation — pas de pastilles promo remplies en bleu foncé (erreur corrigée).
 * Rayons : plafond visuel ≤14px (--radius-max) ; pas d’hyper-pilules 50rem.
 * Logo : themes/somefchild/assets/img/logo.png → /img/
 */
:root {
  /* === Fusion (noms « design system ») === */
  --color-primary: #d33343;
  --color-primary-dark: #b02a38;
  --color-primary-light: #e85d6d;
  --color-text: #252122;
  --color-text-light: #666666;
  --color-text-lighter: #999999;
  --color-text-inverse: #ffffff;
  --color-bg: #ffffff;
  --color-bg-light: #f8f9fa;
  --color-bg-dark: #252122;
  /* Hiérarchie sombre / distinction typographique (≠ accentuation rouge) */
  --color-accent-blue: #2b3c45;
  --color-border: #e0e0e0;
  --footer-link-on-dark: #d4d4d4;
  --footer-link-hover: #f0b4bb;
  --spacing-sm: 8px;
  --spacing-md: 16px;
  --spacing-lg: 24px;
  --spacing-xl: 32px;
  --spacing-xxl: 48px;
  --border-radius-sm: 4px;
  /* Arrondi global : coins modérés ; plafond 12–14px pour capsules / grands éléments */
  --border-radius-md: 8px;
  --radius-max: 14px;
  /* Capsules / badges : rayon borné (évite 50rem = coins visuellement énormes sur grands blocs) */
  --radius-pill: var(--radius-max);
  --badge-font-size: 0.6875rem;
  --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.06);
  --transition-base: 0.2s ease;

  /* === Alias thème enfant (rétrocompat) === */
  --somef-primary: var(--color-primary);
  --somef-primary-dark: var(--color-primary-dark);
  --somef-primary-light: #ff8a95;
  --somef-text: var(--color-text);
  --somef-text-inverse: var(--color-text-inverse);
  --somef-accent-blue: var(--color-accent-blue);
  --somef-bg-light: var(--color-bg-light);
  --somef-radius: var(--border-radius-md);
  --somef-shadow-sm: var(--shadow-sm);
  --somef-shadow-md: 0 4px 14px rgba(37, 33, 34, 0.1);
  --somef-transition: var(--transition-base);
}

/* --- Header --- */
#header .header-nav {
  background: var(--color-bg-dark);
  color: var(--color-text-inverse);
  border-bottom: 3px solid var(--color-primary);
  box-shadow: var(--somef-shadow-sm);
}

#header .header-nav a,
#header .header-nav .material-icons {
  color: rgba(255, 255, 255, 0.92) !important;
  transition: color var(--somef-transition), opacity var(--somef-transition);
}

#header .header-nav a:hover {
  color: var(--somef-primary-light) !important;
}

#header .header-nav a:focus-visible {
  outline: 2px solid var(--somef-primary-light);
  outline-offset: 2px;
}

#header .header-top {
  background: var(--color-bg-light);
  border-bottom: 1px solid rgba(37, 33, 34, 0.08);
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
  transition: box-shadow var(--somef-transition);
}

/* Menu Classic = ul#top-menu (pas .menu) */
#header .header-top #top-menu > li > a,
#header .header-top .top-menu > li > a {
  color: var(--color-accent-blue);
  font-weight: 600;
  letter-spacing: 0.02em;
  padding: 0.5rem 0.75rem;
  border-radius: var(--somef-radius);
  transition: color var(--somef-transition), background var(--somef-transition);
}

#header .header-top #top-menu > li > a:hover,
#header .header-top .top-menu > li > a:hover {
  color: var(--color-primary);
  background: rgba(211, 51, 67, 0.06);
}

#header .header-top .popover.sub-menu {
  border: 1px solid var(--color-border);
  border-radius: var(--somef-radius);
  box-shadow: var(--somef-shadow-md);
}

#header .header-top .popover.sub-menu .dropdown-item {
  color: var(--color-text);
}

#header .header-top .popover.sub-menu .dropdown-item:hover {
  color: var(--color-primary);
  background: var(--color-bg-light);
}

/* Logo : zone cliquable + taille réelle (config SHOP_LOGO ~142×39) */
#header #_desktop_logo {
  display: flex;
  align-items: center;
}

#header #_desktop_logo a,
#header #_desktop_logo h1 {
  display: inline-flex;
  align-items: center;
  padding: 0.25rem 0.35rem;
  border-radius: var(--somef-radius);
  transition: background var(--somef-transition), box-shadow var(--somef-transition);
}

#header #_desktop_logo a:hover,
#header #_desktop_logo h1:hover {
  background: rgba(211, 51, 67, 0.06);
}

/* Logo source : somef-static-modernized/img/somef-logo-1616763755.jpg (89×115, PNG en .jpg) */
#header #_desktop_logo img,
#header .logo img {
  max-height: 52px;
  width: auto;
  height: auto;
  display: block;
  image-rendering: -webkit-optimize-contrast;
}

#header #_mobile_logo img {
  max-height: 44px;
}

/* --- Footer --- */
#footer {
  background: var(--color-bg-dark);
  color: rgba(255, 255, 255, 0.9);
  border-top: 4px solid var(--color-primary);
  box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.06);
}

#footer a,
#footer .h1,
#footer .h2,
#footer .h3 {
  color: var(--footer-link-on-dark);
  transition: color var(--somef-transition);
}

#footer a:hover {
  color: var(--footer-link-hover);
}

#footer .block-contact,
#footer .block_newsletter {
  border-radius: var(--somef-radius);
}

/* Newsletter (ps_emailsubscription) : une couche sur fond #252122 — corporate, WCAG AA */
#footer .block_newsletter {
  margin-top: var(--spacing-md);
  margin-bottom: var(--spacing-md);
  padding: var(--spacing-lg) var(--spacing-md);
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.1);
}

#footer .block_newsletter #block-newsletter-label {
  color: rgba(255, 255, 255, 0.94);
  font-weight: 600;
  letter-spacing: 0.02em;
}

#footer .block_newsletter .input-wrapper input[type="email"] {
  background: rgba(0, 0, 0, 0.25);
  border: 1px solid rgba(255, 255, 255, 0.2);
  color: var(--color-text-inverse);
  border-radius: var(--somef-radius);
}

#footer .block_newsletter .input-wrapper input[type="email"]::placeholder {
  color: rgba(255, 255, 255, 0.65);
}

#footer .block_newsletter .input-wrapper input[type="email"]:focus {
  outline: none;
  border-color: var(--color-primary-light);
  box-shadow: 0 0 0 2px rgba(211, 51, 67, 0.35);
}

#footer .block_newsletter .btn-primary {
  border-radius: var(--somef-radius);
}

#footer .block_newsletter p:not(.alert) {
  color: rgba(255, 255, 255, 0.78);
  font-size: 0.875rem;
}

/* --- Boutons primaires (alignement marque) --- */
.btn-primary {
  background-color: var(--somef-primary);
  border-color: var(--somef-primary-dark);
}

.btn-primary:hover,
.btn-primary:focus {
  background-color: var(--somef-primary-dark);
  border-color: var(--somef-primary-dark);
}

/* --- Cartes produit (réduction effet « plaquette démo ») --- */
.product-miniature {
  border-radius: var(--somef-radius);
  transition: box-shadow var(--somef-transition), transform var(--somef-transition);
  border: 1px solid rgba(37, 33, 34, 0.06);
}

.product-miniature:hover {
  box-shadow: var(--somef-shadow-md);
  transform: translateY(-2px);
}

.product-miniature .thumbnail-container {
  position: relative;
  border-radius: var(--somef-radius) var(--somef-radius) 0 0;
  overflow: hidden;
}

/* --- Typo & liens --- */
body#index,
body {
  color: var(--color-text);
}

a {
  color: var(--somef-primary);
}

a:hover {
  color: var(--somef-primary-dark);
}

.product-title a,
.h1 a,
.h2 a,
.h3 a {
  color: var(--somef-accent-blue);
}

.product-title a:hover {
  color: var(--somef-primary);
}

/* --- Accueil --- */
#index .featured-products,
#index .block-category {
  background: var(--color-bg-light);
  padding-top: 1.75rem;
  padding-bottom: 1.75rem;
}

#index .products-section-title {
  color: var(--somef-accent-blue);
  font-weight: 700;
  letter-spacing: 0.03em;
}

/* ========== Accueil : « héro » + contenu ========== */
/* Bandeau réassurance sous le menu (displayNavFullWidth) — première lecture visuelle */
#index #block-reassurance {
  background: linear-gradient(180deg, var(--color-bg-light) 0%, var(--color-bg) 100%);
  border-bottom: 1px solid var(--color-border);
  padding: var(--spacing-lg) 0;
  margin-bottom: 0;
}

#index #block-reassurance ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--spacing-lg);
  list-style: none;
  margin: 0;
  padding: 0;
}

#index #block-reassurance .block-reassurance-item {
  display: flex;
  align-items: center;
  gap: var(--spacing-md);
  max-width: 280px;
}

#index #block-reassurance .block-reassurance-item img {
  opacity: 0.9;
}

#index #block-reassurance .h6 {
  color: var(--color-text);
  font-weight: 600;
  margin: 0;
  line-height: 1.35;
}

/* Zone contenu accueil : respiration + premier plan */
#index #content.page-home {
  padding-top: var(--spacing-lg);
  padding-bottom: var(--spacing-xxl);
}

#index #custom-text {
  max-width: 920px;
  margin: 0 auto var(--spacing-lg);
  padding: var(--spacing-lg) var(--spacing-md);
  color: var(--color-text);
  font-size: 1.05rem;
  line-height: 1.65;
  border-left: 4px solid var(--color-primary);
  background: var(--color-bg-light);
  border-radius: 0 var(--somef-radius) var(--somef-radius) 0;
}

#index #custom-text p:last-child {
  margin-bottom: 0;
}

/* Sections produits accueil (phares, nouveautés, etc.) */
#index section.featured-products,
#index .products,
#index section[data-type="product_list"] {
  margin-bottom: var(--spacing-lg);
}

#index .featured-products .all-product-link {
  color: var(--color-accent-blue);
  font-weight: 600;
}

#index .featured-products .all-product-link:hover {
  color: var(--color-primary);
}

/* Recherche header */
#header .header-top .search-widget form input[type="text"],
#header .header-top .search-widget form input[type="search"] {
  border-radius: var(--somef-radius);
  border: 1px solid var(--color-border);
}

#header .header-top .search-widget form button[type="submit"] {
  border-radius: 0 var(--somef-radius) var(--somef-radius) 0;
}

/* Mobile : icône menu + barre */
#header .header-nav .mobile .material-icons {
  color: rgba(255, 255, 255, 0.95);
}

#header #mobile_top_menu_wrapper {
  background: var(--color-bg);
  border-top: 1px solid var(--color-border);
}

/* ========== Footer complet ========== */
#footer > .container:first-of-type {
  padding-top: var(--spacing-lg);
  padding-bottom: var(--spacing-md);
}

#footer .footer-container {
  padding-top: var(--spacing-lg);
  padding-bottom: var(--spacing-md);
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}

#footer .footer-container .links .h3,
#footer .footer-container .links .title .h3 {
  color: rgba(255, 255, 255, 0.96);
  font-size: 0.95rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  margin-bottom: var(--spacing-md);
}

#footer .footer-container .links ul.collapse li a,
#footer .footer-container .links li a {
  color: var(--footer-link-on-dark);
  font-size: 0.9rem;
  text-decoration: none;
  padding: 0.2rem 0;
  display: inline-block;
}

#footer .footer-container .links ul.collapse li a:hover,
#footer .footer-container .links li a:hover {
  color: var(--footer-link-hover);
}

#footer .footer-container .links .navbar-toggler .material-icons {
  color: rgba(255, 255, 255, 0.75);
}

/* Contact + réseaux dans le footer */
#footer .block-contact,
#footer .block-social {
  color: rgba(255, 255, 255, 0.88);
}

#footer .block-social a {
  opacity: 0.9;
}

#footer .block-social a:hover {
  opacity: 1;
  color: var(--footer-link-hover);
}

/* Copyright */
#footer .footer-container .text-sm-center {
  margin-top: var(--spacing-md);
  padding-top: var(--spacing-md);
  border-top: 1px solid rgba(255, 255, 255, 0.1);
}

#footer .footer-container .text-sm-center,
#footer .footer-container .text-sm-center a {
  color: rgba(255, 255, 255, 0.55);
  font-size: 0.8125rem;
}

#footer .footer-container .text-sm-center a:hover {
  color: rgba(255, 255, 255, 0.85);
}

#footer .somef-footer-copyright {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 0.35rem 0.6rem;
}

#footer .somef-footer-copyright__brand {
  font-weight: 600;
  text-decoration: none;
}

@media (max-width: 767.98px) {
  #footer .footer-container > .row {
    row-gap: 0.25rem;
  }

  #footer .footer-container .links .wrapper,
  #footer .block-contact,
  #footer .block_newsletter,
  #footer #block_myaccount_infos {
    width: 100%;
    max-width: 100%;
    flex: 0 0 100%;
  }

  #footer .footer-container .links .title .navbar-toggler {
    width: 100%;
    justify-content: space-between;
    padding: 0.65rem 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  }

  #footer .footer-container .links ul.collapse {
    padding-bottom: 0.5rem;
  }

  #footer .block_newsletter {
    margin-left: 0;
    margin-right: 0;
  }

  #footer .block-social ul {
    justify-content: center;
    flex-wrap: wrap;
    gap: 0.5rem;
  }

  #footer .somef-footer-copyright {
    font-size: 0.8125rem;
    padding-top: 0.5rem;
  }
}

@media (min-width: 576px) and (max-width: 991.98px) {
  #footer .footer-container > .row > [class*="col-"] {
    flex: 0 0 50%;
    max-width: 50%;
  }
}

/* Réassurance en pied (displayFooterAfter) : plus sobre */
#footer #block-reassurance {
  padding: var(--spacing-md) 0 0;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}

#footer #block-reassurance .block-reassurance-item .h6 {
  color: rgba(255, 255, 255, 0.8);
}

/* ========== Fil d’Ariane (FO) ========== */
#wrapper .breadcrumb {
  padding: var(--spacing-md) 0;
  margin-bottom: var(--spacing-md);
  font-size: 0.875rem;
  border-bottom: 1px solid var(--color-border);
}

#wrapper .breadcrumb ol {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.5rem;
}

#wrapper .breadcrumb li {
  display: inline-flex;
  align-items: center;
  color: var(--color-text-light);
}

#wrapper .breadcrumb li a {
  color: var(--color-text-light);
  text-decoration: none;
  transition: color var(--somef-transition);
}

#wrapper .breadcrumb li a:hover {
  color: var(--color-primary);
}

#wrapper .breadcrumb li:not(:last-child)::after {
  content: "/";
  margin-left: 0.5rem;
  color: var(--color-text-lighter);
  font-weight: 400;
  pointer-events: none;
}

/* ========== Listings catalogue (catégorie, recherche, marque, promos…) ========== */
body#category #main,
body#search #main,
body#manufacturer #main,
body#new-products #main,
body#prices-drop #main,
body#best-sales #main,
body#supplier #main {
  padding-top: var(--spacing-sm);
  padding-bottom: var(--spacing-xl);
}

body#category .block-category.card {
  border-radius: var(--somef-radius);
  border: 1px solid rgba(37, 33, 34, 0.08);
  box-shadow: var(--somef-shadow-sm);
}

/* Titres listings sans bloc catégorie (recherche, promos…) */
body#search #js-product-list-header .h2,
body#manufacturer #js-product-list-header .h2,
body#new-products #js-product-list-header .h2,
body#prices-drop #js-product-list-header .h2,
body#best-sales #js-product-list-header .h2,
body#supplier #js-product-list-header .h2 {
  color: var(--color-accent-blue);
  font-weight: 700;
  letter-spacing: 0.02em;
  margin-bottom: var(--spacing-md);
}

body#category .block-category .h1 {
  color: var(--color-accent-blue);
  font-weight: 700;
  letter-spacing: 0.02em;
}

body#category .block-category #category-description {
  color: var(--color-text-light);
  line-height: 1.6;
}

body#category .block-category .category-cover img {
  border-radius: var(--somef-radius);
  border: 1px solid var(--color-border);
}

/* Sous-catégories */
#subcategories.card {
  border-radius: var(--somef-radius);
  border: 1px solid rgba(37, 33, 34, 0.08);
  margin-bottom: var(--spacing-lg);
}

#subcategories .subcategory-heading {
  color: var(--color-accent-blue);
  font-size: 1.1rem;
  font-weight: 700;
}

/* Barre tri / compteur */
.products-selection {
  margin-bottom: var(--spacing-md);
  padding: var(--spacing-md) 0;
  border-bottom: 1px solid var(--color-border);
}

.products-selection .total-products p {
  margin: 0;
  color: var(--color-text-light);
  font-size: 0.9rem;
}

.products-selection .sort-by-row select,
.products-selection .sort-by-row .bootstrap-select > .dropdown-toggle {
  border-radius: var(--somef-radius);
  border-color: var(--color-border);
}

/* Facettes (colonne gauche) */
#search_filters {
  border: 1px solid rgba(37, 33, 34, 0.08);
  border-radius: var(--somef-radius);
  padding: var(--spacing-md);
  background: var(--color-bg);
  box-shadow: var(--somef-shadow-sm);
}

#search_filters .h6 {
  color: var(--color-accent-blue);
  font-weight: 700;
  letter-spacing: 0.06em;
}

#search_filters .facet .collapse li label {
  color: var(--color-text);
}

/* Pagination listing */
.pagination .page-link {
  border-radius: var(--somef-radius);
  color: var(--color-accent-blue);
}

.pagination .page-item.active .page-link {
  background-color: var(--color-primary);
  border-color: var(--color-primary-dark);
}

/* ========== Fiche produit ========== */
body#product #main {
  padding-bottom: var(--spacing-xl);
}

body#product .product-container {
  padding-top: var(--spacing-md);
}

body#product .product-container > .col-md-6:first-child .page-content {
  border-radius: var(--somef-radius);
  border: 1px solid rgba(37, 33, 34, 0.06);
  padding: var(--spacing-md);
  background: var(--color-bg);
}

body#product .product-container .h1 {
  color: var(--color-accent-blue);
  font-weight: 700;
  letter-spacing: 0.02em;
}

body#product .product-prices .current-price-value,
body#product .product-price .current-price {
  color: var(--color-primary);
  font-weight: 700;
}

body#product .product-prices .regular-price {
  color: var(--color-text-light);
  text-decoration: line-through;
  font-size: 0.95em;
}

body#product .product-add-to-cart .btn-primary {
  min-height: 2.75rem;
  font-weight: 600;
  letter-spacing: 0.02em;
}

body#product .product-quantity .qty {
  border-radius: var(--somef-radius);
  border-color: var(--color-border);
}

body#product .tabs .nav-tabs .nav-link {
  color: var(--color-text-light);
  font-weight: 600;
  border-radius: var(--somef-radius) var(--somef-radius) 0 0;
}

body#product .tabs .nav-tabs .nav-link.active {
  color: var(--color-accent-blue);
  border-bottom-color: var(--color-primary);
}

/* ========== Panier ========== */
body#cart .cart-container.card {
  border-radius: var(--somef-radius);
  border: 1px solid rgba(37, 33, 34, 0.08);
  box-shadow: var(--somef-shadow-sm);
  overflow: hidden;
}

body#cart .cart-container .h1 {
  color: var(--color-accent-blue);
  font-weight: 700;
}

body#cart .cart-summary.card {
  border-radius: var(--somef-radius);
  border: 1px solid rgba(37, 33, 34, 0.08);
  box-shadow: var(--somef-shadow-md);
}

body#cart .cart-summary .card-block {
  border-bottom: 1px solid var(--color-border);
}

body#cart a.label {
  color: var(--color-accent-blue);
  font-weight: 600;
  margin-top: var(--spacing-md);
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
}

body#cart a.label:hover {
  color: var(--color-primary);
}

/* ========== Tunnel de commande (page_name checkout) ========== */
body#checkout #content {
  padding-top: var(--spacing-md);
  padding-bottom: var(--spacing-xl);
}

body#checkout .checkout-step {
  border: 1px solid rgba(37, 33, 34, 0.08);
  border-radius: var(--somef-radius);
  margin-bottom: var(--spacing-md);
  padding: 0;
  background: var(--color-bg);
  box-shadow: var(--somef-shadow-sm);
  overflow: hidden;
}

body#checkout .checkout-step.-current {
  border-color: rgba(211, 51, 67, 0.35);
  box-shadow: 0 0 0 1px rgba(211, 51, 67, 0.12), var(--somef-shadow-sm);
}

body#checkout .checkout-step .step-title {
  background: var(--color-bg-light);
  border-bottom: 1px solid var(--color-border);
  padding: var(--spacing-md);
  margin: 0;
  color: var(--color-accent-blue);
  font-weight: 700;
}

body#checkout .checkout-step.-current .step-title {
  border-left: 4px solid var(--color-primary);
}

body#checkout .checkout-step .step-title .done {
  color: var(--color-primary-dark);
}

body#checkout .checkout-step .content {
  padding: var(--spacing-lg) var(--spacing-md);
}

body#checkout #js-checkout-summary.card {
  border-radius: var(--somef-radius);
  border: 1px solid rgba(37, 33, 34, 0.08);
  box-shadow: var(--somef-shadow-md);
}

body#checkout .cart-summary-line .label,
body#checkout .cart-summary-line .value {
  color: var(--color-text);
}

body#checkout .cart-summary-products .product-name a {
  color: var(--color-accent-blue);
}

body#checkout .cart-summary-products .product-name a:hover {
  color: var(--color-primary);
}

/* Réassurance à droite du tunnel */
body#checkout .cart-grid-right #block-reassurance {
  margin-top: var(--spacing-md);
  padding: var(--spacing-md);
  background: var(--color-bg-light);
  border-radius: var(--somef-radius);
  border: 1px solid var(--color-border);
}

/* ========== Confirmation de commande ========== */
body#order-confirmation #main {
  padding-bottom: var(--spacing-xl);
}

body#order-confirmation .card {
  border-radius: var(--somef-radius);
  border: 1px solid rgba(37, 33, 34, 0.08);
  box-shadow: var(--somef-shadow-sm);
}

/* =============================================================================
   Atomique — badges, drapeaux, titres de blocs, sections, cartes, listings
   ============================================================================= */

/* --- Cartes & séparateurs (FO) --- */
#wrapper .card {
  border-color: rgba(37, 33, 34, 0.08);
  border-radius: var(--somef-radius);
  overflow: hidden;
}

#wrapper .card .card-block:first-child {
  border-radius: var(--somef-radius) var(--somef-radius) 0 0;
}

#wrapper hr.separator {
  border: 0;
  border-top: 1px solid var(--color-border);
  margin: var(--spacing-md) 0;
  opacity: 1;
}

/* --- Boutons secondaires / tertiaires --- */
.btn-secondary,
.btn-tertiary {
  border-radius: var(--somef-radius);
  transition: border-color var(--somef-transition), color var(--somef-transition), background var(--somef-transition);
}

.btn-secondary {
  color: var(--color-accent-blue);
  border-color: var(--color-border);
  background: var(--color-bg);
}

.btn-secondary:hover,
.btn-secondary:focus {
  border-color: var(--color-primary);
  color: var(--color-primary);
  background: rgba(211, 51, 67, 0.04);
}

.btn-tertiary {
  color: var(--color-text-light);
  border-color: transparent;
}

.btn-tertiary:hover {
  color: var(--color-primary);
}

/* --- Alertes --- */
#wrapper .alert {
  border-radius: var(--border-radius-md);
  border-width: 1px;
}

#wrapper .alert-success {
  border-color: rgba(43, 60, 69, 0.28);
  background: rgba(43, 60, 69, 0.07);
  color: var(--color-text);
}

#wrapper .alert-danger {
  border-color: rgba(211, 51, 67, 0.35);
  background: rgba(211, 51, 67, 0.06);
}

/* --- Titres de sections & hiérarchie de blocs --- */
#wrapper .products-section-title,
#wrapper #products > h2,
#wrapper .page-header h1,
#wrapper .page-header .h1 {
  color: var(--color-accent-blue);
  font-weight: 700;
  letter-spacing: 0.02em;
}

#wrapper .products-section-title {
  font-size: 1.35rem;
  margin-bottom: var(--spacing-md);
  padding-bottom: 0.35rem;
  border-bottom: 2px solid rgba(43, 60, 69, 0.12);
}

#wrapper .h6.text-uppercase,
#wrapper p.h6.text-uppercase {
  letter-spacing: 0.07em;
  color: var(--color-accent-blue);
  font-weight: 700;
}

/* --- Drapeaux produit (fiche + miniatures) : pilules --- */
ul.product-flags {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  align-items: center;
}

/* Drapeaux en overlay sur la vignette (fin du bloc .thumbnail-container dans le tpl Classic) */
.product-miniature .thumbnail-container > ul.product-flags {
  position: absolute;
  top: 0.5rem;
  left: 0.5rem;
  right: 0.5rem;
  z-index: 2;
  justify-content: flex-start;
  pointer-events: none;
}

.product-miniature .thumbnail-container > ul.product-flags li {
  pointer-events: auto;
}

.product-miniature .thumbnail-top {
  position: relative;
}

li.product-flag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.3rem 0.6rem;
  font-size: var(--badge-font-size);
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  line-height: 1.2;
  border-radius: var(--radius-pill);
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12);
}

/* Types de drapeaux (classes = type PS) */
li.product-flag.discount,
li.product-flag.on-sale {
  background: var(--color-primary);
  color: var(--color-text-inverse);
}

/* Pastilles accent = famille rouge (fond sombre #2b3c45 réservé au texte / nav, pas aux badges promo) */
li.product-flag.new {
  background: rgba(211, 51, 67, 0.14);
  color: var(--color-primary-dark);
  border: 1px solid rgba(176, 42, 56, 0.35);
  box-shadow: none;
}

/* Gamme antibactérienne — pas de pastille « Nouveau » (choix métier migration) */
body#category.category-id-284 li.product-flag.new,
body#category.category-id-285 li.product-flag.new,
body#category.category-id-286 li.product-flag.new,
body#category.category-id-287 li.product-flag.new {
  display: none !important;
}

li.product-flag.pack {
  background: var(--color-primary-dark);
  color: var(--color-text-inverse);
  border: 1px solid rgba(0, 0, 0, 0.06);
}

li.product-flag.out_of_stock,
li.product-flag.unavailable {
  background: var(--color-text-light);
  color: var(--color-text-inverse);
}

/* Méta canal : neutre (pas pastille bleu nuit ni rouge promo) */
li.product-flag.online_only {
  background: var(--color-bg-light);
  color: var(--color-text);
  border: 1px solid var(--color-border);
  box-shadow: none;
}

/* --- Badges remise listing (miniature) --- */
.discount-product.discount-percentage,
.discount-product.discount-amount {
  display: inline-flex;
  align-items: center;
  margin-left: 0.35rem;
  padding: 0.2rem 0.45rem;
  font-size: var(--badge-font-size);
  font-weight: 700;
  letter-spacing: 0.04em;
  border-radius: var(--radius-pill);
  background: var(--color-primary);
  color: var(--color-text-inverse);
  vertical-align: middle;
}

.product-price-and-shipping .price {
  color: var(--color-text);
  font-weight: 700;
}

.product-miniature .product-price-and-shipping .has-discount .price {
  color: var(--color-primary);
}

/* --- Quick view (miniature) --- */
.highlighted-informations .quick-view {
  border-radius: var(--border-radius-sm);
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--color-accent-blue);
  transition: color var(--somef-transition), background var(--somef-transition);
}

.highlighted-informations .quick-view:hover {
  color: var(--color-primary);
}

/* --- Filtres actifs (puces) --- */
.active_filters {
  margin-bottom: var(--spacing-md);
}

.active_filters .active-filter-title,
.active_filters .h6.active-filter-title {
  font-size: 0.75rem;
  letter-spacing: 0.08em;
  color: var(--color-text-light);
  margin-bottom: 0.5rem;
}

.active_filters ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
}

.active_filters .filter-block {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.4rem 0.65rem;
  font-size: 0.8125rem;
  color: var(--color-text);
  background: var(--color-bg-light);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-pill);
}

.active_filters .filter-block a {
  color: var(--color-text-light);
  display: inline-flex;
  align-items: center;
  margin-left: 0.15rem;
}

.active_filters .filter-block a:hover {
  color: var(--color-primary);
}

/* --- Facettes : titre + option active --- */
#search_filters .facet {
  margin-bottom: var(--spacing-md);
  padding-bottom: var(--spacing-md);
  border-bottom: 1px solid var(--color-border);
}

#search_filters .facet:last-child {
  border-bottom: 0;
  margin-bottom: 0;
  padding-bottom: 0;
}

#search_filters .facet .facet-title {
  font-size: 0.78rem;
  letter-spacing: 0.06em;
  margin-bottom: 0.65rem;
}

#search_filters .facet-label {
  border-radius: var(--border-radius-sm);
  padding: 0.2rem 0.15rem;
  transition: background var(--somef-transition);
}

#search_filters .facet-label.active {
  background: rgba(211, 51, 67, 0.08);
  font-weight: 600;
}

#search_filters .facet-label .magnitude {
  color: var(--color-text-lighter);
  font-weight: 400;
}

#search_filters .facet-label .color {
  border-radius: var(--border-radius-sm);
  border: 1px solid rgba(0, 0, 0, 0.12);
}

/* --- Pagination : arrondi groupé --- */
.pagination .page-item:first-child .page-link {
  border-top-left-radius: var(--somef-radius);
  border-bottom-left-radius: var(--somef-radius);
}

.pagination .page-item:last-child .page-link {
  border-top-right-radius: var(--somef-radius);
  border-bottom-right-radius: var(--somef-radius);
}

/* --- Fiche produit : remises (bloc prix), labels, données --- */
body#product .product-price .discount.discount-percentage,
body#product .product-price .discount.discount-amount,
body#product .product-discount .discount {
  display: inline-flex;
  align-items: center;
  margin-top: 0.35rem;
  padding: 0.3rem 0.65rem;
  font-size: var(--badge-font-size);
  font-weight: 700;
  letter-spacing: 0.04em;
  border-radius: var(--radius-pill);
  background: var(--color-primary);
  color: var(--color-text-inverse);
}

body#product .product-price .discount {
  margin-left: 0;
}

body#product .product-manufacturer .manufacturer-logo,
body#product .product-manufacturer img {
  border-radius: var(--border-radius-sm);
  border: 1px solid var(--color-border);
  padding: 0.25rem;
  background: var(--color-bg);
}

body#product .product-reference .label,
body#product .product-quantities .label,
body#product .product-features .label,
body#product .product-manufacturer .label {
  color: var(--color-text-light);
  font-size: 0.8125rem;
  font-weight: 600;
  margin-right: 0.35rem;
}

body#product .product-features .h6 {
  color: var(--color-accent-blue);
  font-weight: 700;
  letter-spacing: 0.05em;
  margin-bottom: var(--spacing-md);
}

body#product .product-features dl.data-sheet {
  margin: 0;
  border: 1px solid var(--color-border);
  border-radius: var(--somef-radius);
  overflow: hidden;
}

body#product .product-features dl.data-sheet .name {
  background: var(--color-bg-light);
  color: var(--color-text-light);
  font-size: 0.8125rem;
  font-weight: 600;
  padding: 0.6rem 0.75rem 0.25rem;
  margin: 0;
}

body#product .product-features dl.data-sheet .value {
  margin: 0;
  padding: 0 0.75rem 0.65rem;
  border-bottom: 1px solid var(--color-border);
  font-size: 0.9rem;
}

body#product .product-features dl.data-sheet .value:last-of-type {
  border-bottom: 0;
  padding-bottom: 0.75rem;
}

body#product .tabs .tab-content {
  padding: var(--spacing-lg) var(--spacing-md);
  border: 1px solid var(--color-border);
  border-top: 0;
  border-radius: 0 0 var(--somef-radius) var(--somef-radius);
  background: var(--color-bg);
}

body#product .tabs .nav-tabs {
  border-bottom-color: var(--color-border);
}

/* --- Panier : ligne produit, remises, attributs --- */
body#cart .product-line-grid {
  padding: var(--spacing-md) 0;
  border-bottom: 1px solid var(--color-border);
}

body#cart .product-line-grid:last-child {
  border-bottom: 0;
}

body#cart .product-line-info .discount {
  display: inline-flex;
  padding: 0.2rem 0.45rem;
  font-size: var(--badge-font-size);
  font-weight: 700;
  border-radius: var(--radius-pill);
  background: var(--color-primary);
  color: var(--color-text-inverse);
  margin-right: 0.35rem;
}

body#cart .product-line-info .label {
  color: var(--color-text-light);
  font-weight: 600;
  font-size: 0.8125rem;
}

body#cart .product-line-info .value {
  color: var(--color-text);
}

body#cart .product-line-info.product-price .price {
  color: var(--color-primary);
  font-weight: 700;
}

/* --- Tunnel : pastille numéro d’étape --- */
body#checkout .checkout-step .step-number {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.75rem;
  height: 1.75rem;
  margin-right: 0.45rem;
  padding: 0 0.35rem;
  font-size: 0.8rem;
  font-weight: 700;
  line-height: 1;
  border-radius: var(--radius-pill);
  background: var(--color-bg-light);
  color: var(--color-accent-blue);
  border: 1px solid var(--color-border);
}

body#checkout .checkout-step.-current .step-number {
  background: var(--color-primary);
  color: var(--color-text-inverse);
  border-color: var(--color-primary-dark);
}

body#checkout .checkout-step.-complete .step-number {
  background: var(--color-primary-dark);
  color: var(--color-text-inverse);
  border-color: transparent;
}

body#checkout .checkout-step .step-title .step-edit {
  font-size: 0.8125rem;
  font-weight: 500;
}

body#checkout .card-block .cart-summary-line.cart-total {
  font-weight: 700;
  font-size: 1.05rem;
  color: var(--color-accent-blue);
}

body#checkout .card-block .cart-summary-line.cart-total .value {
  color: var(--color-primary);
}

/* --- Sous-catégories : vignettes --- */
#subcategories .subcategory-image a.img img {
  border-radius: var(--somef-radius);
  border: 1px solid var(--color-border);
  transition: box-shadow var(--somef-transition);
}

#subcategories .subcategory-image a.img .somef-subcategory-thumb--placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 120px;
  width: 100%;
  max-width: 280px;
  margin: 0 auto;
  border-radius: var(--somef-radius);
  border: 1px dashed var(--color-border);
  background: linear-gradient(145deg, rgba(37, 33, 34, 0.04), rgba(37, 33, 34, 0.09));
  color: var(--color-accent-blue);
  font-weight: 700;
  font-size: 2rem;
  line-height: 1;
  transition: box-shadow var(--somef-transition), border-color var(--somef-transition);
}

#subcategories .subcategory-image a.img:hover .somef-subcategory-thumb--placeholder {
  box-shadow: var(--somef-shadow-md);
  border-color: rgba(37, 33, 34, 0.18);
}

#subcategories .subcategory-image a.img:hover img {
  box-shadow: var(--somef-shadow-md);
}

#subcategories .subcategories-list a {
  color: var(--color-accent-blue);
  font-weight: 600;
  font-size: 0.9rem;
}

#subcategories .subcategories-list a:hover {
  color: var(--color-primary);
}

/* --- Bootstrap .badge si présent --- */
#wrapper .badge {
  border-radius: var(--radius-pill);
  font-weight: 600;
  letter-spacing: 0.03em;
  padding: 0.35em 0.65em;
}

#wrapper .badge-secondary {
  background: var(--color-text-light);
  color: var(--color-text-inverse);
}

#wrapper .badge-danger,
#wrapper .badge-primary {
  background: var(--color-primary);
  color: var(--color-text-inverse);
}

/* --- Description produit : sections import FO / mapping (aligné import_products_from_mapping_cli.php) --- */
body#product .product-description .somef-block,
body#product .tab-pane#description .somef-block {
  box-sizing: border-box;
  margin: 1.25rem 0;
  padding: 1rem 1.1rem;
  border: 1px solid var(--color-border);
  border-radius: var(--somef-radius);
  background: var(--color-bg);
}

body#product .product-description .somef-block__title,
body#product .tab-pane#description .somef-block__title {
  margin: 0 0 0.65rem;
  padding: 0;
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--color-accent-blue);
}

body#product .product-description .somef-block__label,
body#product .tab-pane#description .somef-block__label {
  display: block;
  margin: 0 0 0.35rem;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--color-text-light);
}

body#product .product-description .somef-block--highlights ul,
body#product .tab-pane#description .somef-block--highlights ul {
  margin: 0;
}

body#product .product-description .somef-block--video-link,
body#product .tab-pane#description .somef-block--video-link {
  display: block;
  max-width: 100%;
}

body#product .product-description .somef-block--video-link .somef-block__label + a,
body#product .tab-pane#description .somef-block--video-link .somef-block__label + a {
  display: inline-block;
  margin-top: 0.15rem;
  font-weight: 600;
  word-break: break-word;
}

body#product .product-description .somef-block--embed .somef-embed-ratio,
body#product .tab-pane#description .somef-block--embed .somef-embed-ratio {
  position: relative;
  width: 100%;
  max-width: 100%;
  padding-bottom: 56.25%;
  height: 0;
  overflow: hidden;
  border-radius: calc(var(--somef-radius) - 2px);
  background: #000;
}

body#product .product-description .somef-block--embed iframe,
body#product .tab-pane#description .somef-block--embed iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

/* Slot vidéo import (sous les onglets) : ratio 16:9 + largeur max lisible */
body#product .somef-product-vertical-after-tabs .somef-slot--import.somef-slot--elementor .somef-block--embed .somef-embed-ratio,
body#product .somef-product-vertical-after-tabs .somef-slot--import.somef-slot--elementor .somef-embed-ratio {
  position: relative;
  width: 100%;
  max-width: min(100%, 56.25rem);
  margin-left: auto;
  margin-right: auto;
  padding-bottom: 56.25%;
  height: 0;
  overflow: hidden;
  border-radius: calc(var(--somef-radius) - 2px);
  background: #000;
}

body#product .somef-product-vertical-after-tabs .somef-slot--import.somef-slot--elementor .somef-block--embed iframe,
body#product .somef-product-vertical-after-tabs .somef-slot--import.somef-slot--elementor .somef-embed-ratio iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

body#product .product-description .product-features-import.somef-block--specs-import,
body#product .tab-pane#description .product-features-import.somef-block--specs-import,
body#product #somef-tab-attributes .product-features-import.somef-block--specs-import,
body#product .somef-right-column-import-attributes .product-features-import.somef-block--specs-import {
  margin-top: 1.5rem;
}

body#product .product-description .product-features-import.somef-block--specs-import .somef-block__title,
body#product .tab-pane#description .product-features-import.somef-block--specs-import .somef-block__title,
body#product #somef-tab-attributes .product-features-import.somef-block--specs-import .somef-block__title,
body#product .somef-right-column-import-attributes .product-features-import.somef-block--specs-import .somef-block__title {
  margin-bottom: 0.75rem;
}

body#product .product-description .somef-fo-import,
body#product .tab-pane#description .somef-fo-import,
body#product #somef-tab-attributes .somef-fo-import,
body#product .somef-right-column-import-attributes .somef-fo-import {
  margin-bottom: 0.5rem;
}

/* --- Fiche produit : empilement vertical (somefchild product.tpl) type IQIT / sections --- */
body#product .somef-product-sections-wrap {
  margin-top: var(--spacing-lg, 1.75rem);
  margin-bottom: var(--spacing-xl, 2.5rem);
}

body#product .somef-product-section {
  scroll-margin-top: 5.5rem;
  margin-bottom: var(--spacing-lg, 1.75rem);
  padding: 0;
  border: 1px solid var(--color-border);
  border-radius: var(--somef-radius);
  background: var(--color-bg);
  overflow: hidden;
}

body#product .somef-section-title {
  margin: 0;
  padding: 0.85rem 1.1rem;
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--color-accent-blue);
  background: var(--color-bg-light);
  border-bottom: 1px solid var(--color-border);
}

body#product .somef-section-content {
  padding: 1rem 1.15rem 1.15rem;
}

body#product .somef-product-section--fiche .somef-fiche-stack .product-features {
  margin-top: 0;
}

/* Fiche technique + description longue en colonne droite */
body#product .somef-product-description-long {
  margin-top: 1rem;
  margin-bottom: 1rem;
  padding: 1rem 1.1rem;
  border: 1px solid var(--color-border);
  border-radius: var(--somef-radius);
  background: var(--color-bg);
  max-width: 100%;
  overflow-x: auto;
  overflow-wrap: anywhere;
  word-break: break-word;
}

/* Import FO : neutralise grilles Bootstrap imbriquées (col-md-6 dans col-md-6) */
body#product .somef-product-description-long [class*="col-md-"],
body#product .somef-product-description-long [class*="col-lg-"],
body#product .somef-product-description-long [class*="col-sm-"],
body#product .somef-product-description-long [class*="col-xs-"] {
  width: 100% !important;
  max-width: 100% !important;
  float: none !important;
  flex: 0 0 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

body#product .somef-product-description-long table {
  display: block;
  max-width: 100%;
  overflow-x: auto;
}

body#product .somef-product-description-long img,
body#product .somef-product-description-long iframe {
  max-width: 100%;
  height: auto;
}

body#product .somef-product-description-long a.somef-pdf-external-link {
  word-break: break-word;
}

body#product .somef-product-details-right {
  margin-top: 1rem;
  margin-bottom: 1.25rem;
  padding: 1rem 1.1rem;
  border: 1px solid var(--color-border);
  border-radius: var(--somef-radius);
  background: var(--color-bg-light);
}

body#product .somef-product-details-right .somef-fiche-stack {
  margin-bottom: 0;
}

body#product .somef-attachments-section__title {
  margin: 0 0 1rem;
  color: var(--color-accent-blue);
  font-weight: 700;
  letter-spacing: 0.04em;
}

body#product .somef-attachments-list {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

body#product .somef-attachment-card {
  display: flex;
  flex-direction: row;
  gap: 1rem;
  align-items: flex-start;
  padding: 1rem;
  border: 1px solid var(--color-border);
  border-radius: var(--somef-radius);
  background: var(--color-bg-light);
}

body#product .somef-attachment-card--pdf {
  flex-direction: column;
  align-items: stretch;
  border-color: var(--color-primary);
  border-left-width: 4px;
}

body#product .somef-attachment-card__preview {
  width: 100%;
  min-height: 12rem;
  max-height: 22rem;
  border: 1px solid var(--color-border);
  border-radius: var(--border-radius-sm);
  overflow: hidden;
  background: #fff;
}

body#product .somef-attachment-card__iframe {
  display: block;
  width: 100%;
  height: min(20rem, 50vh);
  border: 0;
}

body#product .somef-attachment-card__main {
  flex: 1 1 auto;
  min-width: 0;
}

body#product .somef-attachment-card__icon {
  flex: 0 0 auto;
  min-width: 2.75rem;
  height: 2.75rem;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  color: var(--color-text-inverse);
  background: var(--color-text-light);
  border-radius: var(--border-radius-sm);
}

body#product .somef-attachment-card__title {
  margin: 0 0 0.35rem;
  font-size: 1.05rem;
}

body#product .somef-attachment-card__desc {
  margin: 0 0 0.5rem;
  font-size: 0.9rem;
  color: var(--color-text-light);
}

body#product .somef-attachment-card__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 0.35rem;
}

body#product .somef-attachment-card__btn--solo {
  margin-top: 0;
}

@media (max-width: 575.98px) {
  body#product .somef-attachment-card__iframe {
    height: min(14rem, 40vh);
  }

  body#product .somef-attachment-card__preview {
    min-height: 10rem;
    max-height: 16rem;
  }
}

/* Galerie : une grande image sans bandeau de miniatures (cover conservée, zoom modal si présent) */
body#product .images-container .js-qv-mask,
body#product .images-container .scroll-box-arrows {
  display: none !important;
}

/* --- Fiche produit : onglets 3 colonnes logiques + zone verticale sous les onglets --- */
body#product .somef-product-tabs-wrap {
  margin-top: var(--spacing-lg, 1.75rem);
  margin-bottom: var(--spacing-lg, 1.75rem);
}

body#product .somef-tabs-three__nav {
  flex-wrap: nowrap;
  overflow-x: auto;
  border-bottom: 1px solid var(--color-border);
}

body#product .somef-tabs-three__nav .nav-link {
  color: var(--color-accent-blue);
  font-weight: 600;
  white-space: nowrap;
}

body#product .somef-tabs-three__nav button.nav-link {
  background: transparent;
  border: none;
  border-bottom: 2px solid transparent;
  border-radius: 0;
  padding: 0.5rem 1rem;
  font: inherit;
  line-height: 1.25;
  cursor: pointer;
}

body#product .somef-tabs-three__nav button.nav-link:focus {
  outline: 2px solid var(--color-primary);
  outline-offset: 2px;
}

body#product .somef-tabs-three__nav .nav-link.active {
  color: var(--color-primary);
  border-bottom-color: var(--color-primary);
}

body#product .somef-tabs-three__content {
  padding: var(--spacing-md, 1rem) 0 0;
}

body#product .somef-tabs-three__content .tab-pane {
  min-height: 2rem;
}

body#product .somef-tab-fiche-attachments {
  margin-top: var(--spacing-lg, 1.5rem);
  padding-top: var(--spacing-md, 1rem);
  border-top: 1px solid var(--color-border);
}

body#product .somef-product-vertical-after-tabs {
  margin-bottom: var(--spacing-xl, 2.5rem);
}

body#product .somef-product-vertical-after-tabs .somef-vertical-block {
  margin-bottom: var(--spacing-lg, 1.75rem);
}

body#product .somef-product-vertical-after-tabs .somef-vertical-block:last-child {
  margin-bottom: 0;
}

body#product .somef-product-extracontent-wrap {
  margin-bottom: var(--spacing-xl, 2.5rem);
}

/* Import FO : description longue en colonne droite en « carte » ; onglet Attributs sans fond gris */
body#product .somef-product-description-long .somef-block {
  box-sizing: border-box;
  margin: 1.25rem 0;
  padding: 1rem 1.1rem;
  border: 1px solid var(--color-border);
  border-radius: var(--somef-radius);
  background: var(--color-bg);
}

body#product #somef-tab-attributes .somef-block {
  box-sizing: border-box;
  margin: 1rem 0;
  padding: 0;
  border: none;
  border-radius: 0;
  background: transparent;
}

body#product #somef-tab-attributes .somef-specs-slot {
  background: transparent;
}

body#product #somef-tab-attributes .somef-fo-import {
  background: transparent !important;
}

body#product .somef-right-column-import-attributes {
  margin-top: 0.75rem;
  padding-top: 0.5rem;
  border-top: 1px solid var(--color-border);
}

/* --- Slots verticaux : import + hooks, flux, débordements --- */
body#product .somef-vertical-block__body--stack {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}

body#product .somef-slot--import img,
body#product .somef-slot--import iframe,
body#product .somef-slot--import video {
  max-width: 100%;
  height: auto;
}

body#product .somef-slot--import .somef-embed-ratio,
body#product .somef-slot--hook .somef-embed-ratio {
  max-width: 100%;
}

body#product .somef-vertical-block--import-empty .somef-slot--import {
  display: none;
}
