/* ═══════════════════════════════════════════════════════
   DV MOTION — PrestaShop Theme Override
   Appliqué par-dessus Hummingbird / Bootstrap 5
═══════════════════════════════════════════════════════ */

/* ── Variables Bootstrap override ──────────────────── */
:root {
  --bs-body-bg:           #000000;
  --bs-body-color:        #FFFFFF;
  --bs-border-color:      rgba(255,255,255,0.07);
  --bs-card-bg:           #0a0a18;
  --bs-primary:           #CC1111;
  --bs-primary-rgb:       204,17,17;
  --bs-link-color:        #FFFFFF;
  --bs-link-hover-color:  #CC1111;
  --bs-secondary-bg:      #0a0a18;
  --bs-tertiary-bg:       #04040f;
  --bs-input-bg:          #0a0a18;
  --bs-navbar-color:      rgba(255,255,255,0.8);

  /* DV Motion design tokens */
  --dv-red:        #CC1111;
  --dv-red-dark:   #a80d0d;
  --dv-bg-void:    #000000;
  --dv-bg-space:   #04040f;
  --dv-bg-card:    #0a0a18;
  --dv-border:     rgba(255,255,255,0.07);
  --dv-text-1:     #FFFFFF;
  --dv-text-2:     #A0A0B8;
  --dv-text-3:     #505068;
  --dv-font-d:     'Orbitron', monospace;
  --dv-font-b:     'Exo 2', sans-serif;
}

/* ── Base ───────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; }

html { overflow-x: hidden; }

body {
  background: var(--dv-bg-void) !important;
  color: var(--dv-text-1) !important;
  font-family: var(--dv-font-b) !important;
  -webkit-font-smoothing: antialiased;
}

a { color: var(--dv-text-1); transition: color 0.2s; }
a:hover { color: var(--dv-red); text-decoration: none; }

h1, h2, h3, h4, h5, h6 {
  font-family: var(--dv-font-d) !important;
  color: var(--dv-text-1) !important;
  font-weight: 700;
}

/* ── Header ─────────────────────────────────────────── */
#header,
.header {
  background: rgba(0,0,0,0.92) !important;
  backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--dv-border) !important;
  position: sticky !important;
  top: 0;
  z-index: 1000;
}

.header-top {
  background: rgba(4,4,15,0.95) !important;
  border-bottom: 1px solid var(--dv-border) !important;
  padding: 8px 0;
}

.header-bottom {
  background: transparent !important;
  padding: 12px 0;
}

/* Logo DV Motion */
.header-bottom__logo .logo {
  font-family: var(--dv-font-d) !important;
  font-size: 1.4rem;
  font-weight: 800;
  color: var(--dv-text-1) !important;
}

.header-bottom__logo img {
  max-height: 50px;
  filter: brightness(1);
}

/* Logo — image uploadée via back-office */
.header-bottom__logo a {
  font-size: 0 !important;
  color: transparent !important;
  text-decoration: none !important;
  display: inline-flex;
  align-items: center;
}

.header-bottom__logo img {
  max-height: 48px !important;
  width: auto !important;
  display: block;
}
/* Fallback texte si pas d'image */

/* Navigation principale */
.header-nav-full-width {
  background: var(--dv-bg-space) !important;
  border-top: 1px solid var(--dv-border) !important;
}

#_desktop_top_menu .top-menu,
.top-menu {
  background: transparent !important;
}

#_desktop_top_menu .top-menu .nav-link,
.top-menu a {
  font-family: var(--dv-font-d) !important;
  font-size: 0.52rem;
  font-weight: 500;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--dv-text-2) !important;
  padding: 16px 14px !important;
  transition: color 0.2s;
}

#_desktop_top_menu .top-menu .nav-link:hover,
.top-menu a:hover,
#_desktop_top_menu .top-menu .nav-item.current > .nav-link {
  color: var(--dv-text-1) !important;
  background: transparent !important;
}

/* Dropdown nav */
.top-menu .sub-menu,
.top-menu .dropdown-menu {
  background: var(--dv-bg-card) !important;
  border: 1px solid var(--dv-border) !important;
  border-radius: 0 !important;
}

.top-menu .dropdown-item {
  color: var(--dv-text-2) !important;
  font-size: 0.85rem;
}
.top-menu .dropdown-item:hover {
  background: rgba(204,17,17,0.08) !important;
  color: var(--dv-text-1) !important;
}

/* Icônes header (compte, panier, recherche) */
.header-block__action-btn {
  color: var(--dv-text-2) !important;
  transition: color 0.2s;
}
.header-block__action-btn:hover { color: var(--dv-red) !important; }

.header-block__badge {
  background: var(--dv-red) !important;
  color: #fff !important;
  font-family: var(--dv-font-d);
  font-size: 0.55rem;
}

/* Barre de recherche */
.search-widget input {
  background: rgba(255,255,255,0.05) !important;
  border: 1px solid var(--dv-border) !important;
  border-radius: 0 !important;
  color: var(--dv-text-1) !important;
  font-family: var(--dv-font-b);
}

