/* =========================================================
   LENOIR Occasion — feuille de style du thème (issue du prototype V1)
   Polices : Oswald et IBM Plex Sans, chargées par Elementor
   (Réglages du site › Polices globales). Aucun fichier à ajouter.
   ========================================================= */
:root {
  /* ===== Nuancier LENOIR : du blanc au noir ===== */
  --blanc: #FFFFFF;         /* fond principal */
  --inox: #F3F3F1;          /* sections en alternance */
  --alu: #D6D7D9;           /* filets, bordures */
  --alu-soft: #E8E8E6;      /* filets légers */
  --acier: #666B73;         /* texte secondaire (5,3:1 sur blanc) */
  --graphite: #3A3D42;      /* texte courant, icônes */
  --noir: #141517;          /* noir LENOIR : logo, titres, boutons */

  /* Statuts (fonctionnels, hors identité) */
  --ok: #2B7A4B;
  --ok-bg: #E6F2EA;
  --pending: #8A5A00;
  --pending-bg: #FBF0D9;

  /* Annotations prototype : magenta "épreuve d'imprimeur", jamais publié */
  --tbc-bg: #FBE6F2;
  --tbc-ink: #8A1459;
  --tbc-line: #D86AA8;

  /* Rôles */
  --bg: var(--blanc);
  --bg-alt: var(--inox);
  --bg-blue: #EAEAE7;       /* bloc d'appel à l'action (gris alu clair) */
  --footer-bg: #ECECEA;
  --text: var(--noir);
  --text-soft: var(--acier);
  --line: var(--alu);
  --line-soft: var(--alu-soft);
  --icon: var(--graphite);
  --blue: var(--icon);      /* ancien nom conservé : couleur des icônes */
  --focus: var(--noir);

  /* ===== Couleur des boutons d'action (CTA) =====
     Par défaut : noir LENOIR. Variantes testables dans le Plan du prototype. */
  --btn-bg: var(--noir);
  --btn-bg-hover: var(--graphite);
  --btn-ink: #FFFFFF;
  --btn-border: transparent;
  --action: var(--noir);    /* liens, repères fonctionnels */
  --mark: var(--noir);      /* petits repères graphiques */
  --link: var(--action);

  --draw-ink: var(--graphite);
  --draw-dim: #8A8F97;
  --draw-bg: #F6F6F4;
  --draw-grid: rgba(20, 21, 23, .05);

  /* Anciens tokens (sections sombres, non utilisées) */
  --night: #1B1C1F; --night-2: #26282C; --on-night: #EDEDEB; --on-night-soft: #A7ABB2;
  --mist: var(--inox); --paper: var(--blanc); --ink: var(--noir); --steel: var(--acier);

  /* Typographie */
  --f-head: "Oswald", "Arial Narrow", "Roboto Condensed", sans-serif;
  --f-body: "IBM Plex Sans", "Segoe UI", system-ui, -apple-system, sans-serif;

  /* Espacements (base 4) */
  --s1: 4px; --s2: 8px; --s3: 12px; --s4: 16px; --s5: 24px;
  --s6: 32px; --s7: 48px; --s8: 64px; --s9: 96px;

  /* Formes */
  --r1: 4px;   /* boutons, champs */
  --r2: 6px;   /* cartes */
  --shadow-1: 0 1px 2px rgba(20, 24, 31, .06);
  --shadow-2: 0 12px 32px -12px rgba(20, 24, 31, .22);

  /* Mise en page */
  --container: 1240px;
  --gutter: 20px;
  --header-h: 64px;
  --site-w: 100vw;

  --ease: cubic-bezier(.2, .7, .2, 1);

  color-scheme: light;
  box-sizing: border-box;
  padding-top: env(safe-area-inset-top, 0px);
  padding-bottom: env(safe-area-inset-bottom, 0px);
}

