/* ========================================================================
   oemsearchpro - Design V20 (refonte "blanc inactif/secondaire")
   Recherche par référence OEM
   v1.0.17 - 11 mai 2026

   PATCH v1.0.17 (harmonisation projet 4 modules - border-radius global) :
   - Token --oemsearch-radius : 6px → 3px. Décision prise par Steve le
     11/05/2026 pour harmoniser les 4 modules custom de Premium Auto Pro
     (vehiclesearch, oemsearchpro, filtre carrosserie, filtre accessoires)
     sur une signature visuelle commune plus tranchée / B2B premium.
     Cohérent avec vehiclesearch v2.13.1 qui est passé à --vs-radius: 3px.
   - Modification minimale : une seule ligne CSS changée (la déclaration
     du token). Les 3 éléments visuels (.oemsearch-wrapper,
     .oemsearch-inputwrap, .oemsearch-submit) consomment ce token via
     var(--oemsearch-radius) donc la propagation est automatique.
   - Aucune autre modification, aucun changement de markup, aucun
     changement de hauteur, padding ou marge.

   PATCH v1.0.16 (rappel) :
   - Padding wrapper en HOME desktop : 28px 24px → 20px 20px (≥900px ET
     ≥1280px). Alignement sur valeur RÉELLE de vehiclesearch v2.12.11
     lue dans le CSS source (.vehiclesearch-wrapper { padding: 20px; }).
     Les briefs antérieurs annonçaient 28x24, ce qui s'est avéré faux.

   PATCH v1.0.13 (rappel — conservé en v1.0.17) :
   - Margin-bottom header home desktop 14 → 16 (alignement vehiclesearch)
   - Header en flex centré + picto code-barres SVG or à gauche du titre
   - Picto masqué en INNER (pas d'espace en barre 1 ligne)

   PATCH v1.0.12 (rappel) :
   - Inner desktop : titre OEM 12→10px, padding wrapper 8x14→6x10,
     bouton min-width 140→90px padding 22→14px, container query 320px

   PATCH v1.0.11 (rappel) :
   - Suppression du pseudo-élément ::before (fix double trait)
   - Inner desktop : titre OEM ré-affiché + barre 1 ligne 56px

   PATCH v1.0.10 (rappel) :
   - Border-radius (alors 6px) partout, mobile densifié

   PATCH v1.0.9 (rappel) :
   - Titre OEM en MAJUSCULES, taille home desktop 22→17px

   Changements majeurs vs v1.0.7 (rappel v1.0.8) :
   - Inversion du fond : noir → blanc (rôle "inactif/secondaire")
   - Bouton submit : ghost or → or rempli en permanence
   - Hauteurs synchronisées avec vehiclesearch

   Compatibilité préservée à 100% :
   - Aucune modification du markup .tpl
   - Aucune modification du JS d'auto-injection .pap-search-row
   - Mêmes sélecteurs et tokens (préfixes --oemsearch-* et .oemsearch-*)
   ======================================================================== */


/* ------------------------------------------------------------------------
   1. Tokens (custom properties)
   ------------------------------------------------------------------------ */