.search-widget input:focus {
  background: rgba(255,255,255,0.08) !important;
  border-color: var(--dv-red) !important;
  box-shadow: none !important;
  color: var(--dv-text-1) !important;
}

.search-widget input::placeholder { color: var(--dv-text-3) !important; }

.search-widget button {
  background: var(--dv-red) !important;
  border: none !important;
  border-radius: 0 !important;
  color: #fff !important;
}

/* ── Breadcrumb ─────────────────────────────────────── */
.breadcrumb {
  background: var(--dv-bg-space) !important;
  border-bottom: 1px solid var(--dv-border) !important;
  padding: 12px 0 !important;
  margin: 0 !important;
  border-radius: 0 !important;
}

.breadcrumb-item a {
  color: var(--dv-text-3) !important;
  font-family: var(--dv-font-d);
  font-size: 0.42rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.breadcrumb-item.active {
  color: var(--dv-text-2) !important;
  font-family: var(--dv-font-d);
  font-size: 0.42rem;
  letter-spacing: 0.1em;
}

.breadcrumb-item + .breadcrumb-item::before {
  color: var(--dv-text-3) !important;
}

/* ── Homepage ───────────────────────────────────────── */
.page-home { background: var(--dv-bg-void) !important; }

/* Slider */
.ps-imageslider {
  overflow: hidden;
  border-bottom: 1px solid var(--dv-border);
}

/* Featured products section */
.featured-products,
.new-products,
.bestsellers {
  padding: 60px 0;
  background: var(--dv-bg-void);
}

.featured-products h2,
.new-products h2,
.bestsellers h2,
.products-section-title {
  font-family: var(--dv-font-d) !important;
  font-size: clamp(1.4rem, 3vw, 2.2rem) !important;
  font-weight: 800 !important;
  color: var(--dv-text-1) !important;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 8px !important;
  text-align: center;
}

.featured-products h2::after,
.products-section-title::after {
  content: '';
  display: block;
  width: 40px;
  height: 2px;
  background: var(--dv-red);
  margin: 12px auto 32px;
}

/* ── Cartes produits ────────────────────────────────── */
.product-miniature,
.card.product-miniature {
  background: var(--dv-bg-card) !important;
  border: 1px solid var(--dv-border) !important;
  border-radius: 0 !important;
  transition: border-color 0.25s, box-shadow 0.25s;
  overflow: hidden;
}

.product-miniature:hover,
.card.product-miniature:hover {
  border-color: rgba(204,17,17,0.3) !important;
  box-shadow: 0 0 30px rgba(204,17,17,0.06);
}

.product-miniature .card-body,
.product-miniature .card-img-top-wrapper {
  background: var(--dv-bg-card) !important;
}

.product-miniature .card-img-top {
  background: var(--dv-bg-space) !important;
}

/* Titre produit */
.product-miniature .product-title,
.product-miniature h3,
.product-miniature .card-title {
  font-family: var(--dv-font-d) !important;
  font-size: 0.65rem !important;
  font-weight: 700 !important;
  color: var(--dv-text-1) !important;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  margin-bottom: 8px !important;
}

.product-miniature .product-title a,
.product-miniature h3 a {
  color: var(--dv-text-1) !important;
}

.product-miniature .product-title a:hover,
.product-miniature h3 a:hover { color: var(--dv-red) !important; }

/* Prix */
.product-miniature .price,
.product-miniature .product-price-and-shipping,
.price {
  font-family: var(--dv-font-d) !important;
  font-size: 1.1rem !important;
  font-weight: 900 !important;
  color: var(--dv-text-1) !important;
}

.product-miniature .regular-price {
  color: var(--dv-text-3) !important;
  text-decoration: line-through;
  font-size: 0.85rem !important;
}

.product-miniature .discount-percentage,
.discount-percentage {
  background: var(--dv-red) !important;
  color: #fff !important;
  font-family: var(--dv-font-d);
  font-size: 0.38rem;
  font-weight: 700;
  padding: 3px 8px;
  border-radius: 0 !important;
}

/* Badge produit */
.product-miniature .product-flags li,
.product-flags li {
  background: var(--dv-red) !important;
  color: #fff !important;
  font-family: var(--dv-font-d) !important;
  font-size: 0.36rem !important;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  border-radius: 0 !important;
  padding: 4px 10px !important;
}

/* Bouton ajout panier sur carte */
.product-miniature .add-to-cart,
.product-miniature .btn-primary {
  background: var(--dv-red) !important;
  border: none !important;
  border-radius: 0 !important;
  font-family: var(--dv-font-d) !important;
  font-size: 0.44rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #fff !important;
  padding: 12px 20px !important;
  transition: background 0.2s, transform 0.15s;
  width: 100%;
}

.product-miniature .add-to-cart:hover,
.product-miniature .btn-primary:hover {
  background: var(--dv-red-dark) !important;
  transform: translateY(-1px);
}

/* ── Page produit ───────────────────────────────────── */
#product {
  background: var(--dv-bg-void);
  padding: 40px 0;
}

