/*
Theme Name: Novexa Shop
Theme URI: http://localhost/autoshop/
Description: Thème enfant d'Astra pour Novexa Shop — automobile d'occasion contrôlée, high-tech reconditionné, gaming neuf et mobilité électrique.
Author: Novexa
Template: astra
Version: 1.0.0
Text Domain: novexa
*/

:root {
  --nx-bg:        #f6f4f0;
  --nx-surface:   #ffffff;
  --nx-surface-2: #ecebe4;
  --nx-image-bg:  #e8e3da;
  --nx-ink:       #191c1a;
  --nx-ink-2:     #52574f;
  --nx-muted:     #8a8378;
  --nx-border:    #e0dbd2;
  --nx-border-2:  #cfc9be;
  --nx-accent:    #1b4d3e;
  --nx-accent-d:  #123529;
  --nx-gold:      #c09a5b;
  --nx-dark:      #191c1a;
  --nx-serif: 'Newsreader', Georgia, 'Times New Roman', serif;
  --nx-sans:  'Karla', 'Helvetica Neue', Arial, sans-serif;
  --nx-max: 1312px;
}

/* ---------- base ---------- */
body, .ast-container, #content {
  background: var(--nx-bg);
  font-family: var(--nx-sans);
  color: var(--nx-ink);
  -webkit-font-smoothing: antialiased;
}
h1, h2, h3, h4, .nx-serif { font-family: var(--nx-serif); font-weight: 500; letter-spacing: -0.024em; color: var(--nx-ink); }
a { color: var(--nx-accent); text-decoration: none; }
a:hover, a:focus { color: var(--nx-accent-d); }
.nx-num { font-variant-numeric: tabular-nums; }
.ast-container, .site-content .ast-container { max-width: var(--nx-max); }
img { max-width: 100%; height: auto; }