.oemsearch-wrapper,
.pap-search-row,
.oemsearch-notfound,
.oemsearch-results {
  /* Palette V19 du site (alignée sur le CSS custom Volty) */
  --oemsearch-ink:        #0F1923;  /* anthracite */
  --oemsearch-ink-clear:  #162330;  /* anthracite secondaire (rare en v1.0.8) */
  --oemsearch-cream:      #FAF7EE;  /* cream de fond */
  --oemsearch-cream-soft: #F5EFDC;  /* cream légèrement plus chaud */
  --oemsearch-gold:       #9A7B0A;  /* or principal */
  --oemsearch-gold-hi:    #B99517;  /* or hover (légèrement plus clair) */
  --oemsearch-gold-deep:  #7A5E04;  /* or foncé (textes monospaces) */
  --oemsearch-white:      #FFFFFF;  /* fond inactif */
  --oemsearch-grey-text:  #6B6F75;  /* placeholder, sous-textes */
  --oemsearch-border:     #E0E0E0;  /* bordure neutre (rare) */

  /* Hauteurs cibles (synchronisées avec vehiclesearch v2.12.0)

     v1.0.10 : --oemsearch-h-mobile passé de 56 → 48px pour densification
     mobile (validé client après tests palier 2 vehiclesearch). Gain ~16px
     sur l'input + 16px sur le bouton + padding réduit = ~35px de hauteur
     totale gagnée, ce qui aide le module OEM à rester visible sans scroll. */
  --oemsearch-h-mobile:        48px;  /* home mobile (v1.0.10 : 56→48) */
  --oemsearch-h-desktop:       64px;  /* home desktop */
  --oemsearch-h-compact:       56px;  /* inner desktop */
  --oemsearch-h-mobile-inner:  44px;  /* inner mobile (compaction) */

  /* Border-radius : 3px partout (v1.0.17, harmonisation projet décidée
     par Steve le 11/05/2026 sur les 4 modules custom Premium Auto Pro :
     vehiclesearch, oemsearchpro, filtre carrosserie, filtre accessoires).
     Avant v1.0.17 : 6px. Rationale client : 3px donne une signature plus
     tranchée / industrielle, cohérente avec un site B2B de pièces auto
     premium où la "précision technique" prime sur le "confort visuel".
     Cohérent avec vehiclesearch v2.13.1 qui est passé à --vs-radius: 3px.
     Le token se propage automatiquement aux 3 éléments via
     var(--oemsearch-radius) : .oemsearch-wrapper, .oemsearch-inputwrap,
     .oemsearch-submit. Aucune autre modification dans cette version. */
  --oemsearch-radius:    3px;

  /* Typo */
  --oemsearch-font-ui:    'Manrope', Arial, sans-serif;
  --oemsearch-font-mono:  'JetBrains Mono', ui-monospace, monospace;
}


/* ------------------------------------------------------------------------
   2. Grille partagée 2 colonnes (.pap-search-row)
   Côté oemsearchpro : on définit la grille canonique.
   Le ratio 1.5fr 1fr donne ~60/40 à vehiclesearch/oemsearchpro,
   cohérent avec les maquettes V2 où vehiclesearch est dominant.
   ------------------------------------------------------------------------ */

.pap-search-row {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
  width: 100%;
  max-width: 1400px;
  margin: 0 auto;
  padding: 16px;
  box-sizing: border-box;
  font-family: var(--oemsearch-font-ui);
}

.pap-search-row > .vehiclesearch-wrapper,
.pap-search-row > .oemsearch-wrapper {
  width: 100%;
  margin: 0;
  box-sizing: border-box;
}

@media (min-width: 900px) {
  .pap-search-row {
    /* !important nécessaire pour battre une éventuelle <style> inline du thème
       ou d'un autre module qui définirait .pap-search-row globalement.
       Cette règle EST la définition canonique de la grille pour ce module. */
    grid-template-columns: 1.5fr 1fr !important;
    gap: 24px;
    padding: 24px;
  }
}

@media (min-width: 1280px) {
  .pap-search-row--home {
    gap: 32px;
    padding: 36px;
  }
}

.pap-search-row--inner { padding: 12px 16px; gap: 12px; }

@media (min-width: 900px) {
  .pap-search-row--inner { padding: 16px 24px; gap: 16px; }
}


/* ------------------------------------------------------------------------
   3. Wrapper du widget oemsearch (carte BLANCHE inactive avec liseret or)
   ------------------------------------------------------------------------ */

.oemsearch-wrapper {
  position: relative;
  background: var(--oemsearch-white);
  color: var(--oemsearch-ink);
  border: 2px solid var(--oemsearch-gold);
  /* v1.0.10 : padding réduit en mobile (20→14, 18→14) pour densification.
     En desktop ≥ 900px le padding est augmenté à 32px (cf. plus bas). */
  padding: 14px 14px;
  font-family: var(--oemsearch-font-ui);
  box-sizing: border-box;
}