.product-cover {
  border: 1px solid var(--dv-border) !important;
  background: var(--dv-bg-space) !important;
}

.product-images .thumb {
  border: 1px solid var(--dv-border) !important;
  background: var(--dv-bg-space) !important;
}

.product-images .thumb.selected,
.product-images .thumb:hover {
  border-color: var(--dv-red) !important;
}

.product-name {
  font-family: var(--dv-font-d) !important;
  font-size: clamp(1.4rem, 3vw, 2.2rem) !important;
  font-weight: 800 !important;
  color: var(--dv-text-1) !important;
  line-height: 1.15 !important;
}

.product-price .current-price,
#product .price {
  font-family: var(--dv-font-d) !important;
  font-size: 2rem !important;
  font-weight: 900 !important;
  color: var(--dv-text-1) !important;
}

.product-description,
.product-description-short {
  color: var(--dv-text-2) !important;
  line-height: 1.7;
  font-size: 0.95rem;
}

/* Sélecteurs de variantes */
.product-variants .product-variants-item select,
.product-variants select {
  background: var(--dv-bg-card) !important;
  border: 1px solid var(--dv-border) !important;
  border-radius: 0 !important;
  color: var(--dv-text-1) !important;
  font-family: var(--dv-font-b);
}

/* Quantité */
.qty .btn,
.product-quantity .btn {
  background: var(--dv-bg-card) !important;
  border: 1px solid var(--dv-border) !important;
  border-radius: 0 !important;
  color: var(--dv-text-1) !important;
}

.qty input,
.product-quantity input {
  background: var(--dv-bg-card) !important;
  border: 1px solid var(--dv-border) !important;
  color: var(--dv-text-1) !important;
  text-align: center;
}

/* Bouton Ajouter au panier - page produit */
.add-to-cart.btn,
#add-to-cart-or-refresh .add-to-cart {
  background: var(--dv-red) !important;
  border: none !important;
  border-radius: 0 !important;
  font-family: var(--dv-font-d) !important;
  font-size: 0.52rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #fff !important;
  padding: 16px 32px !important;
  transition: background 0.2s, transform 0.15s;
}

.add-to-cart.btn:hover { background: var(--dv-red-dark) !important; }

/* Onglets produit */
.tabs .nav-tabs {
  border-bottom: 1px solid var(--dv-border) !important;
}

.tabs .nav-link {
  font-family: var(--dv-font-d) !important;
  font-size: 0.44rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--dv-text-3) !important;
  border: none !important;
  border-radius: 0 !important;
  padding: 12px 20px;
}

.tabs .nav-link.active,
.tabs .nav-link:hover {
  color: var(--dv-text-1) !important;
  background: transparent !important;
  border-bottom: 2px solid var(--dv-red) !important;
}

.tab-pane {
  background: var(--dv-bg-space) !important;
  border: 1px solid var(--dv-border) !important;
  padding: 24px !important;
  color: var(--dv-text-2) !important;
}

/* ── Listing catégorie ──────────────────────────────── */
#category {
  background: var(--dv-bg-void);
}

#category h1,
.category-cover-image ~ h1 {
  font-family: var(--dv-font-d) !important;
}

/* Filtres */
.faceted-search .facet-label,
.faceted-search .facet .collapse-button {
  font-family: var(--dv-font-d) !important;
  font-size: 0.44rem;
  color: var(--dv-text-1) !important;
  text-transform: uppercase;
  letter-spacing: 0.1em;
}

.faceted-search,
.block-categories {
  background: var(--dv-bg-card) !important;
  border: 1px solid var(--dv-border) !important;
  border-radius: 0 !important;
}

.faceted-search .facet__header,
.faceted-search .collapse-button {
  border-bottom: 1px solid var(--dv-border) !important;
  padding: 12px 16px;
  color: var(--dv-text-1) !important;
}

.faceted-search .facet__block {
  background: transparent !important;
}

.faceted-search input[type="checkbox"] { accent-color: var(--dv-red); }

/* Tri */
.sort-by-row select,
.products-sort-order select {
  background: var(--dv-bg-card) !important;
  border: 1px solid var(--dv-border) !important;
  border-radius: 0 !important;
  color: var(--dv-text-1) !important;
  font-family: var(--dv-font-b);
}

/* ── Panier ─────────────────────────────────────────── */
#cart {
  background: var(--dv-bg-void);
  padding: 40px 0;
}

.cart-items { border-radius: 0 !important; }

.cart-item {
  background: var(--dv-bg-card) !important;
  border: 1px solid var(--dv-border) !important;
  border-radius: 0 !important;
  padding: 20px !important;
  margin-bottom: 8px;
}

.cart-summary {
  background: var(--dv-bg-card) !important;
  border: 1px solid var(--dv-border) !important;
  border-radius: 0 !important;
  padding: 24px !important;
}

.cart-summary-line .label {
  font-family: var(--dv-font-d) !important;
  font-size: 0.44rem;
  color: var(--dv-text-2) !important;
  text-transform: uppercase;
  letter-spacing: 0.1em;
}