/* ---------- barre utilitaire ---------- */
.nx-topbar {
  background: var(--nx-dark);
  color: #b9c0b8;
  font-size: 12.5px;
  letter-spacing: 0.02em;
}
.nx-topbar-inner {
  max-width: var(--nx-max); margin: 0 auto; padding: 9px 20px;
  display: flex; justify-content: space-between; align-items: center; gap: 20px; flex-wrap: wrap;
}
.nx-topbar-list { display: flex; gap: 20px; align-items: center; flex-wrap: wrap; }
.nx-topbar-sep { color: #4a5049; }
.nx-topbar strong { color: #f2efe9; font-weight: 600; }

/* ---------- en-tête Astra ---------- */
.site-header, .ast-primary-header-bar, .main-header-bar {
  background: var(--nx-bg) !important;
  border-bottom: 1px solid var(--nx-border) !important;
  box-shadow: none !important;
}
.site-title, .site-title a {
  font-family: var(--nx-serif) !important;
  font-weight: 600 !important;
  font-size: 25px !important;
  letter-spacing: -0.006em;
  color: var(--nx-ink) !important;
  line-height: 1.1;
}
.site-description {
  font-size: 11.5px !important; letter-spacing: 0.13em; text-transform: uppercase;
  color: var(--nx-muted) !important; font-family: var(--nx-sans) !important;
}
.ast-site-identity .custom-logo-link img { width: 42px !important; height: auto; border-radius: 11px; }
.main-header-menu > .menu-item > a, .ast-header-break-point .main-navigation a {
  font-family: var(--nx-sans); font-size: 15px; font-weight: 500; color: var(--nx-ink-2);
}
.main-header-menu > .menu-item:hover > a,
.main-header-menu > .current-menu-item > a { color: var(--nx-ink); }
.main-header-menu > .current-menu-item > a { box-shadow: inset 0 -2px 0 var(--nx-accent); }

/* actions d'en-tête */
.nx-header-actions { display: flex; align-items: center; gap: 10px; }
.nx-icon-btn {
  width: 40px; height: 40px; border: 1px solid var(--nx-border-2); border-radius: 999px;
  display: inline-flex; align-items: center; justify-content: center; color: var(--nx-ink-2);
  position: relative; flex-shrink: 0;
}
.nx-icon-btn:hover { border-color: var(--nx-accent); color: var(--nx-accent); }
.nx-badge-count {
  position: absolute; top: -4px; right: -4px; min-width: 18px; height: 18px; padding: 0 5px;
  background: var(--nx-accent); color: #f4f7f2; border-radius: 999px;
  font-size: 10.5px; font-weight: 700; display: flex; align-items: center; justify-content: center;
}

/* ---------- boutons ---------- */
.nx-btn, .woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.woocommerce #respond input#submit, .woocommerce a.button.alt, .woocommerce button.button.alt {
  background: var(--nx-accent); color: #f4f7f2; border: 1px solid var(--nx-accent);
  border-radius: 999px; padding: 13px 24px; font-family: var(--nx-sans);
  font-size: 14.5px; font-weight: 600; line-height: 1.2; letter-spacing: 0;
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  transition: background .15s ease, border-color .15s ease, color .15s ease;
}
.nx-btn:hover, .woocommerce a.button:hover, .woocommerce button.button:hover,
.woocommerce input.button:hover, .woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover {
  background: var(--nx-accent-d); border-color: var(--nx-accent-d); color: #f4f7f2;
}
.nx-btn--dark { background: var(--nx-dark); border-color: var(--nx-dark); color: var(--nx-bg); }
.nx-btn--dark:hover { background: #000; border-color: #000; color: #fff; }
.nx-btn--ghost { background: transparent; border: 1px solid var(--nx-border-2); color: var(--nx-ink); }
.nx-btn--ghost:hover { background: transparent; border-color: var(--nx-ink); color: var(--nx-ink); }
.nx-btn--sm { padding: 9px 18px; font-size: 13.5px; }

/* ---------- prix ---------- */
.nx-price-block { display: flex; flex-direction: column; gap: 3px; }
.nx-price-main {
  font-family: var(--nx-serif); font-size: 24px; font-weight: 600; color: var(--nx-ink);
  font-variant-numeric: tabular-nums; line-height: 1.1;
}
.nx-price-main .woocommerce-Price-amount { font-family: var(--nx-serif); }
.nx-price-sub { font-size: 12.5px; color: var(--nx-muted); line-height: 1.4; }
.nx-price-sub strong { color: var(--nx-ink-2); font-weight: 700; }
.woocommerce ul.products li.product .price, .woocommerce div.product p.price { color: var(--nx-ink); }
.woocommerce div.product p.price .nx-price-main { font-size: 34px; }

/* ---------- grille produits ---------- */
.woocommerce ul.products { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; margin: 0; }
.woocommerce ul.products::before, .woocommerce ul.products::after { display: none; }
.woocommerce ul.products li.product {
  width: 100% !important; margin: 0 !important; float: none !important; clear: none !important;
  background: var(--nx-surface); border: 1px solid #e6e1d8; border-radius: 5px; overflow: hidden;
  display: flex; flex-direction: column;
}
.woocommerce ul.products li.product a.woocommerce-LoopProduct-link { display: flex; flex-direction: column; }
.woocommerce ul.products li.product img {
  width: 100%; aspect-ratio: 16 / 11; object-fit: cover; margin: 0; border-radius: 0; background: var(--nx-image-bg);
}
.nx-card-body { padding: 18px 20px 20px; display: flex; flex-direction: column; gap: 12px; flex-grow: 1; }
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  font-family: var(--nx-serif); font-size: 21px; font-weight: 600; letter-spacing: -0.012em;
  padding: 0; margin: 0; color: var(--nx-ink); line-height: 1.2;
}
.nx-card-excerpt { font-size: 13.5px; color: var(--nx-ink-2); line-height: 1.5; }
.nx-specs { display: flex; flex-wrap: wrap; gap: 6px; }
.nx-spec {
  border: 1px solid var(--nx-border); background: #faf9f6; border-radius: 4px;
  padding: 5px 9px; font-size: 12px; color: var(--nx-ink-2); white-space: nowrap;
}
.nx-card-foot {
  display: flex; justify-content: space-between; align-items: flex-end; gap: 12px;
  padding-top: 14px; margin-top: auto; border-top: 1px solid #eceae4;
}
.nx-tag {
  position: absolute; top: 12px; left: 12px; z-index: 2;
  background: var(--nx-bg); border-radius: 2px; padding: 5px 10px;
  font-size: 10.5px; letter-spacing: 0.07em; text-transform: uppercase; font-weight: 700; color: #4d534c;
}
.woocommerce ul.products li.product { position: relative; }
.woocommerce ul.products li.product .button { margin-top: 0; }
.woocommerce ul.products li.product .onsale, .woocommerce span.onsale { display: none; }

/* ---------- fiche véhicule ---------- */
.woocommerce div.product { background: transparent; }
.woocommerce div.product div.images img { border-radius: 5px; background: var(--nx-image-bg); }
.woocommerce div.product .product_title {
  font-family: var(--nx-serif); font-size: 40px; font-weight: 500; letter-spacing: -0.026em; line-height: 1.08;
}
.woocommerce div.product .woocommerce-product-details__short-description {
  font-size: 16.5px; line-height: 1.62; color: var(--nx-ink-2); margin-bottom: 4px;
}
.nx-spec-table { width: 100%; border-collapse: collapse; margin: 22px 0; background: var(--nx-surface); border: 1px solid #e6e1d8; border-radius: 5px; overflow: hidden; }
.nx-spec-table th, .nx-spec-table td { padding: 12px 16px; text-align: left; font-size: 14.5px; border-bottom: 1px solid #eceae4; }
.nx-spec-table tr:last-child th, .nx-spec-table tr:last-child td { border-bottom: 0; }
.nx-spec-table th { color: var(--nx-muted); font-weight: 500; width: 42%; font-size: 13.5px; }
.nx-spec-table td { color: var(--nx-ink); font-weight: 600; font-variant-numeric: tabular-nums; }
.nx-paybox {
  background: var(--nx-dark); color: #f2efe9; border-radius: 5px; padding: 22px 24px;
  display: flex; flex-direction: column; gap: 12px; margin: 22px 0;
}
.nx-paybox h3 { color: #f2efe9; font-size: 19px; margin: 0; }
.nx-paybox p { margin: 0; font-size: 14.5px; line-height: 1.6; color: #a8b0a7; }
.nx-paybox-modes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 4px; }
.nx-paymode { border: 1px solid #3a4038; border-radius: 4px; padding: 16px; display: flex; flex-direction: column; gap: 6px; }
.nx-paymode--reco { border-color: var(--nx-gold); }
.nx-paymode-label { font-size: 13px; color: #a8b0a7; }
.nx-paymode-value { font-family: var(--nx-serif); font-size: 24px; font-weight: 600; color: #f2efe9; font-variant-numeric: tabular-nums; }
.nx-paymode-flag { align-self: flex-start; background: var(--nx-gold); color: #2b2210; border-radius: 999px; padding: 3px 9px; font-size: 10px; letter-spacing: 0.06em; text-transform: uppercase; font-weight: 700; }
.woocommerce div.product form.cart .variations { background: var(--nx-surface); border: 1px solid #e6e1d8; border-radius: 5px; padding: 16px; margin-bottom: 16px; }
.woocommerce div.product form.cart .variations label { font-weight: 600; font-size: 14.5px; }
.woocommerce div.product form.cart .variations select {
  border: 1px solid var(--nx-border-2); border-radius: 4px; padding: 11px 13px; font-size: 14.5px; background: var(--nx-surface);
}
.woocommerce div.product .woocommerce-variation-price { margin-bottom: 12px; }
/* la quantité ne se cache que sur les biens vendus à l'unité */
.nx-unitaire.woocommerce .quantity { display: none; }
.woocommerce div.product form.cart .quantity { margin-right: 10px; }
.woocommerce .quantity .qty {
  border: 1px solid var(--nx-border-2); border-radius: 4px; padding: 12px 8px;
  font-family: var(--nx-sans); font-size: 15px; width: 74px; background: var(--nx-surface);
}
.woocommerce-tabs .panel { background: var(--nx-surface); border: 1px solid #e6e1d8; border-radius: 5px; padding: 26px; }
.woocommerce div.product .woocommerce-tabs ul.tabs::before { border-bottom-color: var(--nx-border); }
.woocommerce div.product .woocommerce-tabs ul.tabs li { background: transparent; border: 0; border-radius: 0; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active { background: transparent; border-bottom: 2px solid var(--nx-accent); }
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none; }

/* ---------- réassurance ---------- */
.nx-trust { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; border-top: 1px solid var(--nx-border); border-bottom: 1px solid var(--nx-border); }
.nx-trust-item { padding: 24px 26px; display: flex; flex-direction: column; gap: 6px; border-right: 1px solid var(--nx-border); }
.nx-trust-item:last-child { border-right: 0; }
.nx-trust-num { font-family: var(--nx-serif); font-size: 32px; font-weight: 500; letter-spacing: -0.02em; font-variant-numeric: tabular-nums; }
.nx-trust-label { font-size: 13.5px; color: var(--nx-ink-2); line-height: 1.5; }

/* ---------- page d'accueil ---------- */
.nx-wrap { max-width: var(--nx-max); margin: 0 auto; padding: 0 20px; }
.nx-section { padding: 60px 0; }
.nx-section--tight { padding: 0 0 44px; }
.nx-eyebrow { font-size: 11.5px; letter-spacing: 0.2em; color: var(--nx-muted); text-transform: uppercase; }
.nx-h2 { font-family: var(--nx-serif); font-size: 38px; font-weight: 500; letter-spacing: -0.025em; line-height: 1.12; margin: 0; }
.nx-lead { font-size: 16.5px; line-height: 1.65; color: var(--nx-ink-2); margin: 0; }

.nx-hero { display: grid; grid-template-columns: 5fr 7fr; gap: 40px; align-items: center; padding: 56px 0 40px; }
.nx-hero-col { display: flex; flex-direction: column; gap: 22px; }
.nx-hero h1 { font-family: var(--nx-serif); font-size: 64px; line-height: 1.0; font-weight: 500; letter-spacing: -0.032em; margin: 0; text-wrap: pretty; }
.nx-hero h1 em { font-style: italic; color: var(--nx-accent); }
.nx-hero p { font-size: 17px; line-height: 1.64; color: var(--nx-ink-2); margin: 0; max-width: 460px; text-wrap: pretty; }
.nx-pill {
  align-self: flex-start; display: inline-flex; align-items: center; gap: 9px;
  background: var(--nx-surface-2); border-radius: 999px; padding: 7px 15px; font-size: 12.5px; color: #4d534c;
}
.nx-pill-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--nx-accent); }
.nx-hero-actions { display: flex; gap: 12px; flex-wrap: wrap; }
.nx-hero-media { position: relative; border-radius: 5px; overflow: hidden; background: var(--nx-image-bg); aspect-ratio: 16 / 10; }
.nx-hero-media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.nx-hero-caption { position: absolute; left: 18px; right: 18px; bottom: 18px; display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; flex-wrap: wrap; }
.nx-hero-card { background: var(--nx-bg); border-radius: 4px; padding: 16px 20px; display: flex; flex-direction: column; gap: 4px; }
.nx-hero-card-title { font-family: var(--nx-serif); font-size: 21px; font-weight: 600; letter-spacing: -0.014em; color: var(--nx-ink); }
.nx-hero-card-meta { font-size: 13px; color: var(--nx-ink-2); font-variant-numeric: tabular-nums; }
.nx-hero-price { background: var(--nx-accent); color: #f4f7f2; border-radius: 4px; padding: 16px 20px; text-align: right; display: flex; flex-direction: column; gap: 2px; }
.nx-hero-price-main { font-family: var(--nx-serif); font-size: 27px; font-weight: 600; line-height: 1; font-variant-numeric: tabular-nums; }
.nx-hero-price-sub { font-size: 12.5px; color: #cfe0d6; font-variant-numeric: tabular-nums; }

.nx-search { background: var(--nx-surface); border: 1px solid #e6e1d8; border-radius: 5px; padding: 20px 22px; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)) auto; gap: 14px; align-items: end; }
.nx-field { display: flex; flex-direction: column; gap: 7px; }
.nx-field label { font-size: 11.5px; color: var(--nx-muted); letter-spacing: 0.06em; text-transform: uppercase; font-weight: 700; }
.nx-field select {
  border: 1px solid var(--nx-border-2); border-radius: 4px; padding: 11px 13px; font-size: 14.5px;
  background: var(--nx-surface); color: var(--nx-ink); font-family: var(--nx-sans); width: 100%;
}
.nx-search .nx-btn { border-radius: 4px; height: 44px; }

.nx-section-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; margin-bottom: 26px; flex-wrap: wrap; }
/* ---------- barre de filtres de la boutique ---------- */
.nx-barre-filtres {
  display: flex; flex-wrap: wrap; align-items: flex-end; gap: 14px;
  background: var(--nx-surface); border: 1px solid var(--nx-border);
  border-radius: 5px; padding: 16px 18px; margin-bottom: 22px;
}
.nx-filtre-champ { display: flex; flex-direction: column; gap: 5px; margin: 0; min-width: 0; flex: 1 1 170px; }
.nx-filtre-champ label {
  font-size: 11.5px; letter-spacing: .08em; text-transform: uppercase;
  color: var(--nx-muted); font-weight: 600;
}
.nx-barre-filtres select {
  width: 100%; min-height: 40px; padding: 8px 32px 8px 11px;
  border: 1px solid var(--nx-border-2); border-radius: 4px;
  background-color: var(--nx-bg); color: var(--nx-ink);
  font-family: inherit; font-size: 14px; line-height: 1.3;
  /* chevron dessiné en SVG inline : pas de police d'icônes dans le thème */
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%236b6a63' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 10px center;
  -webkit-appearance: none; -moz-appearance: none; appearance: none;
}
.nx-barre-filtres select:focus-visible { outline: 2px solid var(--nx-gold, #c09a5b); outline-offset: 1px; }
.nx-barre-filtres button { flex: 0 0 auto; min-height: 40px; }

@media (max-width: 782px) {
  .nx-barre-filtres { gap: 12px; padding: 14px; }
  .nx-filtre-champ { flex: 1 1 calc(50% - 6px); }
  /* cible tactile : 44 px sur les appareils sans survol */
  .nx-barre-filtres select, .nx-barre-filtres button { min-height: 44px; }
}
@media (max-width: 600px) {
  .nx-filtre-champ { flex: 1 1 100%; }
  .nx-barre-filtres button { width: 100%; justify-content: center; }
}

.nx-filters { display: flex; gap: 8px; flex-wrap: wrap; }
.nx-filter { border: 1px solid var(--nx-border-2); border-radius: 999px; padding: 8px 16px; font-size: 13.5px; color: var(--nx-ink-2); font-weight: 500; }
.nx-filter:hover { border-color: var(--nx-ink); color: var(--nx-ink); }
.nx-filter--on { background: var(--nx-dark); border-color: var(--nx-dark); color: var(--nx-bg); }
.nx-filter--on:hover { color: var(--nx-bg); }

.nx-dark-band { background: var(--nx-dark); color: #f2efe9; padding: 62px 0; }
.nx-dark-band h2, .nx-dark-band .nx-h2 { color: #f2efe9; }
.nx-dark-band .nx-eyebrow { color: #9aa39b; }
.nx-dark-band p { color: #b9c0b8; }
.nx-split { display: grid; grid-template-columns: 5fr 7fr; gap: 44px; align-items: start; }
.nx-steps { display: flex; flex-direction: column; border-top: 1px solid #2e332e; }
.nx-step { display: flex; gap: 22px; padding: 20px 0; border-bottom: 1px solid #2e332e; }
.nx-step-num { font-family: var(--nx-serif); font-size: 14px; color: var(--nx-gold); min-width: 30px; padding-top: 4px; font-variant-numeric: tabular-nums; }
.nx-step h3 { font-family: var(--nx-serif); font-size: 20px; font-weight: 500; color: #f2efe9; margin: 0 0 5px; }
.nx-step p { font-size: 14.5px; line-height: 1.6; color: #a8b0a7; margin: 0; max-width: 540px; }

.nx-cta { background: var(--nx-accent); color: #f4f7f2; border-radius: 5px; padding: 48px 52px; display: flex; justify-content: space-between; align-items: center; gap: 44px; flex-wrap: wrap; }
.nx-cta h2 { color: #f4f7f2; font-size: 36px; margin: 0 0 12px; }
.nx-cta p { color: #cfe0d6; font-size: 16px; line-height: 1.6; margin: 0; max-width: 540px; }
.nx-cta .nx-btn--dark { background: var(--nx-dark); border-color: var(--nx-dark); color: var(--nx-bg); }

/* ---------- panier, commande, compte ---------- */
.woocommerce-cart table.cart, .woocommerce table.shop_table {
  background: var(--nx-surface); border: 1px solid #e6e1d8; border-radius: 5px; border-collapse: separate;
}
.woocommerce table.shop_table th { font-family: var(--nx-sans); font-size: 13px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--nx-muted); }
.woocommerce-checkout .col2-set .col-1, .woocommerce-checkout .col2-set .col-2,
.woocommerce-account .woocommerce-MyAccount-navigation, .woocommerce-account .woocommerce-MyAccount-content { font-size: 15px; }
.woocommerce form.login, .woocommerce form.register, .woocommerce-account .woocommerce form.login,
.woocommerce form.checkout_coupon, .woocommerce form.lost_reset_password {
  background: var(--nx-surface); border: 1px solid #e6e1d8; border-radius: 5px; padding: 28px;
}
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea,
.woocommerce form .form-row select, .select2-container .select2-selection--single {
  border: 1px solid var(--nx-border-2); border-radius: 4px; padding: 12px 14px; font-size: 15px;
  background: var(--nx-surface); font-family: var(--nx-sans); color: var(--nx-ink); height: auto;
}
.woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; border: 1px solid #e6e1d8; border-radius: 5px; overflow: hidden; background: var(--nx-surface); }
.woocommerce-MyAccount-navigation li { border-bottom: 1px solid #eceae4; }
.woocommerce-MyAccount-navigation li:last-child { border-bottom: 0; }
.woocommerce-MyAccount-navigation li a { display: block; padding: 13px 18px; font-size: 14.5px; color: var(--nx-ink-2); font-weight: 500; }
.woocommerce-MyAccount-navigation li.is-active a { background: var(--nx-surface-2); color: var(--nx-ink); font-weight: 700; }
.woocommerce-message, .woocommerce-info, .woocommerce-error {
  border-top-color: var(--nx-accent); background: var(--nx-surface); border-radius: 4px;
  font-size: 14.5px; color: var(--nx-ink);
}
.woocommerce-message::before, .woocommerce-info::before { color: var(--nx-accent); }

/* ---------- pied de page ---------- */
.nx-footer { background: var(--nx-bg); border-top: 1px solid var(--nx-border); padding: 44px 0 30px; margin-top: 20px; }
.nx-footer-grid { display: grid; grid-template-columns: 2.6fr 1fr 1fr 1fr 1.2fr; gap: 34px; padding-bottom: 28px; }
.nx-footer h4 { font-family: var(--nx-sans); font-size: 12.5px; letter-spacing: 0.09em; text-transform: uppercase; font-weight: 700; color: var(--nx-ink); margin: 0 0 12px; }
.nx-footer ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 9px; }
.nx-footer li a { font-size: 13.5px; color: var(--nx-ink-2); }
.nx-footer li a:hover { color: var(--nx-accent); }
.nx-footer-brand { display: flex; gap: 11px; align-items: center; margin-bottom: 13px; }
.nx-footer-brand img { width: 30px; height: 30px; border-radius: 8px; }
.nx-footer-brand-name { font-family: var(--nx-serif); font-size: 19px; font-weight: 600; line-height: 1.1; }
.nx-footer-brand-tag { font-size: 12px; color: var(--nx-muted); font-style: italic; }
.nx-footer-legal { font-size: 13.5px; line-height: 1.6; color: var(--nx-muted); max-width: 300px; margin: 0; }
.nx-paychips { display: flex; flex-wrap: wrap; gap: 7px; }
.nx-paychip { border: 1px solid var(--nx-border-2); border-radius: 4px; padding: 5px 9px; font-size: 11px; color: var(--nx-ink-2); }
.nx-footer-bottom { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding-top: 20px; border-top: 1px solid var(--nx-border); font-size: 12.5px; color: var(--nx-muted); flex-wrap: wrap; }
.ast-small-footer, .site-footer .ast-footer-overlay, footer.site-footer > *:not(.nx-footer) { display: none !important; }

/* ---------- responsive ---------- */
@media (max-width: 1100px) {
  .nx-hero { grid-template-columns: 1fr; gap: 30px; }
  .nx-hero h1 { font-size: 50px; }
  .nx-split { grid-template-columns: 1fr; gap: 30px; }
  .woocommerce ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .nx-search { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .nx-search .nx-btn { grid-column: span 2; }
  .nx-footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .nx-trust { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .nx-trust-item:nth-child(2) { border-right: 0; }
  .nx-trust-item:nth-child(1), .nx-trust-item:nth-child(2) { border-bottom: 1px solid var(--nx-border); }
}
@media (max-width: 720px) {
  .nx-hero h1 { font-size: 38px; }
  .nx-h2, .woocommerce div.product .product_title { font-size: 28px; }
  .woocommerce ul.products { grid-template-columns: 1fr; }
  .nx-search { grid-template-columns: 1fr; }
  .nx-search .nx-btn { grid-column: span 1; }
  .nx-footer-grid { grid-template-columns: 1fr; }
  .nx-trust { grid-template-columns: 1fr; }
  .nx-trust-item { border-right: 0; border-bottom: 1px solid var(--nx-border); }
  .nx-trust-item:last-child { border-bottom: 0; }
  .nx-cta { padding: 32px 26px; }
  .nx-cta h2 { font-size: 28px; }
  .nx-paybox-modes { grid-template-columns: 1fr; }
  .nx-topbar-inner { font-size: 11.5px; gap: 8px; }
  .nx-topbar-list .nx-topbar-sep, .nx-topbar-list span:nth-child(n+3) { display: none; }
  .nx-section { padding: 40px 0; }
  .nx-btn, .woocommerce a.button, .woocommerce button.button { min-height: 46px; }
}

/* actions dans le menu principal */
.main-header-menu .nx-menu-action > a,
.ast-header-break-point .main-navigation .nx-menu-action > a { padding: 0 !important; line-height: 1 !important; }
.main-header-menu .nx-menu-action .nx-icon-btn { padding: 0 !important; }
.main-header-menu .nx-menu-action .nx-btn { color: #f4f7f2 !important; }
.main-header-menu .nx-menu-action .nx-btn:hover { color: #f4f7f2 !important; }
.main-header-menu .nx-menu-action > a::after,
.main-header-menu .nx-menu-action > a::before { display: none !important; }
.nx-menu-action { display: flex; align-items: center; margin-left: 8px; }
@media (max-width: 921px) {
  .nx-menu-action { margin: 8px 0 0 20px; }
}

/* carte véhicule */
.nx-card-media { position: relative; display: block; line-height: 0; background: var(--nx-image-bg); }
.nx-card-titlelink { color: inherit; display: block; }
.nx-card-titlelink:hover .woocommerce-loop-product__title { color: var(--nx-accent); }
.woocommerce ul.products li.product .nx-card-media img { margin: 0; }
.woocommerce ul.products li.product .astra-shop-summary-wrap,
.woocommerce ul.products li.product .ast-shop-product-out-of-stock,
.woocommerce ul.products li.product .star-rating,
.woocommerce ul.products li.product .woocommerce-loop-category__title { display: none; }

/* fiche : on masque les méta natives (UGS, catégorie) déjà présentes ailleurs */
.woocommerce div.product .product_meta { display: none; }
.woocommerce div.product form.cart .reset_variations { font-size: 13px; color: var(--nx-muted); }
.woocommerce div.product .woocommerce-variation-add-to-cart { display: flex; gap: 12px; align-items: center; }
.woocommerce div.product .woocommerce-variation-price .price { font-family: var(--nx-serif); font-size: 26px; font-weight: 600; }

/* pied de carte : prix puis bouton, sans casse de ligne */
.nx-card-foot { flex-wrap: wrap; align-items: center; }
.nx-price-block { flex: 1 1 auto; min-width: 0; }
.nx-price-sub { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.nx-card-foot .nx-btn { flex: 0 0 auto; }
.nx-paybox-note { font-size: 12.5px; line-height: 1.55; color: #8b958a; margin: 6px 0 0; }
@media (max-width: 400px) {
  .nx-card-foot { flex-direction: column; align-items: stretch; gap: 12px; }
  .nx-card-foot .nx-btn { justify-content: center; }
}

/* ============================================================ pages internes */

/* bandeau de tête */
.nx-page-hero { position: relative; overflow: hidden; margin-bottom: 8px; }
.nx-page-hero--dark { background: var(--nx-dark); color: #f2efe9; }
.nx-page-hero--dark .nx-eyebrow { color: #9aa39b; }
.nx-page-hero--dark p { color: #b9c0b8; }
.nx-page-hero--light { background: var(--nx-surface-2); }
.nx-page-hero-inner { max-width: var(--nx-max); margin: 0 auto; padding: 62px 20px; display: grid; grid-template-columns: 6fr 5fr; gap: 48px; align-items: center; }
.nx-page-hero h1 { font-family: var(--nx-serif); font-size: 54px; line-height: 1.03; font-weight: 500; letter-spacing: -0.03em; margin: 14px 0 18px; text-wrap: pretty; }
.nx-page-hero--dark h1 { color: #f2efe9; }
.nx-page-hero h1 em { font-style: italic; color: var(--nx-gold); }
.nx-page-hero--light h1 em { color: var(--nx-accent); }
.nx-page-hero p { font-size: 17.5px; line-height: 1.62; margin: 0; max-width: 520px; color: var(--nx-ink-2); }
.nx-page-hero-media { border-radius: 5px; overflow: hidden; aspect-ratio: 4 / 3; background: var(--nx-image-bg); position: relative; }
.nx-page-hero-media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.nx-hero-actions-row { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 24px; }

/* mosaïque de photos */
.nx-mosaic { display: grid; grid-template-columns: 2fr 1fr; grid-template-rows: repeat(2, 1fr); gap: 10px; aspect-ratio: 4 / 3; }
.nx-mosaic span { border-radius: 4px; overflow: hidden; background: var(--nx-image-bg); }
.nx-mosaic span:first-child { grid-row: span 2; }
.nx-mosaic img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* grilles de cartes */
.nx-cols-2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.nx-cols-3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.nx-cols-4 { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.nx-card {
  background: var(--nx-surface); border: 1px solid #e6e1d8; border-radius: 5px;
  padding: 26px; display: flex; flex-direction: column; gap: 12px;
}
.nx-card--accent { background: var(--nx-accent); color: #f4f7f2; border-color: var(--nx-accent); }
.nx-card--accent h3, .nx-card--accent .nx-card-num { color: #f4f7f2; }
.nx-card--accent p { color: #cfe0d6; }
.nx-card--dark { background: var(--nx-dark); color: #f2efe9; border-color: var(--nx-dark); }
.nx-card--dark h3 { color: #f2efe9; }
.nx-card--dark p { color: #a8b0a7; }
.nx-card-icon { color: var(--nx-accent); display: flex; }
.nx-card--accent .nx-card-icon, .nx-card--dark .nx-card-icon { color: var(--nx-gold); }
.nx-card-num { font-family: var(--nx-serif); font-size: 13px; letter-spacing: 0.12em; color: var(--nx-gold); font-variant-numeric: tabular-nums; }
.nx-card h3 { font-family: var(--nx-serif); font-size: 21px; font-weight: 600; margin: 0; letter-spacing: -0.012em; }
.nx-card p { margin: 0; font-size: 14.5px; line-height: 1.6; color: var(--nx-ink-2); }
.nx-card-media { border-radius: 4px; overflow: hidden; aspect-ratio: 16 / 10; background: var(--nx-image-bg); margin: -26px -26px 4px; }
.nx-card-media img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* rangée texte + image alternée */
.nx-media-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 48px; align-items: center; padding: 46px 0; }
.nx-media-row--reverse .nx-media-row-text { order: 2; }
.nx-media-row-text { display: flex; flex-direction: column; gap: 15px; }
.nx-media-row-img { border-radius: 5px; overflow: hidden; aspect-ratio: 4 / 3; background: var(--nx-image-bg); }
.nx-media-row-img img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* liste à puces cochées */
.nx-checklist { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 11px; }
.nx-checklist li { display: flex; gap: 11px; align-items: flex-start; font-size: 15px; line-height: 1.55; color: var(--nx-ink-2); }
.nx-checklist svg { flex-shrink: 0; margin-top: 3px; color: var(--nx-accent); }
.nx-checklist--dark li { color: #b9c0b8; }
.nx-checklist--dark svg { color: var(--nx-gold); }
.nx-checklist--no svg { color: #b04a3a; }

/* étiquettes */
.nx-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.nx-chip { border: 1px solid var(--nx-border-2); border-radius: 999px; padding: 7px 14px; font-size: 13px; color: var(--nx-ink-2); background: var(--nx-surface); }
.nx-chip--on { background: var(--nx-accent); border-color: var(--nx-accent); color: #f4f7f2; }
.nx-chip--dark { background: transparent; border-color: #3a4038; color: #b9c0b8; }

/* tableau comparatif couvert / non couvert */
.nx-compare { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; border: 1px solid #e6e1d8; border-radius: 5px; overflow: hidden; background: var(--nx-surface); }
.nx-compare-col { padding: 28px; }
.nx-compare-col + .nx-compare-col { border-left: 1px solid #e6e1d8; background: #faf9f6; }
.nx-compare-head { display: flex; align-items: center; gap: 10px; margin-bottom: 18px; }
.nx-compare-head h3 { font-family: var(--nx-serif); font-size: 20px; margin: 0; font-weight: 600; }

/* frise */
.nx-timeline { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; position: relative; }
.nx-timeline-step { padding: 0 22px 0 0; position: relative; display: flex; flex-direction: column; gap: 10px; }
.nx-timeline-dot { width: 34px; height: 34px; border-radius: 50%; background: var(--nx-accent); color: #f4f7f2; display: flex; align-items: center; justify-content: center; font-size: 13px; font-weight: 700; font-family: var(--nx-serif); position: relative; z-index: 2; }
.nx-timeline-step::after { content: ""; position: absolute; top: 17px; left: 34px; right: 0; height: 1px; background: var(--nx-border-2); }
.nx-timeline-step:last-child::after { display: none; }
.nx-timeline-step h3 { font-family: var(--nx-serif); font-size: 19px; margin: 4px 0 0; font-weight: 600; }
.nx-timeline-step p { margin: 0; font-size: 14px; line-height: 1.58; color: var(--nx-ink-2); }

/* questions fréquentes */
.nx-faq { display: flex; flex-direction: column; border-top: 1px solid var(--nx-border); }
.nx-faq details { border-bottom: 1px solid var(--nx-border); }
.nx-faq summary {
  list-style: none; cursor: pointer; padding: 20px 40px 20px 0; position: relative;
  font-family: var(--nx-serif); font-size: 19px; font-weight: 600; color: var(--nx-ink);
}
.nx-faq summary::-webkit-details-marker { display: none; }
.nx-faq summary::after {
  content: "+"; position: absolute; right: 6px; top: 50%; transform: translateY(-50%);
  font-family: var(--nx-sans); font-size: 22px; font-weight: 400; color: var(--nx-accent);
}
.nx-faq details[open] summary::after { content: "–"; }
.nx-faq details p { margin: 0 0 20px; font-size: 15px; line-height: 1.66; color: var(--nx-ink-2); max-width: 720px; }

/* formulaire */
.nx-form { background: var(--nx-surface); border: 1px solid #e6e1d8; border-radius: 5px; padding: 30px; display: flex; flex-direction: column; gap: 16px; }
.nx-form-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.nx-form label { display: flex; flex-direction: column; gap: 7px; font-size: 12.5px; letter-spacing: 0.05em; text-transform: uppercase; font-weight: 700; color: var(--nx-muted); }
.nx-form input, .nx-form textarea, .nx-form select {
  border: 1px solid var(--nx-border-2); border-radius: 4px; padding: 12px 14px;
  font-size: 15px; font-family: var(--nx-sans); color: var(--nx-ink); background: var(--nx-surface);
  text-transform: none; letter-spacing: 0; font-weight: 400; width: 100%;
}
.nx-form input:focus, .nx-form textarea:focus, .nx-form select:focus { outline: none; border-color: var(--nx-accent); }
.nx-form textarea { resize: vertical; min-height: 130px; }
.nx-form-hp { position: absolute; left: -9999px; }
.nx-form-note { font-size: 12.5px; color: var(--nx-muted); line-height: 1.55; margin: 0; }
.nx-alert { border-radius: 4px; padding: 14px 18px; font-size: 14.5px; line-height: 1.55; }
.nx-alert--ok { background: #e8f1ea; border: 1px solid #b9d6c4; color: #14523f; }
.nx-alert--ko { background: #f7eae8; border: 1px solid #e0c0ba; color: #8f3527; }

/* moyens de contact */
.nx-contact-list { display: flex; flex-direction: column; gap: 14px; }
.nx-contact-item { display: flex; gap: 16px; align-items: flex-start; background: var(--nx-surface); border: 1px solid #e6e1d8; border-radius: 5px; padding: 20px 22px; }
.nx-contact-item:hover { border-color: var(--nx-accent); }
.nx-contact-icon { width: 42px; height: 42px; border-radius: 50%; background: var(--nx-surface-2); color: var(--nx-accent); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.nx-contact-item h3 { font-family: var(--nx-serif); font-size: 18px; margin: 0 0 4px; font-weight: 600; }
.nx-contact-item p { margin: 0; font-size: 14px; line-height: 1.55; color: var(--nx-ink-2); }
.nx-contact-item strong { color: var(--nx-ink); }

/* couverture géographique */
.nx-zones { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; }
.nx-zone { background: var(--nx-surface); border: 1px solid #e6e1d8; border-radius: 5px; padding: 16px; display: flex; flex-direction: column; gap: 4px; text-align: center; }
.nx-zone-pays { font-family: var(--nx-serif); font-size: 17px; font-weight: 600; }
.nx-zone-delai { font-size: 12.5px; color: var(--nx-muted); font-variant-numeric: tabular-nums; }

/* citation */
.nx-quote { border-left: 3px solid var(--nx-gold); padding: 6px 0 6px 26px; margin: 0; }
.nx-quote p { font-family: var(--nx-serif); font-size: 25px; line-height: 1.42; font-weight: 500; margin: 0 0 10px; letter-spacing: -0.014em; }
.nx-quote cite { font-style: normal; font-size: 13.5px; color: var(--nx-muted); }

/* bande de chiffres sur fond sombre */
.nx-figures { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; }
.nx-figure { padding: 26px 28px; border-right: 1px solid #2e332e; display: flex; flex-direction: column; gap: 6px; }
.nx-figure:last-child { border-right: 0; }
.nx-figure-num { font-family: var(--nx-serif); font-size: 38px; font-weight: 500; color: var(--nx-gold); letter-spacing: -0.02em; font-variant-numeric: tabular-nums; line-height: 1; }
.nx-figure-label { font-size: 13.5px; color: #a8b0a7; line-height: 1.5; }

/* bande photo pleine largeur */
.nx-strip { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; }
.nx-strip span { aspect-ratio: 4 / 3; border-radius: 4px; overflow: hidden; background: var(--nx-image-bg); }
.nx-strip img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* emplacement à remplir */
.nx-todo {
  border: 1px dashed var(--nx-border-2); border-radius: 5px; padding: 16px 20px;
  font-size: 13.5px; line-height: 1.6; color: var(--nx-muted); background: #fbfaf7;
}
.nx-todo strong { color: var(--nx-ink-2); }

@media (max-width: 1100px) {
  .nx-page-hero-inner { grid-template-columns: 1fr; gap: 32px; padding: 44px 20px; }
  .nx-page-hero h1 { font-size: 40px; }
  .nx-cols-3, .nx-cols-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .nx-media-row { grid-template-columns: 1fr; gap: 26px; padding: 32px 0; }
  .nx-media-row--reverse .nx-media-row-text { order: 0; }
  .nx-timeline { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 26px 0; }
  .nx-timeline-step::after { display: none; }
  .nx-figures { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .nx-figure:nth-child(2) { border-right: 0; }
  .nx-zones { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .nx-strip { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 720px) {
  .nx-page-hero h1 { font-size: 32px; }
  .nx-cols-2, .nx-cols-3, .nx-cols-4 { grid-template-columns: 1fr; }
  .nx-compare { grid-template-columns: 1fr; }
  .nx-compare-col + .nx-compare-col { border-left: 0; border-top: 1px solid #e6e1d8; }
  .nx-timeline { grid-template-columns: 1fr; }
  .nx-figures { grid-template-columns: 1fr; }
  .nx-figure { border-right: 0; border-bottom: 1px solid #2e332e; }
  .nx-figure:last-child { border-bottom: 0; }
  .nx-zones { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .nx-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .nx-form-row { grid-template-columns: 1fr; }
  .nx-form { padding: 22px; }
  .nx-mosaic { aspect-ratio: 3 / 2; }
}

/* ====================================================== finitions générales */
html { scroll-behavior: smooth; }
::selection { background: var(--nx-accent); color: #f4f7f2; }
:focus-visible { outline: 2px solid var(--nx-accent); outline-offset: 2px; border-radius: 3px; }

/* en-tête collant */
.site-header { position: sticky; top: 0; z-index: 90; }
.admin-bar .site-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .site-header { top: 46px; } }
.ast-primary-header-bar { transition: box-shadow .2s ease; }
body.nx-scrolled .ast-primary-header-bar { box-shadow: 0 1px 0 var(--nx-border), 0 6px 24px rgba(25,28,26,.06) !important; }

/* cartes : relief au survol */
.woocommerce ul.products li.product,
.nx-card, .nx-contact-item, .nx-thread, .nx-zone {
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.woocommerce ul.products li.product:hover,
.nx-contact-item:hover, .nx-thread:hover, .nx-zone:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 30px rgba(25, 28, 26, 0.07);
  border-color: var(--nx-border-2);
}
.nx-card-media, .woocommerce ul.products li.product .nx-card-media { overflow: hidden; }
.nx-card-media img, .woocommerce ul.products li.product .nx-card-media img,
.nx-media-row-img img, .nx-page-hero-media img, .nx-hero-media img, .nx-strip img, .nx-mosaic img {
  transition: transform .5s cubic-bezier(.2,.7,.3,1);
}
.woocommerce ul.products li.product:hover .nx-card-media img,
.nx-hero-media:hover img, .nx-strip span:hover img, .nx-mosaic span:hover img { transform: scale(1.045); }
.nx-btn, .woocommerce a.button, .woocommerce button.button { transition: background .15s ease, border-color .15s ease, color .15s ease, transform .12s ease; }
.nx-btn:active, .woocommerce a.button:active, .woocommerce button.button:active { transform: translateY(1px); }

/* tri et pagination de la boutique */
.woocommerce .woocommerce-ordering select {
  border: 1px solid var(--nx-border-2); border-radius: 999px; padding: 10px 16px;
  font-family: var(--nx-sans); font-size: 14px; background: var(--nx-surface); color: var(--nx-ink);
}
.woocommerce .woocommerce-result-count { font-size: 14px; color: var(--nx-muted); margin-top: 12px; }
.woocommerce nav.woocommerce-pagination ul { border: 0; display: flex; gap: 8px; justify-content: center; margin-top: 34px; }
.woocommerce nav.woocommerce-pagination ul li { border: 0; }
.woocommerce nav.woocommerce-pagination ul li a, .woocommerce nav.woocommerce-pagination ul li span {
  border: 1px solid var(--nx-border-2); border-radius: 999px; min-width: 42px; height: 42px;
  display: flex; align-items: center; justify-content: center; font-size: 14.5px; color: var(--nx-ink-2); padding: 0 12px;
}
.woocommerce nav.woocommerce-pagination ul li span.current,
.woocommerce nav.woocommerce-pagination ul li a:hover { background: var(--nx-accent); border-color: var(--nx-accent); color: #f4f7f2; }

/* galerie de la fiche véhicule */
.woocommerce div.product div.images .flex-viewport, .woocommerce div.product div.images .woocommerce-product-gallery__image { border-radius: 5px; overflow: hidden; }
.woocommerce div.product div.images .flex-control-thumbs { display: grid; grid-template-columns: repeat(5, 1fr); gap: 8px; margin-top: 10px; }
.woocommerce div.product div.images .flex-control-thumbs li { width: 100%; margin: 0; }
.woocommerce div.product div.images .flex-control-thumbs img { border-radius: 4px; opacity: .7; transition: opacity .15s ease; }
.woocommerce div.product div.images .flex-control-thumbs img:hover,
.woocommerce div.product div.images .flex-control-thumbs img.flex-active { opacity: 1; }
.woocommerce div.product .woocommerce-product-gallery__trigger { border-radius: 999px; }

/* panier */
.woocommerce-cart .cart_totals, .woocommerce-checkout #order_review {
  background: var(--nx-surface); border: 1px solid #e6e1d8; border-radius: 5px; padding: 26px;
}
.woocommerce-cart .cart_totals h2, .woocommerce-checkout h3, .woocommerce-checkout #order_review_heading {
  font-family: var(--nx-serif); font-size: 24px; font-weight: 500; letter-spacing: -0.02em;
}
.woocommerce table.shop_table td, .woocommerce table.shop_table th { border-top-color: #eceae4; padding: 16px 14px; }
.woocommerce a.remove { color: #b04a3a !important; }
.woocommerce a.remove:hover { background: #b04a3a !important; color: #fff !important; }
.woocommerce .cart-collaterals .cart_totals tr th { color: var(--nx-ink-2); }
.woocommerce ul#shipping_method li label { font-size: 14.5px; }
.woocommerce-cart-form__cart-item .product-name a { font-family: var(--nx-serif); font-size: 17px; font-weight: 600; }

/* validation de commande */
.woocommerce-checkout .woocommerce-billing-fields h3 { margin-bottom: 18px; }
.woocommerce-checkout-review-order-table tfoot .order-total .amount { font-family: var(--nx-serif); font-size: 24px; color: var(--nx-accent); }
#payment .payment_methods li { border-bottom: 1px solid #eceae4; padding: 14px 0; }
#payment .payment_box { background: var(--nx-surface-2) !important; border-radius: 4px; font-size: 14px; }
#payment .payment_box::before { border-bottom-color: var(--nx-surface-2) !important; }
.woocommerce-terms-and-conditions-wrapper { font-size: 13.5px; color: var(--nx-ink-2); }

/* espace client */
.woocommerce-account .woocommerce-MyAccount-content { background: transparent; }
.woocommerce-account .woocommerce-MyAccount-content > p:first-child { font-size: 16px; color: var(--nx-ink-2); }
.woocommerce-account .addresses .title h3 { font-family: var(--nx-serif); font-size: 20px; }
.woocommerce-account address { background: var(--nx-surface); border: 1px solid #e6e1d8; border-radius: 5px; padding: 18px 20px; font-style: normal; font-size: 14.5px; line-height: 1.7; }

/* page 404 et recherche */
.error404 .site-content, .search-no-results .site-content { text-align: center; }
.error404 .page-title, .search .page-title { font-family: var(--nx-serif); font-size: 44px; }

/* comparateur et favoris (extensions) */
.woocommerce ul.products li.product .compare,
.woocommerce ul.products li.product .tinvwl_add_to_wishlist_button,
.nx-card-actions a {
  display: inline-flex !important; align-items: center; gap: 7px;
  border: 1px solid var(--nx-border-2) !important; border-radius: 999px !important;
  background: var(--nx-surface) !important; color: var(--nx-ink-2) !important;
  padding: 8px 15px !important; font-size: 13px !important; font-weight: 500 !important;
  font-family: var(--nx-sans) !important; margin: 0 !important; line-height: 1.2 !important;
}
.woocommerce ul.products li.product .compare:hover,
.woocommerce ul.products li.product .tinvwl_add_to_wishlist_button:hover {
  border-color: var(--nx-accent) !important; color: var(--nx-accent) !important; background: var(--nx-surface) !important;
}
.nx-card-actions { display: flex; gap: 8px; flex-wrap: wrap; padding-top: 4px; }
.tinv-wishlist .tinvwl_add_to_wishlist_button::before { font-size: 14px !important; }
.woocommerce div.product .compare, .woocommerce div.product .tinvwl_add_to_wishlist_button {
  border: 1px solid var(--nx-border-2) !important; border-radius: 999px !important;
  background: var(--nx-surface) !important; color: var(--nx-ink) !important;
  padding: 12px 22px !important; font-size: 14.5px !important; font-weight: 600 !important;
}
.yith-woocompare-widget a.clear-all, .yith_woocompare_table { font-family: var(--nx-sans) !important; }

/* boutons de variation (mode de paiement) */
.woo-variation-swatches .variable-items-wrapper { gap: 10px; }
.woo-variation-swatches .variable-items-wrapper .variable-item:not(.radio-variable-item) {
  border-radius: 999px !important; box-shadow: none !important; border: 1px solid var(--nx-border-2) !important;
  padding: 10px 18px !important; background: var(--nx-surface) !important;
}
.woo-variation-swatches .variable-items-wrapper .variable-item.selected,
.woo-variation-swatches .variable-items-wrapper .variable-item:hover {
  border-color: var(--nx-accent) !important; background: var(--nx-accent) !important; box-shadow: none !important;
}
.woo-variation-swatches .variable-items-wrapper .variable-item.selected .variable-item-span,
.woo-variation-swatches .variable-items-wrapper .variable-item:hover .variable-item-span { color: #f4f7f2 !important; }
.woo-variation-swatches .variable-item-span { font-family: var(--nx-sans); font-size: 14px; font-weight: 600; }

/* barre d'admin Yoast et divers : ne pas casser la mise en page */
.woocommerce .products .yith-wcwl-add-to-wishlist { margin-top: 0; }

/* apparition douce */
.nx-apparait { opacity: 0; transform: translateY(14px); }
.nx-apparait.nx-vu { opacity: 1; transform: none; transition: opacity .5s ease, transform .5s cubic-bezier(.2,.7,.3,1); }
@media (prefers-reduced-motion: reduce) {
  .nx-apparait, .nx-apparait.nx-vu { opacity: 1; transform: none; transition: none; }
  html { scroll-behavior: auto; }
}

/* ================================================ actions d'en-tête et panier */
.nx-actions {
  display: flex; align-items: center; gap: 9px;
  margin-left: 14px; flex-shrink: 0;
}
.nx-actions-source { display: flex; align-items: center; gap: 9px; }
.main-header-menu .nx-actions-source > a { padding: 0 !important; }

.nx-cart {
  gap: 10px !important; padding-left: 16px !important; padding-right: 20px !important;
  position: relative; white-space: nowrap;
}
.nx-cart-ico { position: relative; display: inline-flex; align-items: center; }
.nx-cart-texte { display: inline-flex; flex-direction: column; align-items: flex-start; line-height: 1.15; }
.nx-cart-label { font-size: 14px; font-weight: 600; }
.nx-cart-total { font-size: 11.5px; font-weight: 600; opacity: .82; font-variant-numeric: tabular-nums; }
.nx-cart-total .woocommerce-Price-amount { font-size: inherit; }
.nx-badge-count--cart {
  position: absolute; top: -7px; right: -9px;
  background: var(--nx-gold); color: #2b2210; border: 2px solid var(--nx-accent);
  min-width: 19px; height: 19px; font-size: 10.5px;
}
.nx-cart--plein { box-shadow: 0 2px 12px rgba(27, 77, 62, .28); }
.nx-cart:hover .nx-badge-count--cart { border-color: var(--nx-accent-d); }
.nx-icon-btn { position: relative; }

/* ===================================================== reprise du responsive */

/* titres fluides : plus de sauts brutaux entre les paliers */
.nx-hero h1 { font-size: clamp(2.05rem, 1.15rem + 3.6vw, 4rem); }
.nx-page-hero h1 { font-size: clamp(1.85rem, 1.05rem + 3.1vw, 3.375rem); }
.nx-h2, .woocommerce div.product .product_title { font-size: clamp(1.6rem, 1.15rem + 1.7vw, 2.375rem); }
.nx-trust-num, .nx-figure-num { font-size: clamp(1.55rem, 1.1rem + 1.5vw, 2.375rem); }
.nx-cta h2 { font-size: clamp(1.55rem, 1.1rem + 1.7vw, 2.25rem); }
.nx-quote p { font-size: clamp(1.15rem, .95rem + .8vw, 1.5625rem); }

/* rien ne déborde jamais horizontalement */
/* on ne coupe pas le dépassement sur html : cela casserait l'en-tête collant.
   On empêche plutôt chaque bloc de dépasser. */
body { max-width: 100%; }
.nx-wrap, .nx-page-hero, .nx-dark-band, .nx-section, .site-content { min-width: 0; }
.nx-hero, .nx-split, .nx-cols-2, .nx-cols-3, .nx-cols-4, .nx-media-row,
.nx-search, .nx-zones, .nx-strip, .nx-footer-grid, .nx-timeline,
.woocommerce ul.products { min-width: 0; }
.nx-hero > *, .nx-split > *, .nx-media-row > *, .nx-card, .nx-zone { min-width: 0; }
img, svg, video, iframe, table { max-width: 100%; }
.nx-scroll-x {
  overflow-x: auto; -webkit-overflow-scrolling: touch; margin: 0 0 18px;
  max-width: 100%; min-width: 0;
}
.nx-scroll-x > table { min-width: 520px; margin-bottom: 0; }

/* --- grand écran --- */
@media (min-width: 1101px) {
  .nx-actions { margin-left: 18px; }
}

/* --- tablette large : le menu Astra bascule à 921px --- */
@media (max-width: 921px) {
  .nx-actions { margin-left: auto; margin-right: 10px; order: 5; }
  .site-header-primary-section-right { display: flex; align-items: center; }
  .nx-cart { padding-left: 13px !important; padding-right: 13px !important; gap: 0 !important; }
  .nx-cart-texte { display: none; }
  .nx-cart .nx-cart-ico svg { width: 19px; height: 19px; }
  .nx-icon-btn, .nx-cart { width: 42px; height: 42px; min-height: 42px; border-radius: 999px; justify-content: center; }
  .nx-badge-count--cart { top: -6px; right: -6px; }
  /* la copie du menu n'est masquée que si le déplacement a réussi */
  .nx-actions-ok .main-header-menu .nx-actions-source,
  .nx-actions-ok .ast-mobile-popup-content .nx-actions-source { display: none; }
}

/* --- tablette --- */
@media (max-width: 1024px) {
  .nx-wrap, .ast-container { padding-left: 22px; padding-right: 22px; }
  .nx-section { padding: 48px 0; }
  .nx-dark-band { padding: 48px 0; }
  .nx-page-hero-inner { padding: 44px 22px; }
  .nx-hero { padding: 40px 0 32px; }
  .nx-hero-media { aspect-ratio: 16 / 10; }
  .nx-strip { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .nx-strip span:nth-child(n+4) { display: none; }
}

/* --- petites tablettes et grands téléphones --- */
@media (max-width: 782px) {
  .nx-hero-caption { position: static; padding: 14px 0 0; flex-direction: column; align-items: stretch; }
  .nx-hero-media { aspect-ratio: auto; height: auto; overflow: visible; background: transparent; }
  .nx-hero-media img { position: static; aspect-ratio: 16 / 10; border-radius: 5px; }
  .nx-hero-card, .nx-hero-price { border-radius: 4px; }
  .nx-hero-price { text-align: left; }
  .nx-page-hero-media { aspect-ratio: 16 / 10; }
  .nx-mosaic { grid-template-columns: 1fr 1fr; grid-template-rows: auto; aspect-ratio: auto; }
  .nx-mosaic span:first-child { grid-column: span 2; grid-row: auto; aspect-ratio: 16 / 9; }
  .nx-mosaic span:not(:first-child) { aspect-ratio: 4 / 3; }
}

/* --- téléphone --- */
@media (max-width: 600px) {
  .nx-wrap, .ast-container { padding-left: 18px; padding-right: 18px; }
  .nx-section { padding: 36px 0; }
  .nx-section-head { flex-direction: column; align-items: flex-start; gap: 14px; }
  .nx-filters { width: 100%; overflow-x: auto; flex-wrap: nowrap; padding-bottom: 6px; -webkit-overflow-scrolling: touch; }
  .nx-filter { flex-shrink: 0; }
  .nx-hero-actions, .nx-hero-actions-row { width: 100%; }
  .nx-hero-actions .nx-btn, .nx-hero-actions-row .nx-btn { flex: 1 1 auto; justify-content: center; }
  .nx-cta { flex-direction: column; align-items: stretch; gap: 22px; padding: 28px 22px; }
  .nx-cta .nx-btn { width: 100%; justify-content: center; }
  .nx-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .nx-strip span:nth-child(n+3) { display: none; }
  .nx-quote { padding-left: 18px; }
  .nx-form { padding: 20px; }
  .nx-topbar-inner { justify-content: center; text-align: center; }
  .nx-footer-bottom { flex-direction: column; align-items: flex-start; gap: 8px; }
  .nx-chat-body { max-height: 340px; }
  .nx-chat-note { padding: 0 14px 12px; }
  .nx-chat-form { padding: 12px 14px; }
  .nx-chat-form button span { display: none; }
  .nx-chat-form button { width: 44px; height: 44px; padding: 0 !important; justify-content: center; border-radius: 999px; }

  /* panier : tableau en cartes */
  .woocommerce table.shop_table_responsive tr, .woocommerce-page table.shop_table_responsive tr { display: block; border: 1px solid #e6e1d8; border-radius: 5px; margin-bottom: 12px; background: var(--nx-surface); }
  .woocommerce table.shop_table_responsive tbody th { display: none; }
  .woocommerce table.shop_table_responsive tr td { display: flex; justify-content: space-between; gap: 14px; align-items: center; text-align: right; border-top: 0; border-bottom: 1px solid #eceae4; padding: 12px 14px; }
  .woocommerce table.shop_table_responsive tr td:last-child { border-bottom: 0; }
  .woocommerce table.shop_table_responsive tr td::before { content: attr(data-title); font-weight: 700; font-size: 12px; letter-spacing: .05em; text-transform: uppercase; color: var(--nx-muted); float: none; }
  .woocommerce table.shop_table_responsive tr td.product-remove::before { content: ""; }
  .woocommerce-cart table.cart img { width: 64px; }
  .woocommerce .cart-collaterals .cart_totals, .woocommerce-page .cart-collaterals .cart_totals { width: 100%; float: none; }
  .woocommerce #content table.cart td.actions .coupon .input-text { width: 100%; margin-bottom: 10px; }

  /* validation de commande */
  .woocommerce-checkout .col2-set .col-1, .woocommerce-checkout .col2-set .col-2 { width: 100%; float: none; }
  .woocommerce form .form-row-first, .woocommerce form .form-row-last { width: 100%; float: none; margin-right: 0; }

  /* espace client : menu horizontal défilable */
  .woocommerce-account .woocommerce-MyAccount-navigation { width: 100%; float: none; margin-bottom: 20px; }
  .woocommerce-account .woocommerce-MyAccount-navigation ul { display: flex; overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .woocommerce-account .woocommerce-MyAccount-navigation li { border-bottom: 0; border-right: 1px solid #eceae4; white-space: nowrap; }
  .woocommerce-account .woocommerce-MyAccount-content { width: 100%; float: none; }

  /* galerie produit */
  .woocommerce div.product div.images .flex-control-thumbs { grid-template-columns: repeat(4, 1fr); }
  .woocommerce div.product .woocommerce-variation-add-to-cart { flex-wrap: wrap; }
  .woocommerce div.product .woocommerce-variation-add-to-cart .button { width: 100%; justify-content: center; }
}

/* --- très petits écrans --- */
@media (max-width: 380px) {
  .nx-wrap, .ast-container { padding-left: 14px; padding-right: 14px; }
  .nx-actions { gap: 6px; margin-right: 6px; }
  .nx-icon-btn, .nx-cart { width: 38px; height: 38px; min-height: 38px; }
  .site-title, .site-title a { font-size: 20px !important; }
  .site-description { display: none !important; }
  .nx-chips { gap: 6px; }
  .nx-chip { padding: 6px 11px; font-size: 12px; }
}

/* cibles tactiles confortables */
@media (hover: none) and (pointer: coarse) {
  .nx-btn, .woocommerce a.button, .woocommerce button.button, .nx-filter, .nx-chip,
  .woocommerce-MyAccount-navigation li a, .nx-faq summary { min-height: 44px; }
  .nx-faq summary { display: flex; align-items: center; }
  .woocommerce ul.products li.product:hover { transform: none; box-shadow: none; }
  .woocommerce ul.products li.product:hover .nx-card-media img { transform: none; }
}


/* les actions suivent l'en-tête visible (bureau ou mobile) */
.site-header-primary-section-right { display: flex; align-items: center; }
.ast-mobile-header-wrap .nx-actions { margin-left: auto; margin-right: 6px; align-self: center; }
.ast-mobile-header-wrap .site-header-primary-section-right { align-items: center; }
.nx-actions:empty { display: none; }
.nx-actions > * { flex-shrink: 0; }

/* sur mobile : icônes d'abord, bouton menu tout à droite */
@media (max-width: 921px) {
  .ast-mobile-header-wrap .site-header-primary-section-right { gap: 8px; }
  .ast-mobile-header-wrap .site-header-primary-section-right > .nx-actions { order: 1; margin-right: 2px; }
  .ast-mobile-header-wrap .site-header-primary-section-right > .ast-builder-layout-element { order: 2; }
}

/* ================================ grille produits : paliers rendus prioritaires
   Astra génère ses propres règles de colonnes ; on impose les nôtres. */
.woocommerce ul.products,
.woocommerce-page ul.products,
.woocommerce div.product section.related ul.products,
.woocommerce div.product section.upsells ul.products {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 24px !important;
}
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
  width: 100% !important; margin: 0 !important; float: none !important; clear: none !important;
  max-width: 100% !important; min-width: 0;
}
@media (max-width: 921px) {
  .woocommerce ul.products,
  .woocommerce-page ul.products,
  .woocommerce div.product section.related ul.products,
  .woocommerce div.product section.upsells ul.products {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 18px !important;
  }
}
@media (max-width: 600px) {
  .woocommerce ul.products,
  .woocommerce-page ul.products,
  .woocommerce div.product section.related ul.products,
  .woocommerce div.product section.upsells ul.products {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 16px !important;
  }
}
/* les images de carte ne dépassent jamais leur colonne */
.woocommerce ul.products li.product .nx-card-media { max-width: 100%; }
.woocommerce ul.products li.product .nx-card-media img { width: 100%; max-width: 100%; display: block; }


/* le panier et la commande ne dépassent jamais, quelle que soit la largeur */
.woocommerce table.shop_table, .woocommerce-page table.shop_table { width: 100%; max-width: 100%; table-layout: auto; }
.woocommerce table.shop_table .product-name a { word-break: break-word; }
.woocommerce-cart .woocommerce, .woocommerce-checkout .woocommerce,
.woocommerce-account .woocommerce { min-width: 0; max-width: 100%; }
@media (max-width: 600px) {
  .woocommerce table.shop_table td.product-name { flex-direction: column; align-items: flex-end; }
  .woocommerce #content table.cart td.actions .button, .woocommerce table.cart td.actions .button { width: 100%; margin-top: 8px; }
  .woocommerce .wc-proceed-to-checkout a.checkout-button { width: 100%; justify-content: center; }
}
/* le zoom de la galerie n'a pas de sens au doigt et débordait */
@media (hover: none) and (pointer: coarse) {
  .woocommerce div.product div.images .zoomImg { display: none !important; }
}

/* ==========================================================================
   NOVEXA — couche premium multi-univers
   Quatre accents de même chroma et même clarté, seule la teinte change :
   automobile (vert), high-tech (indigo), gaming (prune), mobilité (terre).
   ========================================================================== */
:root {
  --nx-noir:       #0e0f10;
  --nx-noir-2:     #16181a;
  --nx-noir-3:     #1f2225;
  --nx-filet:      #2b2f33;
  --nx-u-auto:     #1b4d3e;
  --nx-u-tech:     #29396b;
  --nx-u-gaming:   #58305a;
  --nx-u-mobilite: #6d3a24;
  --nx-u:          var(--nx-accent);
}

/* ---------- bandeau d'ouverture ---------- */
.nx-ouverture {
  background: var(--nx-noir); color: #f2efe9; position: relative; overflow: hidden;
  border-bottom: 1px solid var(--nx-filet);
}
.nx-ouverture::before {
  content: ""; position: absolute; inset: 0;
  background:
    radial-gradient(60% 80% at 78% 12%, rgba(192,154,91,.16), transparent 62%),
    radial-gradient(52% 68% at 8% 92%, rgba(41,57,107,.20), transparent 66%);
  pointer-events: none;
}
.nx-ouverture-inner {
  position: relative; max-width: var(--nx-max); margin: 0 auto; padding: 92px 20px 76px;
}
.nx-ouverture-eyebrow {
  display: inline-flex; align-items: center; gap: 10px; font-size: 11.5px;
  letter-spacing: 0.24em; text-transform: uppercase; color: #a79c86;
}
.nx-ouverture-eyebrow::before { content: ""; width: 34px; height: 1px; background: var(--nx-gold); }
.nx-ouverture h1 {
  font-family: var(--nx-serif); font-weight: 400; color: #f6f3ee;
  font-size: clamp(2.6rem, 1.3rem + 5.2vw, 6.25rem);
  line-height: 0.98; letter-spacing: -0.038em; margin: 22px 0 0; max-width: 15ch;
  text-wrap: balance;
}
.nx-ouverture h1 em { font-style: italic; color: var(--nx-gold); }
.nx-ouverture-lede {
  margin: 26px 0 0; font-size: clamp(1rem, .92rem + .4vw, 1.19rem); line-height: 1.62;
  color: #b3ab9c; max-width: 54ch;
}
.nx-ouverture-actions { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 34px; }
.nx-btn--or {
  background: var(--nx-gold); border-color: var(--nx-gold); color: #241b09;
}
.nx-btn--or:hover { background: #cdaa6c; border-color: #cdaa6c; color: #241b09; }
.nx-btn--clair {
  background: transparent; border: 1px solid #45494d; color: #f2efe9;
}
.nx-btn--clair:hover { background: transparent; border-color: #f2efe9; color: #f2efe9; }

/* compteurs sous le titre */
.nx-ouverture-compteurs {
  display: flex; gap: 0; margin-top: 56px; border-top: 1px solid var(--nx-filet); flex-wrap: wrap;
}
.nx-compteur {
  padding: 22px 34px 0 0; margin-right: 34px; border-right: 1px solid var(--nx-filet);
  display: flex; flex-direction: column; gap: 5px;
}
.nx-compteur:last-child { border-right: 0; margin-right: 0; padding-right: 0; }
.nx-compteur-num {
  font-family: var(--nx-serif); font-size: 30px; font-weight: 500; color: #f6f3ee;
  letter-spacing: -0.02em; font-variant-numeric: tabular-nums; line-height: 1;
}
.nx-compteur-label { font-size: 12.5px; color: #8d8578; letter-spacing: 0.03em; }

/* ---------- les quatre univers ---------- */
.nx-univers-grille { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.nx-univers {
  position: relative; display: flex; flex-direction: column; justify-content: flex-end;
  min-height: 340px; border-radius: 6px; overflow: hidden; color: #f6f3ee;
  background: var(--nx-u); isolation: isolate;
}
.nx-univers img {
  position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover;
  z-index: -2; opacity: .5; transition: transform .6s cubic-bezier(.2,.7,.3,1), opacity .4s ease;
}
.nx-univers::after {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(to top, color-mix(in oklab, var(--nx-u) 92%, black) 4%, color-mix(in oklab, var(--nx-u) 72%, transparent) 48%, color-mix(in oklab, var(--nx-u) 26%, transparent) 100%);
}
.nx-univers:hover img { transform: scale(1.05); opacity: .62; }
.nx-univers-corps { position: relative; padding: 30px 32px 30px; display: flex; flex-direction: column; gap: 10px; }
.nx-univers-icone { color: var(--nx-gold); display: flex; margin-bottom: 4px; }
.nx-univers h3 {
  font-family: var(--nx-serif); font-size: clamp(1.5rem, 1.1rem + 1.4vw, 2rem);
  font-weight: 500; letter-spacing: -0.024em; margin: 0; color: #f6f3ee;
}
.nx-univers p { margin: 0; font-size: 14.5px; line-height: 1.58; color: rgba(246,243,238,.82); max-width: 46ch; }
.nx-univers-pied {
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
  margin-top: 14px; padding-top: 16px; border-top: 1px solid rgba(246,243,238,.22);
  font-size: 13.5px; color: rgba(246,243,238,.78);
}
.nx-univers-pied strong { color: #f6f3ee; font-weight: 700; }
.nx-univers-fleche { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; color: #f6f3ee; }
.nx-univers:hover .nx-univers-fleche svg { transform: translateX(4px); }
.nx-univers-fleche svg { transition: transform .2s ease; }
.nx-univers--large { grid-column: span 2; min-height: 300px; }

/* la carte hérite de l'accent de son univers */
.nx-u-automobile { --nx-u: var(--nx-u-auto); }
.nx-u-high-tech  { --nx-u: var(--nx-u-tech); }
.nx-u-gaming     { --nx-u: var(--nx-u-gaming); }
.nx-u-mobilite   { --nx-u: var(--nx-u-mobilite); }

/* la pastille de catégorie et le bouton prennent la couleur de l'univers */
.woocommerce ul.products li.product .nx-card-foot .nx-btn { background: var(--nx-u); border-color: var(--nx-u); }
.woocommerce ul.products li.product .nx-card-foot .nx-btn:hover { filter: brightness(.88); }
.woocommerce ul.products li.product .nx-tag { color: color-mix(in oklab, var(--nx-u) 78%, black); }
.nx-tag--attente { top: auto !important; bottom: 12px; background: var(--nx-gold) !important; color: #241b09 !important; }
.nx-price-attente {
  font-family: var(--nx-serif); font-size: 21px; font-weight: 600; color: var(--nx-u);
  letter-spacing: -0.012em;
}

/* ---------- section sur fond noir ---------- */
.nx-noir-band { background: var(--nx-noir); color: #f2efe9; padding: 74px 0; }
.nx-noir-band .nx-h2, .nx-noir-band h2, .nx-noir-band h3 { color: #f6f3ee; }
.nx-noir-band p { color: #a79f92; }
.nx-noir-band .nx-eyebrow { color: #8d8578; }
.nx-noir-band .nx-trust { border-color: var(--nx-filet); }
.nx-noir-band .nx-trust-item { border-color: var(--nx-filet); }
.nx-noir-band .nx-trust-num { color: var(--nx-gold); }
.nx-noir-band .nx-trust-label { color: #a79f92; }

/* filet doré de séparation */
.nx-filet-or {
  height: 1px; background: linear-gradient(to right, transparent, var(--nx-gold), transparent);
  opacity: .5; margin: 0;
}

/* ---------- en-tête de catégorie ---------- */
.nx-cat-entete {
  background: var(--nx-u, var(--nx-accent)); color: #f6f3ee; padding: 54px 0 48px; margin-bottom: 38px;
  position: relative; overflow: hidden;
}
.nx-cat-entete::after {
  content: ""; position: absolute; inset: 0;
  background: radial-gradient(70% 100% at 88% 0%, rgba(255,255,255,.08), transparent 60%);
}
.nx-cat-entete-inner { position: relative; max-width: var(--nx-max); margin: 0 auto; padding: 0 20px; }
.nx-cat-entete .nx-eyebrow { color: rgba(246,243,238,.7); }
.nx-cat-entete h1 {
  font-family: var(--nx-serif); font-size: clamp(2rem, 1.3rem + 2.6vw, 3.25rem);
  font-weight: 400; letter-spacing: -0.03em; margin: 12px 0 14px; color: #f6f3ee;
}
.nx-cat-entete p { margin: 0; font-size: 16.5px; line-height: 1.6; color: rgba(246,243,238,.84); max-width: 62ch; }
.nx-cat-compte { margin-top: 20px; font-size: 13.5px; color: rgba(246,243,238,.7); }

/* ---------- sélection mise en avant ---------- */
.nx-selection-tete { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 28px; flex-wrap: wrap; }
.nx-onglets { display: flex; gap: 8px; flex-wrap: wrap; }
.nx-onglet {
  border: 1px solid var(--nx-border-2); border-radius: 999px; padding: 9px 17px;
  font-size: 13.5px; font-weight: 600; color: var(--nx-ink-2);
}
.nx-onglet:hover { border-color: var(--nx-ink); color: var(--nx-ink); }
.nx-onglet--auto:hover     { border-color: var(--nx-u-auto);     color: var(--nx-u-auto); }
.nx-onglet--tech:hover     { border-color: var(--nx-u-tech);     color: var(--nx-u-tech); }
.nx-onglet--gaming:hover   { border-color: var(--nx-u-gaming);   color: var(--nx-u-gaming); }
.nx-onglet--mobilite:hover { border-color: var(--nx-u-mobilite); color: var(--nx-u-mobilite); }

/* fiche produit : l'accent suit l'univers */
.woocommerce div.product.nx-u-automobile { --nx-u: var(--nx-u-auto); }
.woocommerce div.product.nx-u-high-tech  { --nx-u: var(--nx-u-tech); }
.woocommerce div.product.nx-u-gaming     { --nx-u: var(--nx-u-gaming); }
.woocommerce div.product.nx-u-mobilite   { --nx-u: var(--nx-u-mobilite); }
.woocommerce div.product .single_add_to_cart_button,
.woocommerce div.product form.cart .button { background: var(--nx-u) !important; border-color: var(--nx-u) !important; }
.woocommerce div.product .single_add_to_cart_button:hover { filter: brightness(.88); }

@media (max-width: 900px) {
  .nx-univers-grille { grid-template-columns: 1fr; }
  .nx-univers--large { grid-column: span 1; }
  .nx-univers { min-height: 260px; }
  .nx-ouverture-inner { padding: 64px 22px 54px; }
  .nx-ouverture-compteurs { margin-top: 38px; }
  .nx-compteur { padding-right: 22px; margin-right: 22px; }
}
@media (max-width: 600px) {
  .nx-ouverture-inner { padding: 46px 18px 40px; }
  .nx-ouverture h1 { max-width: none; }
  .nx-compteur { border-right: 0; margin-right: 0; padding: 16px 0 0; width: 100%; border-top: 1px solid var(--nx-filet); }
  .nx-compteur:first-child { border-top: 0; }
  .nx-ouverture-compteurs { border-top: 0; }
  .nx-univers-corps { padding: 22px 20px; }
  .nx-noir-band { padding: 46px 0; }
  .nx-cat-entete { padding: 38px 0 34px; margin-bottom: 26px; }
}

/* ==========================================================================
   Correctifs de rythme : en-tête plus compact, moins de blanc, pied sombre
   ========================================================================== */

/* ---------- en-tête compact ---------- */
.ast-primary-header-bar, .main-header-bar { min-height: 0 !important; }
.site-header-primary-section-left, .site-header-primary-section-right,
.ast-primary-header-bar .site-primary-header-wrap { padding-top: 0 !important; padding-bottom: 0 !important; }
.ast-builder-layout-element, .site-header .ast-builder-layout-element { min-height: 0 !important; }
.ast-primary-header-bar .ast-builder-grid-row { padding: 8px 0 !important; }
.ast-site-identity { padding: 0 !important; }
.site-title, .site-title a { font-size: 21px !important; line-height: 1.05 !important; }
.site-description { font-size: 10px !important; letter-spacing: 0.16em; margin-top: 1px !important; }
.ast-site-identity .custom-logo-link img { width: 34px !important; border-radius: 9px; }
.main-header-menu > .menu-item > a { line-height: 44px !important; height: 44px !important; font-size: 14.5px; }
.nx-icon-btn { width: 36px; height: 36px; }
.nx-cart { padding-top: 9px !important; padding-bottom: 9px !important; }
.nx-cart-label { font-size: 13.5px; }
.nx-topbar-inner { padding: 7px 20px; font-size: 12px; }
@media (max-width: 921px) {
  .ast-primary-header-bar .ast-builder-grid-row { padding: 6px 0 !important; }
  .nx-icon-btn, .nx-cart { width: 38px; height: 38px; min-height: 38px; }
}

/* ---------- moins de blanc : bandes alternées ---------- */
:root {
  --nx-bg:      #f2efe9;   /* fond général, plus chaud et plus dense qu'avant */
  --nx-surface: #fbfaf7;   /* les cartes restent claires pour ressortir */
  --nx-surface-2: #e7e3da;
  --nx-image-bg: #e2ddd3;
  --nx-border:  #ddd7cc;
  --nx-border-2: #c8c1b4;
}
body, .ast-container, #content, .site-content { background: var(--nx-bg); }
.site-header, .ast-primary-header-bar, .main-header-bar { background: var(--nx-bg) !important; }

/* une section sur deux prend un ton légèrement plus soutenu */
.nx-bande-teintee { background: var(--nx-surface-2); }
.nx-section--teintee { background: var(--nx-surface-2); padding: 60px 0; }
.nx-wrap--pleine { max-width: none; padding: 0; }

/* les cartes se détachent mieux sur le fond chaud */
.woocommerce ul.products li.product, .nx-card, .nx-contact-item, .nx-thread, .nx-zone, .nx-form,
.nx-compare, .nx-spec-table, .nx-chat, .nx-search, .woocommerce-cart .cart_totals,
.woocommerce-checkout #order_review, .woocommerce form.login, .woocommerce form.register {
  background: var(--nx-surface);
  border-color: #e2ddd2;
  box-shadow: 0 1px 2px rgba(25, 28, 26, .03);
}

/* ---------- pied de page sombre ---------- */
.nx-footer {
  background: var(--nx-noir); color: #b3ab9c; border-top: 0;
  padding: 52px 0 28px; margin-top: 0;
}
.nx-footer-haut {
  display: flex; align-items: center; justify-content: space-between; gap: 24px;
  padding-bottom: 28px; margin-bottom: 30px; border-bottom: 1px solid var(--nx-filet); flex-wrap: wrap;
}
.nx-footer .nx-footer-brand { display: flex; align-items: center; gap: 14px; margin: 0; }
.nx-footer .nx-footer-brand img { width: 42px; height: 42px; border-radius: 11px; }
.nx-footer .nx-footer-brand-name {
  display: block; font-family: var(--nx-serif); font-size: 23px; font-weight: 600;
  color: #f6f3ee; line-height: 1.15; letter-spacing: -0.012em;
}
.nx-footer .nx-footer-brand-tag { display: block; font-size: 13px; color: #8d8578; font-style: italic; }
.nx-footer-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 30px; padding-bottom: 26px; }
.nx-footer h4 {
  color: var(--nx-gold); font-size: 11.5px; letter-spacing: 0.16em; text-transform: uppercase;
  font-weight: 700; margin: 0 0 14px;
}
.nx-footer li a, .nx-footer li span { font-size: 13.5px; color: #a79f92; }
.nx-footer li a:hover { color: #f6f3ee; }
.nx-footer .nx-paychip { border-color: var(--nx-filet); color: #a79f92; background: transparent; }
.nx-footer .nx-footer-legal { color: #7d766a; font-size: 12.5px; margin-top: 14px; max-width: none; }
.nx-footer-bottom {
  border-top: 1px solid var(--nx-filet); color: #7d766a; padding-top: 20px; font-size: 12.5px;
}
/* Les trois liens légaux, séparés par un point médian tracé en CSS pour ne pas
   avoir de caractère parasite entre deux liens. */
.nx-footer-legaux { display: flex; flex-wrap: wrap; align-items: center; gap: 0; }
.nx-footer-legaux a { color: #7d766a; text-decoration: none; padding: 4px 0; }
.nx-footer-legaux a:hover, .nx-footer-legaux a:focus-visible { color: var(--nx-gold, #c09a5b); text-decoration: underline; }
.nx-footer-legaux a + a::before { content: "·"; color: var(--nx-filet); margin: 0 9px; text-decoration: none; display: inline-block; }
@media (max-width: 1024px) { .nx-footer-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 700px) {
  .nx-footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
  .nx-footer-haut { flex-direction: column; align-items: flex-start; }
}
@media (max-width: 420px) { .nx-footer-grid { grid-template-columns: 1fr; } }

/* ==================================================================
   AVIS CLIENTS

   Réservés aux acheteurs vérifiés. Le bloc doit être aussi présentable
   vide que rempli : c'est son état par défaut tant qu'aucune commande
   n'a été livrée.
   ================================================================== */

.nx-avis {
  max-width: var(--nx-max);
  margin: 0 auto;
  padding: 46px 20px 10px;
  border-top: 1px solid var(--nx-border);
}

.nx-avis-tete {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  flex-wrap: wrap;
  margin-bottom: 22px;
}

.nx-avis-note { display: flex; align-items: center; gap: 10px; }
.nx-avis-note-chiffre {
  font-family: var(--nx-serif);
  font-size: 2.3rem;
  line-height: 1;
  color: var(--nx-ink);
}
.nx-avis-note-etoiles { color: var(--nx-gold); display: inline-flex; }
.nx-avis-note-sur { font-size: 13px; color: var(--nx-muted); }

.nx-etoiles { display: inline-flex; align-items: center; gap: 1px; line-height: 0; }

/* ---------- état vide ---------- */

.nx-avis-vide {
  display: grid;
  grid-template-columns: 40px 1fr;
  gap: 16px;
  align-items: start;
  background: var(--nx-surface-2);
  border: 1px solid var(--nx-border);
  border-radius: 8px;
  padding: 22px 24px;
}
.nx-avis-vide-icone { color: var(--nx-gold); display: block; margin-top: 2px; }
.nx-avis-vide-titre {
  font-family: var(--nx-serif);
  font-size: 18px;
  color: var(--nx-ink);
  margin: 0 0 6px;
}
.nx-avis-vide p { margin: 0; font-size: 14px; color: var(--nx-ink-2); max-width: 68ch; }

/* ---------- liste et formulaire rendus par WooCommerce ---------- */

.nx-avis-corps { margin-top: 8px; }
.nx-avis-corps #reviews > h2,
.nx-avis-corps .woocommerce-Reviews-title { display: none; }   /* notre titre suffit */

.nx-avis-corps .commentlist { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 16px; }
.nx-avis-corps .comment_container {
  display: grid;
  grid-template-columns: 44px 1fr;
  gap: 14px;
  background: var(--nx-surface);
  border: 1px solid var(--nx-border);
  border-radius: 8px;
  padding: 18px 20px;
}
.nx-avis-corps .comment_container img.avatar {
  width: 44px; height: 44px; border-radius: 50%; margin: 0;
}
.nx-avis-corps .comment-text { min-width: 0; }
.nx-avis-corps .woocommerce-review__author { font-weight: 600; color: var(--nx-ink); }
.nx-avis-corps .woocommerce-review__published-date { font-size: 12.5px; color: var(--nx-muted); }
.nx-avis-corps .woocommerce-review__verified {
  font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; font-weight: 700;
  color: var(--nx-u-auto); background: #e2ece6; padding: 2px 7px; border-radius: 3px;
  margin-left: 8px; white-space: nowrap;
}
.nx-avis-corps .star-rating { color: var(--nx-gold); margin-bottom: 6px; }
.nx-avis-corps .description p { font-size: 14.5px; color: var(--nx-ink-2); }

.nx-avis-corps #review_form_wrapper {
  margin-top: 26px;
  background: var(--nx-surface);
  border: 1px solid var(--nx-border);
  border-radius: 8px;
  padding: 22px 24px;
}
.nx-avis-corps #reply-title {
  font-family: var(--nx-serif); font-size: 20px; color: var(--nx-ink);
  display: block; margin-bottom: 4px;
}
.nx-avis-corps .comment-form label { display: block; font-size: 12.5px; letter-spacing: 0.06em;
  text-transform: uppercase; font-weight: 600; color: var(--nx-ink-2); margin-bottom: 5px; }
.nx-avis-corps .comment-form input[type="text"],
.nx-avis-corps .comment-form input[type="email"],
.nx-avis-corps .comment-form textarea {
  width: 100%; padding: 10px 12px; font: inherit; color: var(--nx-ink);
  background: #fff; border: 1px solid var(--nx-border-2); border-radius: 6px;
}
.nx-avis-corps .comment-form textarea { min-height: 110px; resize: vertical; }
.nx-avis-corps .comment-form .submit {
  margin-top: 12px; min-height: 44px; padding: 0 22px;
  background: var(--nx-u-auto); color: #fff; border: 0; border-radius: 999px;
  font: inherit; font-weight: 600; cursor: pointer;
}
.nx-avis-corps .comment-form .submit:hover { filter: brightness(1.12); }

/* Message de WooCommerce quand seuls les acheteurs peuvent écrire. */
.nx-avis-corps .woocommerce-verification-required {
  font-size: 14px; color: var(--nx-ink-2); background: var(--nx-surface-2);
  border: 1px solid var(--nx-border); border-radius: 8px; padding: 16px 20px; margin: 0;
}

/* ---------- note sur la carte du catalogue ---------- */

.nx-card-note { display: inline-flex; align-items: center; gap: 6px; color: var(--nx-gold); }
.nx-card-note-txt { font-size: 12.5px; color: var(--nx-muted); font-variant-numeric: tabular-nums; }

@media (max-width: 600px) {
  .nx-avis { padding: 34px 16px 8px; }
  .nx-avis-vide { grid-template-columns: 1fr; }
  .nx-avis-vide-icone { display: none; }
  .nx-avis-corps .comment_container { grid-template-columns: 1fr; }
  .nx-avis-corps .comment_container img.avatar { display: none; }
}

/* ==================================================================
   SÉLECTEUR DE LANGUE

   TranslatePress arrive avec son habillage d'usine : cadre blanc, texte
   bleu, rembourrage généreux. Posé sur la barre sombre du haut, il jure
   et surtout il l'étire — 47 px de haut pour une barre qui doit en faire
   une trentaine, le reste de la ligne faisant 20 px.

   Depuis la 3.3.5 l'extension pose ses couleurs dans des variables CSS
   en ligne (--bg, --text, --border…) sur le conteneur et a renommé ses
   classes internes. On redéfinit donc les variables plutôt que de
   repeindre chaque élément, et on vise les classes actuelles
   (.trp-language-item__current, .trp-language-item-name) : les anciennes
   (.trp-switcher-current-language, .trp-ls-language-name) n'existent
   plus et les régler ne produisait plus aucun effet.
   Les !important écrasent les styles en ligne de l'extension.
   ================================================================== */

.nx-topbar .trp-shortcode-switcher__wrapper {
  --bg: transparent !important;
  --bg-hover: rgba(242, 239, 233, .07) !important;
  --text: #d5dad4 !important;
  --text-hover: #f2efe9 !important;
  --border: 1px solid #3a4039 !important;
  --border-color: #3a4039 !important;
  --border-radius: 4px !important;
  --flag-size: 15px !important;
  --flag-radius: 2px !important;
  --font-size: 12.5px !important;
  --transition-duration: .18s !important;
  font-family: inherit !important;
  line-height: 1.4 !important;
  /* l'ancre interne est en inline-block : en contexte de bloc elle repose
     sur la ligne de base et traîne 5 px de vide sous elle. */
  display: inline-flex !important;
  align-items: center !important;
}

/* Le chevron est un SVG dont le trait vaut var(--text) : il vire à l'or
   avec le cadre, sans avoir à le repeindre séparément. */
.nx-topbar .trp-shortcode-switcher__wrapper:hover,
.nx-topbar .trp-shortcode-switcher__wrapper:focus-within {
  --text: var(--nx-gold, #c09a5b) !important;
}

.nx-topbar .trp-language-switcher {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
  margin: 0 !important;
  width: auto !important;
  min-width: 0 !important;
}

/* Le cadre visible : compact, filet discret, doré au survol. */
.nx-topbar .trp-current-language-item__wrapper {
  background: transparent !important;
  border: 1px solid #3a4039 !important;
  border-radius: 4px !important;
  padding: 0 8px !important;
  min-height: 26px !important;
  display: flex !important;
  align-items: center !important;
  gap: 6px !important;
  transition: border-color .18s ease, background-color .18s ease !important;
}
.nx-topbar .trp-current-language-item__wrapper:hover,
.nx-topbar .trp-current-language-item__wrapper:focus-within {
  border-color: var(--nx-gold, #c09a5b) !important;
  background: rgba(242, 239, 233, .06) !important;
}

/* C'est ce rembourrage d'usine (7px 16px) qui étirait la barre. */
.nx-topbar .trp-language-item__current {
  background: transparent !important;
  color: #d5dad4 !important;
  padding: 0 !important;
  min-height: 0 !important;
  display: flex !important;
  align-items: center !important;
  gap: 6px !important;
}
.nx-topbar .trp-current-language-item__wrapper:hover .trp-language-item__current {
  color: #f2efe9 !important;
}
.nx-topbar .trp-language-item-name {
  font-size: 12.5px !important;
  letter-spacing: .02em !important;
  text-decoration: none !important;
}
.nx-topbar .trp-shortcode-arrow {
  width: 13px !important;
  height: 13px !important;
  flex: none !important;
}
.nx-topbar .trp-flag-image {
  width: 15px !important;
  height: auto !important;
  margin: 0 !important;
  border-radius: 2px !important;
  flex: none !important;
}

/* La liste dépliée descend SOUS la barre, sur l'en-tête clair : sans fond
   opaque, on verrait le blanc de l'en-tête au travers. */
.nx-topbar .trp-switcher-dropdown-list {
  background-color: #0e0f10 !important;
  border: 1px solid #3a4039 !important;
  border-radius: 4px !important;
  box-shadow: 0 12px 26px rgba(0, 0, 0, .45) !important;
  overflow: hidden !important;
  margin-top: 4px !important;
  padding: 0 !important;
}
.nx-topbar .trp-switcher-dropdown-list .trp-language-item {
  background-color: transparent !important;
  color: #d5dad4 !important;
  padding: 8px 10px !important;
  gap: 6px !important;
  border-left: 2px solid transparent !important;
  transition: background-color .18s ease, color .18s ease, border-color .18s ease !important;
}
.nx-topbar .trp-switcher-dropdown-list .trp-language-item:hover,
.nx-topbar .trp-switcher-dropdown-list .trp-language-item:focus {
  background-color: #1c211c !important;
  border-left-color: var(--nx-gold, #c09a5b) !important;
  color: #f2efe9 !important;
}

/* Cible tactile : 44 px sur les appareils sans survol. */
@media (hover: none) {
  .nx-topbar .trp-current-language-item__wrapper,
  .nx-topbar .trp-switcher-dropdown-list .trp-language-item { min-height: 44px !important; }
}

/* Sous 782 px la barre se resserre : on ne garde que le drapeau, mais la
   liste dépliée conserve les noms de langue. */
@media (max-width: 782px) {
  .nx-topbar .trp-current-language-item__wrapper .trp-language-item-name { display: none !important; }
  .nx-topbar .trp-current-language-item__wrapper { padding: 0 6px !important; }
}