/* v1.0.11 : suppression du pseudo-élément ::before qui posait un trait or
   3px en haut du wrapper. Avec le border-radius 6px ajouté en v1.0.10, ce
   trait créait un effet de "double trait" parce qu'il dépassait légèrement
   les coins arrondis. La bordure 2px or autour du wrapper est largement
   suffisante visuellement. */

@media (min-width: 900px) {
  /* v1.0.16 : padding home desktop aligné sur la valeur RÉELLE de
     vehiclesearch v2.12.11 (.vehiclesearch-wrapper { padding: 20px; }
     en HOME, lue dans views/css/vehiclesearch.css du ZIP source).
     Avant v1.0.16 : 28px 24px (basé sur valeur annoncée erronée du
     brief de coordination de l'autre instance, qui disait "28x24"
     mais le CSS réel est 20x20). */
  .oemsearch-wrapper                          { padding: 20px; }
  .pap-search-row--inner .oemsearch-wrapper   { padding: 14px 18px; }
}

@media (min-width: 1280px) {
  /* v1.0.16 : padding home ≥1280px aussi à 20px (vehiclesearch n'a pas
     d'override @media min-width 1280, donc reste à 20px partout). */
  .pap-search-row--home .oemsearch-wrapper    { padding: 20px; }
}


/* ------------------------------------------------------------------------
   4. Header (titre + picto code-barres)
   En v1.0.8, le titre est visible dans tous les contextes (correctif du bug
   v1.0.7 qui le masquait en inner mobile de manière trop agressive).

   v1.0.13 : Header passe en flex centré pour accueillir le picto
   code-barres SVG (.oemsearch-head__icon) à gauche du titre, comme
   l'icône voiture or côté vehiclesearch. Le picto est masqué en INNER
   desktop (mode label compact, pas d'espace).
   ------------------------------------------------------------------------ */

.oemsearch-head {
  /* v1.0.13 : flex centré pour aligner picto + titre */
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  /* v1.0.10 : marge réduite 14→10px (densification mobile) */
  margin: 0 0 10px 0;
}

/* v1.0.13 : picto code-barres or à gauche du titre.
   Couleur via 'color' (currentColor sur les <rect>) pour permettre
   d'éventuelles variantes de teinte par contexte. */
.oemsearch-head__icon {
  flex: 0 0 auto;
  width: 22px;
  height: 22px;
  color: var(--oemsearch-gold);
  fill: currentColor;
  pointer-events: none;
}