.cart-summary-line .value {
  font-family: var(--dv-font-d) !important;
  font-weight: 700;
  color: var(--dv-text-1) !important;
}

.cart-total .label,
.cart-total .value {
  font-size: 1rem !important;
  color: var(--dv-text-1) !important;
}

/* Bouton commander */
.checkout a,
.btn-checkout {
  background: var(--dv-red) !important;
  border: none !important;
  border-radius: 0 !important;
  font-family: var(--dv-font-d) !important;
  font-size: 0.52rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #fff !important;
  padding: 16px 32px !important;
  display: block !important;
  text-align: center;
  transition: background 0.2s;
}

.checkout a:hover,
.btn-checkout:hover { background: var(--dv-red-dark) !important; }

/* ── Boutons globaux ────────────────────────────────── */
.btn-primary {
  background: var(--dv-red) !important;
  border-color: var(--dv-red) !important;
  border-radius: 0 !important;
  font-family: var(--dv-font-d) !important;
  font-size: 0.46rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  transition: background 0.2s;
}
.btn-primary:hover { background: var(--dv-red-dark) !important; border-color: var(--dv-red-dark) !important; }

.btn-secondary {
  background: transparent !important;
  border: 1px solid var(--dv-border) !important;
  border-radius: 0 !important;
  color: var(--dv-text-2) !important;
  font-family: var(--dv-font-d) !important;
  font-size: 0.44rem !important;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.btn-secondary:hover { border-color: rgba(255,255,255,0.2) !important; color: var(--dv-text-1) !important; }

.btn-outline-secondary {
  border-color: var(--dv-border) !important;
  color: var(--dv-text-2) !important;
  border-radius: 0 !important;
}

/* ── Formulaires ────────────────────────────────────── */
.form-control,
.form-select {
  background: var(--dv-bg-card) !important;
  border: 1px solid var(--dv-border) !important;
  border-radius: 0 !important;
  color: var(--dv-text-1) !important;
  font-family: var(--dv-font-b);
}

.form-control:focus,
.form-select:focus {
  background: rgba(255,255,255,0.05) !important;
  border-color: var(--dv-red) !important;
  box-shadow: 0 0 0 2px rgba(204,17,17,0.15) !important;
  color: var(--dv-text-1) !important;
}

.form-control::placeholder { color: var(--dv-text-3) !important; }

.form-label {
  font-family: var(--dv-font-d) !important;
  font-size: 0.42rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--dv-text-2) !important;
  margin-bottom: 6px;
}

/* ── Pages compte client ────────────────────────────── */
#my-account,
#authentication,
#registration,
#checkout {
  background: var(--dv-bg-void);
  padding: 40px 0;
}

.page-header h1 {
  font-family: var(--dv-font-d) !important;
  text-transform: uppercase;
  border-bottom: 1px solid var(--dv-border) !important;
  padding-bottom: 16px;
}

/* Card de section compte */
.card {
  background: var(--dv-bg-card) !important;
  border: 1px solid var(--dv-border) !important;
  border-radius: 0 !important;
}

.card-header {
  background: var(--dv-bg-space) !important;
  border-bottom: 1px solid var(--dv-border) !important;
  font-family: var(--dv-font-d) !important;
  font-size: 0.44rem;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--dv-text-1) !important;
}

/* ── Pagination ─────────────────────────────────────── */
.pagination .page-link {
  background: var(--dv-bg-card) !important;
  border: 1px solid var(--dv-border) !important;
  border-radius: 0 !important;
  color: var(--dv-text-2) !important;
  font-family: var(--dv-font-d);
  font-size: 0.42rem;
}

.pagination .page-item.active .page-link {
  background: var(--dv-red) !important;
  border-color: var(--dv-red) !important;
  color: #fff !important;
}

.pagination .page-link:hover {
  background: rgba(204,17,17,0.1) !important;
  color: var(--dv-text-1) !important;
}

/* ── Alertes ────────────────────────────────────────── */
.alert-success {
  background: rgba(0,200,128,0.08) !important;
  border: 1px solid rgba(0,200,128,0.25) !important;
  color: #00C880 !important;
  border-radius: 0 !important;
}

.alert-danger, .alert-warning {
  background: rgba(204,17,17,0.08) !important;
  border: 1px solid rgba(204,17,17,0.25) !important;
  color: #ff6b6b !important;
  border-radius: 0 !important;
}

.alert-info {
  background: rgba(0,150,255,0.08) !important;
  border: 1px solid rgba(0,150,255,0.2) !important;
  color: #60AAFF !important;
  border-radius: 0 !important;
}

/* ── Footer ─────────────────────────────────────────── */
#footer,
.footer {
  background: var(--dv-bg-space) !important;
  border-top: 1px solid var(--dv-border) !important;
  color: var(--dv-text-2) !important;
  padding: 60px 0 30px !important;
}

.footer__title,
.block-title,
.footer .h3 {
  font-family: var(--dv-font-d) !important;
  font-size: 0.50rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--dv-text-1) !important;
  margin-bottom: 16px !important;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--dv-border) !important;
}