/* Variante CTA : jaune signalisation (vocabulaire des machines : arrêt d'urgence, étiquettes de sécurité) */
:root.cta-jaune { --btn-bg: #F2C230; --btn-bg-hover: #E3AE12; --btn-ink: #141517; --btn-border: #141517; --mark: #E3AE12; }
/* Variante CTA : bleu du premier brief */
:root.cta-bleu { --btn-bg: #4A68A8; --btn-bg-hover: #3D5890; --btn-ink: #FFFFFF; --action: #4A68A8; --mark: #6A89CC; --bg-blue: #EDF1F9; }

/* Thème sombre du prototype (non utilisé sur le site). */
:root.proto-dark {
  color-scheme: dark; --footer-bg: #0E0F11;
  --bg: #141517; --bg-alt: #1B1C1F; --bg-blue: #222428; --text: #EDEDEB; --text-soft: #A7ABB2;
  --line: #36393F; --line-soft: #2A2C31; --icon: #C9CCD1; --focus: #EDEDEB;
  --btn-bg: #EDEDEB; --btn-bg-hover: #D6D7D9; --btn-ink: #141517; --action: #EDEDEB; --mark: #EDEDEB;
  --draw-ink: #C4C7CC; --draw-bg: #1B1C1F; --draw-grid: rgba(255,255,255,.04);
  --ok-bg: #16301F; --ok: #7CCB98; --pending-bg: #33280F; --pending: #E7B955;
  --tbc-bg: #3A1730; --tbc-ink: #F4A8D2; --tbc-line: #9A3A72;
}

*, *::before, *::after { box-sizing: inherit; }
html { scroll-padding-top: calc(env(safe-area-inset-top, 0px) + var(--header-h) + 12px); -webkit-text-size-adjust: 100%; }
body {
  margin: 0; background: var(--bg-alt); color: var(--text);
  font-family: var(--f-body); font-size: 17px; line-height: 1.6;
  -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility;
}
.site img, .site svg { max-width: 100%; display: block; }
.site a { color: var(--link); text-underline-offset: 3px; text-decoration-thickness: 1px; }
.site a:hover { text-decoration-thickness: 2px; }
.site button, .site input, .site select, .site textarea { font: inherit; color: inherit; }
.site :focus-visible { outline: 3px solid var(--focus); outline-offset: 2px; border-radius: 2px; }
.site .visually-hidden { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.site .skip { position: absolute; left: 12px; top: -60px; z-index: 100; background: var(--btn-bg); color: var(--btn-ink); padding: 10px 14px; border-radius: var(--r1); }
.site .skip:focus { top: 12px; }

/* ---------- Site frame (container query root) ---------- */
.site {
  container-type: inline-size; container-name: site;
  background: var(--bg); min-height: 100vh; margin: 0 auto; position: relative;
}
body.preview-on .site { box-shadow: 0 0 0 1px var(--line), 0 30px 80px -30px rgba(0,0,0,.35); }

.site .container { width: 100%; max-width: var(--container); margin: 0 auto; padding: 0 var(--gutter); }
.site .narrow { max-width: 760px; }
@container site (min-width: 600px) { .site .container { --gutter: 32px; } }
@container site (min-width: 1100px) { .site .container { --gutter: 48px; } }

/* ---------- Typographie ---------- */
.site h1, .site h2, .site h3, .site h4 { font-family: var(--f-head); font-weight: 500; line-height: 1.12; margin: 0; letter-spacing: .005em; color: var(--text); }
.site .h1, .site h1 { font-size: clamp(2rem, 1.5rem + 2.3cqi, 3.1rem); font-weight: 600; letter-spacing: -.003em; }
.site .h2, .site h2 { font-size: clamp(1.625rem, 1.25rem + 1.9cqi, 2.4rem); }
.site .h3, .site h3 { font-size: clamp(1.2rem, 1.08rem + .6cqi, 1.5rem); }
.site h4 { font-size: 1.1rem; }
.site p { margin: 0 0 1em; }
.site .lead { font-size: clamp(1.06rem, 1rem + .35cqi, 1.22rem); color: var(--text-soft); max-width: 62ch; }
.site .soft { color: var(--text-soft); }
.site .small { font-size: .9rem; }
.site .prose { max-width: 68ch; }
.site .prose h2 { margin: 1.8em 0 .5em; }
.site .prose h3 { margin: 1.5em 0 .4em; }
.site .prose ul { padding-left: 1.2em; margin: 0 0 1em; }
.site .prose li { margin-bottom: .35em; }

/* ---------- Sections ---------- */
.site .section { padding: var(--s8) 0; }
.site .section--alt { background: var(--bg-alt); }
.site .section--night { background: var(--night); color: var(--on-night); }
.site .section--night h1, .site .section--night h2, .site .section--night h3 { color: var(--on-night); }
.site .section--night .soft, .site .section--night .lead { color: var(--on-night-soft); }
.site .section--night a:not(.btn) { color: #A9BDE6; }
.site .section--tight { padding: var(--s7) 0; }
.site .section--blue { background: var(--bg-blue); }
@container site (min-width: 900px) { .site .section { padding: var(--s9) 0; } .site .section--tight { padding: var(--s8) 0; } }
.site .rule { border: 0; border-top: 1px solid var(--line); margin: 0; }

.site .shead { display: grid; gap: var(--s3); margin-bottom: var(--s6); max-width: 720px; }
.site .shead p { margin: 0; }
.site .shead__main { display: grid; gap: 12px; }
.site .shead--split { max-width: none; }
@container site (min-width: 900px) {
  .site .shead--split { grid-template-columns: 1fr auto; align-items: end; gap: var(--s6); }
}
.site .kicker { font-size: .95rem; color: var(--text-soft); margin: 0; }
.site .section--night .kicker { color: var(--on-night-soft); }

/* ---------- Boutons ---------- */
.site .btn {
  --h: 48px;
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: var(--h); padding: 0 22px; border-radius: var(--r1);
  font-family: var(--f-head); font-weight: 500; font-size: 1.05rem; letter-spacing: .02em;
  text-decoration: none; cursor: pointer; border: 1.5px solid transparent;
  transition: background-color .18s var(--ease), border-color .18s var(--ease), color .18s var(--ease), transform .08s;
  white-space: nowrap;
}
.site .btn svg { width: 20px; height: 20px; flex: none; }
.site .btn:active { transform: translateY(1px); }
.site .btn--primary { background: var(--btn-bg); color: var(--btn-ink); border-color: var(--btn-border); }
.site .btn--primary:hover { background: var(--btn-bg-hover); text-decoration: none; }
.site .btn--secondary { background: transparent; color: var(--text); border-color: var(--text); }
.site .btn--secondary:hover { background: var(--text); color: var(--bg); text-decoration: none; }
.site .btn--ghost { background: transparent; color: var(--link); padding: 0 6px; min-height: 44px; border: 0; }
.site .btn--ghost:hover { text-decoration: underline; }
.site .btn--light { background: #fff; color: #1B2029; }
.site .btn--light:hover { background: #E2E8F4; text-decoration: none; }
.site .btn--outline-light { color: var(--on-night); border-color: rgba(233,235,238,.55); background: transparent; }
.site .btn--outline-light:hover { border-color: var(--on-night); background: rgba(255,255,255,.06); text-decoration: none; }
.site .btn--block { width: 100%; }
.site .btn--sm { --h: 40px; padding: 0 16px; font-size: .98rem; }
.site .btn[disabled], .site .btn[aria-disabled="true"] { opacity: .45; pointer-events: none; }
.site .btn-row { display: flex; flex-wrap: wrap; gap: var(--s3); align-items: center; }

.site .tel-line { display: inline-flex; align-items: center; gap: 8px; color: var(--text-soft); font-size: .95rem; }
.site .tel-line svg { width: 18px; height: 18px; flex: none; color: var(--blue); }
.site .tel-line a { color: var(--text); font-weight: 600; text-decoration: none; border-bottom: 1px solid var(--line); }
.site .tel-line a:hover { border-color: var(--text); }

/* ---------- Annotations prototype ---------- */
.site .tbc {
  background: var(--tbc-bg); color: var(--tbc-ink); border-radius: 3px;
  padding: 0 .35em; font-size: .88em; font-weight: 600; white-space: normal;
  box-decoration-break: clone; -webkit-box-decoration-break: clone;
}
.site .demo-tag {
  display: inline-flex; align-items: center; gap: 6px; background: var(--tbc-bg); color: var(--tbc-ink);
  border: 1px dashed var(--tbc-line); border-radius: 3px; font-size: .78rem; font-weight: 600; padding: 2px 8px;
}
.site .proto-note {
  border: 1px dashed var(--tbc-line); background: color-mix(in srgb, var(--tbc-bg) 55%, transparent);
  color: var(--text); border-radius: var(--r2); padding: 12px 14px; font-size: .9rem; line-height: 1.5;
  display: flex; gap: 10px; align-items: flex-start;
}
.site .proto-note strong { color: var(--tbc-ink); }
.site .proto-note svg { width: 18px; height: 18px; flex: none; color: var(--tbc-ink); margin-top: 2px; }
.site .section--night .proto-note { color: var(--on-night); }
body.clean .proto-note { display: none; }

/* ---------- Header ---------- */
.site .header {
  position: sticky; top: env(safe-area-inset-top, 0px); z-index: 40;
  background: color-mix(in srgb, var(--bg) 94%, transparent);
  backdrop-filter: saturate(1.2) blur(8px); -webkit-backdrop-filter: saturate(1.2) blur(8px);
  border-bottom: 1px solid transparent; transition: border-color .2s, box-shadow .2s;
}
.site .header.is-scrolled { border-bottom-color: var(--line); box-shadow: var(--shadow-1); }
.site .header__bar { height: var(--header-h); display: flex; align-items: center; gap: var(--s4); }
.site .logo { display: inline-flex; align-items: baseline; gap: 8px; text-decoration: none; color: var(--text); margin-right: auto; }
.site .logo__mark { font-family: var(--f-head); font-weight: 600; font-size: 1.62rem; letter-spacing: .08em; line-height: 1; }
.site .logo__sub { font-family: var(--f-body); font-size: .86rem; color: var(--text-soft); letter-spacing: .01em; }
.site .logo__bar { width: 18px; height: 3px; background: var(--mark); display: inline-block; transform: translateY(-5px); }
.site .icon-btn {
  width: 44px; height: 44px; display: inline-grid; place-items: center; border-radius: var(--r1);
  border: 1px solid var(--line); background: var(--bg); color: var(--text); cursor: pointer; text-decoration: none;
}
.site .icon-btn:hover { border-color: var(--text); }
.site .icon-btn svg { width: 22px; height: 22px; }
.site .nav, .site .header__tel, .site .header__cta { display: none; }
.site .header__mobile { display: flex; gap: 8px; }
@container site (min-width: 1240px) {
  .site .nav { display: flex; align-items: center; gap: 0; }
  .site .header__cta { display: inline-flex; }
  .site .header__mobile { display: none; }
  .site .logo { margin-right: var(--s3); }
  .site .nav { margin-right: auto; }
  .site .nav__link { padding: 0 8px; font-size: .95rem; gap: 2px; }
}
.site .nav__item { position: relative; }
.site .nav__link {
  white-space: nowrap; display: inline-flex; align-items: center; gap: 4px; height: 44px; padding: 0 10px; border-radius: var(--r1);
  font-size: .98rem; color: var(--text); text-decoration: none; background: none; border: 0; cursor: pointer; font-weight: 500;
}
.site .nav__link svg { width: 16px; height: 16px; flex: none; transition: transform .2s; }
.site .nav__link:hover { background: var(--bg-alt); }
.site .nav__link[aria-current="page"] { box-shadow: inset 0 -2px 0 var(--mark); border-radius: 0; }
.site .nav__item.is-open .nav__link svg { transform: rotate(180deg); }
.site .nav__panel {
  position: absolute; top: calc(100% + 10px); left: 0; min-width: 280px; background: var(--bg);
  border: 1px solid var(--line); border-radius: var(--r2); box-shadow: var(--shadow-2); padding: 10px;
  opacity: 0; visibility: hidden; transform: translateY(-4px); transition: opacity .16s, transform .16s, visibility .16s;
}
.site .nav__item.is-open .nav__panel { opacity: 1; visibility: visible; transform: none; }
.site .nav__panel--mega { width: 620px; display: grid; grid-template-columns: 1fr 1fr; gap: 2px 10px; padding: 14px; }
.site .nav__panel a { display: flex; justify-content: space-between; gap: 12px; padding: 10px 12px; border-radius: var(--r1); color: var(--text); text-decoration: none; font-size: .96rem; }
.site .nav__panel a:hover { background: var(--bg-alt); }
.site .nav__panel a span { color: var(--text-soft); font-size: .85rem; }
.site .nav__panel .nav__all { grid-column: 1 / -1; border-top: 1px solid var(--line); margin-top: 6px; padding-top: 14px; font-weight: 600; color: var(--link); }
.site .header__tel { white-space: nowrap; align-items: center; gap: 8px; color: var(--text); text-decoration: none; font-weight: 600; font-size: .98rem; padding: 0 8px; }
.site .header__tel svg { width: 18px; height: 18px; color: var(--blue); }


/* Menu mobile */
.site .mmenu {
  position: fixed; top: 0; bottom: 0; left: calc(50vw - var(--site-w) / 2); width: var(--site-w);
  z-index: 60; background: var(--bg); display: flex; flex-direction: column;
  padding: env(safe-area-inset-top, 0px) 0 env(safe-area-inset-bottom, 0px);
  visibility: hidden; opacity: 0; transform: translateY(-8px); transition: opacity .2s, transform .2s, visibility .2s;
}
.site .mmenu.is-open { visibility: visible; opacity: 1; transform: none; }
.site .mmenu__top { height: var(--header-h); display: flex; align-items: center; padding: 0 var(--gutter); border-bottom: 1px solid var(--line); }
.site .mmenu__body { flex: 1; overflow-y: auto; padding: 8px var(--gutter) 24px; }
.site .mmenu__link, .site .mmenu summary {
  display: flex; justify-content: space-between; align-items: center; min-height: 58px;
  font-family: var(--f-head); font-size: 1.45rem; font-weight: 500; color: var(--text); text-decoration: none;
  border-bottom: 1px solid var(--line-soft); cursor: pointer; list-style: none;
}
.site .mmenu summary::-webkit-details-marker { display: none; }
.site .mmenu summary svg { width: 22px; height: 22px; transition: transform .2s; }
.site .mmenu details[open] summary svg { transform: rotate(180deg); }
.site .mmenu__sub { padding: 6px 0 12px; display: grid; }
.site .mmenu__sub a { display: flex; justify-content: space-between; padding: 10px 0 10px 4px; color: var(--text); text-decoration: none; font-size: 1.02rem; }
.site .mmenu__sub a span { color: var(--text-soft); font-size: .9rem; }
.site .mmenu__foot { padding: 16px var(--gutter); border-top: 1px solid var(--line); display: grid; gap: 10px; }
.site .mmenu__small { display: flex; gap: 16px; flex-wrap: wrap; margin-top: 18px; font-size: .95rem; }
.site .mmenu__small a { color: var(--text-soft); }

/* ---------- Plaque signalétique (élément signature) ---------- */
.site .plate {
  --rivet: rgba(255, 255, 255, .38);
  position: relative; border: 1px solid var(--noir); border-radius: 3px; background-color: var(--noir); color: #EDEDEB;
  padding: 14px 18px;
  background-image:
    radial-gradient(circle at 8px 8px, var(--rivet) 1.6px, transparent 2.2px),
    radial-gradient(circle at calc(100% - 8px) 8px, var(--rivet) 1.6px, transparent 2.2px),
    radial-gradient(circle at 8px calc(100% - 8px), var(--rivet) 1.6px, transparent 2.2px),
    radial-gradient(circle at calc(100% - 8px) calc(100% - 8px), var(--rivet) 1.6px, transparent 2.2px);
}
.site .plate dl { margin: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 18px; }
.site .plate dt {
  font-family: var(--f-head); text-transform: uppercase; letter-spacing: .1em; font-size: .7rem;
  color: #A7ABB2; line-height: 1.3;
}
.site .plate dd { margin: 0; font-weight: 600; font-size: .98rem; line-height: 1.35; color: #F3F3F1; }
.site .plate .tbc { background: #3A1730; color: #F4A8D2; }
.proto-dark .plate { background-color: #26282C; border-color: #3A3D42; }
.site .plate__title { font-family: var(--f-head); text-transform: uppercase; letter-spacing: .14em; font-size: .78rem; font-weight: 600; padding-bottom: 10px; margin-bottom: 12px; border-bottom: 1px solid rgba(255,255,255,.2); display: flex; justify-content: space-between; gap: 10px; }
.site .plate--wide dl { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@container site (min-width: 600px) { .site .plate--wide dl { grid-template-columns: repeat(4, minmax(0, 1fr)); } }

/* ---------- Emplacements photo (dessins techniques) ---------- */
.site .photo {
  position: relative; background: var(--draw-bg); border: 1px solid var(--line); border-radius: var(--r2); overflow: hidden;
  color: var(--draw-ink);
  background-image:
    linear-gradient(var(--draw-grid) 1px, transparent 1px),
    linear-gradient(90deg, var(--draw-grid) 1px, transparent 1px);
  background-size: 24px 24px;
}
.site .photo svg.draw { width: 100%; height: 100%; }
.site .photo__cap {
  position: absolute; left: 10px; bottom: 10px; right: 10px; display: flex; gap: 8px; align-items: flex-start;
  font-size: .76rem; line-height: 1.35; color: var(--text-soft); background: color-mix(in srgb, var(--bg) 90%, transparent);
  border: 1px solid var(--line); border-radius: 3px; padding: 6px 8px; max-width: 420px;
}
.site .photo__cap svg { width: 14px; height: 14px; flex: none; margin-top: 1px; }
body.clean .photo__cap { display: none; }
.site .draw .d-main { stroke: currentColor; stroke-width: 1.6; fill: none; stroke-linejoin: round; stroke-linecap: round; vector-effect: non-scaling-stroke; }
.site .draw .d-fine { stroke: currentColor; stroke-width: 1; fill: none; opacity: .55; vector-effect: non-scaling-stroke; }
.site .draw .d-fill { fill: currentColor; opacity: .07; stroke: none; }
.site .draw .d-dim { stroke: var(--draw-dim); stroke-width: 1; fill: none; vector-effect: non-scaling-stroke; }
.site .draw .d-dim-t { fill: var(--draw-dim); font-family: var(--f-head); font-size: 13px; letter-spacing: .08em; }

/* ---------- Pastilles ---------- */
.site .status { display: inline-flex; align-items: center; gap: 7px; font-size: .86rem; font-weight: 600; padding: 3px 10px 3px 8px; border-radius: 999px; line-height: 1.4; }
.site .status::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
.site .status--ok { color: var(--ok); background: var(--ok-bg); }
.site .status--tbc { color: var(--pending); background: var(--pending-bg); }
.site .chip {
  display: inline-flex; align-items: center; gap: 8px; min-height: 40px; padding: 0 14px; border-radius: 999px;
  border: 1px solid var(--line); background: var(--bg); color: var(--text); font-size: .95rem; cursor: pointer; white-space: nowrap; text-decoration: none;
}
.site .chip:hover { border-color: var(--text); }
.site .chip[aria-pressed="true"], .site .chip.is-active { background: var(--text); color: var(--bg); border-color: var(--text); }
.site .chip span { font-size: .82rem; opacity: .7; }
.site .chips { display: flex; gap: 8px; overflow-x: auto; scrollbar-width: none; padding: 2px; margin: -2px; }
.site .chips::-webkit-scrollbar { display: none; }

/* ---------- HERO accueil ---------- */
.site .hero { padding: var(--s6) 0 var(--s7); border-bottom: 1px solid var(--line); overflow: hidden; }
.site .hero__grid { display: grid; gap: var(--s6); align-items: center; }
.site .hero__text { display: grid; gap: var(--s4); }
.site .hero__text .lead { margin: 0; }
.site .hero__fig { position: relative; }
.site .hero__fig .photo { aspect-ratio: 4 / 3; }
.site .hero__fig .photo__cap { top: 10px; bottom: auto; }
.site .hero .btn-row .btn { flex: 1 1 auto; }
@container site (min-width: 600px) { .site .hero .btn-row .btn { flex: 0 0 auto; } }
.site .hero__plate { margin-top: -28px; margin-left: 14px; margin-right: 14px; position: relative; box-shadow: var(--shadow-2); }
@container site (min-width: 900px) {
  .site .hero { padding: var(--s8) 0 var(--s8); }
  .site .hero__grid { grid-template-columns: 1.05fr 1fr; gap: var(--s8); }
  .site .hero__fig .photo { aspect-ratio: 5 / 5.2; }
  .site .hero__plate { position: absolute; left: -48px; bottom: 36px; margin: 0; width: 330px; }
}
.site .hero-in > * { animation: rise .6s var(--ease) both; }
.site .hero-in > *:nth-child(2) { animation-delay: .06s; }
.site .hero-in > *:nth-child(3) { animation-delay: .12s; }
.site .hero-in > *:nth-child(4) { animation-delay: .18s; }
@keyframes rise { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }

/* Bande de réassurance */
.site .assure { display: grid; grid-template-columns: 1fr 1fr; border-bottom: 1px solid var(--line); }
.site .assure__item { display: flex; gap: 10px; align-items: flex-start; padding: 14px 12px 14px var(--gutter); border-top: 1px solid var(--line-soft); }
.site .assure__item:nth-child(-n+2) { border-top: 0; }
.site .assure__item:nth-child(odd) { border-right: 1px solid var(--line-soft); }
.site .assure__item:last-child { grid-column: 1 / -1; border-right: 0; }
.site .assure__item span { display: none; }
@container site (min-width: 600px) { .site .assure__item span { display: inline; } .site .assure__item:last-child { grid-column: auto; } .site .assure__item { padding: 18px var(--gutter); gap: 14px; } }
.site .assure__item svg { width: 24px; height: 24px; color: var(--blue); flex: none; margin-top: 2px; }
.site .assure__item strong { display: block; font-weight: 600; line-height: 1.3; font-size: .95rem; }
@container site (min-width: 600px) { .site .assure__item strong { font-size: 1rem; } }
.site .assure__item span { color: var(--text-soft); font-size: .92rem; line-height: 1.45; }

@container site (min-width: 1100px) {
  .site .assure { grid-template-columns: repeat(5, 1fr); max-width: var(--container); margin: 0 auto; }
  .site .assure__item { border-top: 0 !important; border-right: 1px solid var(--line-soft); padding: 22px 20px; }
  .site .assure__item:last-child { border-right: 0; }
}

/* ---------- Cartes machine ---------- */
.site .mgrid { display: grid; gap: 14px; grid-template-columns: 1fr; }
@container site (min-width: 600px) { .site .mgrid { grid-template-columns: repeat(2, 1fr); gap: 20px; } }
@container site (min-width: 1100px) { .site .mgrid { grid-template-columns: repeat(3, 1fr); gap: 24px; } .site .mgrid--4 { grid-template-columns: repeat(4, 1fr); } }

.site .mcard {
  position: relative; display: grid; grid-template-columns: 116px 1fr; background: var(--bg);
  border: 1px solid var(--line); border-radius: var(--r2); overflow: hidden;
  transition: border-color .18s var(--ease), box-shadow .18s var(--ease);
}
.site .mcard:hover { border-color: color-mix(in srgb, var(--text) 45%, var(--line)); box-shadow: var(--shadow-2); }
.site .mcard:hover .mcard__cta { text-decoration: underline; }
.site .mcard__media { border: 0; border-radius: 0; border-right: 1px solid var(--line); min-height: 100%; }
.site .mcard { align-self: start; }
.site .mcard__media svg.draw { transition: transform .35s var(--ease); }
.site .mcard:hover .mcard__media svg.draw { transform: scale(1.03); }
.site .mcard__body { padding: 12px 14px 14px; display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.site .mcard__fam { font-size: .84rem; color: var(--text-soft); margin: 0; }
.site .mcard__title { font-size: 1.14rem; line-height: 1.2; }
.site .mcard__title a { color: var(--text); text-decoration: none; }
.site .mcard__title a::after { content: ""; position: absolute; inset: 0; }
.site .mcard__title a:focus-visible { outline: none; }
.site .mcard:has(a:focus-visible) { outline: 3px solid var(--focus); outline-offset: 2px; }
.site .mcard__meta { margin: 0; display: flex; flex-wrap: wrap; gap: 4px 14px; font-size: .88rem; color: var(--text-soft); }
.site .mcard__meta b { color: var(--text); font-weight: 600; }
.site .mcard__foot { margin-top: auto; padding-top: 6px; display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; }
.site .mcard__cta { font-family: var(--f-head); font-weight: 500; color: var(--link); font-size: .98rem; display: none; }
.site .mcard .photo__cap { display: none; }
@container site (min-width: 600px) {
  .site .mcard { grid-template-columns: 1fr; }
  .site .mcard__media { aspect-ratio: 4 / 3; min-height: 0; border-right: 0; border-bottom: 1px solid var(--line); }
  .site .mcard { align-self: stretch; grid-template-rows: auto 1fr; }
  .site .mcard__body { padding: 16px 18px 18px; gap: 8px; }
  .site .mcard__title { font-size: 1.28rem; }
  .site .mcard__cta { display: inline; }
}

/* Carte "recherche sur mesure" dans la grille */
.site .askcard { border: 1px dashed color-mix(in srgb, var(--text) 35%, var(--line)); border-radius: var(--r2); padding: 22px; display: grid; gap: 12px; align-content: center; background: var(--bg-alt); }
.site .askcard h3 { font-size: 1.3rem; }
.site .askcard p { margin: 0; color: var(--text-soft); }

/* ---------- Familles ---------- */
.site .fgrid { display: grid; gap: 12px; grid-template-columns: 1fr; }
@container site (min-width: 600px) { .site .fgrid { grid-template-columns: repeat(2, 1fr); gap: 16px; } }
@container site (min-width: 1100px) { .site .fgrid { grid-template-columns: repeat(4, 1fr); } .site .fcard--lead { grid-column: span 2; grid-row: span 2; } }
.site .fcard {
  position: relative; display: grid; grid-template-columns: 96px 1fr; gap: 0; background: var(--bg); border: 1px solid var(--line);
  border-radius: var(--r2); overflow: hidden; text-decoration: none; color: var(--text); transition: border-color .18s, box-shadow .18s;
}
.site .fcard:hover { border-color: color-mix(in srgb, var(--text) 45%, var(--line)); box-shadow: var(--shadow-2); }
.site .fcard .photo { border: 0; border-radius: 0; border-right: 1px solid var(--line); }
.site .fcard .photo__cap { display: none; }
.site .fcard__body { padding: 14px 16px; display: grid; gap: 4px; align-content: center; }
.site .fcard__body h3 { font-size: 1.2rem; }
.site .fcard__body p { margin: 0; font-size: .92rem; color: var(--text-soft); line-height: 1.45; }
.site .fcard__count { font-size: .86rem; font-weight: 600; color: var(--text); margin-top: 4px; }
.site .fcard__count--empty { color: var(--text-soft); font-weight: 500; }
@container site (min-width: 600px) {
  .site .fcard { grid-template-columns: 1fr; }
  .site .fcard .photo { aspect-ratio: 16 / 9; border-right: 0; border-bottom: 1px solid var(--line); }
  .site .fcard__body { padding: 16px 18px 18px; }
}
@container site (min-width: 1100px) {
  .site .fcard--lead .photo { aspect-ratio: auto; height: 100%; min-height: 300px; }
  .site .fcard--lead { grid-template-rows: 1fr auto; }
  .site .fcard--lead .fcard__body h3 { font-size: 1.6rem; }
}

/* ---------- Processus (séquence réelle) ---------- */
.site .process { display: grid; gap: 0; counter-reset: step; }
.site .pstep { display: grid; grid-template-columns: 44px 1fr; gap: 14px; padding: 20px 0; border-top: 1px solid var(--line); }
.site .pstep:last-child { border-bottom: 1px solid var(--line); }
.site .pstep__n { font-family: var(--f-head); font-size: 1.5rem; color: var(--text); border-bottom: 3px solid var(--mark); align-self: start; justify-self: start; padding-bottom: 2px; line-height: 1.1; font-weight: 500; }
.site .pstep h3 { font-size: 1.22rem; margin-bottom: 4px; }
.site .pstep p { margin: 0; color: var(--text-soft); }
.site .split { display: grid; gap: var(--s6); }
@container site (min-width: 900px) {
  .site .split { grid-template-columns: 1fr 1fr; gap: var(--s8); align-items: start; }
  .site .split--wide { grid-template-columns: 1.2fr .8fr; }
  .site .sticky-col { position: sticky; top: calc(var(--header-h) + 24px); }
}

/* ---------- Section technique sombre ---------- */
.site .tech { display: grid; gap: var(--s6); }
.site .tech .photo { aspect-ratio: 4 / 3; }
.site .section--night .tech .photo { --draw-bg: var(--night-2); --draw-ink: #C4CAD3; --draw-grid: rgba(255,255,255,.045); border-color: #353C47; }
.site .section--night .tech .photo__cap { background: rgba(14,17,22,.85); border-color: #353C47; color: var(--on-night-soft); }
.site .tlist { display: grid; gap: 0; margin: var(--s5) 0 var(--s5); }
.site .tlist__item { display: grid; grid-template-columns: 28px 1fr; gap: 12px; padding: 14px 0; border-top: 1px solid var(--line); }
.site .section--night .tlist__item { border-top-color: rgba(233,235,238,.14); }
.site .tlist__item svg { width: 22px; height: 22px; color: var(--blue); margin-top: 2px; }
.site .tlist__item strong { display: block; font-weight: 600; }
.site .tlist__item span { color: var(--text-soft); font-size: .95rem; }
@container site (min-width: 900px) { .site .tech { grid-template-columns: .95fr 1.05fr; gap: var(--s8); align-items: center; } }

/* ---------- Bloc "Qui vous répond" ---------- */
.site .person { display: grid; gap: var(--s5); align-items: start; }
.site .person .photo { aspect-ratio: 4 / 5; max-width: 360px; }
.site .person blockquote { margin: 0; font-family: var(--f-head); font-weight: 400; font-size: clamp(1.35rem, 1.1rem + 1.2cqi, 1.9rem); line-height: 1.3; }
.site .person cite { font-family: var(--f-body); font-size: 1rem; display: block; margin-top: 14px; font-style: normal; color: var(--text-soft); }
@container site (min-width: 900px) { .site .person { grid-template-columns: 320px 1fr; gap: var(--s8); align-items: center; } }

.site .mini-person { display: flex; gap: 14px; align-items: center; padding: 16px; border: 1px solid var(--line); border-radius: var(--r2); background: var(--bg); }
.site .mini-person .photo { width: 64px; height: 64px; border-radius: 50%; flex: none; }
.site .mini-person .photo__cap { display: none; }
.site .mini-person p { margin: 0; font-size: .92rem; color: var(--text-soft); line-height: 1.45; }
.site .mini-person strong { color: var(--text); display: block; font-size: 1rem; }

/* Clients */
.site .clients { display: flex; flex-wrap: wrap; gap: 10px 26px; align-items: center; }
.site .clients span { font-family: var(--f-head); font-size: 1.15rem; color: var(--text-soft); letter-spacing: .02em; }

/* Témoignages (emplacement) */
.site .reviews { display: grid; gap: 14px; }
@container site (min-width: 900px) { .site .reviews { grid-template-columns: repeat(3, 1fr); gap: 20px; } }
.site .review-slot { border: 1px dashed var(--line); border-radius: var(--r2); padding: 22px; min-height: 170px; display: grid; gap: 12px; align-content: start; background: var(--bg); }
.site .review-slot__q { font-family: var(--f-head); font-size: 3rem; line-height: .6; color: var(--alu); }
.site .review-slot__line { height: 10px; border-radius: 4px; background: var(--line-soft); }
.site .review-slot__line:nth-child(3) { width: 85%; } .site .review-slot__line:nth-child(4) { width: 60%; }

/* ---------- CTA final ---------- */
.site .cta-final { display: grid; gap: var(--s6); }
@container site (min-width: 900px) { .site .cta-final { grid-template-columns: 1fr 1fr; gap: var(--s8); align-items: start; } }

/* ---------- Formulaires ---------- */
.site .form { display: grid; gap: 14px; }
.site .form__row { display: grid; gap: 14px; }
@container site (min-width: 600px) { .site .form__row--2 { grid-template-columns: 1fr 1fr; } }
.site .field { display: grid; gap: 6px; }
.site .field label, .site .field legend { font-weight: 600; font-size: .95rem; }
.site .field .opt { color: var(--text-soft); font-weight: 400; }
.site .input, .site .select, .site .textarea {
  width: 100%; min-height: 48px; padding: 10px 14px; border: 1px solid color-mix(in srgb, var(--text) 30%, var(--line));
  border-radius: var(--r1); background: var(--bg); color: var(--text); transition: border-color .15s, box-shadow .15s;
}
.site .textarea { min-height: 116px; resize: vertical; }
.site .input:hover, .site .select:hover, .site .textarea:hover { border-color: var(--text-soft); }
.site .input:focus, .site .select:focus, .site .textarea:focus { outline: none; border-color: var(--focus); box-shadow: 0 0 0 3px color-mix(in srgb, var(--focus) 30%, transparent); }
.site .input[aria-invalid="true"] { border-color: #B3261E; }
.site .field__err { color: #B3261E; font-size: .88rem; }
.site .field__hint { color: var(--text-soft); font-size: .86rem; }
.site .form-card { color: var(--text); }
.site .section--night .form-card .kicker, .site .section--night .form-card .soft { color: var(--text-soft); }
.site .seg { display: flex; flex-wrap: wrap; gap: 8px; border: 0; padding: 0; margin: 0; }
.site .seg input { position: absolute; opacity: 0; pointer-events: none; }
.site .seg label { display: inline-flex; align-items: center; min-height: 44px; padding: 0 16px; border: 1px solid var(--line); border-radius: 999px; cursor: pointer; font-weight: 500; font-size: .95rem; }
.site .seg input:checked + label { background: var(--text); color: var(--bg); border-color: var(--text); }
.site .seg input:focus-visible + label { outline: 3px solid var(--focus); outline-offset: 2px; }
.site .form__legal { font-size: .82rem; color: var(--text-soft); margin: 0; }
.site .form-done { border: 1px solid var(--line); border-radius: var(--r2); padding: 22px; display: grid; gap: 8px; background: var(--bg-alt); }
.site .form-done svg { width: 28px; height: 28px; color: var(--ok); }
.site .form-done h3 { font-size: 1.3rem; }

/* ---------- Catalogue ---------- */
.site .page-head { padding: var(--s6) 0 var(--s5); border-bottom: 1px solid var(--line); }
.site .page-head--plain { border-bottom: 0; }
.site .crumbs { display: flex; flex-wrap: wrap; gap: 4px; align-items: center; font-size: .88rem; color: var(--text-soft); margin-bottom: 14px; list-style: none; padding: 0; }
.site .crumbs a { color: var(--text-soft); }
.site .crumbs li { display: inline-flex; align-items: center; gap: 4px; }
.site .crumbs svg { width: 14px; height: 14px; }
.site .catalog { display: grid; gap: var(--s5); padding-top: var(--s5); padding-bottom: var(--s8); }
.site .toolbar { display: grid; gap: 12px; }
.site .search { position: relative; }
.site .search svg { position: absolute; left: 14px; top: 50%; transform: translateY(-50%); width: 20px; height: 20px; color: var(--text-soft); pointer-events: none; }
.site .search .input { padding-left: 44px; }
.site .toolbar__row { display: flex; gap: 10px; align-items: center; justify-content: space-between; }
.site .count { font-size: .95rem; color: var(--text-soft); }
.site .count b { color: var(--text); }
.site .filters { display: none; }
.site .filter-btn { display: inline-flex; }
@container site (min-width: 1100px) {
  .site .catalog { grid-template-columns: 250px 1fr; gap: var(--s7); align-items: start; }
  .site .filters { display: grid; gap: 22px; position: sticky; top: calc(var(--header-h) + 20px); }
  .site .filter-btn { display: none; }
}
.site .fgroup { border: 0; margin: 0; padding: 0; display: grid; gap: 8px; }
.site .fgroup legend { font-family: var(--f-head); font-weight: 500; font-size: 1.05rem; margin-bottom: 6px; padding: 0; }
.site .check { display: flex; align-items: center; gap: 10px; min-height: 36px; cursor: pointer; font-size: .96rem; }
.site .check input { width: 18px; height: 18px; accent-color: var(--action); }
.site .check span { color: var(--text-soft); font-size: .85rem; margin-left: auto; }
.site .empty { border: 1px dashed var(--line); border-radius: var(--r2); padding: 28px; display: grid; gap: 12px; justify-items: start; background: var(--bg-alt); }
.site .fam-intro { border-left: 3px solid var(--mark); padding: 4px 0 4px 16px; color: var(--text-soft); max-width: 70ch; margin: 0; }

/* Feuille de filtres mobile */
.site .sheet { position: fixed; inset: 0; z-index: 70; visibility: hidden; }
.site .sheet.is-open { visibility: visible; }
.site .sheet__bg { position: absolute; inset: 0; background: rgba(14,17,22,.45); opacity: 0; transition: opacity .2s; }
.site .sheet.is-open .sheet__bg { opacity: 1; }
.site .sheet__panel {
  position: absolute; bottom: 0; left: calc(50vw - var(--site-w) / 2); width: var(--site-w); max-height: 86vh;
  background: var(--bg); border-radius: 14px 14px 0 0; display: flex; flex-direction: column;
  transform: translateY(100%); transition: transform .26s var(--ease); padding-bottom: env(safe-area-inset-bottom, 0px);
}
.site .sheet.is-open .sheet__panel { transform: none; }
.site .sheet__head { display: flex; justify-content: space-between; align-items: center; padding: 14px var(--gutter); border-bottom: 1px solid var(--line); }
.site .sheet__body { overflow-y: auto; padding: 18px var(--gutter); display: grid; gap: 22px; }
.site .sheet__foot { padding: 12px var(--gutter); border-top: 1px solid var(--line); display: flex; gap: 10px; }

/* ---------- Fiche machine ---------- */
.site .pdp { display: grid; gap: var(--s5); padding-top: var(--s4); padding-bottom: var(--s7); }
@container site (min-width: 900px) { .site .pdp { grid-template-columns: 1.15fr .85fr; gap: var(--s7); align-items: start; } }
.site .gallery { display: grid; gap: 10px; }
.site .gallery__track {
  display: grid; grid-auto-flow: column; grid-auto-columns: 100%; overflow-x: auto; scroll-snap-type: x mandatory;
  border-radius: var(--r2); scrollbar-width: none; overscroll-behavior-x: contain;
}
.site .gallery__track::-webkit-scrollbar { display: none; }
.site .gallery__slide { scroll-snap-align: start; aspect-ratio: 4 / 3; }
.site .gallery__slide .photo { height: 100%; border-radius: var(--r2); }
.site .gallery__bar { display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.site .gallery__count { font-size: .9rem; color: var(--text-soft); font-variant-numeric: tabular-nums; }
.site .gallery__nav { display: flex; gap: 8px; }
.site .gallery__thumbs { display: none; gap: 8px; }
.site .gallery__thumbs button { flex: 1; aspect-ratio: 4 / 3; padding: 0; border: 1px solid var(--line); border-radius: var(--r1); background: var(--draw-bg); cursor: pointer; overflow: hidden; color: var(--draw-ink); }
.site .gallery__thumbs button[aria-current="true"] { outline: 2px solid var(--text); outline-offset: 1px; }
.site .gallery__thumbs .photo { border: 0; height: 100%; }
.site .gallery__thumbs .photo__cap { display: none; }
@container site (min-width: 600px) { .site .gallery__thumbs { display: flex; } }

.site .pdp__info { display: grid; gap: 18px; }
@container site (min-width: 900px) { .site .pdp__info { position: sticky; top: calc(var(--header-h) + 20px); } }
.site .pdp__fam { color: var(--text-soft); font-size: .95rem; margin: 0; }
.site .pdp__title { font-size: clamp(1.9rem, 1.4rem + 2cqi, 2.7rem); }
.site .pdp__sum { margin: 0; color: var(--text-soft); }
.site .price { border: 1px solid var(--line); border-radius: var(--r2); padding: 16px 18px; display: grid; gap: 10px; background: var(--bg-alt); }
.site .price__main { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.site .price__label { font-family: var(--f-head); font-size: 1.4rem; font-weight: 500; }
.site .price__lease { font-size: .95rem; border-top: 1px solid var(--line); padding-top: 10px; display: grid; gap: 2px; }
.site .price__lease b { font-size: 1.1rem; }
.site .price__lease small { color: var(--text-soft); font-size: .8rem; line-height: 1.4; }
.site .pdp__ctas { display: grid; gap: 10px; }
@container site (min-width: 600px) { .site .pdp__ctas { grid-template-columns: 1fr 1fr; } .site .pdp__ctas .btn--ghost { grid-column: 1 / -1; justify-self: start; } }

.site .specs { width: 100%; border-collapse: collapse; }
.site .specs th, .site .specs td { text-align: left; padding: 12px 0; border-bottom: 1px solid var(--line-soft); vertical-align: top; font-size: .98rem; }
.site .specs th { font-weight: 500; color: var(--text-soft); width: 42%; padding-right: 14px; }
.site .specs td { font-weight: 600; }
.site .specs tr:first-child th, .site .specs tr:first-child td { border-top: 1px solid var(--line); }

.site .usage { display: grid; gap: 14px; }
@container site (min-width: 600px) { .site .usage { grid-template-columns: 1fr 1fr; } }
.site .usage__box { border: 1px solid var(--line); border-radius: var(--r2); padding: 18px; }
.site .usage__box h3 { font-size: 1.15rem; display: flex; gap: 8px; align-items: center; margin-bottom: 8px; }
.site .usage__box h3 svg { width: 20px; height: 20px; }
.site .usage__box--yes h3 svg { color: var(--ok); }
.site .usage__box--no h3 svg { color: #B3261E; }
.site .usage__box p, .site .usage__box ul { margin: 0; color: var(--text-soft); font-size: .96rem; }
.site .usage__box ul { padding-left: 1.1em; }

.site .pdp-sections { display: grid; gap: var(--s7); padding-bottom: var(--s8); }
.site .pdp-sections > section { display: grid; gap: var(--s4); }
.site .kv { display: grid; gap: 0; }
.site .kv > div { display: grid; grid-template-columns: 28px 1fr; gap: 12px; padding: 14px 0; border-top: 1px solid var(--line-soft); }
.site .kv svg { width: 22px; height: 22px; color: var(--blue); margin-top: 2px; }
.site .kv strong { display: block; }
.site .kv span { color: var(--text-soft); font-size: .95rem; }

.site .actionbar {
  position: sticky; bottom: 0; z-index: 30; display: flex; gap: 10px; padding: 10px var(--gutter);
  padding-bottom: calc(10px + env(safe-area-inset-bottom, 0px));
  background: color-mix(in srgb, var(--bg) 96%, transparent); border-top: 1px solid var(--line);
  backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
}
.site .actionbar .btn { flex: 1; }
@container site (min-width: 900px) { .site .actionbar { display: none; } }

/* ---------- Dialog ---------- */
.site dialog.dlg {
  border: 0; padding: 0; border-radius: 10px; width: min(560px, calc(var(--site-w) - 24px)); max-height: calc(100vh - 32px);
  background: var(--bg); color: var(--text); box-shadow: 0 30px 80px -20px rgba(0,0,0,.45);
}
.site dialog.dlg::backdrop { background: rgba(14,17,22,.5); }
.site dialog.dlg[open] { animation: dlgin .22s var(--ease); }
@keyframes dlgin { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
.site .dlg__head { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; padding: 18px 20px 12px; border-bottom: 1px solid var(--line); }
.site .dlg__head h2 { font-size: 1.5rem; }
.site .dlg__head p { margin: 4px 0 0; color: var(--text-soft); font-size: .92rem; }
.site .dlg__body { padding: 18px 20px 22px; overflow-y: auto; }
.site .dlg__machine { display: flex; gap: 12px; align-items: center; padding: 10px 12px; border: 1px solid var(--line); border-radius: var(--r1); background: var(--bg-alt); font-size: .95rem; margin-bottom: 14px; }
.site .dlg__machine .photo { width: 56px; height: 42px; flex: none; border-radius: 3px; }
.site .dlg__machine .photo__cap { display: none; }

/* ---------- Services ---------- */
.site .sgrid { display: grid; gap: 14px; }
@container site (min-width: 600px) { .site .sgrid { grid-template-columns: 1fr 1fr; gap: 18px; } }
@container site (min-width: 1100px) { .site .sgrid { grid-template-columns: repeat(3, 1fr); } }
.site .scard { border: 1px solid var(--line); border-radius: var(--r2); padding: 22px; display: grid; gap: 10px; align-content: start; background: var(--bg); }
.site .scard__icon { width: 44px; height: 44px; display: grid; place-items: center; border-radius: var(--r1); background: var(--bg-alt); color: var(--action); border: 1px solid var(--line); }
.site .scard__icon svg { width: 24px; height: 24px; }
.site .scard h3 { font-size: 1.28rem; }
.site .scard p { margin: 0; color: var(--text-soft); font-size: .96rem; }
.site .scard__who { font-size: .82rem; color: var(--text-soft); border-top: 1px solid var(--line-soft); padding-top: 10px; margin-top: 4px; }

.site .remote { display: grid; gap: var(--s6); }
@container site (min-width: 900px) { .site .remote { grid-template-columns: 1fr 1fr; gap: var(--s8); } }
.site .checklist { list-style: none; padding: 0; margin: 0; display: grid; gap: 0; }
.site .checklist li { display: grid; grid-template-columns: 26px 1fr; gap: 10px; padding: 12px 0; border-top: 1px solid var(--line-soft); }
.site .checklist li svg { width: 20px; height: 20px; color: var(--blue); margin-top: 3px; }
.site .section--night .checklist li { border-color: rgba(233,235,238,.14); }

.site .map-wrap { display: grid; gap: var(--s6); }
@container site (min-width: 900px) { .site .map-wrap { grid-template-columns: 1.1fr .9fr; gap: var(--s8); align-items: center; } }
.site .fr-map { width: 100%; max-width: 560px; }
.site .fr-map .land { fill: var(--bg); stroke: var(--text-soft); stroke-width: 1.2; }
.site .fr-map .grid-l { stroke: var(--line-soft); stroke-width: 1; }
.site .fr-map .hq { fill: var(--action); }
.site .fr-map .hq-ring { fill: none; stroke: var(--mark); stroke-width: 1.5; }
.site .fr-map text { font-family: var(--f-body); font-size: 22px; fill: var(--text); font-weight: 600; }
.site .poles { list-style: none; margin: 0; padding: 0; display: grid; }
.site .poles li { display: grid; grid-template-columns: 22px 1fr; gap: 12px; padding: 14px 0; border-top: 1px solid var(--line); }
.site .poles li:last-child { border-bottom: 1px solid var(--line); }
.site .poles i { width: 14px; height: 14px; border-radius: 50%; margin-top: 5px; }
.site .poles .hq-dot { background: var(--action); box-shadow: 0 0 0 4px color-mix(in srgb, var(--blue) 30%, transparent); }
.site .poles .tbc-dot { border: 2px dashed var(--tbc-line); }

/* Location */
.site .cond { display: grid; gap: 0; border-top: 1px solid var(--line); }
@container site (min-width: 600px) { .site .cond { grid-template-columns: 1fr 1fr; } }
@container site (min-width: 1100px) { .site .cond { grid-template-columns: repeat(4, 1fr); } }
.site .cond > div { padding: 18px 18px 18px 0; border-bottom: 1px solid var(--line); display: grid; gap: 6px; align-content: start; }
@container site (min-width: 600px) { .site .cond > div { padding: 20px 20px 20px 0; } }
.site .cond h3 { font-size: 1.12rem; display: flex; gap: 8px; align-items: center; }
.site .cond h3 svg { width: 20px; height: 20px; color: var(--blue); }
.site .cond p { margin: 0; font-size: .95rem; color: var(--text-soft); }

.site .rent-card { display: grid; border: 1px solid var(--line); border-radius: var(--r2); overflow: hidden; background: var(--bg); }
@container site (min-width: 900px) { .site .rent-card { grid-template-columns: 1fr 1fr; } }
.site .rent-card .photo { border: 0; border-radius: 0; aspect-ratio: 4 / 3; }
.site .rent-card__body { padding: 24px; display: grid; gap: 12px; align-content: start; }

/* À propos */
.site .facts { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.site .facts > div { padding: 18px 12px 18px 0; display: grid; gap: 2px; }
.site .facts > div + div { border-left: 1px solid var(--line); padding-left: 14px; }
.site .facts b { font-family: var(--f-head); font-size: clamp(1.6rem, 1.2rem + 2cqi, 2.5rem); font-weight: 500; line-height: 1; }
.site .facts span { font-size: .86rem; color: var(--text-soft); line-height: 1.35; }
.site .values { display: grid; gap: 0; }
@container site (min-width: 900px) { .site .values { grid-template-columns: repeat(2, 1fr); column-gap: var(--s7); } }
.site .values > div { padding: 20px 0; border-top: 1px solid var(--line); }
.site .values h3 { font-size: 1.25rem; margin-bottom: 6px; }
.site .values p { margin: 0; color: var(--text-soft); }
.site .vids { display: grid; gap: 14px; }
@container site (min-width: 900px) { .site .vids { grid-template-columns: repeat(3, 1fr); gap: 20px; } }
.site .vid { position: relative; text-decoration: none; color: var(--text); display: grid; gap: 10px; }
.site .vid .photo { aspect-ratio: 16 / 9; }
.site .vid__play { position: absolute; left: 14px; top: 14px; width: 48px; height: 48px; border-radius: 50%; background: var(--btn-bg); color: var(--btn-ink); display: grid; place-items: center; }
.site .vid__play svg { width: 20px; height: 20px; }
.site .vid strong { font-weight: 600; line-height: 1.35; }
.site .vid:hover strong { text-decoration: underline; }

/* Partenaires */
.site .pcard { display: grid; gap: 0; border: 1px solid var(--line); border-radius: var(--r2); overflow: hidden; background: var(--bg); }
@container site (min-width: 900px) { .site .pcard { grid-template-columns: 260px 1fr; } }
.site .pcard__logo { display: grid; place-items: center; min-height: 140px; background: var(--bg-alt); border-bottom: 1px solid var(--line); padding: 20px; text-align: center; }
@container site (min-width: 900px) { .site .pcard__logo { border-bottom: 0; border-right: 1px solid var(--line); } }
.site .pcard__logo b { font-family: var(--f-head); font-size: 1.7rem; font-weight: 500; letter-spacing: .03em; }
.site .pcard__logo small { display: block; font-size: .75rem; color: var(--text-soft); margin-top: 6px; }
.site .pcard__body { padding: 22px; display: grid; gap: 10px; align-content: start; }
.site .pcard__role { font-size: .92rem; color: var(--action); font-weight: 600; margin: 0; }
.site .pstack { display: grid; gap: 16px; }

/* Blog */
.site .bgrid { display: grid; gap: 22px; }
@container site (min-width: 600px) { .site .bgrid { grid-template-columns: 1fr 1fr; } }
@container site (min-width: 1100px) { .site .bgrid { grid-template-columns: repeat(3, 1fr); gap: 28px; } }
.site .bcard { position: relative; display: grid; gap: 10px; align-content: start; }
.site .bcard .photo { aspect-ratio: 3 / 2; }
.site .bcard .photo__cap { display: none; }
.site .bcard__meta { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; font-size: .86rem; color: var(--text-soft); }
.site .bcard h3 { font-size: 1.3rem; }
.site .bcard h3 a { color: var(--text); text-decoration: none; }
.site .bcard h3 a::after { content: ""; position: absolute; inset: 0; }
.site .bcard:hover h3 a { text-decoration: underline; }
.site .bcard p { margin: 0; color: var(--text-soft); font-size: .96rem; }
.site .bfeat { display: grid; gap: 18px; position: relative; padding-bottom: var(--s6); margin-bottom: var(--s6); border-bottom: 1px solid var(--line); }
.site .bfeat .photo { aspect-ratio: 16 / 9; }
@container site (min-width: 900px) { .site .bfeat { grid-template-columns: 1.2fr 1fr; gap: var(--s7); align-items: center; } }
.site .bfeat h2 a { color: var(--text); text-decoration: none; }
.site .bfeat h2 a::after { content: ""; position: absolute; inset: 0; }
.site .bfeat:hover h2 a { text-decoration: underline; }

.site .article-head { padding: var(--s6) 0 var(--s5); }
.site .article-head .photo { aspect-ratio: 16 / 8; margin-top: var(--s5); }
.site .infobox { border: 1px solid var(--line); border-left: 3px solid var(--mark); border-radius: 0 var(--r2) var(--r2) 0; padding: 18px 20px; background: var(--bg-alt); margin: 1.5em 0; }
.site .infobox h3 { margin: 0 0 8px !important; font-size: 1.15rem; }
.site .infobox ul { margin: 0; }

/* FAQ */
.site .faq-group { display: grid; gap: 0; margin-bottom: var(--s6); }
.site .faq-group > h2 { font-size: 1.45rem; margin-bottom: 10px; }
.site .faq details { border-top: 1px solid var(--line); }
.site .faq details:last-child { border-bottom: 1px solid var(--line); }
.site .faq summary {
  list-style: none; cursor: pointer; display: flex; justify-content: space-between; gap: 16px; align-items: center;
  padding: 18px 0; font-weight: 600; font-size: 1.04rem; line-height: 1.4;
}
.site .faq summary::-webkit-details-marker { display: none; }
.site .faq summary .plus { width: 28px; height: 28px; border-radius: 50%; border: 1px solid var(--line); display: grid; place-items: center; flex: none; transition: transform .2s, background .2s; }
.site .faq summary .plus svg { width: 16px; height: 16px; }
.site .faq details[open] summary .plus { transform: rotate(45deg); background: var(--bg-alt); }
.site .faq .ans { padding: 0 44px 20px 0; color: var(--text-soft); }
.site .faq .ans p:last-child { margin-bottom: 0; }
.site .faq-nav { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: var(--s6); }

/* Contact */
.site .contact { display: grid; gap: var(--s6); padding-top: var(--s5); padding-bottom: var(--s8); }
@container site (min-width: 900px) { .site .contact { grid-template-columns: .85fr 1.15fr; gap: var(--s8); align-items: start; } }
.site .cway { display: grid; gap: 0; }
.site .cway a, .site .cway > div { display: grid; grid-template-columns: 44px 1fr; gap: 14px; align-items: center; padding: 16px 0; border-top: 1px solid var(--line); text-decoration: none; color: var(--text); }
.site .cway > :last-child { border-bottom: 1px solid var(--line); }
.site .cway .ic { width: 44px; height: 44px; border-radius: var(--r1); background: var(--bg-alt); display: grid; place-items: center; color: var(--action); border: 1px solid var(--line); }
.site .cway .ic svg { width: 22px; height: 22px; }
.site .cway b { display: block; font-size: 1.05rem; }
.site .cway span { color: var(--text-soft); font-size: .92rem; }
.site .cway a:hover b { text-decoration: underline; }
.site .form-card { border: 1px solid var(--line); border-radius: var(--r2); padding: 22px; background: var(--bg); }
@container site (min-width: 600px) { .site .form-card { padding: 30px; } }

/* ---------- Footer ---------- */
.site .footer { background: var(--footer-bg); color: var(--text-soft); padding: var(--s8) 0 var(--s5); border-top: 1px solid var(--line); }
.site .footer a { color: var(--text); text-decoration: none; }
.site .footer a:hover { text-decoration: underline; }
.site .footer .logo { color: var(--text); }
.site .footer .logo__sub { color: var(--text-soft); }
.site .footer__grid { display: grid; gap: var(--s6); }
@container site (min-width: 600px) { .site .footer__grid { grid-template-columns: 1fr 1fr; } }
@container site (min-width: 1100px) { .site .footer__grid { grid-template-columns: 1.4fr 1fr 1fr 1.2fr; gap: var(--s7); } }
.site .footer h2 { font-size: 1.05rem; color: var(--text); margin-bottom: 12px; font-weight: 500; letter-spacing: .03em; }
.site .footer ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 8px; font-size: .95rem; }
.site .footer__about { font-size: .95rem; max-width: 36ch; margin-top: 14px; }
.site .footer__social { display: flex; gap: 8px; margin-top: 16px; }
.site .footer__social a { width: 44px; height: 44px; border: 1px solid var(--line); background: var(--bg); border-radius: var(--r1); display: grid; place-items: center; }
.site .footer__social svg { width: 20px; height: 20px; }
/* Réseaux sociaux en couleur (Personnaliser › Couleurs › Icônes réseaux sociaux) */
.site .footer__social a { transition: color .2s, border-color .2s, transform .2s; }
.site .footer__social a:hover { text-decoration: none; }
.rs-icone .site .footer__social svg { stroke-width: 1.75; }
.rs-icone .site .rs--instagram, .rs-survol .site .rs--instagram:hover { color: #D62976; }
.rs-icone .site .rs--instagram svg, .rs-survol .site .rs--instagram:hover svg { stroke: url(#lenoir-ig); }
.rs-icone .site .rs--facebook, .rs-survol .site .rs--facebook:hover { color: #1877F2; }
.rs-icone .site .rs--linkedin, .rs-survol .site .rs--linkedin:hover { color: #0A66C2; }
.rs-icone .site .footer__social a:hover, .rs-survol .site .footer__social a:hover { border-color: currentColor; }
.rs-pastille .site .footer__social a { color: #fff; border-color: transparent; }
.rs-pastille .site .rs--instagram { background: linear-gradient(45deg, #FEDA75, #FA7E1E, #D62976, #962FBF, #4F5BD5); }
.rs-pastille .site .rs--facebook { background: #1877F2; }
.rs-pastille .site .rs--linkedin { background: #0A66C2; }
.rs-pastille .site .footer__social a:hover { transform: translateY(-2px); }
@media (prefers-reduced-motion: reduce) { .site .footer__social a { transition: none; } .rs-pastille .site .footer__social a:hover { transform: none; } }
.site .footer__bottom { margin-top: var(--s7); padding-top: var(--s4); border-top: 1px solid var(--line); display: flex; flex-wrap: wrap; gap: 8px 20px; justify-content: space-between; font-size: .86rem; }
.site .footer__bottom ul { display: flex; flex-wrap: wrap; gap: 8px 18px; }

/* Apparition discrète */
.js .site .reveal { opacity: 0; transform: translateY(12px); transition: opacity .55s var(--ease), transform .55s var(--ease); }
.js .site .reveal.is-in { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .001ms !important; transition-duration: .001ms !important; scroll-behavior: auto !important; }
  .site .reveal { opacity: 1; transform: none; }
}

.site .fcard--all { display: grid; grid-template-columns: 1fr; align-content: center; gap: 10px; padding: 22px; background: var(--night); color: var(--on-night); border-color: var(--night); }
.site .fcard--all h3 { color: var(--on-night); font-size: 1.35rem; }
.site .fcard--all p { margin: 0; color: var(--on-night-soft); font-size: .95rem; }
.site .fcard--all span { font-family: var(--f-head); color: #A9BDE6; font-size: 1.02rem; }
@container site (min-width: 1100px) { .site .fcard--all { grid-column: span 2; } }
.site .clients + .proto-note { margin-top: 20px; }


/* Machines neuves, vidéo, lien neuf */
.site .nav__panel .nav__neuf { grid-column: 1 / -1; background: var(--bg-alt); }
.site .status--new { color: var(--action); background: var(--bg-blue); }
.site .neuf-line { display: flex; gap: 12px; align-items: flex-start; margin: 28px 0 0; padding: 16px 18px; border: 1px solid var(--line); border-radius: var(--r2); background: var(--bg); font-size: .98rem; }
.site .neuf-line svg { width: 22px; height: 22px; color: var(--blue); flex: none; margin-top: 2px; }
.site .choice { display: grid; gap: 16px; }
@container site (min-width: 900px) { .site .choice { grid-template-columns: 1fr 1fr; gap: 24px; } }
.site .choice__col { border: 1px solid var(--line); border-radius: var(--r2); padding: 24px; display: grid; gap: 16px; align-content: start; }
.site .choice__col:first-child { border-color: var(--text); box-shadow: inset 0 4px 0 var(--mark); }
.site .checklist li > span { color: var(--text); }
.site .video-slot { position: relative; max-width: 900px; }
.site .video-slot .photo { aspect-ratio: 16 / 9; }
.site .video-slot__play { position: absolute; left: 50%; top: 45%; transform: translate(-50%, -50%); width: 72px; height: 72px; border-radius: 50%; background: var(--btn-bg); color: var(--btn-ink); display: grid; place-items: center; box-shadow: var(--shadow-2); }
.site .video-slot__play svg { width: 28px; height: 28px; margin-left: 3px; }
.site .gallery__video { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; font-size: .92rem; min-height: 44px; }
.site .gallery__video svg { width: 14px; height: 14px; }


/* Barre utilitaire (desktop) : téléphone, horaires, e-mail */
.site .topbar { display: none; background: var(--bg-alt); border-bottom: 1px solid var(--line); font-size: .86rem; color: var(--text-soft); }
.site .topbar__in { display: flex; justify-content: space-between; align-items: center; gap: 20px; min-height: 38px; }
.site .topbar__r { display: flex; gap: 22px; align-items: center; }
.site .topbar a { color: var(--text); text-decoration: none; font-weight: 600; display: inline-flex; gap: 6px; align-items: center; }
.site .topbar a:hover { text-decoration: underline; }
.site .topbar svg { width: 15px; height: 15px; }
@container site (min-width: 1240px) { .site .topbar { display: block; } }

/* Machines neuves : prix, aide */
.site .ncard .mcard__body { gap: 8px; }
.site .ncard__price { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; margin-top: auto; padding-top: 8px; border-top: 1px solid var(--line-soft); }
.site .ncard__price > span:first-child { font-family: var(--f-head); font-size: 1.5rem; font-weight: 500; }
.site .ncard__price small { font-family: var(--f-body); font-size: .8rem; color: var(--text-soft); }
.site .ncard .btn { align-self: stretch; }
.site .proto-inline { background: var(--tbc-bg); color: var(--tbc-ink); border-radius: 3px; padding: 0 .4em; font-size: .78rem; font-weight: 600; }
body.clean .proto-inline { display: none; }
.site .aid-tag { align-self: flex-start; display: inline-flex; align-items: center; gap: 6px; font-size: .84rem; font-weight: 600; color: var(--text); background: var(--bg-blue); border: 1px solid var(--line); border-radius: 999px; padding: 3px 10px; text-decoration: none; }
.site .aid-tag::before { content: ""; width: 7px; height: 7px; background: var(--text); transform: rotate(45deg); }
.site .aid { display: grid; gap: 20px; align-items: center; }
@container site (min-width: 900px) { .site .aid { grid-template-columns: 1fr auto; gap: 48px; } }
.site .aid h2 { max-width: 34ch; }
.site .aid p { max-width: 75ch; }
@container site (min-width: 600px) { .site .ncard { grid-template-rows: auto 1fr; } }

/* Bouton WhatsApp flottant : suit le visiteur sur toutes les pages.
   Vert WhatsApp = reconnaissance immédiate ; seule couleur vive du site, volontairement petite.
   Icône officielle WhatsApp à placer à l'intégration (bibliothèque d'icônes Elementor). */
.site .wa {
  position: fixed; z-index: 50; right: calc(50vw - var(--site-w) / 2 + 16px); bottom: calc(16px + env(safe-area-inset-bottom, 0px));
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  width: 56px; height: 56px; border-radius: 50%; background: #25D366; color: #0B1F14; text-decoration: none;
  box-shadow: 0 10px 28px -10px rgba(0,0,0,.45); transition: transform .15s var(--ease), background-color .15s;
}
.site .wa:hover { background: #1FBE5B; transform: translateY(-1px); text-decoration: none; }
.site .wa svg { width: 26px; height: 26px; flex: none; }
.site .wa__label { display: none; font-weight: 600; font-size: .98rem; }
body.has-actionbar .wa { bottom: calc(84px + env(safe-area-inset-bottom, 0px)); }
@container site (min-width: 900px) { body.has-actionbar .wa { bottom: calc(16px + env(safe-area-inset-bottom, 0px)); } }
@media (min-width: 900px) { body.has-actionbar .wa { bottom: calc(24px + env(safe-area-inset-bottom, 0px)); } }
@media (min-width: 900px) { .site .wa { width: auto; height: 50px; padding: 0 20px 0 16px; border-radius: 999px; bottom: calc(24px + env(safe-area-inset-bottom, 0px)); right: calc(50vw - var(--site-w) / 2 + 24px); } .site .wa__label { display: inline; } }


/* =========================================================
   Ajouts propres à WordPress
   ========================================================= */
body { background: var(--bg); }
.site { min-height: 0; }
.admin-bar .header { top: 32px; }
@media (max-width: 782px) { .admin-bar .header { top: 46px; } }
.site #contenu { outline: none; }

/* Photos réelles */
.site .photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.site .photo { background-image: none; }
.site .photo--empty { display: grid; place-content: center; justify-items: center; gap: 6px; color: var(--text-soft); font-size: .85rem; min-height: 100%; }
.site .photo--empty svg { width: 26px; height: 26px; }
.site .mcard__media.photo--empty { min-height: 110px; }
.site .gallery__slide .photo { aspect-ratio: 4 / 3; }
.site .gallery__thumbs .photo { aspect-ratio: 4 / 3; }
.site .mini-person .photo--empty span { display: none; }
.site .mini-person .photo--empty svg { width: 20px; height: 20px; }

/* Vidéo YouTube */
.site .video-embed { max-width: 900px; aspect-ratio: 16 / 9; border-radius: var(--r2); overflow: hidden; background: var(--bg-alt); }
.site .video-embed iframe { width: 100%; height: 100%; display: block; border: 0; }

/* Statut « vendue » */
.site .status--sold { color: var(--text-soft); background: var(--bg-alt); }

/* Familles en liens (catalogue) */
.site .famlink { color: var(--text); text-decoration: none; justify-content: space-between; }
.site .famlink:hover { text-decoration: underline; }
.site .famlink.is-active { font-weight: 600; }
.site .chip.is-active span { opacity: .8; }
.site [data-card][hidden], .site [data-ask][hidden] { display: none; }

/* Anti-spam des formulaires */
.site .hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* Fenêtre de demande : nom de la machine */
.site .dlg__machine { font-weight: 600; }

/* Groupes de machines neuves */
.site .neuf-list { display: grid; gap: 56px; }

/* Blocs dynamiques dans Elementor : pas de marge parasite */
.site .lenoir-sc .assure { border-top: 1px solid var(--line); }
.site .elementor-widget-shortcode .lenoir-sc { width: 100%; }

/* Boutons natifs de Hello neutralisés */
.site button { font: inherit; }

/* =========================================================
   Classes utilisables dans Elementor (onglet Avancé › Classes CSS)
   btn-secondaire · plaque · carte-machine · reveal
   ========================================================= */
.site .btn-secondaire .elementor-button { background: transparent; color: var(--noir); }
.site .btn-secondaire .elementor-button:hover, .site .btn-secondaire .elementor-button:focus-visible { background: var(--noir); color: #FFFFFF; }
.site .elementor-button { font-family: var(--f-head); font-weight: 500; letter-spacing: .02em; border-radius: var(--r1); }
.site .plaque {
  --rivet: rgba(255, 255, 255, .38);
  background-color: var(--noir); color: #F3F3F1; border-radius: 3px; padding: 14px 18px;
  background-image:
    radial-gradient(circle at 8px 8px, var(--rivet) 1.6px, transparent 2.2px),
    radial-gradient(circle at calc(100% - 8px) 8px, var(--rivet) 1.6px, transparent 2.2px),
    radial-gradient(circle at 8px calc(100% - 8px), var(--rivet) 1.6px, transparent 2.2px),
    radial-gradient(circle at calc(100% - 8px) calc(100% - 8px), var(--rivet) 1.6px, transparent 2.2px);
}
.site .carte-machine { border: 1px solid var(--alu); border-radius: var(--r2); overflow: hidden; transition: border-color .18s, box-shadow .18s; }
.site .carte-machine:hover { border-color: #8F9296; box-shadow: var(--shadow-2); }
body :is(a, .site button, .site .elementor-button):focus-visible { outline: 3px solid var(--focus); outline-offset: 2px; }
.site h1, .site h2, .site h3, .site h4, .site .elementor-heading-title { font-family: var(--f-head); }


/* Protection contre les styles globaux d'Elementor (boutons, liens) */
.site .nav__link { background: none; color: var(--text); font-family: var(--f-body); font-weight: 500; letter-spacing: 0; text-transform: none; border: 0; box-shadow: none; line-height: 1.2; }
.site .nav__link:hover, .site .nav__link:focus { background: var(--bg-alt); color: var(--text); }
.site .nav__link[aria-current="page"] { background: none; box-shadow: inset 0 -2px 0 var(--mark); }
.site .icon-btn, .site .icon-btn:hover, .site .icon-btn:focus { background: var(--bg); color: var(--text); padding: 0; }
.site .chip:hover { background: var(--bg); color: var(--text); }
.site .chip.is-active, .site .chip.is-active:hover, .site .chip[aria-pressed="true"] { background: var(--text); color: var(--bg); }
.site .btn--primary:hover, .site .btn--primary:focus { color: var(--btn-ink); }
.site .btn--secondary:hover, .site .btn--secondary:focus { background: var(--text); color: var(--bg); }
.site .btn--ghost:hover, .site .btn--ghost:focus { background: transparent; color: var(--link); }
.site .gallery__thumbs button, .site .gallery__thumbs button:hover { background: var(--draw-bg); padding: 0; }
.site .wa, .site .wa:hover { color: #0B1F14; }
.site .seg label:hover { background: transparent; }
.site .chip { font-family: var(--f-body); font-weight: 400; font-size: .95rem; letter-spacing: 0; text-transform: none; padding: 0 14px; line-height: 1.2; }
.site .gallery__nav .icon-btn, .site .dlg .icon-btn { font-size: 1rem; }

/* Interligne des éléments du thème : protégé contre un interlignage global mal réglé dans Elementor */
.site .topbar, .site .header, .site .mmenu, .site .footer, .site .lenoir-main, .site .lenoir-sc, .site .dlg { line-height: 1.6; }
.site .footer ul { line-height: 1.5; }
.site .footer li { margin: 0; }

/* Logo officiel (image) */
.site .logo--img { display: inline-flex; align-items: center; margin-right: auto; }
/* Tailles réglables : Apparence › Personnaliser › Coordonnées LENOIR › Hauteur du logo.
   Sur mobile, le logo se réduit tout seul s'il ne tient pas à côté des boutons. */
.site .logo--img img { height: min(var(--logo-h-m, 24px), calc((100cqi - 152px) / 9.31)); width: auto; max-width: none; display: block; }
@container site (min-width: 600px) { .site .logo--img img { height: var(--logo-h-m, 24px); } }
@container site (min-width: 1240px) { .site .header .logo--img img { height: var(--logo-h, 32px); } .site .header .logo--img { margin-right: var(--s3); } .site .nav__link { padding: 0 6px; } }
.site .mmenu .logo--img img { height: min(var(--logo-h-m, 24px), calc((100cqi - 104px) / 9.31)); }
/* En-tête plus large que le contenu : laisse la place au logo et au menu */
.site .header .container, .site .topbar .container { max-width: 1440px; }
/* Si le menu ne tient pas sur une ligne (grand logo, petit écran), bascule automatique en menu mobile */
.site .header.nav-collapsed .nav, .site .header.nav-collapsed .header__cta { display: none; }
.site .header.nav-collapsed .header__mobile { display: flex; }
.site .footer .logo--img { display: block; max-width: 340px; }
.site .footer .logo--img img { height: auto; width: 100%; max-width: 100%; }


/* =========================================================
   Fiche machine v1.3
   ========================================================= */
/* Photos cliquables + visionneuse */
.site .gallery__zoom { position: relative; display: block; width: 100%; height: 100%; padding: 0; border: 0; background: none; cursor: zoom-in; border-radius: var(--r2); overflow: hidden; }
.site .gallery__zoom .photo { height: 100%; }
.site .gallery__zoom img { transition: transform .4s var(--ease); }
.site .gallery__zoom:hover img { transform: scale(1.02); }
.site .gallery__zoom-ic { position: absolute; right: 12px; top: 12px; width: 40px; height: 40px; border-radius: 50%; background: rgba(255,255,255,.92); color: var(--noir); display: grid; place-items: center; box-shadow: var(--shadow-1); }
.site .gallery__zoom-ic svg { width: 20px; height: 20px; }
.site .gallery__thumbs button { transition: opacity .15s; opacity: .7; }
.site .gallery__thumbs button[aria-current="true"], .site .gallery__thumbs button:hover { opacity: 1; }
/* Visionneuse : fenêtre centrée, le site reste visible autour */
.site dialog.lb { width: min(1200px, calc(100vw - 32px)); max-width: none; max-height: calc(100vh - 24px); margin: auto; padding: 0; border: 0; border-radius: 10px; background: var(--bg); color: var(--text); overflow: hidden; box-shadow: 0 30px 80px -20px rgba(0,0,0,.5); }
.site dialog.lb[open] { display: flex; flex-direction: column; animation: dlgin .2s var(--ease); }
.site dialog.lb::backdrop { background: rgba(20, 21, 23, .55); }
.site .lb__top { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 8px 8px 8px 18px; border-bottom: 1px solid var(--line); }
.site .lb__title { font-family: var(--f-head); font-size: 1.1rem; font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.site .lb__count { font-family: var(--f-body); font-size: .9rem; color: var(--text-soft); font-variant-numeric: tabular-nums; margin-left: 8px; }
.site .lb__close { width: 44px; height: 44px; border-radius: 50%; border: 0; background: transparent; color: var(--text); display: grid; place-items: center; cursor: pointer; padding: 0; flex: none; }
.site .lb__close:hover { background: var(--bg-alt); color: var(--text); }
.site .lb__close svg { width: 24px; height: 24px; }
.site .lb__stage { position: relative; background: #F6F6F4; }
.site .lb__track { height: min(80vh, 860px); display: grid; grid-auto-flow: column; grid-auto-columns: 100%; grid-template-rows: 100%; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; overscroll-behavior: contain; }
.site .lb__track::-webkit-scrollbar { display: none; }
.site .lb__slide { scroll-snap-align: center; height: 100%; overflow: hidden; display: flex; align-items: center; justify-content: center; padding: 8px; min-width: 0; }
.site .lb__slide img { width: 100%; height: 100%; max-width: 100%; max-height: 100%; object-fit: contain; display: block; }
.site .lb__nav { position: absolute; top: 50%; transform: translateY(-50%); z-index: 2; width: 48px; height: 48px; border-radius: 50%; border: 1px solid var(--line); background: #FFFFFF; color: var(--noir); display: grid; place-items: center; cursor: pointer; padding: 0; box-shadow: 0 6px 18px -6px rgba(0,0,0,.35); }
.site .lb__nav:hover { background: var(--noir); color: #FFFFFF; }
.site .lb__nav[disabled] { opacity: .35; pointer-events: none; }
.site .lb__nav svg { width: 24px; height: 24px; }
.site .lb__nav--prev { left: 12px; } .site .lb__nav--next { right: 12px; }
@media (max-width: 600px) { .site .lb__track { height: min(72vh, 640px); } .site .lb__nav { width: 40px; height: 40px; } .site .lb__nav--prev { left: 6px; } .site .lb__nav--next { right: 6px; } }

/* Titre : l'année en retrait, le modèle en premier */
.site .pdp__year { color: var(--text-soft); font-weight: 500; }
.site .pdp__ref { margin-left: 12px; padding-left: 12px; border-left: 1px solid var(--line); font-variant-numeric: tabular-nums; }

/* Liens secondaires sous les boutons */
.site .pdp__more { display: flex; flex-wrap: wrap; gap: 6px 22px; margin-top: -4px; }
.site .pdp__more a, .site .pdp__more button { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; background: none; border: 0; padding: 0; color: var(--text); font: inherit; font-size: .95rem; font-weight: 500; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.site .pdp__more svg { width: 18px; height: 18px; }
.site .pdp__more a:hover, .site .pdp__more button:hover { background: none; color: var(--text); text-decoration-thickness: 2px; }

/* Votre interlocuteur */
.site .contact-card { display: grid; grid-template-columns: 72px 1fr; gap: 16px; padding: 18px; border: 1px solid var(--line); border-radius: var(--r2); background: var(--bg); align-items: start; }
.site .contact-card--noimg { grid-template-columns: 1fr; }
.site .contact-card__img img { width: 72px; height: 72px; border-radius: 50%; object-fit: cover; display: block; }
.site .contact-card p { margin: 0; }
.site .contact-card__name { font-family: var(--f-head); font-size: 1.2rem; font-weight: 500; }
.site .contact-card__role { font-size: .9rem; font-weight: 600; margin-top: 2px !important; }
.site .contact-card__txt { font-size: .93rem; color: var(--text-soft); margin-top: 8px !important; line-height: 1.5; }
.site .contact-card__actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.site .contact-card__tech { font-size: .88rem; color: var(--text-soft); margin-top: 12px !important; padding-top: 10px; border-top: 1px solid var(--line-soft); }

/* Vidéo : pleine largeur si horizontale ; verticale + encart si filmée au téléphone */
.site .video-block .video-embed { max-width: none; width: 100%; }
.site .video-block--horizontal .video-embed { aspect-ratio: 16 / 9; }
.site .video-block__grid { display: grid; gap: 24px; }
.site .video-block--vertical .video-embed { aspect-ratio: 9 / 16; max-width: 360px; width: 100%; margin: 0 auto; background: #000; }
@container site (min-width: 900px) {
  .site .video-block--vertical .video-block__grid { grid-template-columns: 360px 1fr; gap: 48px; align-items: center; }
  .site .video-block--vertical .video-embed { margin: 0; }
}
.site .video-block__aside { display: grid; gap: 16px; align-content: center; max-width: 520px; }
.site .video-block__lead { font-family: var(--f-head); font-size: 1.4rem; margin: 0; }

/* Noir sur blanc : cartes teintées, texte lisible */
.site .usage__box { border: 0; border-radius: var(--r2); padding: 22px 24px; }
.site .usage__box--yes { background: #EDF5EF; }
.site .usage__box--no { background: #F8ECEA; }
.site .usage__box h3 { font-size: 1.2rem; margin-bottom: 10px; }
.site .usage__box--yes h3 svg { color: #2B7A4B; }
.site .usage__box--no h3 svg { color: #B3261E; }
.site .usage__box p, .site .usage__box ul { color: var(--text); font-size: 1rem; }
.site .usage__box li { margin-bottom: 4px; }
.site .usage__note { margin-top: 12px !important; padding-top: 12px; border-top: 1px solid rgba(20,21,23,.12); font-size: .95rem !important; }

/* Carte « Fiche constructeur » */
.site .doc-card { display: grid; grid-template-columns: auto 1fr auto; gap: 16px; align-items: center; padding: 16px 18px; border: 1.5px solid var(--noir); border-radius: var(--r2); text-decoration: none; color: var(--text); transition: background .15s, box-shadow .15s; }
.site .doc-card:hover { background: var(--bg-alt); box-shadow: var(--shadow-2); color: var(--text); }
.site .doc-card__badge { width: 48px; height: 56px; border-radius: 4px; background: #C4291C; color: #fff; display: grid; place-items: end center; padding-bottom: 8px; font-family: var(--f-head); font-weight: 600; font-size: .9rem; letter-spacing: .06em; clip-path: polygon(0 0, 72% 0, 100% 22%, 100% 100%, 0 100%); }
.site .doc-card__txt { display: grid; gap: 2px; }
.site .doc-card__txt strong { font-family: var(--f-head); font-weight: 500; font-size: 1.2rem; }
.site .doc-card__txt span { font-size: .9rem; color: var(--text-soft); }
.site .doc-card__go { font-family: var(--f-head); font-weight: 500; text-decoration: underline; text-underline-offset: 3px; }

/* Bandeau livraison pleine largeur */
.site .deliv { background: var(--bg-alt); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: 40px 0; }
.site .deliv h2 { margin-bottom: 20px; }
.site .deliv__grid { display: grid; gap: 20px; }
@container site (min-width: 600px) { .site .deliv__grid { grid-template-columns: 1fr 1fr; } }
@container site (min-width: 1100px) { .site .deliv__grid { grid-template-columns: repeat(4, 1fr); gap: 28px; } }
.site .deliv__grid > div { display: grid; gap: 4px; align-content: start; }
.site .deliv__grid svg { width: 26px; height: 26px; margin-bottom: 6px; }
.site .deliv__grid strong { font-weight: 600; }
.site .deliv__grid span { color: var(--text-soft); font-size: .93rem; line-height: 1.5; }

/* Machines similaires : carrousel sur mobile, grille sur ordinateur */
.site .sim-row { display: grid; grid-auto-flow: column; grid-auto-columns: 82%; gap: 14px; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 8px; scrollbar-width: thin; }
.site .sim-row > * { scroll-snap-align: start; }
@container site (min-width: 600px) { .site .sim-row { grid-auto-columns: 46%; } }
@container site (min-width: 1100px) { .site .sim-row { grid-auto-flow: row; grid-template-columns: repeat(4, 1fr); overflow: visible; gap: 24px; } }
@container site (max-width: 599px) { .site .sim-row .mcard { grid-template-columns: 1fr; } .site .sim-row .mcard__media { aspect-ratio: 4 / 3; border-right: 0; border-bottom: 1px solid var(--line); } }
.site .alert-line { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 12px; margin-top: 24px; }
.site .alert-line p { margin: 0; color: var(--text-soft); }

/* Machine vendue */
.site .sold-banner { margin-top: 16px; padding: 18px 20px; border-radius: var(--r2); background: var(--pending-bg); display: grid; gap: 12px; }
.site .sold-banner p { margin: 0; }
.site .pdp-sections { padding-bottom: var(--s7); }
.site .shead .btn, .site .alert-line .btn, .site .sold-banner .btn { white-space: normal; text-align: left; line-height: 1.3; padding-top: 10px; padding-bottom: 10px; height: auto; }
.site .alert-line .btn--ghost { padding-left: 0; }

/* Galerie de la fiche : cadre carré, photo entière (jamais recadrée), fond inox */
.site .pdp .gallery__slide { aspect-ratio: 1 / 1; }
.site .pdp .gallery__slide .photo, .site .pdp .gallery__zoom { background: var(--inox); }
.site .pdp .gallery__slide .photo img { object-fit: contain; }
.site .pdp .gallery__slide .photo { aspect-ratio: auto; height: 100%; }


/* =========================================================
   Valeurs de secours pour Elementor (v1.4.2)
   Si une police globale d'Elementor n'a pas d'interligne ou de police réglé,
   ces valeurs s'appliquent. Dès que vous réglez une valeur dans Elementor,
   c'est la vôtre qui gagne.
   ========================================================= */
:root {
  --e-global-typography-primary-font-family: "Oswald";
  --e-global-typography-primary-font-weight: 600;
  --e-global-typography-primary-line-height: 1.12;
  --e-global-typography-secondary-font-family: "Oswald";
  --e-global-typography-secondary-font-weight: 500;
  --e-global-typography-secondary-line-height: 1.15;
  --e-global-typography-text-font-family: "IBM Plex Sans";
  --e-global-typography-text-font-weight: 400;
  --e-global-typography-text-line-height: 1.6;
  --e-global-typography-accent-font-family: "Oswald";
  --e-global-typography-accent-font-weight: 500;
  --e-global-typography-accent-line-height: 1.2;
  --e-global-color-accent: #141517;
}
/* Boutons Elementor : pas de retour à la ligne sur ordinateur et tablette */
@container site (min-width: 600px) { .site .elementor-button { white-space: nowrap; } }
/* Texte clair automatique dans une plaque construite avec Elementor */
.site .plaque, .site .plaque .elementor-heading-title, .site .plaque .elementor-widget-text-editor { color: #F3F3F1; }

/* Plaque du shortcode [lenoir_plaque] : chevauchement de la photo au-dessus */
.site .plate--overlap { margin: -40px 16px 0; position: relative; box-shadow: var(--shadow-2); }
@container site (min-width: 900px) { .site .plate--overlap { margin: -48px 24px 0; } }

/* Tous les boutons Elementor ont la même bordure de 1,5 px (invisible sur les boutons pleins),
   pour que le bouton contour (classe btn-secondaire) ait exactement la même taille que le bouton noir.
   Priorité volontairement faible : un réglage fait dans Elementor reste prioritaire. */
/* Contour du bouton secondaire dessiné à l'intérieur (ombre interne) :
   il ne change jamais la taille du bouton, qui reste identique au bouton noir. */
.site .btn-secondaire .elementor-button, .site .btn-secondaire .elementor-button:hover, .site .btn-secondaire .elementor-button:focus-visible { border-color: transparent !important; box-shadow: inset 0 0 0 1.5px var(--noir); }

/* Survol par défaut des boutons Elementor (gris graphite) si aucun survol n'est réglé dans Elementor */
:where(.site) .elementor-button { transition: background-color .18s, color .18s, box-shadow .18s; }
:where(.site) .elementor-button:hover, :where(.site) .elementor-button:focus-visible { background-color: var(--btn-bg-hover); color: var(--btn-ink); }

/* =========================================================
   SECTIONS PRÉFAITES (modèle « lenoir-accueil-elementor.json »)
   Chaque conteneur porte une classe l-… : la mise en page et le
   responsive sont gérés ici, les textes et images restent
   modifiables dans Elementor.
   ========================================================= */
.site .e-con .elementor-widget-text-editor p:last-child { margin-bottom: 0; }
.site .e-con .elementor-widget-text-editor p { margin-top: 0; }

/* Section extérieure */
.site .l-section { padding: 64px 20px; }
.site .l-section > .e-con-inner { display: flex; flex-direction: column; gap: 32px; }
@container site (min-width: 600px) { .site .l-section { padding: 64px 32px; } }
@container site (min-width: 1100px) { .site .l-section { padding: 96px 48px; } .site .l-section > .e-con-inner { gap: 40px; } }
.site .l-alt { background-color: var(--bg-alt); }
.site .l-cta { background-color: var(--bg-blue); }
.site .l-tight { padding-top: 48px; padding-bottom: 48px; }
@container site (min-width: 1100px) { .site .l-tight { padding-top: 64px; padding-bottom: 64px; } }
.site .l-flush { padding-top: 0; padding-bottom: 0; }
.site .l-hero { padding-top: 32px; padding-bottom: 48px; }
@container site (min-width: 1100px) { .site .l-hero { padding-top: 48px; padding-bottom: 72px; } }

/* Conteneurs intérieurs : pas de marge parasite */
.site [class*="l-"].e-child { padding: 0; margin: 0; min-width: 0; }

/* Textes */
.site .l-kicker, .site .l-kicker p { font-family: var(--f-body); font-size: 15px; font-weight: 400; color: var(--text-soft); line-height: 1.5; }
.site .l-lead, .site .l-lead p { font-family: var(--f-body); font-size: clamp(17px, 16px + .35cqi, 19.5px); color: var(--text-soft); line-height: 1.6; max-width: 62ch; }
.site .l-note, .site .l-note p { font-size: .98rem; color: var(--text); }
.site .l-note a { color: var(--text); font-weight: 600; }

/* Boutons côte à côte (pleine largeur sur mobile) */
.site .l-btns { display: flex; flex-direction: row; flex-wrap: wrap; gap: 12px; }
.site .l-btns > .elementor-widget { flex: 1 1 auto; width: auto; max-width: 100%; }
.site .l-btns .elementor-button { width: 100%; justify-content: center; }
@container site (min-width: 600px) { .site .l-btns > .elementor-widget { flex: 0 0 auto; } .site .l-btns .elementor-button { width: auto; } }

/* Ligne téléphone et liste de points */
.site .l-tel .elementor-icon-list-item > a, .site .l-tel .elementor-icon-list-item { display: inline-flex; align-items: center; gap: 8px; }
.site .l-tel .elementor-icon-list-text { font-family: var(--f-body); font-size: 15px; color: var(--text-soft); }
.site .l-tel .elementor-icon-list-icon, .site .l-points .elementor-icon-list-icon { font-size: 16px; color: var(--noir); width: auto; }
.site .l-tel .elementor-icon-list-icon i, .site .l-tel .elementor-icon-list-icon svg, .site .l-points .elementor-icon-list-icon i, .site .l-points .elementor-icon-list-icon svg { color: var(--noir); fill: var(--noir); }
.site .l-points .elementor-icon-list-items { display: grid; gap: 0; }
.site .l-points .elementor-icon-list-item { display: flex; gap: 12px; align-items: flex-start; padding: 14px 0; border-top: 1px solid var(--line); }
.site .l-points .elementor-icon-list-item > a { display: flex; gap: 12px; align-items: flex-start; }
.site .l-points .elementor-icon-list-text { font-family: var(--f-body); font-size: 1rem; color: var(--text); line-height: 1.5; }

/* Photos */
.site .l-photo img { width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--r2); display: block; }
.site .l-photo--tall img { aspect-ratio: 4 / 5; }

/* 1. Hero */
.site .l-hero__grid { display: flex; flex-direction: column; gap: 36px; }
.site .l-hero__text { display: flex; flex-direction: column; gap: 16px; }
.site .l-hero__text .l-btns { margin-top: 8px; }
.site .l-hero__media { display: flex; flex-direction: column; gap: 0; }
@container site (min-width: 900px) {
  .site .l-hero__grid { flex-direction: row; align-items: center; gap: 64px; }
  .site .l-hero__grid > .l-hero__text { flex: 1.05 1 0; }
  .site .l-hero__grid > .l-hero__media { flex: 1 1 0; }
  .site .l-hero__media .l-photo img { aspect-ratio: 1 / 1; }
}

/* 2. Engagements */
.site .l-assure { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.site .l-assure > .elementor-widget { margin: 0; padding: 14px 12px; border-bottom: 1px solid var(--line-soft); }
.site .l-assure > .elementor-widget:nth-child(odd) { border-right: 1px solid var(--line-soft); padding-left: 0; }
.site .l-assure > .elementor-widget:last-child { grid-column: 1 / -1; border-right: 0; border-bottom: 0; }
.site .l-assure .elementor-icon-box-wrapper { display: flex; flex-direction: row; gap: 12px; align-items: flex-start; text-align: left; }
.site .l-assure .elementor-icon-box-icon { margin: 0 !important; flex: none; line-height: 1; }
.site .l-assure .elementor-icon { font-size: 22px; color: var(--noir); fill: var(--noir); }
.site .l-assure .elementor-icon-box-title { font-family: var(--f-body); font-size: 15px; font-weight: 600; line-height: 1.3; margin: 0 0 2px; color: var(--text); }
.site .l-assure .elementor-icon-box-description { font-size: 14px; line-height: 1.45; color: var(--text-soft); margin: 0; }
@container site (max-width: 599px) { .site .l-assure .elementor-icon-box-description { display: none; } }
@container site (min-width: 1100px) {
  .site .l-assure { grid-template-columns: repeat(5, 1fr); }
  .site .l-assure > .elementor-widget { padding: 22px 20px; border-bottom: 0; border-right: 1px solid var(--line-soft); }
  .site .l-assure > .elementor-widget:nth-child(odd) { padding-left: 20px; }
  .site .l-assure > .elementor-widget:first-child { padding-left: 0; }
  .site .l-assure > .elementor-widget:last-child { grid-column: auto; border-right: 0; }
}

/* 3. En-tête de section avec bouton à droite */
.site .l-head { display: flex; flex-direction: column; gap: 16px; }
.site .l-head__text { display: flex; flex-direction: column; gap: 12px; max-width: 720px; }
@container site (min-width: 900px) { .site .l-head { flex-direction: row; justify-content: space-between; align-items: flex-end; gap: 32px; } .site .l-head > .elementor-widget-button { flex: none; } }

/* 5, 6, 10. Deux colonnes */
.site .l-split { display: flex; flex-direction: column; gap: 32px; }
.site .l-split__main { display: flex; flex-direction: column; gap: 16px; }
.site .l-split__side { display: flex; flex-direction: column; gap: 16px; }
@container site (min-width: 900px) {
  .site .l-split { flex-direction: row; gap: 64px; align-items: flex-start; }
  .site .l-split > .l-split__main { flex: 1.2 1 0; }
  .site .l-split > .l-split__side { flex: .8 1 0; }
  .site .l-split--media, .site .l-split--even { align-items: center; }
  .site .l-split--media > .l-split__side { flex: .9 1 0; }
  .site .l-split--media > .l-split__main { flex: 1.1 1 0; }
  .site .l-split--even > .l-split__main, .site .l-split--even > .l-split__side { flex: 1 1 0; }
}
.site .l-formcard { background: var(--bg); border: 1px solid var(--line); border-radius: var(--r2); padding: 22px; }
@container site (min-width: 600px) { .site .l-formcard { padding: 30px; } }

/* 5. Étapes */
.site .l-step { display: flex; flex-direction: row; gap: 14px; padding: 18px 0; border-top: 1px solid var(--line); }
.site .l-split__main > .l-step:last-child { border-bottom: 1px solid var(--line); }
.site .l-step > .l-step__n { flex: 0 0 34px; }
.site .l-step__n .elementor-heading-title { font-family: var(--f-head); font-size: 24px; font-weight: 500; line-height: 1.1; display: inline-block; border-bottom: 3px solid var(--mark); padding-bottom: 2px; }
.site .l-step__body { display: flex; flex-direction: column; gap: 4px; flex: 1 1 0; }
.site .l-step__body h3.elementor-heading-title { font-size: 1.22rem; }
.site .l-step__body .elementor-widget-text-editor, .site .l-step__body .elementor-widget-text-editor p { color: var(--text-soft); font-size: 1rem; }

/* 7. Carte location */
.site .l-card { display: flex; flex-direction: column; border: 1px solid var(--line); border-radius: var(--r2); overflow: hidden; background: var(--bg); }
.site .l-card .l-card__img img { border-radius: 0; height: 100%; }
.site .l-card__body { display: flex; flex-direction: column; gap: 12px; padding: 24px !important; }
@container site (min-width: 900px) {
  .site .l-card { flex-direction: row; }
  .site .l-card > .l-card__img, .site .l-card > .l-card__body { flex: 1 1 0; }
  .site .l-card > .l-card__img .elementor-widget-container, .site .l-card > .l-card__img img { height: 100%; }
  .site .l-card__body { padding: 40px !important; justify-content: center; }
}

/* 8. Qui vous répond */
.site .l-person { display: flex; flex-direction: column; gap: 24px; }
.site .l-portrait { max-width: 320px; }
.site .l-portrait img { aspect-ratio: 4 / 5; }
.site .l-person__body { display: flex; flex-direction: column; gap: 14px; }
.site .l-quote .elementor-heading-title { font-family: var(--f-head); font-weight: 400; font-size: clamp(22px, 18px + 1.2cqi, 30px); line-height: 1.3; }
.site .l-facts { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); margin-top: 8px !important; }
.site .l-fact { display: flex; flex-direction: column; gap: 4px; padding: 16px 10px 16px 14px !important; }
.site .l-fact:first-child { padding-left: 0 !important; }
.site .l-fact + .l-fact { border-left: 1px solid var(--line); }
.site .l-fact__n .elementor-heading-title { font-family: var(--f-head); font-weight: 500; font-size: clamp(26px, 20px + 2cqi, 40px); line-height: 1; }
.site .l-fact__t, .site .l-fact__t p { font-size: 14px; line-height: 1.35; color: var(--text-soft); }
@container site (min-width: 900px) {
  .site .l-person { flex-direction: row; align-items: center; gap: 64px; }
  .site .l-person > .l-portrait { flex: 0 0 320px; }
  .site .l-person > .l-person__body { flex: 1 1 0; }
}

/* 9. Clients */
.site .l-clients p { display: flex; flex-wrap: wrap; gap: 10px 26px; margin: 0; }
.site .l-clients span { font-family: var(--f-head); font-size: 1.2rem; color: var(--text-soft); letter-spacing: .02em; }

/* =========================================================
   Sections préfaites, corrections v1.6.0
   ========================================================= */
/* Elementor ajoute son propre « écart » : annulé sur les grilles à filets (sinon les lignes ne se rejoignent pas) */
.site .l-assure, .site .l-facts { gap: 0 !important; }
/* Dans les mises en page en colonne, aucun élément ne se tasse (évite qu'une photo passe sous le texte) */
.site .l-hero__grid > *, .site .l-split > *, .site .l-person > *, .site .l-card > *, .site .l-head > * { flex-shrink: 0; }
@container site (min-width: 900px) { .site .l-hero__grid > *, .site .l-split > *, .site .l-person > *, .site .l-card > * { flex-shrink: 1; } }
.site .l-person .elementor-widget-image, .site .l-split .elementor-widget-image, .site .l-hero__media .elementor-widget-image { width: 100%; }
/* Textes des sections : toujours IBM Plex Sans, quel que soit le réglage global « Texte » */
.site [class*="l-"] .elementor-widget-text-editor, .site [class*="l-"] .elementor-widget-text-editor p { font-family: var(--f-body); }
.site [class*="l-"] .elementor-widget-icon-list .elementor-icon-list-item .elementor-icon-list-text { font-family: var(--f-body); font-weight: 400; }
.site .l-tel.elementor-widget-icon-list .elementor-icon-list-item .elementor-icon-list-text { font-size: 15px; color: var(--text-soft); }
.site .l-points.elementor-widget-icon-list .elementor-icon-list-item .elementor-icon-list-text, .site .l-checks.elementor-widget-icon-list .elementor-icon-list-item .elementor-icon-list-text { font-size: 1rem; color: var(--text); line-height: 1.5; }
.site .l-step__body .elementor-widget-text-editor, .site .l-step__body .elementor-widget-text-editor p { font-size: .98rem; line-height: 1.55; }
.site .l-small, .site .l-small p { font-size: 14px; line-height: 1.5; color: var(--text-soft); }

/* Bandeau de logos clients (widget « Carrousel d'images » d'Elementor, classe l-logos) */
.site .l-logos .swiper-slide, .site .l-logos .elementor-image-carousel .swiper-slide { display: flex; align-items: center; justify-content: center; height: 96px; }
.site .l-logos img { max-height: 56px; width: auto !important; max-width: 80%; object-fit: contain; filter: grayscale(1); opacity: .7; transition: filter .25s, opacity .25s; margin: 0 auto; }
.site .l-logos img:hover { filter: none; opacity: 1; }
.site .l-logos-wrap { border-bottom: 1px solid var(--line); }

/* Bandeau aide à l'achat (machines neuves) */
.site .l-aid { display: flex; flex-direction: column; gap: 20px; }
@container site (min-width: 900px) { .site .l-aid { flex-direction: row; align-items: center; justify-content: space-between; gap: 48px; } .site .l-aid > .elementor-widget-button { flex: none; } }

/* Comparatif occasion / neuf */
.site .l-choice { display: grid; grid-template-columns: 1fr; gap: 16px !important; }
@container site (min-width: 900px) { .site .l-choice { grid-template-columns: 1fr 1fr; gap: 24px !important; } }
.site .l-choice__col { display: flex; flex-direction: column; gap: 16px; border: 1px solid var(--line) !important; border-radius: var(--r2); padding: 24px !important; background: var(--bg); }
.site .l-choice__col--first { border-color: var(--text) !important; box-shadow: inset 0 4px 0 var(--mark); }
.site .l-checks .elementor-icon-list-items { display: grid; gap: 0; }
.site .l-checks .elementor-icon-list-item { display: flex; gap: 10px; align-items: flex-start; padding: 12px 0; border-top: 1px solid var(--line-soft); }
.site .l-checks .elementor-icon-list-icon { color: var(--noir); font-size: 15px; }

/* =========================================================
   Pages Location et Service (v1.7.0)
   ========================================================= */
/* Cartes à icône (widget « Boîte d'icône », position en haut) */
.site .l-cards3 { display: grid; grid-template-columns: 1fr; gap: 14px !important; }
@container site (min-width: 600px) { .site .l-cards3 { grid-template-columns: 1fr 1fr; gap: 18px !important; } }
@container site (min-width: 1100px) { .site .l-cards3 { grid-template-columns: repeat(3, 1fr); } }
.site .l-cards3 > .elementor-widget { margin: 0; border: 1px solid var(--line); border-radius: var(--r2); background: var(--bg); padding: 22px; }
.site .l-cards3 .elementor-icon-box-wrapper { display: flex; flex-direction: column; align-items: flex-start; text-align: left; gap: 12px; }
.site .l-cards3 .elementor-icon-box-icon { margin: 0 !important; line-height: 1; }
.site .l-cards3 .elementor-icon { width: 44px; height: 44px; display: grid; place-items: center; font-size: 20px; color: var(--noir); fill: var(--noir); background: var(--bg-alt); border: 1px solid var(--line); border-radius: var(--r1); }
.site .l-cards3 .elementor-icon-box-title { font-family: var(--f-head); font-weight: 500; font-size: 1.28rem; line-height: 1.2; margin: 0 0 6px; color: var(--text); }
.site .l-cards3 .elementor-icon-box-description { font-family: var(--f-body); font-size: .96rem; line-height: 1.55; color: var(--text-soft); margin: 0; }
/* Variante sans cadre (conditions de location) */
.site .l-cards3--plain > .elementor-widget { border: 0; border-top: 1px solid var(--line); border-radius: 0; background: transparent; padding: 18px 0 6px; }
.site .l-cards3--plain .elementor-icon { width: auto; height: auto; background: none; border: 0; font-size: 20px; }
.site .l-cards3--plain .elementor-icon-box-title { font-size: 1.15rem; }

/* Questions fréquentes (widget « Bascule ») */
.site .l-faq .elementor-toggle-item { margin: 0 !important; border: 0; border-top: 1px solid var(--line); }
.site .l-faq .elementor-toggle-item:last-child { border-bottom: 1px solid var(--line); }
.site .l-faq .elementor-tab-title { border: 0 !important; padding: 16px 0 !important; font-family: var(--f-body); font-size: 1.02rem; font-weight: 600; line-height: 1.4; display: flex; flex-direction: row-reverse; justify-content: space-between; gap: 16px; cursor: pointer; }
.site .l-faq .elementor-tab-title a, .site .l-faq .elementor-toggle-title { color: var(--text) !important; text-decoration: none; font: inherit; }
.site .l-faq .elementor-toggle-icon { color: var(--noir); flex: none; width: auto !important; }
.site .l-faq .elementor-tab-content { border: 0 !important; padding: 0 32px 18px 0 !important; color: var(--text-soft); font-family: var(--f-body); font-size: .98rem; line-height: 1.6; }

/* Carte de France */
.site .l-map .fr-map { width: 100%; max-width: 520px; margin: 0 auto; display: block; }
/* Carte blanche (formulaire, « Ce qu'il faut préparer ») : marge intérieure prioritaire */
.site .l-formcard.e-child, .site .l-formcard { padding: 22px !important; }
@container site (min-width: 600px) { .site .l-formcard.e-child, .site .l-formcard { padding: 30px !important; } }
/* Carte : second point (SAV Bravo) et légende */
.site .fr-map .sav-dot { fill: var(--bg); stroke: var(--noir); stroke-width: 3; }
.site .map-legend { list-style: none; margin: 16px auto 0; padding: 0; display: grid; gap: 8px; max-width: 520px; font-size: .92rem; color: var(--text-soft); }
.site .map-legend li { display: flex; align-items: center; gap: 10px; }
.site .map-legend i { width: 12px; height: 12px; border-radius: 50%; flex: none; }
.site .map-legend__hq { background: var(--noir); }
.site .map-legend__sav { background: var(--bg); border: 3px solid var(--noir); }

/* =========================================================
   Conseils, À propos, Partenaires, FAQ (v1.8.0)
   ========================================================= */
/* Blog */
.site .pagination ul { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; padding: 0; margin: 40px 0 0; }
.site .pagination a, .site .pagination span { display: inline-grid; place-items: center; min-width: 44px; height: 44px; padding: 0 12px; border: 1px solid var(--line); border-radius: var(--r1); color: var(--text); text-decoration: none; }
.site .pagination .current { background: var(--noir); color: #fff; border-color: var(--noir); }
.site .bfeat .photo, .site .bcard .photo { border-radius: var(--r2); overflow: hidden; }
.site .article-head .photo { aspect-ratio: 16 / 9; margin-top: var(--s5); border-radius: var(--r2); overflow: hidden; }
.site .article-body img { border-radius: var(--r2); height: auto; }
.site .article-body blockquote { margin: 1.5em 0; padding: 18px 20px; border-left: 3px solid var(--mark); background: var(--bg-alt); }

/* Texte long (À propos) */
.site .l-prose, .site .l-prose p { font-family: var(--f-body); font-size: 1.06rem; line-height: 1.7; color: var(--text); max-width: 64ch; }
.site .l-prose p + p { margin-top: 1em; }
.site .l-sign .elementor-heading-title { font-family: var(--f-head); font-weight: 500; font-size: 1.3rem; }

/* Grille de valeurs (2 colonnes à filets) */
.site .l-values { display: grid; grid-template-columns: 1fr; gap: 0 !important; }
@container site (min-width: 900px) { .site .l-values { grid-template-columns: 1fr 1fr; column-gap: 48px !important; } }
.site .l-value { display: flex; flex-direction: column; gap: 6px; padding: 20px 0 !important; border-top: 1px solid var(--line); }
.site .l-value h3.elementor-heading-title { font-size: 1.25rem; }
.site .l-value .elementor-widget-text-editor, .site .l-value .elementor-widget-text-editor p { color: var(--text-soft); }

/* Vidéos */
.site .l-videos { display: grid; grid-template-columns: 1fr; gap: 16px !important; }
@container site (min-width: 900px) { .site .l-videos { grid-template-columns: repeat(3, 1fr); gap: 20px !important; } }
.site .l-videos > .elementor-widget { margin: 0; }
.site .l-videos .elementor-wrapper, .site .l-videos iframe { border-radius: var(--r2); overflow: hidden; }

/* Partenaires */
.site .l-partner { display: flex; flex-direction: column; border: 1px solid var(--line); border-radius: var(--r2); overflow: hidden; background: var(--bg); }
.site .l-partner > .l-partner__logo { display: flex; align-items: center; justify-content: center; min-height: 150px; padding: 24px !important; background: var(--bg-alt); border-bottom: 1px solid var(--line); }
.site .l-partner__logo img { max-height: 90px; width: auto !important; object-fit: contain; }
.site .l-partner__body { display: flex; flex-direction: column; gap: 10px; padding: 24px !important; }
@container site (min-width: 900px) {
  .site .l-partner { flex-direction: row; }
  .site .l-partner > .l-partner__logo { flex: 0 0 280px; border-bottom: 0; border-right: 1px solid var(--line); }
  .site .l-partner > .l-partner__body { flex: 1 1 0; padding: 32px !important; }
}
.site .l-role, .site .l-role p { font-family: var(--f-body); font-size: .92rem; font-weight: 600; color: var(--text); }
.site .l-stack { display: flex; flex-direction: column; gap: 18px !important; }

/* FAQ : groupes et colonne collante */
.site .l-faq-group { display: flex; flex-direction: column; gap: 10px; margin-bottom: 28px !important; }
.site .l-faq-group h2.elementor-heading-title { font-size: 1.45rem; }
@container site (min-width: 900px) { .site .l-sticky { position: sticky; top: calc(var(--header-h) + 24px); align-self: flex-start; } }
.site .l-flush-top { padding-top: 0 !important; }

/* =========================================================
   Page Contact (v1.9.0)
   ========================================================= */
@container site (min-width: 900px) {
  .site .l-split--contact > .l-split__main { flex: .85 1 0; }
  .site .l-split--contact > .l-split__side { flex: 1.15 1 0; }
}
/* Moyens de contact : lignes entièrement cliquables */
.site .l-ways { display: flex; flex-direction: column; gap: 0 !important; border-bottom: 1px solid var(--line); }
.site .l-ways > .elementor-widget { position: relative; margin: 0; padding: 18px 0; border-top: 1px solid var(--line); }
.site .l-ways .elementor-icon-box-wrapper { display: flex; flex-direction: row; align-items: center; gap: 16px; text-align: left; }
.site .l-ways .elementor-icon-box-icon { margin: 0 !important; flex: none; line-height: 1; }
.site .l-ways .elementor-icon { width: 48px; height: 48px; display: grid; place-items: center; font-size: 22px; color: var(--noir); fill: var(--noir); background: var(--bg-alt); border: 1px solid var(--line); border-radius: var(--r1); transition: background .15s, color .15s; }
.site .l-ways .elementor-icon-box-title { font-family: var(--f-body); font-size: 1.12rem; font-weight: 600; line-height: 1.3; margin: 0 0 2px; color: var(--text); }
.site .l-ways .elementor-icon-box-title a { color: var(--text); text-decoration: none; }
.site .l-ways .elementor-icon-box-title a::after { content: ""; position: absolute; inset: 0; }
.site .l-ways .elementor-icon-box-description { font-family: var(--f-body); font-size: .93rem; line-height: 1.45; color: var(--text-soft); margin: 0; }
.site .l-ways > .elementor-widget:hover .elementor-icon { background: var(--noir); color: #fff; fill: #fff; }
.site .l-ways > .elementor-widget:hover .elementor-icon-box-title a { text-decoration: underline; text-underline-offset: 3px; }
.site .l-ways--wa .elementor-icon { color: #128C4A; fill: #128C4A; }
/* Cartes d'orientation cliquables */
.site .l-cards3--links > .elementor-widget { position: relative; transition: border-color .18s, box-shadow .18s; }
.site .l-cards3--links > .elementor-widget:hover { border-color: #8F9296; box-shadow: var(--shadow-2); }
.site .l-cards3--links .elementor-icon-box-title a { color: var(--text); text-decoration: none; }
.site .l-cards3--links .elementor-icon-box-title a::after { content: ""; position: absolute; inset: 0; }
/* Carte Google Maps */
.site .l-mapbox iframe, .site .l-mapbox .elementor-custom-embed { border-radius: var(--r2); overflow: hidden; width: 100%; min-height: 320px; display: block; border: 0; }
.site .l-mapbox { border: 1px solid var(--line); border-radius: var(--r2); overflow: hidden; }
/* Adresses longues (e-mail) : retour à la ligne propre au lieu de déborder */
.site .l-ways .elementor-icon-box-content, .site .l-split__main { min-width: 0; }
.site .l-ways .elementor-icon-box-title, .site .l-ways .elementor-icon-box-title a { overflow-wrap: anywhere; word-break: break-word; }
@container site (min-width: 900px) and (max-width: 1239px) { .site .l-ways .elementor-icon-box-title { font-size: 1rem; } }

/* =========================================================
   Alertes nouvelles machines (v2.0.0)
   ========================================================= */
.site .alert-box { display: grid; gap: 24px; border: 1px solid var(--line); border-radius: var(--r2); background: var(--bg); padding: 24px; }
@container site (min-width: 900px) { .site .alert-box { grid-template-columns: 1.4fr 1fr; gap: 0; padding: 0; } .site .alert-box__main { padding: 36px; } .site .alert-box__side { padding: 36px; border-left: 1px solid var(--line); } }
.site .alert-box__main { display: grid; gap: 10px; align-content: start; }
.site .alert-box__kicker { display: inline-flex; align-items: center; gap: 8px; margin: 0; font-size: .92rem; color: var(--text-soft); }
.site .alert-box__kicker svg { width: 18px; height: 18px; }
.site .alert-box__title { font-size: clamp(1.45rem, 1.2rem + 1cqi, 1.9rem); margin: 0; }
.site .alert-box__text { margin: 0 0 6px; color: var(--text-soft); max-width: 56ch; }
.site .alert-box__side { display: grid; gap: 10px; align-content: center; background: var(--bg-alt); border-radius: var(--r1); padding: 20px; }
@container site (min-width: 900px) { .site .alert-box__side { border-radius: 0 var(--r2) var(--r2) 0; } }
.site .alert-box__side p { margin: 0; color: var(--text-soft); }
.site .alert-box__side .alert-box__side-title { font-family: var(--f-head); font-size: 1.25rem; color: var(--text); }
.site .alert-box__side .btn { justify-self: start; }
.site .alert-form { display: grid; gap: 10px; }
.site .alert-form__row { display: flex; flex-direction: column; gap: 10px; }
@container site (min-width: 600px) { .site .alert-form__row { flex-direction: row; } .site .alert-form__row .input { flex: 1 1 auto; min-width: 0; } .site .alert-form__row .btn { flex: none; } }
.site .alert-form__ok { display: flex; gap: 10px; align-items: flex-start; font-size: .88rem; line-height: 1.45; color: var(--text-soft); cursor: pointer; }
.site .alert-form__ok input { width: 18px; height: 18px; margin-top: 1px; flex: none; accent-color: var(--noir); }
.site .alert-form__ok a { color: var(--text-soft); }
.site .alert-form__done { margin: 0; padding: 14px 16px; border-radius: var(--r1); background: var(--ok-bg); color: var(--ok); font-weight: 600; }
.site .alert-section { padding-top: 48px; padding-bottom: 48px; }
/* Pied de page */
.site .footer__alert { display: grid; gap: 14px; padding-bottom: 32px; margin-bottom: 40px; border-bottom: 1px solid var(--line); }
@container site (min-width: 900px) { .site .footer__alert { grid-template-columns: 1fr 1.2fr; align-items: center; gap: 48px; } }
.site .footer__alert-title { font-family: var(--f-head); font-size: 1.3rem; color: var(--text); margin: 0; }
.site .footer__alert-text { margin: 4px 0 0; color: var(--text-soft); font-size: .95rem; }
.site .footer__alert .alert-form__ok, .site .footer__alert .alert-form__ok a { color: var(--text-soft); }


/* =========================================================
   Formulaires MailPoet (page « Gérer mes alertes ») aux couleurs du site (v2.2.0)
   ========================================================= */
.site .mailpoet-manage-subscription, .site .mailpoet_form { font-family: var(--f-body); color: var(--text); }
.site .mailpoet-manage-subscription .mailpoet_paragraph, .site .mailpoet_form .mailpoet_paragraph { margin: 0 0 16px; }
.site .mailpoet-manage-subscription label, .site .mailpoet_form label { display: block; font-weight: 600; font-size: .95rem; margin-bottom: 6px; }
.site .mailpoet-manage-subscription input[type="text"], .site .mailpoet-manage-subscription input[type="email"], .site .mailpoet-manage-subscription select,
.site .mailpoet_form .mailpoet_text, .site .mailpoet_form .mailpoet_select {
  width: 100% !important; min-height: 48px; padding: 10px 14px !important; border: 1px solid #9C9D9F !important; border-radius: var(--r1) !important;
  background: var(--bg) !important; color: var(--text); font: inherit; box-shadow: none;
}
.site .mailpoet-manage-subscription input:focus, .site .mailpoet-manage-subscription select:focus, .site .mailpoet_form .mailpoet_text:focus { outline: none; border-color: var(--focus) !important; box-shadow: 0 0 0 3px color-mix(in srgb, var(--focus) 25%, transparent) !important; }
.site .mailpoet-manage-subscription .mailpoet_checkbox_label, .site .mailpoet-manage-subscription .mailpoet_radio_label { display: flex; align-items: center; gap: 10px; font-weight: 400; }
.site .mailpoet-manage-subscription input[type="checkbox"], .site .mailpoet-manage-subscription input[type="radio"] { width: 18px; height: 18px; accent-color: var(--noir); }
.site .mailpoet-manage-subscription input[type="submit"], .site .mailpoet_form .mailpoet_submit {
  width: auto !important; min-height: 48px; padding: 0 24px !important; border: 0 !important; border-radius: var(--r1) !important;
  background: var(--btn-bg) !important; color: var(--btn-ink) !important; font-family: var(--f-head) !important; font-weight: 500; font-size: 1.05rem !important; letter-spacing: .02em; cursor: pointer;
}
.site .mailpoet-manage-subscription input[type="submit"]:hover, .site .mailpoet_form .mailpoet_submit:hover { background: var(--btn-bg-hover) !important; }
.site .mailpoet-manage-subscription p, .site .mailpoet_form p { color: var(--text-soft); }
.site .mailpoet_message .mailpoet_validate_success, .site .mailpoet-manage-subscription .mailpoet_validate_success { color: var(--ok); font-weight: 600; }
.site .l-hero__text .alert-form { max-width: 560px; }


/* Lien « Recevoir les alertes » dans le menu Machines d'occasion (v2.2.1) */
.site .nav__panel .nav__alertes { grid-column: 1 / -1; display: flex; align-items: center; gap: 10px; justify-content: flex-start; background: var(--bg-alt); font-weight: 600; margin-top: 4px; }
.site .nav__panel .nav__alertes svg { width: 18px; height: 18px; flex: none; }
.site .nav__panel .nav__alertes span { margin-left: auto; font-weight: 400; }
.site .mmenu__sub .mmenu__alertes { border-top: 1px solid var(--line-soft); margin-top: 6px; padding-top: 14px; font-weight: 600; }

/* En-tête de section placé dans une colonne étroite : titre puis bouton, l'un sous l'autre */
.site .l-split .l-head { flex-direction: column !important; align-items: flex-start !important; gap: 12px; }
.site .l-head .elementor-button { white-space: normal; }

/* Cartes à icône : texte toujours aligné à gauche, comme le prototype */
.site .l-cards3 .elementor-icon-box-wrapper, .site .l-cards3 .elementor-icon-box-content,
.site .l-cards3 .elementor-icon-box-title, .site .l-cards3 .elementor-icon-box-description { text-align: left !important; }
.site .l-cards3 .elementor-icon-box-wrapper { align-items: flex-start !important; }

/* =========================================================
   Relecture générale (v2.3.0)
   ========================================================= */
/* Un élément masqué reste masqué (ex. « Aucune machine ne correspond » affiché à tort) */
.site [hidden] { display: none !important; }

/* Catalogue : sur ordinateur, les familles sont déjà dans la colonne de gauche, pas de doublon en pastilles */
@container site (min-width: 1100px) { .site .catalog .toolbar .chips { display: none; } }

/* Conseils : les catégories passent à la ligne au lieu d'être coupées */
.site .page-head + .section .chips { flex-wrap: wrap; overflow: visible; }

/* Tailles des titres dans les sections préfaites (Elementor donne sinon la même taille à tous les niveaux) */
.site [class*="l-"] h2.elementor-heading-title { font-size: clamp(1.85rem, 1.35rem + 2cqi, 2.85rem); line-height: 1.12; }
.site [class*="l-"] h3.elementor-heading-title { font-size: clamp(1.3rem, 1.15rem + .6cqi, 1.6rem); line-height: 1.2; }
.site [class*="l-"] .l-formcard h2.elementor-heading-title, .site .l-formcard h2.elementor-heading-title { font-size: clamp(1.55rem, 1.3rem + 1cqi, 2rem); }
.site .l-choice h3.elementor-heading-title { font-size: clamp(1.45rem, 1.2rem + 1cqi, 1.9rem); }

/* Titres des cartes à icône, y compris quand ils sont des liens */
.site .l-cards3 .elementor-icon-box-title, .site .l-cards3 .elementor-icon-box-title a, .site .l-cards3 .elementor-icon-box-title span {
  font-family: var(--f-head) !important; font-weight: 500 !important; font-size: 1.28rem !important; line-height: 1.2 !important; letter-spacing: 0; }
.site .l-ways .elementor-icon-box-title, .site .l-ways .elementor-icon-box-title a, .site .l-ways .elementor-icon-box-title span {
  font-family: var(--f-body) !important; font-weight: 600 !important; font-size: 1.1rem !important; line-height: 1.3 !important; letter-spacing: 0; }
.site .l-cards3 .elementor-icon-box-description, .site .l-ways .elementor-icon-box-description { font-family: var(--f-body) !important; font-size: .95rem !important; line-height: 1.5 !important; }
/* Icônes des cartes toujours à gauche */
.site .l-cards3 .elementor-icon-box-icon { align-self: flex-start; text-align: left; display: flex; justify-content: flex-start; }

/* À propos : titres et textes des valeurs à la bonne échelle */
.site .l-value h3.elementor-heading-title { font-size: 1.3rem; }
.site .l-value .elementor-widget-text-editor, .site .l-value .elementor-widget-text-editor p { font-size: 1rem !important; line-height: 1.6; }
.site .l-prose, .site .l-prose p { font-size: 1.05rem !important; }

/* Pages légales (classe l-legal) */
.site .l-legal { max-width: 760px; }
.site .l-legal, .site .l-legal p, .site .l-legal li { font-family: var(--f-body) !important; font-size: 1rem; line-height: 1.7; color: var(--text); }
.site .l-legal h2 { font-family: var(--f-head); font-size: 1.45rem; margin: 2em 0 .5em; line-height: 1.2; }
.site .l-legal h2:first-child { margin-top: 0; }
.site .l-legal ul { padding-left: 1.2em; margin: 0 0 1em; }
.site .l-legal li { margin-bottom: .35em; }
.site .l-legal a { color: var(--text); text-decoration: underline; text-underline-offset: 3px; }

/* Machines vendues (v2.5.0) */
.site .mcard--sold .mcard__media img, .site .mcard--sold .photo img { filter: grayscale(1); opacity: .75; }
.site .mcard--sold { background: var(--bg-alt); }
.site .sold-section { padding-top: 48px; }
.site .sold-section .shead .lead { margin-top: 8px; }

/* Vidéo téléversée sur le site : même cadre que YouTube (v2.7.0) */
.site .video-embed video { width: 100%; height: 100%; display: block; object-fit: contain; background: #000; border-radius: inherit; }

/* Texte de présentation d'une famille, sous les machines (v2.8.1) */
.site .fam-about { padding-top: 40px; padding-bottom: 8px; border-top: 1px solid var(--line); }
.site .fam-about h2 { margin-bottom: 12px; }
.site .fam-about .prose p { color: var(--text-soft); }

/* Vignettes cadrées depuis l'administration (v2.9.0) */
.site .mcard__media { overflow: hidden; }
.site .mcard__media.is-contain { background: var(--inox); }
.site .mcard__media.is-contain img { object-fit: contain !important; }

/* Badge « Nouveauté » (v3.0.0) */
.site .mcard { position: relative; }
.site .mcard__new { position: absolute; top: 10px; left: 10px; z-index: 2; background: var(--noir); color: #fff; font-family: var(--f-head); font-size: .82rem; letter-spacing: .04em; text-transform: uppercase; padding: 4px 9px; border-radius: 3px; }

/* =========================================================
   Comparateur et fenêtre PDF (v3.1.0)
   ========================================================= */
.site .mcard__cmp { display: inline-flex; align-items: center; gap: 6px; margin-top: 10px; font-size: .85rem; color: var(--text-soft); cursor: pointer; position: relative; z-index: 2; }
.site .mcard__cmp input { width: 16px; height: 16px; accent-color: var(--noir); }
.site .cmp-bar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 60; background: var(--noir); color: #fff; padding: 10px 0 calc(10px + env(safe-area-inset-bottom, 0px)); box-shadow: 0 -6px 20px rgba(0,0,0,.2); }
.site .cmp-bar[hidden] { display: none !important; }
.site .cmp-bar__in { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; font-size: .95rem; }
.site .cmp-bar__btns { display: flex; gap: 8px; }
.site .cmp-bar .btn--secondary { background: transparent; color: #fff; border-color: #fff; }
.site .cmp-bar .btn--primary { background: #fff; color: var(--noir); }
.site .cmp-bar .btn[disabled] { opacity: .45; }
.site dialog.cmp-dlg, .site dialog.pdfv { width: min(1100px, calc(100vw - 24px)); max-height: calc(100vh - 24px); margin: auto; padding: 0; border: 0; border-radius: 10px; background: var(--bg); color: var(--text); box-shadow: 0 30px 80px -20px rgba(0,0,0,.5); overflow: hidden; }
.site dialog.cmp-dlg[open], .site dialog.pdfv[open] { display: flex; flex-direction: column; }
.site dialog.cmp-dlg::backdrop, .site dialog.pdfv::backdrop { background: rgba(20,21,23,.55); }
.site .pdfv__top { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 8px 8px 8px 18px; border-bottom: 1px solid var(--line); }
.site .pdfv__title { font-family: var(--f-head); font-size: 1.1rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.site .pdfv__actions { display: flex; align-items: center; gap: 6px; flex: none; }
.site dialog.pdfv iframe { width: 100%; height: min(80vh, 900px); border: 0; display: block; background: #525659; }
.site .cmp-dlg__body { overflow: auto; padding: 0 0 8px; }
.site .cmp-table { border-collapse: collapse; width: 100%; min-width: 560px; font-size: .95rem; }
.site .cmp-table th, .site .cmp-table td { padding: 10px 14px; border-bottom: 1px solid var(--line-soft); text-align: left; vertical-align: top; }
.site .cmp-table tbody th { color: var(--text-soft); font-weight: 500; white-space: nowrap; width: 150px; }
.site .cmp-table thead th { font-family: var(--f-head); font-weight: 500; font-size: 1.05rem; }
.site .cmp-table thead img { display: block; width: 100%; max-width: 220px; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--r1); margin-bottom: 8px; }
.site .cmp-table thead a { color: var(--text); }

/* =========================================================
   Bulle d'invitation WhatsApp (v3.2.0)
   ========================================================= */
.site .wa-bubble {
  position: fixed; z-index: 51; right: calc(50vw - var(--site-w) / 2 + 16px); bottom: calc(84px + env(safe-area-inset-bottom, 0px));
  max-width: min(280px, calc(100vw - 32px)); background: var(--bg); border: 1px solid var(--line); border-radius: 12px;
  box-shadow: 0 14px 34px -12px rgba(0,0,0,.35); opacity: 0; transform: translateY(8px); transition: opacity .25s var(--ease), transform .25s var(--ease);
}
.site .wa-bubble.is-in { opacity: 1; transform: none; }
.site .wa-bubble[hidden] { display: none !important; }
.site .wa-bubble::after { content: ""; position: absolute; right: 22px; bottom: -7px; width: 12px; height: 12px; background: var(--bg); border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); transform: rotate(45deg); }
.site .wa-bubble a { display: grid; gap: 3px; padding: 12px 34px 12px 14px; color: var(--text); text-decoration: none; }
.site .wa-bubble a:hover strong { text-decoration: underline; text-underline-offset: 3px; }
.site .wa-bubble strong { font-family: var(--f-head); font-weight: 500; font-size: 1.05rem; line-height: 1.25; }
.site .wa-bubble__sub { display: inline-flex; align-items: center; gap: 6px; font-size: .85rem; color: var(--text-soft); }
.site .wa-bubble__dot { width: 8px; height: 8px; border-radius: 50%; background: #25D366; flex: none; }
.site .wa-bubble.is-closed .wa-bubble__dot { background: #9C9D9F; }
.site .wa-bubble__x { position: absolute; top: 4px; right: 4px; width: 28px; height: 28px; border: 0; background: none; color: var(--text-soft); font-size: 18px; line-height: 1; cursor: pointer; border-radius: 50%; padding: 0; }
.site .wa-bubble__x:hover { background: var(--bg-alt); color: var(--text); }
body.has-actionbar .wa-bubble { bottom: calc(152px + env(safe-area-inset-bottom, 0px)); }
@media (min-width: 900px) {
  .site .wa-bubble, body.has-actionbar .wa-bubble { right: calc(50vw - var(--site-w) / 2 + 24px); bottom: calc(86px + env(safe-area-inset-bottom, 0px)); }
}
/* Petite pulsation du bouton à l'apparition de la bulle (une seule fois) */
@keyframes lenoirPulse { 0% { box-shadow: 0 0 0 0 rgba(37,211,102,.55); } 100% { box-shadow: 0 0 0 16px rgba(37,211,102,0); } }
.site .wa.is-pulse { animation: lenoirPulse 1.4s ease-out 2; }
@media (prefers-reduced-motion: reduce) { .site .wa-bubble { transition: none; } .site .wa.is-pulse { animation: none; } }

/* Bulle WhatsApp : version compacte (v3.2.1) */
.site .wa-bubble { max-width: 310px; border-radius: 12px; }
.site .wa-bubble a { display: flex; flex-direction: column; gap: 2px; padding: 10px 34px 10px 14px; }
.site .wa-bubble strong { font-size: 1rem; line-height: 1.2; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.site .wa-bubble__sub { display: flex; align-items: center; gap: 6px; font-size: .8rem; line-height: 1.2; white-space: nowrap; }
.site .wa-bubble__dot { width: 7px; height: 7px; }
.site .wa-bubble__x { top: 50%; transform: translateY(-50%); width: 26px; height: 26px; font-size: 16px; }
.site .wa-bubble__x:hover { transform: translateY(-50%); }
/* Sur téléphone : une seule ligne, discrète */
@media (max-width: 599px) {
  .site .wa-bubble { max-width: calc(100vw - 96px); border-radius: 999px; }
  .site .wa-bubble::after { right: 26px; }
  .site .wa-bubble a { flex-direction: row; align-items: center; gap: 8px; padding: 8px 34px 8px 12px; }
  .site .wa-bubble a::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: #25D366; flex: none; }
  .site .wa-bubble.is-closed a::before { background: #9C9D9F; }
  .site .wa-bubble strong { font-size: .92rem; }
  .site .wa-bubble__sub { display: none; }
}

/* Lien « English » de la barre du haut (v3.3.0) */
.site .topbar__lang { font-weight: 600; text-decoration: none; padding: 2px 8px; border: 1px solid var(--line); border-radius: 3px; color: var(--text); }
.site .topbar__lang:hover { background: var(--noir); color: #fff; border-color: var(--noir); }
.site .price__lease--calc strong { font-family: var(--f-head); font-weight: 600; font-size: 1.15em; }

/* Carte « Vous ne trouvez pas votre machine ? » : mise en valeur (v3.4.0) */
.site .askcard { background: var(--noir) !important; border: 0 !important; color: #fff; position: relative; overflow: hidden; display: flex; flex-direction: column; justify-content: center; gap: 10px; padding: 26px 24px !important; }
.site .askcard::before { content: ""; position: absolute; right: -40px; top: -40px; width: 160px; height: 160px; border-radius: 50%; border: 18px solid rgba(255,255,255,.06); }
.site .askcard h3 { color: #fff; font-size: 1.45rem; line-height: 1.15; margin: 0; }
.site .askcard p { color: rgba(255,255,255,.78); margin: 0; }
.site .askcard .btn { background: #fff !important; color: var(--noir) !important; border-color: #fff !important; align-self: flex-start; }
.site .askcard .btn:hover { background: var(--inox) !important; }
.site .askcard__kicker { display: inline-flex; align-items: center; gap: 8px; font-size: .82rem; letter-spacing: .08em; text-transform: uppercase; color: rgba(255,255,255,.65); }
.site .askcard__kicker::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: #25D366; }
.site .nav__panel .nav__vendre { margin-top: 0; }
.site .mmenu__lang { font-size: .92rem; color: var(--text-soft) !important; }

/* =========================================================
   v3.5.0 : séparation du menu, WhatsApp, location
   ========================================================= */
/* Fine ligne sous l'en-tête (ordinateur et mobile) */
.site .header { border-bottom: 1px solid var(--line, #D6D7D9); }
.site .header.is-scrolled { box-shadow: 0 6px 18px -14px rgba(20,21,23,.35); }

/* WhatsApp : rond vert avec le vrai logo, pastille rouge « 1 » */
.site .wa { width: 60px !important; height: 60px !important; padding: 0 !important; border-radius: 50% !important; background: #25D366 !important; display: grid !important; place-items: center; box-shadow: 0 8px 22px -6px rgba(37,211,102,.55), 0 2px 6px rgba(0,0,0,.15); }
.site .wa:hover { background: #1EBE5A !important; transform: scale(1.05); }
.site .wa__logo { width: 32px; height: 32px; display: block; }
.site .wa__label, .site .wa > svg:not(.wa__logo) { display: none !important; }
.site .wa__badge { position: absolute; top: -3px; right: -3px; min-width: 22px; height: 22px; padding: 0 6px; border-radius: 11px; background: #E53935; color: #fff; font: 700 12px/22px Arial, sans-serif; text-align: center; border: 2px solid #fff; }
.site .wa__badge[hidden] { display: none; }
.site .wa__badge.is-pop { animation: waPop .45s cubic-bezier(.2,1.6,.4,1) both; }
@keyframes waPop { from { transform: scale(0); } to { transform: scale(1); } }
.site .wa-bubble { display: none !important; }
@media (prefers-reduced-motion: reduce) { .site .wa__badge.is-pop { animation: none; } }

/* Liste des machines à louer */
.site .loc-list { display: grid; gap: 22px; }
.site .loc-card { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); border: 1px solid var(--line); border-radius: var(--r2, 8px); overflow: hidden; background: var(--bg); }
.site .loc-card__media { position: relative; display: block; min-height: 320px; background: var(--inox); }
.site .loc-card__media .photo, .site .loc-card__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.site .loc-card__body { padding: 28px 30px; display: flex; flex-direction: column; gap: 12px; }
.site .loc-card__type { margin: 0; font-size: .9rem; color: var(--text-soft); }
.site .loc-card__title { margin: 0; font-size: clamp(1.5rem, 2.4vw, 2rem); line-height: 1.1; }
.site .loc-card__title a { color: inherit; text-decoration: none; }
.site .loc-card__txt { margin: 0; color: var(--text-soft); }
.site .loc-card__price { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 14px; padding: 14px 16px; background: var(--inox); border-radius: var(--r1, 4px); }
.site .loc-card__price strong { font-family: var(--f-head); font-size: 1.6rem; font-weight: 600; }
.site .loc-card__price span { font-size: .9rem; color: var(--text-soft); }
.site .loc-card__acc { margin: 0; font-size: .92rem; color: var(--text-soft); }
.site .loc-card .btn-row { margin-top: auto; display: flex; flex-wrap: wrap; gap: 10px; }
.site .loc-badge { position: absolute; left: 14px; top: 14px; z-index: 2; display: inline-flex; align-items: center; gap: 7px; padding: 6px 12px; border-radius: 999px; background: #fff; color: #2B7A4B; font-weight: 600; font-size: .88rem; box-shadow: 0 4px 14px rgba(0,0,0,.15); }
.site .loc-badge::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: #2B7A4B; }
.site .loc-badge--off { color: #9A6700; }
.site .loc-badge--off::before { background: #D4A017; }
@media (max-width: 760px) { .site .loc-card { grid-template-columns: 1fr; } .site .loc-card__media { min-height: 240px; } .site .loc-card__body { padding: 20px; } }

/* Bandeau location sur la fiche machine */
.site .loc-fiche { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin: 14px 0; padding: 12px 14px; border: 1px dashed var(--line); border-radius: var(--r1, 4px); font-size: .93rem; }
.site .loc-fiche .loc-badge { position: static; box-shadow: none; background: var(--inox); }
.site .loc-fiche a { font-weight: 600; color: var(--text); }

/* Fenêtre de réservation */
.site dialog.loc-dlg { width: min(640px, calc(100vw - 20px)); max-height: calc(100vh - 20px); overflow: auto; }
.site .loc-dlg__kicker { margin: 0 0 2px; font-size: .85rem; color: var(--text-soft); }
.site .loc-step { padding: 14px 0; border-bottom: 1px solid var(--line-soft, #ECECEA); }
.site .loc-step__t { display: flex; align-items: center; gap: 10px; margin: 0 0 10px; font-family: var(--f-head); font-size: 1.1rem; }
.site .loc-step__t > span:first-child { width: 26px; height: 26px; border-radius: 50%; background: var(--noir); color: #fff; display: grid; place-items: center; font-size: .9rem; }
.site .cal { border: 1px solid var(--line); border-radius: var(--r1, 4px); padding: 10px; }
.site .cal__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; text-transform: capitalize; }
.site .cal__nav { width: 36px; height: 36px; border: 1px solid var(--line); border-radius: 50%; background: var(--bg); font-size: 1.3rem; line-height: 1; cursor: pointer; }
.site .cal__nav[disabled] { opacity: .3; cursor: default; }
.site .cal__grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 3px; text-align: center; }
.site .cal__dow { font-size: .78rem; color: var(--text-soft); padding: 4px 0; }
.site .cal__day { height: 38px; border: 0; border-radius: 4px; background: transparent; font: inherit; font-size: .92rem; cursor: pointer; color: var(--text); }
.site .cal__day:hover:not([disabled]) { background: var(--inox); }
.site .cal__day.is-off { color: #B9BBBF; text-decoration: line-through; cursor: not-allowed; }
.site .cal__day.is-range { background: var(--inox); }
.site .cal__day.is-sel { background: var(--noir); color: #fff; }
.site .loc-summary { margin: 10px 0 0; font-size: .95rem; }
.site .loc-summary .is-bad { color: #B3261E; }
.site .loc-opt { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; padding: 8px 0; cursor: pointer; }
.site .loc-opt small { color: var(--text-soft); width: 100%; padding-left: 26px; }
.site .loc-opt input { width: 16px; height: 16px; accent-color: var(--noir); }
.site .loc-form .btn--primary[disabled] { opacity: .45; }

/* Louer ou acheter */
.site .loc-why { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.site .loc-why__col { padding: 24px; border: 1px solid var(--line); border-radius: var(--r2, 8px); background: var(--bg); }
.site .loc-why__col--on { border: 2px solid var(--noir); }
.site .loc-why__t { font-family: var(--f-head); font-size: 1.35rem; margin: 0 0 10px; }
.site .loc-why ul { margin: 0; padding-left: 18px; }
.site .loc-why li { margin-bottom: 6px; }
@media (max-width: 760px) { .site .loc-why { grid-template-columns: 1fr; } }

/* =========================================================
   v3.6.0 : WhatsApp (logo plus grand, pastille centrée)
   ========================================================= */
.site .wa__logo { width: 40px !important; height: 40px !important; }
.site .wa__badge:not([hidden]) { display: flex; align-items: center; justify-content: center; padding: 0 5px; line-height: 1; font-size: 12px; }

/* =========================================================
   v3.8.0 : RELIEF DES SECTIONS
   Sections grises : halos de lumière et/ou ondes.
   Sections de fin de page en noir : ondes nées d'un halo, et/ou halos.
   Réglages : Personnaliser › LENOIR — Textes et réglages › Couleurs.
   ========================================================= */
.site .l-alt, .site .section--alt { position: relative; background-color: #F1F1EF !important; box-shadow: inset 0 12px 20px -16px rgba(20,21,23,.20); }

/* Positions variables (v3.10.20) : chaque section reçoit une des 5 positions
   (classes .rl-1 à .rl-5, posées par lenoir.js dans l'ordre de la page).
   Deux sections qui se suivent n'ont jamais la même ; rien ne bouge au rechargement.
   --ox/--oy : centre des ondes · --lx/--ly et --mx/--my : reflets · --sx/--sy : ombre. */
.site .l-alt, .site .section--alt, .site .l-cta { --ox: 88%; --oy: 12%; --lx: 12%; --ly: 0%; --mx: 70%; --my: 10%; --sx: 92%; --sy: 100%; }
.site .rl-2 { --ox: 8%;  --oy: 88%; --lx: 80%; --ly: 0%; --mx: 30%; --my: 8%;  --sx: 10%; --sy: 100%; }
.site .rl-3 { --ox: 64%; --oy: 100%; --lx: 22%; --ly: 0%; --mx: 92%; --my: 18%; --sx: 6%;  --sy: 90%; }
.site .rl-4 { --ox: 10%; --oy: 8%;  --lx: 86%; --ly: 0%; --mx: 42%; --my: 4%;  --sx: 18%; --sy: 100%; }
.site .rl-5 { --ox: 97%; --oy: 72%; --lx: 32%; --ly: 0%; --mx: 74%; --my: 0%;  --sx: 4%;  --sy: 100%; }

/* Gris : halos de lumière */
body.mg-halos .site .l-alt, body.mg-halos .site .section--alt {
	background-image: radial-gradient(ellipse 55% 70% at var(--lx) var(--ly), rgba(255,255,255,.95), rgba(255,255,255,0) 70%),
	                  radial-gradient(ellipse 50% 60% at var(--sx) var(--sy), rgba(20,21,23,.07), rgba(20,21,23,0) 70%),
	                  radial-gradient(ellipse 35% 45% at var(--mx) var(--my), rgba(255,255,255,.7), rgba(255,255,255,0) 70%) !important;
}
/* Gris : ondes */
body.mg-ondes .site .l-alt, body.mg-ondes .site .section--alt {
	background-image: radial-gradient(circle at var(--ox) var(--oy), rgba(241,241,239,0) 0, rgba(241,241,239,.4) 35%, #F1F1EF 75%),
	                  repeating-radial-gradient(circle at var(--ox) var(--oy), rgba(20,21,23,.09) 0 1px, transparent 1px 26px) !important;
}
/* Gris : les deux */
body.mg-deux .site .l-alt, body.mg-deux .site .section--alt {
	background-image: radial-gradient(ellipse 55% 70% at var(--lx) var(--ly), rgba(255,255,255,.95), rgba(255,255,255,0) 70%),
	                  radial-gradient(ellipse 50% 60% at var(--sx) var(--sy), rgba(20,21,23,.06), rgba(20,21,23,0) 70%),
	                  radial-gradient(circle at var(--ox) var(--oy), rgba(241,241,239,0) 0, rgba(241,241,239,.45) 35%, #F1F1EF 78%),
	                  repeating-radial-gradient(circle at var(--ox) var(--oy), rgba(20,21,23,.08) 0 1px, transparent 1px 26px) !important;
}

/* Sections de fin de page en noir */
body.cta-sombre .site .l-cta { background-color: #141517 !important; }
body.cta-sombre.mn-halos .site .l-cta {
	background-image: radial-gradient(ellipse 45% 70% at var(--ox) var(--oy), rgba(255,255,255,.13), rgba(255,255,255,0) 70%),
	                  radial-gradient(ellipse 40% 60% at var(--sx) var(--sy), rgba(255,255,255,.06), rgba(255,255,255,0) 70%) !important;
}
body.cta-sombre.mn-ondes .site .l-cta {
	background-image: radial-gradient(circle at var(--ox) var(--oy), rgba(20,21,23,0) 0, rgba(20,21,23,.35) 35%, #141517 80%),
	                  repeating-radial-gradient(circle at var(--ox) var(--oy), rgba(255,255,255,.12) 0 1px, transparent 1px 26px) !important;
}
body.cta-sombre.mn-deux .site .l-cta {
	background-image: radial-gradient(circle at var(--ox) var(--oy), rgba(255,255,255,.16) 0, rgba(255,255,255,0) 22%),
	                  radial-gradient(circle at var(--ox) var(--oy), rgba(20,21,23,0) 0, rgba(20,21,23,.3) 35%, #141517 82%),
	                  repeating-radial-gradient(circle at var(--ox) var(--oy), rgba(255,255,255,.13) 0 1px, transparent 1px 26px) !important;
}
/* Textes et boutons sur fond noir */
body.cta-sombre .site .l-cta .l-head__text .elementor-heading-title,
body.cta-sombre .site .l-cta .l-split__main .elementor-heading-title { color: #fff !important; }
body.cta-sombre .site .l-cta .l-head__text p, body.cta-sombre .site .l-cta .l-split__main p,
body.cta-sombre .site .l-cta .l-split__main .elementor-icon-list-text, body.cta-sombre .site .l-cta .l-head__text .elementor-icon-list-text { color: rgba(255,255,255,.75) !important; }
body.cta-sombre .site .l-cta .l-split__main .elementor-icon-list-icon i, body.cta-sombre .site .l-cta .l-head__text .elementor-icon-list-icon i { color: #fff !important; }
body.cta-sombre .site .l-cta .l-split__main .elementor-widget-button:not(.btn-secondaire) .elementor-button,
body.cta-sombre .site .l-cta .l-head__text .elementor-widget-button:not(.btn-secondaire) .elementor-button { background: #fff !important; color: #141517 !important; border-color: #fff !important; }
body.cta-sombre .site .l-cta .l-split__main .btn-secondaire .elementor-button,
body.cta-sombre .site .l-cta .l-head__text .btn-secondaire .elementor-button { background: transparent !important; color: #fff !important; border-color: rgba(255,255,255,.55) !important; }
body.cta-sombre .site .l-cta .l-split__main .btn-secondaire .elementor-button:hover,
body.cta-sombre .site .l-cta .l-head__text .btn-secondaire .elementor-button:hover { background: #fff !important; color: #141517 !important; }
body.cta-sombre .site .l-cta .l-formcard { box-shadow: 0 24px 60px -24px rgba(0,0,0,.7); border-color: transparent; }

/* Cartes posées sur une section grise : légère ombre pour le relief */
.site .l-alt .l-card, .site .l-alt .e-con.l-x2, .site .section--alt .mcard { box-shadow: 0 14px 30px -24px rgba(20,21,23,.35); }

/* =========================================================
   v3.8.0 : BANDEAU sous la photo de l'accueil [lenoir_bandeau]
   ========================================================= */
.site .bandeau { display: grid; grid-template-columns: repeat(var(--n, 3), minmax(0, 1fr)); background: #fff; border: 1px solid var(--line, #E2E2DF); border-top: 0; border-radius: 0 0 12px 12px; box-shadow: 0 18px 40px -28px rgba(20,21,23,.45); }
.site .bandeau > div { padding: 14px 18px; border-left: 1px solid #EDEDEA; min-width: 0; }
.site .bandeau > div:first-child { border-left: 0; }
.site .bandeau b { display: block; font-family: var(--f-head); font-weight: 600; font-size: 1.35rem; line-height: 1.1; color: var(--text); }
.site .bandeau span { display: block; font-size: .86rem; color: var(--text-soft); margin-top: 2px; }
.site .l-hero__media:has(.bandeau) { gap: 0 !important; }
.site .l-hero__media:has(.bandeau) .l-photo, .site .l-hero__media:has(.bandeau) .l-photo img { border-bottom-left-radius: 0 !important; border-bottom-right-radius: 0 !important; }
@media (max-width: 600px) { .site .bandeau { grid-template-columns: repeat(min(var(--n, 3), 2), minmax(0, 1fr)); } .site .bandeau > div:nth-child(3) { border-left: 0; border-top: 1px solid #EDEDEA; } .site .bandeau > div:nth-child(4) { border-top: 1px solid #EDEDEA; } }

/* =========================================================
   v3.9.0 : bandeau défilant des logos clients [lenoir_logos]
   ========================================================= */
.site .logos { margin-top: 26px; padding-top: 18px; border-top: 1px solid var(--line, #E2E2DF); min-width: 0; }
.site .logos__t { margin: 0 0 12px; font-size: .78rem; letter-spacing: .12em; text-transform: uppercase; color: var(--text-soft); font-weight: 600; }
.site .logos__view { display: flex; overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.site .logos__track { display: flex; align-items: center; gap: 44px; padding: 0 22px; margin: 0; list-style: none; flex: none; animation: logosDefile var(--dur, 40s) linear infinite; }
.site .logos__track li { flex: none; margin: 0; padding: 0; }
.site .logos__track img { display: block; height: 38px; width: auto; max-width: 150px; object-fit: contain; filter: grayscale(1); opacity: .7; transition: filter .25s, opacity .25s; }
.site .logos__track img:hover { filter: none; opacity: 1; }
.site .logos__view:hover .logos__track { animation-play-state: paused; }
@keyframes logosDefile { from { transform: translateX(0); } to { transform: translateX(-100%); } }
@media (max-width: 600px) { .site .logos { margin-top: 20px; padding-top: 14px; } .site .logos__track { gap: 32px; padding: 0 16px; } .site .logos__track img { height: 30px; max-width: 120px; } }
@media (prefers-reduced-motion: reduce) { .site .logos__track { animation: none; } .site .logos__track[aria-hidden="true"] { display: none; } .site .logos__view { flex-wrap: wrap; -webkit-mask-image: none; mask-image: none; } }
/* Le bandeau ne doit jamais élargir la colonne qui le contient */
.site .logos { overflow: hidden; max-width: 100%; }
.site .l-hero__text, .site .l-hero__text > .elementor-widget-shortcode, .site .l-hero__text .elementor-shortcode { min-width: 0; max-width: 100%; }
.site .logos__track img { height: 44px; max-width: 160px; opacity: .78; }
@media (max-width: 600px) { .site .logos__track img { height: 34px; max-width: 130px; } }

/* =========================================================
   v3.9.1 : logos plus grands, sans arrêt au survol ;
   photo du haut alignée sur le bas du bandeau des logos
   ========================================================= */
.site .logos__track img { height: 54px !important; max-width: 190px !important; opacity: .82; }
.site .logos__track img:hover { filter: grayscale(1); opacity: .82; }
.site .logos__view:hover .logos__track { animation-play-state: running; }
.site .logos, .site .logos * { pointer-events: none; -webkit-user-select: none; user-select: none; -webkit-tap-highlight-color: transparent; }
@media (max-width: 600px) { .site .logos__track img { height: 42px !important; max-width: 150px !important; } }

@container site (min-width: 900px) {
  /* Les deux colonnes ont la même hauteur : la photo descend jusqu'au bas des logos */
  .site .l-hero__grid:has(.logos) { align-items: stretch; }
  .site .l-hero__grid:has(.logos) > .l-hero__text { justify-content: center; }
  .site .l-hero__grid:has(.logos) > .l-hero__media { display: flex; flex-direction: column; justify-content: stretch; }
  .site .l-hero__grid:has(.logos) .l-hero__media .l-photo { flex: 1 1 0; min-height: 0; display: flex; flex-direction: column; }
  .site .l-hero__grid:has(.logos) .l-hero__media .l-photo > .elementor-widget-container { flex: 1 1 0; display: flex; min-height: 0; }
  .site .l-hero__grid:has(.logos) .l-hero__media .l-photo img { flex: 1 1 0; width: 100%; height: 100% !important; min-height: 320px; aspect-ratio: auto !important; object-fit: cover; }
  .site .l-hero__grid:has(.logos) .l-hero__media > .elementor-widget-shortcode { flex: none; }
}

/* =========================================================
   v3.9.2 : bouton téléphone coloré (menu mobile) ; bandeau à 2 cases sur téléphone
   ========================================================= */
.site .icon-btn--tel { background: var(--tel-bg, #fff) !important; border: 1.5px solid var(--tel, #E8452C) !important; color: var(--tel, #E8452C) !important; }
.site .icon-btn--tel svg { color: var(--tel, #E8452C) !important; stroke: var(--tel, #E8452C) !important; stroke-width: 2.2; }
.site .icon-btn--tel:hover, .site .icon-btn--tel:active { filter: brightness(.95); }
@media (max-width: 600px) {
  .site .bandeau { grid-template-columns: 1fr 1fr !important; }
  .site .bandeau > div:nth-child(n+3) { display: none; }
  .site .bandeau > div:nth-child(2) { border-left: 1px solid #EDEDEA; border-top: 0; }
}

/* =========================================================
   v3.10.0 : location (étiquettes, machine louée, options, croix)
   ========================================================= */
/* Étiquette sur les cartes du catalogue */
.site .mcard__loc { position: absolute; top: 10px; right: 10px; z-index: 2; display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; border-radius: 999px; background: #fff; color: #2B7A4B; font-size: .78rem; font-weight: 700; box-shadow: 0 3px 10px rgba(0,0,0,.15); }
.site .mcard__loc::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: #2B7A4B; }
.site .mcard__loc.is-off { color: #9A6700; }
.site .mcard__loc.is-off::before { background: #D4A017; }

/* Machine louée : bandeau très visible sur la photo */
.site .loc-card.is-louee .loc-card__media img { filter: grayscale(.55) brightness(.9); }
.site .loc-ribbon { position: absolute; left: 0; right: 0; bottom: 0; z-index: 2; display: flex; flex-direction: column; gap: 2px; padding: 14px 18px; background: rgba(20,21,23,.86); color: rgba(255,255,255,.85); font-size: .92rem; backdrop-filter: blur(4px); }
.site .loc-ribbon b { color: #fff; font-family: var(--f-head); font-weight: 600; font-size: 1.25rem; letter-spacing: .02em; text-transform: uppercase; display: flex; align-items: center; gap: 8px; }
.site .loc-ribbon b::before { content: ""; width: 10px; height: 10px; border-radius: 50%; background: #F2B705; box-shadow: 0 0 0 4px rgba(242,183,5,.25); }
.site .loc-card.is-louee .loc-badge { display: none; }

/* Options avec leur tarif */
.site .loc-opt { display: grid; grid-template-columns: auto 1fr auto; align-items: baseline; gap: 2px 10px; }
.site .loc-opt input { grid-row: 1; }
.site .loc-opt__l { font-weight: 500; }
.site .loc-opt__p { font-weight: 700; white-space: nowrap; }
.site .loc-opt small { grid-column: 2 / 4; width: auto; padding-left: 0; }

/* Fenêtre de réservation : croix en haut à droite */
.site dialog.loc-dlg { position: fixed; padding: 0; }
.site dialog.loc-dlg .dialog__head { position: sticky; top: 0; z-index: 3; display: block; padding: 18px 64px 14px 22px; background: var(--bg, #fff); border-bottom: 1px solid var(--line-soft, #ECECEA); margin: 0; }
.site dialog.loc-dlg [data-loc-close] { position: absolute; top: 12px; right: 12px; margin: 0; }
.site dialog.loc-dlg .loc-form { padding: 4px 22px 22px; }

/* =========================================================
   v3.10.6 : étiquette « Location possible » et bloc location de la fiche
   ========================================================= */
.site .mcard__pills { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.site .mcard__loc { position: static; box-shadow: none; display: inline-flex; align-items: center; gap: 6px; padding: 4px 11px; border-radius: 999px; background: var(--noir, #141517); color: #fff; font-size: .82rem; font-weight: 600; line-height: 1.3; }
.site .mcard__loc::before { content: none; }
.site .mcard__loc svg { width: 14px; height: 14px; flex: none; }
.site .mcard__loc.is-off { background: transparent; color: var(--text-soft); border: 1px solid var(--line); }
.site .loc-fiche { display: grid; gap: 10px; margin: 18px 0; padding: 20px; background: var(--inox, #ECECEA); border: 1px solid var(--noir, #141517); border-radius: var(--r1, 6px); font-size: 1rem; }
.site .loc-fiche p { margin: 0; }
.site .loc-fiche__top { display: flex; align-items: center; gap: 12px; }
.site .loc-fiche__ic { width: 42px; height: 42px; flex: none; display: grid; place-items: center; border-radius: var(--r1, 6px); background: var(--noir, #141517); color: #fff; }
.site .loc-fiche__ic svg { width: 21px; height: 21px; }
.site .loc-fiche__h { font-family: var(--f-head); font-size: 1.3rem; font-weight: 500; color: var(--text); line-height: 1.2; }
.site .loc-fiche__prix { font-family: var(--f-head); font-size: 1.9rem; font-weight: 500; color: var(--text); line-height: 1.1; }
.site .loc-fiche__prix small { font-family: var(--f-body); font-size: .95rem; color: var(--text-soft); font-weight: 400; }
.site .loc-fiche__info, .site .loc-fiche__etat { font-size: .93rem; color: var(--text-soft); }
.site .loc-fiche__etat { color: var(--text); font-weight: 500; }
.site .loc-fiche .loc-fiche__btn { width: 100%; justify-content: center; margin-top: 4px; background: #fff; }
.site .loc-fiche a.loc-fiche__btn:hover { text-decoration: none; }
.site .loc-fiche .loc-fiche__btn:hover { background: var(--text); color: var(--bg); }

/* =========================================================
   v3.10.13 : avis clients [lenoir_avis]
   ========================================================= */
.site .avis { display: grid; gap: 18px; }
.site .avis__titre { margin: 0; }
.site .avis__head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 20px; }
.site .avis__score { margin: 0; display: flex; align-items: center; gap: 10px; color: var(--text-soft); font-size: .98rem; }
.site .avis__score strong { font-family: var(--f-head); font-size: 1.5rem; font-weight: 500; color: var(--text); margin-left: 2px; }
.site .avis__lien { display: inline-flex; align-items: center; gap: 6px; color: var(--text); font-weight: 500; text-underline-offset: 3px; }
.site .avis__lien svg { width: 15px; height: 15px; }
.site .avis__etoiles { display: inline-flex; gap: 2px; }
.site .avis__etoiles svg { width: 16px; height: 16px; fill: var(--line); }
.site .avis__etoiles svg.is-on { fill: var(--text); }
.site .avis__liste { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(260px, 82%); gap: 14px; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 6px; }
.site .avis__carte { margin: 0; scroll-snap-align: start; display: flex; flex-direction: column; gap: 12px; padding: 20px; background: var(--bg, #fff); border: 1px solid var(--line); border-radius: var(--r2, 8px); }
.site .avis__carte blockquote { margin: 0; padding: 0; border: 0; flex: 1; }
.site .avis__carte blockquote p { margin: 0; color: var(--text); font-size: 1rem; line-height: 1.6; }
.site .avis__carte figcaption { display: grid; gap: 2px; font-size: .92rem; }
.site .avis__carte figcaption strong { color: var(--text); font-weight: 600; }
.site .avis__carte figcaption span { color: var(--text-soft); }
.site .avis__vide { padding: 14px; border: 1px dashed var(--line); color: var(--text-soft); }
@container site (min-width: 760px) {
  .site .avis__liste { grid-auto-flow: row; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); overflow: visible; }
}
.site .avis--seul .avis__head { padding: 16px 20px; border: 1px solid var(--line); border-radius: var(--r2, 8px); background: var(--bg, #fff); }
/* v3.10.18 : étoiles en couleur (partielles : 4,7 = 4 étoiles et 70 %) et note mise en avant */
.site .avis__etoiles { position: relative; display: inline-block; line-height: 0; gap: 0; }
.site .avis__etoiles-fond, .site .avis__etoiles-plein { display: inline-flex; gap: 2px; white-space: nowrap; }
.site .avis__etoiles-plein { position: absolute; inset: 0 auto 0 0; overflow: hidden; }
.site .avis__etoiles svg, .site .avis__etoiles svg.is-on { width: 17px; height: 17px; flex: none; fill: var(--line); }
.site .avis__etoiles-plein svg { fill: var(--avis-etoile, #FBBC04); }
.site .avis__score .avis__etoiles svg { width: 20px; height: 20px; }
.site .avis__score strong { color: var(--avis-note, #141517); font-size: 1.9rem; }

/* =========================================================
   v3.10.21 : machines neuves par marque
   ========================================================= */
.site .neuf-list--marques { gap: 48px; }
.site .nbrand__chips { margin-bottom: -16px; }
.site .nbrand { display: grid; gap: 18px; scroll-margin-top: 90px; }
.site .nbrand + .nbrand { padding-top: 40px; border-top: 1px solid var(--line); }
.site .nbrand__head { display: flex; align-items: center; gap: 14px; }
.site .nbrand__logo { flex: none; display: grid; place-items: center; overflow: hidden; width: 92px; height: 52px; padding: 6px 8px; background: #fff; border: 1px solid var(--line); border-radius: var(--r1, 6px); }
.site .nbrand__logo img { max-width: 100%; max-height: 100%; object-fit: contain; }
.site .nbrand__nom { margin: 0; font-family: var(--f-head); font-size: 1.6rem; font-weight: 500; line-height: 1.15; }
.site .nbrand__statut { margin: 2px 0 0; font-size: .92rem; color: var(--text-soft); line-height: 1.4; }
.site .nbrand__plus { justify-self: start; font-weight: 500; color: var(--text); text-underline-offset: 3px; }
.site .nbrand__kicker { margin: -6px 0 0; font-size: .82rem; letter-spacing: .08em; text-transform: uppercase; color: var(--text-soft); }
.site .nbrand--page .container { display: grid; gap: 18px; }
.site .nbrand__occ { margin: 8px 0 -8px; }
.site .ncard .mcard__title a { color: inherit; text-decoration: none; }
.site .ncard .mcard__title a::after { content: ""; position: absolute; inset: 0; z-index: 0; }
.site .ncard .btn, .site .ncard .aid-tag { position: relative; z-index: 1; }
.site .nwhy { display: grid; gap: 14px; grid-template-columns: 1fr; }
@container site (min-width: 760px) { .site .nwhy { grid-template-columns: repeat(2, 1fr); gap: 18px 28px; } }
@container site (min-width: 1100px) { .site .nwhy { grid-template-columns: repeat(3, 1fr); } }
.site .nwhy__item { display: flex; gap: 14px; align-items: flex-start; }
.site .nwhy__ic { flex: none; width: 40px; height: 40px; display: grid; place-items: center; border-radius: var(--r1, 6px); background: var(--text); color: var(--bg); }
.site .nwhy__ic svg { width: 20px; height: 20px; }
.site .nwhy__t { margin: 0 0 2px; font-family: var(--f-head); font-size: 1.15rem; font-weight: 500; color: var(--text); }
.site .nwhy__d { margin: 0; font-size: .95rem; color: var(--text-soft); line-height: 1.5; }
/* v3.10.23 : versions d'un modèle neuf */
.site .price__des { font-family: var(--f-body); font-size: .55em; font-weight: 400; color: var(--text-soft); margin-right: 2px; }
.site .pvers { list-style: none; margin: 12px 0 0; padding: 0; border-top: 1px solid var(--line); }
.site .pvers li { display: grid; grid-template-columns: 1fr auto auto; align-items: center; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--line); }
.site .pvers__nom { font-size: .98rem; color: var(--text); }
.site .pvers__prix { font-family: var(--f-head); font-size: 1.15rem; font-weight: 500; color: var(--text); white-space: nowrap; }
.site .pvers__prix small { font-family: var(--f-body); font-size: .75rem; color: var(--text-soft); font-weight: 400; }
.site .pvers__btn { appearance: none; border: 1px solid var(--text); background: transparent; color: var(--text); border-radius: var(--r1, 6px); padding: 6px 12px; font-family: var(--f-head); font-size: .95rem; cursor: pointer; }
.site .pvers__btn:hover { background: var(--text); color: var(--bg); }
/* v3.10.24 : galerie des fiches (vignettes de taille fixe) et photos produit des machines neuves */
.site .gallery__thumbs { flex-wrap: wrap; }
.site .gallery__thumbs button { flex: 0 0 88px; width: 88px; }
.site .gallery--neuf .photo { background: #fff; background-image: none; }
.site .gallery--neuf .gallery__thumbs .photo img { object-fit: contain; padding: 4px; box-sizing: border-box; }
.site .pvers li:last-child { border-bottom: 0; }
.site .pvers + .price__lease { margin-top: 0; }
/* v3.10.26 : photo produit des machines neuves sur fond blanc (sans bandes grises) */
.site .pdp .gallery--neuf .gallery__slide .photo, .site .pdp .gallery--neuf .gallery__zoom { background: #fff; background-image: none; }
/* v3.10.27 : caractéristiques sur toute la largeur, en deux colonnes, quand il n'y a ni PDF ni accessoires à côté */
@container site (min-width: 900px) {
  .site .specs-full .specs tbody { display: grid; grid-template-columns: 1fr 1fr; column-gap: var(--s8, 48px); }
  .site .specs-full .specs tr { display: grid; grid-template-columns: 42% 1fr; }
  .site .specs-full .specs th { width: auto; }
  .site .specs-full .specs tr:nth-child(2) th, .site .specs-full .specs tr:nth-child(2) td { border-top: 1px solid var(--line); }
}
/* v3.10.28 : plusieurs documents dans la colonne de droite des fiches */
.site .doc-card + .doc-card { margin-top: 12px; }
.site .doc-card--lenoir { border-width: 1px; border-color: var(--line); }
.site .doc-card--lenoir .doc-card__badge { background: var(--inox, #ECECEA); color: var(--text); }
/* v3.10.30 : caractéristiques / documents alignés sur les colonnes du haut de la fiche */
.site .split--pdp { gap: 32px; }
@container site (min-width: 900px) { .site .split--pdp { grid-template-columns: 1.15fr .85fr; gap: var(--s7); } }
/* v3.10.32 : description et options des machines neuves */
.site .ndesc { margin-top: var(--s7, 48px); display: grid; gap: 16px; }
@container site (min-width: 900px) { .site .ndesc { grid-template-columns: 1.15fr .85fr; column-gap: var(--s7); } .site .ndesc h2 { grid-column: 1 / -1; } }
.site .ndesc h2 { margin: 0; }
.site .ndesc__body { display: grid; gap: 12px; max-width: 70ch; }
.site .ndesc__body p { margin: 0; color: var(--text-soft); line-height: 1.65; }
.site .ndesc__list { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.site .ndesc__list li { padding: 9px 0; border-bottom: 1px solid var(--line-soft, var(--line)); font-size: .97rem; }
/* v3.10.33 : badge « Aide CARSAT » posé sur la photo des machines neuves */
.site .ncard__aide { position: absolute; top: 10px; left: 10px; z-index: 2; display: inline-flex; align-items: center; gap: 6px; background: #2B7A4B; color: #fff; font-family: var(--f-head); font-size: .9rem; font-weight: 500; letter-spacing: .04em; text-transform: uppercase; line-height: 1; padding: 7px 11px 7px 9px; border-radius: 4px; box-shadow: 0 2px 8px rgba(20,21,23,.18); pointer-events: none; }
.site .ncard__aide svg { width: 16px; height: 16px; flex: none; }
/* v3.10.35 : photos des machines neuves façon catalogue
   Machine entière (jamais coupée), même cadre carré pour toutes, fond inox clair.
   Le blanc des photos fabricant se fond dans ce fond grâce au mode « produit » (multiply). */
.site .ncard .mcard__media { background: #F2F2EF; overflow: hidden; }
.site .ncard .mcard__media img { width: 100%; height: 100%; object-fit: contain !important; object-position: 50% 55% !important; padding: 14% 10% 8%; box-sizing: border-box; mix-blend-mode: multiply; transform: none !important; transition: transform .35s var(--ease, ease); }
.site .ncard:hover .mcard__media img { transform: scale(1.04) !important; }
@container site (min-width: 600px) { .site .ncard .mcard__media { aspect-ratio: 1 / 1; } }
@container site (max-width: 599px) { .site .ncard .mcard__media img { padding: 26% 8% 6%; } }
@media (prefers-reduced-motion: reduce) { .site .ncard:hover .mcard__media img { transform: none !important; } }
/* v3.10.37 : « Toute la gamme » en bouton, en face du logo de la marque */
.site .nbrand__top { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px 20px; }
.site .nbrand__top .nbrand__head { min-width: 0; flex: 1 1 260px; }
.site a.nbrand__plus { flex: none; justify-self: auto; text-decoration: none; gap: 6px; }
.site .nbrand__nb { color: var(--text-soft); font-weight: 400; }
.site a.nbrand__plus:hover .nbrand__nb { color: inherit; }
@container site (max-width: 599px) { .site a.nbrand__plus { width: 100%; justify-content: center; } }

/* =========================================================
   v3.10.38 : cartes neuves sans bouton devis, mise en page téléphone,
   fenêtre de demande plein écran sur téléphone, zoom de la visionneuse
   ========================================================= */
/* Toute la carte mène à la fiche ; un repère « Voir la machine » remplace le bouton devis */
.site .ncard { cursor: pointer; transition: border-color .15s, box-shadow .15s; }
.site .ncard:hover { border-color: var(--text); box-shadow: 0 10px 28px -16px rgba(20,21,23,.35); }
.site .ncard__voir { display: inline-flex; align-items: center; gap: 6px; font-family: var(--f-head); font-size: 1.02rem; font-weight: 500; color: var(--text); padding-top: 2px; }
.site .ncard:hover .ncard__voir { text-decoration: underline; text-underline-offset: 3px; }
.site .ncard .mcard__title a:focus-visible { outline: none; }
.site .ncard:has(.mcard__title a:focus-visible) { outline: 2px solid var(--text); outline-offset: 2px; }
/* Téléphone : photo en haut sur toute la largeur, le badge reste sur la photo */
@container site (max-width: 599px) {
  .site .ncard { grid-template-columns: 1fr; }
  .site .ncard .mcard__media { aspect-ratio: 4 / 3; min-height: 0; border-right: 0; border-bottom: 1px solid var(--line); }
  .site .ncard .mcard__media img { padding: 16% 12% 6%; }
}

/* Fenêtre « Demander un devis » : en-tête toujours visible, contenu qui défile, plein écran sur téléphone */
.site dialog.dlg[open] { display: flex; flex-direction: column; overflow: hidden; }
.site dialog.dlg .dlg__head { flex: none; background: var(--bg); }
.site dialog.dlg .dlg__body { flex: 1 1 auto; min-height: 0; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; }
.site dialog.dlg .icon-btn[data-dlg-close] { width: 44px; height: 44px; flex: none; }
@media (max-width: 600px) {
  .site dialog.dlg { width: 100vw; max-width: 100vw; height: 100dvh; max-height: 100dvh; margin: 0; border-radius: 0; }
  .site dialog.dlg .dlg__head { padding-top: calc(14px + env(safe-area-inset-top, 0px)); }
  .site dialog.dlg .dlg__body { padding-bottom: calc(24px + env(safe-area-inset-bottom, 0px)); }
  .site dialog.dlg .icon-btn[data-dlg-close] { border: 1.5px solid var(--text); border-radius: 50%; }
}

/* Visionneuse : le zoom ne concerne que la photo, jamais toute la page */
.site dialog.lb, .site dialog.lb * { touch-action: pan-x pan-y; }
.site .lb__slide img { touch-action: pan-x; transform-origin: center center; will-change: transform; user-select: none; -webkit-user-select: none; -webkit-touch-callout: none; }
.site dialog.lb.is-zoomed .lb__slide img { touch-action: none; cursor: grab; }
.site dialog.lb.is-zoomed .lb__nav { opacity: 0; pointer-events: none; }
.site .lb__slide img { cursor: zoom-in; }
.site dialog.lb.is-zoomed .lb__slide img { cursor: zoom-out; }
@media (max-width: 600px) {
  .site dialog.lb { width: 100vw; max-width: 100vw; height: 100dvh; max-height: 100dvh; margin: 0; border-radius: 0; }
  .site dialog.lb .lb__top { padding-top: calc(8px + env(safe-area-inset-top, 0px)); }
  .site dialog.lb .lb__stage { flex: 1; min-height: 0; }
  .site dialog.lb .lb__track { height: 100%; }
  .site dialog.lb .lb__close { border: 1.5px solid var(--text); }
}
/* v3.10.39 : zoom des photos des cartes neuves (réglable, ou zoom du cadrage de la fiche) */
.site .ncard .mcard__media img { padding: 9% 6% 3%; transform: scale(var(--nz, 1.4)) !important; transform-origin: 50% 58%; }
.site .ncard:hover .mcard__media img { transform: scale(calc(var(--nz, 1.4) * 1.04)) !important; }
@container site (max-width: 599px) { .site .ncard .mcard__media img { padding: 11% 8% 3%; } }
@media (prefers-reduced-motion: reduce) { .site .ncard:hover .mcard__media img { transform: scale(var(--nz, 1.4)) !important; } }
/* v3.10.40 : photo cadrée automatiquement sur la machine (pas de marges internes, le script place la machine) */
.site .ncard .mcard__media img[data-bbox] { padding: 0; object-position: 50% 50% !important; transition: none; }
/* v3.10.41 : remises sur les machines neuves (prix barré + prix remisé) */
.site .price__old { color: var(--text-soft); font-weight: 400; font-size: .72em; text-decoration-thickness: 1.5px; margin-right: 4px; }
.site .price__new { color: var(--text); }
.site .remise-badge { display: inline-flex; align-items: center; background: #B42318; color: #fff; font-family: var(--f-head); font-weight: 500; font-size: .95rem; letter-spacing: .02em; line-height: 1; padding: 6px 9px; border-radius: 4px; margin-left: 10px; vertical-align: middle; }
.site .ncard__remise { position: absolute; top: 10px; right: 10px; z-index: 2; margin: 0; font-size: 1rem; box-shadow: 0 2px 8px rgba(20,21,23,.18); pointer-events: none; }
.site .price__remise { margin: 6px 0 0; font-size: .9rem; font-weight: 600; color: #B42318; }
.site .pvers__prix .price__old { font-size: .78em; }
/* v3.10.43 : léger zoom au survol aussi sur les photos cadrées automatiquement */
.site .ncard .mcard__media img[data-bbox] { transition: scale .35s var(--ease, ease); }
.site .ncard:hover .mcard__media img[data-bbox] { scale: 1.04; }
@media (prefers-reduced-motion: reduce) { .site .ncard:hover .mcard__media img[data-bbox] { scale: 1; } }

/* =========================================================
   v3.10.44 : aide CARSAT sur la fiche (ruban sur la photo, bandeau, encadré explicatif)
   ========================================================= */
.site { --carsat: #2B7A4B; }
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
/* Ruban en coin qui « enroule » la photo */
.site .gallery { position: relative; }
.site .carsat-ribbon { position: absolute; top: 0; left: 0; z-index: 4; width: 170px; height: 170px; overflow: hidden; pointer-events: none; text-decoration: none; }
.site .carsat-ribbon span { pointer-events: auto; position: absolute; top: 38px; left: -48px; width: 230px; transform: rotate(-45deg); display: flex; align-items: center; justify-content: center; gap: 7px; padding: 9px 0; background: var(--carsat); color: #fff; font-family: var(--f-head); font-size: 1rem; font-weight: 500; letter-spacing: .06em; text-transform: uppercase; box-shadow: 0 4px 12px -4px rgba(20,21,23,.45); }
.site .carsat-ribbon span svg { width: 16px; height: 16px; flex: none; }
.site .carsat-ribbon:hover span, .site .carsat-ribbon:focus-visible span { filter: brightness(1.1); }
.site .carsat-ribbon:focus-visible { outline: none; }
.site .carsat-ribbon:focus-visible span { outline: 2px solid #fff; outline-offset: -4px; }
@container site (max-width: 599px) { .site .carsat-ribbon { width: 130px; height: 130px; } .site .carsat-ribbon span { top: 28px; left: -46px; width: 190px; font-size: .88rem; padding: 7px 0; } }
/* Bandeau au-dessus du prix */
.site .carsat-strip { display: flex; align-items: center; gap: 12px; margin: 0 0 12px; padding: 12px 14px; background: var(--carsat); color: #fff; border-radius: var(--r1, 6px); text-decoration: none; }
.site .carsat-strip:hover { filter: brightness(1.08); text-decoration: none; color: #fff; }
.site .carsat-strip__ic { flex: none; width: 36px; height: 36px; display: grid; place-items: center; border-radius: 50%; background: rgba(255,255,255,.16); }
.site .carsat-strip__ic svg { width: 20px; height: 20px; }
.site .carsat-strip__txt { display: grid; gap: 1px; line-height: 1.3; }
.site .carsat-strip__txt strong { font-family: var(--f-head); font-size: 1.15rem; font-weight: 500; letter-spacing: .01em; }
.site .carsat-strip__txt span { font-size: .9rem; opacity: .92; }
/* Encadré explicatif plus bas */
.site .carsat-box { scroll-margin-top: 96px; margin-top: var(--s7, 48px); display: grid; grid-template-columns: auto 1fr; gap: 18px; padding: 24px; border: 2px solid var(--carsat); border-radius: var(--r2, 8px); background: color-mix(in srgb, var(--carsat) 7%, var(--bg, #fff)); }
.site .carsat-box__ic { width: 48px; height: 48px; display: grid; place-items: center; border-radius: 50%; background: var(--carsat); color: #fff; }
.site .carsat-box__ic svg { width: 26px; height: 26px; }
.site .carsat-box__body { display: grid; gap: 10px; max-width: 72ch; min-width: 0; }
.site .carsat-box__body p { margin: 0; line-height: 1.6; }
.site .carsat-box__kicker { font-size: .8rem !important; letter-spacing: .1em; text-transform: uppercase; font-weight: 700; color: var(--carsat); }
.site .carsat-box h2 { margin: 0; font-size: 1.6rem; }
.site .carsat-box__cond { font-size: .9rem; color: var(--text-soft); }
.site .carsat-box__ctas { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; margin-top: 4px; }
.site .carsat-box__btn { background: var(--carsat) !important; border-color: var(--carsat) !important; color: #fff !important; }
.site .carsat-box__link { display: inline-flex; align-items: center; gap: 6px; color: var(--text); font-weight: 500; text-underline-offset: 3px; }
.site .carsat-box__link svg { width: 15px; height: 15px; }
.site .carsat-box:target { animation: carsatpulse 1.2s ease 1; }
@keyframes carsatpulse { 0% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--carsat) 45%, transparent); } 100% { box-shadow: 0 0 0 14px transparent; } }
@container site (max-width: 599px) { .site .carsat-box { grid-template-columns: 1fr; padding: 20px 18px; } .site .carsat-box h2 { font-size: 1.35rem; } }
/* v3.10.45 : marche à suivre de l'aide CARSAT */
.site .carsat-box__h3 { margin: 10px 0 0; font-size: 1.25rem; }
.site .carsat-box__intro { font-size: .95rem; font-weight: 500; }
.site .carsat-steps { list-style: none; counter-reset: cs; margin: 4px 0 6px; padding: 0; display: grid; gap: 0; }
.site .carsat-steps li { counter-increment: cs; position: relative; display: grid; gap: 2px; padding: 12px 0 12px 48px; border-top: 1px solid color-mix(in srgb, var(--carsat) 22%, transparent); }
.site .carsat-steps li:first-child { border-top: 0; }
.site .carsat-steps li::before { content: counter(cs); position: absolute; left: 0; top: 11px; width: 32px; height: 32px; border-radius: 50%; background: var(--carsat); color: #fff; display: grid; place-items: center; font-family: var(--f-head); font-weight: 500; font-size: 1rem; }
.site .carsat-steps li:not(:last-child)::after { content: ""; position: absolute; left: 15px; top: 46px; bottom: -11px; width: 2px; background: color-mix(in srgb, var(--carsat) 30%, transparent); }
.site .carsat-steps strong { font-family: var(--f-head); font-weight: 500; font-size: 1.08rem; color: var(--text); }
.site .carsat-steps span { color: var(--text-soft); font-size: .95rem; line-height: 1.55; }
/* v3.10.46 : « Jusqu'à 70 % » en petit sous « Aide CARSAT » */
.site .ncard__aide { align-items: center; }
.site .ncard__aide-txt { display: grid; gap: 2px; line-height: 1; }
.site .ncard__aide-txt small { font-family: var(--f-body); font-size: .68rem; font-weight: 600; letter-spacing: .02em; text-transform: none; opacity: .92; }
.site .carsat-strip__taux { font-style: normal; font-family: var(--f-body); font-size: .78rem; font-weight: 600; background: rgba(255,255,255,.18); border-radius: 999px; padding: 2px 8px; margin-left: 6px; vertical-align: middle; white-space: nowrap; }
/* v3.10.48 : capacité en grand sur la photo des cartes neuves (distingue les modèles qui partagent la même photo) */
.site .ncard .mcard__body { position: relative; }
.site .ncard__cap { position: absolute; z-index: 2; top: -10px; left: 10px; transform: translateY(-100%); display: inline-grid; gap: 3px; padding: 8px 12px 9px; background: var(--noir, #141517); color: #fff; border-radius: 4px; font-family: var(--f-head); font-size: 1.55rem; font-weight: 500; line-height: 1; letter-spacing: .01em; box-shadow: 0 4px 14px -6px rgba(20,21,23,.5); pointer-events: none; font-variant-numeric: tabular-nums; }
.site .ncard__cap small { font-family: var(--f-body); font-size: .62rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; opacity: .75; }
/* v3.10.51 : toute la carte neuve est cliquable (photo comprise).
   Le lien du titre couvre la carte entière : le corps de carte ne doit plus être un repère de positionnement.
   L'étiquette de capacité est placée par rapport à la carte, en bas de la photo. */
.site .ncard { container-type: inline-size; }
.site .ncard .mcard__body { position: static; }
.site .ncard__cap { top: calc(75cqw - 10px); }
@container site (min-width: 600px) { .site .ncard__cap { top: calc(100cqw - 10px); } }
.site .ncard .mcard__title a::after { z-index: 1; }
.site .ncard__aide, .site .ncard__remise, .site .ncard__cap { z-index: 2; }
/* v3.10.55 : bouton « Toute la gamme » aux couleurs de la marque (Machines › Marques › Couleur) */
.site a.nbrand__plus--couleur { background: var(--bc); border-color: var(--bc); color: var(--bt); }
.site a.nbrand__plus--couleur:hover, .site a.nbrand__plus--couleur:focus-visible { background: var(--bc); border-color: var(--bc); color: var(--bt); filter: brightness(.88); }
.site a.nbrand__plus--couleur .nbrand__nb { color: inherit; opacity: .8; }
.site a.nbrand__plus--couleur:focus-visible { outline: 2px solid var(--bc); outline-offset: 3px; }
@media (prefers-reduced-motion: no-preference) { .site a.nbrand__plus--couleur { transition: filter .15s ease; } }

/* =========================================================
   v3.10.60 : page Machines neuves [lenoir_page_neuf]
   En-tête simple, raccourcis vers les marques, aide CARSAT,
   blocs de marque nuancés de leur couleur (--mc, --mc-bg, --mc-line).
   ========================================================= */
.site .pneuf { display: grid; gap: 22px; max-width: var(--container); margin: 0 auto; padding: 20px var(--gutter) 56px; }
.site .pneuf__hero { display: grid; gap: 10px; }
.site .pneuf__kicker { margin: 0; font-size: .8rem; letter-spacing: .08em; text-transform: uppercase; color: var(--text-soft); }
.site .pneuf__titre { margin: 0; font-family: var(--f-head); font-weight: 500; font-size: clamp(2rem, 7vw, 3rem); line-height: 1.05; color: var(--text); }
.site .pneuf__texte { margin: 0; max-width: 60ch; font-size: 1rem; line-height: 1.55; color: var(--text-soft); }
.site .pneuf__points { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px 16px; }
.site .pneuf__points li { display: inline-flex; align-items: center; gap: 5px; font-size: .92rem; font-weight: 500; color: var(--text); }
.site .pneuf__points svg { width: 16px; height: 16px; flex: none; color: var(--ok); stroke-width: 2; }
/* Raccourcis vers les marques : pastilles sobres, point de couleur de la marque */
.site .pneuf__marques { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 6px; }
.site .pneuf__marque { display: inline-flex; align-items: center; gap: 8px; min-height: 40px; padding: 0 14px; background: #fff; border: 1px solid var(--line); border-radius: 999px; font-size: .95rem; font-weight: 500; color: var(--text); text-decoration: none; }
.site .pneuf__marque i { width: 9px; height: 9px; border-radius: 50%; background: var(--mc, var(--text)); flex: none; }
.site .pneuf__marque span { font-weight: 400; font-size: .82rem; color: var(--text-soft); }
.site .pneuf__marque:hover, .site .pneuf__marque:focus-visible { border-color: var(--mc, var(--text)); text-decoration: none; }
/* Aide CARSAT */
.site .pneuf__carsat { display: grid; grid-template-columns: auto 1fr; gap: 12px 14px; align-items: start; padding: 16px; border-radius: 12px; background: color-mix(in srgb, var(--carsat, #2B7A4B) 7%, #fff); border: 1px solid color-mix(in srgb, var(--carsat, #2B7A4B) 24%, #fff); }
.site .pneuf__carsat-ic { width: 40px; height: 40px; display: grid; place-items: center; border-radius: 50%; background: var(--carsat, #2B7A4B); color: #fff; }
.site .pneuf__carsat-ic svg { width: 21px; height: 21px; }
.site .pneuf__carsat-t { margin: 0 0 3px; font-family: var(--f-head); font-weight: 500; font-size: 1.2rem; line-height: 1.2; color: var(--text); }
.site .pneuf__carsat-taux { display: inline-block; margin-left: 4px; padding: 2px 8px; font-family: var(--f-body); font-size: .78rem; font-weight: 600; vertical-align: 2px; border-radius: 999px; background: #fff; color: var(--carsat, #2B7A4B); border: 1px solid color-mix(in srgb, var(--carsat, #2B7A4B) 30%, #fff); }
.site .pneuf__carsat-d { margin: 0; font-size: .95rem; line-height: 1.5; color: var(--graphite); }
.site .pneuf__carsat-actions { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; gap: 10px 18px; }
.site .pneuf__carsat-btn { background: var(--carsat, #2B7A4B); color: #fff; border-color: var(--carsat, #2B7A4B); }
.site .pneuf__carsat-btn:hover, .site .pneuf__carsat-btn:focus-visible { background: var(--carsat, #2B7A4B); color: #fff; filter: brightness(.9); }
.site .pneuf__carsat-lien { font-weight: 500; color: var(--carsat, #2B7A4B); text-underline-offset: 3px; }
/* Blocs de marque nuancés */
.site .pneuf .neuf-list--marques { display: grid; gap: 18px; }
.site .pneuf .nbrand { padding: 18px 14px 20px; background: var(--mc-bg, #F6F6F4); border: 1px solid var(--mc-line, var(--line-soft)); border-top: 3px solid var(--mc, var(--text)); border-radius: 12px; scroll-margin-top: 84px; }
.site .pneuf .nbrand + .nbrand { padding-top: 18px; border-top: 3px solid var(--mc, var(--text)); }
.site .pneuf .nbrand__logo { border-color: var(--mc-line, var(--line)); }
.site .pneuf .mcard { background: #fff; }
/* Acheter neuf chez LENOIR */
.site .pneuf__pourquoi { display: grid; gap: 16px; padding: 22px 18px; border-radius: 12px; background: #F6F6F4; border: 1px solid var(--line-soft); }
.site .pneuf__h2 { margin: 0; font-family: var(--f-head); font-weight: 500; font-size: clamp(1.4rem, 5vw, 1.9rem); line-height: 1.15; }
.site .pneuf .nwhy__ic { background: #fff; color: var(--text); border: 1px solid var(--line); }
.site .pneuf__contact { margin: 4px 0 0; }
@container site (max-width: 599px) {
  .site .pneuf { padding-left: 16px; padding-right: 16px; gap: 18px; }
  .site .pneuf__contact .btn, .site .pneuf__carsat-btn { width: 100%; justify-content: center; }
  .site .pneuf__carsat-actions { justify-content: center; }
}
@container site (min-width: 600px) {
  .site .pneuf { padding-top: 32px; }
  .site .pneuf__carsat { grid-template-columns: auto 1fr auto; align-items: center; padding: 18px 22px; }
  .site .pneuf__carsat-actions { grid-column: auto; justify-content: flex-end; }
  .site .pneuf .nbrand { padding: 26px 26px 28px; }
  .site .pneuf__pourquoi { padding: 30px 32px; }
}
/* v3.10.61 : fond des photos aux couleurs de la marque (page Machines neuves et pages de marque).
   La photo est « multipliée » sur ce fond : un fond blanc de photo prend la nuance de la marque. */
.site .nbrand[style*="--mc-photo"] .ncard .mcard__media { background: var(--mc-photo); }
/* v3.10.62 : la couleur reste DERRIÈRE la machine. « darken » ne remplace que le blanc du fond de la photo :
   les couleurs de la machine (inox, peinture, écran) ne sont pas teintées. */
.site .nbrand[style*="--mc-photo"] .ncard .mcard__media img { mix-blend-mode: darken; }
/* v3.10.63 : page Machines neuves plus calme. Fond blanc partout, une seule touche de couleur par marque
   (bouton « Toute la gamme » + fond très pâle des photos). Les marques sont séparées par un simple filet. */
.site .pneuf .neuf-list--marques { gap: 0; }
.site .pneuf .nbrand { padding: 32px 0 36px; background: transparent; border: 0; border-top: 1px solid var(--line-soft); border-radius: 0; }
.site .pneuf .nbrand:first-child { border-top: 0; padding-top: 8px; }
.site .pneuf .nbrand + .nbrand { padding-top: 32px; border-top: 1px solid var(--line-soft); }
.site .pneuf .nbrand__logo { border-color: var(--line); }
.site .pneuf .mcard { border-color: var(--line-soft); }
.site .pneuf__pourquoi { background: transparent; border: 0; border-top: 1px solid var(--line-soft); border-radius: 0; padding: 32px 0 0; }
@container site (min-width: 600px) { .site .pneuf .nbrand { padding: 40px 0 44px; } .site .pneuf .nbrand + .nbrand { padding-top: 40px; } .site .pneuf__pourquoi { padding: 40px 0 0; } }
/* v3.10.64 : étiquette de capacité plus discrète (valeur seule, plus petite) */
.site .ncard__cap { gap: 0; padding: 4px 8px 5px; font-size: 1rem; border-radius: 3px; box-shadow: none; top: -8px; left: 8px; }
.site .ncard__cap small { display: none; }
.site .ncard__cap { top: calc(75cqw - 8px); }
@container site (min-width: 600px) { .site .ncard__cap { top: calc(100cqw - 8px); } }
/* v3.10.67 : « Affaire exceptionnelle » : encadré doré, bandeau en haut de la carte, toujours en tête */
.site .mcard--pepite { border: 2px solid var(--pepite, #C9A227); box-shadow: 0 10px 28px -18px color-mix(in srgb, var(--pepite, #C9A227) 80%, #000); }
.site .mcard--pepite:hover { border-color: var(--pepite, #C9A227); }
.site .mcard__pep { grid-column: 1 / -1; order: -1; margin: 0; display: flex; align-items: center; gap: 7px; padding: 7px 12px; background: var(--pepite, #C9A227); color: #141517; font-family: var(--f-head); font-size: .9rem; font-weight: 500; letter-spacing: .05em; text-transform: uppercase; line-height: 1.2; }
.site .mcard__pep svg { width: 16px; height: 16px; flex: none; stroke-width: 2.2; }
.site .mcard__pep-txt { margin: 2px 0 4px; font-size: .9rem; font-weight: 500; line-height: 1.4; color: color-mix(in srgb, var(--pepite, #C9A227) 55%, #141517); }
.site .pdp__pep { margin: 10px 0 0; display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; padding: 10px 12px; border: 2px solid var(--pepite, #C9A227); border-radius: 6px; background: color-mix(in srgb, var(--pepite, #C9A227) 10%, #fff); }
.site .pdp__pep-l { display: inline-flex; align-items: center; gap: 6px; padding: 3px 9px; border-radius: 3px; background: var(--pepite, #C9A227); color: #141517; font-family: var(--f-head); font-size: .88rem; font-weight: 500; letter-spacing: .05em; text-transform: uppercase; }
.site .pdp__pep-l svg { width: 15px; height: 15px; stroke-width: 2.2; }
.site .pdp__pep-t { font-size: .98rem; font-weight: 500; color: var(--text); }
@container site (min-width: 600px) { .site .mcard--pepite { grid-template-rows: auto auto 1fr; } }
.site .mcard__pep svg, .site .pdp__pep-l svg { fill: currentColor; stroke-width: 1.2; }
/* v3.10.68 : texte du bandeau lisible quelle que soit la couleur choisie ; phrase en couleur de texte normale */
.site .mcard__pep, .site .pdp__pep-l { color: var(--pepite-ink, #fff); }
.site .mcard__pep-txt { color: var(--text); }
.site .mcard--pepite { box-shadow: 0 10px 26px -20px rgba(20,21,23,.55); }
.site .pdp__pep { background: color-mix(in srgb, var(--pepite, #141517) 6%, #fff); }
/* v3.10.69 : l'affaire exceptionnelle garde exactement la taille des autres cartes.
   Le bandeau se pose SUR la photo (comme « Nouveauté ») et le cadre épais ne décale rien. */
.site .mcard--pepite { border-width: 1px; border-color: var(--pepite, #141517); box-shadow: 0 0 0 1px var(--pepite, #141517), 0 10px 26px -20px rgba(20,21,23,.55); }
.site .mcard--pepite:hover { box-shadow: 0 0 0 1px var(--pepite, #141517), var(--shadow-2); }
@container site (min-width: 600px) { .site .mcard--pepite { grid-template-rows: auto 1fr; } }
.site .mcard__pep { position: absolute; z-index: 3; top: 0; left: 0; right: 0; order: 0; grid-column: auto; padding: 6px 12px; font-size: .82rem; }
/* Mobile (cartes en ligne, une par rangée) : la carte réserve la place du bandeau pour ne rien cacher */
@container site (max-width: 599px) { .site .mcard--pepite { padding-top: 30px; } .site .mcard__pep { height: 30px; padding: 0 12px; } }
/* v3.10.70 : page Partenaires [lenoir_partenaires] : blocs teintés de la couleur de chaque partenaire, OcemanFroid à la une */
.site .pgrid { display: grid; gap: 20px; }
.site .pcard2 { display: grid; border: 1px solid var(--pc-line); border-left: 4px solid var(--pc); border-radius: 10px; overflow: hidden; background: var(--pc-bg); }
.site .pcard2__logo { display: grid; place-items: center; min-height: 130px; padding: 22px; background: var(--pc-logo); }
.site .pcard2__logo img { max-width: 190px; max-height: 80px; object-fit: contain; mix-blend-mode: multiply; }
.site .pcard2__logo b { font-family: var(--f-head); font-size: 1.7rem; font-weight: 500; color: var(--pc); }
.site .pcard2__body { display: grid; gap: 10px; align-content: start; padding: 22px 20px 24px; }
.site .pcard2__role { margin: 0; font-size: .82rem; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: var(--pc); }
.site .pcard2__nom { margin: 0; font-family: var(--f-head); font-weight: 500; font-size: clamp(1.7rem, 5vw, 2.3rem); line-height: 1.1; }
.site .pcard2__txt { margin: 0; max-width: 68ch; color: var(--graphite); line-height: 1.6; }
.site .pcard2__pts { list-style: none; margin: 2px 0 0; padding: 0; display: grid; gap: 8px; }
.site .pcard2__pts li { display: flex; align-items: flex-start; gap: 8px; font-weight: 500; color: var(--text); line-height: 1.4; }
.site .pcard2__pts svg { flex: none; width: 18px; height: 18px; margin-top: 2px; color: var(--pc); stroke-width: 2.2; }
.site .pcard2__btns { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 6px; }
.site .pcard2__cta { background: var(--pc); border-color: var(--pc); color: #fff; }
.site .pcard2__cta:hover, .site .pcard2__cta:focus-visible { background: var(--pc); color: #fff; filter: brightness(.9); }
.site .pcard2--une { border-width: 1px 1px 1px 6px; box-shadow: 0 16px 34px -26px var(--pc); }
@container site (min-width: 600px) { .site .pcard2__pts { grid-template-columns: 1fr 1fr; } }
@container site (min-width: 900px) {
  .site .pcard2 { grid-template-columns: 260px 1fr; }
  .site .pcard2__body { padding: 30px 34px 32px; }
  .site .pcard2--une { grid-template-columns: 300px 1fr; }
  .site .pcard2--une .pcard2__body { padding: 38px 40px 40px; }
}
@container site (max-width: 599px) { .site .pcard2__btns .btn { width: 100%; justify-content: center; } }
@container site (max-width: 899px) { .site .pcard2 { grid-template-columns: minmax(0, 1fr); } }
@container site (min-width: 900px) { .site .pcard2 { grid-template-columns: 260px minmax(0, 1fr); } .site .pcard2--une { grid-template-columns: 300px minmax(0, 1fr); } }
.site .pcard2__body { min-width: 0; }
.site .pcard2__btns .btn { white-space: normal; text-align: center; height: auto; min-height: var(--h, 44px); }
/* v3.10.71 : page Partenaires complète [lenoir_page_partenaires] */
.site .ppage { display: grid; gap: 24px; max-width: var(--container); margin: 0 auto; padding: 24px var(--gutter) 64px; }
.site .ppage__hero { display: grid; gap: 10px; }
.site .ppage__titre { margin: 0; font-family: var(--f-head); font-weight: 500; font-size: clamp(2rem, 7vw, 3rem); line-height: 1.05; }
.site .ppage__intro { margin: 0; max-width: 64ch; font-size: 1.02rem; line-height: 1.6; color: var(--text-soft); }
.site .ppage__cta { display: grid; gap: 16px; align-items: center; padding: 22px 20px; border-radius: 10px; background: #F3F3F1; border: 1px solid var(--line-soft); }
.site .ppage__cta-t { margin: 0 0 4px; font-family: var(--f-head); font-weight: 500; font-size: 1.35rem; line-height: 1.2; }
.site .ppage__cta-d { margin: 0; color: var(--graphite); }
.site .ppage__cta-btns { display: flex; flex-wrap: wrap; gap: 10px; }
.site .ppage__cta-btns .btn svg { width: 18px; height: 18px; }
@container site (max-width: 599px) { .site .ppage { padding-left: 16px; padding-right: 16px; } .site .ppage__cta-btns .btn { flex: 1 1 100%; justify-content: center; } }
@container site (min-width: 800px) { .site .ppage__cta { grid-template-columns: 1fr auto; padding: 28px 32px; } }
/* v3.10.72 : fil d'Ariane des pages */
.site .page-crumbs { padding-top: 16px; }
.site .page-crumbs .crumbs { margin-bottom: 0; }
/* v3.10.74 : un seul et même espacement en haut de TOUTES les pages (pages Elementor, Machines neuves,
   Conseils, catalogue, fiches) : fil d'Ariane à 32 px sous le menu, puis --esp jusqu'au contenu
   (titre, texte ou photo en bannière). Le premier bloc Elementor ne garde aucune marge propre en haut. */
body.lenoir-espace .site .page-crumbs { padding-top: var(--s6, 32px); padding-bottom: 0; }
body.lenoir-espace .site .page-head { padding-top: var(--s6, 32px); }
body.lenoir-espace .site .crumbs { margin-bottom: var(--esp, 22px); }
body.lenoir-espace [data-elementor-type="wp-page"] > :first-child,
body.lenoir-espace [data-elementor-type="wp-page"] > .elementor-section-wrap > :first-child,
body.lenoir-espace [data-elementor-type="wp-page"] > .elementor-inner > .elementor-section-wrap > :first-child { margin-top: var(--esp, 22px) !important; --margin-top: var(--esp, 22px) !important; }
/* Bloc sans photo ni couleur de fond : son texte démarre pile à --esp sous le fil d'Ariane.
   Bloc avec photo ou couleur de fond (bannière) : il démarre à --esp et garde son espace intérieur. */
body.lenoir-espace [data-elementor-type="wp-page"] > :first-child:not([data-settings*="background_background"]),
body.lenoir-espace [data-elementor-type="wp-page"] > .elementor-section-wrap > :first-child:not([data-settings*="background_background"]),
body.lenoir-espace [data-elementor-type="wp-page"] > .elementor-inner > .elementor-section-wrap > :first-child:not([data-settings*="background_background"]) { padding-top: 0 !important; --padding-top: 0px !important; }
body.lenoir-espace [data-elementor-type="wp-page"] > :first-child:not([data-settings*="background_background"]) > .elementor-container > .elementor-column:first-child > .elementor-widget-wrap { padding-top: 0 !important; }
body.lenoir-espace [data-elementor-type="wp-page"] > :first-child .elementor-widget:first-child .elementor-heading-title { margin-top: 0; }
body.lenoir-espace .site .pneuf, body.lenoir-espace .site .ppage { padding-top: 0; }
/* v3.10.76 : une seule largeur de contenu sur tout le site, celle des pages Elementor (1 240 px de contenu).
   Les pages construites par le thème (catalogue, fiches, Conseils, pied de page) et le fil d'Ariane
   s'alignent exactement sur le contenu des pages Elementor. */
.site .container { max-width: calc(var(--container, 1240px) + 2 * var(--gutter)); }
.site .pneuf, .site .ppage { max-width: calc(var(--container, 1240px) + 2 * var(--gutter)); }
/* v3.10.77 : Machines neuves et Partenaires font exactement la largeur du reste du site (1 240 px de contenu),
   quel que soit le réglage de la section Elementor qui les contient (boîte, pleine largeur, marges). */
.site .pneuf, .site .ppage {
  --pw: min(var(--container, 1240px), calc(100cqw - 2 * var(--pg, 20px)));
  box-sizing: border-box; width: var(--pw); max-width: none;
  margin-left: calc(50% - var(--pw) / 2); margin-right: 0;
  padding-left: 0; padding-right: 0;
}
@container site (max-width: 599px) { .site .pneuf, .site .ppage { --pg: 16px; padding-left: 0; padding-right: 0; } }

/* v3.10.79 : formulaires, libellés plus aérés (un réglage global d'Elementor écrasait la hauteur de ligne) */
.site .field { gap: 8px; }
.site .field > label, .site .field > legend { display: block; line-height: 1.35 !important; margin: 0; }
.site .loc-opt { row-gap: 3px; padding: 10px 0; line-height: 1.35 !important; }
.site .loc-opt__l, .site .loc-opt__p { line-height: 1.35 !important; }
.site .loc-opt small { display: block; line-height: 1.4 !important; margin-top: 2px; font-size: .85rem; }

/* v3.10.81 : téléphone, plus aucun glissement de la page vers la droite.
   - un bouton trop long passe sur deux lignes au lieu de sortir de l'écran ;
   - Machines neuves et Partenaires ne dépassent jamais la largeur de l'écran ;
   - filet de sécurité : rien ne peut élargir la page horizontalement. */
html, body { overflow-x: clip; }
.site { overflow-x: clip; }
.site .btn { max-width: 100%; }
@container site (max-width: 599px) {
  .site .btn { white-space: normal; text-align: center; line-height: 1.2; padding-top: 8px; padding-bottom: 8px; }
  .site .pneuf, .site .ppage {
    --pw: min(var(--container, 1240px), calc(100cqw - 2 * var(--pg, 16px)), calc(100vw - 2 * var(--pg, 16px)));
  }
  .site .pneuf *, .site .ppage * { min-width: 0; }
  .site .nbrand__top > .btn, .site .nbrand__top > a { flex: 1 1 100%; }
}

/* v3.10.82 : téléphone, Machines neuves et Partenaires ont exactement 16 px de marge à gauche ET à droite,
   comme le reste du site. Sur téléphone, on ne se fie plus au calcul de largeur : la section Elementor
   qui contient la page est remise à zéro (aucune marge, aucune largeur imposée), et la page prend
   toute la largeur de l'écran avec 16 px de chaque côté. */
@media (max-width: 767px) {
  .site [data-elementor-type="wp-page"]:has(.pneuf, .ppage),
  .site [data-elementor-type="wp-page"] :is(.e-con, .e-con-inner, .elementor-section, .elementor-container, .elementor-column, .elementor-widget-wrap, .elementor-element, .elementor-widget, .elementor-widget-container, .elementor-shortcode):has(.pneuf, .ppage) {
    padding-left: 0 !important; padding-right: 0 !important;
    margin-left: 0 !important; margin-right: 0 !important;
    width: 100% !important; max-width: 100% !important; min-width: 0 !important;
    --padding-left: 0px; --padding-right: 0px; --margin-left: 0px; --margin-right: 0px;
    --width: 100%; --content-width: 100%; --container-max-width: 100%;
    box-sizing: border-box;
  }
  .site .pneuf, .site .ppage {
    width: auto !important; max-width: 100% !important;
    margin-left: 0 !important; margin-right: 0 !important;
    padding-left: 16px !important; padding-right: 16px !important;
    box-sizing: border-box;
  }
}