.oemsearch-title {
  margin: 0;
  font-family: var(--oemsearch-font-ui);
  font-weight: 700;
  /* v1.0.10 : taille réduite 15→13px en mobile (densification) */
  font-size: 13px;
  line-height: 1.3;
  color: var(--oemsearch-ink);
  /* MAJUSCULES + letter-spacing : harmonisation avec vehiclesearch côté gauche
     pour cohérence visuelle (cf. retour client v1.0.8). */
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

@media (min-width: 900px) {
  .pap-search-row--home .oemsearch-title    { font-size: 17px; }
  .pap-search-row--inner .oemsearch-title   { font-size: 13px; }
  /* v1.0.13 : margin home desktop alignée sur vehiclesearch (16px).
     Avant v1.0.13 : 14px. */
  .pap-search-row--home .oemsearch-head     { margin: 0 0 16px 0; gap: 12px; }
  /* v1.0.13 : picto plus grand en home desktop (28×28) pour matcher la
     taille de l'icône voiture or côté vehiclesearch v2.12.11. */
  .pap-search-row--home .oemsearch-head__icon { width: 28px; height: 28px; }
}

@media (min-width: 1280px) {
  /* Pas d'augmentation au-delà de 17px : le titre OEM doit rester
     visuellement secondaire vs vehiclesearch (cf. rôle "inactif"). */
  .pap-search-row--home .oemsearch-title    { font-size: 17px; }
}


/* ------------------------------------------------------------------------
   5. Form : empilé mobile / 1 ligne desktop selon le contexte
   ------------------------------------------------------------------------ */

.oemsearch-form {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
  width: 100%;
}

/* HOME : 2 lignes (input puis bouton plein largeur) sur TOUTES les résolutions
   pour symétrie verticale avec vehiclesearch côté gauche */
.pap-search-row--home .oemsearch-form {
  grid-template-columns: 1fr;
  gap: 12px;
}

.pap-search-row--home .oemsearch-submit {
  width: 100%;
  min-width: 0;
}

/* INNER : input + bouton sur 1 ligne dès 600px (barre compacte horizontale) */
@media (min-width: 600px) {
  .pap-search-row--inner .oemsearch-form {
    grid-template-columns: 1fr auto;
    gap: 12px;
    align-items: center;
  }
}

/* En desktop inner ≥ 900px : barre 1 ligne 56px conforme à la maquette
   validée le 04 mai (nouvelle direction "barre compacte horizontale").

   Layout : [TITRE COMPACT] [icône loupe + input] [bouton VÉRIFIER]
   Tout sur la même ligne. La grid a 3 colonnes : auto / 1fr / auto.
   Le titre est ré-affiché (annule le display:none de v1.0.10) en taille
   compacte 13px avec letter-spacing serré.

   Important : ce layout fonctionne en mode "recherche" et en mode "véhicule
   mémorisé" (côté vehiclesearch a aussi sa barre 1 ligne en mémoire inner).
   La hauteur cible 56px doit s'aligner avec la barre vehiclesearch côté
   gauche. */
@media (min-width: 900px) {
  .pap-search-row--inner .oemsearch-wrapper {
    /* Wrapper devient une grid 2 colonnes pour aligner titre + form sur 1 ligne.
       v1.0.12 : padding réduit 8px 14px → 6px 10px pour gagner de la place
       horizontale (carte OEM ~360-400px de large avec sidebar visible). */
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: 10px;
    padding: 6px 10px;
  }

  /* Ré-affichage du titre (annule le display:none de v1.0.10) */
  .pap-search-row--inner .oemsearch-head {
    display: block;
    margin: 0;
    flex-shrink: 0;
  }

  /* v1.0.13 : picto code-barres masqué en INNER desktop. La barre 1 ligne
     56px est trop étroite pour accueillir picto + titre + form. Le titre
     reste seul en mode "label compact" 10px. */
  .pap-search-row--inner .oemsearch-head__icon {
    display: none;
  }

  /* Titre compact en INNER desktop : v1.0.12 réduit 12px → 10px MAJUSCULES.
     Le titre devient un "label" plutôt qu'un titre dominant. Avec le
     letter-spacing 0.03em, ça garde une bonne lisibilité tout en libérant
     ~30-40px de largeur pour l'input. */
  .pap-search-row--inner .oemsearch-title {
    font-size: 10px;
    font-weight: 700;
    white-space: nowrap;
    letter-spacing: 0.03em;
  }

  /* Le form reste à 2 colonnes (input + bouton) sur sa ligne */
  .pap-search-row--inner .oemsearch-form {
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px;
    min-width: 0;
    align-items: center;
  }
}

/* v1.0.12 : Fallback empilement vertical en INNER desktop si la carte
   devient TROP étroite (cas extrême : sidebar XL + zoom navigateur, ou
   resize manuel sous 320px de carte effective).

   Utilise une container query si supportée, sinon fallback sur viewport.
   Container query : disponible sur tous les navigateurs majeurs depuis 2023. */
@supports (container-type: inline-size) {
  .pap-search-row--inner .oemsearch-wrapper {
    container-type: inline-size;
  }
  @container (max-width: 320px) {
    .oemsearch-wrapper {
      grid-template-columns: 1fr !important;
      gap: 6px !important;
    }
    .oemsearch-form {
      grid-template-columns: 1fr !important;
      gap: 6px !important;
    }
    .oemsearch-submit {
      width: 100% !important;
    }
  }
}

/* Cas hors grille (solo, fallback) : on suit le comportement inner desktop */
@media (min-width: 600px) {
  .oemsearch-form {
    grid-template-columns: 1fr auto;
    gap: 16px;
  }

  .pap-search-row--home .oemsearch-form {
    grid-template-columns: 1fr;
  }
}


/* ------------------------------------------------------------------------
   6. Inputwrap (champ + icône loupe or)
   ------------------------------------------------------------------------ */

.oemsearch-inputwrap {
  position: relative;
  display: flex;
  align-items: center;
  background: var(--oemsearch-white);
  border: 1px solid var(--oemsearch-gold);
  height: var(--oemsearch-h-mobile);
  /* v1.0.10 : padding mobile réduit 16→12 (densification) */
  padding: 0 12px;
  box-sizing: border-box;
  transition: border-color 120ms ease, box-shadow 120ms ease;
}

.oemsearch-icon {
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
  /* v1.0.10 : margin réduite 12→10 (densification mobile) */
  margin-right: 10px;
  color: var(--oemsearch-gold);
  fill: currentColor;
  pointer-events: none;
}

.oemsearch-input {
  flex: 1 1 auto;
  width: 100%;
  height: 100%;
  background: transparent;
  border: 0;
  outline: 0;
  color: var(--oemsearch-ink);
  font-family: var(--oemsearch-font-mono);
  font-size: 16px; /* 16px minimum pour empêcher le zoom auto iOS */
  font-weight: 500;
  letter-spacing: 0.5px;
  text-transform: uppercase;
}

.oemsearch-input::placeholder {
  color: var(--oemsearch-grey-text);
  text-transform: none;
  font-family: var(--oemsearch-font-mono);
  opacity: 1; /* Firefox réduit l'opacité par défaut */
}

.oemsearch-inputwrap:focus-within {
  border-color: var(--oemsearch-gold-hi);
  box-shadow: 0 0 0 3px rgba(154, 123, 10, 0.15);
}

/* Hauteurs input par contexte */
@media (min-width: 900px) {
  .pap-search-row--home .oemsearch-inputwrap {
    height: var(--oemsearch-h-desktop);
    /* En desktop home on rétablit padding 16px et icône 18px (v1.0.10) */
    padding: 0 16px;
  }
  .pap-search-row--home .oemsearch-icon {
    width: 18px;
    height: 18px;
    margin-right: 12px;
  }
  .pap-search-row--inner .oemsearch-inputwrap {
    height: 40px; /* compact en barre 1 ligne */
    padding: 0 14px;
  }
}

.pap-search-row--inner .oemsearch-inputwrap { height: var(--oemsearch-h-compact); }


/* ------------------------------------------------------------------------
   7. Bouton submit (or rempli en permanence — cf. maquettes V2)
   ------------------------------------------------------------------------ */

.oemsearch-submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: var(--oemsearch-h-mobile);
  min-width: 0;
  /* v1.0.10 : padding mobile réduit 0 24px → 0 18px (densification) */
  padding: 0 18px;
  background: var(--oemsearch-gold);
  border: 1px solid var(--oemsearch-gold);
  color: var(--oemsearch-white);
  font-family: var(--oemsearch-font-ui);
  font-weight: 700;
  font-size: 13px;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background-color 120ms ease, border-color 120ms ease,
              color 120ms ease, transform 120ms ease;
  box-sizing: border-box;
}