.footer__list a,
.block_content a,
.footer a {
  color: var(--dv-text-3) !important;
  font-size: 0.85rem;
  display: block;
  padding: 4px 0;
  transition: color 0.2s;
}

.footer__list a:hover,
.block_content a:hover,
.footer a:hover {
  color: var(--dv-red) !important;
  text-decoration: none !important;
}

/* Logo footer */
.footer .logo-footer,
.footer .nav-logo {
  font-family: var(--dv-font-d) !important;
  font-size: 1.2rem;
  font-weight: 800;
  color: var(--dv-text-1) !important;
}

/* Copyright */
.footer__bottom,
.footer-container .footer-bottom {
  border-top: 1px solid var(--dv-border) !important;
  margin-top: 40px !important;
  padding-top: 20px !important;
  color: var(--dv-text-3) !important;
  font-size: 0.78rem;
}

/* Newsletter */
.block_newsletter .form-control {
  background: rgba(255,255,255,0.05) !important;
}

.block_newsletter .btn {
  background: var(--dv-red) !important;
  border-radius: 0 !important;
  font-family: var(--dv-font-d) !important;
  font-size: 0.42rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

/* Réseaux sociaux */
.social-sharing a,
.ps-social-follow a {
  color: var(--dv-text-3) !important;
  transition: color 0.2s;
}
.social-sharing a:hover,
.ps-social-follow a:hover { color: var(--dv-red) !important; }

/* ── Blockreassurance ───────────────────────────────── */
.blockreassurance {
  background: var(--dv-bg-space) !important;
  border-top: 1px solid var(--dv-border) !important;
  border-bottom: 1px solid var(--dv-border) !important;
  padding: 24px 0 !important;
}

.blockreassurance_product .item-product,
.blockreassurance .block-icon-text {
  color: var(--dv-text-2) !important;
  text-align: center;
  font-size: 0.85rem;
}

.blockreassurance p.block-title {
  font-family: var(--dv-font-d) !important;
  font-size: 0.42rem !important;
  color: var(--dv-text-1) !important;
  text-transform: uppercase;
  letter-spacing: 0.1em;
}

/* ── Notifications flottantes ───────────────────────── */
.notifications-container .alert {
  border-radius: 0 !important;
}

/* ── Page loader ────────────────────────────────────── */
.page-loader {
  background: var(--dv-bg-void) !important;
}

/* ── Scrollbar ──────────────────────────────────────── */
::-webkit-scrollbar { width: 6px; height: 6px; }
::-webkit-scrollbar-track { background: var(--dv-bg-void); }
::-webkit-scrollbar-thumb { background: rgba(204,17,17,0.4); }
::-webkit-scrollbar-thumb:hover { background: var(--dv-red); }

/* ── Utilitaires ────────────────────────────────────── */
.text-muted { color: var(--dv-text-3) !important; }
.bg-light { background: var(--dv-bg-space) !important; }
.bg-white { background: var(--dv-bg-card) !important; }
.border { border-color: var(--dv-border) !important; }
hr { border-color: var(--dv-border) !important; opacity: 1; }

/* ── Logo DV Motion — fallback texte si pas d'image ─── */
.header-bottom__logo a:not(:has(img))::before {
  content: 'DV';
  font-family: var(--dv-font-d);
  font-size: 1.4rem;
  font-weight: 900;
  color: var(--dv-red);
  letter-spacing: 0.03em;
}

.header-bottom__logo a:not(:has(img))::after {
  content: 'motion';
  font-family: var(--dv-font-b);
  font-size: 1.4rem;
  font-weight: 300;
  color: var(--dv-text-1);
  margin-left: 4px;
  letter-spacing: 0.02em;
}

/* ═══════════════════════════════════════════════════════
   HOMEPAGE CUSTOM — DV Motion
═══════════════════════════════════════════════════════ */

/* Retire le container Bootstrap sur la homepage */
.dvm-homepage {
  padding: 0 !important;
  max-width: 100% !important;
  width: 100% !important;
}

/* ── Shared ─────────────────────────────────────────── */
.dvm-label {
  font-family: var(--dv-font-d);
  font-size: 0.42rem;
  font-weight: 700;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--dv-red);
  display: block;
  margin-bottom: 12px;
}

.dvm-title {
  font-family: var(--dv-font-d) !important;
  font-size: clamp(1.6rem, 3.5vw, 2.8rem) !important;
  font-weight: 800 !important;
  color: var(--dv-text-1) !important;
  line-height: 1.1 !important;
  margin: 0 0 20px !important;
}

.dvm-title em {
  font-style: normal;
  color: var(--dv-red);
}

.dvm-section-head {
  text-align: center;
  max-width: 700px;
  margin: 0 auto 60px;
  padding: 0 20px;
}

.dvm-section-intro {
  color: var(--dv-text-2);
  font-size: 1rem;
  line-height: 1.7;
  margin: 0;
}

.dvm-btn-primary {
  display: inline-block;
  background: var(--dv-red);
  color: #fff !important;
  font-family: var(--dv-font-d);
  font-size: 0.50rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 16px 32px;
  text-decoration: none !important;
  transition: background 0.2s, transform 0.15s;
  border: none;
  cursor: pointer;
}

.dvm-btn-primary:hover {
  background: var(--dv-red-dark);
  color: #fff !important;
  transform: translateY(-2px);
}

.dvm-btn-outline {
  display: inline-block;
  background: transparent;
  color: var(--dv-text-2) !important;
  font-family: var(--dv-font-d);
  font-size: 0.50rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 15px 32px;
  text-decoration: none !important;
  border: 1px solid var(--dv-border);
  transition: border-color 0.2s, color 0.2s;
}

.dvm-btn-outline:hover {
  border-color: rgba(255,255,255,0.25);
  color: var(--dv-text-1) !important;
}

/* ── Hero ───────────────────────────────────────────── */
.dvm-hero {
  position: relative;
  min-height: 92vh;
  display: flex;
  align-items: center;
  overflow: hidden;
  background: var(--dv-bg-void);
  border-bottom: 1px solid var(--dv-border);
}

.dvm-hero--compact {
  min-height: 52vh;
}

.dvm-hero-bg {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 80% 60% at 60% 50%, rgba(204,17,17,0.06) 0%, transparent 70%),
    radial-gradient(ellipse 50% 40% at 20% 80%, rgba(204,17,17,0.04) 0%, transparent 60%);
  pointer-events: none;
}

.dvm-hero-orb {
  position: absolute;
  border-radius: 50%;
  filter: blur(120px);
  pointer-events: none;
  opacity: 0.18;
}

.dvm-hero-orb-1 {
  width: 600px; height: 600px;
  background: var(--dv-red);
  top: -200px; right: -100px;
}

.dvm-hero-orb-2 {
  width: 400px; height: 400px;
  background: rgba(100,0,0,0.8);
  bottom: -100px; left: 10%;
}

.dvm-hero-inner {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 1400px;
  margin: 0 auto;
  padding: 80px 60px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: center;
}

.dvm-hero-inner--compact {
  grid-template-columns: 1fr auto;
  gap: 60px;
  padding: 60px;
  align-items: center;
}

.dvm-hero-label {
  font-family: var(--dv-font-d);
  font-size: 0.40rem;
  font-weight: 700;
  letter-spacing: 0.35em;
  text-transform: uppercase;
  color: var(--dv-red);
  display: block;
  margin-bottom: 20px;
}

.dvm-hero-title {
  font-family: var(--dv-font-d) !important;
  font-size: clamp(3.5rem, 8vw, 7rem) !important;
  font-weight: 900 !important;
  line-height: 0.9 !important;
  margin: 0 0 28px !important;
  letter-spacing: -0.02em !important;
}

.dvm-hero-title--compact {
  font-size: clamp(2.8rem, 6vw, 5rem) !important;
  margin: 0 0 20px !important;
}

.dvm-hero-dv {
  color: var(--dv-red);
  display: block;
}

.dvm-hero-motion {
  color: var(--dv-text-1);
  display: block;
  font-weight: 300;
  letter-spacing: 0.02em;
}

.dvm-hero-tagline {
  font-family: var(--dv-font-b);
  font-size: clamp(1.1rem, 2vw, 1.35rem);
  color: var(--dv-text-2);
  line-height: 1.5;
  margin: 0 0 12px;
}

.dvm-hero-tagline em {
  font-style: normal;
  color: var(--dv-text-1);
  font-weight: 600;
}

.dvm-hero-sub {
  font-family: var(--dv-font-d);
  font-size: 0.40rem;
  letter-spacing: 0.14em;
  color: var(--dv-text-3);
  text-transform: uppercase;
  margin: 0 0 40px;
}

.dvm-hero-ctas {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
}

/* Visual badges flottants */
.dvm-hero-visual {
  display: flex;
  justify-content: center;
  align-items: center;
}

.dvm-hero-badge-stack {
  position: relative;
  width: 340px;
  height: 340px;
}

.dvm-hb {
  position: absolute;
  font-family: var(--dv-font-d);
  font-weight: 900;
  color: #fff;
  border: 1px solid rgba(204,17,17,0.3);
  background: rgba(10,10,24,0.9);
  padding: 12px 20px;
  font-size: 0.52rem;
  letter-spacing: 0.15em;
  animation: dvm-float 4s ease-in-out infinite;
}

.dvm-hb-1 { top: 10%; left: 50%; animation-delay: 0s; font-size: 1.2rem; border-color: var(--dv-red); }
.dvm-hb-2 { top: 30%; left: 5%; animation-delay: 0.6s; }
.dvm-hb-3 { top: 55%; left: 40%; animation-delay: 1.2s; }
.dvm-hb-4 { top: 70%; left: 5%; animation-delay: 1.8s; font-size: 1rem; color: var(--dv-red); }
.dvm-hb-5 { top: 5%; left: 5%; animation-delay: 2.4s; }

@keyframes dvm-float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-8px); }
}