.oemsearch-submit:hover,
.oemsearch-submit:focus-visible {
  background: var(--oemsearch-gold-hi);
  border-color: var(--oemsearch-gold-hi);
  color: var(--oemsearch-white);
}

.oemsearch-submit:active {
  transform: scale(0.98);
}

.oemsearch-submit:focus-visible {
  outline: 3px solid var(--oemsearch-gold-hi);
  outline-offset: 2px;
}

/* Hauteurs et dimensions bouton par contexte */
@media (min-width: 900px) {
  .pap-search-row--home .oemsearch-submit {
    height: var(--oemsearch-h-desktop);
    min-width: 220px;
    padding: 0 32px;
    font-size: 14px;
  }
  .pap-search-row--inner .oemsearch-submit {
    /* v1.0.12 : padding 0 22px → 0 14px et min-width 140 → 90px pour libérer
       ~50-60px de largeur supplémentaire pour l'input. Le label "VÉRIFIER"
       (court) tient largement dans 90px de large. */
    height: 40px; /* aligné sur l'input inner desktop */
    min-width: 90px;
    padding: 0 14px;
    font-size: 12px;
    letter-spacing: 0.04em;
  }
}

.pap-search-row--inner .oemsearch-submit {
  height: var(--oemsearch-h-compact);
  padding: 0 20px;
  font-size: 13px;
}

@media (min-width: 600px) {
  .pap-search-row--inner .oemsearch-submit { min-width: 140px; }
}


/* ------------------------------------------------------------------------
   8. Border-radius (6px partout) + reset coins natifs iOS / Safari
   ------------------------------------------------------------------------ */

/* Reset des coins natifs iOS Safari (qui par défaut arrondit input/button)
   pour que le rendu soit identique sur tous les navigateurs */
.oemsearch-input,
.oemsearch-submit,
.oemsearch-inputwrap {
  -webkit-appearance: none;
  appearance: none;
}

/* Application du border-radius 6px sur les éléments visuels principaux */
.oemsearch-wrapper,
.oemsearch-inputwrap,
.oemsearch-submit {
  border-radius: var(--oemsearch-radius);
}


/* ------------------------------------------------------------------------
   9. Compaction mobile inner (≤ 599px) — v1.0.8
   Différence vs v1.0.7 : on NE MASQUE PLUS le titre (correctif du bug
   client : titre invisible en inner mobile était trop agressif).
   ------------------------------------------------------------------------ */

@media (max-width: 599px) {

  /* Wrapper de la grille partagée */
  .pap-search-row--inner {
    padding: 8px 12px;
    gap: 8px;
  }

  /* Wrapper de la carte OEM en mode inner : padding très resserré */
  .pap-search-row--inner .oemsearch-wrapper {
    padding: 12px 14px;
  }

  /* Titre : VISIBLE en inner mobile (correctif v1.0.8) mais légèrement
     plus petit pour compenser et garder une carte compacte */
  .pap-search-row--inner .oemsearch-head {
    margin: 0 0 8px 0;
  }
  .pap-search-row--inner .oemsearch-title {
    font-size: 12px;
    font-weight: 700;
  }

  /* v1.0.13 : picto code-barres masqué aussi en INNER mobile (compaction
     très resserrée). Le titre reste seul en mode "label compact" 12px. */
  .pap-search-row--inner .oemsearch-head__icon {
    display: none;
  }

  /* Force la grille en 2 lignes (input puis bouton plein largeur)
     en mobile inner pour la lisibilité */
  .pap-search-row--inner .oemsearch-form {
    grid-template-columns: 1fr;
    gap: 8px;
  }

  /* Input wrap : hauteur réduite 56 → 44px en inner */
  .pap-search-row--inner .oemsearch-inputwrap {
    height: var(--oemsearch-h-mobile-inner);
    padding: 0 12px;
  }

  /* Icône loupe : plus serrée en inner mobile */
  .pap-search-row--inner .oemsearch-icon {
    width: 16px;
    height: 16px;
    margin-right: 8px;
  }

  /* Input texte : 16px maintenu (anti-zoom iOS) */
  .pap-search-row--inner .oemsearch-input {
    font-size: 16px;
    letter-spacing: 0.3px;
  }

  /* Bouton submit : hauteur réduite, padding compact, plein largeur */
  .pap-search-row--inner .oemsearch-submit {
    height: var(--oemsearch-h-mobile-inner);
    font-size: 13px;
    padding: 0 14px;
    letter-spacing: 0.5px;
    min-width: 0;
    width: 100%;
  }
}


/* ------------------------------------------------------------------------
   10. Texte du bouton submit selon le contexte
   - HOME : "Vérifier la disponibilité" (label long)
   - INNER : "Vérifier" (label court)
   - Solo / hors grille : "Vérifier la disponibilité"
   ------------------------------------------------------------------------ */

/* Par défaut : label long visible (cas home, solo, hors grille) */
.oemsearch-submit__long  { display: inline; }
.oemsearch-submit__short { display: none; }

/* En inner : label court */
.pap-search-row--inner .oemsearch-submit__long  { display: none; }
.pap-search-row--inner .oemsearch-submit__short { display: inline; }