/* Scroll indicator */
.dvm-hero-scroll {
  position: absolute;
  bottom: 32px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  color: var(--dv-text-3);
  font-family: var(--dv-font-d);
  font-size: 0.36rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  z-index: 1;
}

.dvm-hero-scroll-line {
  width: 1px;
  height: 40px;
  background: linear-gradient(to bottom, var(--dv-text-3), transparent);
  animation: dvm-scroll-line 2s ease-in-out infinite;
}

@keyframes dvm-scroll-line {
  0%, 100% { opacity: 0.4; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(0.6); }
}

/* ── Marquee ────────────────────────────────────────── */
.dvm-marquee {
  background: var(--dv-bg-space);
  border-top: 1px solid var(--dv-border);
  border-bottom: 1px solid var(--dv-border);
  overflow: hidden;
  padding: 16px 0;
}

.dvm-marquee-track {
  display: flex;
  gap: 32px;
  white-space: nowrap;
  animation: dvm-marquee 28s linear infinite;
  font-family: var(--dv-font-d);
  font-size: 0.40rem;
  font-weight: 700;
  letter-spacing: 0.22em;
  color: var(--dv-text-3);
}

.dvm-marquee-track span { flex-shrink: 0; }
.dvm-dot { color: var(--dv-red) !important; }

@keyframes dvm-marquee {
  0% { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

/* ── Section pôles ──────────────────────────────────── */
.dvm-poles {
  padding: 100px 60px;
  max-width: 1400px;
  margin: 0 auto;
}

.dvm-poles-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 1px;
  background: var(--dv-border);
  border: 1px solid var(--dv-border);
}

.dvm-pole-card {
  position: relative;
  background: var(--dv-bg-card);
  padding: 36px 28px;
  text-decoration: none !important;
  display: flex;
  flex-direction: column;
  gap: 12px;
  transition: background 0.25s;
  overflow: hidden;
}

.dvm-pole-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 2px;
  background: var(--dv-red);
  transform: scaleX(0);
  transition: transform 0.3s ease;
}

.dvm-pole-card:hover::before { transform: scaleX(1); }

.dvm-pole-card:hover {
  background: rgba(10,10,30,0.95);
  text-decoration: none;
}

.dvm-pole-icon {
  font-size: 2rem;
  line-height: 1;
}

.dvm-pole-num {
  font-family: var(--dv-font-d);
  font-size: 0.36rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  color: var(--dv-text-3);
}

.dvm-pole-title {
  font-family: var(--dv-font-d) !important;
  font-size: 0.72rem !important;
  font-weight: 800 !important;
  color: var(--dv-text-1) !important;
  margin: 0 !important;
  line-height: 1.2 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.04em !important;
}

.dvm-pole-desc {
  font-family: var(--dv-font-b);
  font-size: 0.85rem;
  color: var(--dv-text-2);
  line-height: 1.5;
  margin: 0;
  flex: 1;
}

.dvm-pole-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: auto;
}

.dvm-pole-tags span {
  font-family: var(--dv-font-d);
  font-size: 0.32rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 3px 9px;
  border: 1px solid var(--dv-border);
  color: var(--dv-text-3);
  background: transparent;
}

.dvm-pole-link {
  font-family: var(--dv-font-d);
  font-size: 0.40rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  color: var(--dv-red);
  text-transform: uppercase;
  margin-top: 8px;
  opacity: 0;
  transform: translateX(-6px);
  transition: opacity 0.2s, transform 0.2s;
}

.dvm-pole-card:hover .dvm-pole-link {
  opacity: 1;
  transform: translateX(0);
}

.dvm-pole-ia .dvm-pole-title { color: #00B8FF !important; }
.dvm-pole-ia::before { background: #00B8FF; }
.dvm-pole-ia .dvm-pole-link { color: #00B8FF; }

/* ── Stats ──────────────────────────────────────────── */
.dvm-stats {
  background: var(--dv-bg-space);
  border-top: 1px solid var(--dv-border);
  border-bottom: 1px solid var(--dv-border);
  padding: 60px 60px;
}

.dvm-stats-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  max-width: 1000px;
  margin: 0 auto;
  text-align: center;
}

.dvm-stat {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  padding: 20px;
  border-right: 1px solid var(--dv-border);
}

.dvm-stat:last-child { border-right: none; }

.dvm-stat-num {
  font-family: var(--dv-font-d);
  font-size: clamp(2rem, 4vw, 3.2rem);
  font-weight: 900;
  color: var(--dv-red);
  line-height: 1;
}

.dvm-stat-label {
  font-family: var(--dv-font-d);
  font-size: 0.38rem;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--dv-text-3);
}

/* ── Section produits ───────────────────────────────── */
.dvm-products-section {
  padding: 100px 60px;
  max-width: 1400px;
  margin: 0 auto;
}

.dvm-products-section .page-content--home {
  background: transparent !important;
}

/* ── Why section ────────────────────────────────────── */
.dvm-why {
  background: var(--dv-bg-space);
  border-top: 1px solid var(--dv-border);
  border-bottom: 1px solid var(--dv-border);
  padding: 100px 60px;
}

.dvm-why .dvm-section-head { margin-bottom: 60px; }

.dvm-why-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  background: var(--dv-border);
  border: 1px solid var(--dv-border);
  max-width: 1200px;
  margin: 0 auto;
}