/* ========================================================================
   11. Page "Aucune correspondance"
   (Inchangée vs v1.0.7 — page de résultats hors widget)
   ======================================================================== */

.oemsearch-notfound {
  max-width: 800px;
  margin: 40px auto;
  padding: 40px 32px;
  background: var(--oemsearch-cream);
  border-left: 6px solid var(--oemsearch-gold);
  font-family: var(--oemsearch-font-ui);
}

.oemsearch-notfound__title {
  margin: 0 0 16px 0;
  font-size: 22px;
  font-weight: 700;
  color: var(--oemsearch-ink);
  line-height: 1.4;
}

.oemsearch-notfound__query {
  font-family: var(--oemsearch-font-mono);
  color: var(--oemsearch-gold-deep);
  font-weight: 500;
}

.oemsearch-notfound__lead {
  margin: 0 0 16px 0;
  font-size: 16px;
  color: var(--oemsearch-ink);
  line-height: 1.5;
}

.oemsearch-notfound__hint {
  margin: 16px 0 0 0;
  padding: 12px 16px;
  background: rgba(154, 123, 10, 0.08);
  border-left: 3px solid var(--oemsearch-gold-hi);
  font-size: 14px;
  color: var(--oemsearch-ink);
}


/* ========================================================================
   12. Page de résultats (cas N résultats)
   (Inchangée vs v1.0.7 — page de résultats hors widget)
   ======================================================================== */

.oemsearch-results {
  max-width: 1200px;
  margin: 24px auto;
  padding: 16px;
  font-family: var(--oemsearch-font-ui);
}

.oemsearch-results__head {
  margin: 0 0 24px 0;
}

.oemsearch-results__title {
  margin: 0;
  font-size: 22px;
  font-weight: 700;
  color: var(--oemsearch-ink);
}

.oemsearch-results__query {
  font-family: var(--oemsearch-font-mono);
  color: var(--oemsearch-gold-deep);
}

.oemsearch-results__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
}

@media (min-width: 700px) {
  .oemsearch-results__list { grid-template-columns: repeat(2, 1fr); }
}

@media (min-width: 1100px) {
  .oemsearch-results__list { grid-template-columns: repeat(3, 1fr); }
}

.oemsearch-results__item {
  background: #FFFFFF;
  border: 1px solid #E5E0CF;
  transition: border-color 120ms ease, box-shadow 120ms ease;
}

.oemsearch-results__item:hover {
  border-color: var(--oemsearch-gold);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

.oemsearch-results__link {
  display: flex;
  align-items: stretch;
  text-decoration: none;
  color: inherit;
  padding: 12px;
  gap: 12px;
}

.oemsearch-results__img {
  flex: 0 0 auto;
  width: 80px;
  height: 80px;
  object-fit: cover;
  background: var(--oemsearch-cream);
}

.oemsearch-results__body {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}

.oemsearch-results__name {
  font-weight: 600;
  color: var(--oemsearch-ink);
  font-size: 14px;
  line-height: 1.3;
}

.oemsearch-results__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  font-size: 12px;
  color: var(--oemsearch-grey-text);
}

.oemsearch-results__ref,
.oemsearch-results__mpn {
  font-family: var(--oemsearch-font-mono);
}

.oemsearch-results__price {
  margin-top: auto;
  font-weight: 700;
  color: var(--oemsearch-gold-deep);
  font-size: 16px;
}


/* ========================================================================
   13. BO admin : ajustements légers
   (Inchangé vs v1.0.7 — relatif au BO de configuration)
   ======================================================================== */

.oemsearchpro-section-title {
  margin: 24px 0 16px 0;
  padding: 0 0 8px 0;
  border-bottom: 1px solid #E5E0CF;
  font-size: 16px;
  font-weight: 700;
}

.oemsearchpro-section-title i {
  margin-right: 6px;
  color: var(--oemsearch-gold);
}


/* ========================================================================
   FIN DU CSS V20 (oemsearchpro v1.0.8)
   ======================================================================== */