.dvm-why-card {
  background: var(--dv-bg-card);
  padding: 36px 28px;
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.dvm-why-icon {
  font-size: 2rem;
  line-height: 1;
}

.dvm-why-card h4 {
  font-family: var(--dv-font-d) !important;
  font-size: 0.58rem !important;
  font-weight: 700 !important;
  color: var(--dv-text-1) !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  margin: 0 !important;
}

.dvm-why-card p {
  font-family: var(--dv-font-b);
  font-size: 0.88rem;
  color: var(--dv-text-2);
  line-height: 1.6;
  margin: 0;
}

/* ── CTA Vitrine ────────────────────────────────────── */
.dvm-cta-vitrine {
  padding: 100px 60px;
  background: var(--dv-bg-void);
}

.dvm-cta-vitrine-inner {
  max-width: 1100px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 60px;
  border: 1px solid var(--dv-border);
  padding: 60px;
  position: relative;
  overflow: hidden;
}

.dvm-cta-vitrine-inner::before {
  content: '';
  position: absolute;
  top: 0; left: 0;
  width: 4px;
  height: 100%;
  background: var(--dv-red);
}

.dvm-cta-vitrine-text { flex: 1; }

.dvm-cta-v-title {
  font-family: var(--dv-font-d) !important;
  font-size: clamp(1.4rem, 3vw, 2.2rem) !important;
  font-weight: 800 !important;
  color: var(--dv-text-1) !important;
  margin: 0 0 16px !important;
}

.dvm-cta-v-title em {
  font-style: normal;
  color: var(--dv-red);
}

.dvm-cta-vitrine-text p {
  color: var(--dv-text-2);
  font-size: 0.95rem;
  line-height: 1.7;
  margin: 0;
}

.dvm-cta-vitrine-btn-wrap { flex-shrink: 0; }

/* ── Hero pills (version compacte) ─────────────────── */
.dvm-hero-pills {
  display: flex;
  flex-direction: column;
  gap: 10px;
  align-items: flex-end;
}

.dvm-hpill {
  font-family: var(--dv-font-d);
  font-size: 0.42rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--dv-text-3);
  border: 1px solid var(--dv-border);
  background: rgba(10,10,24,0.7);
  padding: 8px 16px;
  white-space: nowrap;
  transition: color 0.2s, border-color 0.2s;
}

.dvm-hpill:hover {
  color: var(--dv-text-1);
  border-color: rgba(255,255,255,0.15);
}

.dvm-hpill--ia {
  color: rgba(0,184,255,0.6);
  border-color: rgba(0,184,255,0.15);
}

/* ── Responsive homepage ────────────────────────────── */
@media (max-width: 1200px) {
  .dvm-poles-grid { grid-template-columns: repeat(3, 1fr); }
  .dvm-why-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 1024px) {
  .dvm-hero-inner,
  .dvm-hero-inner--compact {
    grid-template-columns: 1fr;
    gap: 30px;
    padding: 50px 40px;
  }
  .dvm-hero-visual { display: none; }
  .dvm-hero { min-height: auto; }
  .dvm-hero--compact { min-height: auto; }
  .dvm-hero-pills { flex-direction: row; flex-wrap: wrap; align-items: flex-start; }
  .dvm-poles, .dvm-products-section, .dvm-why, .dvm-cta-vitrine { padding: 70px 40px; }
  .dvm-stats { padding: 50px 40px; }
}

@media (max-width: 768px) {
  .dvm-poles-grid { grid-template-columns: repeat(2, 1fr); }
  .dvm-stats-grid { grid-template-columns: repeat(2, 1fr); }
  .dvm-stat { border-bottom: 1px solid var(--dv-border); border-right: none; }
  .dvm-stat:nth-child(odd) { border-right: 1px solid var(--dv-border); }
  .dvm-stat:last-child, .dvm-stat:nth-last-child(2):nth-child(odd) { border-bottom: none; }
  .dvm-cta-vitrine-inner { flex-direction: column; text-align: center; padding: 40px; gap: 32px; }
  .dvm-hero-inner { padding: 50px 24px; }
  .dvm-poles, .dvm-products-section, .dvm-why, .dvm-cta-vitrine { padding: 60px 24px; }
  .dvm-stats { padding: 40px 24px; }
}

@media (max-width: 480px) {
  .dvm-poles-grid { grid-template-columns: 1fr; }
  .dvm-why-grid { grid-template-columns: 1fr; }
  .dvm-hero-ctas { flex-direction: column; }
  .dvm-btn-primary, .dvm-btn-outline { text-align: center; width: 100%; }
  .dvm-hero-title { font-size: clamp(2.8rem, 14vw, 4rem) !important; }
  .dvm-hero-inner--compact { padding: 40px 20px; }
  .dvm-hero-pills { display: none; }
}
