/* Thème Euromax Monaco, SeeSmile, 2026. Socle repris de la maquette validée. */
@font-face { font-family: "Archivo"; src: url("../fonts/archivo.woff2") format("woff2"); font-weight: 100 900; font-stretch: 62% 125%; font-display: swap; }

:root {
  /* v3.13.3 · Rythme vertical unique : un seul espacement de section, partout */
  --pad-section: clamp(72px, 9vw, 130px);
  --pad-section-court: clamp(56px, 5.6vw, 80px);
  --noir: #0E0D0B;
  --noir-2: #171513;
  --noir-3: #22201C;
  --or: #B9934F;          /* sur fonds sombres */
  --or-clair: #D8BC86;
  --or-texte: #7A5B26;    /* sur fonds clairs, contraste AA */
  --ivoire: #F6F2EA;
  --pierre: #E6DECF;
  --blanc: #FFFFFF;
  --encre: #1B1915;
  --gris: #5C574E;
  --gris-clair: #B8B0A2;
  --rayon: 14px;
  --max: 1440px;  /* 1360 px de contenu + 2 x 40 px de marge */
  --or-bouton: #8C6A2E;   /* texte blanc dessus : contraste AA */
  --or-bouton-hover: #6F5322;
  --ease: cubic-bezier(.22, 1, .36, 1);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
html { width: 100%; overflow-x: hidden; }
body { width: 100%; overflow-x: clip; }
body {
  margin: 0; font-family: "Archivo", system-ui, sans-serif; font-weight: 400;
  font-size: 17px; line-height: 1.65; color: var(--encre); background: var(--blanc);
  -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;
}
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; }
button { font: inherit; color: inherit; background: none; border: 0; cursor: pointer; padding: 0; }
.fort { font-weight: 800; font-stretch: 125%; letter-spacing: -.015em; }
.wrap { width: 100%; max-width: var(--max); margin: 0 auto; padding: 0 40px; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

.skip-link { position: absolute; left: -9999px; top: 0; z-index: 1000; background: var(--or); color: var(--noir); padding: 12px 18px; font-weight: 700; }
.skip-link:focus { left: 12px; top: 12px; }
:focus-visible { outline: 2px solid var(--or-clair); outline-offset: 3px; border-radius: 4px; }

/* Pastilles */
.pill {
  align-self: flex-start; width: fit-content;
  display: inline-flex; align-items: center; gap: 10px;
  font-size: 13px; font-weight: 500; letter-spacing: .01em;
  padding: 7px 16px 7px 12px; border-radius: 999px;
  border: 1px solid rgba(185, 147, 79, .55); color: var(--or-clair); background: rgba(14, 13, 11, .35);
}
.pill::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--or); box-shadow: 0 0 0 4px rgba(185,147,79,.18); }
.pill--clair { color: var(--or-texte); background: var(--blanc); border-color: #D9C49A; }
.pill--clair::before { background: var(--or-texte); box-shadow: 0 0 0 4px rgba(122,91,38,.12); }

/* Boutons */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 52px; padding: 0 26px; border-radius: 999px;
  font-size: 15px; font-weight: 600; text-decoration: none; letter-spacing: .01em;
  transition: transform .35s var(--ease), background .35s var(--ease), color .35s var(--ease), border-color .35s var(--ease);
}
.btn svg { width: 18px; height: 18px; transition: transform .35s var(--ease); }
.btn:hover svg { transform: translateX(3px); }
.btn--or { background: var(--or-bouton); color: #fff; position: relative; overflow: hidden; isolation: isolate; }
.btn--or::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(110deg, transparent 30%, rgba(255,255,255,.22) 50%, transparent 70%); transform: translateX(-120%); transition: transform .9s var(--ease); }
.btn--or:hover { background: var(--or-bouton-hover); color: #fff; }
.btn--or:hover::after { transform: translateX(120%); }
.btn--ligne { border: 1px solid rgba(255,255,255,.35); color: var(--blanc); }
.btn--ligne:hover { border-color: var(--blanc); background: rgba(255,255,255,.06); }
.btn--noir { background: var(--noir); color: var(--blanc); }
.btn--noir:hover { background: var(--noir-3); }
.lien {
  display: inline-flex; align-items: center; gap: 8px; font-weight: 600; font-size: 15px;
  text-decoration: none; color: var(--or-texte); border-bottom: 1px solid currentColor; padding-bottom: 2px;
}

/* Barre haute */
.topbar { background: var(--noir); color: #CFC6B5; font-size: 13px; }
.topbar .wrap { display: flex; justify-content: space-between; align-items: center; min-height: 40px; gap: 24px; }
.topbar a { color: var(--or-clair); text-decoration: none; font-weight: 600; }
.topbar .droite { display: flex; gap: 28px; align-items: center; }

/* En-tête */
.header { position: sticky; top: 0; z-index: 50; background: rgba(14,13,11,.92); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); border-bottom: 1px solid rgba(255,255,255,.08); transition: background .4s var(--ease); }
.header .wrap { display: flex; align-items: center; gap: 36px; height: 84px; }
.logo { display: block; flex: none; }
.logo img { height: 42px; width: auto; }
.nav { display: flex; align-items: center; gap: 4px; height: 100%; margin-left: auto; }
.nav > li { list-style: none; height: 100%; display: flex; align-items: center; }
.nav ul, ul.nav { margin: 0; padding: 0; }
.nav-btn {
  display: inline-flex; align-items: center; gap: 6px; height: 44px; padding: 0 14px;
  color: #E9E3D8; font-size: 15px; font-weight: 500; text-decoration: none; border-radius: 999px;
  transition: color .3s var(--ease), background .3s var(--ease);
}
.nav-btn svg { width: 14px; height: 14px; transition: transform .35s var(--ease); opacity: .7; }
.nav-btn:hover, .nav-btn[aria-expanded="true"] { color: var(--blanc); background: rgba(255,255,255,.07); }
.nav-btn[aria-expanded="true"] svg { transform: rotate(180deg); }
.header-actions { display: flex; align-items: center; gap: 10px; }
.icon-btn { width: 44px; height: 44px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; color: #E9E3D8; border: 1px solid rgba(255,255,255,.14); transition: border-color .3s; }
.icon-btn:hover { border-color: rgba(255,255,255,.5); }
.icon-btn svg { width: 18px; height: 18px; }
.header .btn { min-height: 46px; padding: 0 20px; font-size: 14px; }
.burger { display: none; }

/* Mega menu */
.mega {
  position: absolute; left: 0; right: 0; top: 100%;
  background: var(--blanc); color: var(--encre);
  box-shadow: 0 40px 80px -30px rgba(0,0,0,.45);
  opacity: 0; visibility: hidden; transform: translateY(-8px);
  transition: opacity .35s var(--ease), transform .35s var(--ease), visibility .35s;
}
.mega.is-open { opacity: 1; visibility: visible; transform: translateY(0); }
.header .mega .wrap { display: grid; align-items: start; justify-content: stretch; grid-template-columns: repeat(3, minmax(0, 1fr)) 1.25fr; gap: 0; height: auto; padding-top: 36px; padding-bottom: 40px; }
.mega-col { padding: 0 28px 0 0; margin-right: 28px; border-right: 1px solid var(--pierre); }
.mega-col:nth-child(3) { border-right: 0; }
.mega-photo { aspect-ratio: 16 / 10; border-radius: 10px; overflow: hidden; background: #F3F1EC; margin-bottom: 18px; }
.mega-photo img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--ease); }
.mega-photo.contain img { object-fit: contain; padding: 10px; background: #fff; }
.mega-col:hover .mega-photo img { transform: scale(1.04); }
.mega-titre { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; margin-bottom: 14px; }
.mega-titre a { font-size: 17px; font-weight: 700; text-decoration: none; color: var(--encre); }
.mega-titre a:hover { color: var(--or-texte); }
.tag { font-size: 12px; font-weight: 600; color: var(--or-texte); border: 1px solid #D9C49A; border-radius: 999px; padding: 2px 10px; white-space: nowrap; }
.mega-col ul { list-style: none; margin: 0; padding: 0; }
.mega-col li a { display: flex; justify-content: space-between; padding: 9px 0; font-size: 15px; text-decoration: none; color: var(--gris); border-top: 1px solid #EFEAE0; transition: color .25s, padding .3s var(--ease); }
.mega-col li a:hover { color: var(--encre); padding-left: 6px; }
.mega-une { background: var(--noir); color: var(--blanc); border-radius: 16px; overflow: hidden; display: flex; flex-direction: column; }
.mega-une .img { aspect-ratio: 16 / 9; background: #EDEBE6; overflow: hidden; }
.mega-une .img img { width: 100%; height: 100%; object-fit: cover; }
.mega-une .txt { padding: 22px 24px 26px; }
.mega-une .pill { margin-bottom: 14px; }
.mega-une h3 { font-size: 22px; line-height: 1.2; margin: 0 0 8px; font-weight: 600; }
.mega-une p { color: #CFC6B5; font-size: 14.5px; margin: 0 0 18px; }
.mega-bas { grid-column: 1 / -1; margin-top: 28px; padding-top: 20px; border-top: 1px solid var(--pierre); display: flex; justify-content: space-between; align-items: center; font-size: 14.5px; color: var(--gris); }

/* Hero */
.hero { position: relative; background: var(--noir); color: var(--blanc); overflow: hidden; }
.hero-img { position: absolute; inset: 0 0 0 38%; overflow: hidden; }
.hero-img img { width: 100%; height: 100%; object-fit: cover; object-position: 30% center; transform: scale(1.02); animation: respire 16s var(--ease) infinite alternate; }
.hero-img::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, var(--noir) 0%, rgba(14,13,11,.86) 22%, rgba(14,13,11,.25) 60%, rgba(14,13,11,.1) 100%), linear-gradient(0deg, var(--noir) 0%, rgba(14,13,11,0) 30%); }
@keyframes respire { from { transform: scale(1.02); } to { transform: scale(1.07) translateX(-1%); } }
.hero .wrap { position: relative; min-height: min(86vh, 820px); display: flex; flex-direction: column; justify-content: center; padding-top: 90px; padding-bottom: 60px; }
.hero h1 { font-size: clamp(44px, 5.8vw, 84px); line-height: 1; font-weight: 300; letter-spacing: -.035em; margin: 28px 0 28px; max-width: 900px; }
.hero h1 .fort { color: var(--or-clair); font-size: 1.08em; letter-spacing: -.01em; display: block; margin-top: 6px; }
.hero .chapo { font-size: 19px; line-height: 1.6; color: #D9D2C5; max-width: 560px; margin: 0 0 40px; font-weight: 400; }
.hero-cta { display: flex; flex-wrap: wrap; gap: 14px; }
.chiffres { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; margin-top: 80px; max-width: 760px; border-top: 1px solid rgba(255,255,255,.14); }
.chiffre { padding: 22px 24px 0 0; }
.chiffre + .chiffre { padding-left: 24px; border-left: 1px solid rgba(255,255,255,.14); }
.chiffre b { display: block; font-size: 40px; font-weight: 200; letter-spacing: -.03em; line-height: 1; color: var(--blanc); font-variant-numeric: tabular-nums; }
.chiffre > span { display: block; font-size: 14px; color: #B9B1A3; margin-top: 8px; line-height: 1.45; }
.defiler { position: absolute; right: 40px; bottom: 40px; display: flex; align-items: center; gap: 12px; font-size: 13px; color: #B9B1A3; text-decoration: none; }
.defiler i { width: 1px; height: 46px; background: rgba(255,255,255,.25); position: relative; overflow: hidden; }
.defiler i::after { content: ""; position: absolute; left: 0; top: -40%; width: 1px; height: 40%; background: var(--or); animation: goutte 2.4s var(--ease) infinite; }
@keyframes goutte { to { top: 110%; } }

/* Sections */
.section { padding: var(--pad-section) 0; }
.section--ivoire { background: var(--ivoire); }
.section--noir { background: var(--noir); color: var(--blanc); }
.titre-sec { display: flex; justify-content: space-between; align-items: flex-end; gap: 40px; margin-bottom: 60px; flex-wrap: wrap; }
.titre-sec h2 { font-size: clamp(36px, 4.4vw, 64px); line-height: 1.04; font-weight: 300; letter-spacing: -.03em; margin: 18px 0 0; max-width: 780px; }
.titre-sec h2 .fort { color: var(--or-texte); }
.section--noir .titre-sec h2 .fort { color: var(--or-clair); }
.titre-sec p { max-width: 420px; color: var(--gris); margin: 0; }
.section--noir .titre-sec p { color: #B9B1A3; }

/* Métiers */
.metiers { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.metier { position: relative; display: flex; flex-direction: column; background: var(--blanc); border-radius: var(--rayon); overflow: hidden; text-decoration: none; color: var(--encre); transition: transform .5s var(--ease), box-shadow .5s var(--ease); }
.metier:hover { transform: translateY(-6px); box-shadow: 0 30px 60px -30px rgba(27,25,21,.35); }
.metier .img { aspect-ratio: 4 / 3; overflow: hidden; background: #fff; }
.metier .img img { width: 100%; height: 100%; object-fit: cover; transition: transform 1s var(--ease); }
.metier .img.contain img { object-fit: contain; padding: 22px; }
.metier:hover .img img { transform: scale(1.05); }
.metier .txt { padding: 28px 30px 32px; display: flex; flex-direction: column; gap: 10px; flex: 1; }
.metier .num { font-size: 13px; color: var(--or-texte); font-weight: 600; }
.metier h3 { font-size: 26px; font-weight: 500; letter-spacing: -.02em; margin: 0; line-height: 1.15; }
.metier p { margin: 0; color: var(--gris); font-size: 15.5px; }
.metier .fleche { margin-top: auto; padding-top: 14px; display: inline-flex; align-items: center; gap: 8px; font-weight: 600; font-size: 15px; color: var(--or-texte); }
.metier .fleche svg { width: 18px; height: 18px; transition: transform .4s var(--ease); }
.metier:hover .fleche svg { transform: translateX(5px); }

/* Univers */
.univers { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 20px; }
.tuile { position: relative; border-radius: var(--rayon); overflow: hidden; text-decoration: none; color: var(--blanc); min-height: 340px; display: flex; align-items: flex-end; background: var(--noir-2); isolation: isolate; }
.tuile img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; transition: transform 1.1s var(--ease); }
.tuile::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(0deg, rgba(14,13,11,.88) 0%, rgba(14,13,11,.15) 55%, rgba(14,13,11,0) 100%); }
.tuile:hover img { transform: scale(1.06); }
.tuile .txt { padding: 28px; width: 100%; display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; }
.tuile h3 { margin: 0; font-size: 26px; font-weight: 500; letter-spacing: -.02em; line-height: 1.15; }
.tuile p { margin: 6px 0 0; color: #D9D2C5; font-size: 14.5px; }
.rond { flex: none; width: 48px; height: 48px; border-radius: 50%; border: 1px solid rgba(255,255,255,.4); display: inline-flex; align-items: center; justify-content: center; transition: background .4s var(--ease), border-color .4s, color .4s; }
.rond svg { width: 18px; height: 18px; }
.tuile:hover .rond { background: var(--or-bouton); border-color: var(--or-bouton); color: #fff; }
.tuile--blanc { background: #fff; }
.tuile--blanc img { object-fit: contain; padding: 30px 30px 110px; }
.tuile--blanc::after { background: linear-gradient(0deg, rgba(14,13,11,.9) 0%, rgba(14,13,11,.55) 26%, rgba(14,13,11,0) 42%); }
.t-7 { grid-column: span 7; } .t-5 { grid-column: span 5; } .t-4 { grid-column: span 4; }

/* Produit phare */
.phare { display: grid; grid-template-columns: 1.1fr 1fr; gap: 80px; align-items: center; }
.phare-img { position: relative; border-radius: 20px; overflow: hidden; background: #EDEBE6; aspect-ratio: 16 / 11; }
.phare-img img { width: 100%; height: 100%; object-fit: cover; }
.phare-img .badge { position: absolute; left: 22px; bottom: 22px; background: rgba(14,13,11,.82); color: #fff; border-radius: 999px; padding: 10px 18px; font-size: 13.5px; backdrop-filter: blur(8px); }
.phare h2 { font-size: clamp(36px, 4vw, 58px); line-height: 1.04; font-weight: 300; letter-spacing: -.03em; margin: 20px 0 6px; }
.phare .sous { font-size: clamp(26px, 2.6vw, 36px); color: var(--or-clair); margin: 0 0 24px; line-height: 1.15; }
.phare p { color: #CFC6B5; margin: 0 0 30px; }
.atouts { list-style: none; padding: 0; margin: 0 0 40px; border-top: 1px solid rgba(255,255,255,.12); }
.atouts li { display: grid; grid-template-columns: 40px 1fr; padding: 16px 0; border-bottom: 1px solid rgba(255,255,255,.12); color: #E9E3D8; }
.atouts li span { color: var(--or); font-size: 13px; font-weight: 600; padding-top: 3px; }

/* Chaîne */
.chaine { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0; position: relative; }
.chaine::before { content: ""; position: absolute; left: 0; right: 0; top: 27px; height: 1px; background: linear-gradient(90deg, var(--or-texte), #D9C49A); }
.etape { position: relative; padding-right: 26px; }
.etape .point { width: 56px; height: 56px; border-radius: 50%; background: var(--ivoire); border: 1px solid var(--or-texte); display: flex; align-items: center; justify-content: center; font-size: 14px; font-weight: 600; color: var(--or-texte); position: relative; z-index: 1; transition: background .4s, color .4s; }
.etape:hover .point { background: var(--or-texte); color: #fff; }
.etape h3 { font-size: 22px; font-weight: 500; margin: 26px 0 8px; letter-spacing: -.01em; }
.etape p { color: var(--gris); margin: 0 0 14px; font-size: 15px; }
.etape .ex { font-size: 13.5px; color: var(--encre); line-height: 1.7; }
.chaine-photos { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 20px; margin-top: 56px; }
.chaine-photos div { aspect-ratio: 1; border-radius: 12px; background: #fff; overflow: hidden; display: flex; align-items: center; justify-content: center; }
.chaine-photos img { width: 100%; height: 100%; object-fit: contain; padding: 18px; }
.chaine-photos img.cover { object-fit: cover; padding: 0; }

/* Showroom */

/* Services */

/* Agenda + partenaires */
.agenda { display: grid; grid-template-columns: 1fr 1.2fr; gap: 80px; align-items: center; }
.evenement { background: var(--blanc); border-radius: var(--rayon); padding: 40px 44px; display: grid; grid-template-columns: auto 1fr; gap: 34px; align-items: center; }
.date { text-align: center; border-right: 1px solid var(--pierre); padding-right: 34px; }
.date b { display: block; font-size: 52px; font-weight: 200; letter-spacing: -.03em; line-height: 1; color: var(--encre); }
.date span { font-size: 14px; color: var(--or-texte); font-weight: 600; }
.evenement h3 { margin: 0 0 6px; font-size: 24px; font-weight: 500; }
.evenement p { margin: 0 0 16px; color: var(--gris); }
.marques { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 28px 48px; margin-top: 90px; padding-top: 50px; border-top: 1px solid var(--pierre); }
.marques span { font-size: 22px; font-weight: 300; letter-spacing: -.01em; color: #77705F; }
.marques span.fort { font-size: 26px; }

/* Contact */
.contact { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; }
.contact h2 { font-size: clamp(40px, 4.6vw, 68px); line-height: 1.02; font-weight: 300; letter-spacing: -.03em; margin: 22px 0 26px; }
.contact h2 .fort { color: var(--or-clair); }
.contact .tel { display: inline-block; font-size: 34px; font-weight: 200; letter-spacing: -.02em; color: var(--blanc); text-decoration: none; margin: 10px 0 6px; }
.contact .tel:hover { color: var(--or-clair); }
.contact .info { color: #B9B1A3; font-size: 15px; }
.form { background: var(--noir-2); border: 1px solid rgba(255,255,255,.08); border-radius: 20px; padding: 40px; display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.champ { display: flex; flex-direction: column; gap: 8px; }
.champ.plein { grid-column: 1 / -1; }
.champ label { font-size: 13.5px; color: #CFC6B5; font-weight: 500; }
.champ input, .champ select, .champ textarea {
  font: inherit; font-size: 15.5px; color: var(--blanc); background: var(--noir-3);
  border: 1px solid rgba(255,255,255,.14); border-radius: 10px; padding: 14px 16px; min-height: 50px; transition: border-color .3s;
}
.champ textarea { min-height: 110px; resize: vertical; }
.champ input:focus, .champ select:focus, .champ textarea:focus { border-color: var(--or); outline: none; }
.consent { grid-column: 1 / -1; display: flex; gap: 12px; align-items: flex-start; font-size: 13.5px; color: #B9B1A3; }
.consent input { margin-top: 3px; width: 18px; height: 18px; accent-color: var(--or); }
.form .btn { grid-column: 1 / -1; justify-self: start; }

/* Pied de page */
.footer { background: #080807; color: #B9B1A3; padding: 90px 0 36px; font-size: 14.5px; }
.footer .haut { display: grid; grid-template-columns: 1.4fr repeat(3, minmax(0, 1fr)); gap: 40px; padding-bottom: 60px; border-bottom: 1px solid rgba(255,255,255,.08); }
.footer img { height: 40px; width: auto; margin-bottom: 22px; }
.footer .titre { color: var(--blanc); font-weight: 600; margin-bottom: 16px; display: block; }
.footer ul { list-style: none; margin: 0; padding: 0; }
.footer li { margin-bottom: 10px; }
.footer a { text-decoration: none; }
.footer a:hover { color: var(--or-clair); }
.footer .bas { display: flex; justify-content: space-between; gap: 20px; flex-wrap: wrap; padding-top: 28px; font-size: 13px; }
.signature { color: #8E8677; }

/* Apparition au défilement */
.reveal { opacity: 0; transform: translateY(28px); transition: opacity 1s var(--ease), transform 1s var(--ease); }
.reveal.is-visible { opacity: 1; transform: none; }
.reveal-d1 { transition-delay: .08s; } .reveal-d2 { transition-delay: .16s; } .reveal-d3 { transition-delay: .24s; }

/* Menu mobile */
.menu-overlay { position: fixed; inset: 0; background: rgba(0,0,0,.55); opacity: 0; visibility: hidden; transition: opacity .35s, visibility .35s; z-index: 98; }
html.menu-open { overflow: hidden; height: 100%; }
html.menu-open .menu-overlay { opacity: 1; visibility: visible; }
.mobile-menu { position: fixed; top: 0; right: 0; width: min(88vw, 400px); height: 100dvh; background: var(--noir); color: var(--blanc); z-index: 99; transform: translateX(100%); transition: transform .45s var(--ease); overflow-y: auto; padding: 96px 28px 40px; }
.mobile-menu.is-open { transform: translateX(0); }
.mobile-menu details { border-bottom: 1px solid rgba(255,255,255,.1); }
.mobile-menu summary { list-style: none; display: flex; justify-content: space-between; align-items: center; padding: 18px 0; font-size: 20px; font-weight: 500; cursor: pointer; min-height: 44px; }
.mobile-menu summary::-webkit-details-marker { display: none; }
.mobile-menu summary svg { width: 18px; height: 18px; transition: transform .3s; }
.mobile-menu details[open] summary svg { transform: rotate(180deg); }
.mobile-menu details ul { list-style: none; margin: 0 0 16px; padding: 0; }
.mobile-menu details a { display: block; padding: 10px 0; color: #CFC6B5; text-decoration: none; min-height: 44px; }
.mobile-menu > a.simple { display: block; padding: 18px 0; font-size: 20px; font-weight: 500; text-decoration: none; border-bottom: 1px solid rgba(255,255,255,.1); }
.mobile-menu .btn { margin-top: 30px; width: 100%; }
.mobile-close { position: absolute; top: 22px; right: 22px; }

/* Responsive */
@media (max-width: 1180px) {
  .nav { display: none; }
  .burger { display: inline-flex; }
  .header > .wrap { justify-content: space-between; height: 72px; }
  .header .btn--or, .header .compte { display: none; }
  .phare { grid-template-columns: 1fr; gap: 50px; }
  .agenda, .contact { grid-template-columns: 1fr; gap: 50px; }
  .chaine { grid-template-columns: repeat(3, minmax(0, 1fr)); row-gap: 48px; }
  .chaine::before { display: none; }
  .footer .haut { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 860px) {
  .wrap { padding: 0 22px; }
  .topbar .gauche, .topbar .droite span { display: none; }
  .topbar .wrap { justify-content: center; }
  .hero-img { inset: 0; opacity: .5; }
  .hero-img::after { background: linear-gradient(0deg, var(--noir) 10%, rgba(14,13,11,.6) 60%, rgba(14,13,11,.7) 100%); }
  .hero .wrap { min-height: auto; padding-top: 70px; padding-bottom: 70px; }
  .chiffres { grid-template-columns: 1fr; margin-top: 50px; }
  .chiffre + .chiffre { border-left: 0; padding-left: 0; border-top: 1px solid rgba(255,255,255,.14); }
  .chiffre { padding: 18px 0; }
  .defiler { display: none; }
  .metiers { grid-template-columns: 1fr; }
  .univers { grid-template-columns: 1fr; }
  .t-7, .t-5, .t-4 { grid-column: auto; }
  .tuile { min-height: 280px; }
  .chaine { grid-template-columns: 1fr; }
  .chaine-photos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .evenement { grid-template-columns: 1fr; padding: 32px 26px; }
  .date { border-right: 0; padding: 0; text-align: left; }
  .form { grid-template-columns: 1fr; padding: 26px; }
  .footer .haut { grid-template-columns: 1fr; }
  .btn { width: 100%; }
  .hero-cta .btn, .form .btn { width: 100%; }
  .header .btn { width: auto; }
}

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

/* ===== Animations et curseur (v2) ===== */
.progress { position: fixed; top: 0; left: 0; height: 2px; width: 100%; background: var(--or); transform-origin: 0 50%; transform: scaleX(0); z-index: 200; pointer-events: none; }
.header.is-scrolled { background: rgba(14,13,11,.97); box-shadow: 0 10px 30px -20px rgba(0,0,0,.6); }
.header > .wrap { transition: height .45s var(--ease); }
.header.is-scrolled > .wrap { height: 70px; }
.header.is-scrolled .logo img { height: 36px; }
.logo img { transition: height .45s var(--ease); }

/* Titre du hero : lignes qui montent */
.ligne { display: block; overflow: hidden; padding-bottom: .06em; }
.ligne > span { display: inline-block; transform: translateY(105%); transition: transform 1.2s var(--ease); }
.is-loaded .ligne > span { transform: none; }
.is-loaded .ligne:nth-child(2) > span { transition-delay: .12s; }
.hero-img img { will-change: transform; }

/* Tuiles : dévoilement en rideau */
.tuile.reveal, .metier.reveal, .phare-img.reveal { opacity: 1; transform: none; clip-path: inset(0 0 100% 0 round var(--rayon)); transition: clip-path 1.2s var(--ease); }
.tuile.reveal img, .metier.reveal img, .phare-img.reveal img { transform: scale(1.18); transition: transform 1.6s var(--ease); }
.tuile.reveal.is-visible, .metier.reveal.is-visible, .phare-img.reveal.is-visible { clip-path: inset(0 0 0 0 round var(--rayon)); }
.tuile.reveal.is-visible img, .metier.reveal.is-visible img, .phare-img.reveal.is-visible img { transform: scale(1); }
.tuile.reveal.is-visible:hover img, .metier.reveal.is-visible:hover .img img { transform: scale(1.06); }

/* Chaîne : la ligne se dessine, les étapes s'allument */
.chaine::before { transform: scaleX(0); transform-origin: 0 50%; transition: transform 1.8s var(--ease) .2s; }
.chaine.is-drawn::before { transform: scaleX(1); }
.chaine .point { transform: scale(.6); opacity: 0; transition: transform .7s var(--ease), opacity .7s var(--ease), background .4s, color .4s; }
.chaine.is-drawn .point { transform: none; opacity: 1; }
.chaine.is-drawn .etape:nth-child(2) .point { transition-delay: .35s; }
.chaine.is-drawn .etape:nth-child(3) .point { transition-delay: .7s; }
.chaine.is-drawn .etape:nth-child(4) .point { transition-delay: 1.05s; }
.chaine.is-drawn .etape:nth-child(5) .point { transition-delay: 1.4s; }

/* Partenaires : défilement continu */
.marques { display: block; overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent); mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent); }
.marques-piste { display: flex; align-items: center; gap: 0; width: max-content; animation: defile 34s linear infinite; }
.marques-piste > span { margin-right: 72px; white-space: nowrap; }
.marques:hover .marques-piste { animation-play-state: paused; }
@keyframes defile { to { transform: translateX(-50%); } }


/* Curseur personnalisé (ordinateur uniquement) */
.curseur, .curseur-point { position: fixed; top: 0; left: 0; pointer-events: none; z-index: 9999; border-radius: 50%; opacity: 0; transition: opacity .3s; }
.curseur { width: 38px; height: 38px; margin: -19px 0 0 -19px; border: 1.5px solid var(--or); transition: width .35s var(--ease), height .35s var(--ease), margin .35s var(--ease), background .35s, border-color .35s, opacity .3s; }
.curseur-point { width: 6px; height: 6px; margin: -3px 0 0 -3px; background: var(--or); }
.has-curseur .curseur, .has-curseur .curseur-point { opacity: 1; }
.curseur.is-grand { width: 72px; height: 72px; margin: -36px 0 0 -36px; background: rgba(185,147,79,.16); border-color: var(--or-clair); }
.curseur-point.is-grand { opacity: 0; }
.curseur.is-clic { width: 28px; height: 28px; margin: -14px 0 0 -14px; }
/* v3.18.4 : le curseur du système reste toujours visible (le rond doré n'est plus qu'un halo décoratif). */
.curseur-point { display: none !important; }
@media (hover: none), (pointer: coarse) { .curseur, .curseur-point { display: none; } }

@media (prefers-reduced-motion: reduce) {
  .ligne > span { transform: none; }
  .tuile.reveal, .metier.reveal, .phare-img.reveal { clip-path: none; }
  .tuile.reveal img, .metier.reveal img, .phare-img.reveal img { transform: none; }
  .chaine::before { transform: none; }
  .chaine .point { transform: none; opacity: 1; }
  .marques-piste { animation: none; flex-wrap: wrap; width: auto; }
}

/* ===== Header : boutique, compte, panier ===== */
.liens-top { display: flex; gap: 26px; }
.liens-top a { color: #CFC6B5; font-weight: 500; }
.liens-top a:hover { color: var(--or-clair); }
.bientot { display: inline-block; font-size: 10.5px; font-weight: 700; letter-spacing: .02em; color: var(--noir); background: var(--or-clair); border-radius: 999px; padding: 2px 8px; margin-left: 6px; line-height: 1.5; vertical-align: 2px; }
.bientot--sombre { background: rgba(216,188,134,.16); color: var(--or-clair); }
.nav-boutique { gap: 0; }
.header-actions .icon-btn { text-decoration: none; position: relative; }
.badge-panier { position: absolute; top: -3px; right: -3px; min-width: 18px; height: 18px; border-radius: 999px; background: var(--or-clair); color: var(--noir); font-size: 11px; font-weight: 700; display: inline-flex; align-items: center; justify-content: center; padding: 0 5px; }
.header-actions { gap: 8px; }
@media (max-width: 1380px) { .header .wrap .nav-btn { padding-left: 11px; padding-right: 11px; } .header > .wrap { gap: 24px; } }

/* ===== Section immersive Monaco ===== */
.immersion { position: relative; height: 280vh; background: var(--ivoire); }
.immersion-scene { position: sticky; top: 0; height: 100vh; height: 100svh; overflow: hidden; display: grid; place-items: center; --e: 0; --t: 0; }
.immersion-cadre { position: absolute; inset: 0; clip-path: inset(calc(var(--e-inv) * 24%) calc(var(--e-inv) * 31%) round calc(var(--e-inv) * 28px)); --e-inv: calc(1 - var(--e)); will-change: clip-path; }
.immersion-cadre img { width: 100%; height: 100%; object-fit: cover; transform: scale(calc(1.3 - var(--e) * .3)); will-change: transform; }
.immersion-cadre::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(14,13,11,.88) 0%, rgba(14,13,11,.55) 45%, rgba(14,13,11,.05) 100%); opacity: var(--t); }
.immersion-mots { position: absolute; inset: 0; margin: 0; display: flex; align-items: center; justify-content: space-between; padding: 0 4vw; font-size: clamp(30px, 4vw, 64px); font-weight: 300; letter-spacing: -.03em; color: var(--encre); pointer-events: none; opacity: calc(1 - var(--e) * 1.6); }
.immersion-mots .mot-g { transform: translateX(calc(var(--e) * -30vw)); }
.immersion-mots .mot-d { color: var(--or-texte); transform: translateX(calc(var(--e) * 30vw)); font-size: 1.1em; }
.immersion-contenu { position: absolute; inset: 0; display: flex; align-items: center; color: var(--blanc); opacity: var(--t); transform: translateY(calc((1 - var(--t)) * 40px)); }
.immersion-contenu .wrap { width: 100%; }
.immersion-contenu h2 { font-size: clamp(42px, 5.6vw, 84px); line-height: 1; font-weight: 300; letter-spacing: -.035em; margin: 24px 0 26px; max-width: 900px; }
.immersion-contenu h2 .fort { color: var(--or-clair); white-space: nowrap; }
.immersion-contenu p { color: #E2DCD0; max-width: 520px; margin: 0 0 36px; font-size: 18px; }
.immersion-contenu .adresse { margin-top: 44px; display: flex; gap: 40px; flex-wrap: wrap; font-size: 14.5px; color: #CFC6B5; }
.immersion-contenu .adresse b { display: block; color: var(--blanc); font-weight: 600; margin-bottom: 4px; }
.immersion:not(.is-fini) .immersion-contenu { pointer-events: none; }
.immersion-indice { position: absolute; bottom: 34px; left: 50%; transform: translateX(-50%); font-size: 13px; color: var(--gris); opacity: calc(1 - var(--e) * 3); display: flex; flex-direction: column; align-items: center; gap: 10px; }
.immersion-indice::after { content: ""; width: 1px; height: 34px; background: linear-gradient(var(--or-texte), transparent); animation: goutte 2.4s var(--ease) infinite; }

/* ===== Services : bento ===== */
.bento { display: grid; grid-template-columns: 1.05fr 1fr 1fr; grid-template-rows: auto auto; gap: 20px; }
.carte { position: relative; background: var(--ivoire); border-radius: 22px; padding: 38px 36px; display: flex; flex-direction: column; transition: transform .6s var(--ease), box-shadow .6s var(--ease), background .4s; }
.carte:hover { transform: translateY(-6px); box-shadow: 0 30px 60px -36px rgba(27,25,21,.35); }
.carte .ico { width: 56px; height: 56px; border-radius: 50%; background: var(--blanc); color: var(--or-texte); display: inline-flex; align-items: center; justify-content: center; box-shadow: inset 0 0 0 1px #E3D3B3; transition: transform .6s var(--ease); }
.carte:hover .ico { transform: rotate(-8deg) scale(1.06); }
.carte .ico svg { width: 26px; height: 26px; }
.carte h3 { font-size: 24px; font-weight: 500; letter-spacing: -.015em; margin: 26px 0 10px; }
.carte p { margin: 0; color: var(--gris); font-size: 15.5px; max-width: 420px; }
.carte .detail { margin-top: auto; padding-top: 26px; font-size: 13.5px; font-weight: 600; color: var(--or-texte); }
.carte--hotline { grid-row: 1 / 3; background: var(--noir); color: var(--blanc); overflow: hidden; isolation: isolate; }
.carte--hotline::before { content: ""; position: absolute; inset: auto -30% -40% auto; width: 420px; height: 420px; z-index: -1; background: radial-gradient(closest-side, rgba(185,147,79,.32), rgba(185,147,79,0)); transition: transform 1.2s var(--ease); }
.carte--hotline:hover::before { transform: translate(-40px, -40px); }
.carte--hotline .ico { background: rgba(255,255,255,.06); color: var(--or-clair); box-shadow: inset 0 0 0 1px rgba(216,188,134,.35); }
.carte--hotline p { color: #CFC6B5; }
.carte--hotline h3 { font-size: 30px; }
.hotline-bas { margin-top: auto; padding-top: 60px; }
.hotline-tel { display: block; font-size: clamp(30px, 2.8vw, 42px); font-weight: 200; letter-spacing: -.03em; color: var(--blanc); text-decoration: none; margin-bottom: 10px; transition: color .3s; }
.hotline-tel:hover { color: var(--or-clair); }
.horaires { font-size: 14px; color: #B9B1A3; }
.carte--large { grid-column: 2 / 4; flex-direction: row; gap: 30px; align-items: stretch; padding-right: 0; padding-top: 0; padding-bottom: 0; overflow: hidden; }
.carte--large > div:first-child { display: flex; flex-direction: column; padding: 38px 0; flex: 1; }
.carte-img { flex: 0 0 38%; background: var(--blanc); margin: 14px; border-radius: 16px; overflow: hidden; display: flex; align-items: center; justify-content: center; }
.carte-img img { width: 100%; height: 100%; max-height: 300px; object-fit: contain; padding: 22px; transition: transform 1s var(--ease); }
.carte--large:hover .carte-img img { transform: scale(1.05); }

/* ===== Boutique bientôt disponible ===== */
.boutique { display: grid; grid-template-columns: .9fr 1.1fr; gap: 70px; align-items: center; }
.boutique h2 { font-size: clamp(38px, 4.4vw, 64px); line-height: 1.03; font-weight: 300; letter-spacing: -.03em; margin: 22px 0 24px; }
.boutique h2 .fort { color: var(--or-clair); }
.boutique-txt > p { color: #CFC6B5; max-width: 480px; margin: 0 0 34px; }
.alerte label, .footer-lettre label { display: block; font-size: 14px; font-weight: 600; margin-bottom: 12px; color: var(--blanc); }
.alerte-champ { display: flex; align-items: center; gap: 6px; padding: 6px; border-radius: 999px; background: var(--blanc); border: 1px solid var(--pierre); max-width: 480px; }
.alerte-champ input { flex: 1; min-width: 0; border: 0; background: transparent; font: inherit; font-size: 15px; padding: 0 16px; height: 46px; color: inherit; }
.alerte-champ input:focus { outline: none; }
.alerte-champ:focus-within { border-color: var(--or); box-shadow: 0 0 0 3px rgba(185,147,79,.25); }
.alerte-champ--sombre { background: rgba(255,255,255,.05); border-color: rgba(255,255,255,.14); color: var(--blanc); }
.alerte-champ--sombre input::placeholder { color: #8E877A; }
.alerte-champ .btn { min-height: 46px; padding: 0 22px; }
.alerte-champ button[aria-label] { width: 44px; height: 44px; border-radius: 50%; background: var(--or-bouton); color: #fff; display: inline-flex; align-items: center; justify-content: center; flex: 0 0 44px; transition: background .3s, transform .3s var(--ease); }
.alerte-champ button[aria-label]:hover { background: var(--or-bouton-hover); transform: translateX(2px); }
.alerte-champ button[aria-label] svg { width: 18px; height: 18px; }
.vitrine { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.produit { background: var(--noir-2); border: 1px solid rgba(255,255,255,.07); border-radius: 18px; padding: 12px 12px 20px; display: flex; flex-direction: column; transition: transform .6s var(--ease), border-color .4s; }
.produit:nth-child(2) { transform: translateY(34px); }
.produit:hover { border-color: rgba(216,188,134,.4); }
.p-img { aspect-ratio: 4 / 5; border-radius: 12px; overflow: hidden; margin-bottom: 18px; background: var(--noir-3); }
.p-img img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--ease); }
.produit:hover .p-img img { transform: scale(1.06); }
.p-cat { font-size: 12.5px; color: var(--or-clair); font-weight: 600; padding: 0 8px; }
.produit b { font-weight: 500; font-size: 16px; line-height: 1.35; padding: 6px 8px 0; color: var(--blanc); }
.p-prix { margin: 14px 8px 0; padding-top: 12px; border-top: 1px dashed rgba(255,255,255,.14); font-size: 13px; color: #9C9486; }

/* ===== Footer enrichi ===== */
.footer { padding-top: 0; }
.footer .haut { grid-template-columns: 1.5fr repeat(4, minmax(0, 1fr)); padding-top: 70px; }
.footer-marque p { margin: 0 0 30px; max-width: 320px; }
.footer-lettre { max-width: 360px; }
.footer-lettre label { font-weight: 500; color: #CFC6B5; font-size: 13.5px; }
.footer .titre { display: flex; align-items: center; gap: 2px; }
.footer .coord li { line-height: 1.55; }
.reseaux { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 18px; }
.reseaux a { font-size: 13px; border: 1px solid rgba(255,255,255,.14); border-radius: 999px; padding: 6px 14px; transition: border-color .3s, color .3s; }
.reseaux a:hover { border-color: var(--or-clair); }

.footer .bas { align-items: center; }
.bas-liens { display: flex; gap: 22px; flex-wrap: wrap; }

@media (max-width: 1180px) {
  .bento { grid-template-columns: 1fr 1fr; }
  .carte--hotline { grid-row: auto; grid-column: 1 / -1; }
  .carte--large { grid-column: 1 / -1; }
  .boutique { grid-template-columns: 1fr; gap: 60px; }
  .footer .haut { grid-template-columns: 1fr 1fr 1fr; }
  .footer-marque { grid-column: 1 / -1; }
}
@media (max-width: 860px) {
  .header .compte { display: none; }
  .immersion { height: 240vh; }
  .immersion-cadre { clip-path: inset(calc(var(--e-inv) * 30%) calc(var(--e-inv) * 12%) round calc(var(--e-inv) * 20px)); }
  .immersion-mots { flex-direction: column; justify-content: center; gap: calc(44vh - var(--e) * 10vh); padding: 0 22px; text-align: center; }
  .immersion-mots .mot-g { transform: translateY(calc(var(--e) * -20vh)); }
  .immersion-mots .mot-d { transform: translateY(calc(var(--e) * 20vh)); }
  .immersion-cadre::after { background: linear-gradient(0deg, rgba(14,13,11,.92) 10%, rgba(14,13,11,.55) 60%, rgba(14,13,11,.35) 100%); }
  .immersion-contenu p { font-size: 16.5px; }
  .immersion-contenu h2 .fort { white-space: normal; }
  .bento { grid-template-columns: 1fr; }
  .carte { padding: 30px 26px; }
  .carte--large { flex-direction: column; padding: 0; }
  .carte--large > div:first-child { padding: 30px 26px 0; }
  .carte-img { flex-basis: auto; height: 220px; }
  .vitrine { grid-template-columns: 1fr 1fr; }
  .vitrine .produit:nth-child(3) { display: none; }
  .produit:nth-child(2) { transform: none; }
  .alerte-champ--large { flex-direction: column; border-radius: 20px; align-items: stretch; }
  .alerte-champ--large input { height: 50px; }
  .alerte-champ .btn { width: 100%; }
    .footer .haut { grid-template-columns: 1fr 1fr; }
  .footer .bas { flex-direction: column; align-items: flex-start; }
}
@media (prefers-reduced-motion: reduce) {
  .immersion { height: auto; }
  .immersion-scene { position: relative; height: auto; min-height: 100vh; --e: 1; --t: 1; }
  .immersion-mots, .immersion-indice { display: none; }
}
.nav-btn, .header .btn { white-space: nowrap; }
.nav { flex-wrap: nowrap; }
@media (max-width: 1320px) and (min-width: 1181px) { .header .compte { display: none; } .header > .wrap { gap: 18px; } .header .wrap .nav-btn { padding-left: 9px; padding-right: 9px; font-size: 14.5px; } }

/* ===== Footer : Monaco en direct ===== */
.visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.footer-live { display: grid; grid-template-columns: 1.1fr .9fr; gap: 60px; align-items: stretch; padding: 90px 0 80px; border-bottom: 1px solid rgba(255,255,255,.08); }
.live-heure { margin: 26px 0 30px; font-size: clamp(38px, 4.6vw, 70px); font-weight: 200; letter-spacing: -.035em; line-height: 1.02; color: var(--blanc); }
.live-heure time { font-variant-numeric: tabular-nums; color: var(--blanc); font-weight: 300; }
.live-heure .fort { color: var(--or-clair); }
.live-statuts { list-style: none; margin: 0 0 38px; padding: 0; display: grid; gap: 14px; }
.statut { display: flex; align-items: flex-start; gap: 14px; font-size: 15.5px; color: #D3CBBD; margin: 0; }
.statut i { flex: 0 0 10px; height: 10px; margin-top: 7px; border-radius: 50%; background: #5E584E; position: relative; }
.statut[data-etat="ouvert"] i { background: #7FBF8E; }
.statut[data-etat="ouvert"] i::after { content: ""; position: absolute; inset: -5px; border-radius: 50%; border: 1px solid #7FBF8E; animation: pouls 2.2s var(--ease) infinite; }
.statut[data-etat="pause"] i { background: var(--or-clair); }
.statut[data-etat="ferme"] i { background: #8E877A; }
.statut[data-etat="info"] i { background: transparent; box-shadow: inset 0 0 0 1.5px var(--or); }
@keyframes pouls { from { transform: scale(.6); opacity: 1; } to { transform: scale(1.6); opacity: 0; } }
.live-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.live-carte { position: relative; display: block; border-radius: 24px; overflow: hidden; min-height: 380px; color: var(--blanc); isolation: isolate; }
.live-carte img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transform: scale(1.04); transition: transform 1.6s var(--ease); z-index: -2; }
.live-carte::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(8,8,7,.1) 30%, rgba(8,8,7,.85) 100%); }
.live-carte:hover img { transform: scale(1.1); }
.coord-gps { position: absolute; top: 20px; left: 20px; font-size: 12.5px; font-weight: 600; letter-spacing: .02em; background: rgba(8,8,7,.55); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); border: 1px solid rgba(255,255,255,.18); border-radius: 999px; padding: 6px 12px; font-variant-numeric: tabular-nums; }
.live-adresse { position: absolute; left: 26px; right: 26px; bottom: 24px; font-size: 14.5px; color: #E2DCD0; line-height: 1.5; }
.live-adresse b { display: block; font-size: 22px; font-weight: 500; color: var(--blanc); letter-spacing: -.01em; }
.itineraire { display: flex; width: fit-content; align-items: center; gap: 6px; margin-top: 14px; font-weight: 600; color: var(--or-clair); border-bottom: 1px solid currentColor; padding-bottom: 2px; }
.itineraire svg { width: 15px; height: 15px; transition: transform .4s var(--ease); }
.live-carte:hover .itineraire svg { transform: translate(3px, -3px); }
.footer .bas { position: relative; }
.haut-de-page { position: relative; width: 52px; height: 52px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; color: var(--blanc); flex: 0 0 52px; transition: transform .4s var(--ease); }
.haut-de-page:hover { transform: translateY(-4px); color: var(--or-clair); }
.anneau { position: absolute; inset: 0; width: 100%; height: 100%; transform: rotate(-90deg); }
.anneau circle { fill: none; stroke: rgba(255,255,255,.14); stroke-width: 1.5; }
.anneau .anneau-prog { stroke: var(--or); stroke-dasharray: 138.2; stroke-dashoffset: 138.2; transition: stroke-dashoffset .2s linear; }
.fleche-haut { width: 18px; height: 18px; }
@media (max-width: 1180px) { .footer-live { grid-template-columns: 1fr; gap: 44px; } .live-carte { min-height: 320px; } }
@media (max-width: 860px) { .footer-live { padding: 64px 0 56px; } .live-actions .btn { width: 100%; } .live-carte { min-height: 280px; } .footer .bas .haut-de-page { position: absolute; right: 0; top: 24px; } }
@media (prefers-reduced-motion: reduce) { .statut i::after { animation: none; } }

/* ===== Typographie alignée sur le logo : Archivo large, fin et noir ===== */
h1, h2, .live-heure, .immersion-mots, .chiffre b, .hotline-tel, .contact .tel, .date b, .footer-tel { font-stretch: 125%; letter-spacing: -.025em; }
h1, h2 { font-weight: 300; }
.hero h1 { font-size: clamp(40px, 5.2vw, 78px); }
.hero h1 .fort { font-size: 1em; letter-spacing: -.02em; margin-top: 4px; }
.titre-sec h2, .contact h2, .boutique h2 { font-size: clamp(32px, 3.7vw, 56px); line-height: 1.08; }
.immersion-contenu h2 { font-size: clamp(36px, 4.6vw, 70px); }
.live-heure { font-size: clamp(32px, 3.8vw, 58px); }
.immersion-mots { font-size: clamp(24px, 3vw, 48px); }
.immersion-mots .mot-d { font-size: 1em; }
h3, .mega-titre a, .metier h3, .carte h3, .evenement h3 { font-stretch: 110%; letter-spacing: -.01em; }
.marques span { font-stretch: 112%; }
.marques span.fort { font-size: 22px; }
.btn, .nav-btn { font-stretch: 105%; }
.header .btn, .header .nav-btn { font-stretch: 100%; }
.phare .sous.fort { font-size: clamp(20px, 1.9vw, 27px); font-weight: 700; }
.fort { font-weight: 750; }

/* ===== Header et footer en pleine largeur ===== */
.topbar .wrap, .header > .wrap, .footer > .wrap { max-width: none; }

/* ===== v4 : catalogue, financement, Open CAD-CAM Days, maison, avis ===== */
.liens-top .lien-catalogue { color: var(--or-clair); font-weight: 600; }
.titre-cote { display: flex; flex-direction: column; align-items: flex-start; gap: 22px; max-width: 420px; }
.titre-cote p { margin: 0; color: var(--gris); }
.btn--contour { border: 1px solid var(--encre); color: var(--encre); min-height: 48px; padding: 0 22px; font-size: 14.5px; }
.btn--contour:hover { background: var(--encre); color: var(--blanc); }
.btn--contour:hover svg { transform: translateY(2px); }

.financement { margin-top: 70px; display: flex; align-items: center; gap: 26px; padding: 26px 30px; border-radius: 20px; background: var(--noir-2); border: 1px solid rgba(216,188,134,.22); }
.fin-ico { flex: 0 0 54px; height: 54px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; color: var(--or-clair); background: rgba(216,188,134,.08); }
.fin-ico svg { width: 26px; height: 26px; }
.fin-txt { flex: 1; display: flex; flex-direction: column; gap: 4px; color: #CFC6B5; font-size: 15.5px; }
.fin-txt b { color: var(--blanc); font-size: 19px; font-weight: 600; font-stretch: 110%; }
.lien--clair { color: var(--or-clair); white-space: nowrap; }

.days-liste { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 12px 30px; max-width: 560px; color: #D3CBBD; font-size: 15px; }
.days-liste li { position: relative; padding-left: 20px; }
.days-liste li::before { content: ""; position: absolute; left: 0; top: .62em; width: 8px; height: 8px; border-radius: 50%; box-shadow: inset 0 0 0 1.5px var(--or); }
.galerie { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); grid-auto-rows: 150px; gap: 16px; }
.galerie figure { position: relative; margin: 0; border-radius: 18px; overflow: hidden; background: var(--noir-3); }
.galerie img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.4s var(--ease); }
.galerie figure:hover img { transform: scale(1.05); }
.galerie figcaption { position: absolute; left: 16px; bottom: 16px; font-size: 13px; font-weight: 600; color: var(--blanc); background: rgba(14,13,11,.6); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); padding: 6px 12px; border-radius: 999px; }
.g1 { grid-column: span 7; grid-row: span 3; }
.g2 { grid-column: span 5; grid-row: span 3; }
.g3 { grid-column: span 4; grid-row: span 2; }
.g4 { grid-column: span 4; grid-row: span 2; }
.g5 { grid-column: span 4; grid-row: span 2; }
.g6 { display: none; }

.maison { display: grid; grid-template-columns: 1.15fr 1fr; gap: 70px; align-items: center; }
.maison-photo { position: relative; border-radius: 22px; overflow: hidden; }
.maison-photo img { width: 100%; display: block; aspect-ratio: 3 / 2; object-fit: cover; }
.maison-legende { position: absolute; left: 18px; bottom: 18px; right: 18px; width: fit-content; font-size: 13px; color: var(--blanc); background: rgba(14,13,11,.62); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); padding: 7px 14px; border-radius: 999px; }
.maison-txt h2 { margin: 22px 0 22px; }
.maison-txt > p { color: var(--gris); margin: 0 0 30px; }
.maison-faits { margin: 0 0 30px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.maison-faits div { background: var(--blanc); border-radius: 16px; padding: 18px; }
.maison-faits dt { font-size: 22px; font-weight: 700; font-stretch: 120%; color: var(--or-texte); letter-spacing: -.02em; line-height: 1.1; }
.maison-faits dd { margin: 6px 0 0; font-size: 13.5px; color: var(--gris); line-height: 1.45; }
.label-accueil { display: flex; align-items: center; gap: 18px; padding: 14px 18px 14px 14px; background: var(--blanc); border-radius: 16px; }
.label-accueil img { width: 92px; height: auto; flex: 0 0 92px; }
.label-accueil p { margin: 0; font-size: 13.5px; color: var(--gris); line-height: 1.5; }
.label-accueil b { display: block; color: var(--encre); font-size: 15px; margin-bottom: 2px; }

.avis-sec { overflow: hidden; }
.note-google { display: flex; align-items: center; gap: 16px; }
.note-google > b { font-size: 56px; font-weight: 300; font-stretch: 125%; letter-spacing: -.03em; line-height: 1; }
.note-google span { display: block; font-size: 14px; color: var(--gris); margin-top: 4px; }
.etoiles { display: inline-flex; gap: 2px; color: var(--or); }
.etoiles svg { width: 16px; height: 16px; fill: currentColor; }
.avis-defile { overflow: hidden; margin: 0 0 40px; -webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); }
.avis-piste { display: flex; width: max-content; animation: defile 70s linear infinite; }
.avis-defile:hover .avis-piste { animation-play-state: paused; }
.avis-carte { width: 380px; margin: 0 20px 0 0; padding: 30px; background: var(--ivoire); border-radius: 20px; display: flex; flex-direction: column; gap: 18px; }
.avis-carte blockquote { margin: 0; font-size: 16px; line-height: 1.6; color: var(--encre); flex: 1; }
.avis-carte figcaption b { display: block; font-size: 15px; }
.avis-carte figcaption span { font-size: 13px; color: var(--or-texte); font-weight: 600; }
.intl { font-size: 14px; color: var(--gris); margin: -6px 0 16px; }

@media (max-width: 1180px) {
  .maison { grid-template-columns: 1fr; gap: 50px; }
  .days-liste { grid-template-columns: 1fr; }
}
@media (max-width: 860px) {
  .financement { flex-direction: column; align-items: flex-start; margin-top: 50px; padding: 24px; }
  .galerie { grid-auto-rows: 120px; gap: 10px; }
  .g1 { grid-column: span 12; grid-row: span 2; }
  .g2, .g3 { grid-column: span 6; grid-row: span 2; }
  .g4, .g5 { grid-column: span 6; grid-row: span 1; }
  .maison-faits { grid-template-columns: 1fr; }
  .avis-carte { width: 300px; padding: 24px; }
  .note-google > b { font-size: 44px; }
}
@media (prefers-reduced-motion: reduce) { .avis-piste { animation: none; } .avis-defile { overflow-x: auto; } }
.maison-txt h2 { font-size: clamp(32px, 3.7vw, 56px); line-height: 1.08; }
.label-accueil img { width: 120px; flex-basis: 120px; }

/* =====================================================================
   Thème WordPress : composants ajoutés à la maquette
   ===================================================================== */
.screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
main:focus { outline: none; }
.nav-principale { height: 100%; margin-left: auto; }
.chaine { list-style: none; margin: 0; padding: 0; }
.etape h3 a { text-decoration: none; color: inherit; }
.etape h3 a:hover { color: var(--or-texte); }
.contact-intro { color: #CFC6B5; max-width: 460px; }
.section--court { padding: var(--pad-section-court) 0; }
.section-suite { margin: 40px 0 0; }
.vide { padding: 40px; border-radius: var(--rayon); background: var(--ivoire); color: var(--gris); text-align: center; margin: 0; }
.section--ivoire .vide { background: var(--blanc); }
.nav-btn[aria-current="page"] { color: var(--blanc); background: rgba(255,255,255,.07); }

/* Méga menu : éléments générés par WordPress */
a.mega-photo { display: block; }
.mega-col li a.mega-tout { justify-content: flex-start; gap: 8px; color: var(--or-texte); font-weight: 600; }
.mega-col li a.mega-tout svg { width: 16px; height: 16px; }
.mega-une__titre { font-size: 22px; line-height: 1.2; margin: 0 0 8px; font-weight: 600; font-stretch: 110%; letter-spacing: -.01em; color: var(--blanc); }
.mega-une .txt p:not(.mega-une__titre) { color: #CFC6B5; font-size: 14.5px; margin: 0 0 18px; }

/* Recherche */
.recherche { position: fixed; inset: 0 0 auto 0; z-index: 120; background: var(--noir); border-bottom: 1px solid rgba(255,255,255,.1); padding: 28px 0; box-shadow: 0 30px 60px -20px rgba(0,0,0,.6); }
.recherche[hidden] { display: none; }
.recherche-form { display: flex; align-items: center; gap: 12px; background: var(--noir-2); border: 1px solid rgba(255,255,255,.14); border-radius: 999px; padding: 6px 6px 6px 22px; color: #E9E3D8; }
.recherche-form > svg { width: 20px; height: 20px; flex: none; opacity: .7; }
.recherche-form input[type="search"] { flex: 1; min-width: 0; font: inherit; font-size: 17px; color: var(--blanc); background: transparent; border: 0; padding: 12px 4px; }
.recherche-form input[type="search"]:focus { outline: none; }
.recherche-form:focus-within { border-color: var(--or); }
.recherche-form .btn { min-height: 46px; }
.recherche-form--page { background: var(--ivoire); border-color: var(--pierre); color: var(--encre); margin-bottom: 50px; max-width: 760px; }
.recherche-form--page input[type="search"] { color: var(--encre); }
.page-hero .recherche-form--page { background: var(--noir-2); border-color: rgba(255,255,255,.14); color: #E9E3D8; margin: 10px 0 0; }
.page-hero .recherche-form--page input[type="search"] { color: var(--blanc); }

/* Bandeau des pages intérieures */
.page-hero { position: relative; background: var(--noir); color: var(--blanc); overflow: hidden; padding: 70px 0 90px; }
.page-hero::before { content: ""; position: absolute; right: -10%; top: -40%; width: 60%; aspect-ratio: 1; border-radius: 50%; background: radial-gradient(closest-side, rgba(185,147,79,.16), rgba(185,147,79,0)); pointer-events: none; }
.page-hero .wrap { position: relative; }
.page-hero__titre { font-size: clamp(36px, 4.6vw, 68px); line-height: 1.04; font-weight: 300; font-stretch: 125%; letter-spacing: -.03em; margin: 22px 0 22px; max-width: 980px; }
.page-hero__titre .fort { color: var(--or-clair); }
.page-hero .chapo { font-size: 18.5px; line-height: 1.6; color: #D9D2C5; max-width: 640px; margin: 0 0 34px; }
.page-hero .chapo p { margin: 0 0 10px; }
.page-hero--image .page-hero__img { position: absolute; inset: 0 0 0 45%; }
.page-hero--image .page-hero__img img { width: 100%; height: 100%; object-fit: cover; }
.page-hero--image .page-hero__img::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, var(--noir) 0%, rgba(14,13,11,.5) 50%, rgba(14,13,11,.2) 100%); }
.page-hero--merci, .page-hero--404 { padding: 110px 0 120px; }
.merci-type { color: var(--or-clair); margin: -10px 0 30px; }

/* Barre Retour + fil d'Ariane */
.ariane-barre { display: flex; align-items: center; gap: 10px 18px; flex-wrap: wrap; }
.retour { display: inline-flex; align-items: center; gap: 8px; min-height: 40px; padding: 0 16px 0 12px; border: 1px solid rgba(27,25,21,.16); border-radius: 999px; font-size: 13.5px; font-weight: 600; color: var(--encre); text-decoration: none; background: var(--blanc); transition: border-color .25s, color .25s, background .25s; flex: none; max-width: 100%; }
.retour svg { width: 16px; height: 16px; flex: none; transition: transform .3s var(--ease); }
.retour:hover { border-color: var(--or-texte); color: var(--or-texte); }
.retour:hover svg { transform: translateX(-3px); }
.retour__txt { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 34ch; }
.retour__dest { font-weight: 400; }
.ariane-barre--clair .retour { color: var(--blanc); background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.22); }
.ariane-barre--clair .retour:hover { color: var(--or-clair); border-color: var(--or-clair); }
.ariane-barre .ariane { min-width: 0; flex: 1 1 auto; }
.fiche .ariane-barre { margin-bottom: 34px; }
.fiche .ariane-barre .ariane { margin-bottom: 0; }
@media (max-width: 768px) {
  .ariane-barre { flex-wrap: nowrap; gap: 12px; }
  .retour__dest { display: none; }
  .ariane-barre .ariane ol { flex-wrap: nowrap; overflow-x: auto; white-space: nowrap; scrollbar-width: none; -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 28px); mask-image: linear-gradient(90deg, transparent 0, #000 28px); padding-left: 4px; }
  .ariane-barre .ariane ol::-webkit-scrollbar { display: none; }
  .ariane-barre .ariane li { flex: none; }
  .fiche .ariane-barre { margin-bottom: 22px; }
}

/* Fil d'Ariane */
.ariane ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px 0; font-size: 13.5px; color: var(--gris); }
.ariane li { display: inline-flex; align-items: center; }
.ariane li + li::before { content: ""; width: 5px; height: 5px; border-top: 1.5px solid currentColor; border-right: 1.5px solid currentColor; transform: rotate(45deg); margin: 0 12px 0 8px; opacity: .55; }
.ariane a { text-decoration: none; color: inherit; }
.ariane a:hover { color: var(--or-texte); }
.ariane [aria-current] { color: var(--encre); font-weight: 600; }
.ariane--clair ol { color: #B9B1A3; }
.ariane--clair a:hover { color: var(--or-clair); }
.ariane--clair [aria-current] { color: var(--blanc); }

/* Contenu éditorial (éditeur de blocs) */
.contenu { max-width: 860px; }
.contenu > *:first-child { margin-top: 0; }
.contenu h2 { font-size: clamp(28px, 2.8vw, 40px); line-height: 1.1; font-weight: 300; font-stretch: 125%; letter-spacing: -.025em; margin: 56px 0 18px; }
.contenu h3 { font-size: 22px; font-weight: 600; font-stretch: 110%; margin: 36px 0 12px; }
.contenu p, .contenu li { color: #3E3A33; }
.contenu a { color: var(--or-texte); text-underline-offset: 3px; }
.contenu ul, .contenu ol { padding-left: 1.2em; }
.contenu li { margin-bottom: 8px; }
.contenu li::marker { color: var(--or-texte); }
.contenu img { border-radius: 12px; }
.contenu blockquote { margin: 30px 0; padding: 4px 0 4px 26px; border-left: 2px solid var(--or); font-size: 20px; color: var(--encre); }
.contenu table { width: 100%; border-collapse: collapse; font-size: 15px; }
.contenu th, .contenu td { padding: 12px 14px; border-bottom: 1px solid var(--pierre); text-align: left; }
.contenu--lead > p:first-child { font-size: 21px; line-height: 1.6; color: var(--encre); }
.section--noir .contenu p, .section--noir .contenu li { color: #CFC6B5; }
.article-meta { font-size: 14px; color: var(--gris); margin: 0 0 30px; }
.article-visuel { margin: 0 0 40px; border-radius: 16px; overflow: hidden; }

/* Cartes produit et grilles */
.grille-produits { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.carte-produit { position: relative; display: flex; flex-direction: column; background: var(--blanc); border-radius: var(--rayon); overflow: hidden; border: 1px solid #EFEAE0; transition: transform .5s var(--ease), box-shadow .5s var(--ease), border-color .5s; }
.section--ivoire .carte-produit { border-color: transparent; }
.carte-produit:hover { transform: translateY(-5px); box-shadow: 0 30px 60px -30px rgba(27,25,21,.35); }
.carte-produit__media { display: block; aspect-ratio: 4 / 3; background: #fff; overflow: hidden; }
.carte-produit__media img { width: 100%; height: 100%; object-fit: contain; padding: 18px; transition: transform .9s var(--ease); }
.carte-produit:hover .carte-produit__media img { transform: scale(1.05); }
.carte-produit__vide { display: block; width: 100%; height: 100%; background: linear-gradient(135deg, #F3F1EC, #E6DECF); }
.carte-produit__corps { padding: 22px 24px 26px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.carte-produit__marque { font-size: 13px; font-weight: 600; color: var(--or-texte); }
.carte-produit__titre { font-size: 22px; line-height: 1.2; font-weight: 500; font-stretch: 110%; letter-spacing: -.01em; margin: 0; }
.carte-produit__titre a { text-decoration: none; color: var(--encre); }
.carte-produit__titre a::after { content: ""; position: absolute; inset: 0; }
.carte-produit__texte { margin: 0; font-size: 15px; color: var(--gris); line-height: 1.55; }
.carte-produit__tags { list-style: none; display: flex; flex-wrap: wrap; gap: 6px; margin: 4px 0 0; padding: 0; }
.carte-produit__tags li { font-size: 12px; color: var(--gris); background: var(--ivoire); border-radius: 999px; padding: 3px 10px; }
.section--ivoire .carte-produit__tags li { background: #F3EEE4; }
.carte-produit__prix { margin: 4px 0 0; font-weight: 600; }
.carte-produit__cta { margin-top: auto; padding-top: 12px; display: inline-flex; align-items: center; gap: 8px; font-weight: 600; font-size: 14.5px; color: var(--or-texte); }
.carte-produit__cta svg { width: 17px; height: 17px; transition: transform .4s var(--ease); }
.carte-produit:hover .carte-produit__cta svg { transform: translateX(5px); }
.carte-produit:focus-within { outline: 2px solid var(--or-texte); outline-offset: 3px; }
.carte-produit__titre a:focus-visible { outline: none; }

/* Sous-familles */
.familles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.famille { display: grid; grid-template-columns: 110px 1fr auto; align-items: center; gap: 20px; padding: 14px 22px 14px 14px; border-radius: var(--rayon); background: var(--ivoire); text-decoration: none; color: var(--encre); transition: background .4s var(--ease), transform .4s var(--ease); }
.famille:hover { background: var(--pierre); transform: translateY(-3px); }
.famille__img { aspect-ratio: 4 / 3; border-radius: 10px; overflow: hidden; background: #fff; }
.famille__img img { width: 100%; height: 100%; object-fit: contain; padding: 8px; }
.famille__txt { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; }
.famille__txt b { font-size: 18px; font-weight: 600; font-stretch: 110%; }
.famille__nb { font-size: 13px; color: var(--gris); }
.famille .rond { border-color: rgba(27,25,21,.2); width: 42px; height: 42px; }
.famille:hover .rond { background: var(--or-texte); border-color: var(--or-texte); color: #fff; }

/* Barre du catalogue et filtres */
.catalogue { padding-top: 70px; }
.catalogue-barre { display: flex; justify-content: space-between; align-items: center; gap: 20px; flex-wrap: wrap; margin-bottom: 34px; padding-bottom: 22px; border-bottom: 1px solid var(--pierre); }
.catalogue-titre { font-size: 26px; font-weight: 300; font-stretch: 125%; letter-spacing: -.02em; margin: 0; }
.filtres { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.filtres__label { font-size: 13.5px; color: var(--gris); margin-right: 6px; }
.filtre { display: inline-flex; align-items: center; min-height: 40px; padding: 0 16px; border-radius: 999px; border: 1px solid var(--pierre); font-size: 14px; font-weight: 500; text-decoration: none; color: var(--encre); transition: border-color .3s, background .3s; }
.filtre:hover { border-color: var(--or-texte); }
.filtre.est-actif { background: var(--encre); border-color: var(--encre); color: var(--blanc); }
.bandeau-bientot { margin-top: 30px; }

/* Pagination */
.navigation.pagination { margin-top: 50px; }
.nav-links { display: flex; flex-wrap: wrap; gap: 8px; }
.nav-links .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 0 14px; border-radius: 999px; border: 1px solid var(--pierre); text-decoration: none; font-weight: 500; }
.nav-links .page-numbers.current { background: var(--encre); color: var(--blanc); border-color: var(--encre); }

/* Comparatif */
.comparatif { background: var(--blanc); }
.comparatif__scroll { overflow-x: auto; border-radius: var(--rayon); border: 1px solid var(--pierre); -webkit-overflow-scrolling: touch; }
.comparatif__table { width: 100%; min-width: 640px; border-collapse: separate; border-spacing: 0; font-size: 15px; }
.comparatif__table th, .comparatif__table td { padding: 16px 18px; text-align: left; vertical-align: top; border-bottom: 1px solid #EFEAE0; }
.comparatif__table thead th { background: var(--ivoire); vertical-align: bottom; font-weight: 600; min-width: 180px; }
.comparatif__table thead th img { width: 100%; max-width: 160px; aspect-ratio: 4 / 3; object-fit: contain; background: #fff; border-radius: 10px; padding: 8px; margin-bottom: 12px; }
.comparatif__table thead th a { color: var(--encre); text-decoration: none; font-size: 16.5px; font-stretch: 110%; }
.comparatif__table thead th a:hover { color: var(--or-texte); }
.comparatif__table tbody th { position: sticky; left: 0; z-index: 1; background: var(--blanc); font-weight: 600; color: var(--gris); font-size: 14px; width: 190px; min-width: 150px; }
.comparatif__table thead th:first-child { position: sticky; left: 0; z-index: 2; }
.comparatif__table .est-courant { background: #FBF7EF; }
.comparatif__table thead .est-courant { background: #F3EAD6; }
.comparatif__courant { display: block; margin-top: 6px; font-size: 12px; font-weight: 600; color: var(--or-texte); }
.comparatif__vide { color: var(--gris-clair); }
.comparatif__actions td, .comparatif__actions th { border-bottom: 0; }
.lien-fleche { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; font-size: 14px; color: var(--or-texte); text-decoration: none; }
.lien-fleche svg { width: 16px; height: 16px; }

/* Guide d'achat (texte SEO des catégories) */
.guide-grille { display: grid; grid-template-columns: 1fr 1.6fr; gap: 80px; align-items: start; }
.guide-grille h2 { font-size: clamp(30px, 3.2vw, 46px); line-height: 1.08; font-weight: 300; font-stretch: 125%; letter-spacing: -.025em; margin: 18px 0 0; }

/* Fiche produit */
.fiche { padding: 34px 0 110px; }
.fiche .ariane { margin-bottom: 34px; }
.fiche-grille { display: grid; grid-template-columns: 1.15fr 1fr; gap: 70px; align-items: start; }
.galerie-produit { position: sticky; top: 110px; }
.galerie-produit__principale { position: relative; aspect-ratio: 1 / 1; border-radius: 20px; background: #fff; border: 1px solid #EFEAE0; overflow: hidden; display: flex; align-items: center; justify-content: center; }
.galerie-produit__principale img { width: 100%; height: 100%; object-fit: contain; padding: 30px; transition: opacity .3s; }
.galerie-produit__principale .badge { position: absolute; left: 20px; bottom: 20px; background: rgba(14,13,11,.82); color: #fff; border-radius: 999px; padding: 8px 16px; font-size: 13px; }
.galerie-produit__vide { font-size: 24px; color: var(--gris-clair); }
.galerie-produit__vignettes { list-style: none; margin: 14px 0 0; padding: 0; display: flex; gap: 10px; flex-wrap: wrap; }
.galerie-produit__vignettes button { width: 76px; height: 76px; border-radius: 12px; border: 1px solid var(--pierre); background: #fff; overflow: hidden; padding: 6px; transition: border-color .3s; }
.galerie-produit__vignettes button img { width: 100%; height: 100%; object-fit: contain; }
.galerie-produit__vignettes button.est-actif, .galerie-produit__vignettes button:hover { border-color: var(--or-texte); }
.fiche-infos { display: flex; flex-direction: column; align-items: flex-start; }
.fiche-infos .pill { text-decoration: none; }
.fiche-titre { font-size: clamp(36px, 4vw, 60px); line-height: 1.02; font-weight: 300; font-stretch: 125%; letter-spacing: -.03em; margin: 20px 0 14px; }
.fiche-accroche { font-size: clamp(20px, 1.8vw, 25px); line-height: 1.25; color: var(--or-texte); margin: 0 0 18px; }
.fiche-resume { color: var(--gris); margin-bottom: 18px; }
.fiche-resume p { margin: 0 0 10px; }
.atouts--clair { width: 100%; border-top-color: var(--pierre); margin-bottom: 26px; }
.atouts--clair li { color: var(--encre); border-bottom-color: var(--pierre); }
.atouts--clair li span { color: var(--or-texte); }
.fiche-metiers { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0 0 28px; font-size: 14px; color: var(--gris); }
.fiche-cta { display: flex; flex-wrap: wrap; gap: 12px; }
.fiche-tel { margin: 16px 0 0; font-size: 15px; color: var(--gris); }
.fiche-tel a { color: var(--encre); font-weight: 600; text-decoration: none; }
.fiche-plus { list-style: none; margin: 30px 0 0; padding: 22px 0 0; border-top: 1px solid var(--pierre); width: 100%; display: grid; gap: 12px; font-size: 14.5px; color: var(--gris); }
.fiche-plus li { display: flex; align-items: center; gap: 12px; }
.fiche-plus svg { width: 20px; height: 20px; color: var(--or-texte); flex: none; }
.fiche-plus a { color: var(--encre); font-weight: 600; }
.fiche-achat { width: 100%; padding: 24px; border-radius: var(--rayon); background: var(--ivoire); }
.fiche-prix { font-size: 30px; font-weight: 300; font-stretch: 125%; margin: 0 0 16px; }
.fiche-prix span { font-size: 14px; color: var(--gris); font-stretch: 100%; }
.fiche-achat form.cart { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; }
.fiche-achat .quantity input { width: 80px; min-height: 52px; border-radius: 999px; border: 1px solid var(--pierre); text-align: center; font: inherit; }
.fiche-achat .single_add_to_cart_button { min-height: 52px; padding: 0 26px; border-radius: 999px; background: var(--or-bouton); color: #fff; font-weight: 600; }
.fiche-achat .single_add_to_cart_button:hover { background: var(--or-bouton-hover); }

.fiche-presentation__grille { display: grid; grid-template-columns: 1.3fr 1fr; gap: 70px; align-items: start; }
.fiche-presentation__grille > div:only-child { grid-column: 1 / -1; max-width: 860px; }
.fiche-presentation h2, .caracteristiques h2 { font-size: clamp(30px, 3.2vw, 46px); line-height: 1.08; font-weight: 300; font-stretch: 125%; letter-spacing: -.025em; margin: 18px 0 26px; }
.video-bloc { position: sticky; top: 110px; }
.video { position: relative; aspect-ratio: 16 / 9; border-radius: 22px; overflow: hidden; background: var(--noir); isolation: isolate; box-shadow: 0 30px 60px -30px rgba(0,0,0,.45); }
.video .video__poster { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transform-origin: 60% 40%; animation: video-respire 18s ease-in-out infinite alternate; transition: opacity .9s ease; }
@keyframes video-respire { from { transform: scale(1); } to { transform: scale(1.09) translate(-1.5%, 1%); } }
/* Aperçu en boucle : agrandi pour rogner les bords et tout habillage YouTube, jamais cliquable. */
.video__fond { position: absolute; inset: 0; z-index: 1; pointer-events: none; opacity: 0; transition: opacity 1.2s ease; overflow: hidden; }
.video__fond iframe { position: absolute; top: 50%; left: 50%; width: 100%; height: 100%; border: 0; transform: translate(-50%, -50%) scale(1.22); }
.video.is-lecture .video__fond { opacity: 1; }
.video.is-lecture .video__poster { opacity: 0; }
.video__voile { position: absolute; inset: 0; z-index: 2; pointer-events: none; background: linear-gradient(180deg, rgba(10,10,10,.05) 0%, rgba(10,10,10,0) 40%, rgba(10,10,10,.72) 100%); }
.video__badge { position: absolute; z-index: 3; top: 16px; left: 16px; display: inline-flex; align-items: center; gap: 8px; padding: 7px 13px; border-radius: 999px; background: rgba(10,10,10,.55); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); color: #fff; font-size: 12.5px; font-weight: 600; letter-spacing: .02em; }
.video__point { width: 7px; height: 7px; border-radius: 50%; background: var(--or-bouton); box-shadow: 0 0 0 0 rgba(166,124,46,.7); }
.video.is-lecture .video__point { animation: video-pouls 1.8s ease-out infinite; }
@keyframes video-pouls { to { box-shadow: 0 0 0 9px rgba(166,124,46,0); } }
.video__play { position: absolute; z-index: 3; left: 18px; bottom: 18px; display: inline-flex; align-items: center; gap: 12px; padding: 7px 20px 7px 7px; border-radius: 999px; background: rgba(10,10,10,.5); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); border: 1px solid rgba(255,255,255,.22); color: #fff; font-weight: 600; font-size: 15px; transition: background .3s, transform .4s var(--ease); }
.video__play::before { content: ""; position: absolute; inset: -400px; z-index: -1; } /* toute la vidéo est cliquable */
.video__rond { width: 46px; height: 46px; border-radius: 50%; background: var(--or-bouton); display: flex; align-items: center; justify-content: center; flex: none; transition: transform .4s var(--ease), background .3s; }
.video__rond svg { width: 18px; height: 18px; margin-left: 3px; fill: currentColor; }
.video:hover .video__play, .video__play:focus-visible { background: rgba(10,10,10,.68); }
.video:hover .video__rond { transform: scale(1.08); background: var(--or-bouton-hover); }
.video.is-plein .video__play, .video.is-plein .video__badge, .video.is-plein .video__voile { display: none; }
.video.is-plein > iframe { position: absolute; inset: 0; z-index: 4; width: 100%; height: 100%; border: 0; }
/* Fenêtre vidéo plein écran */
.video-modale { width: min(1180px, calc(100vw - 32px)); max-width: none; max-height: none; padding: 0; border: 0; background: transparent; overflow: visible; }
.video-modale::backdrop { background: rgba(8,8,8,.88); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.video-modale[open] { animation: video-entree .45s var(--ease); }
@keyframes video-entree { from { opacity: 0; transform: translateY(18px) scale(.97); } }
.video-modale__cadre { position: relative; aspect-ratio: 16 / 9; border-radius: 18px; overflow: hidden; background: #000; box-shadow: 0 40px 90px rgba(0,0,0,.6); }
.video-modale__cadre iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.video-modale__fermer { position: absolute; right: 0; top: -58px; width: 46px; height: 46px; border-radius: 50%; background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.3); color: #fff; display: flex; align-items: center; justify-content: center; transition: background .3s; }
.video-modale__fermer:hover { background: rgba(255,255,255,.25); }
.video-modale__fermer svg { width: 20px; height: 20px; }
html.modale-ouverte { overflow: hidden; }
@media (max-width: 600px) {
  .video__play { left: 12px; bottom: 12px; font-size: 14px; padding-right: 16px; }
  .video__rond { width: 40px; height: 40px; }
  .video__badge { top: 12px; left: 12px; }
  .video-modale { width: 100vw; }
  .video-modale__cadre { border-radius: 0; }
  .video-modale__fermer { right: 12px; }
}
@media (prefers-reduced-motion: reduce) { .video .video__poster { animation: none; } }

.caracteristiques__grille { display: grid; grid-template-columns: 1fr 1.5fr; gap: 80px; align-items: start; }
.caracteristiques__grille p { color: var(--gris); }
.specs { margin: 0; border-top: 1px solid var(--pierre); }
.specs > div { display: grid; grid-template-columns: minmax(140px, 1fr) 2fr; gap: 20px; padding: 16px 0; border-bottom: 1px solid var(--pierre); }
.specs dt { color: var(--gris); font-size: 14.5px; }
.specs dd { margin: 0; font-weight: 500; }

.cta-collant { display: none; }

/* Sélection par métier */
.selection-groupe + .selection-groupe { margin-top: 64px; }
.selection-tete { display: flex; justify-content: space-between; align-items: baseline; gap: 20px; flex-wrap: wrap; margin-bottom: 24px; }
.selection-tete h3 { font-size: 28px; font-weight: 300; font-stretch: 125%; letter-spacing: -.02em; margin: 0; }

/* Étapes de projet (page Services) */
.etapes-projet { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 18px; }
.etapes-projet li { background: var(--blanc); border-radius: var(--rayon); padding: 26px 24px 28px; }
.etapes-projet .num { font-size: 13px; font-weight: 600; color: var(--or-texte); }
.etapes-projet h3 { font-size: 20px; font-weight: 600; font-stretch: 110%; margin: 14px 0 8px; }
.etapes-projet p { margin: 0; font-size: 15px; color: var(--gris); }

/* FAQ */
.faq { display: grid; grid-template-columns: 1fr 1.6fr; gap: 80px; align-items: start; }
.faq .titre-sec { margin: 0; }
.faq-liste { border-top: 1px solid var(--pierre); }
.faq-item { border-bottom: 1px solid var(--pierre); }
.faq-item summary { list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 22px 0; font-size: 18px; font-weight: 500; font-stretch: 110%; cursor: pointer; min-height: 44px; }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary svg { width: 20px; height: 20px; flex: none; color: var(--or-texte); transition: transform .35s var(--ease); }
.faq-item[open] summary svg { transform: rotate(180deg); }
.faq-reponse { padding: 0 0 22px; color: var(--gris); max-width: 720px; }
.faq-reponse p { margin: 0 0 10px; }

/* Plan du site */
.plan { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 40px; }
.plan h2 { font-size: 22px; font-weight: 600; font-stretch: 110%; margin: 0 0 16px; }
.plan ul { list-style: none; margin: 0; padding: 0; }
.plan ul ul { padding-left: 16px; margin-top: 6px; }
.plan li { margin-bottom: 8px; }
.plan a { color: var(--gris); text-decoration: none; }
.plan a:hover { color: var(--or-texte); }

/* Articles */
.grille-articles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.carte-article { position: relative; background: var(--blanc); border-radius: var(--rayon); overflow: hidden; border: 1px solid #EFEAE0; display: flex; flex-direction: column; }
.carte-article__media { display: block; aspect-ratio: 16 / 10; overflow: hidden; }
.carte-article__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .9s var(--ease); }
.carte-article:hover .carte-article__media img { transform: scale(1.04); }
.carte-article__corps { padding: 22px 24px 26px; }
.carte-article__date { font-size: 13px; color: var(--or-texte); font-weight: 600; }
.carte-article h2, .carte-article h3 { font-size: 21px; line-height: 1.25; font-weight: 500; font-stretch: 110%; margin: 8px 0 10px; }
.carte-article h2 a, .carte-article h3 a { text-decoration: none; color: var(--encre); }
.carte-article h2 a::after, .carte-article h3 a::after { content: ""; position: absolute; inset: 0; }
.carte-article p { margin: 0; font-size: 15px; color: var(--gris); }

/* Formulaires : messages, champ piège */
.piege { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.form { position: relative; }
.form-message { grid-column: 1 / -1; margin: 0 0 6px; padding: 14px 18px; border-radius: 10px; font-size: 14.5px; }
.form-message--erreur { background: rgba(232,160,144,.12); border: 1px solid rgba(232,160,144,.5); color: #F2C4B8; }
.form-message--ok { background: rgba(185,147,79,.12); border: 1px solid rgba(185,147,79,.45); color: var(--or-clair); }
.section:not(.section--noir) .form-message--ok, .bandeau-bientot { color: var(--or-texte); }
.form-produit { margin: 0; padding: 12px 16px; border-radius: 10px; background: rgba(185,147,79,.1); color: var(--or-clair); font-size: 14.5px; }
.form-mentions { grid-column: 1 / -1; margin: 0; font-size: 12.5px; color: #8E8677; }
.consent a { color: var(--or-clair); }
.alerte-mention { margin: 10px 0 0; font-size: 12.5px; color: #8E8677; }
.alerte-mention a { color: inherit; }
.champ select { appearance: none; background-image: linear-gradient(45deg, transparent 50%, #CFC6B5 50%), linear-gradient(135deg, #CFC6B5 50%, transparent 50%); background-position: calc(100% - 20px) 50%, calc(100% - 15px) 50%; background-size: 5px 5px; background-repeat: no-repeat; padding-right: 40px; }

/* Footer : compléments */
.footer .titre--espace { margin-top: 28px; }
.footer-plus { margin-top: 10px !important; }
a.signature { color: #8E8677; }
.footer .bas { position: relative; align-items: center; }

/* Responsive des composants ajoutés */
@media (max-width: 1180px) {
  .grille-produits, .grille-articles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .familles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fiche-grille, .fiche-presentation__grille, .caracteristiques__grille, .guide-grille, .faq { grid-template-columns: 1fr; gap: 44px; }
  .galerie-produit, .video-bloc { position: relative; top: 0; }
  .etapes-projet { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .plan { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 860px) {
  .page-hero { padding: 50px 0 70px; }
  .page-hero--image .page-hero__img { inset: 0; opacity: .35; }
  .grille-produits, .grille-articles, .familles, .etapes-projet, .plan { grid-template-columns: 1fr; }
  .famille { grid-template-columns: 90px 1fr auto; }
  .catalogue-barre { flex-direction: column; align-items: flex-start; }
  .fiche { padding-bottom: 80px; }
  .fiche-cta .btn { width: 100%; }
  .galerie-produit__principale img { padding: 18px; }
  .specs > div { grid-template-columns: 1fr; gap: 4px; }
  .recherche-form { padding-left: 16px; }
  .recherche-form .btn { width: auto; padding: 0 16px; }
  .recherche-form--page { flex-wrap: wrap; border-radius: 20px; padding: 10px 14px; }
  .recherche-form--page .btn { width: 100%; }
  .cta-collant { position: fixed; left: 0; right: 0; bottom: 0; z-index: 90; display: flex; gap: 10px; padding: 12px 16px calc(12px + env(safe-area-inset-bottom)); background: rgba(14,13,11,.96); backdrop-filter: blur(10px); transform: translateY(110%); transition: transform .45s var(--ease); }
  .cta-collant.is-visible { transform: none; }
  .cta-collant .btn { flex: 1; min-height: 48px; }
  .cta-collant .icon-btn { width: 48px; height: 48px; flex: none; }
  body.fiche-produit .footer { padding-bottom: 110px; }
}

/* Fiche gamme : plusieurs références sur une même page */
.gamme-liste { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.gamme-liste li { display: flex; flex-direction: column; gap: 8px; padding: 24px 26px; border-radius: var(--rayon); background: var(--ivoire); }
.gamme-liste h3 { font-size: 20px; font-weight: 600; font-stretch: 110%; margin: 0; }
.gamme-liste p { margin: 0; color: var(--gris); font-size: 15px; }
.gamme-liste .lien-fleche { margin-top: auto; padding-top: 8px; }
@media (max-width: 1180px) { .gamme-liste { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 860px) { .gamme-liste { grid-template-columns: 1fr; } }
@media (min-width: 1181px) { .mobile-menu, .menu-overlay { display: none; } }

/* Versions d'un produit (une fiche, plusieurs déclinaisons) */
.versions { width: 100%; margin: 0 0 24px; }
.versions__label { margin: 0 0 10px; font-size: 13.5px; font-weight: 600; color: var(--gris); }
.versions__choix { display: flex; flex-wrap: wrap; gap: 8px; }
.version { min-height: 46px; padding: 0 20px; border-radius: 999px; border: 1px solid var(--pierre); font-size: 15px; font-weight: 500; color: var(--encre); background: var(--blanc); transition: border-color .3s, background .3s, color .3s; }
.version:hover { border-color: var(--or-texte); }
.version.est-actif { background: var(--encre); border-color: var(--encre); color: var(--blanc); }
.versions__texte { margin: 14px 0 0; padding: 14px 18px; border-radius: 12px; background: var(--ivoire); color: var(--encre); font-size: 15.5px; }
.comparatif__famille { display: block; margin-top: 4px; font-size: 12.5px; font-weight: 500; color: var(--gris); }
/* Menu mobile fermé : hors de l'écran ET hors du parcours clavier */
.mobile-menu { visibility: hidden; transition: transform .45s var(--ease), visibility 0s linear .45s; }
.mobile-menu.is-open { visibility: visible; transition: transform .45s var(--ease), visibility 0s; }
.recherche-form input[type="search"]::-webkit-search-cancel-button { -webkit-appearance: none; }

/* ===== v1.5.0 : passe UX mobile ===== */
.ariane-barre + * { margin-top: 0; }
.hero-page .ariane-barre, .page-hero .ariane-barre { margin-bottom: 26px; }
@media (max-width: 768px) {
  /* Grilles produits : 2 colonnes compactes, la carte entière reste cliquable */
  .grille-produits { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .grille-produits .carte-produit__media { aspect-ratio: 1 / 1; }
  .grille-produits .carte-produit__media img { padding: 10px; }
  .grille-produits .carte-produit__corps { padding: 12px 14px 16px; gap: 4px; }
  .grille-produits .carte-produit__marque { font-size: 11.5px; }
  .grille-produits .carte-produit__titre { font-size: 16px; line-height: 1.25; }
  .grille-produits .carte-produit__texte, .grille-produits .carte-produit__tags { display: none; }
  .grille-produits .carte-produit__cta { font-size: 13px; padding-top: 8px; }
  .grille-produits .carte-produit__cta svg { width: 14px; height: 14px; }
  .carte-produit:hover { transform: none; }
  /* Zones tactiles d'au moins 44 px */
  .topbar a { display: inline-flex; align-items: center; min-height: 40px; padding: 0 8px; }
  .footer li { margin-bottom: 0; }
  .footer li a, .bas-liens a { display: inline-flex; align-items: center; min-height: 44px; }
  .bas-liens { gap: 0 20px; }
  .footer .bas > span { padding-right: 68px; }
  .alerte-champ input { height: 48px; }
  input[type="checkbox"] { width: 22px; height: 22px; flex: none; }
  /* Scènes à défilement plus courtes sur mobile */
  .immersion { height: 190vh; }
}
@media (max-width: 380px) {
  .grille-produits .carte-produit__titre { font-size: 15px; }
}
@media (max-width: 768px) { .alerte-champ--large input { flex: none; } }
@media (max-width: 768px) {
  /* Chaîne numérique : frise verticale compacte */
  .chaine { row-gap: 0; }
  .chaine::before { display: block; left: 21px; right: auto; top: 22px; bottom: 22px; width: 1px; height: auto; background: linear-gradient(180deg, var(--or-texte), #D9C49A); transform: none; }
  .etape { display: grid; grid-template-columns: 44px 1fr; column-gap: 18px; padding: 0 0 26px; }
  .etape .point { width: 44px; height: 44px; font-size: 13px; grid-row: 1 / span 3; }
  .etape h3 { margin: 8px 0 4px; font-size: 19px; }
  .etape p { margin: 0 0 6px; font-size: 14.5px; }
  .chaine-photos { display: none; }
}
@media (max-width: 768px) {
  .univers { gap: 12px; }
  .tuile { min-height: 230px; }
  .tuile .txt { padding: 20px 22px; }
  .tuile h3 { font-size: 23px; }
  .tuile--blanc img { padding: 18px 18px 92px; }
}
@media (max-width: 1180px) { .agenda, .contact { grid-template-columns: minmax(0, 1fr); } .contact > * { min-width: 0; } .contact h2 { overflow-wrap: break-word; } }
.carte-produit__vide { display: flex; align-items: center; justify-content: center; background: linear-gradient(135deg, #F7F4EE, #EDE5D6); }
.carte-produit__media .carte-produit__vide img { width: 46%; height: auto; padding: 0; opacity: .38; filter: grayscale(.2); }

/* ===== v1.6.0 : hero vidéo + vitrine « À la une » ===== */
.hero--v2 { isolation: isolate; }
.hero-media { position: absolute; inset: 0; z-index: -1; overflow: hidden; background: var(--noir); }
.hero-media video, .hero-media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 70% center; filter: saturate(.8) contrast(1.04); }
.hero-media::after { content: ""; position: absolute; inset: 0; background:
  linear-gradient(90deg, rgba(14,13,11,.97) 0%, rgba(14,13,11,.9) 30%, rgba(14,13,11,.52) 58%, rgba(14,13,11,.42) 100%),
  linear-gradient(0deg, rgba(14,13,11,.95) 0%, rgba(14,13,11,0) 32%),
  radial-gradient(120% 90% at 80% 20%, rgba(181,144,79,.10), transparent 60%); }
.hero--v2 .wrap.hero-grille { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(320px, 400px); gap: 64px; align-items: center; min-height: min(calc(100svh - 124px), 860px); padding-top: 64px; padding-bottom: 72px; }
.hero--v2 h1 { margin: 26px 0 24px; }
.hero--v2 .chapo { margin-bottom: 36px; }
.hero-preuves { list-style: none; display: flex; flex-wrap: wrap; gap: 0; margin: 48px 0 0; padding: 0; }
.hero-preuves li { padding: 0 26px; border-left: 1px solid rgba(255,255,255,.16); display: flex; flex-direction: column; gap: 4px; }
.hero-preuves li:first-child { padding-left: 0; border-left: 0; }
.hero-preuves b { font-size: 30px; font-weight: 200; line-height: 1; letter-spacing: -.03em; font-stretch: 125%; font-variant-numeric: tabular-nums; color: var(--blanc); }
.hero-preuves li > span { font-size: 13px; color: #B9B1A3; }
.hero-preuves b span { font: inherit; color: inherit; }

.vitrine-hero { position: relative; background: rgba(22,20,17,.55); -webkit-backdrop-filter: blur(18px) saturate(1.2); backdrop-filter: blur(18px) saturate(1.2); border: 1px solid rgba(255,255,255,.12); border-radius: 26px; padding: 16px 16px 14px; box-shadow: 0 40px 80px -40px rgba(0,0,0,.8); }
.vitrine-hero__titre { margin: 2px 6px 12px; font-size: 12px; letter-spacing: .14em; text-transform: uppercase; font-weight: 600; color: var(--or-clair); }
.vitrine-hero__piste { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: none; border-radius: 18px; outline-offset: 4px; }
.vitrine-hero__piste::-webkit-scrollbar { display: none; }
.vitrine-hero__slide { flex: 0 0 100%; scroll-snap-align: start; min-width: 0; }
.vitrine-hero__lien { display: flex; flex-direction: column; text-decoration: none; color: var(--blanc); height: 100%; }
.vitrine-hero__img { display: block; aspect-ratio: 4 / 3; background: #EEECE8; border-radius: 18px; overflow: hidden; }
.vitrine-hero__img img { width: 100%; height: 100%; object-fit: contain; padding: 16px; mix-blend-mode: multiply; transition: transform .9s var(--ease); }
.vitrine-hero__img img.cover { object-fit: cover; padding: 0; mix-blend-mode: normal; }
.vitrine-hero__lien:hover .vitrine-hero__img img { transform: scale(1.04); }
.vitrine-hero__corps { display: flex; flex-direction: column; gap: 6px; padding: 16px 6px 4px; }
.vitrine-hero__tag { font-size: 12.5px; font-weight: 600; color: var(--or-clair); }
.vitrine-hero__nom { font-size: 24px; line-height: 1.15; font-weight: 400; font-stretch: 115%; letter-spacing: -.015em; }
.vitrine-hero__texte { font-size: 14px; line-height: 1.5; color: #CFC6B5; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.vitrine-hero__cta { display: inline-flex; align-items: center; gap: 8px; margin-top: 6px; font-weight: 600; font-size: 14px; color: var(--or-clair); }
.vitrine-hero__cta svg { width: 16px; height: 16px; transition: transform .4s var(--ease); }
.vitrine-hero__lien:hover .vitrine-hero__cta svg { transform: translateX(5px); }
.vitrine-hero__nav { display: flex; align-items: center; gap: 8px; margin-top: 12px; padding: 0 2px 0 6px; }
.vitrine-hero__points { display: flex; gap: 6px; flex: 1; }
.vitrine-hero__point { flex: 1; max-width: 46px; height: 28px; padding: 0; border: 0; background: none; cursor: pointer; display: flex; align-items: center; }
.vitrine-hero__point i { display: block; width: 100%; height: 3px; border-radius: 3px; background: rgba(255,255,255,.2); position: relative; overflow: hidden; }
.vitrine-hero__point i::after { content: ""; position: absolute; inset: 0; background: var(--or-clair); transform: scaleX(0); transform-origin: 0 50%; }
.vitrine-hero__point.is-actif i::after { animation: vitrine-temps var(--vitrine-duree, 6s) linear forwards; }
.vitrine-hero.is-arret .vitrine-hero__point.is-actif i::after { animation: none; transform: scaleX(1); }
.vitrine-hero.is-suspendu .vitrine-hero__point.is-actif i::after { animation-play-state: paused; }
@keyframes vitrine-temps { to { transform: scaleX(1); } }
.vitrine-hero__fleche { width: 40px; height: 40px; flex: none; border-radius: 50%; border: 1px solid rgba(255,255,255,.22); background: transparent; color: var(--blanc); display: inline-flex; align-items: center; justify-content: center; cursor: pointer; transition: background .3s, border-color .3s, color .3s; }
.vitrine-hero__fleche:hover { background: var(--or-bouton); border-color: var(--or-bouton); color: #fff; }
.vitrine-hero__fleche svg { width: 16px; height: 16px; }
.hero-pause { position: absolute; right: 24px; bottom: 22px; width: 40px; height: 40px; border-radius: 50%; border: 1px solid rgba(255,255,255,.25); background: rgba(14,13,11,.5); color: var(--blanc); cursor: pointer; display: inline-flex; align-items: center; justify-content: center; z-index: 2; }
.hero-pause__pause { width: 10px; height: 12px; border-left: 3px solid currentColor; border-right: 3px solid currentColor; }
.hero-pause__lecture { display: none; width: 0; height: 0; border-left: 11px solid currentColor; border-top: 7px solid transparent; border-bottom: 7px solid transparent; margin-left: 3px; }
.hero-pause[aria-pressed="true"] .hero-pause__pause { display: none; }
.hero-pause[aria-pressed="true"] .hero-pause__lecture { display: block; }
.hero-pause:hover { border-color: var(--or-clair); color: var(--or-clair); }
@media (max-width: 1180px) {
  .hero--v2 .wrap.hero-grille { grid-template-columns: minmax(0, 1fr) 340px; gap: 40px; }
}
@media (max-width: 1024px) {
  .hero--v2 .wrap.hero-grille { grid-template-columns: minmax(0, 1fr); min-height: 0; padding-top: 70px; padding-bottom: 76px; gap: 44px; }
  .vitrine-hero { max-width: 560px; }
  .hero-media::after { background: linear-gradient(180deg, rgba(14,13,11,.5) 0%, rgba(14,13,11,.78) 38%, rgba(14,13,11,.95) 70%, rgba(14,13,11,1) 100%); }
  .hero-media video, .hero-media img { height: 70%; }
}
@media (max-width: 768px) {
  .hero--v2 .wrap.hero-grille { padding-top: 54px; padding-bottom: 72px; gap: 36px; }
  .hero-preuves { margin-top: 36px; flex-wrap: nowrap; }
  .hero-preuves li { padding: 0 14px; flex: 1; }
  .hero-preuves b { font-size: 24px; }
  .hero-preuves li > span { font-size: 12px; }
  .vitrine-hero { padding: 12px; border-radius: 22px; }
  .vitrine-hero__lien { flex-direction: row; align-items: center; gap: 14px; }
  .vitrine-hero__img { flex: 0 0 112px; width: 112px; aspect-ratio: 1; border-radius: 14px; }
  .vitrine-hero__img img { padding: 8px; }
  .vitrine-hero__corps { padding: 0; gap: 4px; min-width: 0; }
  .vitrine-hero__nom { font-size: 19px; }
  .vitrine-hero__texte { font-size: 13px; }
  .vitrine-hero__cta { font-size: 13px; margin-top: 2px; }
  .hero-pause { right: 16px; top: 16px; bottom: auto; width: 44px; height: 44px; }
}
@media (prefers-reduced-motion: reduce) {
  .vitrine-hero__point.is-actif i::after { animation: none; transform: scaleX(1); }
  .vitrine-hero__piste { scroll-behavior: auto; }
}
.hero-preuves b { white-space: nowrap; }
@media (max-width: 380px) { .hero-preuves li { padding: 0 10px; } .hero-preuves b { font-size: 21px; } }
/* Bandeau des marques */
.bmarques { background: var(--noir); color: var(--blanc); border-top: 1px solid rgba(255,255,255,.08); }
.bmarques__grille { display: flex; align-items: center; gap: 40px; padding-top: 30px; padding-bottom: 34px; }
.bmarques__titre { flex: 0 0 210px; margin: 0; font-size: 13px !important; line-height: 1.45 !important; font-weight: 500 !important; letter-spacing: 0 !important; font-stretch: 100% !important; color: #9E968A; }
.bmarques__liste { list-style: none; margin: 0; padding: 0; display: flex; flex: 1; justify-content: space-between; align-items: center; gap: 12px 30px; flex-wrap: wrap; }
.bmarques__liste a { display: inline-flex; align-items: center; min-height: 44px; text-decoration: none; color: #CFC6B5; opacity: .78; transition: opacity .3s, color .3s; }
.bmarques__liste a:hover, .bmarques__liste a:focus-visible { opacity: 1; color: var(--or-clair); }
.bmarques__liste img { height: 28px; width: auto; }
.bmarques__logo--vhf { height: 30px !important; }
.bmarques__logo--up3d { height: 34px !important; }
.bmarques__logo--opera-system { height: 32px !important; }
.bmarques__logo--exocad { height: 24px !important; }
.bmarques__logo--kuraray-noritake { height: 20px !important; }
.bmarques__logo--saremco { height: 21px !important; }
@media (max-width: 768px) { .bmarques__liste img { height: 24px; } .bmarques__logo--kuraray-noritake { height: 17px !important; } .bmarques__logo--saremco { height: 18px !important; } .bmarques__logo--exocad { height: 21px !important; } }
.bmarques__nom { font-size: 17px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; font-stretch: 112%; white-space: nowrap; }
.bmarques__nom--exocad { text-transform: none; letter-spacing: .02em; font-weight: 700; font-size: 20px; }
.bmarques__nom--kuraray-noritake { letter-spacing: .08em; }
@media (max-width: 1024px) {
  .bmarques__grille { flex-direction: column; align-items: flex-start; gap: 14px; }
  .bmarques__titre { flex: none; }
  .bmarques__liste { justify-content: flex-start; gap: 4px 26px; }
}
@media (max-width: 768px) {
  .bmarques__grille { padding-top: 26px; padding-bottom: 26px; }
  .bmarques__liste { flex-wrap: nowrap; overflow-x: auto; width: calc(100% + 44px); margin: 0 -22px; padding: 0 22px; scrollbar-width: none; -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 22px, #000 calc(100% - 40px), transparent 100%); mask-image: linear-gradient(90deg, transparent 0, #000 22px, #000 calc(100% - 40px), transparent 100%); }
  .bmarques__liste::-webkit-scrollbar { display: none; }
  .bmarques__liste li { flex: none; }
  .bmarques__nom { font-size: 15px; }
}
/* Guide : quel scanner intraoral choisir */
.guide { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 48px; align-items: start; }
.guide__titre { font-size: clamp(26px, 2.6vw, 36px) !important; margin: 0 0 28px; }
.guide__question { border: 0; margin: 0 0 26px; padding: 0; }
.guide__question legend { display: flex; gap: 14px; font-size: 17px; font-weight: 500; line-height: 1.45; margin-bottom: 14px; padding: 0; color: var(--encre); }
.guide__question legend em { font-style: normal; color: var(--gris); font-weight: 400; }
.guide__num { flex: none; font-size: 13px; font-weight: 600; color: var(--or-texte); padding-top: 3px; }
.guide__choix { display: flex; flex-wrap: wrap; gap: 10px; padding-left: 34px; }
.guide__option { position: relative; cursor: pointer; }
.guide__option input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.guide__option span { display: inline-flex; align-items: center; min-height: 46px; padding: 0 20px; border-radius: 999px; background: var(--blanc); border: 1px solid #E3DBCB; font-size: 15px; font-weight: 500; transition: background .3s, border-color .3s, color .3s; }
.guide__option:hover span { border-color: var(--or-texte); }
.guide__option input:checked + span { background: var(--noir); border-color: var(--noir); color: var(--blanc); }
.guide__option input:focus-visible + span { outline: 3px solid var(--or-texte); outline-offset: 2px; }
.guide__form .btn { margin-top: 8px; margin-left: 34px; }
.guide__resultat { position: sticky; top: 120px; }
.guide__label { font-size: 12px; letter-spacing: .14em; text-transform: uppercase; font-weight: 600; color: var(--or-texte); margin: 0 0 12px; }
.guide__attente { background: var(--blanc); border: 1px dashed #D8CDB8; border-radius: var(--rayon); padding: 30px; color: var(--gris); }
.guide__carte { background: var(--noir); color: var(--blanc); border-radius: 24px; padding: 18px 18px 26px; box-shadow: 0 40px 70px -40px rgba(27,25,21,.6); }
.guide__img { display: block; aspect-ratio: 4 / 3; background: #EEECE8; border-radius: 16px; overflow: hidden; }
.guide__img img { width: 100%; height: 100%; object-fit: contain; padding: 14px; mix-blend-mode: multiply; }
.guide__nom { font-size: 28px !important; margin: 20px 8px 8px !important; font-weight: 400 !important; }
.guide__nom a { color: var(--blanc); text-decoration: none; }
.guide__pourquoi, .guide__plus { margin: 0 8px 14px; color: #D9D2C5; font-size: 15px; line-height: 1.6; }
.guide__plus a { color: var(--or-clair); }
.guide__points { list-style: none; margin: 0 8px 20px; padding: 0; display: grid; gap: 8px; }
.guide__points li { display: flex; gap: 10px; align-items: flex-start; font-size: 14.5px; }
.guide__points svg { width: 18px; height: 18px; flex: none; color: var(--or-clair); margin-top: 2px; }
.guide__actions { display: flex; flex-wrap: wrap; gap: 10px; margin: 0 8px; }
.guide__carte .btn--contour { color: var(--blanc); border-color: rgba(255,255,255,.35); }
.guide__gamme { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.guide__case { position: relative; background: var(--ivoire); border-radius: var(--rayon); padding: 26px 24px; border: 1px solid transparent; }
.guide__case.est-conseille { background: var(--blanc); border-color: var(--or-texte); }
.guide__badge { position: absolute; top: -12px; left: 20px; background: var(--or-texte); color: #fff; font-size: 12px; font-weight: 600; border-radius: 999px; padding: 4px 12px; }
.guide__case h3 { font-size: 20px; margin: 0 0 10px; }
.guide__case h3 a { color: var(--encre); text-decoration: none; }
.guide__case h3 a:hover { color: var(--or-texte); }
.guide__case p { color: var(--gris); font-size: 14.5px; margin: 0 0 12px; }
.guide__case ul { margin: 0; padding-left: 18px; font-size: 14px; display: grid; gap: 6px; }
.guide__contenu { margin-top: 48px; max-width: 820px; }
@media (max-width: 1024px) {
  .guide { grid-template-columns: minmax(0, 1fr); }
  .guide__resultat { position: static; }
  .guide__gamme { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 768px) {
  .guide__choix, .guide__form .btn { padding-left: 0; margin-left: 0; }
  .guide__option { flex: 1 1 auto; }
  .guide__option span { width: 100%; justify-content: center; }
  .guide__gamme { grid-template-columns: minmax(0, 1fr); }
  .guide__nom { font-size: 24px !important; }
}
/* Page salon */
.salon__infos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; margin: 0; }
.salon__infos > div { background: var(--blanc); border-radius: var(--rayon); padding: 26px 28px; }
.salon__infos dt { font-size: 12px; letter-spacing: .14em; text-transform: uppercase; font-weight: 600; color: var(--or-texte); margin-bottom: 8px; }
.salon__infos dd { margin: 0; font-size: 24px; font-weight: 300; font-stretch: 115%; letter-spacing: -.015em; }
@media (max-width: 768px) { .salon__infos { grid-template-columns: minmax(0, 1fr); } .salon__infos dd { font-size: 20px; } }
/* Bandeau aide au choix */
.aide-choix { padding: 0 0 70px; }
.section--ivoire + .aide-choix, .aide-choix--ivoire { background: var(--ivoire); }
.aide-choix__carte { display: flex; align-items: center; gap: 22px; padding: 24px 28px; border-radius: var(--rayon); background: var(--noir); color: var(--blanc); text-decoration: none; transition: transform .4s var(--ease); }
.aide-choix__carte:hover { transform: translateY(-3px); }
.aide-choix__icone { flex: none; width: 52px; height: 52px; border-radius: 50%; border: 1px solid rgba(255,255,255,.25); display: inline-flex; align-items: center; justify-content: center; color: var(--or-clair); }
.aide-choix__icone svg { width: 22px; height: 22px; }
.aide-choix__txt { flex: 1; display: flex; flex-direction: column; gap: 4px; }
.aide-choix__txt b { font-size: 19px; font-weight: 500; }
.aide-choix__txt span { color: #CFC6B5; font-size: 14.5px; }
.aide-choix__cta { flex: none; display: inline-flex; align-items: center; gap: 8px; min-height: 48px; padding: 0 22px; border-radius: 999px; background: var(--or-bouton); color: #fff; font-weight: 600; font-size: 14.5px; transition: background .3s; }
.aide-choix__carte:hover .aide-choix__cta { background: var(--or-bouton-hover); }
.aide-choix__cta svg { width: 16px; height: 16px; }
@media (max-width: 768px) {
  .aide-choix { padding-bottom: 50px; }
  .aide-choix__carte { flex-wrap: wrap; padding: 22px; gap: 16px; }
  .aide-choix__txt { flex-basis: calc(100% - 70px); }
  .aide-choix__cta { width: 100%; justify-content: center; }
}
@media (min-width: 1181px) { .grille-produits--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; } .grille-produits--4 .carte-produit__titre { font-size: 20px; } }

/* ===== v1.6.0 : article de blog ===== */
.lecture-progression { position: fixed; left: 0; right: 0; top: 0; height: 3px; z-index: 120; pointer-events: none; }
.lecture-progression span { display: block; height: 100%; width: 100%; background: linear-gradient(90deg, var(--or), var(--or-clair)); transform: scaleX(0); transform-origin: 0 50%; }
.article-hero { position: relative; background: var(--noir); color: var(--blanc); overflow: hidden; padding: 60px 0 150px; }
.article-hero::before { content: ""; position: absolute; right: -12%; top: -50%; width: 62%; aspect-ratio: 1; border-radius: 50%; background: radial-gradient(closest-side, rgba(185,147,79,.18), rgba(185,147,79,0)); pointer-events: none; }
.article-hero .wrap { position: relative; }
.article-hero .ariane-barre { margin-bottom: 30px; }
.article-hero__txt { max-width: 900px; }
.article-hero .pill { text-decoration: none; }
.article-hero__titre { font-size: clamp(34px, 4.4vw, 62px); line-height: 1.06; font-weight: 300; font-stretch: 125%; letter-spacing: -.03em; margin: 22px 0 20px; }
.article-hero__chapo { font-size: 19px; line-height: 1.6; color: #D9D2C5; margin: 0 0 30px; max-width: 760px; }
.article-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 28px; margin: 0; font-size: 14px; color: #B9B1A3; }
.article-meta__auteur { display: inline-flex; align-items: center; gap: 12px; padding-right: 28px; border-right: 1px solid rgba(255,255,255,.14); }
.article-meta__auteur img { width: 40px; height: 40px; border-radius: 50%; background: var(--blanc); padding: 6px; object-fit: contain; }
.article-meta__auteur span { display: flex; flex-direction: column; line-height: 1.35; font-size: 13px; }
.article-meta__auteur b { color: var(--blanc); font-size: 14.5px; font-weight: 600; }
.article-meta__info { display: inline-flex; align-items: center; gap: 8px; }
.article-meta__info svg { width: 17px; height: 17px; color: var(--or-clair); }
.article-visuel-zone { position: relative; margin-top: -110px; }
.article-visuel { margin: 0; border-radius: 24px; overflow: hidden; aspect-ratio: 21 / 9; background: var(--ivoire); box-shadow: 0 50px 90px -50px rgba(14,13,11,.55); }
.article-visuel img { width: 100%; height: 100%; object-fit: cover; }
.article-corps { padding-top: 70px; }
.article-grille { display: grid; grid-template-columns: minmax(0, 1fr) 330px; gap: 80px; align-items: start; }
.article-grille--seule { grid-template-columns: minmax(0, 760px); justify-content: center; }
.contenu--article { max-width: 760px; font-size: 18px; line-height: 1.8; }
.contenu--article > p:first-child { font-size: 21px; line-height: 1.65; color: var(--encre); }
.contenu--article h2 { scroll-margin-top: 120px; font-size: clamp(26px, 2.4vw, 34px); margin-top: 60px; padding-top: 28px; border-top: 1px solid var(--pierre); }
.contenu--article ul li { padding-left: 4px; }
.contenu--article strong { color: var(--encre); }
.article-aside__colle { position: sticky; top: 120px; display: flex; flex-direction: column; gap: 18px; }
.sommaire, .cites, .aside-cta { border-radius: 20px; padding: 22px 22px 18px; }
.sommaire { background: var(--ivoire); }
.sommaire__titre { margin: 0 0 12px; font-size: 12px; letter-spacing: .14em; text-transform: uppercase; font-weight: 600; color: var(--or-texte); }
.sommaire ol { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.sommaire a { position: relative; display: flex; gap: 12px; padding: 9px 10px 9px 12px; border-radius: 10px; text-decoration: none; color: var(--gris); font-size: 14.5px; line-height: 1.4; transition: background .3s, color .3s; }
.sommaire a span { flex: none; font-size: 12px; font-weight: 600; color: #B3A88F; padding-top: 2px; font-variant-numeric: tabular-nums; }
.sommaire a::before { content: ""; position: absolute; left: 0; top: 10px; bottom: 10px; width: 2px; border-radius: 2px; background: var(--or); transform: scaleY(0); transition: transform .35s var(--ease); }
.sommaire a:hover { background: rgba(255,255,255,.6); color: var(--encre); }
.sommaire a.is-actif { background: var(--blanc); color: var(--encre); font-weight: 500; }
.sommaire a.is-actif::before { transform: scaleY(1); }
.sommaire a.is-actif span { color: var(--or-texte); }
.cites { background: var(--blanc); border: 1px solid #EFEAE0; }
.cites ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.cites a { display: flex; align-items: center; gap: 12px; padding: 8px; border-radius: 12px; text-decoration: none; color: var(--encre); transition: background .3s; }
.cites a:hover { background: var(--ivoire); }
.cites__img { flex: none; width: 54px; height: 54px; border-radius: 10px; background: #F4F2EE; overflow: hidden; }
.cites__img img { width: 100%; height: 100%; object-fit: contain; padding: 4px; mix-blend-mode: multiply; }
.cites__txt { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.cites__marque { font-size: 11.5px; font-weight: 600; color: var(--or-texte); }
.cites__txt b { font-size: 14.5px; font-weight: 600; line-height: 1.3; }
.cites a > svg { width: 16px; height: 16px; flex: none; color: var(--or-texte); transition: transform .3s var(--ease); }
.cites a:hover > svg { transform: translateX(3px); }
.aside-cta { background: var(--noir); color: var(--blanc); padding-bottom: 22px; }
.aside-cta p { margin: 0 0 16px; font-size: 14px; color: #CFC6B5; line-height: 1.5; }
.aside-cta b { display: block; color: var(--blanc); font-size: 17px; font-weight: 500; margin-bottom: 6px; }
.aside-cta .btn { width: 100%; }
.aside-cta__tel { display: block; text-align: center; margin-top: 12px; color: var(--or-clair); font-weight: 600; text-decoration: none; font-size: 14.5px; }
.sommaire-mobile { display: none; }
.article-partage { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 56px 0 0; padding-top: 28px; border-top: 1px solid var(--pierre); }
.article-partage > span { font-size: 13px; font-weight: 600; color: var(--gris); margin-right: 6px; }
.article-partage a, .article-copier { display: inline-flex; align-items: center; min-height: 40px; padding: 0 16px; border-radius: 999px; border: 1px solid #E3DBCB; background: var(--blanc); color: var(--encre); font: inherit; font-size: 13.5px; font-weight: 500; text-decoration: none; cursor: pointer; transition: border-color .3s, background .3s; }
.article-partage a:hover, .article-copier:hover { border-color: var(--or-texte); }
.article-copier.is-ok { background: var(--noir); color: var(--blanc); border-color: var(--noir); }
.auteur { display: flex; gap: 26px; align-items: flex-start; margin-top: 34px; padding: 30px; border-radius: 22px; background: var(--noir); color: var(--blanc); }
.auteur__logo { flex: none; width: 120px; height: auto; margin-top: 4px; }
.auteur p { margin: 0 0 10px; font-size: 15px; line-height: 1.6; color: #CFC6B5; }
.auteur__titre { color: var(--blanc) !important; font-size: 18px !important; font-weight: 500; }
.auteur__liens { display: flex; flex-wrap: wrap; gap: 8px 22px; margin: 6px 0 0 !important; }
.auteur .lien { color: var(--or-clair); }
@media (max-width: 1180px) { .article-grille { grid-template-columns: minmax(0, 1fr) 290px; gap: 50px; } }
@media (max-width: 1024px) {
  .article-grille { grid-template-columns: minmax(0, 1fr); }
  .article-aside { display: none; }
  .sommaire-mobile { display: block; margin: 0 0 34px; border-radius: 16px; background: var(--ivoire); padding: 0 20px; }
  .sommaire-mobile summary { display: flex; align-items: center; justify-content: space-between; min-height: 56px; cursor: pointer; list-style: none; font-size: 13px; letter-spacing: .12em; text-transform: uppercase; font-weight: 600; color: var(--or-texte); }
  .sommaire-mobile summary::-webkit-details-marker { display: none; }
  .sommaire-mobile summary svg { width: 18px; height: 18px; transition: transform .3s; }
  .sommaire-mobile[open] summary svg { transform: rotate(180deg); }
  .sommaire-mobile ol { margin: 0; padding: 0 0 16px 20px; display: grid; gap: 4px; }
  .sommaire-mobile a { display: block; padding: 8px 0; color: var(--encre); text-decoration: none; font-size: 15px; }
}
@media (max-width: 768px) {
  .article-hero { padding: 40px 0 110px; }
  .article-hero__chapo { font-size: 17px; }
  .article-meta { gap: 12px 18px; }
  .article-meta__auteur { width: 100%; border-right: 0; padding-right: 0; }
  .article-visuel-zone { margin-top: -80px; }
  .article-visuel { aspect-ratio: 16 / 10; border-radius: 18px; }
  .article-corps { padding-top: 44px; }
  .contenu--article { font-size: 17px; }
  .contenu--article > p:first-child { font-size: 19px; }
  .auteur { flex-direction: column; gap: 16px; padding: 24px; }
}
/* ===== v1.6.0 : liste des guides ===== */
.blog:not(body) { padding-top: 60px; } /* body.blog = classe WordPress de la page des articles */
.blog-filtres { display: flex; flex-wrap: wrap; gap: 10px; margin: 0 0 40px; }
.blog-filtres a { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 18px; border-radius: 999px; border: 1px solid #E3DBCB; background: var(--blanc); color: var(--encre); text-decoration: none; font-size: 14.5px; font-weight: 500; transition: border-color .3s, background .3s, color .3s; }
.blog-filtres a span { font-size: 12px; font-weight: 600; color: var(--or-texte); background: var(--ivoire); border-radius: 999px; padding: 2px 8px; }
.blog-filtres a:hover { border-color: var(--or-texte); }
.blog-filtres a.is-actif { background: var(--noir); border-color: var(--noir); color: var(--blanc); }
.blog-filtres a.is-actif span { background: rgba(255,255,255,.12); color: var(--or-clair); }
.blog-une { position: relative; display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); background: var(--noir); color: var(--blanc); border-radius: 26px; overflow: hidden; margin-bottom: 34px; min-height: 380px; }
.blog-une__media { display: block; overflow: hidden; }
.blog-une__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.1s var(--ease); }
.blog-une:hover .blog-une__media img { transform: scale(1.04); }
.blog-une__corps { display: flex; flex-direction: column; justify-content: center; gap: 14px; padding: 48px 50px; }
.blog-une__label { margin: 0; font-size: 12px; letter-spacing: .14em; text-transform: uppercase; font-weight: 600; color: var(--or-clair); display: flex; gap: 12px; align-items: center; flex-wrap: wrap; }
.blog-une__label span { letter-spacing: 0; text-transform: none; font-size: 12.5px; color: #CFC6B5; border: 1px solid rgba(255,255,255,.2); border-radius: 999px; padding: 3px 12px; }
.blog-une__titre { margin: 0; font-size: clamp(26px, 2.6vw, 38px); line-height: 1.12; font-weight: 300; font-stretch: 125%; letter-spacing: -.025em; }
.blog-une__titre a { color: var(--blanc); text-decoration: none; }
.blog-une__titre a::after { content: ""; position: absolute; inset: 0; }
.blog-une__texte { margin: 0; color: #CFC6B5; font-size: 16px; line-height: 1.6; }
.blog-une__meta, .carte-article__date { display: flex; align-items: center; gap: 10px; margin: 0; font-size: 13px; color: #9E968A; }
.blog-une__meta i, .carte-article__date i { width: 4px; height: 4px; border-radius: 50%; background: currentColor; opacity: .6; }
.blog-une__cta, .carte-article__cta { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; font-size: 14.5px; color: var(--or-clair); margin-top: 6px; }
.blog-une__cta svg, .carte-article__cta svg { width: 16px; height: 16px; transition: transform .4s var(--ease); }
.blog-une:hover .blog-une__cta svg, .carte-article:hover .carte-article__cta svg { transform: translateX(5px); }
.blog-une:focus-within { outline: 3px solid var(--or-texte); outline-offset: 3px; }
.carte-article { transition: transform .5s var(--ease), box-shadow .5s var(--ease); }
.carte-article:hover { transform: translateY(-5px); box-shadow: 0 30px 60px -30px rgba(27,25,21,.35); }
.carte-article__media { position: relative; }
.carte-article__cat { position: absolute; left: 14px; top: 14px; background: rgba(14,13,11,.78); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); color: var(--blanc); font-size: 12px; font-weight: 600; border-radius: 999px; padding: 6px 12px; }
.carte-article__corps { display: flex; flex-direction: column; flex: 1; }
.carte-article__date { color: var(--or-texte); font-weight: 600; }
.carte-article__cta { color: var(--or-texte); margin-top: auto; padding-top: 16px; }
.carte-article p { margin-bottom: 4px; }
.blog .nav-links { display: flex; justify-content: center; gap: 8px; margin-top: 50px; }
.blog .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 0 14px; border-radius: 999px; border: 1px solid #E3DBCB; text-decoration: none; color: var(--encre); }
.blog .page-numbers.current { background: var(--noir); color: var(--blanc); border-color: var(--noir); }
.blog + .aide-choix { padding-top: 0; }
@media (max-width: 1024px) {
  .blog-une { grid-template-columns: minmax(0, 1fr); min-height: 0; }
  .blog-une__media { aspect-ratio: 16 / 9; }
  .blog-une__corps { padding: 30px 28px 34px; }
}
@media (max-width: 768px) {
  .blog { padding-top: 40px; }
  .blog-filtres { flex-wrap: nowrap; overflow-x: auto; margin: 0 -22px 30px; padding: 0 22px 4px; scrollbar-width: none; }
  .blog-filtres::-webkit-scrollbar { display: none; }
  .blog-filtres a { flex: none; }
  .blog-une { border-radius: 20px; }
}
/* ===== v1.6.0 : prix indicatifs ===== */
.fiche-tarif { margin: 26px 0 20px; padding: 20px 22px; border-radius: 18px; background: var(--ivoire); border: 1px solid #EDE3CF; }
.fiche-tarif p { margin: 0; }
.fiche-tarif__label { font-size: 12px; letter-spacing: .14em; text-transform: uppercase; font-weight: 600; color: var(--or-texte); margin-bottom: 6px !important; }
.fiche-tarif__prix { display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 12px; }
.fiche-tarif__prix b { font-size: 34px; font-weight: 300; font-stretch: 125%; letter-spacing: -.03em; line-height: 1.1; color: var(--encre); font-variant-numeric: tabular-nums; }
.fiche-tarif__prix span { font-size: 14px; font-weight: 600; color: var(--gris); }
.fiche-tarif__prix del { font-size: 17px; color: var(--gris); }
.fiche-tarif__reprise { margin-top: 8px !important; font-size: 14.5px; font-weight: 600; color: #2E7D4F; }
.fiche-tarif__mois { display: flex; align-items: center; gap: 10px; margin-top: 12px !important; padding: 10px 14px; border-radius: 12px; background: var(--blanc); font-size: 15px; font-weight: 600; color: var(--encre); }
.fiche-tarif__mois svg { width: 20px; height: 20px; flex: none; color: var(--or-texte); }
.fiche-tarif__note { margin-top: 10px !important; font-size: 14px; color: var(--gris); }
.fiche-tarif__mention { margin-top: 12px !important; font-size: 12px; line-height: 1.5; color: var(--gris); }
.carte-produit__tarif { margin: 6px 0 0; font-size: 13.5px; font-weight: 600; color: var(--encre); display: inline-flex; align-self: flex-start; background: var(--ivoire); border-radius: 999px; padding: 4px 12px; }
.section--ivoire .carte-produit__tarif { background: #F3EEE4; }
.vitrine-hero__prix { display: inline-flex; align-self: flex-start; font-size: 13px; font-weight: 600; color: var(--noir); background: var(--or-clair); border-radius: 999px; padding: 3px 11px; }
.tarifs-table { overflow-x: auto; border-radius: var(--rayon); border: 1px solid #EFEAE0; background: var(--blanc); }
.tarifs-table table { width: 100%; border-collapse: collapse; font-size: 15px; }
.tarifs-table thead th { text-align: left; font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: var(--or-texte); padding: 16px 22px; background: var(--ivoire); }
.tarifs-table thead th:last-child, .tarifs-table td { text-align: right; white-space: nowrap; }
.tarifs-table tbody th { text-align: left; font-weight: 500; padding: 15px 22px; color: var(--encre); }
.tarifs-table tbody th span { display: block; font-size: 12.5px; font-weight: 400; color: var(--gris); margin-top: 2px; }
.tarifs-table td { padding: 15px 22px; font-variant-numeric: tabular-nums; }
.tarifs-table td del { color: var(--gris); margin-right: 10px; font-size: 14px; }
.tarifs-table td b { font-weight: 600; }
.tarifs-table tbody tr + tr { border-top: 1px solid #F1ECE2; }
@media (max-width: 768px) {
  .fiche-tarif__prix b { font-size: 28px; }
  .grille-produits .carte-produit__tarif { font-size: 12px; padding: 3px 9px; }
  .tarifs-table thead th, .tarifs-table tbody th, .tarifs-table td { padding: 13px 14px; }
  .tarifs-table td { white-space: normal; }
  .tarifs-table td del { display: block; margin: 0; }
}
/* Formulaires : jamais plus larges que l'écran (options longues des listes) */
.form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.champ { min-width: 0; }
.champ input, .champ select, .champ textarea { width: 100%; max-width: 100%; min-width: 0; }
@media (max-width: 768px) { .form { grid-template-columns: minmax(0, 1fr); } }
.carte-produit__tarif, .vitrine-hero__prix { white-space: nowrap; }
/* La colonne doit occuper toute la hauteur de l'article pour que le sommaire reste collé */
.article-aside { align-self: stretch; }
.article-aside__colle { max-height: none; overflow: visible; top: var(--colle-top, 120px); }
/* Bandeau des marques : défilement infini */
.bmarques__defile { flex: 1; min-width: 0; overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 60px, #000 calc(100% - 60px), transparent 100%); mask-image: linear-gradient(90deg, transparent 0, #000 60px, #000 calc(100% - 60px), transparent 100%); }
.bmarques__piste { display: flex; width: max-content; animation: bmarques-defile 38s linear infinite; }
.bmarques__defile:hover .bmarques__piste, .bmarques__defile:focus-within .bmarques__piste { animation-play-state: paused; }
.bmarques .bmarques__liste { flex: none; flex-wrap: nowrap; justify-content: flex-start; gap: 0; width: auto; margin: 0; padding: 0; overflow: visible; -webkit-mask-image: none; mask-image: none; }
.bmarques .bmarques__liste li { flex: none; padding: 0 34px; }
@keyframes bmarques-defile { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (max-width: 1024px) { .bmarques__defile { width: 100%; } }
@media (max-width: 768px) {
  .bmarques__defile { width: calc(100% + 44px); margin: 0 -22px; -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 30px, #000 calc(100% - 30px), transparent 100%); mask-image: linear-gradient(90deg, transparent 0, #000 30px, #000 calc(100% - 30px), transparent 100%); }
  .bmarques__piste { animation-duration: 28s; }
  .bmarques .bmarques__liste li { padding: 0 22px; }
}
@media (prefers-reduced-motion: reduce) {
  .bmarques__piste { animation: none; width: auto; }
  .bmarques__piste .bmarques__liste[aria-hidden="true"] { display: none; }
  .bmarques .bmarques__liste { flex-wrap: wrap; gap: 6px 0; }
  .bmarques__defile { -webkit-mask-image: none; mask-image: none; }
}
/* Footer : pas de débordement sur les petits téléphones (360 px) */
.footer .haut > * { min-width: 0; }
.footer-lettre, .footer-lettre form, .footer-lettre .alerte-champ { max-width: 100%; min-width: 0; }
@media (max-width: 768px) { .footer .haut { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* ===== v1.7.0 : comparateur deux colonnes ===== */
.titre-sec--centre { display: block; text-align: center; max-width: 760px; margin-left: auto; margin-right: auto; }
.titre-sec--centre p { margin: 14px auto 0; }
.comp { max-width: 980px; margin: 0 auto; }
.comp__tetes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 48px; }
.comp__tete { display: flex; flex-direction: column; align-items: center; text-align: center; min-width: 0; }
.comp__choix { position: relative; display: block; width: 100%; max-width: 340px; margin-bottom: 24px; }
.comp__choix select { width: 100%; appearance: none; -webkit-appearance: none; min-height: 52px; padding: 0 46px 0 20px; border-radius: 14px; border: 1px solid #E3DBCB; background: var(--blanc); font: inherit; font-size: 16px; font-weight: 600; color: var(--encre); cursor: pointer; text-overflow: ellipsis; transition: border-color .3s, box-shadow .3s; }
.comp__choix select:hover { border-color: var(--or-texte); }
.comp__choix select:focus-visible { outline: none; border-color: var(--or-texte); box-shadow: 0 0 0 4px rgba(185,147,79,.2); }
.comp__choix svg { position: absolute; right: 18px; top: 50%; width: 18px; height: 18px; transform: translateY(-50%); pointer-events: none; color: var(--or-texte); }
.comp__fiche { display: flex; flex-direction: column; align-items: center; gap: 8px; width: 100%; transition: opacity .35s var(--ease), transform .35s var(--ease); }
.comp__fiche.is-change { opacity: 0; transform: translateY(8px); }
.comp__img { display: block; width: 100%; max-width: 320px; aspect-ratio: 4 / 3; border-radius: 20px; background: #F4F2EE; overflow: hidden; margin-bottom: 10px; }
.comp__img img { width: 100%; height: 100%; object-fit: contain; padding: 18px; mix-blend-mode: multiply; }
.comp__marque { font-size: 13px; font-weight: 600; color: var(--or-texte); }
.comp__nom { margin: 0; font-size: 26px; font-weight: 400; font-stretch: 115%; letter-spacing: -.02em; line-height: 1.15; }
.comp__nom a { color: var(--encre); text-decoration: none; }
.comp__prix { font-size: 14px; font-weight: 600; background: var(--ivoire); border-radius: 999px; padding: 4px 14px; }
.comp__ctas { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 10px 18px; margin-top: 10px; }
.comp__ctas .btn { min-height: 44px; padding: 0 22px; }
.comp__barre { position: sticky; top: 84px; z-index: 5; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 48px; padding: 14px 0; margin-top: 30px; background: var(--blanc); box-shadow: 0 10px 20px -16px rgba(27,25,21,.35); border-bottom: 1px solid var(--pierre); text-align: center; font-weight: 600; font-size: 15px; opacity: 0; pointer-events: none; transition: opacity .3s; }
.comp__barre.is-visible { opacity: 1; }
.comp__barre span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.comp__options { display: flex; justify-content: center; margin: 18px 0 8px; }
.comp__diff { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; cursor: pointer; font-size: 14.5px; color: var(--gris); }
.comp__diff input { width: 20px; height: 20px; accent-color: var(--or-texte); }
.comp__lignes { margin: 0; }
.comp__ligne { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 48px; padding: 22px 0; border-top: 1px solid var(--pierre); text-align: center; }
.comp__ligne[hidden] { display: none; }
.comp__label { grid-column: 1 / -1; margin: 0 0 10px; font-size: 12px; letter-spacing: .14em; text-transform: uppercase; font-weight: 600; color: var(--or-texte); }
.comp__val { margin: 0; font-size: 16px; line-height: 1.55; color: var(--encre); min-width: 0; overflow-wrap: anywhere; }
.comp__val.est-vide { color: #B5AD9E; }
@media (max-width: 1024px) { .comp__barre { top: 64px; } }
@media (max-width: 768px) {
  .comp__tetes, .comp__ligne, .comp__barre { gap: 0 16px; }
  .comp__choix { margin-bottom: 16px; }
  .comp__choix select { min-height: 48px; padding: 0 34px 0 12px; font-size: 14px; border-radius: 12px; }
  .comp__choix svg { right: 10px; width: 16px; height: 16px; }
  .comp__img { border-radius: 14px; margin-bottom: 4px; }
  .comp__img img { padding: 8px; }
  .comp__nom { font-size: 18px; }
  .comp__prix { font-size: 12px; padding: 3px 10px; }
  .comp__ctas { flex-direction: column; gap: 8px; width: 100%; }
  .comp__ctas .btn { width: 100%; padding: 0 10px; font-size: 14px; }
  .comp__ligne { padding: 16px 0; }
  .comp__label { font-size: 11px; letter-spacing: .1em; }
  .comp__val { font-size: 14px; }
  .comp__barre { font-size: 13px; }
}

/* Liens dans les zones sombres : blancs et soulignés (lisibilité et accessibilité) */
:is(.section--noir, .hero, .page-hero, .article-hero, .footer, .auteur, .aside-cta, .guide__carte, .blog-une, .vitrine-hero, .financement, .aide-choix__carte, .boutique-sec, .contact) :is(p, li, dd, label, span) a:not(.btn):not([class*="btn"]):not(.lien):not(.scene__nom):not(.chaine-hero__lien) {
  color: var(--blanc); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; text-decoration-color: rgba(255,255,255,.55);
}
:is(.section--noir, .hero, .page-hero, .article-hero, .footer, .auteur, .aside-cta, .guide__carte, .blog-une, .financement, .boutique-sec, .contact) :is(p, li, dd, label, span) a:not(.btn):not([class*="btn"]):not(.lien):not(.scene__nom):not(.chaine-hero__lien):hover { color: var(--or-clair); text-decoration-color: currentColor; }
:is(.section--noir, .hero, .page-hero, .article-hero, .auteur, .aside-cta, .guide__carte, .financement, .boutique-sec, .contact) a.lien, .lien--clair { color: var(--blanc); border-bottom-color: rgba(255,255,255,.6); }
:is(.section--noir, .hero, .page-hero, .article-hero, .auteur, .aside-cta, .guide__carte, .financement, .boutique-sec, .contact) a.lien:hover, .lien--clair:hover { color: var(--or-clair); border-bottom-color: currentColor; }
/* Menus du footer : liens de navigation, sans soulignement */
.footer ul a, .footer .bas-liens a { text-decoration: none !important; color: inherit; }
.footer ul a:hover, .footer .bas-liens a:hover { color: var(--or-clair); }
/* Texte courant : mots-clés en gras bien visibles */
.contenu strong, .contenu b, .fiche-presentation strong, .fiche-presentation b { font-weight: 600; color: var(--encre); }
.section--noir .contenu strong, .section--noir .contenu b { color: var(--blanc); }
.footer a[href^="mailto:"] { overflow-wrap: anywhere; }
.footer li { overflow-wrap: break-word; }

/* Bandeau cookies (v1.8.2) */
.cookies { position: fixed; z-index: 200; left: 24px; bottom: 24px; width: min(440px, calc(100vw - 48px)); padding: 24px 24px 22px; border-radius: 20px; background: rgba(14,13,11,.97); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); border: 1px solid rgba(185,147,79,.3); color: #E9E3D7; box-shadow: 0 30px 70px -20px rgba(0,0,0,.55); opacity: 0; transform: translateY(20px); transition: opacity .4s var(--ease), transform .4s var(--ease); }
.cookies.is-visible { opacity: 1; transform: none; }
.cookies__titre { margin: 0 0 8px; font-size: 17px; font-weight: 600; color: #fff; }
.cookies__texte { margin: 0 0 18px; font-size: 14px; line-height: 1.6; color: #CFC6B5; }
.cookies__texte a { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.cookies__actions { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.cookies .cookies__btn { min-height: 46px; padding: 0 18px; font-size: 14.5px; justify-content: center; width: 100%; }
.cookies .btn--contour { border-color: rgba(255,255,255,.45); color: #fff; background: transparent; }
.cookies .btn--contour:hover { background: #fff; color: var(--noir); }
.lien-cookies { padding: 0; background: none; border: 0; font: inherit; color: inherit; cursor: pointer; }
.lien-cookies:hover { color: var(--or-clair); }
@media (max-width: 760px) {
  .cookies { left: 12px; right: 12px; bottom: calc(12px + env(safe-area-inset-bottom)); width: auto; padding: 20px 18px 18px; }
  .lien-cookies { display: inline-flex; align-items: center; min-height: 44px; }
}
@media (prefers-reduced-motion: reduce) { .cookies { transition: none; transform: none; } }

/* Fiche technique sur fond noir (v1.8.2) */
.caracteristiques.section--noir { position: relative; overflow: hidden; }
.caracteristiques.section--noir::before { content: ""; position: absolute; width: 620px; height: 620px; right: -180px; top: -260px; border-radius: 50%; background: radial-gradient(circle, rgba(185,147,79,.16), transparent 65%); pointer-events: none; }
.caracteristiques.section--noir .wrap { position: relative; }
.caracteristiques.section--noir h2 { color: #fff; }
.caracteristiques.section--noir .caracteristiques__grille p { color: #B9B1A3; }
.section--noir .specs { border-top-color: rgba(255,255,255,.14); }
.section--noir .specs > div { border-bottom-color: rgba(255,255,255,.1); transition: background .3s; }
.section--noir .specs > div:hover { background: rgba(255,255,255,.03); }
.section--noir .specs dt { color: #A9A091; }
.section--noir .specs dd { color: #fff; }
@media (min-width: 1181px) { .caracteristiques.section--noir .caracteristiques__grille > div:first-child { position: sticky; top: 120px; } }

/* ===== Fiche produit façon Apple (v1.9.0) ===== */
/* Photo principale : agrandir */
.galerie-produit__zoom { position: absolute; inset: 0; z-index: 2; background: transparent; border: 0; padding: 0; cursor: zoom-in; display: flex; align-items: flex-start; justify-content: flex-end; }
.galerie-produit__zoom > span { margin: 16px; display: inline-flex; align-items: center; gap: 7px; padding: 8px 13px; border-radius: 999px; background: rgba(255,255,255,.92); border: 1px solid var(--pierre); color: var(--encre); font-size: 13px; font-weight: 600; box-shadow: 0 6px 16px -10px rgba(0,0,0,.3); opacity: .9; transform: translateY(0); transition: opacity .3s, transform .3s var(--ease), background .3s; }
.galerie-produit__zoom svg { width: 15px; height: 15px; }
.galerie-produit__zoom:hover > span, .galerie-produit__zoom:focus-visible > span { opacity: 1; background: #fff; transform: translateY(-1px); }
.galerie-produit__principale:hover .galerie-produit__img { transform: scale(1.03); }
.galerie-produit__principale .galerie-produit__img { transition: opacity .3s, transform .8s var(--ease); }

/* Galerie plein écran */
.zoom { position: fixed; inset: 0; width: 100vw; height: 100vh; height: 100dvh; max-width: none; max-height: none; margin: 0; padding: 0; border: 0; background: #0B0A09; color: #fff; overflow: hidden; }
.zoom[open] { display: grid; grid-template-rows: auto minmax(0, 1fr) auto; animation: zoom-entree .35s var(--ease); }
@keyframes zoom-entree { from { opacity: 0; } }
.zoom::backdrop { background: #0B0A09; }
.zoom__haut { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 16px 20px 8px 28px; }
.zoom__titre { margin: 0; font-size: 15px; font-weight: 600; color: #fff; }
.zoom__compteur { margin-left: 10px; color: #A9A091; font-weight: 400; font-variant-numeric: tabular-nums; }
.zoom__fermer, .zoom__nav { width: 48px; height: 48px; border-radius: 50%; background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.22); color: #fff; display: flex; align-items: center; justify-content: center; cursor: pointer; transition: background .3s; flex: none; }
.zoom__fermer:hover, .zoom__nav:hover { background: rgba(255,255,255,.22); }
.zoom__fermer svg, .zoom__nav svg { width: 20px; height: 20px; }
.zoom__scene { position: relative; display: flex; align-items: center; justify-content: center; padding: 10px 90px; min-height: 0; }
.zoom__img { max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; border-radius: 14px; background: #fff; transition: opacity .25s ease, transform .35s var(--ease); }
.zoom__img.is-change { opacity: 0; transform: scale(.985); }
.zoom__nav { position: absolute; top: 50%; transform: translateY(-50%); }
.zoom__nav--prec { left: 24px; }
.zoom__nav--suiv { right: 24px; }
.zoom__vignettes { list-style: none; margin: 0; padding: 12px 20px 20px; display: flex; gap: 10px; justify-content: center; overflow-x: auto; scrollbar-width: none; }
.zoom__vignettes::-webkit-scrollbar { display: none; }
.zoom__vignettes button { width: 64px; height: 64px; padding: 4px; border-radius: 10px; background: #fff; border: 2px solid transparent; opacity: .5; cursor: pointer; transition: opacity .3s, border-color .3s; flex: none; }
.zoom__vignettes button img { width: 100%; height: 100%; object-fit: contain; }
.zoom__vignettes button.est-actif, .zoom__vignettes button:hover { opacity: 1; border-color: var(--or); }
@media (max-width: 760px) {
  .zoom__haut { padding: 12px 12px 6px 18px; }
  .zoom__scene { padding: 6px 12px; }
  .zoom__img { border-radius: 10px; }
  .zoom__nav { top: auto; bottom: 10px; transform: none; width: 44px; height: 44px; background: rgba(11,10,9,.6); }
  .zoom__nav--prec { left: 16px; }
  .zoom__nav--suiv { right: 16px; }
  .zoom__vignettes { justify-content: flex-start; padding: 10px 12px 16px; }
  .zoom__vignettes button { width: 54px; height: 54px; }
}

/* Barre de navigation de la fiche */
.sous-nav { position: sticky; top: var(--hdr, 84px); z-index: 40; background: rgba(255,255,255,.96); -webkit-backdrop-filter: saturate(1.6) blur(16px); backdrop-filter: saturate(1.6) blur(16px); border-bottom: 1px solid var(--pierre); transition: box-shadow .3s; }
.sous-nav.is-colle { box-shadow: 0 10px 24px -20px rgba(27,25,21,.45); }
.sous-nav__grille { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 28px; min-height: 58px; }
.sous-nav__nom { margin: 0; font-weight: 600; font-size: 16px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 260px; }
.sous-nav__liens { list-style: none; margin: 0; padding: 0; display: flex; justify-content: flex-end; gap: 6px; overflow-x: auto; scrollbar-width: none; }
.sous-nav__liens::-webkit-scrollbar { display: none; }
.sous-nav__liens a { display: inline-flex; align-items: center; min-height: 40px; padding: 0 12px; border-radius: 999px; font-size: 14px; color: var(--gris); text-decoration: none; white-space: nowrap; transition: color .25s, background .25s; }
.sous-nav__liens a:hover { color: var(--encre); background: var(--ivoire); }
.sous-nav__liens a.est-actif { color: var(--encre); background: var(--ivoire); font-weight: 600; }
.sous-nav .sous-nav__cta { min-height: 38px; padding: 0 18px; font-size: 14px; }
html { scroll-padding-top: calc(var(--hdr, 84px) + var(--sous-nav, 0px) + 12px); }
@media (max-width: 1024px) {
  .sous-nav__grille { grid-template-columns: 1fr auto; gap: 10px; min-height: 52px; }
  .sous-nav__nom { display: none; }
  .sous-nav__liens { justify-content: flex-start; margin: 0 -8px; padding: 0 8px; mask-image: linear-gradient(90deg, #000 85%, transparent); -webkit-mask-image: linear-gradient(90deg, #000 85%, transparent); }
  .sous-nav__liens a { font-size: 13.5px; padding: 0 10px; }
}

/* L'essentiel : grille de points forts */
.essentiel .titre-sec { margin-bottom: 44px; }
.bento { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.bento__case { position: relative; background: var(--blanc); border-radius: 26px; padding: 30px 30px 32px; display: flex; flex-direction: column; justify-content: flex-start; min-height: 220px; overflow: hidden; transition: transform .5s var(--ease), box-shadow .5s var(--ease); }
.bento__case:hover { transform: translateY(-3px); box-shadow: 0 24px 40px -30px rgba(27,25,21,.4); }
.bento__case--une { grid-column: span 2; grid-row: span 2; background: var(--noir); color: #fff; padding: 0; display: grid; grid-template-rows: minmax(0, 1fr) auto; min-height: 480px; }
.bento__visuel { display: block; width: 100%; height: 100%; min-height: 0; padding: 30px 30px 0; background: radial-gradient(ellipse at 50% 60%, rgba(185,147,79,.22), transparent 62%); border: 0; cursor: zoom-in; }
.bento__visuel img { width: 100%; height: 100%; max-height: 360px; object-fit: contain; transition: transform .8s var(--ease); }
.bento__case--une:hover .bento__visuel img { transform: scale(1.04); }
.bento__texte { padding: 0 34px 32px; }
.bento__marque { margin: 0 0 6px; font-size: 13px; letter-spacing: .08em; text-transform: uppercase; color: var(--or-clair); font-weight: 600; }
.bento__grand { margin: 0 0 8px; font-size: clamp(24px, 2.2vw, 32px); line-height: 1.1; font-weight: 300; font-stretch: 125%; letter-spacing: -.02em; color: #fff; }
.bento__texte p:last-child { margin: 0; color: #CFC6B5; font-size: 16px; line-height: 1.55; max-width: 560px; }
.bento__picto { width: 46px; height: 46px; border-radius: 14px; background: var(--ivoire); color: var(--or-texte); display: flex; align-items: center; justify-content: center; margin-bottom: auto; }
.bento__picto svg { width: 23px; height: 23px; }
.bento__chiffre { margin: 26px 0 4px; font-size: clamp(34px, 3.2vw, 50px); line-height: 1; font-weight: 600; font-stretch: 125%; letter-spacing: -.03em; color: var(--or-texte); }
.bento__point { margin: 22px 0 0; font-size: 15.5px; line-height: 1.5; color: var(--encre); font-weight: 500; }
.bento__chiffre + .bento__point { margin-top: 10px; color: var(--gris); font-weight: 400; }
.bento--4 .bento__case:nth-child(5) { grid-column: span 2; }
.bento--3 .bento__case:nth-child(4) { grid-column: span 3; }
.bento--2 .bento__case--une, .bento--1 .bento__case--une { grid-row: span 1; }
@media (max-width: 1024px) {
  .bento { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .bento__case--une { grid-column: span 2; grid-row: span 1; min-height: 0; }
  .bento__visuel { height: 300px; }
  .bento--4 .bento__case:nth-child(5), .bento--3 .bento__case:nth-child(4) { grid-column: span 2; }
  .bento--5 .bento__case:nth-child(6) { grid-column: span 2; }
}
@media (max-width: 600px) {
  .bento { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .bento__case--une, .bento .bento__case:nth-child(n) { grid-column: auto; }
  .bento__case { min-height: 0; padding: 24px; border-radius: 22px; }
  .bento__visuel { height: 240px; padding: 20px 20px 0; }
  .bento__texte { padding: 0 24px 26px; }
  .bento__point { margin-top: 18px; }
}

/* Présentation : introduction, vidéo large, récit en sections */
.presentation__tete { max-width: 860px; margin: 0 auto; text-align: center; }
.presentation__tete h2 { font-size: clamp(32px, 3.6vw, 54px); line-height: 1.05; font-weight: 300; font-stretch: 125%; letter-spacing: -.03em; margin: 18px 0 24px; }
.presentation__intro, .presentation__intro p { font-size: clamp(18px, 1.5vw, 22px); line-height: 1.6; color: var(--encre); }
.presentation__intro p { margin: 0 0 14px; }
.presentation__video { position: relative; top: 0; max-width: 1100px; margin: 54px auto 0; }
.presentation__video .video { aspect-ratio: 16 / 9; border-radius: 28px; }
.recit { margin-top: 40px; }
.recit__ligne { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 80px; align-items: center; padding: 70px 0; border-top: 1px solid var(--pierre); }
.recit__ligne:first-child { border-top: 0; }
.recit__ligne--inverse .recit__visuel { order: 2; }
.recit__ligne--seule { grid-template-columns: minmax(0, 760px); justify-content: center; }
.recit__visuel { position: relative; display: block; width: 100%; aspect-ratio: 4 / 3; border-radius: 28px; background: var(--ivoire); border: 0; padding: 0; overflow: hidden; cursor: zoom-in; }
.recit__visuel img { width: 100%; height: 100%; object-fit: contain; padding: 36px; transition: transform .9s var(--ease); }
.recit__visuel:hover img { transform: scale(1.05); }
.recit__loupe { position: absolute; right: 16px; bottom: 16px; width: 40px; height: 40px; border-radius: 50%; background: rgba(255,255,255,.92); color: var(--encre); display: flex; align-items: center; justify-content: center; opacity: 0; transform: translateY(6px); transition: opacity .3s, transform .3s var(--ease); }
.recit__loupe svg { width: 17px; height: 17px; }
.recit__visuel:hover .recit__loupe, .recit__visuel:focus-visible .recit__loupe { opacity: 1; transform: none; }
.recit__num { display: block; font-size: 15px; font-weight: 600; letter-spacing: .1em; color: var(--or-texte); margin-bottom: 14px; }
.recit__texte h3 { margin: 0 0 18px; font-size: clamp(26px, 2.5vw, 38px); line-height: 1.1; font-weight: 300; font-stretch: 125%; letter-spacing: -.025em; }
.recit__texte .contenu p { color: var(--gris); }
@media (hover: none) { .recit__loupe { opacity: 1; transform: none; } .galerie-produit__zoom > span { opacity: 1; } }
@media (max-width: 1024px) {
  .recit__ligne { grid-template-columns: minmax(0, 1fr); gap: 30px; padding: 50px 0; }
  .recit__ligne--inverse .recit__visuel { order: 0; }
  .presentation__video { margin-top: 36px; }
}
@media (max-width: 600px) {
  .recit__visuel { border-radius: 20px; }
  .recit__visuel img { padding: 22px; }
  .presentation__video .video { border-radius: 18px; }
}
/* Photos pleine case (les photos produit ont leur propre fond) */
.bento__case--une { display: flex; flex-direction: column; justify-content: flex-end; }
.bento__visuel { position: absolute; inset: 0; height: auto !important; padding: 0 !important; background: var(--noir); }
.bento__visuel img { max-height: none; object-fit: cover; }
.bento__case--une::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(180deg, rgba(14,13,11,0) 25%, rgba(14,13,11,.72) 55%, rgba(14,13,11,.97) 100%); }
.bento__texte { position: relative; z-index: 1; pointer-events: none; }
.bento__texte a { pointer-events: auto; }
.bento__point:only-of-type { font-size: 18px; line-height: 1.4; font-weight: 600; letter-spacing: -.01em; }
.bento__picto + .bento__point { margin-top: 26px; }
.recit__visuel img { object-fit: cover; padding: 0; }
@media (max-width: 1024px) { .bento__case--une { min-height: 380px; } }
@media (max-width: 600px) { .bento__case--une { min-height: 420px; } }

/* ===== Pages marques (v1.9.0) ===== */
.marque-hero { padding: 60px 0 0; }
.marque-hero__grille { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: 60px; align-items: end; }
.marque-hero__texte { padding-bottom: 80px; }
.marque-hero__marque { margin: 26px 0 0; }
.marque-hero__logo { height: 46px; width: auto; max-width: 260px; object-fit: contain; object-position: left center; }
.marque-hero__titre { font-size: clamp(34px, 4vw, 60px); line-height: 1.05; font-weight: 300; font-stretch: 125%; letter-spacing: -.03em; margin: 22px 0 22px; }
.marque-hero__chiffres { list-style: none; margin: 46px 0 0; padding: 26px 0 0; border-top: 1px solid rgba(255,255,255,.12); display: flex; gap: 44px; flex-wrap: wrap; }
.marque-hero__chiffres li { display: flex; flex-direction: column; gap: 2px; }
.marque-hero__chiffres b { font-size: clamp(26px, 2.4vw, 36px); font-weight: 300; font-stretch: 125%; color: #fff; line-height: 1.1; }
.marque-hero__chiffres span { font-size: 13.5px; color: #A9A091; }
.marque-hero__visuel { position: relative; align-self: stretch; min-height: 420px; border-radius: 30px 30px 0 0; overflow: hidden; background: #fff; }
.marque-hero__visuel img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.marque-hero__visuel::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(14,13,11,0) 70%, rgba(14,13,11,.25)); pointer-events: none; }
.marque-atouts__grille { list-style: none; margin: 44px 0 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.marque-atouts__grille .bento__case { min-height: 260px; }
.marque-atouts__grille h3 { margin: 30px 0 10px; font-size: 21px; line-height: 1.2; font-weight: 600; letter-spacing: -.01em; }
.marque-atouts__grille p { margin: 0; font-size: 15.5px; line-height: 1.55; color: var(--gris); }
.marque-gamme__filtres { display: flex; flex-wrap: wrap; gap: 8px; align-self: end; }
.marque-gamme__filtres .tag { font-size: 13.5px; padding: 7px 14px; text-decoration: none; transition: background .25s, color .25s; }
.marque-gamme__filtres .tag span { opacity: .65; margin-left: 4px; }
.marque-gamme__filtres .tag:hover { background: var(--or-bouton); border-color: var(--or-bouton); color: #fff; }
.marque-famille { margin-top: 64px; scroll-margin-top: calc(var(--hdr, 84px) + 20px); }
.marque-famille:first-of-type { margin-top: 40px; }
.marque-famille__tete { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr) auto; gap: 10px 40px; align-items: baseline; padding-bottom: 22px; margin-bottom: 26px; border-bottom: 1px solid var(--pierre); }
.marque-famille__tete h3 { margin: 0; font-size: clamp(24px, 2.2vw, 32px); font-weight: 300; font-stretch: 125%; letter-spacing: -.02em; }
.marque-famille__tete p { margin: 0; color: var(--gris); font-size: 16px; }
/* Index des marques */
.marques-liste { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.marque-carte a { display: flex; flex-direction: column; height: 100%; border-radius: 26px; overflow: hidden; background: var(--ivoire); color: var(--encre); text-decoration: none; transition: transform .5s var(--ease), box-shadow .5s var(--ease); }
.marque-carte a:hover { transform: translateY(-4px); box-shadow: 0 30px 50px -34px rgba(27,25,21,.5); }
.marque-carte__logo { display: flex; align-items: center; justify-content: center; height: 170px; background: var(--noir); padding: 30px; background-image: radial-gradient(ellipse at 50% 120%, rgba(185,147,79,.28), transparent 60%); }
.marque-carte__logo img { max-height: 54px; max-width: 75%; width: auto; height: auto; object-fit: contain; }
.marque-carte__nom { color: #fff; font-size: 28px; font-weight: 300; font-stretch: 125%; }
.marque-carte__corps { display: flex; flex-direction: column; gap: 8px; padding: 26px 28px 28px; flex: 1; }
.marque-carte__corps h3 { margin: 0; font-size: 22px; font-weight: 600; }
.marque-carte__origine { color: var(--gris); font-size: 15px; line-height: 1.5; }
.marque-carte__familles { font-size: 13.5px; color: var(--or-texte); font-weight: 600; }
.marque-carte .lien-fleche { margin-top: auto; padding-top: 12px; }
.fiche-marque { margin: 0 0 18px; }
@media (max-width: 1180px) {
  .marque-atouts__grille { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .marques-liste { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 1024px) {
  .marque-hero__grille { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .marque-hero__texte { padding-bottom: 44px; }
  .marque-hero__visuel { min-height: 300px; aspect-ratio: 4 / 3; }
  .marque-famille__tete { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 600px) {
  .marque-hero { padding-top: 40px; }
  .marque-hero__logo { height: 36px; }
  .marque-hero__chiffres { gap: 26px; }
  .marque-atouts__grille, .marques-liste { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .marque-atouts__grille .bento__case { min-height: 0; }
  .marque-hero__visuel { min-height: 240px; border-radius: 22px 22px 0 0; }
}
.hotline-tel { white-space: nowrap; font-size: clamp(26px, 2.4vw, 38px); }
.marques-liste--principales { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.marques-liste--principales .marque-carte__logo { height: 220px; }
.marques-liste__titre { margin: 70px 0 22px; font-size: 13px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--or-texte); }
@media (max-width: 600px) { .marques-liste--principales { grid-template-columns: minmax(0, 1fr); } .marques-liste--principales .marque-carte__logo { height: 170px; } .marques-liste__titre { margin-top: 44px; } }

/* Section « Votre projet » : photo du showroom sous un voile noir (v1.9.1) */
.contact-sec { position: relative; overflow: hidden; isolation: isolate; border-top: 1px solid rgba(185,147,79,.22); border-bottom: 1px solid rgba(185,147,79,.22); }
.contact-fond { position: absolute; inset: 0; z-index: -1; overflow: hidden; background: #0e0d0b; }
.contact-fond img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: center 60%; filter: grayscale(.4) contrast(1.05); transform: scale(1.04); }
.contact-fond::after { content: ""; position: absolute; inset: -2px; z-index: 1; background:
  linear-gradient(90deg, rgba(14,13,11,.92) 0%, rgba(14,13,11,.74) 42%, rgba(14,13,11,.64) 62%, rgba(14,13,11,.86) 100%),
  radial-gradient(ellipse at 20% 0%, rgba(185,147,79,.18), transparent 55%); }
.contact-sec .form { background: rgba(23,21,19,.82); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); border-color: rgba(255,255,255,.12); box-shadow: 0 40px 80px -40px rgba(0,0,0,.7); }
@media (max-width: 1024px) {
  .contact-fond::after { background: linear-gradient(180deg, rgba(14,13,11,.86) 0%, rgba(14,13,11,.78) 40%, rgba(14,13,11,.92) 100%); }
}

/* ===== Offres du moment (v2.0.0) ===== */
.offres-grille { list-style: none; margin: 40px 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.offres-grille--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.offre a { position: relative; display: flex; flex-direction: column; height: 100%; border-radius: 24px; overflow: hidden; background: var(--blanc); border: 1px solid #EFEAE0; color: var(--encre); text-decoration: none; transition: transform .5s var(--ease), box-shadow .5s var(--ease); }
.offre a:hover { transform: translateY(-4px); box-shadow: 0 30px 50px -34px rgba(27,25,21,.45); }
.section--ivoire .offre a { border-color: transparent; }
.offre__badge { position: absolute; z-index: 2; top: 16px; left: 16px; padding: 7px 13px; border-radius: 999px; background: var(--noir); color: #fff; font-size: 13px; font-weight: 600; }
.offre__img { display: block; aspect-ratio: 4 / 3; background: #fff; }
.offre__img img { width: 100%; height: 100%; object-fit: contain; padding: 24px; transition: transform .8s var(--ease); }
.offre a:hover .offre__img img { transform: scale(1.04); }
.offre__corps { display: flex; flex-direction: column; gap: 6px; padding: 22px 24px 24px; flex: 1; }
.offre__marque { font-size: 12.5px; font-weight: 600; color: var(--or-texte); letter-spacing: .02em; }
.offre__corps h3 { margin: 0; font-size: 20px; font-weight: 600; line-height: 1.25; }
.offre__prix { display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 8px; margin-top: 6px; }
.offre__prix del { color: var(--gris); font-size: 15px; }
.offre__prix b { font-size: 26px; font-weight: 600; letter-spacing: -.02em; }
.offre__prix small { color: var(--gris); font-size: 13px; }
.offre__mois { font-size: 14px; color: var(--gris); }
.offre .lien-fleche { margin-top: auto; padding-top: 12px; }
.offres-table { margin-top: 36px; }
.offres-table th a { color: var(--encre); font-weight: 600; text-decoration: none; }
.offres-table th a:hover { color: var(--or-texte); text-decoration: underline; }
.offres-table__mois { color: var(--or-texte); }
.offres-mention { margin: 16px 0 0; font-size: 13px; color: var(--gris); }
.offres-actions, .flux__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 34px; }
.offres-actions .btn svg { width: 17px; height: 17px; }
@media (max-width: 1180px) { .offres-grille, .offres-grille--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .offres-grille, .offres-grille--4 { grid-template-columns: minmax(0, 1fr); gap: 14px; } .offres-actions .btn, .flux__actions .btn { width: 100%; justify-content: center; } }

/* ===== Configurateur ===== */
.config__grille { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 50px; align-items: start; }
.config__etape { border: 0; margin: 0 0 40px; padding: 0; min-width: 0; }
.config__etape legend { display: flex; align-items: center; gap: 12px; margin-bottom: 18px; padding: 0; font-size: clamp(22px, 2vw, 28px); font-weight: 300; font-stretch: 125%; letter-spacing: -.02em; }
.config__etape legend span { width: 34px; height: 34px; border-radius: 50%; background: var(--noir); color: #fff; font-size: 15px; font-weight: 600; font-stretch: 100%; display: inline-flex; align-items: center; justify-content: center; letter-spacing: 0; }
.config__profils, .config__gammes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.config__gammes { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.config__besoins { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.config__profil, .config__besoin, .config__gamme { position: relative; display: flex; align-items: flex-start; gap: 14px; padding: 18px 20px; border-radius: 18px; border: 1.5px solid var(--pierre); background: var(--blanc); cursor: pointer; transition: border-color .25s, background .25s, box-shadow .25s; }
.config__besoin[hidden] { display: none; }
.config__profil input, .config__besoin input, .config__gamme input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.config__profil b, .config__besoin b, .config__gamme b { display: block; font-size: 16px; font-weight: 600; margin-bottom: 3px; }
.config__profil small, .config__besoin small, .config__gamme small { display: block; font-size: 13.5px; line-height: 1.45; color: var(--gris); }
.config__profil:hover, .config__besoin:hover, .config__gamme:hover { border-color: #CDBF9F; }
.config__profil:has(input:checked), .config__besoin:has(input:checked), .config__gamme:has(input:checked) { border-color: var(--or-bouton); background: #FBF8F2; box-shadow: 0 0 0 3px rgba(140,106,46,.12); }
.config__profil:has(input:focus-visible), .config__besoin:has(input:focus-visible), .config__gamme:has(input:focus-visible) { outline: 2px solid var(--or-texte); outline-offset: 2px; }
.config__picto { flex: none; width: 40px; height: 40px; border-radius: 12px; background: var(--ivoire); color: var(--or-texte); display: flex; align-items: center; justify-content: center; }
.config__picto svg { width: 20px; height: 20px; }
.config__besoin > span:nth-of-type(2) { flex: 1; }
.config__coche { flex: none; width: 24px; height: 24px; border-radius: 50%; border: 1.5px solid var(--pierre); display: flex; align-items: center; justify-content: center; color: transparent; transition: all .25s; }
.config__coche svg { width: 14px; height: 14px; }
.config__besoin:has(input:checked) .config__coche { background: var(--or-bouton); border-color: var(--or-bouton); color: #fff; }
.config__resultat { position: sticky; top: calc(var(--hdr, 84px) + 20px); }
.config__colle { background: var(--noir); color: #E9E3D7; border-radius: 26px; padding: 28px; box-shadow: 0 40px 70px -40px rgba(0,0,0,.6); }
.config__titre { margin: 0 0 16px; font-size: 24px; font-weight: 300; font-stretch: 125%; color: #fff; }
.config__liste { list-style: none; margin: 0 0 18px; padding: 0; display: flex; flex-direction: column; gap: 8px; max-height: 340px; overflow-y: auto; }
.config__liste a { display: grid; grid-template-columns: 56px minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 8px; border-radius: 14px; background: rgba(255,255,255,.05); color: #fff; text-decoration: none; transition: background .25s; }
.config__liste a:hover { background: rgba(255,255,255,.1); }
.config__liste img, .config__sans-img { width: 56px; height: 56px; border-radius: 10px; background: #fff; object-fit: contain; display: block; }
.config__liste small { display: block; font-size: 11.5px; color: var(--or-clair); font-weight: 600; }
.config__liste b { display: block; font-size: 15px; font-weight: 600; line-height: 1.3; }
.config__liste em { font-style: normal; font-size: 14px; color: #CFC6B5; white-space: nowrap; }
.config__vide { font-size: 14.5px; color: #A9A091; padding: 6px 0 4px; }
.config__totaux { margin: 0; padding: 16px 0; border-top: 1px solid rgba(255,255,255,.12); border-bottom: 1px solid rgba(255,255,255,.12); display: grid; gap: 10px; }
.config__totaux div { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
.config__totaux dt { font-size: 14px; color: #A9A091; }
.config__totaux dd { margin: 0; font-size: 20px; font-weight: 600; color: #fff; white-space: nowrap; }
.config__mois dd span { font-size: 34px; font-weight: 600; letter-spacing: -.02em; color: var(--or-clair); }
.config__mois dd small { margin-left: 6px; font-size: 13px; color: #A9A091; font-weight: 400; }
.config__note { margin: 10px 0 0; font-size: 13px; color: #A9A091; }
.config__renta { margin-top: 18px; }
.config__renta label { display: block; font-size: 13.5px; color: #CFC6B5; margin-bottom: 8px; line-height: 1.45; }
.config__renta input { width: 100%; min-height: 48px; padding: 0 16px; border-radius: 12px; border: 1px solid rgba(255,255,255,.18); background: rgba(255,255,255,.06); color: #fff; font: inherit; }
.config__renta-res { margin: 10px 0 0; padding: 12px 14px; border-radius: 12px; background: rgba(185,147,79,.14); color: #F1E7D2; font-size: 14.5px; line-height: 1.5; }
.config__renta-res b { color: #fff; }
.config__cta { width: 100%; justify-content: center; margin-top: 20px; }
.config__cta:disabled { opacity: .45; cursor: not-allowed; }
.config__mention { margin: 12px 0 0; font-size: 12px; line-height: 1.5; color: #8F877A; }
.config__noscript { margin-top: 20px; }
@media (max-width: 1180px) { .config__grille { grid-template-columns: minmax(0, 1fr); } .config__resultat { position: static; } }
@media (max-width: 760px) { .config__profils, .config__besoins, .config__gammes { grid-template-columns: minmax(0, 1fr); } .config__colle { padding: 22px; } }

/* ===== Flux numériques ===== */
.flux__etapes { list-style: none; margin: 44px 0 0; padding: 0; counter-reset: flux; }
.flux__etape { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); gap: 50px; padding: 40px 0; border-top: 1px solid var(--pierre); }
.flux__etape:last-child { border-bottom: 1px solid var(--pierre); }
.flux__num { display: block; font-size: 15px; font-weight: 600; letter-spacing: .1em; color: var(--or-texte); margin-bottom: 10px; }
.flux__tete h3 { margin: 0 0 12px; font-size: clamp(24px, 2.2vw, 32px); line-height: 1.12; font-weight: 300; font-stretch: 125%; letter-spacing: -.02em; }
.flux__tete p { margin: 0; color: var(--gris); }
.flux__produits { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; align-content: start; }
.flux__produits a { display: grid; grid-template-columns: 64px minmax(0, 1fr) auto; gap: 14px; align-items: center; padding: 10px 14px 10px 10px; border-radius: 16px; background: var(--ivoire); color: var(--encre); text-decoration: none; transition: background .25s, transform .4s var(--ease); }
.flux__produits a:hover { background: #EFE8DA; transform: translateY(-2px); }
.flux__img { width: 64px; height: 64px; border-radius: 12px; background: #fff; overflow: hidden; display: block; }
.flux__img img { width: 100%; height: 100%; object-fit: contain; }
.flux__txt small { display: block; font-size: 12px; font-weight: 600; color: var(--or-texte); }
.flux__txt b { display: block; font-size: 15.5px; font-weight: 600; line-height: 1.3; }
.flux__txt em { display: block; font-style: normal; font-size: 13px; color: var(--gris); }
.flux__produits svg { width: 16px; height: 16px; color: var(--or-texte); }
.flux-cartes { list-style: none; margin: 36px 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.flux-cartes--grandes { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 0; }
.flux-cartes a { display: flex; flex-direction: column; gap: 10px; height: 100%; padding: 28px; border-radius: 24px; background: var(--blanc); color: var(--encre); text-decoration: none; border: 1px solid #EFEAE0; transition: transform .5s var(--ease), box-shadow .5s var(--ease); }
.flux-cartes a:hover { transform: translateY(-4px); box-shadow: 0 30px 50px -34px rgba(27,25,21,.45); }
.flux-cartes h3 { margin: 0; font-size: 22px; font-weight: 600; }
.flux-cartes p { margin: 0; color: var(--gris); font-size: 15.5px; }
.flux-cartes .lien-fleche { margin-top: auto; padding-top: 8px; }
.flux-cartes--grandes a { background: var(--noir); color: #fff; border: 0; padding: 34px; background-image: radial-gradient(ellipse at 100% 0%, rgba(185,147,79,.22), transparent 55%); }
.flux-cartes--grandes h3 { font-size: 28px; font-weight: 300; font-stretch: 125%; letter-spacing: -.02em; color: #fff; }
.flux-cartes--grandes p { color: #CFC6B5; }
.flux-cartes--grandes .lien-fleche { color: var(--or-clair); }
.flux-cartes__etapes { margin: 8px 0 0; padding: 0; list-style: none; counter-reset: e; display: flex; flex-wrap: wrap; gap: 6px; }
.flux-cartes__etapes li { counter-increment: e; font-size: 13px; padding: 5px 11px; border-radius: 999px; border: 1px solid rgba(255,255,255,.18); color: #E9E3D7; }
.flux-cartes__etapes li::before { content: counter(e) ". "; color: var(--or-clair); font-weight: 600; }
.flux-raccourcis { margin-top: 44px; display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; padding: 22px 24px; border-radius: 20px; background: var(--blanc); }
.flux-raccourcis p { margin: 0; font-weight: 600; }
.flux-raccourcis ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; flex: 1; }
.flux-raccourcis ul a { display: inline-flex; align-items: center; min-height: 38px; padding: 0 14px; border-radius: 999px; border: 1px solid var(--pierre); color: var(--encre); text-decoration: none; font-size: 14px; transition: border-color .25s, color .25s; }
.flux-raccourcis ul a:hover { border-color: var(--or-texte); color: var(--or-texte); }
.fiche-flux { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0 0 14px; font-size: 13.5px; color: var(--gris); }
.fiche-flux .tag { text-decoration: none; font-size: 12.5px; padding: 4px 11px; }
.fiche-flux .tag:hover { background: var(--or-bouton); border-color: var(--or-bouton); color: #fff; }
@media (max-width: 1024px) {
  .flux__etape { grid-template-columns: minmax(0, 1fr); gap: 20px; padding: 32px 0; }
  .flux-cartes, .flux-cartes--grandes { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 600px) { .flux__produits { grid-template-columns: minmax(0, 1fr); } .flux-raccourcis .btn { width: 100%; justify-content: center; } }
.offre__img { position: relative; overflow: hidden; }
.offre__img img { position: absolute; inset: 0; width: 100%; height: 100%; }
.offres-table th:nth-child(n+2), .offres-table td { text-align: right; }
/* Barre avec l'entrée « Services » (v2.0.1) : on resserre pour que tout tienne */
@media (max-width: 1600px) and (min-width: 1181px) {
  .header .compte { display: none; }
  .header > .wrap { gap: 22px; }
  .header .wrap .nav-btn { padding-left: 10px; padding-right: 10px; }
}
@media (max-width: 1440px) and (min-width: 1181px) {
  .header > .wrap { gap: 16px; }
  .header .wrap .nav-btn { padding-left: 8px; padding-right: 8px; font-size: 14.5px; }
  .header .nav-boutique .bientot { display: none; }
  .header-actions > .btn--or { padding-left: 18px; padding-right: 18px; }
}
@media (max-width: 1300px) and (min-width: 1181px) {
  .header .wrap .nav-btn { padding-left: 6px; padding-right: 6px; font-size: 14px; }
  .header .nav-btn svg { width: 12px; }
}
/* Fenêtres plein écran (photos, vidéo) : curseur natif, le curseur décoratif passerait sous la fenêtre (v2.0.4) */
html.modale-ouverte .curseur, html.modale-ouverte .curseur-point, html:has(dialog[open]) .curseur, html:has(dialog[open]) .curseur-point { display: none !important; }
html.modale-ouverte.has-curseur, html.modale-ouverte.has-curseur *, html:has(dialog[open]) * { cursor: auto !important; }
dialog[open] a, dialog[open] button, html.modale-ouverte dialog a, html.modale-ouverte dialog button { cursor: pointer !important; }
.zoom[open] .zoom__scene { cursor: zoom-out !important; }
.zoom[open] .zoom__img { cursor: default !important; }
html.modale-ouverte.has-curseur dialog[open] a, html.modale-ouverte.has-curseur dialog[open] button, html:has(dialog[open]) dialog[open] a, html:has(dialog[open]) dialog[open] button { cursor: pointer !important; }

/* ─── v2.1.0 Pages marques détaillées ─── */
.marque-profils__grille { list-style: none; margin: 36px 0 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.marque-profil { display: flex; flex-direction: column; gap: 12px; padding: 30px; border-radius: 24px; background: var(--blanc, #fff); border: 1px solid #EFEAE0; }
.marque-profil h3 { margin: 0; font-size: 24px; font-weight: 600; }
.marque-profil > p { margin: 0 0 6px; color: var(--gris); }
.marque-profil .flux__produits { grid-template-columns: minmax(0, 1fr); margin-top: auto; }
.marque-profils .flux__actions { margin-top: 32px; }
.marque-histoire__grille { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 70px; align-items: center; }
.marque-histoire__texte h2 { margin: 18px 0 24px; font-size: clamp(32px, 3.7vw, 56px); line-height: 1.08; font-weight: 300; letter-spacing: -.03em; color: #fff; }
.marque-histoire__texte p { color: #CFC6B5; margin: 0 0 16px; max-width: 62ch; }
.marque-reperes { margin: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.marque-reperes > div { padding: 26px 24px; border-radius: 22px; border: 1px solid rgba(255,255,255,.12); background: rgba(255,255,255,.04); }
.marque-reperes dt { font-size: clamp(30px, 3.4vw, 44px); font-weight: 300; font-stretch: 125%; letter-spacing: -.02em; color: var(--or-clair); line-height: 1.05; white-space: nowrap; }
.marque-reperes dd { margin: 8px 0 0; color: #CFC6B5; font-size: 15px; }
.marque-liens__type { font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: var(--or-texte); font-weight: 600; }
@media (max-width: 1024px) {
  .marque-profils__grille, .marque-histoire__grille { grid-template-columns: minmax(0, 1fr); }
  .marque-histoire__grille { gap: 36px; }
}
@media (max-width: 600px) { .marque-profil { padding: 22px; } .marque-reperes > div { padding: 20px 18px; } }
.marque-histoire__texte h2 .or { color: var(--or-clair); }

/* ─── v2.2.0 Section métiers : fond noir et photos de praticiens ─── */
.metiers-sec .metier { background: #171512; color: #fff; border: 1px solid rgba(255,255,255,.08); }
.metiers-sec .metier:hover { box-shadow: 0 30px 60px -30px rgba(0,0,0,.8); border-color: rgba(214,178,110,.35); }
.metiers-sec .metier .img { background: #0E0D0B; }
.metiers-sec .metier h3 { color: #fff; }
.metiers-sec .metier p { color: #B9B1A3; }
.metiers-sec .metier .num, .metiers-sec .metier .fleche { color: var(--or-clair); }
.metiers-sec--blanc .metier { background: var(--ivoire); }
@media (min-width: 1025px) { .metiers--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } .metiers--2 .metier .img { aspect-ratio: 16 / 9; } }

/* ─── v2.2.1 Hero des pages métier : photo en arrière-plan ─── */
.page-hero--fond { padding: 110px 0 130px; }
.page-hero--fond .page-hero__img { position: absolute; inset: 0; }
.page-hero--fond .page-hero__img img { width: 100%; height: 100%; object-fit: cover; object-position: 70% 40%; }
.page-hero--fond .page-hero__img::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(14,13,11,.94) 0%, rgba(14,13,11,.78) 38%, rgba(14,13,11,.35) 75%, rgba(14,13,11,.25) 100%), linear-gradient(0deg, rgba(14,13,11,.6) 0%, rgba(14,13,11,0) 40%); }
.page-hero--fond .chapo { max-width: 620px; }
@media (max-width: 1024px) {
  .page-hero--fond { padding: 80px 0 90px; }
  .page-hero--fond .page-hero__img::after { background: rgba(14,13,11,.72); }
}

/* ─── v2.3.0 Comparatif : tableau lisible (libellé à gauche, valeurs alignées, valeurs identiques fusionnées) ─── */
.comp { max-width: 1080px; }
.comp__entete, .comp__ligne, .comp__barre { display: grid; grid-template-columns: 220px repeat(2, minmax(0, 1fr)); gap: 0 32px; text-align: left; }
.comp__barre-vide { display: block; }
.comp__entete { margin-top: 26px; padding: 14px 24px; border-radius: 16px 16px 0 0; background: var(--noir); color: #fff; font-size: 14px; font-weight: 600; }
.comp__entete span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.comp__entete span:first-child { color: var(--or-clair); font-size: 12px; letter-spacing: .12em; text-transform: uppercase; align-self: center; }
.comp__lignes { border: 1px solid #ECE6DA; border-top: 0; border-radius: 0 0 16px 16px; overflow: hidden; }
.comp__ligne { padding: 18px 24px; border-top: 1px solid #EFEAE0; align-items: baseline; }
.comp__ligne:first-child { border-top: 0; }
.comp__ligne:nth-child(even) { background: #FBF9F5; }
.comp__label { grid-column: auto; margin: 0; font-size: 14px; letter-spacing: 0; text-transform: none; font-weight: 600; color: var(--gris); }
.comp__val { font-size: 15.5px; }
.comp__ligne.est-differente .comp__val { font-weight: 600; }
.comp__ligne.est-differente .comp__label::after { content: ""; display: inline-block; width: 7px; height: 7px; margin-left: 8px; border-radius: 50%; background: var(--or); vertical-align: middle; }
.comp__ligne.est-identique .comp__val[data-cote="0"] { grid-column: 2 / 4; }
.comp__ligne.est-identique .comp__val[data-cote="1"] { display: none; }
.comp__ligne.est-identique .comp__val[data-cote="0"]::after { content: "Identique"; display: inline-block; margin-left: 10px; padding: 2px 9px; border-radius: 999px; background: var(--ivoire); color: var(--gris); font-size: 11.5px; font-weight: 600; vertical-align: 1px; }
.comp__barre { margin-top: 0; padding: 12px 24px; }
@media (max-width: 768px) {
  .comp__entete, .comp__ligne, .comp__barre { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px 16px; }
  .comp__entete { padding: 12px 16px; font-size: 13px; }
  .comp__entete span:first-child, .comp__barre-vide { display: none; }
  .comp__ligne { padding: 14px 16px; }
  .comp__label { grid-column: 1 / -1; font-size: 12.5px; }
  .comp__val { font-size: 14px; }
  .comp__ligne.est-identique .comp__val[data-cote="0"] { grid-column: 1 / -1; }
  .comp__barre { padding: 10px 16px; }
}

/* ─── v2.3.1 Carte financement sur fond clair (fiches produit) ─── */
.financement--clair { margin: 0; background: var(--ivoire); border: 1px solid #ECE6DA; }
.faq-sec > .wrap:first-child .financement--clair { margin-bottom: 130px; }
/* Fond blanc juste avant : la marge de la section précédente suffit au-dessus de la carte. */
.faq-sec--fin { padding-top: 0; }
:is(.section--noir, .section--ivoire) + .faq-sec--fin { padding-top: 130px; }
.financement--clair .fin-ico { background: var(--blanc); color: var(--or-texte); }
.financement--clair .fin-txt { color: var(--gris); }
.financement--clair .fin-txt b { color: var(--encre); }
.financement--clair .btn { flex: 0 0 auto; }
@media (max-width: 768px) {
  .financement--clair { margin: 0; }
  .financement--clair .btn { width: 100%; justify-content: center; }
}
@media (max-width: 860px) { .faq-sec > .wrap:first-child .financement--clair { margin-bottom: 90px; } :is(.section--noir, .section--ivoire) + .faq-sec--fin { padding-top: 90px; } }

/* ─── v2.4.0 Landing page salon (congrès ADF) ─── */
.adf-hero { position: relative; overflow: hidden; background: var(--noir); color: var(--blanc); padding: 90px 0 110px; }
.adf-hero__fond { position: absolute; inset: 0; }
.adf-hero__fond img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 35%; }
.adf-hero__fond::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(14,13,11,.95) 0%, rgba(14,13,11,.86) 45%, rgba(14,13,11,.7) 100%), radial-gradient(ellipse at 85% 10%, rgba(185,147,79,.25), transparent 55%); }
.adf-hero__grille { position: relative; display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, .85fr); gap: 60px; align-items: center; }
.adf-hero__titre { margin: 18px 0 22px; font-size: clamp(40px, 5.2vw, 78px); line-height: 1.02; font-weight: 300; letter-spacing: -.035em; }
.adf-hero__titre .or { display: inline-block; color: var(--or-clair); font-weight: 700; font-stretch: 125%; }
.adf-hero__sous { display: block; margin-top: 10px; font-size: .48em; font-weight: 300; letter-spacing: -.015em; color: #E7E0D2; }
.adf-hero .chapo { color: #CFC6B5; max-width: 620px; }
.adf-hero .hero-cta .btn svg { width: 18px; height: 18px; }
/* Carton d'invitation */
.adf-billet { position: relative; padding: 30px; border-radius: 28px; background: linear-gradient(160deg, #1D1A16 0%, #12110E 100%); border: 1px solid rgba(214,178,110,.35); box-shadow: 0 40px 80px -40px rgba(0,0,0,.9); text-align: center; }
.adf-billet__logo { padding: 10px; background: #fff; border-radius: 14px; }
.adf-billet__logo img { display: block; width: 100%; height: auto; }
.adf-billet__invite { margin: 24px 0 8px; font-size: 12px; letter-spacing: .2em; text-transform: uppercase; font-weight: 600; color: var(--or-clair); }
.adf-billet__stand { margin: 0; font-size: clamp(46px, 5vw, 68px); line-height: 1; font-weight: 700; font-stretch: 125%; letter-spacing: -.02em; color: #fff; }
.adf-billet__lieu { margin: 12px 0 0; color: #CFC6B5; font-size: 15.5px; line-height: 1.5; }
.adf-compte { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin: 22px 0 0; padding-top: 22px; border-top: 1px dashed rgba(214,178,110,.35); }
.adf-compte[hidden] { display: none; }
.adf-compte b { display: block; font-size: 30px; font-weight: 300; font-stretch: 120%; color: var(--or-clair); font-variant-numeric: tabular-nums; line-height: 1.1; }
.adf-compte span { font-size: 12px; color: #B9B1A3; }
.adf-billet__marques { display: flex; align-items: center; justify-content: center; gap: 18px; margin-top: 24px; }
.adf-billet__marques img { height: 30px; width: auto; }
.adf-billet__marques span { width: 1px; height: 30px; background: rgba(255,255,255,.25); }
.adf-billet__marques .adf-billet__opera { filter: brightness(0) invert(1); height: 34px; }
/* Raisons */
.adf-raisons { list-style: none; margin: 40px 0 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.adf-raisons .bento__case { min-height: 0; }
.adf-raisons h3 { margin: 18px 0 8px; font-size: 21px; font-weight: 600; }
.adf-raisons p { margin: 0; color: var(--gris); font-size: 15.5px; }
/* Offres */
.adf-offres__liste { list-style: none; margin: 40px 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.adf-offres__liste li { padding: 28px; border-radius: 24px; background: #171512; border: 1px solid rgba(214,178,110,.28); }
.adf-offres__liste h3 { margin: 16px 0 8px; font-size: 22px; font-weight: 600; color: #fff; }
.adf-offres__liste p { margin: 0; color: #CFC6B5; }
.adf-offres__badge { display: inline-block; padding: 5px 12px; border-radius: 999px; background: var(--or-bouton); color: #fff; font-size: 12px; font-weight: 600; letter-spacing: .04em; }
.adf-offres__secret { margin-top: 40px; padding: 44px; border-radius: 28px; background: #171512; border: 1px dashed rgba(214,178,110,.45); text-align: center; }
.adf-offres__accroche { margin: 18px auto 10px; max-width: 760px; font-size: clamp(24px, 2.6vw, 34px); font-weight: 300; font-stretch: 115%; letter-spacing: -.02em; color: #fff; line-height: 1.2; }
.adf-offres__secret > p:not(.adf-offres__accroche) { margin: 0 auto; max-width: 640px; color: #CFC6B5; }
.adf-offres__ctas { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 14px 26px; margin-top: 26px; }
/* Infos pratiques */
.adf-pratique__infos { grid-template-columns: repeat(4, minmax(0, 1fr)); margin-top: 36px; }
.adf-pratique__infos > div { background: var(--ivoire); }
.adf-pratique__infos dd small { display: block; margin-top: 8px; font-size: 14.5px; font-stretch: 100%; letter-spacing: 0; color: var(--gris); line-height: 1.5; }
.adf-pratique__infos .lien { display: inline-block; margin-top: 10px; font-size: 15px; font-stretch: 100%; letter-spacing: 0; }
.adf-pratique__acces { margin-top: 0 !important; }
@media (max-width: 1100px) {
  .adf-raisons, .adf-pratique__infos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .adf-offres__liste { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 1024px) {
  .adf-hero { padding: 70px 0 80px; }
  .adf-hero__grille { grid-template-columns: minmax(0, 1fr); gap: 44px; }
  .adf-billet { max-width: 460px; }
}
@media (max-width: 600px) {
  .adf-raisons, .adf-pratique__infos, .adf-offres__liste { grid-template-columns: minmax(0, 1fr); }
  .adf-billet { padding: 22px; }
  .adf-offres__secret { padding: 30px 22px; }
  .adf-hero .hero-cta .btn { width: 100%; justify-content: center; }
}

/* ─── v2.4.1 Landing ADF : correctifs et nouveaux blocs ─── */
.adf-hero .ariane-barre { margin-bottom: 26px; }
.adf-hero__badge { display: flex; align-items: flex-start; gap: 10px; margin: 22px 0 0; max-width: 620px; font-size: 15px; color: #CFC6B5; }
.adf-hero__badge svg { flex: 0 0 18px; width: 18px; height: 18px; margin-top: 3px; color: var(--or-clair); }
.adf-hero__badge a { color: #fff; font-weight: 600; text-decoration: underline; text-underline-offset: 3px; text-decoration-color: rgba(214,178,110,.7); }
.adf-hero__badge a:hover { color: var(--or-clair); }
.adf-billet__lieu small { display: block; margin-top: 6px; font-size: 13.5px; color: var(--or-clair); }
/* Offres + visuel de campagne */
.adf-offres__grille.a-visuel { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 40px; align-items: end; }
.adf-offres__visuel { position: relative; align-self: end; margin-bottom: -130px; }
.adf-offres__visuel img { display: block; width: 100%; height: auto; -webkit-mask-image: linear-gradient(180deg, #000 70%, transparent 100%); mask-image: linear-gradient(180deg, #000 70%, transparent 100%); }
.adf-offres { overflow: hidden; }
/* Infos pratiques avec photo du Palais */
.adf-pratique__grille { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 40px; margin-top: 40px; align-items: stretch; }
.adf-pratique__photo { margin: 0; border-radius: var(--rayon); overflow: hidden; min-height: 360px; }
.adf-pratique__photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.adf-pratique__droite { display: flex; flex-direction: column; gap: 26px; justify-content: center; }
.adf-pratique__infos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin: 0; }
.adf-pratique__infos > div { background: var(--ivoire); border-radius: 20px; padding: 22px 24px; }
.adf-pratique__infos dt { font-size: 12px; letter-spacing: .14em; text-transform: uppercase; font-weight: 600; color: var(--or-texte); margin-bottom: 8px; }
.adf-pratique__infos dd { margin: 0; font-size: 19px; font-weight: 400; font-stretch: 110%; letter-spacing: -.01em; line-height: 1.3; }
.adf-pratique__infos dd.adf-pratique__stand { font-size: 34px; font-weight: 700; font-stretch: 125%; }
.adf-pratique__infos dd small { display: block; margin-top: 6px; font-size: 14px; font-stretch: 100%; letter-spacing: 0; color: var(--gris); line-height: 1.5; }
.adf-pratique__infos dd small.adf-pratique__acces { margin-top: 0; }
.adf-pratique__ctas { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 22px; }
.adf-pratique__ctas .btn svg { width: 16px; height: 16px; }
/* Application */
.adf-app__grille { display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: 70px; align-items: center; }
.adf-app__visuel img { display: block; width: 100%; height: auto; filter: drop-shadow(0 30px 40px rgba(27,25,21,.25)); }
.adf-app__texte h2 { margin: 18px 0 16px; font-size: clamp(30px, 3.4vw, 48px); line-height: 1.08; font-weight: 300; letter-spacing: -.03em; }
.adf-app__texte h2 .fort { color: var(--or-texte); }
.adf-app__texte p { color: var(--gris); max-width: 560px; margin: 0; }
.adf-app__stores { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 28px; }
.adf-app__stores a { display: block; border-radius: 10px; transition: transform .3s var(--ease); }
.adf-app__stores a:hover { transform: translateY(-2px); }
.adf-app__stores img { display: block; height: 52px; width: auto; }
@media (max-width: 1024px) {
  .adf-offres__grille.a-visuel { grid-template-columns: minmax(0, 1fr); }
  .adf-offres__visuel { display: none; }
  .adf-pratique__grille { grid-template-columns: minmax(0, 1fr); }
  .adf-pratique__photo { min-height: 0; aspect-ratio: 3 / 2; }
  .adf-app__grille { grid-template-columns: 200px minmax(0, 1fr); gap: 36px; }
}
@media (max-width: 600px) {
  .adf-pratique__infos { grid-template-columns: minmax(0, 1fr); }
  .adf-pratique__ctas .btn { width: 100%; justify-content: center; }
  .adf-app__grille { grid-template-columns: minmax(0, 1fr); text-align: center; }
  .adf-app__visuel { max-width: 170px; margin: 0 auto; }
  .adf-app__texte p { margin: 0 auto; }
  .adf-app__stores { justify-content: center; }
  .adf-app__stores img { height: 46px; }
}
.adf-hero__badge { display: block; padding-left: 28px; position: relative; }
.adf-hero__badge svg { position: absolute; left: 0; top: 0; margin-top: 3px; }
.adf-app__visuel img { -webkit-mask-image: linear-gradient(180deg, #000 78%, transparent 100%); mask-image: linear-gradient(180deg, #000 78%, transparent 100%); }

/* ─── v2.5.0 Fiche « projet » : mobilier de laboratoire Aries ─── */
.projet-hero { padding: 40px 0 100px; }
.projet-hero__grille { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); gap: 60px; align-items: center; }
.projet-hero .ariane-barre { margin-bottom: 40px; }
.projet-hero__titre { margin: 18px 0 22px; font-size: clamp(40px, 4.6vw, 70px); line-height: 1.03; font-weight: 300; letter-spacing: -.035em; }
.projet-hero__titre .fort { color: var(--or-texte); font-weight: 700; font-stretch: 125%; }
.projet-hero .chapo { color: var(--gris); max-width: 560px; }
.projet-hero .hero-cta .btn svg { width: 18px; height: 18px; }
.projet-hero__visuel { position: relative; margin: 0; border-radius: 28px; overflow: hidden; background: radial-gradient(ellipse at 50% 40%, #A4A5A6 0%, #8E8F90 75%); }
.projet-hero__visuel img { display: block; width: 100%; height: auto; }
.projet-hero__visuel figcaption { position: absolute; left: 20px; bottom: 18px; padding: 6px 14px; border-radius: 999px; background: rgba(14,13,11,.72); color: #fff; font-size: 13px; font-weight: 600; letter-spacing: .02em; }
.projet-etapes__liste { list-style: none; margin: 40px 0 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; counter-reset: none; }
.projet-etapes__liste li { position: relative; padding: 30px 26px; border-radius: 24px; background: var(--blanc); border: 1px solid #EFEAE0; }
.projet-etapes__num { display: block; font-size: 44px; font-weight: 300; font-stretch: 125%; line-height: 1; color: var(--or-texte); }
.projet-etapes__liste h3 { margin: 18px 0 8px; font-size: 21px; font-weight: 600; }
.projet-etapes__liste p { margin: 0; color: var(--gris); font-size: 15.5px; }
.projet-vitrine__grille { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 70px; align-items: center; }
.projet-vitrine__visuel { margin: 0; border-radius: 28px; overflow: hidden; background: radial-gradient(ellipse at 50% 45%, #A2A3A4 0%, #8D8E8F 75%); }
.projet-vitrine__visuel img { display: block; width: 100%; height: auto; }
.projet-vitrine__texte h2 { margin: 18px 0 26px; font-size: clamp(32px, 3.6vw, 54px); line-height: 1.06; font-weight: 300; letter-spacing: -.03em; }
.projet-vitrine__texte h2 .fort { color: var(--or-texte); }
.projet-vitrine__points { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; }
.projet-vitrine__points li { display: flex; align-items: flex-start; gap: 12px; font-size: 16.5px; }
.projet-vitrine__points svg { flex: 0 0 22px; width: 22px; height: 22px; padding: 4px; border-radius: 50%; background: var(--ivoire); color: var(--or-texte); margin-top: 1px; }
.projet-vitrine__note { margin: 26px 0 0; padding-top: 22px; border-top: 1px solid var(--pierre); color: var(--gris); }
@media (max-width: 1100px) { .projet-etapes__liste { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 1024px) {
  .projet-hero__grille, .projet-vitrine__grille { grid-template-columns: minmax(0, 1fr); gap: 40px; }
  .projet-hero { padding-bottom: 70px; }
}
@media (max-width: 600px) {
  .projet-etapes__liste { grid-template-columns: minmax(0, 1fr); }
  .projet-hero .hero-cta .btn { width: 100%; justify-content: center; }
}
.fiche--projet { padding: 0; }
.config__profils { grid-template-columns: repeat(2, minmax(0, 1fr)); }

/* ─── v2.5.1 Sommaire collant des pages longues (mentions, confidentialité, CGV) ─── */
.doc { display: grid; grid-template-columns: 280px minmax(0, 1fr); gap: 70px; align-items: start; }
.doc__sommaire { position: sticky; top: calc(var(--hdr, 84px) + 24px); max-height: calc(100vh - var(--hdr, 84px) - 48px); overflow-y: auto; padding: 24px; border-radius: 20px; background: var(--ivoire); }
.doc__plier summary { list-style: none; display: flex; align-items: center; justify-content: space-between; font-size: 12px; letter-spacing: .14em; text-transform: uppercase; font-weight: 600; color: var(--or-texte); cursor: default; }
.doc__plier summary::-webkit-details-marker { display: none; }
.doc__plier summary svg { display: none; width: 16px; height: 16px; transition: transform .3s; }
.doc__sommaire ol { list-style: none; margin: 14px 0 0; padding: 0; display: grid; gap: 2px; counter-reset: doc; }
.doc__sommaire li { counter-increment: doc; }
.doc__sommaire a { display: grid; grid-template-columns: 26px minmax(0, 1fr); padding: 8px 10px; border-radius: 10px; font-size: 14.5px; line-height: 1.4; color: var(--gris); text-decoration: none; transition: background .2s, color .2s; }
.doc__sommaire a::before { content: counter(doc, decimal-leading-zero); font-size: 12px; font-weight: 600; color: var(--or-texte); padding-top: 2px; }
.doc__sommaire a:hover { background: var(--blanc); color: var(--encre); }
.doc__sommaire a.is-actif { background: var(--blanc); color: var(--encre); font-weight: 600; }
.doc__texte { max-width: none; }
.doc__texte h2 { scroll-margin-top: calc(var(--hdr, 84px) + 24px); }
@media (max-width: 1024px) {
  .doc { grid-template-columns: minmax(0, 1fr); gap: 30px; }
  .doc__sommaire { position: static; max-height: none; padding: 0; background: none; }
  .doc__plier { border: 1px solid var(--pierre); border-radius: 16px; background: var(--ivoire); }
  .doc__plier summary { padding: 16px 20px; cursor: pointer; }
  .doc__plier summary svg { display: block; }
  .doc__plier[open] summary svg { transform: rotate(180deg); }
  .doc__plier ol { margin: 0; padding: 0 10px 14px; }
}
/* Champs du configurateur : le focus clavier s'affiche sur la carte entière, pas sur la case invisible. */
.config__profil, .config__besoin, .config__gamme { position: relative; }
.config__profil input, .config__besoin input, .config__gamme input { left: 0; top: 0; outline: none !important; }
.config__profil:has(input:focus-visible), .config__besoin:has(input:focus-visible), .config__gamme:has(input:focus-visible) { outline: 3px solid var(--or); outline-offset: 2px; }

/* ─── v2.5.1 Plan du site ─── */
.plan-sauts { position: sticky; top: var(--hdr, 84px); z-index: 4; background: rgba(255,255,255,.94); backdrop-filter: blur(10px); border-bottom: 1px solid var(--pierre); }
.plan-sauts .wrap { display: flex; gap: 8px; overflow-x: auto; padding-top: 12px; padding-bottom: 12px; scrollbar-width: none; }
.plan-sauts .wrap::-webkit-scrollbar { display: none; }
.plan-sauts a { flex: 0 0 auto; padding: 8px 16px; border-radius: 999px; border: 1px solid var(--pierre); font-size: 14px; font-weight: 600; color: var(--encre); text-decoration: none; transition: background .2s, border-color .2s; }
.plan-sauts a:hover { background: var(--ivoire); border-color: var(--or-texte); }
.plan-catalogue, .plan-pages, .plan-guides, .plan-carte { scroll-margin-top: calc(var(--hdr, 84px) + 70px); }
.plan-familles { margin-top: 40px; columns: 3 300px; column-gap: 18px; }
.plan-famille { break-inside: avoid; margin: 0 0 18px; padding: 28px; border-radius: 24px; background: var(--blanc); border: 1px solid #EFEAE0; }
.plan-famille h3 { margin: 0 0 6px; font-size: 24px; font-weight: 400; font-stretch: 115%; letter-spacing: -.02em; }
.plan-famille h3 a { color: var(--encre); text-decoration: none; }
.plan-famille h3 a:hover { color: var(--or-texte); }
.plan-famille__sous { display: flex; justify-content: space-between; align-items: baseline; margin: 18px 0 6px; padding-top: 14px; border-top: 1px solid var(--pierre); }
.plan-famille__sous a { font-size: 12px; letter-spacing: .12em; text-transform: uppercase; font-weight: 600; color: var(--or-texte); text-decoration: none; }
.plan-famille__sous span { font-size: 12px; color: var(--gris); }
.plan-famille ul, .plan-carte ul { list-style: none; margin: 0; padding: 0; }
.plan-famille li a, .plan-carte li a { display: block; padding: 5px 0; color: var(--gris); text-decoration: none; font-size: 15.5px; transition: color .2s, transform .3s var(--ease); }
.plan-famille li a:hover, .plan-carte li a:hover { color: var(--encre); transform: translateX(4px); }
.plan-cartes { margin-top: 40px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; align-items: start; }
.plan-carte { padding: 28px; border-radius: 24px; background: var(--ivoire); }
.plan-carte__ico { display: inline-flex; width: 46px; height: 46px; border-radius: 50%; align-items: center; justify-content: center; background: var(--blanc); color: var(--or-texte); }
.plan-carte__ico svg { width: 22px; height: 22px; }
.plan-carte h3 { margin: 16px 0 10px; font-size: 21px; font-weight: 600; }
.plan-carte h3 a { color: var(--encre); text-decoration: none; }
.plan-carte > p { margin: 0; color: var(--gris); font-size: 15px; }
.plan-carte li.est-enfant a { padding-left: 16px; position: relative; }
.plan-carte li.est-enfant a::before { content: ""; position: absolute; left: 2px; top: 50%; width: 7px; height: 1px; background: var(--or-texte); }
.plan-articles { list-style: none; margin: 40px 0 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.plan-articles a { display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-rows: auto auto; column-gap: 16px; align-items: center; padding: 20px 24px; border-radius: 18px; background: var(--blanc); text-decoration: none; color: var(--encre); border: 1px solid #EFEAE0; transition: transform .4s var(--ease), box-shadow .4s var(--ease); }
.plan-articles a:hover { transform: translateY(-2px); box-shadow: 0 20px 40px -30px rgba(27,25,21,.4); }
.plan-articles small { grid-column: 1; font-size: 12px; letter-spacing: .1em; text-transform: uppercase; font-weight: 600; color: var(--or-texte); }
.plan-articles b { grid-column: 1; font-weight: 600; font-size: 16.5px; }
.plan-articles svg { grid-column: 2; grid-row: 1 / 3; width: 18px; height: 18px; color: var(--or-texte); }
@media (max-width: 1024px) { .plan-cartes { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 680px) { .plan-cartes, .plan-articles { grid-template-columns: minmax(0, 1fr); } .plan-famille, .plan-carte { padding: 22px; } }

/* ─── v2.5.2 Guide scanner : photos à droite du texte ─── */
.guide__texte { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 420px); gap: 60px; align-items: start; }
.guide__texte .guide__contenu { max-width: none; margin-top: 0; }
.guide__photos { position: sticky; top: calc(var(--hdr, 84px) + 30px); display: grid; gap: 18px; padding-top: 10px; }
.guide__photos figure { position: relative; margin: 0; border-radius: 22px; overflow: hidden; background: var(--ivoire); }
.guide__photos img { display: block; width: 100%; height: auto; }
.guide__photos figure:nth-child(2) img { aspect-ratio: 4 / 3; object-fit: cover; object-position: 50% 40%; }
.guide__photos figcaption { position: absolute; left: 14px; bottom: 12px; padding: 5px 12px; border-radius: 999px; background: rgba(14,13,11,.72); color: #fff; font-size: 12.5px; font-weight: 600; }
@media (max-width: 1024px) {
  .guide__texte { grid-template-columns: minmax(0, 1fr); gap: 30px; }
  .guide__photos { position: static; grid-template-columns: repeat(2, minmax(0, 1fr)); padding-top: 0; }
  .guide__photos figure img, .guide__photos figure:nth-child(2) img { aspect-ratio: 4 / 3; object-fit: cover; }
}
@media (max-width: 600px) { .guide__photos { grid-template-columns: minmax(0, 1fr); } }
.guide__texte { margin-top: 48px; }

/* ─── v2.6.0 Comparatif : 3 modèles sur ordinateur, 2 sur téléphone ─── */
.comp--3 { max-width: 1240px; }
.comp--3 .comp__tetes { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 28px; }
.comp--3 .comp__entete, .comp--3 .comp__ligne, .comp--3 .comp__barre { grid-template-columns: 200px repeat(3, minmax(0, 1fr)); gap: 0 26px; }
.comp--3 .comp__ligne.est-identique .comp__val[data-cote="0"] { grid-column: 2 / -1; }
.comp__ligne.est-identique .comp__val:not([data-cote="0"]) { display: none; }
.comp__ligne.est-differente .comp__val { font-weight: 400; }
.comp__ligne.est-differente .comp__val.est-diff { font-weight: 600; }
.comp--3 .comp__nom { font-size: 23px; }
@media (max-width: 1024px) {
  .comp--3 .comp__entete, .comp--3 .comp__ligne, .comp--3 .comp__barre { grid-template-columns: 150px repeat(3, minmax(0, 1fr)); gap: 0 18px; }
}
@media (max-width: 768px) {
  .comp--3 .comp__tetes { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 16px; }
  .comp--3 .comp__entete, .comp--3 .comp__ligne, .comp--3 .comp__barre { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px 16px; }
  .comp--3 [data-cote="2"], .comp--3 [data-mini="2"] { display: none !important; }
  .comp--3 .comp__ligne.est-identique .comp__val[data-cote="0"] { grid-column: 1 / -1; }
  .comp--3 .comp__nom { font-size: 18px; }
}

/* ─── v2.7.0 Chaîne numérique : étape active, ligne qui se remplit, photo liée ─── */
/* Le délai d'apparition ne concerne que l'entrée en scène : le survol réagit tout de suite. */
.chaine .point { transition: transform .7s var(--ease) var(--d, 0s), opacity .7s var(--ease) var(--d, 0s), background .2s, color .2s, box-shadow .3s, border-color .2s; }
.chaine.is-drawn .etape .point { transition-delay: var(--d, 0s), var(--d, 0s), 0s, 0s, 0s, 0s; }
.chaine .etape:nth-child(2) { --d: .35s; } .chaine .etape:nth-child(3) { --d: .7s; } .chaine .etape:nth-child(4) { --d: 1.05s; } .chaine .etape:nth-child(5) { --d: 1.4s; }
.chaine.is-drawn .etape:nth-child(n) .point { transition-delay: var(--d, 0s), var(--d, 0s), 0s, 0s, 0s, 0s; }
.chaine.is-drawn.a-actif .etape .point, .chaine.is-drawn .etape:hover .point { transition-delay: 0s; }
/* Ligne de progression dorée, du premier point jusqu'à l'étape active */
.chaine::after { content: ""; position: absolute; left: 0; top: 26px; height: 3px; border-radius: 3px; background: linear-gradient(90deg, var(--or-bouton), var(--or-clair)); width: calc((100% / var(--n, 5)) * var(--actif, 0) + 28px); opacity: 0; transition: width .6s var(--ease), opacity .3s; pointer-events: none; }
.chaine.a-actif::after { opacity: 1; }
.etape { cursor: default; transition: opacity .3s; }
.chaine.a-actif .etape:not(.is-actif) { opacity: .55; }
.chaine.a-actif .etape.is-passe { opacity: .8; }
.etape.is-passe .point { background: #EFE3C8; color: var(--or-texte); }
.etape.is-actif .point, .etape:hover .point { background: var(--or-bouton); border-color: var(--or-bouton); color: #fff; box-shadow: 0 0 0 7px rgba(185,147,79,.18), 0 12px 24px -10px rgba(140,106,46,.6); transform: scale(1.08); }
.etape.is-actif h3 { color: var(--or-texte); }
/* Photos liées aux étapes */
.chaine-photos div { position: relative; transition: transform .45s var(--ease), box-shadow .45s var(--ease), opacity .3s, outline-color .3s; outline: 2px solid transparent; outline-offset: -2px; }
.chaine-photos.a-actif div:not(.is-actif) { opacity: .45; }
.chaine-photos div.is-actif { transform: translateY(-8px); box-shadow: 0 26px 40px -24px rgba(27,25,21,.45); outline-color: var(--or); }
@media (max-width: 1100px) {
  .chaine::after { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .etape.is-actif .point, .etape:hover .point, .chaine-photos div.is-actif { transform: none; }
}
.chaine::after { z-index: 0; } .chaine .etape { z-index: 1; }
/* Atténuation sur le texte seulement : les pastilles restent opaques au-dessus de la ligne. */
.chaine.a-actif .etape:not(.is-actif), .chaine.a-actif .etape.is-passe { opacity: 1; }
.chaine .etape h3, .chaine .etape p, .chaine .etape .ex { transition: opacity .3s; }
.chaine.a-actif .etape:not(.is-actif) :is(h3, p, .ex) { opacity: .5; }
.chaine.a-actif .etape.is-passe :is(h3, p, .ex) { opacity: .75; }

/* ==========================================================
   v2.9.0 : vitrine 360° des fiches produits
   L'appareil détouré flotte sur un plateau tournant, au-dessus d'un sol lumineux.
   ========================================================== */
.t3d { position: relative; overflow: hidden; isolation: isolate;
  background:
    radial-gradient(60% 55% at 72% 46%, rgba(185,147,79,.16), transparent 70%),
    radial-gradient(40% 40% at 10% 100%, rgba(185,147,79,.08), transparent 70%),
    var(--noir); }
.t3d::before { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background-image: linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px);
  background-size: 64px 64px; mask-image: radial-gradient(70% 70% at 70% 50%, #000 20%, transparent 75%); -webkit-mask-image: radial-gradient(70% 70% at 70% 50%, #000 20%, transparent 75%); }
.t3d__grille > * { min-width: 0; }
.t3d__grille { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); grid-template-areas: "tete scene" "panneau scene"; column-gap: 64px; row-gap: 28px; align-items: start; }
.t3d__tete { grid-area: tete; align-self: end; }
.t3d__tete h2 { font-size: clamp(32px, 3.7vw, 56px); line-height: 1.08; margin: 18px 0 14px; }
.t3d__aide { color: var(--gris-clair); margin: 0; max-width: 440px; }
.t3d__panneau { grid-area: panneau; }
.t3d__scene { grid-area: scene; position: relative; min-height: 620px; display: flex; flex-direction: column; justify-content: center; align-items: center;
  perspective: 1600px; touch-action: pan-y; cursor: grab; user-select: none; -webkit-user-select: none; border-radius: 28px; outline-offset: 6px; }
.t3d__scene.is-saisi { cursor: grabbing; }
.t3d__halo { position: absolute; left: 50%; top: 46%; width: 78%; aspect-ratio: 1; transform: translate(-50%, -50%); border-radius: 50%; pointer-events: none;
  background: radial-gradient(circle, rgba(216,188,134,.22) 0%, rgba(185,147,79,.08) 38%, transparent 66%); filter: blur(6px); animation: t3d-respire 7s ease-in-out infinite; }
@keyframes t3d-respire { 0%, 100% { opacity: .75; transform: translate(-50%, -50%) scale(.96); } 50% { opacity: 1; transform: translate(-50%, -50%) scale(1.04); } }
/* Plateau tournant : un cercle aplati sous l'appareil, avec un repère doré qui suit la vue affichée. */
.t3d__plateau { --angle: 0deg; position: relative; z-index: 1; width: 74%; aspect-ratio: 1; margin: -37% 0 calc(-37% + 6px); pointer-events: none; transform: scaleY(.2);
  border-radius: 50%; border: 1px solid rgba(216,188,134,.3); box-shadow: 0 0 0 22px rgba(216,188,134,.035), inset 0 0 80px rgba(185,147,79,.14); }
.t3d__plateau::before { content: ""; position: absolute; inset: 11%; border-radius: 50%; border: 1px dashed rgba(216,188,134,.2); }
.t3d__repere-plateau { position: absolute; inset: 0; border-radius: 50%; transform: rotate(var(--angle)); transition: transform 1s var(--ease); }
.t3d__repere-plateau::after { content: ""; position: absolute; left: 50%; bottom: -9px; width: 18px; height: 18px; margin-left: -9px; border-radius: 50%; background: var(--or-clair); box-shadow: 0 0 22px 6px rgba(216,188,134,.55); }
.t3d__flotte { position: relative; z-index: 2; width: min(100%, 640px); animation: t3d-flotte 6s ease-in-out infinite; }
@keyframes t3d-flotte { 0%, 100% { transform: translateY(-6px); } 50% { transform: translateY(8px); } }
.t3d__objet { --rx: 0deg; --ry: 0deg; --hmax: 520px; position: relative; width: min(100%, calc(var(--hmax) * var(--r, 1))); margin: 0 auto; transform-style: preserve-3d;
  transform: rotateX(var(--rx)) rotateY(var(--ry)); transition: transform .9s var(--ease); }
.t3d__vue { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; pointer-events: none; opacity: 0; --dir: 1;
  transform: translateX(calc(var(--dir) * 46px)) rotateY(calc(var(--dir) * -22deg)) scale(.94);
  transition: opacity .5s ease, transform .8s var(--ease); filter: drop-shadow(0 34px 34px rgba(0,0,0,.55)) drop-shadow(0 0 1px rgba(255,255,255,.1)); }
.t3d__vue.is-actif { opacity: 1; transform: none; }
.t3d__vue.is-sortie { opacity: 0; transform: translateX(calc(var(--dir) * -46px)) rotateY(calc(var(--dir) * 22deg)) scale(.94); }
.t3d__sol { position: absolute; inset: 22% 18%; border-radius: 50%; pointer-events: none;
  background: radial-gradient(closest-side, rgba(0,0,0,.8), rgba(0,0,0,.3) 60%, transparent); animation: t3d-ombre 6s ease-in-out infinite; }
@keyframes t3d-ombre { 0%, 100% { transform: scale(1.04); opacity: .9; } 50% { transform: scale(.9); opacity: .65; } }
/* Repères */
.t3d__points { position: absolute; inset: 0; z-index: 3; opacity: 0; visibility: hidden; transition: opacity .4s ease .35s, visibility 0s linear .75s; }
.t3d__points.is-actif { opacity: 1; visibility: visible; transition: opacity .4s ease .45s, visibility 0s; }
.t3d__point { position: absolute; left: var(--x); top: var(--y); width: 30px; height: 30px; margin: -15px 0 0 -15px; border-radius: 50%; cursor: pointer;
  background: radial-gradient(circle, var(--or-clair) 0 5px, rgba(216,188,134,.28) 6px 100%); border: 1px solid rgba(255,255,255,.6); box-shadow: 0 6px 18px rgba(0,0,0,.4); }
.t3d__point::before { content: ""; position: absolute; inset: -7px; border-radius: 50%; border: 1px solid rgba(216,188,134,.7); animation: t3d-pulse 2.4s ease-out infinite; }
@keyframes t3d-pulse { 0% { transform: scale(.6); opacity: 1; } 100% { transform: scale(1.5); opacity: 0; } }
.t3d__point:hover, .t3d__point:focus-visible, .t3d__point.is-ouvert { background: radial-gradient(circle, var(--blanc) 0 5px, var(--or) 6px 100%); }
.t3d__bulle { position: absolute; left: calc(100% + 14px); top: 50%; width: max-content; max-width: 250px; padding: 14px 16px; border-radius: 14px; text-align: left;
  background: rgba(23,21,19,.94); border: 1px solid rgba(216,188,134,.35); color: var(--gris-clair); font-size: 14px; line-height: 1.5; box-shadow: 0 18px 40px rgba(0,0,0,.45);
  opacity: 0; visibility: hidden; transform: translate(-6px, -50%); transition: opacity .25s ease, transform .3s var(--ease), visibility 0s linear .3s; pointer-events: none;
  -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
.t3d__bulle strong { display: block; color: var(--blanc); font-size: 15px; font-weight: 600; margin-bottom: 4px; }
.t3d__point--gauche .t3d__bulle { left: auto; right: calc(100% + 14px); transform: translate(6px, -50%); }
.t3d__point:hover .t3d__bulle, .t3d__point:focus-visible .t3d__bulle, .t3d__point.is-ouvert .t3d__bulle { opacity: 1; visibility: visible; transform: translate(0, -50%); transition: opacity .25s ease, transform .3s var(--ease), visibility 0s; }
/* Geste et barre de navigation */
.t3d__geste { position: relative; z-index: 2; display: flex; align-items: center; gap: 10px; margin: 34px 0 0; font-size: 13px; letter-spacing: .04em; text-transform: uppercase; color: var(--or-clair); transition: opacity .6s ease; }
.t3d__geste svg { width: 16px; height: 16px; animation: t3d-geste 1.8s ease-in-out infinite; }
.t3d__geste svg:first-child { transform: scaleX(-1); animation-name: t3d-geste-g; }
@keyframes t3d-geste { 0%, 100% { translate: 0 0; } 50% { translate: 5px 0; } }
@keyframes t3d-geste-g { 0%, 100% { translate: 0 0; } 50% { translate: -5px 0; } }
.t3d__scene.a-bouge .t3d__geste { opacity: 0; }
.t3d__barre { position: relative; z-index: 2; display: flex; align-items: center; gap: 18px; margin-top: 16px; width: min(100%, 460px); }
.t3d__fleche { flex: none; width: 48px; height: 48px; border-radius: 50%; display: grid; place-items: center; border: 1px solid rgba(216,188,134,.45); color: var(--or-clair); transition: background .3s, color .3s; }
.t3d__fleche svg { width: 18px; height: 18px; }
.t3d__fleche--prec svg { transform: scaleX(-1); }
.t3d__fleche:hover { background: var(--or-bouton); color: var(--blanc); border-color: var(--or-bouton); }
.t3d__etat { flex: 1; display: grid; grid-template-columns: 1fr auto; row-gap: 8px; align-items: baseline; }
.t3d__libelle { color: var(--blanc); font-weight: 600; font-size: 16px; }
.t3d__compte { color: var(--gris-clair); font-size: 13px; font-variant-numeric: tabular-nums; }
.t3d__progression { grid-column: 1 / -1; height: 2px; background: rgba(255,255,255,.12); border-radius: 2px; overflow: hidden; }
.t3d__progression span { display: block; height: 100%; background: linear-gradient(90deg, var(--or), var(--or-clair)); transition: width .8s var(--ease); }
/* Panneau : vues et points clés */
.t3d__titre-liste { margin: 0 0 12px; font-size: 13px; letter-spacing: .08em; text-transform: uppercase; color: var(--or-clair); }
.t3d__vues { list-style: none; margin: 0 0 30px; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.t3d__vues button { display: inline-flex; align-items: center; gap: 8px; min-height: 40px; padding: 0 16px 0 10px; border-radius: 999px; font-size: 14px; color: var(--gris-clair);
  border: 1px solid rgba(255,255,255,.14); transition: background .3s, color .3s, border-color .3s; }
.t3d__vues button:hover { color: var(--blanc); border-color: rgba(216,188,134,.5); }
.t3d__vues button[aria-pressed="true"] { background: var(--or-bouton); border-color: var(--or-bouton); color: var(--blanc); }
.t3d__num { font-size: 11px; font-variant-numeric: tabular-nums; opacity: .7; }
.t3d__cles { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; counter-reset: cle; }
.t3d__cles li { counter-increment: cle; }
.t3d__cles button { width: 100%; display: grid; grid-template-columns: 34px 1fr; column-gap: 14px; text-align: left; padding: 14px 16px; border-radius: 14px;
  border: 1px solid rgba(255,255,255,.1); background: rgba(255,255,255,.02); transition: border-color .3s, background .3s; }
.t3d__cles button::before { content: counter(cle, decimal-leading-zero); grid-row: span 2; width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center;
  font-size: 12px; color: var(--or-clair); border: 1px solid rgba(216,188,134,.45); }
.t3d__cles strong { color: var(--blanc); font-weight: 600; font-size: 15px; }
.t3d__cles span { color: var(--gris-clair); font-size: 14px; line-height: 1.5; }
.t3d__cles button:hover, .t3d__cles button.is-actif { border-color: rgba(216,188,134,.55); background: rgba(185,147,79,.08); }
.t3d__note { margin: 22px 0 0; font-size: 13px; color: var(--gris-clair); }
@media (max-width: 1024px) {
  .t3d__grille { grid-template-columns: minmax(0, 1fr); grid-template-areas: "tete" "scene" "panneau"; row-gap: 20px; }
  .t3d__scene { min-height: 0; padding: 30px 0 10px; }
  .t3d__flotte { width: min(100%, 520px); }
  .t3d__objet { --hmax: 420px; }
}
@media (max-width: 768px) {
  .t3d__flotte { width: 100%; }
  .t3d__objet { --hmax: 340px; }
  .t3d__plateau { width: 92%; margin: -46% 0 calc(-46% + 6px); }
  .t3d__point { width: 26px; height: 26px; margin: -13px 0 0 -13px; }
  .t3d__bulle { max-width: 190px; font-size: 13px; }
  .t3d__vues { flex-wrap: nowrap; overflow-x: auto; margin-left: -20px; margin-right: -20px; padding: 0 20px 4px; scrollbar-width: none; }
  .t3d__vues li { flex: none; }
}
@media (prefers-reduced-motion: reduce) {
  .t3d__halo, .t3d__flotte, .t3d__sol, .t3d__point::before, .t3d__geste svg { animation: none !important; }
  .t3d__vue, .t3d__objet { transition-duration: .01s !important; }
}
.t3d__scene:focus-visible { outline: 1px solid rgba(216,188,134,.55); }

/* ==========================================================
   v3.0.0 : médias et maillage des guides
   ========================================================== */
.contenu--article .article-figure, .contenu--article .article-duo, .contenu--article .article-video { margin: 40px 0; }
.article-figure img, .article-duo img { width: 100%; height: auto; border-radius: 18px; background: var(--ivoire); }
.article-figure--moyen { max-width: 560px; margin-left: auto !important; margin-right: auto !important; }
.article-figure figcaption, .article-duo figcaption, .article-video figcaption { margin-top: 12px; font-size: 14px; line-height: 1.5; color: var(--gris); padding-left: 14px; border-left: 2px solid var(--or); }
.article-duo__grille { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.article-duo__grille img { aspect-ratio: 4 / 3; object-fit: cover; }
.article-video .video { aspect-ratio: 16 / 9; }
.contenu--article .article-produit { display: grid; grid-template-columns: 112px 1fr auto; align-items: center; gap: 20px; margin: 34px 0; padding: 16px 20px 16px 16px; border-radius: 18px; background: var(--ivoire); border: 1px solid var(--pierre); transition: border-color .3s, box-shadow .3s; }
.article-produit:hover { border-color: #D9C49A; box-shadow: 0 18px 40px -26px rgba(0,0,0,.35); }
.article-produit__img { display: block; aspect-ratio: 1; border-radius: 12px; background: var(--blanc); overflow: hidden; }
.article-produit__img img { width: 100%; height: 100%; object-fit: contain; padding: 6px; }
.article-produit__txt { display: flex; flex-direction: column; gap: 2px; line-height: 1.45; min-width: 0; }
.article-produit__marque { font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: var(--or-texte); font-weight: 600; }
.contenu--article a.article-produit__nom { font-size: 19px; font-weight: 700; color: var(--encre); text-decoration: none; }
.article-produit__accroche { font-size: 15px; color: var(--gris); }
.contenu--article a.article-produit__lien { display: inline-flex; align-items: center; gap: 8px; padding: 0 18px; min-height: 44px; border-radius: 999px; background: var(--or-bouton); color: var(--blanc); font-size: 14px; font-weight: 600; text-decoration: none; white-space: nowrap; transition: background .3s; }
.article-produit__lien:hover { background: var(--or-bouton-hover); }
.article-produit__lien svg { width: 16px; height: 16px; }
.contenu--article .article-chiffres { list-style: none; padding: 0; margin: 36px 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 12px; }
.contenu--article .article-chiffres li { padding: 20px 18px; border-radius: 16px; background: var(--noir); color: var(--gris-clair); font-size: 14px; line-height: 1.45; }
.article-chiffres b { display: block; font-size: 30px; line-height: 1.1; font-weight: 700; font-stretch: 125%; letter-spacing: -.02em; color: var(--or-clair); margin-bottom: 6px; }
.article-encadre { margin: 36px 0; padding: 24px 26px; border-radius: 18px; background: linear-gradient(135deg, var(--ivoire), #FBF8F2); border: 1px solid #E4D3B0; position: relative; }
.article-encadre::before { content: ""; position: absolute; left: 0; top: 22px; bottom: 22px; width: 3px; border-radius: 3px; background: var(--or); }
.article-encadre__titre { margin: 0 0 8px; font-size: 13px !important; letter-spacing: .08em; text-transform: uppercase; font-weight: 700; color: var(--or-texte) !important; }
.article-encadre div > p:last-child, .article-encadre ul:last-child { margin-bottom: 0; }
.contenu--article .wp-block-table { margin: 34px 0; overflow-x: auto; }
.contenu--article .wp-block-table table { min-width: 560px; font-size: 15px; line-height: 1.5; }
.contenu--article .wp-block-table th { background: var(--noir); color: var(--blanc); text-align: left; padding: 12px 14px; font-weight: 600; }
.contenu--article .wp-block-table td { padding: 12px 14px; border-bottom: 1px solid var(--pierre); vertical-align: top; }
.contenu--article .wp-block-table tr:nth-child(even) td { background: #FBF9F5; }
.contenu--article h3 { font-size: 22px; margin-top: 34px; }
.fiche-plus__guide a { color: var(--or-texte); font-weight: 600; }
.grille-articles--1 { grid-template-columns: minmax(0, 520px) !important; }
.grille-articles--2 { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
@media (max-width: 768px) {
  .contenu--article .article-produit { grid-template-columns: 76px 1fr; gap: 14px; }
  .article-produit__lien { grid-column: 1 / -1; justify-content: center; }
  .article-duo__grille { grid-template-columns: 1fr; }
  .grille-articles--2 { grid-template-columns: 1fr !important; }
}

/* ===== v3.0.0 : produits déclinés en plusieurs versions ===== */
/* Fiche : sélecteur en vignettes (photo, nom, ce qui change) */
.versions__label { display: flex; align-items: center; flex-wrap: wrap; gap: 4px 10px; margin: 0 0 14px; font-size: 16px; font-weight: 600; color: var(--encre); }
.versions__label svg { width: 20px; height: 20px; color: var(--or-texte); flex: none; }
.versions__label small { font-size: 13.5px; font-weight: 500; color: var(--gris); }
.versions__choix { display: grid; grid-template-columns: repeat(var(--nb, 3), minmax(0, 1fr)); gap: 10px; width: 100%; }
.versions__choix--2 { --nb: 2; }
.versions__choix--3 { --nb: 3; }
.version { position: relative; display: flex; flex-direction: column; align-items: flex-start; gap: 10px; min-height: 0; height: 100%; padding: 12px 12px 14px; border-radius: 16px; border: 1.5px solid var(--pierre); background: var(--blanc); color: var(--encre); text-align: left; font-size: 15px; cursor: pointer; transition: border-color .3s, box-shadow .3s, background .3s; }
.version:hover { border-color: var(--or-texte); }
.version.est-actif { background: var(--blanc); color: var(--encre); border-color: var(--or-texte); box-shadow: 0 0 0 1.5px var(--or-texte), 0 18px 36px -24px rgba(27,25,21,.45); }
.version__img { display: block; width: 100%; aspect-ratio: 4 / 3; border-radius: 10px; background: #fff; overflow: hidden; }
.version__img img { width: 100%; height: 100%; object-fit: contain; padding: 6px; }
.version__txt { display: flex; flex-direction: column; gap: 3px; }
.version__nom { font-weight: 600; line-height: 1.25; }
.version__court { font-size: 13px; line-height: 1.4; color: var(--gris); }
.version__coche { position: absolute; top: 10px; right: 10px; width: 22px; height: 22px; border-radius: 50%; border: 1.5px solid var(--pierre); background: var(--blanc); transition: background .3s, border-color .3s; }
.version.est-actif .version__coche { background: var(--or-bouton, #8C6A2E); border-color: var(--or-bouton, #8C6A2E); }
.version.est-actif .version__coche::after { content: ""; position: absolute; left: 7px; top: 3.5px; width: 5px; height: 10px; border: solid #fff; border-width: 0 2px 2px 0; transform: rotate(45deg); }
.galerie-produit__versions { position: absolute; top: 18px; left: 18px; z-index: 3; display: inline-flex; align-items: center; gap: 7px; padding: 8px 14px; border-radius: 999px; background: var(--or-bouton, #8C6A2E); color: #fff; font-size: 13px; font-weight: 600; text-decoration: none; box-shadow: 0 10px 24px -12px rgba(0,0,0,.5); }
.galerie-produit__versions svg { width: 16px; height: 16px; }
.galerie-produit__versions:hover { color: #fff; background: #765824; }

/* Cartes : badge sur la photo + liste des versions (chaque nom ouvre la fiche sur sa version) */
.carte-produit__media { position: relative; }
.carte-produit__nb-versions { position: absolute; top: 12px; left: 12px; display: inline-flex; align-items: center; gap: 6px; padding: 6px 11px; border-radius: 999px; background: var(--or-bouton, #8C6A2E); color: #fff; font-size: 12.5px; font-weight: 600; line-height: 1; box-shadow: 0 8px 20px -10px rgba(0,0,0,.45); }
.carte-produit__nb-versions svg { width: 14px; height: 14px; }
.carte-produit__versions { margin: 4px 0 0; }
.carte-produit__versions-titre { display: block; margin-bottom: 6px; font-size: 12.5px; font-weight: 600; color: var(--or-texte); }
.carte-produit__versions ul { list-style: none; display: flex; flex-wrap: wrap; gap: 6px; margin: 0; padding: 0; }
.carte-produit__versions a { position: relative; z-index: 2; display: inline-block; padding: 4px 11px; border-radius: 999px; border: 1px solid var(--pierre); font-size: 12.5px; color: var(--encre); text-decoration: none; transition: border-color .3s, background .3s; }
.carte-produit__versions a:hover, .carte-produit__versions a:focus-visible { border-color: var(--or-texte); background: var(--ivoire); }

@media (max-width: 768px) {
  /* Fiche mobile : titre et accroche d'abord, puis la photo, puis le choix de version juste dessous */
  .fiche-grille { display: flex; flex-direction: column; gap: 0; }
  .fiche-infos { display: contents; }
  .fiche-infos > * { order: 5; }
  .fiche-infos > .pill { order: 1; align-self: flex-start; }
  .fiche-infos > .fiche-titre { order: 2; }
  .fiche-infos > .fiche-accroche { order: 3; }
  .fiche-infos > .fiche-pills { order: 1; align-self: flex-start; }
  .fiche-grille > .galerie-produit { order: 4; width: 100%; margin: 6px 0 22px; }
  .fiche-infos > .versions { order: 4; }
  .galerie-produit__principale { aspect-ratio: 4 / 3; }
  .versions__choix { grid-template-columns: 1fr; gap: 8px; }
  .version { flex-direction: row; align-items: center; gap: 12px; padding: 8px 44px 8px 8px; border-radius: 14px; }
  .version__img { width: 64px; flex: none; aspect-ratio: 1 / 1; }
  .version__coche { top: 50%; right: 12px; margin-top: -11px; }
  .galerie-produit__versions { top: 12px; left: 12px; padding: 7px 12px; font-size: 12.5px; }
  .grille-produits .carte-produit__nb-versions { top: 8px; left: 8px; padding: 5px 9px; font-size: 11.5px; }
  .grille-produits .carte-produit__versions { display: none; }
}

/* Galerie de la fiche en carrousel : flèches, compteur, bande de vignettes sur une seule ligne */
.galerie-produit__vignettes { flex-wrap: nowrap; overflow-x: auto; scroll-snap-type: x proximity; scrollbar-width: none; padding: 2px 2px 4px; margin-left: -2px; margin-right: -2px; -webkit-mask-image: linear-gradient(90deg, #000 0, #000 calc(100% - 40px), transparent); mask-image: linear-gradient(90deg, #000 0, #000 calc(100% - 40px), transparent); }
.galerie-produit__vignettes::-webkit-scrollbar { display: none; }
.galerie-produit__vignettes li { flex: none; scroll-snap-align: start; }
.galerie-produit__nav { position: absolute; top: 50%; z-index: 3; width: 44px; height: 44px; margin-top: -22px; display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; border: 1px solid var(--pierre); background: rgba(255,255,255,.94); color: var(--encre); box-shadow: 0 8px 20px -12px rgba(0,0,0,.35); opacity: 0; transition: opacity .3s, transform .3s var(--ease), border-color .3s; right: 16px; }
.galerie-produit__nav svg { width: 18px; height: 18px; }
.galerie-produit__nav--prec { right: auto; left: 16px; }
.galerie-produit__nav--prec svg { transform: rotate(180deg); }
.galerie-produit__principale:hover .galerie-produit__nav, .galerie-produit__nav:focus-visible { opacity: 1; }
.galerie-produit__nav:hover { border-color: var(--or-texte); }
.galerie-produit__compte { position: absolute; right: 20px; bottom: 20px; z-index: 3; padding: 6px 12px; border-radius: 999px; background: rgba(14,13,11,.72); color: #fff; font-size: 12.5px; font-weight: 600; font-variant-numeric: tabular-nums; pointer-events: none; }
@media (hover: none) { .galerie-produit__nav { opacity: 1; } }
@media (max-width: 768px) {
  .galerie-produit__vignettes { gap: 8px; margin-top: 10px; }
  .galerie-produit__vignettes button { width: 60px; height: 60px; border-radius: 10px; padding: 4px; }
  .galerie-produit__nav { width: 38px; height: 38px; margin-top: -19px; }
  .galerie-produit__nav--prec { left: 10px; }
  .galerie-produit__nav:not(.galerie-produit__nav--prec) { right: 10px; }
  .galerie-produit__compte { right: 12px; bottom: 12px; }
  .galerie-produit__principale .badge { left: 12px; bottom: 12px; padding: 6px 12px; font-size: 12px; }
}
.fiche-grille > * { min-width: 0; }
.galerie-produit__vignettes { max-width: 100%; }

/* ===== Catalogue : filtres fins et tri ===== */
.carte-produit[hidden], .vide[hidden] { display: none !important; }
.affiner { margin: -14px 0 30px; }
.affiner__ouvrir { display: none; }
.affiner__corps { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 30px; padding: 18px 22px; border-radius: 18px; background: var(--ivoire); }
.affiner__groupe { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.affiner__label, .affiner__tri > span { font-size: 13px; font-weight: 600; color: var(--gris); margin-right: 4px; }
.affiner button.filtre { background: var(--blanc); cursor: pointer; font-family: inherit; }
.affiner button.filtre:hover { border-color: var(--or-texte); }
.affiner button.filtre.est-actif { background: var(--encre); border-color: var(--encre); color: var(--blanc); }
.affiner__pied { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 18px; margin-left: auto; }
.affiner__tri { display: inline-flex; align-items: center; gap: 8px; }
.affiner__tri select { min-height: 40px; padding: 0 36px 0 14px; border-radius: 999px; border: 1px solid var(--pierre); background: var(--blanc) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none' stroke='%231B1915' stroke-width='1.6'%3E%3Cpath d='m1 1.5 5 5 5-5'/%3E%3C/svg%3E") no-repeat right 14px center; -webkit-appearance: none; appearance: none; font: inherit; font-size: 14px; color: var(--encre); cursor: pointer; }
.affiner__resultat { margin: 0; font-size: 14px; color: var(--gris); }
.affiner__resultat b { color: var(--encre); }
.affiner__reset { border: 0; background: none; padding: 0; font: inherit; font-size: 14px; font-weight: 600; color: var(--or-texte); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.affiner__nb-actifs { display: inline-flex; align-items: center; justify-content: center; min-width: 22px; height: 22px; padding: 0 6px; border-radius: 999px; background: var(--or-bouton, #8C6A2E); color: #fff; font-size: 12px; font-weight: 700; }
.affiner__nb-actifs[hidden] { display: none; }
@media (max-width: 768px) {
  .affiner { margin: -18px 0 22px; }
  .affiner__ouvrir { display: flex; align-items: center; gap: 10px; min-height: 48px; padding: 0 18px; border-radius: 999px; border: 1px solid var(--pierre); background: var(--blanc); font-weight: 600; font-size: 15px; cursor: pointer; list-style: none; }
  .affiner__ouvrir::-webkit-details-marker { display: none; }
  .affiner__ouvrir svg { width: 18px; height: 18px; color: var(--or-texte); }
  .affiner[open] .affiner__ouvrir { border-color: var(--or-texte); }
  .affiner__corps { margin-top: 10px; padding: 16px; flex-direction: column; align-items: stretch; gap: 16px; }
  .affiner__pied { margin-left: 0; justify-content: space-between; }
}

/* ===== Éléments flottants : remonter en haut (droite) et aide (gauche) ===== */
.remonter, .aide__bouton { --bas: 24px; }
.remonter { position: fixed; right: 24px; bottom: var(--bas); z-index: 95; width: 50px; height: 50px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; color: var(--blanc); background: rgba(14,13,11,.88); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); box-shadow: 0 14px 30px -14px rgba(0,0,0,.55); opacity: 0; visibility: hidden; transform: translateY(14px); transition: opacity .35s var(--ease), transform .35s var(--ease), visibility 0s linear .35s, bottom .4s var(--ease); }
.remonter::before { content: ""; position: absolute; inset: 0; border-radius: 50%; padding: 2px; background: conic-gradient(var(--or-clair, #D4B271) calc(var(--p, 0) * 1turn), rgba(255,255,255,.14) 0); -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask: linear-gradient(#000 0 0) content-box exclude, linear-gradient(#000 0 0); }
.remonter svg { width: 18px; height: 18px; position: relative; }
.remonter.is-visible { opacity: 1; visibility: visible; transform: none; transition: opacity .35s var(--ease), transform .35s var(--ease), visibility 0s, bottom .4s var(--ease); }
.remonter:hover { color: var(--or-clair, #D4B271); transform: translateY(-3px); }

.aide { position: fixed; left: 24px; bottom: 24px; z-index: 96; display: flex; flex-direction: column; align-items: flex-start; gap: 12px; transition: bottom .4s var(--ease), opacity .3s; }
.aide__bouton { position: relative; width: 54px; height: 54px; border-radius: 50%; border: 1px solid rgba(185,147,79,.45); background: var(--noir, #0E0D0B); color: var(--or-clair, #D4B271); display: inline-flex; align-items: center; justify-content: center; cursor: pointer; box-shadow: 0 16px 34px -14px rgba(0,0,0,.6); transition: transform .3s var(--ease), background .3s; }
.aide__bouton svg { width: 23px; height: 23px; }
.aide__bouton:hover { transform: translateY(-2px); }
.aide__bouton[aria-expanded="true"] { background: var(--or-bouton, #8C6A2E); color: #fff; }
.aide__point { position: absolute; top: 3px; right: 3px; width: 11px; height: 11px; border-radius: 50%; border: 2px solid var(--noir, #0E0D0B); background: #9a9286; }
.aide[data-etat="ouvert"] .aide__point { background: #3DBA6E; }
.aide__panneau { width: min(360px, calc(100vw - 32px)); max-height: calc(100dvh - 120px); overflow-y: auto; padding: 20px; border-radius: 20px; background: rgba(14,13,11,.97); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); border: 1px solid rgba(185,147,79,.3); color: #E9E3D7; box-shadow: 0 30px 70px -20px rgba(0,0,0,.6); transform-origin: bottom left; animation: aide-entree .35s var(--ease); }
@keyframes aide-entree { from { opacity: 0; transform: translateY(10px) scale(.97); } to { opacity: 1; transform: none; } }
.aide__tete { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.aide__titre { margin: 0; font-size: 17px; font-weight: 600; color: #fff; line-height: 1.3; }
.aide__fermer, .aide__bulle-fermer { flex: none; width: 32px; height: 32px; border-radius: 50%; border: 0; background: rgba(255,255,255,.08); color: inherit; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; }
.aide__fermer svg, .aide__bulle-fermer svg { width: 15px; height: 15px; }
.aide__statut { display: flex; align-items: center; gap: 8px; margin: 10px 0 16px; font-size: 13px; color: #B9B0A0; }
.aide__statut i { width: 8px; height: 8px; border-radius: 50%; background: #9a9286; flex: none; }
.aide__statut[data-etat="ouvert"] i { background: #3DBA6E; box-shadow: 0 0 0 4px rgba(61,186,110,.18); }
.aide__statut[data-etat="pause"] i { background: #E0A43A; }
.aide__choix { display: flex; flex-direction: column; gap: 8px; }
.aide__option { display: flex; align-items: flex-start; gap: 12px; width: 100%; padding: 13px 14px; border-radius: 14px; border: 1px solid rgba(255,255,255,.1); background: rgba(255,255,255,.04); color: #E9E3D7; text-align: left; text-decoration: none; font: inherit; font-size: 13.5px; line-height: 1.45; cursor: pointer; transition: border-color .3s, background .3s; }
.aide__option:hover, .aide__option:focus-visible { border-color: rgba(185,147,79,.6); background: rgba(185,147,79,.08); color: #E9E3D7; }
.aide__option b { display: block; font-size: 15px; color: #fff; margin-bottom: 2px; }
.aide__ico { flex: none; width: 36px; height: 36px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; background: rgba(185,147,79,.16); color: var(--or-clair, #D4B271); }
.aide__ico svg { width: 18px; height: 18px; }
.aide__form { display: flex; flex-direction: column; gap: 6px; }
.aide__form[hidden] { display: none; }
.aide__form label { font-size: 13px; color: #CFC6B5; margin-top: 6px; }
.aide__form input[type="text"], .aide__form input[type="tel"], .aide__form select { min-height: 46px; padding: 0 14px; border-radius: 12px; border: 1px solid rgba(255,255,255,.14); background: rgba(255,255,255,.05); color: #fff; font: inherit; font-size: 15px; }
.aide__form select { -webkit-appearance: none; appearance: none; background-image: linear-gradient(45deg, transparent 50%, #CFC6B5 50%), linear-gradient(135deg, #CFC6B5 50%, transparent 50%); background-position: calc(100% - 20px) 50%, calc(100% - 15px) 50%; background-size: 5px 5px; background-repeat: no-repeat; padding-right: 40px; }
.aide__form select option { color: #111; }
.aide__form input:focus, .aide__form select:focus { border-color: var(--or); outline: none; }
.aide__consent { display: flex; gap: 10px; align-items: flex-start; font-size: 12.5px !important; line-height: 1.45; margin-top: 10px !important; }
.aide__consent input { margin-top: 2px; flex: none; }
.aide__consent a { color: inherit; }
.aide__actions { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 12px; }
.aide__retour { display: inline-flex; align-items: center; gap: 6px; border: 0; background: none; color: #CFC6B5; font: inherit; font-size: 14px; cursor: pointer; padding: 0; }
.aide__retour svg { width: 16px; height: 16px; }
.aide__erreur { margin: 8px 0 4px; padding: 10px 12px; border-radius: 10px; background: rgba(214,99,80,.16); color: #F3C0B6; font-size: 13.5px; }
.aide__bulle { position: relative; width: min(300px, calc(100vw - 32px)); padding: 16px 44px 16px 16px; border-radius: 18px 18px 18px 6px; background: var(--blanc, #fff); color: var(--encre); box-shadow: 0 24px 50px -20px rgba(0,0,0,.45); border: 1px solid #EFEAE0; animation: aide-entree .4s var(--ease); }
.aide__bulle[hidden] { display: none; }
.aide__bulle p { margin: 0 0 10px; font-size: 14px; line-height: 1.45; color: var(--gris); }
.aide__bulle b { display: block; color: var(--encre); font-size: 15px; margin-bottom: 2px; }
.aide__bulle-fermer { position: absolute; top: 10px; right: 10px; width: 28px; height: 28px; background: var(--ivoire); color: var(--encre); }
.aide__bulle-action { display: inline-flex; align-items: center; gap: 8px; border: 0; background: none; padding: 0; font: inherit; font-weight: 600; font-size: 14.5px; color: var(--or-texte); cursor: pointer; }
.aide__bulle-action svg { width: 16px; height: 16px; }
/* Bannière cookies ouverte : l'aide s'efface pour ne pas se superposer */
body:has(.cookies.is-visible) .aide { opacity: 0; pointer-events: none; }
@media (max-width: 1024px) {
  .remonter { right: 14px; width: 44px; height: 44px; --bas: 16px; }
  .aide { left: 14px; bottom: 16px; }
  .aide__bouton { width: 48px; height: 48px; }
  .aide__bouton svg { width: 21px; height: 21px; }
  /* Barre « Demander une démo » des fiches : les ronds passent au-dessus */
}
@media (max-width: 860px) {
  /* Mobile : une seule rangée flottante. Aide à gauche, « Demander une démo » au centre, remonter à droite.
     L'ancienne barre noire (démo + téléphone) devient une pastille : le téléphone est déjà dans l'aide. */
  .cta-collant { left: 72px; right: 72px; bottom: calc(16px + env(safe-area-inset-bottom)); padding: 0; gap: 0; background: none; -webkit-backdrop-filter: none; backdrop-filter: none; pointer-events: none; transform: translateY(24px); opacity: 0; transition: transform .4s var(--ease), opacity .3s; }
  .cta-collant.is-visible { transform: none; opacity: 1; pointer-events: none; }
  .cta-collant.is-visible .btn { pointer-events: auto; }
  .cta-collant .btn { min-height: 48px; padding: 0 18px; font-size: 15px; white-space: nowrap; box-shadow: 0 14px 30px -12px rgba(0,0,0,.55); }
  .cta-collant .icon-btn { display: none; }
  .aide { bottom: calc(16px + env(safe-area-inset-bottom)); }
  .remonter { --bas: calc(16px + env(safe-area-inset-bottom)); }
}
@media (prefers-reduced-motion: reduce) { .aide__panneau, .aide__bulle { animation: none; } }
@media print { .remonter, .aide { display: none !important; } }
.aide__choix[hidden] { display: none; }

/* Raccourcis « Le flux complet pour » : pastilles sur ordinateur, liste nette sur mobile */
.aide__bouton:focus:not(:focus-visible) { outline: none; }
.flux-raccourcis ul a svg { display: none; }
@media (max-width: 768px) {
  .flux-raccourcis { flex-direction: column; align-items: stretch; gap: 0; padding: 22px 20px 20px; }
  .flux-raccourcis p { margin-bottom: 6px; font-size: 13px; font-weight: 600; color: var(--or-texte); letter-spacing: .02em; }
  .flux-raccourcis ul { flex-direction: column; gap: 0; flex: none; }
  .flux-raccourcis ul li + li { border-top: 1px solid #EFEAE0; }
  .flux-raccourcis ul a { display: flex; justify-content: space-between; gap: 14px; width: 100%; min-height: 56px; padding: 12px 0; border: 0; border-radius: 0; font-size: 16px; font-weight: 500; line-height: 1.3; }
  .flux-raccourcis ul a svg { display: block; flex: none; width: 18px; height: 18px; color: var(--or-texte); transition: transform .3s var(--ease); }
  .flux-raccourcis ul a:active svg { transform: translateX(4px); }
  .flux-raccourcis .btn { margin-top: 14px; }
}
@media (max-width: 860px) { .remonter { width: 48px; height: 48px; right: 14px; } }
.guide__question[hidden] { display: none !important; }

/* ===== Open CAD-CAM Days : liste sur une ligne par point, photos en carrousel pleine largeur ===== */
#cadcam-days .titre-sec { flex-wrap: wrap; }
#cadcam-days .days-liste { grid-template-columns: repeat(2, max-content); gap: 14px 56px; max-width: none; font-size: 16px; }
#cadcam-days .days-liste li { white-space: nowrap; }
.defile { position: relative; margin-top: 10px; }
.defile__piste { overflow-x: auto; overflow-y: hidden; scrollbar-width: none; -webkit-overflow-scrolling: touch; cursor: grab; outline: none; }
.defile__piste::-webkit-scrollbar { display: none; }
.defile__piste:focus-visible { outline: 2px solid var(--or); outline-offset: 4px; }
.defile__piste.is-glisse { cursor: grabbing; }
.defile__rail { display: flex; gap: 16px; width: max-content; padding: 0 16px; }
.defile__item { position: relative; flex: none; margin: 0; height: clamp(240px, 30vw, 440px); aspect-ratio: 4 / 3; border-radius: 18px; overflow: hidden; background: var(--noir-3); user-select: none; -webkit-user-select: none; }
.defile__item:nth-child(3n+2) { aspect-ratio: 3 / 4; }
.defile__item img { width: 100%; height: 100%; object-fit: cover; pointer-events: none; transition: transform 1.4s var(--ease); }
.defile__item:hover img { transform: scale(1.04); }
.defile__item figcaption { position: absolute; left: 16px; bottom: 16px; font-size: 13px; font-weight: 600; color: var(--blanc); background: rgba(14,13,11,.6); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); padding: 6px 12px; border-radius: 999px; }
.defile__pause { position: absolute; right: 24px; top: 18px; z-index: 2; width: 42px; height: 42px; border-radius: 50%; border: 1px solid rgba(255,255,255,.25); background: rgba(14,13,11,.7); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); color: #fff; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; }
.defile__ico-pause { width: 12px; height: 14px; border-left: 4px solid currentColor; border-right: 4px solid currentColor; }
.defile__pause[aria-pressed="true"] .defile__ico-pause { width: 0; height: 0; border-style: solid; border-width: 7px 0 7px 12px; border-color: transparent transparent transparent currentColor; margin-left: 3px; }
@media (max-width: 1024px) {
  #cadcam-days .days-liste { grid-template-columns: 1fr; gap: 12px; }
  #cadcam-days .days-liste li { white-space: normal; }
  .defile__rail { gap: 10px; padding: 0 12px; }
  .defile__item { height: 260px; border-radius: 14px; }
  .defile__pause { right: 16px; top: 12px; width: 38px; height: 38px; }
}

/* ===== v3.0.5 : corrections de la revue visuelle ===== */
/* Lisibilité des titres sur les tuiles et la carte « Idéal pour » */
.tuile::after { background: linear-gradient(0deg, rgba(14,13,11,.94) 0%, rgba(14,13,11,.6) 38%, rgba(14,13,11,.12) 68%, rgba(14,13,11,0) 100%); }
.tuile--blanc::after { background: linear-gradient(0deg, rgba(14,13,11,.95) 0%, rgba(14,13,11,.8) 30%, rgba(14,13,11,0) 56%); }
.bento__case--une::after { background: linear-gradient(180deg, rgba(14,13,11,0) 12%, rgba(14,13,11,.84) 46%, rgba(14,13,11,.98) 100%); }
/* Intertitres de cartes : interligne de titre, pas de texte courant */
h3 { line-height: 1.22; }
/* Groupes de mots à ne jamais couper (CAD-CAM, chirurgien-dentiste, All-on-X…) */
.insec { white-space: nowrap; }
/* Résultats de recherche : une colonne sur mobile, cartes à hauteur naturelle */
.grille-recherche { align-items: start; }
@media (max-width: 768px) { .grille-recherche { grid-template-columns: minmax(0, 1fr) !important; } }
/* Fil d'Ariane mobile : le bouton Retour suffit, plus de fragments de texte coupés */
@media (max-width: 768px) { .ariane-barre:has(.retour) .ariane { display: none; } }
/* Tableaux des articles : défilement horizontal sur mobile, avec ombre de bord */
.contenu--article .wp-block-table { overflow-x: auto; -webkit-overflow-scrolling: touch; }
@media (max-width: 768px) {
  .contenu--article .wp-block-table { background: linear-gradient(90deg, #fff 30%, rgba(255,255,255,0)), linear-gradient(90deg, rgba(255,255,255,0), #fff 70%) 100% 0, radial-gradient(farthest-side at 100% 50%, rgba(27,25,21,.16), transparent) 100% 0; background-repeat: no-repeat; background-size: 40px 100%, 40px 100%, 14px 100%; background-attachment: local, local, scroll; }
  .contenu--article .wp-block-table table { min-width: 560px; }
}
/* Pied de page : l'e-mail ne se coupe pas */
.footer a[href^="mailto:"], .footer .info { overflow-wrap: normal; word-break: normal; }
.footer a[href^="mailto:"] { overflow-wrap: normal; word-break: keep-all; }
/* Plan du site : sous-élément marqué d'un point, plus d'un trait qui ressemble à un tiret */
.plan-carte li.est-enfant a::before { width: 4px; height: 4px; border-radius: 50%; margin-top: -2px; }
/* Libellés longs : version courte sur mobile */
.lib-court { display: none; }
@media (max-width: 768px) { .lib-long { display: none; } .lib-court { display: inline; } }
/* Questionnaire scanner : le texte de la page forme une vraie section */
.guide__texte { margin-top: clamp(56px, 7vw, 96px); padding-top: clamp(40px, 5vw, 64px); border-top: 1px solid var(--pierre); }
@media (max-width: 768px) { .blog-filtres { -webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 48px), transparent); mask-image: linear-gradient(90deg, #000 calc(100% - 48px), transparent); } }
/* Famille de fiches (gamme Elite) : même présentation que le choix de version, en liens */
.famille-fiches { width: 100%; margin: 0 0 24px; }
.famille-fiches ul { list-style: none; margin: 0; padding: 0; }
.famille-fiches li { display: flex; }
.famille-fiches a.version { width: 100%; text-decoration: none; }
.famille-fiches a.version:hover .version__nom { color: var(--or-texte); }
@media (max-width: 768px) { .fiche-infos > .famille-fiches { order: 4; } }

/* ===== v3.2.0 : scène produit des bandeaux d'en-tête ===== */
.page-hero--scene { padding: 56px 0 70px; }
.page-hero__grille { display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(0, .88fr); gap: 48px; align-items: center; }
.page-hero__texte { min-width: 0; }
.page-hero--scene .page-hero__titre { font-size: clamp(34px, 4.1vw, 62px); }
.page-hero--scene::before { right: -6%; top: -20%; width: 52%; }
.page-hero__scene { min-width: 0; }

.scene { position: relative; height: clamp(330px, 32vw, 470px); }
.scene__halo { position: absolute; inset: 2% 0 10%; border-radius: 50%; background: radial-gradient(closest-side, rgba(216,188,134,.30), rgba(185,147,79,.12) 52%, rgba(185,147,79,0) 74%); animation: scene-souffle 7s ease-in-out infinite alternate; pointer-events: none; }
.scene__sol { position: absolute; left: 10%; right: 10%; bottom: 40px; height: 46px; border-radius: 50%; background: radial-gradient(closest-side, rgba(0,0,0,.75), rgba(0,0,0,0)); pointer-events: none; }
.scene__sol::before { content: ""; position: absolute; inset: 6px 4%; border-radius: 50%; border: 1px solid rgba(216,188,134,.28); border-top-color: rgba(216,188,134,.08); }
.scene__liste { list-style: none; margin: 0; padding: 0; position: absolute; inset: 0; }
.scene__item { position: absolute; inset: 0 0 62px; display: flex; align-items: flex-end; justify-content: center; opacity: 0; visibility: hidden; transition: opacity .9s ease, visibility 0s linear .9s; }
.scene__item.is-actif { opacity: 1; visibility: visible; transition: opacity .9s ease, visibility 0s; }
.scene__item img { display: block; width: auto; height: auto; max-width: 80%; max-height: 92%; object-fit: contain; filter: drop-shadow(0 26px 30px rgba(0,0,0,.55)); transform: translateY(16px) scale(.96); transition: transform 1.3s cubic-bezier(.22,1,.36,1); }
.scene__item.is-actif img { transform: none; }
.scene__item--cadre { align-items: center; }
.scene__item--cadre img { max-width: 94%; max-height: 86%; border-radius: 14px; border: 1px solid rgba(255,255,255,.12); filter: none; box-shadow: 0 30px 60px rgba(0,0,0,.55); }
.scene__nom { position: absolute; left: 50%; bottom: -50px; transform: translateX(-50%); display: inline-flex; align-items: center; gap: 8px; max-width: 100%; padding: 8px 14px 8px 16px; border-radius: 999px; background: rgba(23,21,19,.82); border: 1px solid rgba(216,188,134,.28); color: #EDE6D8; font-size: 13.5px; font-weight: 500; line-height: 1.2; text-decoration: none; white-space: nowrap; -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); transition: border-color .25s, color .25s; }
.scene__nom span { overflow: hidden; text-overflow: ellipsis; }
.scene__nom svg { width: 14px; height: 14px; flex: none; color: var(--or-clair); transition: transform .25s; }
.scene__nom:hover, .scene__nom:focus-visible { color: #fff; border-color: var(--or-clair); }
.scene__nom:hover svg { transform: translateX(3px); }
.scene__ctrl { position: absolute; top: 0; right: 0; display: flex; align-items: center; gap: 12px; z-index: 2; }
.scene__points { display: flex; gap: 6px; }
.scene__points i { width: 6px; height: 6px; border-radius: 50%; background: rgba(255,255,255,.25); transition: background .3s, width .3s; }
.scene__points i.is-actif { width: 18px; border-radius: 3px; background: var(--or-clair); }
.scene__pause { width: 34px; height: 34px; border-radius: 50%; border: 1px solid rgba(255,255,255,.22); background: rgba(23,21,19,.6); color: #EDE6D8; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; padding: 0; transition: border-color .25s; }
.scene__pause:hover { border-color: var(--or-clair); }
.scene__ico-pause { width: 10px; height: 11px; border-left: 3px solid currentColor; border-right: 3px solid currentColor; }
.scene__pause[aria-pressed="true"] .scene__ico-pause { width: 0; height: 0; border-style: solid; border-width: 6px 0 6px 10px; border-color: transparent transparent transparent currentColor; margin-left: 3px; }
@keyframes scene-souffle { from { transform: scale(.94); opacity: .85; } to { transform: scale(1.04); opacity: 1; } }
.scene.is-arret .scene__halo { animation-play-state: paused; }

.marque-hero__scene { align-self: center; padding-bottom: 50px; }

@media (max-width: 1024px) {
  .page-hero__grille { grid-template-columns: minmax(0, 1fr); gap: 18px; }
  .page-hero--scene { padding: 44px 0 56px; }
  .scene { height: 290px; max-width: 520px; margin: 0 auto; }
  .marque-hero__scene { padding-bottom: 30px; }
}
@media (max-width: 600px) {
  .scene { height: 250px; }
  .scene__item { inset: 26px 0 56px; }
  .scene__item img { max-width: 72%; }
  .scene__nom { bottom: -46px; font-size: 13px; }
  .scene__sol { bottom: 34px; }
}
.scene__item--large img { max-width: 66%; }
@media (max-width: 600px) { .scene__item--large img { max-width: 62%; } }
/* Photos de fond chargées (showroom, services) : voile plus dense sous le titre */
.page-hero--fond .page-hero__img::after { background: linear-gradient(90deg, rgba(14,13,11,.95) 0%, rgba(14,13,11,.86) 45%, rgba(14,13,11,.5) 78%, rgba(14,13,11,.38) 100%), linear-gradient(0deg, rgba(14,13,11,.65) 0%, rgba(14,13,11,0) 45%); }
@media (max-width: 1024px) { .page-hero--fond .page-hero__img::after { background: rgba(14,13,11,.78); } }

/* v3.2.1 : scène pilotable (flèches, points) et scène des marques */
.scene__item { transition: opacity .55s ease, visibility 0s linear .55s; }
.scene__item.is-actif { transition: opacity .55s ease, visibility 0s; }
.scene__item img { transition: transform .9s cubic-bezier(.22,1,.36,1); }
.scene__liste { touch-action: pan-y; }
.scene__points button { position: relative; width: 8px; height: 8px; padding: 0; border: 0; border-radius: 50%; background: rgba(255,255,255,.3); cursor: pointer; transition: background .3s, width .3s; }
.scene__points button::before { content: ""; position: absolute; inset: -9px -4px; }
.scene__points button:hover { background: rgba(255,255,255,.6); }
.scene__points button.is-actif { width: 22px; border-radius: 4px; background: var(--or-clair); }
.scene__points { gap: 8px; }
.scene__fleche { position: absolute; top: calc(50% - 52px); z-index: 3; width: 44px; height: 44px; border-radius: 50%; border: 1px solid rgba(255,255,255,.22); background: rgba(23,21,19,.65); color: #EDE6D8; display: inline-flex; align-items: center; justify-content: center; padding: 0; cursor: pointer; opacity: .75; transition: opacity .25s, border-color .25s, color .25s; -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.scene__fleche svg { width: 16px; height: 16px; }
.scene__fleche--prec { left: 0; }
.scene__fleche--prec svg { transform: rotate(180deg); }
.scene__fleche--suiv { right: 0; }
.scene:hover .scene__fleche, .scene__fleche:focus-visible { opacity: 1; }
.scene__fleche:hover { border-color: var(--or-clair); color: var(--or-clair); }

.scene__item--logo { align-items: center; }
.scene__marque { display: flex; flex-direction: column; align-items: center; gap: 20px; width: 78%; text-align: center; transform: translateY(12px); transition: transform .9s cubic-bezier(.22,1,.36,1); }
.scene__item--logo.is-actif .scene__marque { transform: none; }
.scene__item--logo img, .scene__item--logo.is-actif img { width: auto; height: clamp(52px, 5.4vw, 88px); max-width: 100%; max-height: none; object-fit: contain; filter: none; transform: none; }
.scene__marque-nom { font-size: clamp(48px, 5vw, 72px); font-weight: 300; font-stretch: 125%; letter-spacing: -.03em; line-height: 1; color: #fff; }
.scene__marque-txt { font-size: 15px; line-height: 1.5; color: #BDB4A4; max-width: 340px; }
.scene--marques .scene__halo { inset: 8% 4% 14%; }
@media (max-width: 600px) {
  .scene__fleche { width: 40px; height: 40px; top: calc(50% - 46px); }
  .scene__marque { width: 70%; gap: 14px; }
  .scene__item--logo img, .scene__item--logo.is-actif img { height: 46px; }
  .scene__marque-nom { font-size: 44px; }
  .scene__marque-txt { font-size: 14px; }
}
.scene__item--logo { flex-direction: column; gap: 28px; inset: 0 0 20px; }
.scene__item--logo .scene__nom { position: static; transform: none; }
.scene--marques { height: clamp(300px, 26vw, 380px); }
.scene--marques .scene__item--logo { inset: 40px 0 10px; }
@media (max-width: 1024px) { .scene--marques { height: 280px; } }
@media (max-width: 600px) { .scene--marques { height: 260px; } .scene--marques .scene__item--logo { gap: 20px; } }

/* v3.2.1 : hero du guide scanner, comparatif visuel */
.comparo { position: relative; padding: 26px 24px 22px; border-radius: 24px; background: linear-gradient(180deg, rgba(34,32,28,.85), rgba(23,21,19,.92)); border: 1px solid rgba(216,188,134,.22); box-shadow: 0 40px 80px rgba(0,0,0,.45); }
.comparo__halo { position: absolute; left: 10%; right: 10%; top: -10%; height: 70%; border-radius: 50%; background: radial-gradient(closest-side, rgba(216,188,134,.18), rgba(216,188,134,0)); pointer-events: none; }
.comparo__table { position: relative; width: 100%; border-collapse: collapse; table-layout: fixed; }
.comparo__table thead td { width: 27%; }
.comparo__table th, .comparo__table td { padding: 11px 6px; text-align: center; vertical-align: middle; font-size: 13.5px; line-height: 1.35; color: #E3DCCD; }
.comparo__table tbody th { text-align: left; font-weight: 500; color: #A9A091; font-size: 13px; padding-left: 0; }
.comparo__table tbody tr { border-top: 1px solid rgba(255,255,255,.09); }
.comparo__table thead th { padding: 0 4px 12px; vertical-align: bottom; }
.comparo__tete { display: flex; flex-direction: column; align-items: center; gap: 10px; text-decoration: none; color: #fff; }
.comparo__img { display: flex; align-items: flex-end; justify-content: center; height: 132px; width: 100%; }
.comparo__img img { max-height: 100%; max-width: 100%; width: auto; height: auto; object-fit: contain; filter: drop-shadow(0 16px 18px rgba(0,0,0,.6)); transition: transform .4s cubic-bezier(.22,1,.36,1); animation: comparo-entree .9s cubic-bezier(.22,1,.36,1) both; animation-delay: calc(var(--i, 0) * .12s + .2s); }
.comparo__tete:hover img { transform: translateY(-6px); }
.comparo__nom { font-size: 14px; font-weight: 600; line-height: 1.2; }
.comparo__nom small { display: block; font-size: 11px; font-weight: 500; letter-spacing: .06em; text-transform: uppercase; color: var(--or-clair); margin-bottom: 2px; }
.comparo__tete:hover .comparo__nom, .comparo__tete:focus-visible .comparo__nom { color: var(--or-clair); }
.comparo__oui svg { width: 18px; height: 18px; color: var(--or-clair); }
.comparo__non { color: rgba(255,255,255,.35) !important; font-size: 22px !important; line-height: 1 !important; }
.comparo__go { display: inline-flex; align-items: center; gap: 8px; margin-top: 16px; font-size: 14px; font-weight: 600; color: var(--or-clair); text-decoration: none; }
.comparo__go svg { width: 15px; height: 15px; transform: rotate(90deg); transition: transform .25s; }
.comparo__go:hover svg { transform: rotate(90deg) translateX(3px); }
@keyframes comparo-entree { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
@media (max-width: 1024px) { .comparo { max-width: 620px; margin: 6px auto 0; } }
@media (max-width: 600px) {
  .comparo { padding: 18px 12px 16px; border-radius: 20px; }
  .comparo__table thead td { width: 22%; }
  .comparo__img { height: 84px; }
  .comparo__nom { font-size: 12px; }
  .comparo__nom small { font-size: 9.5px; }
  .comparo__table th, .comparo__table td { font-size: 12px; padding: 9px 3px; }
  .comparo__table tbody th { font-size: 11.5px; }
}
.comparo__non { font-size: 12.5px !important; color: rgba(255,255,255,.4) !important; }
@media (max-width: 600px) { .comparo__nom small { display: none; } }
@media (max-width: 600px) {
  .comparo__table thead td { width: 25%; }
  .comparo__table tbody th { font-size: 11px; hyphens: manual; }
}

/* v3.2.1 : hero des flux, la chaîne étape par étape */
.chaine-hero { position: relative; padding: 30px 0 10px; --rond: clamp(84px, 7.6vw, 112px); }
.chaine-hero__halo { position: absolute; left: 5%; right: 5%; top: -20%; bottom: -10%; border-radius: 50%; background: radial-gradient(closest-side, rgba(216,188,134,.16), rgba(216,188,134,0)); pointer-events: none; }
.chaine-hero__liste { position: relative; list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(var(--n), minmax(0, 1fr)); gap: 6px; counter-reset: none; }
.chaine-hero__liste::before { content: ""; position: absolute; top: calc(var(--rond) / 2); left: calc(50% / var(--n)); right: calc(50% / var(--n)); height: 2px; background: linear-gradient(90deg, rgba(216,188,134,.15), rgba(216,188,134,.55), rgba(216,188,134,.15)); }
.chaine-hero__liste::after { content: ""; position: absolute; top: calc(var(--rond) / 2 - 2px); left: calc(50% / var(--n)); width: 60px; height: 6px; border-radius: 3px; background: radial-gradient(closest-side, #F3E3BE, rgba(216,188,134,0)); animation: chaine-lumiere 3.2s cubic-bezier(.45,0,.55,1) infinite; }
@keyframes chaine-lumiere { from { transform: translateX(-30px); opacity: 0; } 15% { opacity: 1; } 85% { opacity: 1; } to { transform: translateX(calc((100% / var(--n)) * 0 + var(--trajet, 380px))); opacity: 0; } }
.chaine-hero__etape { position: relative; z-index: 1; animation: comparo-entree .8s cubic-bezier(.22,1,.36,1) both; animation-delay: calc(var(--i) * .14s + .15s); }
.chaine-hero__etape a { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 6px; text-decoration: none; color: #fff; }
.chaine-hero__rond { position: relative; width: var(--rond); height: var(--rond); border-radius: 50%; background: radial-gradient(circle at 50% 35%, #2A2723, #141210 70%); border: 1px solid rgba(216,188,134,.35); box-shadow: 0 18px 40px rgba(0,0,0,.5), inset 0 1px 0 rgba(255,255,255,.06); display: flex; align-items: center; justify-content: center; margin-bottom: 8px; transition: border-color .3s, transform .4s cubic-bezier(.22,1,.36,1); }
.chaine-hero__rond img { max-width: 70%; max-height: 72%; width: auto; height: auto; object-fit: contain; filter: drop-shadow(0 8px 10px rgba(0,0,0,.6)); }
.chaine-hero__rond img.chaine-hero__logo { max-width: 74%; filter: none; }
.chaine-hero__ico svg { width: 34px; height: 34px; color: var(--or-clair); }
.chaine-hero__num { position: absolute; top: -4px; left: -4px; min-width: 28px; height: 28px; padding: 0 6px; border-radius: 14px; background: var(--or-bouton); color: #fff; font-size: 11.5px; font-weight: 700; display: inline-flex; align-items: center; justify-content: center; letter-spacing: .02em; box-shadow: 0 0 0 3px var(--noir); }
.chaine-hero__role { font-size: 15px; font-weight: 600; color: #fff; line-height: 1.2; }
.chaine-hero__nom { font-size: 12.5px; color: #A9A091; line-height: 1.3; }
.chaine-hero__etape a:hover .chaine-hero__rond, .chaine-hero__etape a:focus-visible .chaine-hero__rond { border-color: var(--or-clair); transform: translateY(-4px); }
.chaine-hero__etape a:hover .chaine-hero__nom { color: var(--or-clair); }
@media (max-width: 1024px) { .chaine-hero { max-width: 620px; margin: 0 auto; --rond: 92px; } }
@media (max-width: 600px) {
  .chaine-hero { --rond: 58px; padding-top: 18px; }
  .chaine-hero__num { min-width: 22px; height: 22px; font-size: 10px; top: -6px; left: -6px; }
  .chaine-hero__role { font-size: 12px; }
  .chaine-hero__nom { font-size: 10.5px; }
  .chaine-hero__ico svg { width: 24px; height: 24px; }
}
.chaine-hero__liste::after { left: 0; animation-name: chaine-lumiere2; }
@keyframes chaine-lumiere2 { 0% { left: calc(50% / var(--n) - 30px); opacity: 0; } 12% { opacity: 1; } 88% { opacity: 1; } 100% { left: calc(100% - 50% / var(--n) - 30px); opacity: 0; } }
.chaine-hero { --rond: clamp(88px, 7.6vw, 114px); }
.chaine-hero[style*="--n:3"], .chaine-hero[style*="--n:4"] { --rond: clamp(96px, 8.6vw, 128px); }
.chaine-hero__role { font-size: 16px; }
.chaine-hero__nom { font-size: 13px; }
@media (max-width: 600px) { .chaine-hero, .chaine-hero[style*="--n:3"], .chaine-hero[style*="--n:4"] { --rond: 58px; } .chaine-hero[style*="--n:3"] { --rond: 76px; } .chaine-hero__role { font-size: 12px; } .chaine-hero__nom { font-size: 10.5px; } }
.scene__badge { position: absolute; top: 8%; left: 6%; z-index: 2; padding: 10px 18px; border-radius: 999px; background: var(--or-bouton); color: #fff; font-size: clamp(15px, 1.25vw, 18px); font-weight: 700; letter-spacing: -.01em; box-shadow: 0 12px 30px rgba(0,0,0,.45); transform: translateY(8px) rotate(-4deg); opacity: 0; transition: transform .7s cubic-bezier(.22,1,.36,1) .15s, opacity .5s ease .15s; }
.scene__item.is-actif .scene__badge { transform: rotate(-4deg); opacity: 1; }
@media (max-width: 600px) { .scene__badge { font-size: 14px; padding: 8px 14px; top: 2%; left: 2%; } }

/* v3.2.1 : vidéo de fond des hero (impression 3D) */
.page-hero__video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 60% 50%; }
.page-hero--fond .page-hero__img:has(video)::after { background: linear-gradient(90deg, rgba(14,13,11,.94) 0%, rgba(14,13,11,.8) 40%, rgba(14,13,11,.25) 75%, rgba(14,13,11,.1) 100%), linear-gradient(0deg, rgba(14,13,11,.7) 0%, rgba(14,13,11,0) 40%); }
.hero-video-pause { position: absolute; right: 24px; bottom: 24px; z-index: 3; width: 40px; height: 40px; border-radius: 50%; border: 1px solid rgba(255,255,255,.3); background: rgba(14,13,11,.55); color: #fff; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; padding: 0; }
.hero-video-pause:hover { border-color: var(--or-clair); }
.hero-video-pause[aria-pressed="true"] .scene__ico-pause { width: 0; height: 0; border-style: solid; border-width: 6px 0 6px 10px; border-color: transparent transparent transparent currentColor; margin-left: 3px; }
@media (max-width: 1024px) { .page-hero--fond .page-hero__img:has(video)::after { background: rgba(14,13,11,.7); } .hero-video-pause { right: 16px; bottom: 16px; } }

/* v3.3.2 : L'essentiel, grande carte : le voile ne couvre plus que le texte */
.bento__case--une::after { display: none; }
.bento__case--une .bento__texte { margin: 22px; padding: 20px 24px 22px; align-self: flex-start; max-width: min(620px, calc(100% - 44px)); border-radius: 20px; background: rgba(14,13,11,.74); -webkit-backdrop-filter: blur(10px) saturate(1.1); backdrop-filter: blur(10px) saturate(1.1); border: 1px solid rgba(255,255,255,.08); box-shadow: 0 18px 40px -20px rgba(0,0,0,.5); }
.bento__case--une .bento__texte p:last-child { color: #E3DCCD; }
@media (max-width: 600px) { .bento__case--une .bento__texte { margin: 14px; padding: 16px 18px 18px; max-width: calc(100% - 28px); } }
@media (max-width: 600px) {
  .bento__case--une { min-height: 0; justify-content: flex-start; }
  .bento__case--une .bento__visuel { position: relative; inset: auto; height: 240px !important; flex: none; }
  .bento__case--une .bento__texte { margin: 0; max-width: none; padding: 20px 22px 24px; border-radius: 0; background: none; border: 0; box-shadow: none; -webkit-backdrop-filter: none; backdrop-filter: none; }
}

/* v3.4.0 : badge « Exclusivité Euromax » et documents des fiches */
.badge-exclusif { display: inline-flex; align-items: center; gap: 7px; padding: 7px 13px 7px 11px; border-radius: 999px; background: var(--noir, #0E0D0B); color: #F3E9D2; font-size: 12.5px; font-weight: 600; line-height: 1; letter-spacing: .01em; border: 1px solid rgba(216,188,134,.45); white-space: nowrap; }
.badge-exclusif svg { width: 14px; height: 14px; color: var(--or-clair, #D8BC86); flex: none; }
.carte-produit__media { position: relative; }
.carte-produit__exclusif { position: absolute; top: 12px; right: 12px; z-index: 1; box-shadow: 0 8px 20px -10px rgba(0,0,0,.5); }
.fiche-pills { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.fiche-pills .pill { margin: 0; }
.fiche-plus li small { color: var(--gris); font-size: 12.5px; margin-left: 4px; }
@media (max-width: 600px) { .grille-produits .carte-produit__exclusif { top: 8px; right: 8px; padding: 5px 9px; font-size: 11px; } }

/* ═══ Fiche immersive exocad (v3.5.0) ═══
   Grands tableaux successifs. Sans JS, tout est visible ; les mouvements liés au défilement
   ne s'appliquent que si le navigateur les gère et si le visiteur n'a pas réduit les animations.
   Les visuels exocad restent entiers (object-fit: contain, aucun recadrage). */
.imx.fiche { padding: 0; background: var(--noir); color: var(--ivoire); }
.imx-surtitre { margin: 0 0 14px; font-size: .82rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--or); }
.imx-surtitre--clair { color: var(--or-clair); }

.imx-hero { position: relative; padding: 70px 0 0; overflow: hidden; text-align: center;
  background: radial-gradient(70% 55% at 50% 0%, rgba(185,147,79,.22), transparent 70%), radial-gradient(50% 40% at 50% 100%, rgba(185,147,79,.12), transparent 70%), var(--noir); }
.imx-hero .breadcrumbs, .imx-hero .fil { justify-content: center; }
.imx-hero__texte { position: relative; z-index: 2; }
.imx-hero__titre { margin: 0; font-size: clamp(3.6rem, 13vw, 11rem); line-height: .9; font-weight: 700; letter-spacing: -.04em;
  background: linear-gradient(180deg, #fff 30%, var(--or-clair) 120%); -webkit-background-clip: text; background-clip: text; color: transparent; }
.imx-hero__chapo { max-width: 34ch; margin: 22px auto 0; font-size: clamp(1.15rem, 2.2vw, 1.55rem); line-height: 1.4; color: rgba(246,242,234,.82); }
.imx-hero__cta { justify-content: center; margin-top: 30px; }
.imx-hero__scene { width: min(1180px, calc(100% - 32px)); margin: clamp(40px, 7vw, 80px) auto 0; perspective: 1400px; }
.imx-ecran { margin: 0; padding: clamp(6px, 1vw, 12px); border-radius: clamp(14px, 2vw, 26px); background: linear-gradient(160deg, #2c2924, #0b0a09); box-shadow: 0 0 0 1px rgba(216,188,134,.18), 0 40px 120px -30px rgba(185,147,79,.45); }
.imx-ecran img { display: block; width: 100%; height: auto; border-radius: clamp(8px, 1.4vw, 16px); background: #000; object-fit: contain; }
.imx-ecran--hero { transform-origin: 50% 100%; margin-bottom: -2px; border-bottom-left-radius: 0; border-bottom-right-radius: 0; }

@media (prefers-reduced-motion: no-preference) {
  @supports (animation-timeline: view()) {
    .imx-ecran--hero { animation: imx-grandit linear both; animation-timeline: view(); animation-range: entry 0% cover 45%; }
    .imx-ligne { animation: imx-ligne linear both; animation-timeline: view(); animation-range: entry 10% cover 40%; }
  }
}
@keyframes imx-grandit { from { transform: rotateX(18deg) scale(.82); opacity: .55; } to { transform: none; opacity: 1; } }
@keyframes imx-ligne { from { opacity: .3; transform: translateY(24px); } to { opacity: 1; transform: none; } }

.imx-manifeste { background: var(--ivoire); color: var(--encre); padding: var(--pad-section) 0; }
.imx-manifeste__titre { margin: 0; font-size: clamp(2.4rem, 7.4vw, 6.4rem); line-height: 1; letter-spacing: -.035em; font-weight: 700; }
.imx-ligne { display: block; }
.imx-ligne--or { color: var(--or-texte); }
.imx-manifeste__grille { display: grid; grid-template-columns: 1.1fr 1fr; gap: clamp(28px, 5vw, 80px); align-items: start; margin-top: clamp(36px, 5vw, 64px); }
.imx-manifeste__texte { margin: 0; font-size: clamp(1.1rem, 1.6vw, 1.3rem); line-height: 1.6; color: var(--gris); }
.imx-chips { display: flex; flex-wrap: wrap; gap: 10px; }
.imx-chip { display: inline-flex; align-items: center; min-height: 44px; padding: 10px 18px; border-radius: 999px; border: 1px solid var(--pierre); background: #fff; color: var(--encre); font-weight: 600; font-size: .95rem; text-decoration: none; transition: border-color .3s var(--ease), background .3s var(--ease); }
a.imx-chip:hover, a.imx-chip:focus-visible { border-color: var(--or-texte); background: var(--ivoire); }
.imx-carte { margin: clamp(40px, 6vw, 72px) 0 0; padding: clamp(10px, 1.6vw, 18px); border-radius: var(--rayon); background: #fff; box-shadow: 0 30px 80px -40px rgba(14,13,11,.35); }
.imx-carte img { display: block; width: 100%; height: auto; object-fit: contain; border-radius: 8px; }

.imx-recit { background: var(--noir); padding: var(--pad-section) 0; }
.imx-recit__entete { max-width: 760px; margin-bottom: clamp(30px, 6vw, 70px); }
.imx-recit__entete h2 { margin: 0; font-size: clamp(2.2rem, 5.4vw, 4.4rem); line-height: 1.02; letter-spacing: -.03em; color: #fff; }
.imx-recit__grille { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: clamp(30px, 5vw, 80px); }
.imx-recit__scene { position: relative; }
.imx-ecran--recit { position: sticky; top: calc(var(--header-h, 84px) + 6vh); display: grid; }
.imx-recit__vue { grid-area: 1 / 1; display: flex; align-items: center; justify-content: center; opacity: 0; transform: scale(.97); transition: opacity .6s var(--ease), transform .8s var(--ease); }
.imx-recit__vue.is-actif { opacity: 1; transform: none; }
.imx-recit__vue img { max-height: 62vh; width: 100%; }
.imx-recit__etapes { list-style: none; margin: 0; padding: 0; }
.imx-recit__etape { min-height: 72vh; display: flex; flex-direction: column; justify-content: center; padding: 20px 0; transition: opacity .5s var(--ease); }
.imx--js .imx-recit__etape { opacity: .35; }
.imx--js .imx-recit__etape.is-actif { opacity: 1; }
.imx-recit__etape:first-child { min-height: 52vh; justify-content: flex-start; }
.imx-recit__num { font-size: .9rem; font-weight: 600; letter-spacing: .14em; color: var(--or); }
.imx-recit__etape h3 { margin: 10px 0 14px; font-size: clamp(1.7rem, 3vw, 2.6rem); line-height: 1.08; letter-spacing: -.02em; color: #fff; }
.imx-recit__etape p { margin: 0; max-width: 42ch; font-size: 1.12rem; line-height: 1.6; color: rgba(246,242,234,.78); }
.imx-recit__image-mobile { display: none; }

.imx-modules { background: var(--ivoire); color: var(--encre); }
.imx-modules__grille { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.imx-module { position: relative; padding: 26px 24px; border-radius: var(--rayon); background: #fff; border: 1px solid var(--pierre); }
.imx-module h3 { margin: 0 0 8px; font-size: 1.2rem; }
.imx-module p { margin: 0; color: var(--gris); line-height: 1.55; }
.imx-module--base { grid-row: span 2; display: flex; flex-direction: column; justify-content: flex-end; min-height: 230px; background: var(--noir); border-color: var(--noir); color: var(--ivoire);
  background-image: radial-gradient(80% 70% at 100% 0%, rgba(185,147,79,.35), transparent 70%); }
.imx-module--base h3 { font-size: clamp(1.6rem, 2.6vw, 2.2rem); color: #fff; }
.imx-module--base p { color: rgba(246,242,234,.8); }
.imx-module__tag { position: absolute; top: 22px; left: 24px; font-size: .78rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--or-clair); }

.imx-exoplan { padding: var(--pad-section) 0; background: radial-gradient(60% 60% at 0% 50%, rgba(185,147,79,.18), transparent 70%), var(--noir-2); }
.imx-exoplan__grille { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(30px, 6vw, 90px); align-items: center; }
.imx-exoplan h2 { margin: 0 0 20px; font-size: clamp(2.2rem, 5vw, 4rem); line-height: 1.03; letter-spacing: -.03em; color: #fff; }
.imx-exoplan__texte > p:not(.imx-surtitre) { font-size: 1.1rem; line-height: 1.65; color: rgba(246,242,234,.8); }
.imx-exoplan .imx-chip { background: transparent; color: var(--ivoire); border-color: rgba(216,188,134,.4); }
.imx-exoplan a.imx-chip:hover, .imx-exoplan a.imx-chip:focus-visible { background: rgba(216,188,134,.12); border-color: var(--or-clair); }
.imx-exoplan__visuels { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; align-items: end; }
.imx-exoplan__visuels .imx-carte { margin: 0; background: #0b0a09; box-shadow: 0 0 0 1px rgba(216,188,134,.15); }
.imx-exoplan__visuels .imx-carte:last-child { transform: translateY(40px); }

.imx-duo { background: var(--ivoire); color: var(--encre); }
.imx-duo__grille { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 16px; }
.imx-duo__carte { position: relative; overflow: hidden; border-radius: calc(var(--rayon) * 1.4); padding: clamp(28px, 4vw, 48px); }
.imx-duo__carte h3 { margin: 0 0 12px; font-size: clamp(1.5rem, 2.6vw, 2.2rem); line-height: 1.1; letter-spacing: -.02em; }
.imx-duo__carte p { line-height: 1.6; }
.imx-duo__carte--ia { background: #fff; border: 1px solid var(--pierre); display: flex; flex-direction: column; }
.imx-duo__carte--ia .imx-surtitre { color: var(--or-texte); }
.imx-duo__carte--ia p:not(.imx-surtitre):not(.imx-duo__chiffre) { color: var(--gris); }
.imx-duo__chiffre { margin: auto 0 0; padding-top: 24px; font-size: clamp(5rem, 11vw, 9rem); line-height: .85; font-weight: 700; letter-spacing: -.05em; color: var(--or-texte); }
.imx-duo__chiffre small { font-size: .3em; letter-spacing: 0; margin-left: 6px; }
.imx-duo__carte--photo { background: var(--noir); color: var(--ivoire); display: grid; gap: 24px; }
.imx-duo__carte--photo figure { margin: 0; }
.imx-duo__carte--photo img { display: block; width: 100%; height: auto; object-fit: contain; border-radius: 10px; }
.imx-duo__carte--photo h3 { color: #fff; }
.imx-duo__carte--photo p:not(.imx-surtitre) { color: rgba(246,242,234,.8); margin: 0; }

.imx-video { background: var(--noir); }
.imx-video__titre { margin: 0 0 clamp(24px, 4vw, 44px); text-align: center; font-size: clamp(2.2rem, 5.4vw, 4.4rem); letter-spacing: -.03em; color: #fff; }

.imx-euromax__points { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.imx-euromax__points li { padding: 28px 24px; border-radius: var(--rayon); border: 1px solid rgba(216,188,134,.2); background: rgba(255,255,255,.03); }
.imx-euromax__points svg { width: 30px; height: 30px; color: var(--or); }
.imx-euromax__points h3 { margin: 16px 0 8px; font-size: 1.2rem; color: #fff; }
.imx-euromax__points p { margin: 0; color: rgba(246,242,234,.75); line-height: 1.55; }
.imx-citation { margin: 40px 0 0; }
.imx-citation blockquote { margin: 0; font-size: clamp(1.3rem, 2.4vw, 1.9rem); line-height: 1.35; color: #fff; }
.imx-citation figcaption { margin-top: 12px; color: var(--or-clair); }

.imx-prix { background: var(--ivoire); color: var(--encre); padding-bottom: clamp(50px, 7vw, 90px); }
.imx-prix .tarifs-sec { padding-bottom: 28px; }
.imx-prix__cta { display: flex; flex-wrap: wrap; gap: 14px; align-items: center; }
.imx-docs { list-style: none; margin: 10px 0 0; padding: 0; flex-basis: 100%; display: flex; flex-wrap: wrap; gap: 10px 24px; }
.imx-docs li { display: inline-flex; align-items: center; gap: 8px; }
.imx-docs svg { width: 18px; height: 18px; color: var(--or-texte); }
.imx-docs a { color: var(--encre); font-weight: 600; }
.imx-docs small { color: var(--gris); }
.imx .faq-sec, .imx .guides-lies { background: var(--ivoire); color: var(--encre); }

@media (max-width: 1024px) {
  .imx-manifeste__grille, .imx-exoplan__grille, .imx-duo__grille { grid-template-columns: 1fr; }
  .imx-modules__grille, .imx-euromax__points { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  /* Récit : la scène collante disparaît, chaque étape porte sa propre image. */
  .imx-recit__grille { grid-template-columns: 1fr; }
  .imx-recit__scene { display: none; }
  .imx-recit__etape, .imx-recit__etape:first-child, .imx--js .imx-recit__etape { min-height: 0; opacity: 1; padding: 0 0 56px; }
  .imx-recit__image-mobile { display: block; margin: 0 0 22px; padding: 6px; border-radius: 16px; background: linear-gradient(160deg, #2c2924, #0b0a09); box-shadow: 0 0 0 1px rgba(216,188,134,.18); }
  .imx-recit__image-mobile img { display: block; width: 100%; height: auto; object-fit: contain; border-radius: 11px; }
  .imx-exoplan__visuels .imx-carte:last-child { transform: none; }
}
@media (max-width: 600px) {
  .imx-modules__grille, .imx-euromax__points, .imx-exoplan__visuels { grid-template-columns: 1fr; }
  .imx-module--base { grid-row: auto; min-height: 200px; }
  .imx-hero__scene { width: calc(100% - 20px); }
}
@media (prefers-reduced-motion: reduce) {
  .imx-recit__vue, .imx-recit__etape { transition: none; }
}

/* ═══ Fiche immersive Ceramix Nano (v3.5.0) ═══ */
.imx-hero--video { min-height: min(100svh, 980px); display: flex; align-items: center; padding-bottom: clamp(60px, 9vw, 120px); }
.imx-hero--video .imx-hero__texte { width: 100%; }
.imx-hero__voile { position: absolute; inset: 0; z-index: 1; background: radial-gradient(70% 70% at 50% 45%, rgba(14,13,11,.55), rgba(14,13,11,.88)), linear-gradient(180deg, rgba(14,13,11,.7), rgba(14,13,11,.35) 40%, rgba(14,13,11,.95)); }
.imx-hero--video .page-hero__video { z-index: 0; object-position: 50% 50%; }
.imx-hero--video .imx-hero__titre { font-size: clamp(3.2rem, 11vw, 9.5rem); }

.imx-chiffres { background: var(--noir); border-top: 1px solid rgba(216,188,134,.15); border-bottom: 1px solid rgba(216,188,134,.15); }
.imx-chiffres__liste { list-style: none; margin: 0 auto; padding-top: clamp(28px, 4vw, 44px); padding-bottom: clamp(28px, 4vw, 44px); display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
.imx-chiffres__liste li { display: flex; flex-direction: column; gap: 6px; }
.imx-chiffres__val { font-size: clamp(2.2rem, 4.6vw, 3.8rem); font-weight: 700; line-height: 1; letter-spacing: -.03em; color: #fff; white-space: nowrap; }
.imx-chiffres__val small { font-size: .4em; margin-left: 6px; letter-spacing: 0; color: var(--or-clair); }
.imx-chiffres__txt { color: rgba(246,242,234,.72); font-size: .98rem; }

.imx-nano-intro { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(28px, 5vw, 72px); align-items: center; margin-top: clamp(36px, 5vw, 64px); }
.imx-nano-intro .imx-carte { margin: 0; }
.imx-carte--nu { padding: 0; overflow: hidden; }
.imx-carte--nu img { border-radius: 0; }
.imx-atouts { list-style: none; margin: 0; padding: 0; display: grid; gap: 26px; }
.imx-atouts li { display: grid; grid-template-columns: 48px 1fr; gap: 18px; align-items: start; }
.imx-atouts svg { width: 48px; height: 48px; padding: 12px; border-radius: 50%; background: var(--noir); color: var(--or-clair); }
.imx-atouts h3 { margin: 4px 0 6px; font-size: 1.25rem; }
.imx-atouts p { margin: 0; color: var(--gris); line-height: 1.55; }

/* Vidéos courtes en boucle */
.imx-boucle { position: relative; width: 100%; }
.imx-boucle video { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; border-radius: clamp(8px, 1.4vw, 16px); background: #000; }
.imx-boucle__pause { position: absolute; right: 12px; bottom: 12px; width: 38px; height: 38px; border-radius: 50%; border: 1px solid rgba(255,255,255,.35); background: rgba(14,13,11,.6); color: #fff; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; padding: 0; }
.imx-boucle__pause:hover { border-color: var(--or-clair); }
.imx-boucle__pause[aria-pressed="true"] .scene__ico-pause { width: 0; height: 0; border-style: solid; border-width: 6px 0 6px 10px; border-color: transparent transparent transparent currentColor; margin-left: 3px; }
.imx-ecran--video .imx-recit__vue { display: block; }
.imx-recit__image-mobile .imx-boucle video { border-radius: 11px; }

.imx-capsule { background: var(--ivoire); color: var(--encre); }
.imx-capsule__grille { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.imx-capsule__carte { margin: 0; border-radius: var(--rayon); background: #fff; border: 1px solid var(--pierre); overflow: hidden; }
.imx-capsule__carte--large { grid-column: auto; }
.imx-capsule__carte img { display: block; width: 100%; height: auto; object-fit: contain; }
.imx-capsule__carte figcaption { padding: 0 24px 22px; font-weight: 600; }

.imx-nomade { background: var(--noir); padding: var(--pad-section) 0; }
.imx-nomade__grille { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(30px, 6vw, 90px); align-items: center; }
.imx-nomade__photo { margin: 0; border-radius: calc(var(--rayon) * 1.4); overflow: hidden; }
.imx-nomade__photo img { display: block; width: 100%; height: auto; }
.imx-nomade h2 { margin: 0 0 20px; font-size: clamp(2.4rem, 5.6vw, 4.6rem); line-height: 1; letter-spacing: -.035em; color: #fff; }
.imx-nomade__texte > p:not(.imx-surtitre) { font-size: 1.1rem; line-height: 1.65; color: rgba(246,242,234,.8); }
.imx-carte--sombre { margin-top: 28px; padding: 0; overflow: hidden; background: #0b0a09; box-shadow: 0 0 0 1px rgba(216,188,134,.15); }
.imx-carte--sombre img { border-radius: 0; }

.imx-flux { background: var(--ivoire); color: var(--encre); }
.imx-flux__etapes { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; counter-reset: none; }
.imx-flux__etapes li { position: relative; }
.imx-flux__etapes figure { margin: 0 0 16px; border-radius: var(--rayon); overflow: hidden; }
.imx-flux__etapes img { display: block; width: 100%; height: auto; }
.imx-flux__num { display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; border-radius: 50%; background: var(--noir); color: var(--or-clair); font-weight: 700; font-size: .9rem; }
.imx-flux__etapes h3 { margin: 12px 0 6px; font-size: 1.2rem; }
.imx-flux__etapes p { margin: 0; color: var(--gris); line-height: 1.55; }
.imx-flux__liens { display: flex; flex-wrap: wrap; gap: 10px; margin: 30px 0 0; }

.imx-duo--nano .imx-duo__grille { grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); }
.imx-duo__h { margin: 0 0 12px; font-size: clamp(1.6rem, 2.8vw, 2.4rem); line-height: 1.08; letter-spacing: -.02em; color: #fff; }

.imx-materiaux { background: radial-gradient(60% 60% at 100% 50%, rgba(185,147,79,.16), transparent 70%), var(--noir-2); padding: var(--pad-section) 0; }
.imx-materiaux__grille { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: clamp(30px, 6vw, 90px); align-items: center; }
.imx-materiaux h2 { margin: 0 0 20px; font-size: clamp(2.2rem, 5vw, 4rem); line-height: 1.03; letter-spacing: -.03em; color: #fff; }
.imx-materiaux p:not(.imx-surtitre) { font-size: 1.08rem; line-height: 1.65; color: rgba(246,242,234,.8); }
.imx-materiaux .imx-carte { margin: 0; }
.imx-materiaux figcaption { padding: 10px 6px 2px; font-size: .9rem; color: var(--gris); }
.imx-avertissement { display: grid; grid-template-columns: 22px 1fr; gap: 12px; padding: 16px 18px; border-radius: var(--rayon); border: 1px solid rgba(216,188,134,.35); background: rgba(216,188,134,.06); font-size: .98rem !important; }
.imx-avertissement svg { width: 22px; height: 22px; color: var(--or-clair); margin-top: 2px; }

.imx-videos__grille { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.imx-videos__item { margin: 0; }
.imx-videos__item figcaption { margin-top: 12px; color: rgba(246,242,234,.8); font-weight: 600; }

.imx-specs { background: var(--ivoire); color: var(--encre); }
.imx-specs__grille { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(30px, 6vw, 90px); align-items: start; }
.imx-specs h2 { margin: 14px 0 26px; font-size: clamp(2rem, 4vw, 3.2rem); line-height: 1.05; letter-spacing: -.03em; }
.imx-specs .imx-prix__cta { margin-bottom: 18px; }
.imx-specs__table { margin: 0; border-top: 1px solid var(--pierre); }
.imx-specs__table div { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 16px; padding: 16px 0; border-bottom: 1px solid var(--pierre); }
.imx-specs__table dt { font-weight: 600; }
.imx-specs__table dd { margin: 0; color: var(--gris); }

@media (max-width: 1024px) {
  .imx-chiffres__liste { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .imx-nano-intro, .imx-nomade__grille, .imx-materiaux__grille, .imx-specs__grille, .imx-duo--nano .imx-duo__grille { grid-template-columns: 1fr; }
  .imx-flux__etapes, .imx-capsule__grille { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .imx-recit__image-mobile.imx-recit__image-mobile { padding: 6px; }
}
@media (max-width: 600px) {
  .imx-capsule__grille, .imx-flux__etapes, .imx-videos__grille { grid-template-columns: 1fr; }
  .imx-specs__table div { grid-template-columns: 1fr; gap: 4px; }
}

/* Récit clair (exocad) : les captures exocad sont livrées sur fond blanc, on les pose sur une section ivoire
   dans un cadre blanc, sans le bord sombre, pour qu'image et fond se fondent. */
.imx-recit--clair { background: var(--ivoire); }
.imx-recit--clair .imx-recit__entete h2, .imx-recit--clair .imx-recit__etape h3 { color: var(--encre); }
.imx-recit--clair .imx-surtitre--clair, .imx-recit--clair .imx-recit__num { color: var(--or-texte); }
.imx-recit--clair .imx-recit__etape p { color: var(--gris); }
.imx-recit--clair .imx-ecran, .imx-recit--clair .imx-recit__image-mobile { background: #fff; box-shadow: 0 30px 80px -40px rgba(14,13,11,.3); padding: clamp(10px, 1.6vw, 20px); }
.imx-recit--clair .imx-ecran img, .imx-recit--clair .imx-recit__image-mobile img { background: #fff; }

/* Modules exocad sur fond sombre (entre le récit clair et exoplan) */
.imx-modules.section--noir { background: var(--noir); color: var(--ivoire); }
.imx-modules.section--noir .titre-sec p { color: rgba(246,242,234,.75); }
.imx-modules.section--noir .imx-module:not(.imx-module--base) { background: rgba(255,255,255,.04); border-color: rgba(216,188,134,.18); }
.imx-modules.section--noir .imx-module:not(.imx-module--base) h3 { color: #fff; }
.imx-modules.section--noir .imx-module:not(.imx-module--base) p { color: rgba(246,242,234,.72); }
.imx-modules.section--noir .imx-module--base { background-color: var(--noir-3); border-color: rgba(216,188,134,.35); }

/* ═══ Fiche immersive Aoralscan Elite Wireless (v3.6.0) ═══ */
.imx-hero__titre--long { font-size: clamp(2.6rem, 8vw, 7.2rem) !important; max-width: 12ch; margin-left: auto; margin-right: auto; }
.imx-trio { background: #000; padding: var(--pad-section) 0; }
.imx-trio__titre { margin: 0 0 clamp(36px, 5vw, 64px); font-size: clamp(2.4rem, 6.4vw, 5.6rem); line-height: 1; letter-spacing: -.035em; color: #fff; }
.imx-trio .imx-ligne--or { color: var(--or-clair); }
.imx-trio__liste { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(20px, 3vw, 40px); }
.imx-trio__liste figure { margin: 0 0 18px; max-width: 220px; }
.imx-trio__liste img { display: block; width: 100%; height: auto; }
.imx-trio__liste h3 { margin: 0 0 8px; font-size: 1.35rem; color: #fff; }
.imx-trio__liste p { margin: 0; color: rgba(246,242,234,.75); line-height: 1.6; }

.imx-sansfil { background: var(--ivoire); color: var(--encre); }
.imx-sansfil__grille { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.imx-sansfil__carte { padding: 12px 12px 26px; border-radius: calc(var(--rayon) * 1.2); background: #fff; border: 1px solid var(--pierre); }
.imx-sansfil__carte h3 { margin: 18px 12px 6px; font-size: 1.3rem; }
.imx-sansfil__carte p { margin: 0 12px; color: var(--gris); line-height: 1.55; }

.imx-nomade--clair { background: var(--ivoire); }
.imx-nomade--clair h2 { color: var(--encre); }
.imx-nomade--clair .imx-surtitre { color: var(--or-texte); }
.imx-nomade--clair .imx-nomade__texte > p:not(.imx-surtitre) { color: var(--gris); }

.imx-citation--photo { margin: 0; display: grid; gap: 22px; }
.imx-citation--photo img { display: block; width: 100%; max-width: 420px; height: auto; border-radius: var(--rayon); }
.imx-citation--photo blockquote p { font-size: clamp(1.15rem, 1.9vw, 1.5rem); line-height: 1.45; color: #fff; margin: 0; }
.imx-citation--photo figcaption { color: var(--or-clair); font-size: .95rem; }
.imx-etudes { list-style: none; margin: 18px 0 0; padding: 0; display: grid; gap: 12px; }
.imx-etudes li { display: grid; gap: 4px; padding: 14px 16px; border-radius: 10px; border: 1px solid rgba(216,188,134,.2); background: rgba(255,255,255,.03); }
.imx-etudes strong { font-size: .78rem; letter-spacing: .1em; text-transform: uppercase; color: var(--or-clair); }
.imx-etudes span { color: rgba(246,242,234,.85); line-height: 1.5; }
.imx-videos__grille--une { grid-template-columns: minmax(0, 900px); justify-content: center; }

@media (max-width: 1024px) {
  .imx-trio__liste { grid-template-columns: 1fr; }
  .imx-trio__liste li { display: grid; grid-template-columns: 96px 1fr; gap: 18px; align-items: center; }
  .imx-trio__liste figure { margin: 0; }
  .imx-trio__liste h3, .imx-trio__liste p { grid-column: 2; }
  .imx-trio__liste figure { grid-row: span 2; }
}
@media (max-width: 600px) { .imx-sansfil__grille { grid-template-columns: 1fr; } }
.imx-quotidien h2 { font-size: clamp(2.2rem, 4.4vw, 3.6rem); }
@media (max-width: 1024px) {
  .imx-trio__liste li { align-items: start; grid-template-rows: auto 1fr; column-gap: 18px; row-gap: 6px; }
  .imx-trio__liste li figure { grid-column: 1; grid-row: 1 / span 2; }
  .imx-trio__liste li h3 { grid-column: 2; grid-row: 1; margin: 0; }
  .imx-trio__liste li p { grid-column: 2; grid-row: 2; }
}

/* Barre d'action flottante des fiches immersives (ordinateur et mobile) */
.imx-barre { position: fixed; left: 50%; bottom: 22px; z-index: 95; display: flex; align-items: center; gap: 22px; padding: 10px 10px 10px 24px; border-radius: 999px; background: rgba(14,13,11,.88); -webkit-backdrop-filter: blur(14px) saturate(140%); backdrop-filter: blur(14px) saturate(140%); box-shadow: 0 0 0 1px rgba(216,188,134,.22), 0 24px 50px -18px rgba(0,0,0,.6); color: #fff; transform: translate(-50%, 140%); opacity: 0; pointer-events: none; transition: transform .45s var(--ease), opacity .3s; max-width: calc(100% - 180px); }
.imx-barre.is-visible { transform: translate(-50%, 0); opacity: 1; pointer-events: auto; }
.imx-barre__nom { display: flex; flex-direction: column; line-height: 1.15; min-width: 0; }
.imx-barre__nom small { font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; color: var(--or-clair); }
.imx-barre__nom b { font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.imx-barre__actions { display: flex; align-items: center; gap: 8px; flex: none; }
.imx-barre .btn { min-height: 44px; padding: 0 20px; font-size: 15px; white-space: nowrap; }
.imx-barre__tel { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 50%; border: 1px solid rgba(255,255,255,.25); color: #fff; }
.imx-barre__tel svg { width: 18px; height: 18px; }
.imx-barre__tel:hover { border-color: var(--or-clair); color: var(--or-clair); }
/* La pastille démo générique et la barre de fiche classique n'ont pas lieu d'être ici. */
body:has(.imx-barre) .cta-collant { display: none !important; }
@media (max-width: 860px) {
  .imx-barre { left: 72px; right: 72px; bottom: calc(14px + env(safe-area-inset-bottom)); max-width: none; transform: translateY(140%); padding: 6px; gap: 0; justify-content: center; }
  .imx-barre.is-visible { transform: none; }
  .imx-barre__nom, .imx-barre__devis, .imx-barre__tel { display: none; }
  .imx-barre__actions, .imx-barre .btn { width: 100%; }
}
@media (prefers-reduced-motion: reduce) { .imx-barre { transition: opacity .2s; } }

.imx-citation--photo figcaption { margin: 0; }
/* Ordre de lecture : sur mobile, le titre et le texte viennent toujours avant l'image ou le témoignage.
   Sur grand écran, l'image repasse à gauche. */
@media (min-width: 1025px) {
  .imx-nomade__grille > .imx-nomade__photo, .imx-preuves .imx-citation--photo { order: -1; }
}
@media (max-width: 1180px) { .maison-photo { order: 2; } }
@media (max-width: 1024px) { .projet-vitrine__visuel { order: 2; } }

/* Cartes visuelles (capsule Nano, implants Elite Wireless) : la photo seule, en pleine largeur et arrondie,
   la légende posée dessous sur le fond de la section, sans carte blanche. */
.imx-capsule__carte { background: none; border: 0; border-radius: 0; overflow: visible; }
.imx-capsule__carte img { border-radius: var(--rayon); aspect-ratio: 16 / 10; object-fit: cover; }
.imx-capsule__carte figcaption { padding: 16px 0 0; font-weight: 600; font-size: 1.05rem; line-height: 1.4; }
.imx-implants .imx-capsule__carte img { aspect-ratio: 16 / 9; object-position: 50% 45%; }
/* Même principe pour les vidéos « sans fil » de l'Elite Wireless : la vidéo seule, le texte dessous sur le fond de la section. */
.imx-sansfil__carte { padding: 0; background: none; border: 0; }
.imx-sansfil__carte .imx-boucle video { border-radius: var(--rayon); }
.imx-sansfil__carte h3 { margin: 18px 0 6px; }
.imx-sansfil__carte p { margin: 0; }

/* ═══ Schéma animé exocad (v3.7.2) ═══ */
.hub { position: relative; margin: clamp(48px, 6vw, 80px) auto 0; width: 100%; max-width: 1180px; aspect-ratio: 16 / 10; border-radius: calc(var(--rayon) * 2); background: radial-gradient(45% 55% at 50% 50%, rgba(185,147,79,.18), transparent 70%), var(--noir); overflow: hidden; color: var(--ivoire); }
.hub__lignes { position: absolute; inset: 0; width: 100%; height: 100%; }
.hub__ligne { stroke: var(--or); stroke-width: 2.2; stroke-linecap: round; stroke-dasharray: 2 12; vector-effect: non-scaling-stroke; opacity: .55; }
.hub.is-visible .hub__ligne { animation: hub-flux 1.6s linear infinite; animation-delay: calc(var(--i) * -.23s); }
@keyframes hub-flux { to { stroke-dashoffset: -28; } }
.hub__ligne--sortie { stroke: var(--or-clair); opacity: .9; }
.hub__centre { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); width: clamp(120px, 17%, 190px); aspect-ratio: 1; border-radius: 50%; display: flex; flex-direction: column; align-items: center; justify-content: center; background: linear-gradient(150deg, #2c2924, #0e0d0b); box-shadow: 0 0 0 1px rgba(216,188,134,.5), 0 20px 60px -10px rgba(185,147,79,.55); z-index: 2; text-align: center; }
.hub__centre b { font-size: clamp(1.3rem, 2.4vw, 2rem); font-weight: 700; letter-spacing: -.03em; color: #fff; line-height: 1; }
.hub__centre small { margin-top: 6px; font-size: .78rem; letter-spacing: .12em; text-transform: uppercase; color: var(--or-clair); }
.hub__halo { position: absolute; inset: -14px; border-radius: 50%; border: 1px solid rgba(216,188,134,.45); }
.hub.is-visible .hub__halo { animation: hub-halo 2.8s var(--ease) infinite; }
@keyframes hub-halo { 0% { transform: scale(.9); opacity: .9; } 100% { transform: scale(1.45); opacity: 0; } }
.hub__noeuds { list-style: none; margin: 0; padding: 0; }
.hub__noeud { position: absolute; left: var(--x); top: var(--y); transform: translate(-50%, -50%) scale(.85); opacity: 0; transition: opacity .6s var(--ease), transform .7s var(--ease); transition-delay: calc(.15s + var(--i) * .09s); z-index: 3; }
.hub.is-visible .hub__noeud, .no-js .hub__noeud { opacity: 1; transform: translate(-50%, -50%); }
.hub__carte { display: flex; align-items: center; gap: 12px; padding: 10px 16px 10px 10px; border-radius: 999px; background: rgba(23,21,19,.92); border: 1px solid rgba(216,188,134,.28); color: inherit; text-decoration: none; white-space: nowrap; transition: border-color .3s, background .3s, transform .3s var(--ease); }
a.hub__carte:hover, a.hub__carte:focus-visible { border-color: var(--or-clair); background: #22201c; transform: translateY(-2px); }
.hub__ico { flex: none; width: 42px; height: 42px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; background: rgba(185,147,79,.16); color: var(--or-clair); }
.hub__ico svg { width: 22px; height: 22px; }
.hub__txt { display: flex; flex-direction: column; line-height: 1.2; }
.hub__txt b { font-size: .98rem; color: #fff; }
.hub__txt small { font-size: .78rem; color: rgba(246,242,234,.65); }
.hub__legende { position: absolute; left: 0; right: 0; bottom: 14px; margin: 0; display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 6px 10px; font-size: .82rem; color: rgba(246,242,234,.6); z-index: 2; }
.hub__fleche { display: inline-block; width: 26px; height: 2px; background-image: linear-gradient(90deg, var(--or) 40%, transparent 40%); background-size: 7px 2px; }
.hub__fleche--sortie { margin-left: 14px; background-image: linear-gradient(90deg, var(--or-clair) 40%, transparent 40%); }
@media (max-width: 1100px) { .hub__txt small { display: none; } }
@media (max-width: 860px) {
  .hub { aspect-ratio: auto; padding: 28px 18px 22px; display: flex; flex-direction: column; align-items: center; }
  .hub__lignes { display: none; }
  .hub__centre { position: relative; left: auto; top: auto; transform: none; width: 140px; margin-bottom: 26px; }
  .hub__noeuds { width: 100%; display: grid; gap: 10px; }
  .hub__noeud { position: static; transform: translateY(10px); }
  .hub.is-visible .hub__noeud { transform: none; }
  .hub__carte { white-space: normal; border-radius: 16px; }
  .hub__txt small { display: block; }
  .hub__legende { position: static; margin-top: 18px; }
}
@media (prefers-reduced-motion: reduce) {
  .hub__ligne, .hub__halo { animation: none !important; }
  .hub__noeud { opacity: 1; transform: translate(-50%, -50%); transition: none; }
}
@media (prefers-reduced-motion: reduce) and (max-width: 860px) { .hub__noeud { transform: none; } }

/* Récit exocad : plus de cadre blanc autour des captures. Le fond blanc des visuels se fond dans la section
   par simple mélange d'affichage (multiply) : les fichiers exocad ne sont pas modifiés. */
.imx-recit--clair .imx-ecran, .imx-recit--clair .imx-recit__image-mobile { background: none; box-shadow: none; padding: 0; }
.imx-recit--clair .imx-ecran img, .imx-recit--clair .imx-recit__image-mobile img { background: none; mix-blend-mode: multiply; border-radius: 0; }

/* v3.9.0 : cartes photo des fiches au format paysage, photo choisie selon le texte. */
.recit__visuel { aspect-ratio: 3 / 2; }
.recit__visuel img { object-fit: cover; padding: 0; }
.recit__visuel--contain { background: #fff; box-shadow: inset 0 0 0 1px var(--pierre); }
.recit__visuel--contain img { object-fit: contain; padding: clamp(16px, 3vw, 32px); }
.bento__visuel--contain { background: #fff; }
.bento__visuel--contain img { object-fit: contain; padding: 24px 24px 150px; }
@media (max-width: 600px) { .bento__visuel--contain img { padding: 16px; } }
/* Mobile : titre, texte, puis photo. */
@media (max-width: 1024px) { .recit__ligne .recit__visuel, .recit__ligne--inverse .recit__visuel { order: 2; } }

/* v3.9.0 : fiches immersives FabCure N2 et FabWash. */
.imx-recit__photo { width: 100%; border-radius: var(--rayon); overflow: hidden; }
.imx-recit__photo img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; }
.imx-capsule__grille--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.imx-flux__etapes--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.imx-flux__etapes--3 img { aspect-ratio: 16 / 10; object-fit: cover; }
.imx--shining .imx-nomade__texte .imx-flux__liens { margin-top: 26px; }
@media (max-width: 1024px) { .imx-capsule__grille--4, .imx-flux__etapes--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .imx-capsule__grille--4, .imx-flux__etapes--3 { grid-template-columns: 1fr; } }

/* v3.10.0 : fiche immersive générique Shining 3D. */
.imx-points { list-style: none; margin: 22px 0 0; padding: 0; display: grid; gap: 14px; }
.imx-points li { display: grid; grid-template-columns: 22px minmax(0, 1fr); gap: 12px; align-items: start; line-height: 1.55; color: rgba(246,242,234,.82); }
.imx-points svg { width: 20px; height: 20px; margin-top: 3px; color: var(--or-clair, #D8BC86); }
.imx-nomade--clair .imx-points li { color: var(--gris); }
.imx-nomade--clair .imx-points svg { color: var(--or-texte); }
.imx-nomade__texte .imx-flux__liens { margin-top: 26px; }
.imx-temps__liste { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.imx-temps__liste li { padding: 28px 28px 26px; border-radius: var(--rayon); background: #fff; border: 1px solid var(--pierre); display: grid; gap: 8px; }
.imx-temps__val { font-size: clamp(2.6rem, 5vw, 3.8rem); font-weight: 800; line-height: 1; letter-spacing: -.03em; color: var(--encre); }
.imx-temps__val small { margin-left: 6px; font-size: .38em; font-weight: 600; letter-spacing: 0; color: var(--or-texte); }
.imx-temps__txt { color: var(--gris); line-height: 1.5; }
.imx-nomade__photo .imx-boucle { border-radius: inherit; }
@media (max-width: 1024px) { .imx-temps__liste { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .imx-temps__liste { grid-template-columns: 1fr; } .imx-temps__liste li { padding: 22px; } }
/* Blocs texte et image : photo à gauche sur fond clair, à droite sur fond sombre (alternance). */
@media (min-width: 1025px) { .imx--shining .imx-nomade:not(.imx-nomade--clair) .imx-nomade__grille > .imx-nomade__photo { order: 0; } }

/* v3.11.0 : grands bandeaux des fiches immersives en plein écran (hauteur de l'écran moins l'en-tête),
   bouton Retour et fil d'Ariane calés en haut, juste sous l'en-tête. */
.imx-hero--video { min-height: calc(100vh - var(--haut-entete, 140px)); min-height: calc(100svh - var(--haut-entete, 140px)); padding-top: 90px; }
.imx-hero__ariane { position: relative; z-index: 3; text-align: left; }
.imx-hero__ariane .ariane-barre { justify-content: flex-start; margin: 0 0 30px; }
.imx-hero--video .imx-hero__ariane { position: absolute; top: 24px; left: 0; right: 0; margin-left: auto; margin-right: auto; }
.imx-hero--video .imx-hero__ariane .ariane-barre { margin: 0; }
@media (max-width: 768px) { .imx-hero--video { padding-top: 80px; } .imx-hero--video .imx-hero__ariane { top: 16px; } }

/* v3.11.0 : pages « Comparer » (lignes groupées), bandeau des fiches immersives, liens du menu. */
.comparatif--page { padding-top: 40px; }
.comparatif--page .comp { margin: 0 auto; }
.comp__groupes { border: 1px solid #ECE6DA; border-top: 0; border-radius: 0 0 16px 16px; overflow: hidden; }
.comp__groupes .comp__lignes { border: 0; border-radius: 0; }
.comp__bloc[hidden] { display: none; }
.comp__groupe { margin: 0; padding: 14px 24px 12px; background: var(--ivoire); border-top: 1px solid #EFEAE0; font-size: 12px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--or-texte); }
.comp__bloc:first-child .comp__groupe { border-top: 0; }
.comparatif__complet { margin: 34px 0 0; text-align: center; }
@media (max-width: 768px) { .comp__groupe { padding: 12px 16px 10px; } }

.bandeau-comparer { position: relative; overflow: hidden; }
.bandeau-comparer__halo { position: absolute; inset: 0; pointer-events: none; background: radial-gradient(45% 60% at 82% 50%, rgba(185,147,79,.28), transparent 70%), radial-gradient(35% 50% at 10% 0%, rgba(185,147,79,.14), transparent 70%); }
.bandeau-comparer .wrap { position: relative; }
.bandeau-comparer__carte { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); gap: clamp(28px, 4vw, 64px); align-items: center; padding: clamp(28px, 4.5vw, 60px); border-radius: 28px; background: linear-gradient(140deg, rgba(255,255,255,.09), rgba(255,255,255,.03)); -webkit-backdrop-filter: blur(18px) saturate(1.2); backdrop-filter: blur(18px) saturate(1.2); border: 1px solid rgba(255,255,255,.12); box-shadow: inset 0 1px 0 rgba(255,255,255,.08), 0 40px 90px -40px rgba(0,0,0,.8); }
.bandeau-comparer__texte h2 { margin: 18px 0 14px; font-size: clamp(2rem, 3.8vw, 3rem); line-height: 1.04; font-weight: 300; letter-spacing: -.03em; color: #fff; }
.bandeau-comparer__texte h2 .fort { color: var(--or-clair); font-weight: 700; }
.bandeau-comparer__texte p { margin: 0 0 28px; color: #CFC6B5; line-height: 1.6; }
.bandeau-comparer__texte .btn svg { width: 18px; height: 18px; }
.bandeau-comparer__modeles { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.bandeau-comparer__modeles li { display: grid; gap: 12px; justify-items: center; text-align: center; padding: 22px 12px 16px; border-radius: 20px; background: radial-gradient(80% 70% at 50% 35%, rgba(255,255,255,.14), rgba(255,255,255,.03) 70%); border: 1px solid rgba(255,255,255,.1); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); color: #E9E3D7; font-size: 13.5px; font-weight: 600; line-height: 1.3; }
.bandeau-comparer__modeles img { width: 100%; height: 130px; object-fit: contain; filter: drop-shadow(0 18px 22px rgba(0,0,0,.45)); }
@media (max-width: 860px) { .bandeau-comparer__carte { grid-template-columns: 1fr; } }
@media (max-width: 480px) { .bandeau-comparer__modeles li:nth-child(3) { display: none; } .bandeau-comparer__modeles { grid-template-columns: repeat(2, minmax(0, 1fr)); } .bandeau-comparer__modeles img { height: 100px; } }

.mega-col li a.mega-comparer { justify-content: flex-start; gap: 8px; color: var(--encre); font-weight: 600; }
.mega-col li a.mega-comparer svg { width: 16px; height: 16px; color: var(--or-texte); }
.mobile-comparer { font-weight: 600; }

.autres-comparatifs { text-align: center; }
.autres-comparatifs__titre { margin: 0 0 18px; font-size: clamp(1.4rem, 2.4vw, 1.8rem); }
.autres-comparatifs .imx-flux__liens { justify-content: center; }

.comparer-familles { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.comparer-famille a { display: grid; height: 100%; border-radius: calc(var(--rayon) * 1.2); overflow: hidden; background: #fff; border: 1px solid #ECE6DA; text-decoration: none; color: var(--encre); transition: border-color .3s var(--ease), transform .4s var(--ease); }
.comparer-famille a:hover { border-color: var(--or); transform: translateY(-3px); }
.comparer-famille__img { display: block; aspect-ratio: 16 / 9; background: var(--ivoire); overflow: hidden; }
.comparer-famille__img img { display: block; width: 100%; height: 100%; object-fit: cover; }
.comparer-famille__txt { display: grid; gap: 8px; padding: 22px 24px 24px; }
.comparer-famille__txt b { font-size: 1.35rem; letter-spacing: -.01em; }
.comparer-famille__txt small { color: var(--gris); font-size: .95rem; line-height: 1.5; }
.comparer-famille__txt .lien-fleche { margin-top: 6px; }
@media (max-width: 1024px) { .comparer-familles { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .comparer-familles { grid-template-columns: 1fr; } }
.guide__comparer { margin: 30px 0 0; text-align: center; }
.guide__comparer .btn svg { width: 18px; height: 18px; }

/* ── v3.12.0 · Guide d'achat SEO en bas des catégories (repliable) ── */
.guide-seo__carte { position: relative; background: var(--ivoire); border-radius: 28px; padding: clamp(28px, 4vw, 56px); }
.guide-seo__texte { max-width: 980px; }
.guide-seo__texte h2 { font-size: clamp(22px, 2vw, 30px); margin: 34px 0 12px; }
.guide-seo__texte h2:first-child { margin-top: 18px; }
.guide-seo__texte p { margin: 0 0 12px; font-size: 16px; }
.guide-seo__carte.is-replie.js-pret .guide-seo__texte { max-height: 340px; overflow: hidden; -webkit-mask-image: linear-gradient(#000 60%, transparent); mask-image: linear-gradient(#000 60%, transparent); }
.guide-seo__suite { margin-top: 18px; display: inline-flex; align-items: center; gap: 8px; padding: 0; border: 0; background: none; font: inherit; font-weight: 600; color: var(--encre); text-decoration: underline; text-underline-offset: 4px; cursor: pointer; min-height: 44px; }
.guide-seo__suite:hover { color: var(--or-texte); }
@media (max-width: 768px) { .guide-seo__carte { border-radius: 20px; } .guide-seo__carte.is-replie.js-pret .guide-seo__texte { max-height: 420px; } }

/* ── v3.12.0 · Sommaire collant des fiches produit ── */
.fiche-sommaire { position: fixed; top: 0; left: 0; right: 0; z-index: 60; background: rgba(255,255,255,.94); -webkit-backdrop-filter: blur(16px) saturate(140%); backdrop-filter: blur(16px) saturate(140%); border-bottom: 1px solid rgba(27,25,21,.1); box-shadow: 0 12px 30px -24px rgba(0,0,0,.45); transform: translateY(-102%); transition: transform .4s var(--ease); }
.fiche-sommaire.is-visible { transform: none; }
.fiche-sommaire__barre { display: flex; align-items: center; gap: 28px; height: 64px; }
.fiche-sommaire__nom { flex: none; font-weight: 600; font-stretch: 115%; font-size: 18px; letter-spacing: -.01em; color: var(--encre); text-decoration: none; max-width: 260px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fiche-sommaire__liens { flex: 1; display: flex; gap: 6px; margin: 0; padding: 0; list-style: none; overflow-x: auto; scrollbar-width: none; }
.fiche-sommaire__liens::-webkit-scrollbar { display: none; }
.fiche-sommaire__liens a { display: inline-flex; align-items: center; min-height: 40px; padding: 0 14px; border-radius: 999px; font-size: 14.5px; color: var(--gris); text-decoration: none; white-space: nowrap; transition: background .25s, color .25s; }
.fiche-sommaire__liens a:hover { color: var(--encre); background: rgba(27,25,21,.05); }
.fiche-sommaire__liens a[aria-current] { color: var(--encre); background: var(--ivoire); font-weight: 600; }
.fiche-sommaire__cta.btn { flex: none; min-height: 42px; padding: 0 20px; font-size: 14px; }
html.sommaire-on .header { transform: translateY(-110%); }
.header { transition: background .4s var(--ease), transform .4s var(--ease); }
html.a-sommaire { scroll-padding-top: 84px; }
@media (min-width: 1025px) { html.a-sommaire .imx-barre { display: none; } }
@media (max-width: 1024px) {
  .fiche-sommaire__barre { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2px 12px; height: auto; padding-top: 8px; padding-bottom: 6px; }
  .fiche-sommaire__nom { font-size: 16px; max-width: none; line-height: 34px; }
  .fiche-sommaire__cta.btn { min-height: 34px; padding: 0 14px; font-size: 13px; width: auto; }
  .fiche-sommaire__liens { grid-column: 1 / -1; margin: 0 -16px; padding: 0 16px; }
  .fiche-sommaire__liens a { min-height: 36px; padding: 0 12px; font-size: 14px; }
  html.a-sommaire:has(.imx-barre) .fiche-sommaire__cta { display: none; }
  html.a-sommaire { scroll-padding-top: 104px; }
}
@media (prefers-reduced-motion: reduce) { .fiche-sommaire, html.sommaire-on .header { transition: none; } }
html.sommaire-on .sous-nav { top: 0; }
.sous-nav { transition: box-shadow .3s, top .4s var(--ease); }

/* v3.12.2 · Bulle de repère sous le point quand elle ne tient ni à droite ni à gauche (petits écrans). */
.t3d__point--dessous .t3d__bulle { left: 50%; right: auto; top: calc(100% + 12px); transform: translate(-50%, 6px); max-width: min(250px, calc(100vw - 32px)); }
.t3d__point--dessous:hover .t3d__bulle, .t3d__point--dessous:focus-visible .t3d__bulle, .t3d__point--dessous.is-ouvert .t3d__bulle { transform: translate(-50%, 0); }
.t3d__point.is-ouvert { z-index: 3; }

/* v3.12.3 · Éléments collants calés sous ce qui occupe vraiment le haut de l'écran (en-tête et/ou sommaire). */
.comp__barre { top: var(--haut-colle, 84px); transition: opacity .3s, top .4s var(--ease); }
@media (max-width: 1024px) { .comp__barre { top: var(--haut-colle, 64px); } }
@media (min-width: 1181px) { .galerie-produit, .video-bloc { top: calc(var(--haut-colle, 84px) + 24px); transition: top .4s var(--ease); } }
/* v3.13.3 · En une colonne (tablette, mobile), ces blocs ne collent plus et ne sont plus décalés : ils restent à leur place. */
@media (max-width: 1180px) { .galerie-produit, .video-bloc { position: static; top: auto; } }
.video-bloc.presentation__video { position: relative; top: 0; }
@media (min-width: 1181px) { .caracteristiques.section--noir .caracteristiques__grille > div:first-child { top: calc(var(--haut-colle, 84px) + 30px); } }
html.sommaire-on, html.a-sommaire.sommaire-on { scroll-padding-top: calc(var(--haut-colle, 84px) + 12px); }

/* v3.12.3 · Chaîne numérique sur mobile : la photo de l'étape touchée se déplie sous son texte. */
.etape__photo { display: none; }
@media (max-width: 768px) {
  .etape { cursor: pointer; -webkit-tap-highlight-color: transparent; }
  .etape__photo { grid-column: 2; display: grid; grid-template-rows: 0fr; transition: grid-template-rows .45s var(--ease), margin .45s var(--ease); margin-top: 0; }
  .etape__photo > div { overflow: hidden; min-height: 0; border-radius: 14px; background: #fff; }
  .etape__photo img { display: block; width: 100%; aspect-ratio: 4 / 3; height: auto; object-fit: contain; padding: 18px; }
  .etape__photo img.cover { object-fit: cover; padding: 0; }
  .etape.is-actif .etape__photo { grid-template-rows: 1fr; margin-top: 16px; }
  .chaine.a-actif .etape.is-actif .etape__photo { opacity: 1; }
}
@media (max-width: 768px) and (prefers-reduced-motion: reduce) { .etape__photo { transition: none; } }

/* v3.13.0 · Logos des fabricants à côté de la pastille de chaque colonne du méga menu. */
.mega-meta { display: flex; align-items: center; flex-wrap: wrap; gap: 10px 14px; }
.mega-marques { display: inline-flex; align-items: center; gap: 12px; }
.mega-marque { display: block; height: 16px; width: auto; filter: brightness(0); opacity: .72; }
.mega-marque--vhf { height: 13px; } .mega-marque--opera-system, .mega-marque--up3d { height: 15px; } .mega-marque--exocad { height: 12px; }

/* v3.13.0 · Logo de la marque en tête des fiches immersives. */
.imx-marque { margin: 0 0 18px; }
.imx-marque a { display: inline-block; }
.imx-marque__logo { display: block; height: 30px; width: auto; opacity: .92; }
.imx-hero .imx-marque { display: flex; justify-content: center; }
@media (max-width: 768px) { .imx-marque__logo { height: 24px; } }

/* v3.13.0 · Récapitulatif du flux composé dans le formulaire de devis. */
.form-flux { background: var(--ivoire); border-radius: 16px; padding: 18px 20px; color: var(--encre); }
.section--noir .form-flux, .contact-sec .form-flux { background: rgba(255,255,255,.06); color: #fff; border: 1px solid rgba(216,188,134,.25); }
.form-flux__titre { margin: 0 0 10px; font-weight: 600; }
.form-flux__titre small { font-weight: 400; opacity: .75; margin-left: 6px; }
.form-flux ul { margin: 0 0 10px; padding-left: 18px; display: grid; gap: 4px; }
.form-flux a { color: inherit; }
.form-flux__note { margin: 0; font-size: 13.5px; opacity: .8; }

/* v3.13.0 · Fiche d'un modèle historique (Opera MACH2). */
.fiche-historique { margin: 0 0 28px; padding: 18px 22px; border-radius: 16px; background: var(--ivoire); border: 1px solid #E6D8BC; }
.fiche-historique p { margin: 0; }
.fiche-historique__liens { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin-top: 12px !important; }
.fiche-historique .imx-chip { color: var(--encre); }
.fiche-historique ~ .fiche-grille .fiche-cta, .fiche-historique ~ .fiche-grille .fiche-tarif { display: none; }

/* ===== v3.13.3 · Espacements unifiés ===== */
/* Section qui prolonge le même fond que la précédente : demi-respiration au lieu d'une double marge */
.section.fond-continu, section.fond-continu { padding-top: calc(var(--pad-section) * .4); }
/* Pastille d'icône du financement : toujours un rond, même quand la carte passe en colonne */
.fin-ico { flex: none; width: 54px; height: 54px; }
/* Tuiles sur fond blanc (produit détouré) : un filet pour que l'écart entre tuiles reste lisible */
.tuile--blanc { border: 1px solid var(--pierre); }
/* Comparatif : les boutons des deux colonnes restent alignés, même si un nom passe sur deux lignes */
.comp__fiche { flex: 1 1 auto; }
.comp__ctas { margin-top: auto; padding-top: 10px; }
/* Bouton dont le libellé passe sur deux lignes (mobile) : il respire au lieu d'écraser le texte */
.btn { padding-top: 10px; padding-bottom: 10px; line-height: 1.3; text-align: center; }
.btn svg { flex: none; }
@media (max-width: 1024px) {
  /* Liens du pied de page : zone tactile de 44 px sans casser les libellés longs (Consommables CAD-CAM) */
  .footer li a { display: inline-block; min-height: 0; padding: 11px 0; line-height: 1.4; }
}
/* v3.13.6 · chaîne numérique : photos recadrées sur leur sujet (scanner au centre, écran de gauche seul pour exocad). */
.chaine-photos img.chaine-img--elf, .etape__photo img.chaine-img--elf { object-position: 78% 50%; }

/* ==========================================================================
   v3.14.0 · Version jour générée (tools/genjour) : fonds sombres -> clairs, textes clairs -> encre/gris, or clair -> or texte.
   Ne pas éditer à la main : les retouches vont dans le bloc « Version jour, retouches » plus bas.
   ========================================================================== */
:root[data-ambiance="jour"] .pill { color: var(--or-texte); background: rgba(255,255,255,0.5); }
:root[data-ambiance="jour"] .btn--or { color: #fff; }
:root[data-ambiance="jour"] .btn--or:hover { color: #fff; }
:root[data-ambiance="jour"] .btn--ligne { border: 1px solid rgba(27,25,21,0.22); color: var(--encre); }
:root[data-ambiance="jour"] .btn--ligne:hover { background: rgba(27,25,21,0.068); }
:root[data-ambiance="jour"] .btn--noir { background: var(--ivoire); color: var(--blanc); }
:root[data-ambiance="jour"] .btn--noir:hover { background: #F3EFE8; }
:root[data-ambiance="jour"] .header { background: var(--ivoire); border-bottom: 1px solid rgba(27,25,21,0.128); }
:root[data-ambiance="jour"] .nav-btn { color: var(--encre); }
:root[data-ambiance="jour"] .nav-btn:hover, :root[data-ambiance="jour"] .nav-btn[aria-expanded="true"] { color: var(--encre); background: rgba(27,25,21,0.076); }
:root[data-ambiance="jour"] .icon-btn { color: var(--encre); border: 1px solid rgba(27,25,21,0.194); }
:root[data-ambiance="jour"] .icon-btn:hover { border-color: rgba(27,25,21,0.22); }
:root[data-ambiance="jour"] .mega-une { background: var(--ivoire); color: var(--encre); }
:root[data-ambiance="jour"] .mega-une p { color: var(--gris); }
:root[data-ambiance="jour"] .hero { background: var(--ivoire); color: var(--encre); }
:root[data-ambiance="jour"] .hero-img::after { background: linear-gradient(90deg, rgba(246,242,234,1) 0%, rgba(246,242,234,0.86) 22%, rgba(246,242,234,0.25) 60%, rgba(246,242,234,0.1) 100%), linear-gradient(0deg, rgba(246,242,234,1) 0%, rgba(246,242,234,0) 30%); }
:root[data-ambiance="jour"] .hero h1 .fort { color: var(--or-texte); }
:root[data-ambiance="jour"] .hero .chapo { color: var(--gris); }
:root[data-ambiance="jour"] .chiffres { border-top: 1px solid rgba(27,25,21,0.194); }
:root[data-ambiance="jour"] .chiffre + .chiffre { border-left: 1px solid rgba(27,25,21,0.194); }
:root[data-ambiance="jour"] .chiffre b { color: var(--encre); }
:root[data-ambiance="jour"] .chiffre > span { color: var(--gris); }
:root[data-ambiance="jour"] .defiler { color: var(--gris); }
:root[data-ambiance="jour"] .defiler i { background: rgba(27,25,21,0.22); }
:root[data-ambiance="jour"] .section--noir { background: var(--ivoire); color: var(--encre); }
:root[data-ambiance="jour"] .section--noir .titre-sec h2 .fort { color: var(--or-texte); }
:root[data-ambiance="jour"] .section--noir .titre-sec p { color: var(--gris); }
:root[data-ambiance="jour"] .tuile { color: var(--encre); background: var(--blanc); }
:root[data-ambiance="jour"] .tuile::after { background: linear-gradient(0deg, rgba(246,242,234,0.88) 0%, rgba(246,242,234,0.15) 55%, rgba(246,242,234,0) 100%); }
:root[data-ambiance="jour"] .tuile p { color: var(--gris); }
:root[data-ambiance="jour"] .rond { border: 1px solid rgba(27,25,21,0.22); }
:root[data-ambiance="jour"] .tuile:hover .rond { color: #fff; }
:root[data-ambiance="jour"] .tuile--blanc::after { background: linear-gradient(0deg, rgba(246,242,234,0.9) 0%, rgba(246,242,234,0.55) 26%, rgba(246,242,234,0) 42%); }
:root[data-ambiance="jour"] .phare-img .badge { background: rgba(255,255,255,0.92); color: var(--encre); }
:root[data-ambiance="jour"] .phare .sous { color: var(--or-texte); }
:root[data-ambiance="jour"] .phare p { color: var(--gris); }
:root[data-ambiance="jour"] .atouts { border-top: 1px solid rgba(27,25,21,0.172); }
:root[data-ambiance="jour"] .atouts li { border-bottom: 1px solid rgba(27,25,21,0.172); color: var(--encre); }
:root[data-ambiance="jour"] .atouts li span { color: var(--or-texte); }
:root[data-ambiance="jour"] .etape:hover .point { color: #fff; }
:root[data-ambiance="jour"] .contact h2 .fort { color: var(--or-texte); }
:root[data-ambiance="jour"] .contact .tel { color: var(--encre); }
:root[data-ambiance="jour"] .contact .tel:hover { color: var(--or-texte); }
:root[data-ambiance="jour"] .contact .info { color: var(--gris); }
:root[data-ambiance="jour"] .form { background: var(--blanc); border: 1px solid rgba(27,25,21,0.128); }
:root[data-ambiance="jour"] .champ label { color: var(--gris); }
:root[data-ambiance="jour"] .champ input, :root[data-ambiance="jour"] .champ select, :root[data-ambiance="jour"] .champ textarea { color: var(--encre); background: #F3EFE8; border: 1px solid rgba(27,25,21,0.194); }
:root[data-ambiance="jour"] .consent { color: var(--gris); }
:root[data-ambiance="jour"] .footer { background: var(--ivoire); color: var(--gris); }
:root[data-ambiance="jour"] .footer .haut { border-bottom: 1px solid rgba(27,25,21,0.128); }
:root[data-ambiance="jour"] .footer .titre { color: var(--encre); }
:root[data-ambiance="jour"] .footer a:hover { color: var(--or-texte); }
:root[data-ambiance="jour"] .signature { color: var(--gris); }
:root[data-ambiance="jour"] .menu-overlay { background: rgba(255,255,255,0.7); }
:root[data-ambiance="jour"] .mobile-menu { background: var(--ivoire); color: var(--encre); }
:root[data-ambiance="jour"] .mobile-menu details { border-bottom: 1px solid rgba(27,25,21,0.15); }
:root[data-ambiance="jour"] .mobile-menu details a { color: var(--gris); }
:root[data-ambiance="jour"] .mobile-menu > a.simple { border-bottom: 1px solid rgba(27,25,21,0.15); }
@media (max-width: 860px) {
  :root[data-ambiance="jour"] .hero-img::after { background: linear-gradient(0deg, rgba(246,242,234,1) 10%, rgba(246,242,234,0.6) 60%, rgba(246,242,234,0.7) 100%); }
  :root[data-ambiance="jour"] .chiffre + .chiffre { border-top: 1px solid rgba(27,25,21,0.194); }
}
:root[data-ambiance="jour"] .header.is-scrolled { background: var(--ivoire); }
:root[data-ambiance="jour"] .bientot--sombre { color: var(--or-texte); }
:root[data-ambiance="jour"] .immersion-cadre::after { background: linear-gradient(90deg, rgba(246,242,234,0.88) 0%, rgba(246,242,234,0.55) 45%, rgba(246,242,234,0.05) 100%); }
:root[data-ambiance="jour"] .immersion-contenu { color: var(--encre); }
:root[data-ambiance="jour"] .immersion-contenu h2 .fort { color: var(--or-texte); }
:root[data-ambiance="jour"] .immersion-contenu p { color: var(--gris); }
:root[data-ambiance="jour"] .immersion-contenu .adresse { color: var(--gris); }
:root[data-ambiance="jour"] .immersion-contenu .adresse b { color: var(--encre); }
:root[data-ambiance="jour"] .carte--hotline { background: var(--ivoire); color: var(--encre); }
:root[data-ambiance="jour"] .carte--hotline .ico { background: rgba(27,25,21,0.068); color: var(--or-texte); }
:root[data-ambiance="jour"] .carte--hotline p { color: var(--gris); }
:root[data-ambiance="jour"] .hotline-tel { color: var(--encre); }
:root[data-ambiance="jour"] .hotline-tel:hover { color: var(--or-texte); }
:root[data-ambiance="jour"] .horaires { color: var(--gris); }
:root[data-ambiance="jour"] .boutique h2 .fort { color: var(--or-texte); }
:root[data-ambiance="jour"] .boutique-txt > p { color: var(--gris); }
:root[data-ambiance="jour"] .alerte label, :root[data-ambiance="jour"] .footer-lettre label { color: var(--encre); }
:root[data-ambiance="jour"] .alerte-champ--sombre { background: rgba(27,25,21,0.06); border-color: rgba(27,25,21,0.194); color: var(--encre); }
:root[data-ambiance="jour"] .alerte-champ--sombre input::placeholder { color: var(--gris); }
:root[data-ambiance="jour"] .alerte-champ button[aria-label] { color: #fff; }
:root[data-ambiance="jour"] .produit { background: var(--blanc); border: 1px solid rgba(27,25,21,0.117); }
:root[data-ambiance="jour"] .p-img { background: #F3EFE8; }
:root[data-ambiance="jour"] .p-cat { color: var(--or-texte); }
:root[data-ambiance="jour"] .produit b { color: var(--encre); }
:root[data-ambiance="jour"] .p-prix { border-top: 1px dashed rgba(27,25,21,0.194); color: var(--gris); }
:root[data-ambiance="jour"] .footer-lettre label { color: var(--gris); }
:root[data-ambiance="jour"] .reseaux a { border: 1px solid rgba(27,25,21,0.194); }
@media (max-width: 860px) {
  :root[data-ambiance="jour"] .immersion-cadre::after { background: linear-gradient(0deg, rgba(246,242,234,0.92) 10%, rgba(246,242,234,0.55) 60%, rgba(246,242,234,0.35) 100%); }
}
:root[data-ambiance="jour"] .footer-live { border-bottom: 1px solid rgba(27,25,21,0.128); }
:root[data-ambiance="jour"] .live-heure { color: var(--encre); }
:root[data-ambiance="jour"] .live-heure time { color: var(--encre); }
:root[data-ambiance="jour"] .live-heure .fort { color: var(--or-texte); }
:root[data-ambiance="jour"] .statut { color: var(--gris); }
:root[data-ambiance="jour"] .live-carte { color: var(--encre); }
:root[data-ambiance="jour"] .live-carte::after { background: linear-gradient(180deg, rgba(246,242,234,0.1) 30%, rgba(246,242,234,0.85) 100%); }
:root[data-ambiance="jour"] .coord-gps { background: rgba(255,255,255,0.7); border: 1px solid rgba(27,25,21,0.22); }
:root[data-ambiance="jour"] .live-adresse { color: var(--gris); }
:root[data-ambiance="jour"] .live-adresse b { color: var(--encre); }
:root[data-ambiance="jour"] .itineraire { color: var(--or-texte); }
:root[data-ambiance="jour"] .haut-de-page { color: var(--encre); }
:root[data-ambiance="jour"] .haut-de-page:hover { color: var(--or-texte); }
:root[data-ambiance="jour"] .anneau circle { stroke: var(--gris); }
:root[data-ambiance="jour"] .anneau .anneau-prog { stroke: var(--or-texte); }
:root[data-ambiance="jour"] .btn--contour:hover { background: var(--blanc); color: var(--encre); }
:root[data-ambiance="jour"] .financement { background: var(--blanc); }
:root[data-ambiance="jour"] .fin-ico { color: var(--or-texte); }
:root[data-ambiance="jour"] .fin-txt { color: var(--gris); }
:root[data-ambiance="jour"] .fin-txt b { color: var(--encre); }
:root[data-ambiance="jour"] .lien--clair { color: var(--or-texte); }
:root[data-ambiance="jour"] .days-liste { color: var(--gris); }
:root[data-ambiance="jour"] .galerie figure { background: #F3EFE8; }
:root[data-ambiance="jour"] .galerie figcaption { color: var(--encre); background: rgba(255,255,255,0.75); }
:root[data-ambiance="jour"] .maison-legende { color: var(--encre); background: rgba(255,255,255,0.77); }
:root[data-ambiance="jour"] .etoiles { color: var(--or-texte); }
:root[data-ambiance="jour"] .contact-intro { color: var(--gris); }
:root[data-ambiance="jour"] .nav-btn[aria-current="page"] { color: var(--encre); background: rgba(27,25,21,0.076); }
:root[data-ambiance="jour"] .mega-une__titre { color: var(--encre); }
:root[data-ambiance="jour"] .mega-une .txt p:not(.mega-une__titre) { color: var(--gris); }
:root[data-ambiance="jour"] .recherche { background: var(--ivoire); border-bottom: 1px solid rgba(27,25,21,0.15); }
:root[data-ambiance="jour"] .recherche-form { background: var(--blanc); border: 1px solid rgba(27,25,21,0.194); color: var(--encre); }
:root[data-ambiance="jour"] .recherche-form input[type="search"] { color: var(--encre); }
:root[data-ambiance="jour"] .page-hero .recherche-form--page { background: var(--blanc); border-color: rgba(27,25,21,0.194); color: var(--encre); }
:root[data-ambiance="jour"] .page-hero .recherche-form--page input[type="search"] { color: var(--encre); }
:root[data-ambiance="jour"] .page-hero { background: var(--ivoire); color: var(--encre); }
:root[data-ambiance="jour"] .page-hero__titre .fort { color: var(--or-texte); }
:root[data-ambiance="jour"] .page-hero .chapo { color: var(--gris); }
:root[data-ambiance="jour"] .page-hero--image .page-hero__img::after { background: linear-gradient(90deg, rgba(246,242,234,1) 0%, rgba(246,242,234,0.5) 50%, rgba(246,242,234,0.2) 100%); }
:root[data-ambiance="jour"] .merci-type { color: var(--or-texte); }
:root[data-ambiance="jour"] .retour { border: 1px solid var(--pierre); }
:root[data-ambiance="jour"] .ariane-barre--clair .retour { color: var(--encre); background: rgba(27,25,21,0.068); border-color: rgba(27,25,21,0.22); }
:root[data-ambiance="jour"] .ariane-barre--clair .retour:hover { color: var(--or-texte); }
:root[data-ambiance="jour"] .ariane--clair ol { color: var(--gris); }
:root[data-ambiance="jour"] .ariane--clair a:hover { color: var(--or-texte); }
:root[data-ambiance="jour"] .ariane--clair [aria-current] { color: var(--encre); }
:root[data-ambiance="jour"] .section--noir .contenu p, :root[data-ambiance="jour"] .section--noir .contenu li { color: var(--gris); }
:root[data-ambiance="jour"] .famille .rond { border-color: var(--pierre); }
:root[data-ambiance="jour"] .famille:hover .rond { color: #fff; }
:root[data-ambiance="jour"] .filtre.est-actif { background: var(--blanc); color: var(--encre); }
:root[data-ambiance="jour"] .nav-links .page-numbers.current { background: var(--blanc); color: var(--encre); }
:root[data-ambiance="jour"] .comparatif__vide { color: var(--gris); }
:root[data-ambiance="jour"] .galerie-produit__principale .badge { background: rgba(255,255,255,0.92); color: var(--encre); }
:root[data-ambiance="jour"] .galerie-produit__vide { color: var(--gris); }
:root[data-ambiance="jour"] .fiche-achat .single_add_to_cart_button { color: #fff; }
:root[data-ambiance="jour"] .video { background: var(--ivoire); }
:root[data-ambiance="jour"] .video__voile { background: linear-gradient(180deg, rgba(246,242,234,0.05) 0%, rgba(246,242,234,0) 40%, rgba(246,242,234,0.72) 100%); }
:root[data-ambiance="jour"] .video__badge { background: rgba(255,255,255,0.7); color: var(--encre); }
:root[data-ambiance="jour"] .video__play { background: rgba(255,255,255,0.65); border: 1px solid rgba(27,25,21,0.22); color: var(--encre); }
:root[data-ambiance="jour"] .video:hover .video__play, :root[data-ambiance="jour"] .video__play:focus-visible { background: rgba(255,255,255,0.83); }
:root[data-ambiance="jour"] .video-modale::backdrop { background: rgba(255,255,255,0.92); }
:root[data-ambiance="jour"] .video-modale__cadre { background: var(--ivoire); }
:root[data-ambiance="jour"] .video-modale__fermer { background: rgba(27,25,21,0.116); border: 1px solid rgba(27,25,21,0.22); color: var(--encre); }
:root[data-ambiance="jour"] .video-modale__fermer:hover { background: rgba(27,25,21,0.22); }
:root[data-ambiance="jour"] .form-message--erreur { color: var(--or-texte); }
:root[data-ambiance="jour"] .form-message--ok { color: var(--or-texte); }
:root[data-ambiance="jour"] .form-produit { color: var(--or-texte); }
:root[data-ambiance="jour"] .form-mentions { color: var(--gris); }
:root[data-ambiance="jour"] .consent a { color: var(--or-texte); }
:root[data-ambiance="jour"] .alerte-mention { color: var(--gris); }
:root[data-ambiance="jour"] a.signature { color: var(--gris); }
@media (max-width: 860px) {
  :root[data-ambiance="jour"] .cta-collant { background: var(--ivoire); }
}
:root[data-ambiance="jour"] .version.est-actif { background: var(--blanc); color: var(--encre); }
:root[data-ambiance="jour"] .hero-media { background: var(--ivoire); }
:root[data-ambiance="jour"] .hero-media::after { background: linear-gradient(90deg, rgba(246,242,234,0.97) 0%, rgba(246,242,234,0.9) 30%, rgba(246,242,234,0.52) 58%, rgba(246,242,234,0.42) 100%),
  linear-gradient(0deg, rgba(246,242,234,0.95) 0%, rgba(246,242,234,0) 32%),
  radial-gradient(120% 90% at 80% 20%, rgba(181,144,79,.10), transparent 60%); }
:root[data-ambiance="jour"] .hero-preuves li { border-left: 1px solid rgba(27,25,21,0.216); }
:root[data-ambiance="jour"] .hero-preuves b { color: var(--encre); }
:root[data-ambiance="jour"] .hero-preuves li > span { color: var(--gris); }
:root[data-ambiance="jour"] .vitrine-hero { background: rgba(255,255,255,0.7); border: 1px solid rgba(27,25,21,0.172); }
:root[data-ambiance="jour"] .vitrine-hero__titre { color: var(--or-texte); }
:root[data-ambiance="jour"] .vitrine-hero__lien { color: var(--encre); }
:root[data-ambiance="jour"] .vitrine-hero__tag { color: var(--or-texte); }
:root[data-ambiance="jour"] .vitrine-hero__texte { color: var(--gris); }
:root[data-ambiance="jour"] .vitrine-hero__cta { color: var(--or-texte); }
:root[data-ambiance="jour"] .vitrine-hero__point i { background: rgba(27,25,21,0.18); }
:root[data-ambiance="jour"] .vitrine-hero__fleche { border: 1px solid rgba(27,25,21,0.22); color: var(--encre); }
:root[data-ambiance="jour"] .vitrine-hero__fleche:hover { color: #fff; }
:root[data-ambiance="jour"] .hero-pause { border: 1px solid rgba(27,25,21,0.22); background: rgba(255,255,255,0.65); color: var(--encre); }
:root[data-ambiance="jour"] .hero-pause:hover { color: var(--or-texte); }
@media (max-width: 1024px) {
  :root[data-ambiance="jour"] .hero-media::after { background: linear-gradient(180deg, rgba(246,242,234,0.5) 0%, rgba(246,242,234,0.78) 38%, rgba(246,242,234,0.95) 70%, rgba(246,242,234,1) 100%); }
}
:root[data-ambiance="jour"] .bmarques { background: var(--ivoire); color: var(--encre); border-top: 1px solid rgba(27,25,21,0.128); }
:root[data-ambiance="jour"] .bmarques__titre { color: var(--gris); }
:root[data-ambiance="jour"] .bmarques__liste a { color: var(--gris); }
:root[data-ambiance="jour"] .bmarques__liste a:hover, :root[data-ambiance="jour"] .bmarques__liste a:focus-visible { color: var(--or-texte); }
:root[data-ambiance="jour"] .guide__option input:checked + span { background: var(--ivoire); border-color: var(--pierre); color: var(--encre); }
:root[data-ambiance="jour"] .guide__carte { background: var(--ivoire); color: var(--encre); }
:root[data-ambiance="jour"] .guide__nom a { color: var(--encre); }
:root[data-ambiance="jour"] .guide__pourquoi, :root[data-ambiance="jour"] .guide__plus { color: var(--gris); }
:root[data-ambiance="jour"] .guide__plus a { color: var(--or-texte); }
:root[data-ambiance="jour"] .guide__points svg { color: var(--or-texte); }
:root[data-ambiance="jour"] .guide__carte .btn--contour { color: var(--encre); border-color: rgba(27,25,21,0.22); }
:root[data-ambiance="jour"] .guide__badge { color: #fff; }
:root[data-ambiance="jour"] .aide-choix__carte { background: var(--ivoire); color: var(--encre); }
:root[data-ambiance="jour"] .aide-choix__icone { border: 1px solid rgba(27,25,21,0.22); color: var(--or-texte); }
:root[data-ambiance="jour"] .aide-choix__txt span { color: var(--gris); }
:root[data-ambiance="jour"] .aide-choix__cta { color: #fff; }
:root[data-ambiance="jour"] .article-hero { background: var(--ivoire); color: var(--encre); }
:root[data-ambiance="jour"] .article-hero__chapo { color: var(--gris); }
:root[data-ambiance="jour"] .article-meta { color: var(--gris); }
:root[data-ambiance="jour"] .article-meta__auteur { border-right: 1px solid rgba(27,25,21,0.194); }
:root[data-ambiance="jour"] .article-meta__auteur b { color: var(--encre); }
:root[data-ambiance="jour"] .article-meta__info svg { color: var(--or-texte); }
:root[data-ambiance="jour"] .sommaire a span { color: var(--gris); }
:root[data-ambiance="jour"] .aside-cta { background: var(--ivoire); color: var(--encre); }
:root[data-ambiance="jour"] .aside-cta p { color: var(--gris); }
:root[data-ambiance="jour"] .aside-cta b { color: var(--encre); }
:root[data-ambiance="jour"] .aside-cta__tel { color: var(--or-texte); }
:root[data-ambiance="jour"] .article-copier.is-ok { background: var(--ivoire); color: var(--encre); border-color: var(--pierre); }
:root[data-ambiance="jour"] .auteur { background: var(--ivoire); color: var(--encre); }
:root[data-ambiance="jour"] .auteur p { color: var(--gris); }
:root[data-ambiance="jour"] .auteur__titre { color: var(--encre) !important; }
:root[data-ambiance="jour"] .auteur .lien { color: var(--or-texte); }
:root[data-ambiance="jour"] .blog-filtres a.is-actif { background: var(--ivoire); border-color: var(--pierre); color: var(--encre); }
:root[data-ambiance="jour"] .blog-filtres a.is-actif span { background: rgba(27,25,21,0.116); color: var(--or-texte); }
:root[data-ambiance="jour"] .blog-une { background: var(--ivoire); color: var(--encre); }
:root[data-ambiance="jour"] .blog-une__label { color: var(--or-texte); }
:root[data-ambiance="jour"] .blog-une__label span { color: var(--gris); border: 1px solid rgba(27,25,21,0.22); }
:root[data-ambiance="jour"] .blog-une__titre a { color: var(--encre); }
:root[data-ambiance="jour"] .blog-une__texte { color: var(--gris); }
:root[data-ambiance="jour"] .blog-une__meta, :root[data-ambiance="jour"] .carte-article__date { color: var(--gris); }
:root[data-ambiance="jour"] .blog-une__cta, :root[data-ambiance="jour"] .carte-article__cta { color: var(--or-texte); }
:root[data-ambiance="jour"] .carte-article__cat { background: rgba(255,255,255,0.92); color: var(--encre); }
:root[data-ambiance="jour"] .blog .page-numbers.current { background: var(--ivoire); color: var(--encre); border-color: var(--pierre); }
:root[data-ambiance="jour"] .comp__val.est-vide { color: var(--gris); }
:root[data-ambiance="jour"] :is(.section--noir, :root[data-ambiance="jour"] .hero, :root[data-ambiance="jour"] .page-hero, :root[data-ambiance="jour"] .article-hero, :root[data-ambiance="jour"] .footer, :root[data-ambiance="jour"] .auteur, :root[data-ambiance="jour"] .aside-cta, :root[data-ambiance="jour"] .guide__carte, :root[data-ambiance="jour"] .blog-une, :root[data-ambiance="jour"] .vitrine-hero, :root[data-ambiance="jour"] .financement, :root[data-ambiance="jour"] .aide-choix__carte, :root[data-ambiance="jour"] .boutique-sec, :root[data-ambiance="jour"] .contact) :is(p, :root[data-ambiance="jour"] li, :root[data-ambiance="jour"] dd, :root[data-ambiance="jour"] label, :root[data-ambiance="jour"] span) a:not(.btn):not([class*="btn"]):not(.lien):not(.scene__nom):not(.chaine-hero__lien) { color: var(--encre); text-decoration-color: var(--gris); }
:root[data-ambiance="jour"] :is(.section--noir, :root[data-ambiance="jour"] .hero, :root[data-ambiance="jour"] .page-hero, :root[data-ambiance="jour"] .article-hero, :root[data-ambiance="jour"] .footer, :root[data-ambiance="jour"] .auteur, :root[data-ambiance="jour"] .aside-cta, :root[data-ambiance="jour"] .guide__carte, :root[data-ambiance="jour"] .blog-une, :root[data-ambiance="jour"] .financement, :root[data-ambiance="jour"] .boutique-sec, :root[data-ambiance="jour"] .contact) :is(p, :root[data-ambiance="jour"] li, :root[data-ambiance="jour"] dd, :root[data-ambiance="jour"] label, :root[data-ambiance="jour"] span) a:not(.btn):not([class*="btn"]):not(.lien):not(.scene__nom):not(.chaine-hero__lien):hover { color: var(--or-texte); }
:root[data-ambiance="jour"] :is(.section--noir, :root[data-ambiance="jour"] .hero, :root[data-ambiance="jour"] .page-hero, :root[data-ambiance="jour"] .article-hero, :root[data-ambiance="jour"] .auteur, :root[data-ambiance="jour"] .aside-cta, :root[data-ambiance="jour"] .guide__carte, :root[data-ambiance="jour"] .financement, :root[data-ambiance="jour"] .boutique-sec, :root[data-ambiance="jour"] .contact) a.lien, :root[data-ambiance="jour"] .lien--clair { color: var(--encre); }
:root[data-ambiance="jour"] :is(.section--noir, :root[data-ambiance="jour"] .hero, :root[data-ambiance="jour"] .page-hero, :root[data-ambiance="jour"] .article-hero, :root[data-ambiance="jour"] .auteur, :root[data-ambiance="jour"] .aside-cta, :root[data-ambiance="jour"] .guide__carte, :root[data-ambiance="jour"] .financement, :root[data-ambiance="jour"] .boutique-sec, :root[data-ambiance="jour"] .contact) a.lien:hover, :root[data-ambiance="jour"] .lien--clair:hover { color: var(--or-texte); }
:root[data-ambiance="jour"] .footer ul a:hover, :root[data-ambiance="jour"] .footer .bas-liens a:hover { color: var(--or-texte); }
:root[data-ambiance="jour"] .section--noir .contenu strong, :root[data-ambiance="jour"] .section--noir .contenu b { color: var(--encre); }
:root[data-ambiance="jour"] .cookies { background: var(--ivoire); color: var(--encre); }
:root[data-ambiance="jour"] .cookies__titre { color: var(--encre); }
:root[data-ambiance="jour"] .cookies__texte { color: var(--gris); }
:root[data-ambiance="jour"] .cookies__texte a { color: var(--encre); }
:root[data-ambiance="jour"] .cookies .btn--contour { border-color: rgba(27,25,21,0.22); color: var(--encre); }
:root[data-ambiance="jour"] .lien-cookies:hover { color: var(--or-texte); }
:root[data-ambiance="jour"] .caracteristiques.section--noir h2 { color: var(--encre); }
:root[data-ambiance="jour"] .caracteristiques.section--noir .caracteristiques__grille p { color: var(--gris); }
:root[data-ambiance="jour"] .section--noir .specs { border-top-color: rgba(27,25,21,0.194); }
:root[data-ambiance="jour"] .section--noir .specs > div { border-bottom-color: rgba(27,25,21,0.15); }
:root[data-ambiance="jour"] .section--noir .specs > div:hover { background: rgba(27,25,21,0.044); }
:root[data-ambiance="jour"] .section--noir .specs dt { color: var(--gris); }
:root[data-ambiance="jour"] .section--noir .specs dd { color: var(--encre); }
:root[data-ambiance="jour"] .zoom { background: var(--ivoire); color: var(--encre); }
:root[data-ambiance="jour"] .zoom::backdrop { background: var(--ivoire); }
:root[data-ambiance="jour"] .zoom__titre { color: var(--encre); }
:root[data-ambiance="jour"] .zoom__compteur { color: var(--gris); }
:root[data-ambiance="jour"] .zoom__fermer, :root[data-ambiance="jour"] .zoom__nav { background: rgba(27,25,21,0.1); border: 1px solid rgba(27,25,21,0.22); color: var(--encre); }
:root[data-ambiance="jour"] .zoom__fermer:hover, :root[data-ambiance="jour"] .zoom__nav:hover { background: rgba(27,25,21,0.196); }
@media (max-width: 760px) {
  :root[data-ambiance="jour"] .zoom__nav { background: rgba(255,255,255,0.75); }
}
:root[data-ambiance="jour"] .bento__case--une { background: var(--ivoire); color: var(--encre); }
:root[data-ambiance="jour"] .bento__marque { color: var(--or-texte); }
:root[data-ambiance="jour"] .bento__grand { color: var(--encre); }
:root[data-ambiance="jour"] .bento__texte p:last-child { color: var(--gris); }
:root[data-ambiance="jour"] .bento__visuel { background: var(--ivoire); }
:root[data-ambiance="jour"] .bento__case--une::after { background: linear-gradient(180deg, rgba(246,242,234,0) 25%, rgba(246,242,234,0.72) 55%, rgba(246,242,234,0.97) 100%); }
:root[data-ambiance="jour"] .marque-hero__chiffres { border-top: 1px solid rgba(27,25,21,0.172); }
:root[data-ambiance="jour"] .marque-hero__chiffres b { color: var(--encre); }
:root[data-ambiance="jour"] .marque-hero__chiffres span { color: var(--gris); }
:root[data-ambiance="jour"] .marque-hero__visuel::after { background: linear-gradient(180deg, rgba(246,242,234,0) 70%, rgba(246,242,234,0.25)); }
:root[data-ambiance="jour"] .marque-gamme__filtres .tag:hover { color: #fff; }
:root[data-ambiance="jour"] .marque-carte__logo { background: var(--ivoire); }
:root[data-ambiance="jour"] .marque-carte__nom { color: var(--encre); }
:root[data-ambiance="jour"] .contact-fond { background: var(--ivoire); }
:root[data-ambiance="jour"] .contact-fond::after { background: linear-gradient(90deg, rgba(246,242,234,0.92) 0%, rgba(246,242,234,0.74) 42%, rgba(246,242,234,0.64) 62%, rgba(246,242,234,0.86) 100%),
  radial-gradient(ellipse at 20% 0%, rgba(185,147,79,.18), transparent 55%); }
:root[data-ambiance="jour"] .contact-sec .form { background: rgba(255,255,255,0.92); border-color: rgba(27,25,21,0.172); }
@media (max-width: 1024px) {
  :root[data-ambiance="jour"] .contact-fond::after { background: linear-gradient(180deg, rgba(246,242,234,0.86) 0%, rgba(246,242,234,0.78) 40%, rgba(246,242,234,0.92) 100%); }
}
:root[data-ambiance="jour"] .offre__badge { background: var(--ivoire); color: var(--encre); }
:root[data-ambiance="jour"] .config__etape legend span { background: var(--ivoire); color: var(--encre); }
:root[data-ambiance="jour"] .config__besoin:has(input:checked) .config__coche { color: #fff; }
:root[data-ambiance="jour"] .config__colle { background: var(--ivoire); color: var(--encre); }
:root[data-ambiance="jour"] .config__titre { color: var(--encre); }
:root[data-ambiance="jour"] .config__liste a { background: rgba(27,25,21,0.06); color: var(--encre); }
:root[data-ambiance="jour"] .config__liste a:hover { background: rgba(27,25,21,0.1); }
:root[data-ambiance="jour"] .config__liste small { color: var(--or-texte); }
:root[data-ambiance="jour"] .config__liste em { color: var(--gris); }
:root[data-ambiance="jour"] .config__vide { color: var(--gris); }
:root[data-ambiance="jour"] .config__totaux { border-top: 1px solid rgba(27,25,21,0.172); border-bottom: 1px solid rgba(27,25,21,0.172); }
:root[data-ambiance="jour"] .config__totaux dt { color: var(--gris); }
:root[data-ambiance="jour"] .config__totaux dd { color: var(--encre); }
:root[data-ambiance="jour"] .config__mois dd span { color: var(--or-texte); }
:root[data-ambiance="jour"] .config__mois dd small { color: var(--gris); }
:root[data-ambiance="jour"] .config__note { color: var(--gris); }
:root[data-ambiance="jour"] .config__renta label { color: var(--gris); }
:root[data-ambiance="jour"] .config__renta input { border: 1px solid rgba(27,25,21,0.22); background: rgba(27,25,21,0.068); color: var(--encre); }
:root[data-ambiance="jour"] .config__renta-res { color: var(--encre); }
:root[data-ambiance="jour"] .config__renta-res b { color: var(--encre); }
:root[data-ambiance="jour"] .config__mention { color: var(--gris); }
:root[data-ambiance="jour"] .flux-cartes--grandes a { background: var(--ivoire); color: var(--encre); }
:root[data-ambiance="jour"] .flux-cartes--grandes h3 { color: var(--encre); }
:root[data-ambiance="jour"] .flux-cartes--grandes p { color: var(--gris); }
:root[data-ambiance="jour"] .flux-cartes--grandes .lien-fleche { color: var(--or-texte); }
:root[data-ambiance="jour"] .flux-cartes__etapes li { border: 1px solid rgba(27,25,21,0.22); color: var(--encre); }
:root[data-ambiance="jour"] .flux-cartes__etapes li::before { color: var(--or-texte); }
:root[data-ambiance="jour"] .fiche-flux .tag:hover { color: #fff; }
:root[data-ambiance="jour"] .marque-histoire__texte h2 { color: var(--encre); }
:root[data-ambiance="jour"] .marque-histoire__texte p { color: var(--gris); }
:root[data-ambiance="jour"] .marque-reperes > div { border: 1px solid rgba(27,25,21,0.172); background: rgba(27,25,21,0.052); }
:root[data-ambiance="jour"] .marque-reperes dt { color: var(--or-texte); }
:root[data-ambiance="jour"] .marque-reperes dd { color: var(--gris); }
:root[data-ambiance="jour"] .marque-histoire__texte h2 .or { color: var(--or-texte); }
:root[data-ambiance="jour"] .metiers-sec .metier { background: var(--blanc); color: var(--encre); border: 1px solid rgba(27,25,21,0.128); }
:root[data-ambiance="jour"] .metiers-sec .metier .img { background: var(--ivoire); }
:root[data-ambiance="jour"] .metiers-sec .metier h3 { color: var(--encre); }
:root[data-ambiance="jour"] .metiers-sec .metier p { color: var(--gris); }
:root[data-ambiance="jour"] .metiers-sec .metier .num, :root[data-ambiance="jour"] .metiers-sec .metier .fleche { color: var(--or-texte); }
:root[data-ambiance="jour"] .page-hero--fond .page-hero__img::after { background: linear-gradient(90deg, rgba(246,242,234,0.94) 0%, rgba(246,242,234,0.78) 38%, rgba(246,242,234,0.35) 75%, rgba(246,242,234,0.25) 100%), linear-gradient(0deg, rgba(246,242,234,0.6) 0%, rgba(246,242,234,0) 40%); }
@media (max-width: 1024px) {
  :root[data-ambiance="jour"] .page-hero--fond .page-hero__img::after { background: rgba(255,255,255,0.87); }
}
:root[data-ambiance="jour"] .comp__entete { background: var(--ivoire); color: var(--encre); }
:root[data-ambiance="jour"] .comp__entete span:first-child { color: var(--or-texte); }
:root[data-ambiance="jour"] .adf-hero { background: var(--ivoire); color: var(--encre); }
:root[data-ambiance="jour"] .adf-hero__fond::after { background: linear-gradient(90deg, rgba(246,242,234,0.95) 0%, rgba(246,242,234,0.86) 45%, rgba(246,242,234,0.7) 100%), radial-gradient(ellipse at 85% 10%, rgba(185,147,79,.25), transparent 55%); }
:root[data-ambiance="jour"] .adf-hero__titre .or { color: var(--or-texte); }
:root[data-ambiance="jour"] .adf-hero__sous { color: var(--gris); }
:root[data-ambiance="jour"] .adf-hero .chapo { color: var(--gris); }
:root[data-ambiance="jour"] .adf-billet { background: linear-gradient(160deg, rgba(246,242,234,1) 0%, rgba(246,242,234,1) 100%); }
:root[data-ambiance="jour"] .adf-billet__invite { color: var(--or-texte); }
:root[data-ambiance="jour"] .adf-billet__stand { color: var(--encre); }
:root[data-ambiance="jour"] .adf-billet__lieu { color: var(--gris); }
:root[data-ambiance="jour"] .adf-compte b { color: var(--or-texte); }
:root[data-ambiance="jour"] .adf-compte span { color: var(--gris); }
:root[data-ambiance="jour"] .adf-billet__marques span { background: rgba(27,25,21,0.22); }
:root[data-ambiance="jour"] .adf-offres__liste li { background: var(--blanc); }
:root[data-ambiance="jour"] .adf-offres__liste h3 { color: var(--encre); }
:root[data-ambiance="jour"] .adf-offres__liste p { color: var(--gris); }
:root[data-ambiance="jour"] .adf-offres__badge { color: #fff; }
:root[data-ambiance="jour"] .adf-offres__secret { background: var(--blanc); }
:root[data-ambiance="jour"] .adf-offres__accroche { color: var(--encre); }
:root[data-ambiance="jour"] .adf-offres__secret > p:not(.adf-offres__accroche) { color: var(--gris); }
:root[data-ambiance="jour"] .adf-hero__badge { color: var(--gris); }
:root[data-ambiance="jour"] .adf-hero__badge svg { color: var(--or-texte); }
:root[data-ambiance="jour"] .adf-hero__badge a { color: var(--encre); text-decoration-color: var(--or-texte); }
:root[data-ambiance="jour"] .adf-hero__badge a:hover { color: var(--or-texte); }
:root[data-ambiance="jour"] .adf-billet__lieu small { color: var(--or-texte); }
:root[data-ambiance="jour"] .projet-hero__visuel figcaption { background: rgba(255,255,255,0.87); color: var(--encre); }
:root[data-ambiance="jour"] .guide__photos figcaption { background: rgba(255,255,255,0.87); color: var(--encre); }
:root[data-ambiance="jour"] .etape.is-actif .point, :root[data-ambiance="jour"] .etape:hover .point { color: #fff; }
:root[data-ambiance="jour"] .t3d { background: radial-gradient(60% 55% at 72% 46%, rgba(185,147,79,.16), transparent 70%),
    radial-gradient(40% 40% at 10% 100%, rgba(185,147,79,.08), transparent 70%),
    rgba(246,242,234,1); }
:root[data-ambiance="jour"] .t3d__aide { color: var(--gris); }
:root[data-ambiance="jour"] .t3d__sol { background: radial-gradient(closest-side, rgba(246,242,234,0.8), rgba(246,242,234,0.3) 60%, transparent); }
:root[data-ambiance="jour"] .t3d__bulle { background: var(--blanc); color: var(--gris); }
:root[data-ambiance="jour"] .t3d__bulle strong { color: var(--encre); }
:root[data-ambiance="jour"] .t3d__geste { color: var(--or-texte); }
:root[data-ambiance="jour"] .t3d__fleche { color: var(--or-texte); }
:root[data-ambiance="jour"] .t3d__fleche:hover { color: var(--blanc); }
:root[data-ambiance="jour"] .t3d__libelle { color: var(--encre); }
:root[data-ambiance="jour"] .t3d__compte { color: var(--gris); }
:root[data-ambiance="jour"] .t3d__progression { background: rgba(27,25,21,0.116); }
:root[data-ambiance="jour"] .t3d__titre-liste { color: var(--or-texte); }
:root[data-ambiance="jour"] .t3d__vues button { color: var(--gris); border: 1px solid rgba(27,25,21,0.194); }
:root[data-ambiance="jour"] .t3d__vues button:hover { color: var(--encre); }
:root[data-ambiance="jour"] .t3d__vues button[aria-pressed="true"] { color: var(--blanc); }
:root[data-ambiance="jour"] .t3d__cles button { border: 1px solid rgba(27,25,21,0.15); background: rgba(27,25,21,0.036); }
:root[data-ambiance="jour"] .t3d__cles button::before { color: var(--or-texte); }
:root[data-ambiance="jour"] .t3d__cles strong { color: var(--encre); }
:root[data-ambiance="jour"] .t3d__cles span { color: var(--gris); }
:root[data-ambiance="jour"] .t3d__note { color: var(--gris); }
:root[data-ambiance="jour"] .contenu--article a.article-produit__lien { color: var(--blanc); }
:root[data-ambiance="jour"] .contenu--article .article-chiffres li { background: var(--ivoire); color: var(--gris); }
:root[data-ambiance="jour"] .article-chiffres b { color: var(--or-texte); }
:root[data-ambiance="jour"] .contenu--article .wp-block-table th { background: var(--ivoire); color: var(--encre); }
:root[data-ambiance="jour"] .galerie-produit__versions { color: #fff; }
:root[data-ambiance="jour"] .galerie-produit__versions:hover { color: #fff; }
:root[data-ambiance="jour"] .carte-produit__nb-versions { color: #fff; }
:root[data-ambiance="jour"] .galerie-produit__compte { background: rgba(255,255,255,0.87); color: var(--encre); }
:root[data-ambiance="jour"] .affiner button.filtre.est-actif { background: var(--blanc); color: var(--encre); }
:root[data-ambiance="jour"] .affiner__nb-actifs { color: #fff; }
:root[data-ambiance="jour"] .remonter { color: var(--encre); background: rgba(255,255,255,0.92); }
:root[data-ambiance="jour"] .remonter:hover { color: var(--or-texte); }
:root[data-ambiance="jour"] .aide__bouton { background: var(--ivoire); color: var(--or-texte); }
:root[data-ambiance="jour"] .aide__bouton[aria-expanded="true"] { color: #fff; }
:root[data-ambiance="jour"] .aide__point { border: 2px solid var(--pierre); }
:root[data-ambiance="jour"] .aide__panneau { background: var(--ivoire); color: var(--encre); }
:root[data-ambiance="jour"] .aide__titre { color: var(--encre); }
:root[data-ambiance="jour"] .aide__fermer, :root[data-ambiance="jour"] .aide__bulle-fermer { background: rgba(27,25,21,0.084); }
:root[data-ambiance="jour"] .aide__statut { color: var(--gris); }
:root[data-ambiance="jour"] .aide__option { border: 1px solid rgba(27,25,21,0.15); background: rgba(27,25,21,0.052); color: var(--encre); }
:root[data-ambiance="jour"] .aide__option:hover, :root[data-ambiance="jour"] .aide__option:focus-visible { color: var(--encre); }
:root[data-ambiance="jour"] .aide__option b { color: var(--encre); }
:root[data-ambiance="jour"] .aide__ico { color: var(--or-texte); }
:root[data-ambiance="jour"] .aide__form label { color: var(--gris); }
:root[data-ambiance="jour"] .aide__form input[type="text"], :root[data-ambiance="jour"] .aide__form input[type="tel"], :root[data-ambiance="jour"] .aide__form select { border: 1px solid rgba(27,25,21,0.194); background: rgba(27,25,21,0.06); color: var(--encre); }
:root[data-ambiance="jour"] .aide__retour { color: var(--gris); }
:root[data-ambiance="jour"] .aide__erreur { color: var(--or-texte); }
:root[data-ambiance="jour"] .defile__item { background: #F3EFE8; }
:root[data-ambiance="jour"] .defile__item figcaption { color: var(--encre); background: rgba(255,255,255,0.75); }
:root[data-ambiance="jour"] .defile__pause { border: 1px solid rgba(27,25,21,0.22); background: rgba(255,255,255,0.85); color: var(--encre); }
:root[data-ambiance="jour"] .tuile::after { background: linear-gradient(0deg, rgba(246,242,234,0.94) 0%, rgba(246,242,234,0.6) 38%, rgba(246,242,234,0.12) 68%, rgba(246,242,234,0) 100%); }
:root[data-ambiance="jour"] .tuile--blanc::after { background: linear-gradient(0deg, rgba(246,242,234,0.95) 0%, rgba(246,242,234,0.8) 30%, rgba(246,242,234,0) 56%); }
:root[data-ambiance="jour"] .bento__case--une::after { background: linear-gradient(180deg, rgba(246,242,234,0) 12%, rgba(246,242,234,0.84) 46%, rgba(246,242,234,0.98) 100%); }
@media (max-width: 768px) {
  :root[data-ambiance="jour"] .contenu--article .wp-block-table { background: linear-gradient(90deg, #fff 30%, rgba(255,255,255,0)), linear-gradient(90deg, rgba(255,255,255,0), #fff 70%) 100% 0, radial-gradient(farthest-side at 100% 50%, rgba(246,242,234,0.16), transparent) 100% 0; }
}
:root[data-ambiance="jour"] .scene__sol { background: radial-gradient(closest-side, rgba(246,242,234,0.75), rgba(246,242,234,0)); }
:root[data-ambiance="jour"] .scene__item--cadre img { border: 1px solid rgba(27,25,21,0.172); }
:root[data-ambiance="jour"] .scene__nom { background: rgba(255,255,255,0.92); color: var(--encre); }
:root[data-ambiance="jour"] .scene__nom svg { color: var(--or-texte); }
:root[data-ambiance="jour"] .scene__nom:hover, :root[data-ambiance="jour"] .scene__nom:focus-visible { color: var(--encre); }
:root[data-ambiance="jour"] .scene__points i { background: rgba(27,25,21,0.22); }
:root[data-ambiance="jour"] .scene__pause { border: 1px solid rgba(27,25,21,0.22); background: rgba(255,255,255,0.75); color: var(--encre); }
:root[data-ambiance="jour"] .page-hero--fond .page-hero__img::after { background: linear-gradient(90deg, rgba(246,242,234,0.95) 0%, rgba(246,242,234,0.86) 45%, rgba(246,242,234,0.5) 78%, rgba(246,242,234,0.38) 100%), linear-gradient(0deg, rgba(246,242,234,0.65) 0%, rgba(246,242,234,0) 45%); }
@media (max-width: 1024px) {
  :root[data-ambiance="jour"] .page-hero--fond .page-hero__img::after { background: rgba(255,255,255,0.92); }
}
:root[data-ambiance="jour"] .scene__fleche { border: 1px solid rgba(27,25,21,0.22); background: rgba(255,255,255,0.8); color: var(--encre); }
:root[data-ambiance="jour"] .scene__fleche:hover { color: var(--or-texte); }
:root[data-ambiance="jour"] .scene__marque-nom { color: var(--encre); }
:root[data-ambiance="jour"] .scene__marque-txt { color: var(--gris); }
:root[data-ambiance="jour"] .comparo { background: linear-gradient(180deg, rgba(246,242,234,0.85), rgba(246,242,234,0.92)); }
:root[data-ambiance="jour"] .comparo__table th, :root[data-ambiance="jour"] .comparo__table td { color: var(--gris); }
:root[data-ambiance="jour"] .comparo__table tbody th { color: var(--gris); }
:root[data-ambiance="jour"] .comparo__table tbody tr { border-top: 1px solid rgba(27,25,21,0.139); }
:root[data-ambiance="jour"] .comparo__tete { color: var(--encre); }
:root[data-ambiance="jour"] .comparo__nom small { color: var(--or-texte); }
:root[data-ambiance="jour"] .comparo__tete:hover .comparo__nom, :root[data-ambiance="jour"] .comparo__tete:focus-visible .comparo__nom { color: var(--or-texte); }
:root[data-ambiance="jour"] .comparo__oui svg { color: var(--or-texte); }
:root[data-ambiance="jour"] .comparo__non { color: var(--gris) !important; }
:root[data-ambiance="jour"] .comparo__go { color: var(--or-texte); }
:root[data-ambiance="jour"] .comparo__non { color: var(--gris) !important; }
:root[data-ambiance="jour"] .chaine-hero__etape a { color: var(--encre); }
:root[data-ambiance="jour"] .chaine-hero__rond { background: radial-gradient(circle at 50% 35%, rgba(246,242,234,1), rgba(246,242,234,1) 70%); box-shadow: 0 18px 40px var(--pierre), inset 0 1px 0 rgba(27,25,21,0.106); }
:root[data-ambiance="jour"] .chaine-hero__ico svg { color: var(--or-texte); }
:root[data-ambiance="jour"] .chaine-hero__num { color: #fff; }
:root[data-ambiance="jour"] .chaine-hero__role { color: var(--encre); }
:root[data-ambiance="jour"] .chaine-hero__nom { color: var(--gris); }
:root[data-ambiance="jour"] .chaine-hero__etape a:hover .chaine-hero__nom { color: var(--or-texte); }
:root[data-ambiance="jour"] .scene__badge { color: #fff; }
:root[data-ambiance="jour"] .page-hero--fond .page-hero__img:has(video)::after { background: linear-gradient(90deg, rgba(246,242,234,0.94) 0%, rgba(246,242,234,0.8) 40%, rgba(246,242,234,0.25) 75%, rgba(246,242,234,0.1) 100%), linear-gradient(0deg, rgba(246,242,234,0.7) 0%, rgba(246,242,234,0) 40%); }
:root[data-ambiance="jour"] .hero-video-pause { border: 1px solid rgba(27,25,21,0.22); background: rgba(255,255,255,0.7); color: var(--encre); }
@media (max-width: 1024px) {
  :root[data-ambiance="jour"] .page-hero--fond .page-hero__img:has(video)::after { background: rgba(255,255,255,0.85); }
}
:root[data-ambiance="jour"] .bento__case--une .bento__texte { background: rgba(255,255,255,0.89); border: 1px solid rgba(27,25,21,0.128); }
:root[data-ambiance="jour"] .bento__case--une .bento__texte p:last-child { color: var(--gris); }
:root[data-ambiance="jour"] .badge-exclusif { background: var(--ivoire); color: var(--encre); }
:root[data-ambiance="jour"] .badge-exclusif svg { color: var(--or-texte); }
:root[data-ambiance="jour"] .imx.fiche { background: var(--ivoire); color: var(--encre); }
:root[data-ambiance="jour"] .imx-surtitre { color: var(--or-texte); }
:root[data-ambiance="jour"] .imx-surtitre--clair { color: var(--or-texte); }
:root[data-ambiance="jour"] .imx-hero { background: radial-gradient(70% 55% at 50% 0%, rgba(185,147,79,.22), transparent 70%), radial-gradient(50% 40% at 50% 100%, rgba(185,147,79,.12), transparent 70%), rgba(246,242,234,1); }
:root[data-ambiance="jour"] .imx-hero__chapo { color: var(--gris); }
:root[data-ambiance="jour"] .imx-ecran { background: linear-gradient(160deg, rgba(246,242,234,1), rgba(246,242,234,1)); }
:root[data-ambiance="jour"] .imx-ecran img { background: var(--ivoire); }
:root[data-ambiance="jour"] .imx-recit { background: var(--ivoire); }
:root[data-ambiance="jour"] .imx-recit__entete h2 { color: var(--encre); }
:root[data-ambiance="jour"] .imx-recit__num { color: var(--or-texte); }
:root[data-ambiance="jour"] .imx-recit__etape h3 { color: var(--encre); }
:root[data-ambiance="jour"] .imx-recit__etape p { color: var(--gris); }
:root[data-ambiance="jour"] .imx-module--base { background: var(--ivoire); border-color: var(--pierre); color: var(--encre); }
:root[data-ambiance="jour"] .imx-module--base h3 { color: var(--encre); }
:root[data-ambiance="jour"] .imx-module--base p { color: var(--gris); }
:root[data-ambiance="jour"] .imx-module__tag { color: var(--or-texte); }
:root[data-ambiance="jour"] .imx-exoplan { background: radial-gradient(60% 60% at 0% 50%, rgba(185,147,79,.18), transparent 70%), rgba(246,242,234,1); }
:root[data-ambiance="jour"] .imx-exoplan h2 { color: var(--encre); }
:root[data-ambiance="jour"] .imx-exoplan__texte > p:not(.imx-surtitre) { color: var(--gris); }
:root[data-ambiance="jour"] .imx-exoplan .imx-chip { color: var(--encre); }
:root[data-ambiance="jour"] .imx-exoplan__visuels .imx-carte { background: var(--ivoire); }
:root[data-ambiance="jour"] .imx-duo__carte--photo { background: var(--ivoire); color: var(--encre); }
:root[data-ambiance="jour"] .imx-duo__carte--photo h3 { color: var(--encre); }
:root[data-ambiance="jour"] .imx-duo__carte--photo p:not(.imx-surtitre) { color: var(--gris); }
:root[data-ambiance="jour"] .imx-video { background: var(--ivoire); }
:root[data-ambiance="jour"] .imx-video__titre { color: var(--encre); }
:root[data-ambiance="jour"] .imx-euromax__points li { background: rgba(27,25,21,0.044); }
:root[data-ambiance="jour"] .imx-euromax__points svg { color: var(--or-texte); }
:root[data-ambiance="jour"] .imx-euromax__points h3 { color: var(--encre); }
:root[data-ambiance="jour"] .imx-euromax__points p { color: var(--gris); }
:root[data-ambiance="jour"] .imx-citation blockquote { color: var(--encre); }
:root[data-ambiance="jour"] .imx-citation figcaption { color: var(--or-texte); }
@media (max-width: 1024px) {
  :root[data-ambiance="jour"] .imx-recit__image-mobile { background: linear-gradient(160deg, rgba(246,242,234,1), rgba(246,242,234,1)); }
}
:root[data-ambiance="jour"] .imx-hero__voile { background: radial-gradient(70% 70% at 50% 45%, rgba(246,242,234,0.55), rgba(246,242,234,0.88)), linear-gradient(180deg, rgba(246,242,234,0.7), rgba(246,242,234,0.35) 40%, rgba(246,242,234,0.95)); }
:root[data-ambiance="jour"] .imx-chiffres { background: var(--ivoire); }
:root[data-ambiance="jour"] .imx-chiffres__val { color: var(--encre); }
:root[data-ambiance="jour"] .imx-chiffres__val small { color: var(--or-texte); }
:root[data-ambiance="jour"] .imx-chiffres__txt { color: var(--gris); }
:root[data-ambiance="jour"] .imx-atouts svg { background: var(--ivoire); color: var(--or-texte); }
:root[data-ambiance="jour"] .imx-boucle video { background: var(--ivoire); }
:root[data-ambiance="jour"] .imx-boucle__pause { border: 1px solid rgba(27,25,21,0.22); background: rgba(255,255,255,0.75); color: var(--encre); }
:root[data-ambiance="jour"] .imx-nomade { background: var(--ivoire); }
:root[data-ambiance="jour"] .imx-nomade h2 { color: var(--encre); }
:root[data-ambiance="jour"] .imx-nomade__texte > p:not(.imx-surtitre) { color: var(--gris); }
:root[data-ambiance="jour"] .imx-carte--sombre { background: var(--ivoire); }
:root[data-ambiance="jour"] .imx-flux__num { background: var(--ivoire); color: var(--or-texte); }
:root[data-ambiance="jour"] .imx-duo__h { color: var(--encre); }
:root[data-ambiance="jour"] .imx-materiaux { background: radial-gradient(60% 60% at 100% 50%, rgba(185,147,79,.16), transparent 70%), rgba(246,242,234,1); }
:root[data-ambiance="jour"] .imx-materiaux h2 { color: var(--encre); }
:root[data-ambiance="jour"] .imx-materiaux p:not(.imx-surtitre) { color: var(--gris); }
:root[data-ambiance="jour"] .imx-avertissement svg { color: var(--or-texte); }
:root[data-ambiance="jour"] .imx-videos__item figcaption { color: var(--gris); }
:root[data-ambiance="jour"] .imx-modules.section--noir { background: var(--ivoire); color: var(--encre); }
:root[data-ambiance="jour"] .imx-modules.section--noir .titre-sec p { color: var(--gris); }
:root[data-ambiance="jour"] .imx-modules.section--noir .imx-module:not(.imx-module--base) { background: rgba(27,25,21,0.052); }
:root[data-ambiance="jour"] .imx-modules.section--noir .imx-module:not(.imx-module--base) h3 { color: var(--encre); }
:root[data-ambiance="jour"] .imx-modules.section--noir .imx-module:not(.imx-module--base) p { color: var(--gris); }
:root[data-ambiance="jour"] .imx-modules.section--noir .imx-module--base { background-color: #F3EFE8; }
:root[data-ambiance="jour"] .imx-trio { background: var(--ivoire); }
:root[data-ambiance="jour"] .imx-trio__titre { color: var(--encre); }
:root[data-ambiance="jour"] .imx-trio .imx-ligne--or { color: var(--or-texte); }
:root[data-ambiance="jour"] .imx-trio__liste h3 { color: var(--encre); }
:root[data-ambiance="jour"] .imx-trio__liste p { color: var(--gris); }
:root[data-ambiance="jour"] .imx-citation--photo blockquote p { color: var(--encre); }
:root[data-ambiance="jour"] .imx-citation--photo figcaption { color: var(--or-texte); }
:root[data-ambiance="jour"] .imx-etudes li { background: rgba(27,25,21,0.044); }
:root[data-ambiance="jour"] .imx-etudes strong { color: var(--or-texte); }
:root[data-ambiance="jour"] .imx-etudes span { color: var(--gris); }
:root[data-ambiance="jour"] .imx-barre { background: rgba(255,255,255,0.92); color: var(--encre); }
:root[data-ambiance="jour"] .imx-barre__nom small { color: var(--or-texte); }
:root[data-ambiance="jour"] .imx-barre__tel { border: 1px solid rgba(27,25,21,0.22); color: var(--encre); }
:root[data-ambiance="jour"] .imx-barre__tel:hover { color: var(--or-texte); }
:root[data-ambiance="jour"] .hub { background: radial-gradient(45% 55% at 50% 50%, rgba(185,147,79,.18), transparent 70%), rgba(246,242,234,1); color: var(--encre); }
:root[data-ambiance="jour"] .hub__ligne { stroke: var(--or-texte); }
:root[data-ambiance="jour"] .hub__ligne--sortie { stroke: var(--or-texte); }
:root[data-ambiance="jour"] .hub__centre { background: linear-gradient(150deg, rgba(246,242,234,1), rgba(246,242,234,1)); }
:root[data-ambiance="jour"] .hub__centre b { color: var(--encre); }
:root[data-ambiance="jour"] .hub__centre small { color: var(--or-texte); }
:root[data-ambiance="jour"] .hub__carte { background: var(--blanc); }
:root[data-ambiance="jour"] a.hub__carte:hover, :root[data-ambiance="jour"] a.hub__carte:focus-visible { background: #F3EFE8; }
:root[data-ambiance="jour"] .hub__ico { color: var(--or-texte); }
:root[data-ambiance="jour"] .hub__txt b { color: var(--encre); }
:root[data-ambiance="jour"] .hub__txt small { color: var(--gris); }
:root[data-ambiance="jour"] .hub__legende { color: var(--gris); }
:root[data-ambiance="jour"] .imx-points li { color: var(--gris); }
:root[data-ambiance="jour"] .imx-points svg { color: var(--or-texte); }
:root[data-ambiance="jour"] .bandeau-comparer__carte { border: 1px solid rgba(27,25,21,0.172); box-shadow: inset 0 1px 0 rgba(27,25,21,0.128), 0 40px 90px -40px var(--pierre); }
:root[data-ambiance="jour"] .bandeau-comparer__texte h2 { color: var(--encre); }
:root[data-ambiance="jour"] .bandeau-comparer__texte h2 .fort { color: var(--or-texte); }
:root[data-ambiance="jour"] .bandeau-comparer__texte p { color: var(--gris); }
:root[data-ambiance="jour"] .bandeau-comparer__modeles li { border: 1px solid rgba(27,25,21,0.15); color: var(--encre); }
:root[data-ambiance="jour"] .fiche-sommaire { border-bottom: 1px solid var(--pierre); }
:root[data-ambiance="jour"] .fiche-sommaire__liens a:hover { background: rgba(255,255,255,0.2); }
:root[data-ambiance="jour"] .section--noir .form-flux, :root[data-ambiance="jour"] .contact-sec .form-flux { background: rgba(27,25,21,0.068); color: var(--encre); }


/* ==========================================================================
   v3.13.6 · Accueil, version jour (body:root[data-ambiance="jour"])
   Réglage « Accueil en version jour », aperçu ?ambiance=jour.
   Les sections noires deviennent claires (blanc, ivoire, sable), l'or passe en or texte (contraste AA),
   la carte Hotline prend un bronze chaud. Le header et le footer restent sombres (repères de marque).
   ========================================================================== */
:root { --sable: #EFE8DC; }

/* Hero : voile ivoire sur la vidéo, texte encre. */
:root[data-ambiance="jour"] .hero { background: var(--ivoire); color: var(--encre); }
:root[data-ambiance="jour"] .hero-media { background: var(--ivoire); }
:root[data-ambiance="jour"] .hero-media video, :root[data-ambiance="jour"] .hero-media img { filter: saturate(.85) brightness(1.08); }
:root[data-ambiance="jour"] .hero-media::after { background:
  linear-gradient(90deg, rgba(246,242,234,.97) 0%, rgba(246,242,234,.93) 34%, rgba(246,242,234,.62) 60%, rgba(246,242,234,.38) 100%),
  linear-gradient(0deg, rgba(246,242,234,.9) 0%, rgba(246,242,234,0) 30%),
  radial-gradient(120% 90% at 80% 20%, rgba(181,144,79,.12), transparent 60%); }
:root[data-ambiance="jour"] .hero h1 { color: var(--encre); }
:root[data-ambiance="jour"] .hero h1 .fort { color: var(--or-texte); }
:root[data-ambiance="jour"] .hero .chapo { color: var(--gris); }
:root[data-ambiance="jour"] .hero .pill { color: var(--or-texte); background: rgba(255,255,255,.75); border-color: #D9C49A; }
:root[data-ambiance="jour"] .hero .pill::before { background: var(--or-texte); box-shadow: 0 0 0 4px rgba(122,91,38,.12); }
:root[data-ambiance="jour"] .hero .btn--ligne { border-color: var(--encre); color: var(--encre); }
:root[data-ambiance="jour"] .hero .btn--ligne:hover { background: var(--encre); color: var(--blanc); }
:root[data-ambiance="jour"] .hero-preuves li { border-left-color: rgba(27,25,21,.16); }
:root[data-ambiance="jour"] .hero-preuves b { color: var(--encre); }
:root[data-ambiance="jour"] .hero-preuves li > span { color: var(--gris); }
:root[data-ambiance="jour"] .vitrine-hero { background: rgba(255,255,255,.72); border-color: var(--pierre); box-shadow: 0 30px 70px -40px rgba(27,25,21,.35); }
:root[data-ambiance="jour"] .vitrine-hero__titre, :root[data-ambiance="jour"] .vitrine-hero__tag, :root[data-ambiance="jour"] .vitrine-hero__cta { color: var(--or-texte); }
:root[data-ambiance="jour"] .vitrine-hero__lien { color: var(--encre); }
:root[data-ambiance="jour"] .vitrine-hero__texte { color: var(--gris); }
:root[data-ambiance="jour"] .vitrine-hero__img { background: #F3EFE8; }
:root[data-ambiance="jour"] .vitrine-hero__point i { background: rgba(27,25,21,.14); }
:root[data-ambiance="jour"] .vitrine-hero__point i::after { background: var(--or-texte); }
:root[data-ambiance="jour"] .vitrine-hero__fleche { border-color: rgba(27,25,21,.25); color: var(--encre); }
:root[data-ambiance="jour"] .vitrine-hero__fleche:hover { color: #fff; }
:root[data-ambiance="jour"] .hero-pause { background: rgba(255,255,255,.7); border-color: rgba(27,25,21,.2); color: var(--encre); }
:root[data-ambiance="jour"] .defiler { color: var(--gris); }
:root[data-ambiance="jour"] .defiler i { background: rgba(27,25,21,.2); }

/* Bandeau des marques : blanc, logos en gris foncé. */
:root[data-ambiance="jour"] .bmarques { background: var(--blanc); color: var(--encre); border-top: 0; border-bottom: 1px solid var(--pierre); }
:root[data-ambiance="jour"] .bmarques__titre { color: var(--gris); }
:root[data-ambiance="jour"] .bmarques__liste a { color: var(--encre); opacity: .72; }
:root[data-ambiance="jour"] .bmarques__liste a:hover, :root[data-ambiance="jour"] .bmarques__liste a:focus-visible { color: var(--or-texte); opacity: 1; }
:root[data-ambiance="jour"] .bmarques__liste img { filter: brightness(0); opacity: .78; }

/* Tuiles « Nos solutions » : légende sur voile blanc au lieu du bandeau noir. */
:root[data-ambiance="jour"] .tuile { background: var(--ivoire); color: var(--encre); border: 1px solid var(--pierre); }
:root[data-ambiance="jour"] .tuile::after, :root[data-ambiance="jour"] .tuile--blanc::after { background: linear-gradient(0deg, rgba(255,255,255,.97) 0%, rgba(255,255,255,.9) 24%, rgba(255,255,255,.35) 44%, rgba(255,255,255,0) 58%); }
:root[data-ambiance="jour"] .tuile h3 { color: var(--encre); }
:root[data-ambiance="jour"] .tuile p { color: var(--gris); }
:root[data-ambiance="jour"] .tuile .rond { border-color: rgba(27,25,21,.3); color: var(--encre); }
:root[data-ambiance="jour"] .tuile:hover .rond { color: #fff; }

/* Sections noires de l'accueil : fonds clairs. */
:root[data-ambiance="jour"] .section--noir { background: var(--blanc); color: var(--encre); }
:root[data-ambiance="jour"] .section--noir:not(.metiers-sec) { background: var(--sable); }
:root[data-ambiance="jour"] .section--noir h2, :root[data-ambiance="jour"] .section--noir h3 { color: var(--encre); }
:root[data-ambiance="jour"] .section--noir .fort, :root[data-ambiance="jour"] .section--noir .titre-sec h2 .fort { color: var(--or-texte); }
:root[data-ambiance="jour"] .section--noir .titre-sec p, :root[data-ambiance="jour"] .section--noir p, :root[data-ambiance="jour"] .section--noir li { color: var(--gris); }
:root[data-ambiance="jour"] .section--noir .pill:not(.pill--clair) { color: var(--or-texte); background: var(--blanc); border-color: #D9C49A; }
:root[data-ambiance="jour"] .section--noir .pill:not(.pill--clair)::before { background: var(--or-texte); box-shadow: 0 0 0 4px rgba(122,91,38,.12); }
:root[data-ambiance="jour"] :is(.section--noir, .boutique-sec, .contact) :is(p, li, dd, label, span) a:not(.btn):not([class*="btn"]):not(.lien) { color: var(--encre); text-decoration-color: rgba(27,25,21,.4); }
:root[data-ambiance="jour"] :is(.section--noir, .boutique-sec, .contact) a.lien { color: var(--encre); border-bottom-color: rgba(27,25,21,.4); }
:root[data-ambiance="jour"] .section--noir .btn--ligne { border-color: var(--encre); color: var(--encre); }
:root[data-ambiance="jour"] .section--noir .btn--ligne:hover { background: var(--encre); color: var(--blanc); }

/* Métiers : cartes blanches sur fond blanc, filet pierre. */
:root[data-ambiance="jour"] .metiers-sec .metier { background: var(--ivoire); color: var(--encre); border: 1px solid var(--pierre); }
:root[data-ambiance="jour"] .metiers-sec .metier .img { background: var(--blanc); }
:root[data-ambiance="jour"] .metiers-sec .metier:hover { box-shadow: 0 30px 60px -30px rgba(27,25,21,.3); border-color: #D9C49A; }

/* Showroom (journée à Monaco) : fond sable, vignettes sur ivoire. */
:root[data-ambiance="jour"] .section--noir .defile__item { background: var(--ivoire); }
:root[data-ambiance="jour"] .section--noir .defile__pause { background: rgba(255,255,255,.8); color: var(--encre); border-color: rgba(27,25,21,.2); }

/* Hotline : bronze chaud au lieu du noir. */
:root[data-ambiance="jour"] .carte--hotline { background: linear-gradient(155deg, #8C6A2E 0%, #6F5322 100%); color: #fff; }
:root[data-ambiance="jour"] .carte--hotline h3, :root[data-ambiance="jour"] .carte--hotline a { color: #fff; }
:root[data-ambiance="jour"] .carte--hotline p, :root[data-ambiance="jour"] .carte--hotline .horaires { color: rgba(255,255,255,.86); }
:root[data-ambiance="jour"] .carte--hotline .ico { background: rgba(255,255,255,.12); color: #fff; box-shadow: inset 0 0 0 1px rgba(255,255,255,.35); }
:root[data-ambiance="jour"] .carte--hotline::before { background: radial-gradient(closest-side, rgba(255,255,255,.18), rgba(255,255,255,0)); }

/* Boutique : cartes blanches. */
:root[data-ambiance="jour"] .boutique-sec .produit { background: var(--blanc); border-color: var(--pierre); }
:root[data-ambiance="jour"] .boutique-sec .produit b { color: var(--encre); }
:root[data-ambiance="jour"] .boutique-sec .p-img { background: #F3EFE8; }
:root[data-ambiance="jour"] .boutique-sec :is(input, .champ input) { background: var(--blanc); color: var(--encre); border-color: var(--pierre); }

/* Contact : photo sous voile ivoire, formulaire blanc. */
:root[data-ambiance="jour"] .contact-sec { background: var(--ivoire); border-color: var(--pierre); }
:root[data-ambiance="jour"] .contact-fond { background: var(--ivoire); }
:root[data-ambiance="jour"] .contact-fond img { filter: grayscale(.2) brightness(1.05); }
:root[data-ambiance="jour"] .contact-fond::after { background: linear-gradient(90deg, rgba(246,242,234,.96) 0%, rgba(246,242,234,.86) 42%, rgba(246,242,234,.8) 62%, rgba(246,242,234,.92) 100%); }
:root[data-ambiance="jour"] .contact-sec .form { background: rgba(255,255,255,.9); border-color: var(--pierre); box-shadow: 0 40px 80px -50px rgba(27,25,21,.35); }
:root[data-ambiance="jour"] .contact-sec .champ label, :root[data-ambiance="jour"] .contact-sec .consent { color: var(--gris); }
:root[data-ambiance="jour"] .contact-sec :is(.champ input, .champ select, .champ textarea) { background: var(--blanc); color: var(--encre); border-color: #D8CFBF; }
:root[data-ambiance="jour"] .contact-sec .champ select option { color: var(--encre); background: #fff; }
@media (max-width: 1024px) {
  :root[data-ambiance="jour"] .contact-fond::after { background: linear-gradient(180deg, rgba(246,242,234,.92) 0%, rgba(246,242,234,.86) 40%, rgba(246,242,234,.95) 100%); }
}
/* Version jour : retouches après relecture visuelle. */
:root[data-ambiance="jour"] .tuile--blanc { background: var(--blanc); }
:root[data-ambiance="jour"] .metiers-sec .metier .num, :root[data-ambiance="jour"] .metiers-sec .metier .fleche { color: var(--or-texte); }
:root[data-ambiance="jour"] .boutique-sec .p-cat { color: var(--or-texte); }
:root[data-ambiance="jour"] .boutique-sec .alerte label { color: var(--encre); }
:root[data-ambiance="jour"] .boutique-sec .alerte-champ--sombre { background: var(--blanc); border-color: var(--pierre); color: var(--encre); }
:root[data-ambiance="jour"] .boutique-sec .alerte-champ--sombre input::placeholder { color: #8A8378; }
:root[data-ambiance="jour"] .boutique-sec .alerte-mention { color: var(--gris); }
:root[data-ambiance="jour"] .contact .tel { color: var(--encre); }
:root[data-ambiance="jour"] .contact .tel:hover { color: var(--or-texte); }
:root[data-ambiance="jour"] .contact .info { color: var(--gris); }
:root[data-ambiance="jour"] .contact-fond::after { background: linear-gradient(90deg, rgba(246,242,234,.97) 0%, rgba(246,242,234,.9) 45%, rgba(246,242,234,.84) 62%, rgba(246,242,234,.93) 100%); }
:root[data-ambiance="jour"] .tuile::after, :root[data-ambiance="jour"] .tuile--blanc::after { background: linear-gradient(0deg, rgba(255,255,255,.97) 0%, rgba(255,255,255,.92) 32%, rgba(255,255,255,.45) 50%, rgba(255,255,255,0) 64%); }
@media (max-width: 860px) {
  :root[data-ambiance="jour"] .tuile::after, :root[data-ambiance="jour"] .tuile--blanc::after { background: linear-gradient(0deg, rgba(255,255,255,.97) 0%, rgba(255,255,255,.93) 46%, rgba(255,255,255,.4) 64%, rgba(255,255,255,0) 78%); }
}
/* Version jour, tuiles sans dégradé : photo en haut, légende sur une bande blanche en dessous (v3.13.7). */
:root[data-ambiance="jour"] .tuile { flex-direction: column; align-items: stretch; background: var(--blanc); }
:root[data-ambiance="jour"] .tuile::after, :root[data-ambiance="jour"] .tuile--blanc::after { content: none; }
:root[data-ambiance="jour"] .tuile > img { position: relative; inset: auto; z-index: 0; flex: 1 1 auto; min-height: 0; height: 0; width: 100%; }
:root[data-ambiance="jour"] .tuile--blanc > img { padding: 24px 24px 8px; }
:root[data-ambiance="jour"] .tuile .txt { flex: none; background: var(--blanc); border-top: 1px solid var(--pierre); padding: 22px 28px 24px; position: relative; z-index: 1; }
@media (max-width: 860px) { :root[data-ambiance="jour"] .tuile .txt { padding: 18px 22px 20px; } }
:root[data-ambiance="jour"] .tuile { min-height: 390px; }
@media (max-width: 860px) { :root[data-ambiance="jour"] .tuile { min-height: 0; } :root[data-ambiance="jour"] .tuile > img { flex: none; height: 200px; } }
/* v3.13.8 · Tuiles « Nos solutions » sans dégradé, aussi en version nuit : photo en haut, légende sur une bande sombre en dessous. */
.tuile { flex-direction: column; align-items: stretch; min-height: 390px; }
.tuile::after, .tuile--blanc::after { content: none; }
.tuile > img { position: relative; inset: auto; z-index: 0; flex: 1 1 auto; min-height: 0; height: 0; width: 100%; }
.tuile--blanc > img { padding: 24px 24px 8px; }
.tuile .txt { flex: none; background: var(--noir-2); border-top: 1px solid rgba(255,255,255,.08); padding: 22px 28px 24px; position: relative; z-index: 1; }
.tuile--blanc { border: 1px solid var(--pierre); }
@media (max-width: 860px) { .tuile { min-height: 0; } .tuile > img { flex: none; height: 200px; } .tuile .txt { padding: 18px 22px 20px; } }
/* La version jour garde sa bande blanche. */
:root[data-ambiance="jour"] .tuile .txt { background: var(--blanc); border-top-color: var(--pierre); }

/* ==========================================================================
   v3.14.0 · Bouton jour / nuit, logos, retouches de la version jour
   ========================================================================== */
.logo-jour { display: none !important; }
:root[data-ambiance="jour"] .logo-nuit { display: none !important; }
:root[data-ambiance="jour"] .logo-jour { display: block !important; }
.btn-ambiance { position: relative; }
.btn-ambiance span { display: inline-flex; }
.btn-ambiance__lune { display: none !important; }
:root[data-ambiance="jour"] .btn-ambiance__soleil { display: none !important; }
:root[data-ambiance="jour"] .btn-ambiance__lune { display: inline-flex !important; }
.btn-ambiance:hover svg { transform: rotate(-18deg); }
.btn-ambiance svg { transition: transform .5s var(--ease); }
html.ambiance-bascule, html.ambiance-bascule *, html.ambiance-bascule *::before, html.ambiance-bascule *::after { transition: background-color .35s ease, color .35s ease, border-color .35s ease, fill .35s ease !important; }
@media (prefers-reduced-motion: reduce) { html.ambiance-bascule * { transition: none !important; } }

/* Version jour : badge « Exclusivité Euromax » en bronze, lisible sur les photos claires. */
:root[data-ambiance="jour"] .badge-exclusif { background: var(--or-bouton); color: #fff; }
:root[data-ambiance="jour"] .badge-exclusif svg { color: #F3E3BF; }
/* Légendes posées sur les photos : pastille claire, texte encre. */
:root[data-ambiance="jour"] .defile__item figcaption { color: var(--encre); }
/* Pages immersives : grand titre dégradé encre vers or (le dégradé blanc disparaissait sur fond clair). */
:root[data-ambiance="jour"] .imx-hero__titre { background: linear-gradient(180deg, var(--encre) 35%, var(--or-texte) 120%); -webkit-background-clip: text; background-clip: text; color: transparent; }
/* Pied de page : sable, pour le détacher des sections ivoire qui le précèdent. */
:root[data-ambiance="jour"] .footer { background: var(--sable); }
/* Logos des marques (fichiers blancs, pensés pour la version nuit) : en version jour, ils passent en noir. */
:root[data-ambiance="jour"] img.logo-marque { filter: brightness(0); opacity: .82; }
:root[data-ambiance="jour"] .scene__marque img { filter: brightness(0); opacity: .82; }
/* Showroom (accueil) : voile ivoire plus dense pour que le texte reste lisible sur la photo de Monaco. */
:root[data-ambiance="jour"] .immersion-cadre::after { background: linear-gradient(90deg, rgba(246,242,234,.95) 0%, rgba(246,242,234,.86) 42%, rgba(246,242,234,.25) 100%); }
/* v3.14.0 · Mobile : le bouton jour/nuit ajoute une icône au header, on resserre pour que tout tienne (390 px). */
@media (max-width: 480px) {
  .header .wrap { gap: 12px; }
  .header-actions { gap: 6px; }
  .header-actions .icon-btn { width: 40px; height: 40px; }
  .logo img { height: 34px; }
}
@media (max-width: 360px) { .header-actions .icon-btn { width: 36px; height: 36px; } .header-actions { gap: 4px; } .logo img { height: 30px; } }

/* ==========================================================================
   v3.15.0 · Retours Euromax du 9 novembre
   Menu (ADF, Chariots dans Scanners, aperçus Exocad et Équipement labo, logos),
   pages clés de la barre haute, résultats de recherche, menu mobile refait.
   Les deux ambiances sont écrites à la main ici (ne pas régénérer ce bloc).
   ========================================================================== */

/* Barre haute : pages clés plus visibles */
.topbar .wrap { min-height: 50px; }
.topbar .liens-top { display: flex; align-items: center; gap: 8px; }
.topbar a.lien-cle { display: inline-flex; align-items: center; gap: 8px; min-height: 36px; padding: 0 15px; border-radius: 999px; font-size: 14px; font-weight: 600; color: #F0E9DC; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.14); transition: background .25s, color .25s, border-color .25s; }
.topbar a.lien-cle svg { width: 16px; height: 16px; color: var(--or-clair); transition: color .25s; }
.topbar a.lien-cle:hover, .topbar a.lien-cle[aria-current="page"] { background: var(--or-bouton); border-color: var(--or-bouton); color: #fff; }
.topbar a.lien-cle:hover svg, .topbar a.lien-cle[aria-current="page"] svg { color: #fff; }
@media (max-width: 1380px) { .topbar a.lien-cle { padding: 0 11px; font-size: 13.5px; } .topbar .droite > span { display: none; } }

/* Onglet temporaire du salon */
.nav-btn.nav-adf { color: var(--or-clair); font-weight: 700; border: 1px solid rgba(216,188,134,.45); gap: 8px; }
.nav-btn.nav-adf:hover, .nav-btn.nav-adf[aria-current="page"] { background: var(--or-bouton); border-color: var(--or-bouton); color: #fff; }
.nav-adf__point { width: 7px; height: 7px; border-radius: 50%; background: currentColor; box-shadow: 0 0 0 0 rgba(216,188,134,.6); animation: adfPoint 2.2s var(--ease) infinite; }
@keyframes adfPoint { 0% { box-shadow: 0 0 0 0 rgba(216,188,134,.55); } 70% { box-shadow: 0 0 0 8px rgba(216,188,134,0); } 100% { box-shadow: 0 0 0 0 rgba(216,188,134,0); } }
:root[data-ambiance="jour"] .nav-btn.nav-adf { color: var(--or-texte); border-color: rgba(122,91,38,.4); }
:root[data-ambiance="jour"] .nav-btn.nav-adf:hover, :root[data-ambiance="jour"] .nav-btn.nav-adf[aria-current="page"] { color: #fff; background: var(--or-bouton); }

/* Logos du méga menu, plus grands */
.mega-marques { gap: 16px; }
.mega-marque { height: 24px; opacity: .8; }
.mega-marque--vhf { height: 20px; } .mega-marque--opera-system, .mega-marque--up3d { height: 22px; } .mega-marque--exocad { height: 19px; } .mega-marque--kuraray-noritake { height: 18px; }

/* Scanners : 4 colonnes avec Chariots */
.header .mega.mega--4col .wrap { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.mega--4col .mega-une { display: none; }
.mega--4col .mega-col:nth-child(3) { border-right: 1px solid var(--pierre); }
/* v3.17.1 : la 4e colonne garde la même largeur utile que les autres (photo, titre et liste alignés). */
.mega--4col .mega-col:nth-child(4) { border-right: 0; }

/* Aperçus Exocad et Équipement labo */
.header .mega.mega--apercu .wrap { grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 48px; align-items: center; }
.mega-apercu__visuel { display: block; aspect-ratio: 16 / 9; border-radius: 16px; overflow: hidden; background: #F3F1EC; }
.mega-apercu__visuel img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--ease); }
.mega-apercu__visuel:hover img { transform: scale(1.03); }
.mega-apercu__logo { display: block; height: 30px; width: auto; margin-bottom: 18px; filter: brightness(0) !important; opacity: .85 !important; }
.mega-apercu__titre { font-size: 24px; line-height: 1.2; font-weight: 700; font-stretch: 110%; letter-spacing: -.01em; color: var(--encre); margin: 0 0 10px; }
.mega-apercu__txt > p { color: var(--gris); font-size: 15.5px; margin: 0 0 16px; }
.mega-apercu__liste { list-style: none; margin: 0 0 22px; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 10px 20px; }
.mega-apercu__liste li { display: flex; gap: 8px; align-items: flex-start; font-size: 14.5px; color: var(--encre); }
.mega-apercu__liste svg { width: 16px; height: 16px; flex: none; margin-top: 3px; color: var(--or-texte); }
.mega-apercu__ctas { display: flex; flex-wrap: wrap; gap: 12px; }
.mega .mega-apercu__ctas .btn--contour { color: var(--encre); border-color: rgba(27,25,21,.3); background: transparent; }
.mega .mega-apercu__ctas .btn--contour:hover { background: var(--encre); color: #fff; }
.mega-apercu__produits { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.mega-apercu__carte { display: flex; flex-direction: column; gap: 8px; text-decoration: none; color: var(--encre); }
.mega-apercu__img { display: block; aspect-ratio: 4 / 3; border-radius: 12px; overflow: hidden; background: #F3F1EC; }
.mega-apercu__img img { width: 100%; height: 100%; object-fit: contain; padding: 10px; transition: transform .8s var(--ease); }
.mega-apercu__carte:hover .mega-apercu__img img { transform: scale(1.04); }
.mega-apercu__nom { display: flex; align-items: center; gap: 8px; font-size: 16.5px; font-weight: 700; }
.mega-apercu__nom svg { width: 16px; height: 16px; color: var(--or-texte); transition: transform .3s var(--ease); }
.mega-apercu__carte:hover .mega-apercu__nom svg { transform: translateX(4px); }
.mega-apercu__acc { font-size: 14px; color: var(--gris); line-height: 1.5; }
.mega-apercu__marques { font-size: 13px !important; letter-spacing: .04em; color: var(--or-texte) !important; font-weight: 600; }

/* Résultats de recherche : le terme cherché et les résultats d'abord */
.recherche-resultats { background: var(--noir); color: var(--blanc); padding: 56px 0 36px; }
.recherche-resultats__titre { font-size: clamp(28px, 3.6vw, 44px); line-height: 1.15; margin: 0 0 22px; font-weight: 600; color: var(--blanc); }
.recherche-resultats__titre .fort { color: var(--or-clair); }
.recherche-resultats__form { display: flex; align-items: center; gap: 10px; max-width: 680px; background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.16); border-radius: 999px; padding: 6px 6px 6px 18px; }
.recherche-resultats__form > svg { width: 18px; height: 18px; flex: none; color: var(--or-clair); }
.recherche-resultats__form input[type="search"] { flex: 1; min-width: 0; background: transparent; border: 0; color: inherit; font: inherit; font-size: 16px; padding: 10px 4px; outline: none; }
.recherche-resultats__form .btn { min-height: 44px; }
.catalogue.catalogue--recherche { padding-top: 40px; }
:root[data-ambiance="jour"] .recherche-resultats { background: var(--ivoire); color: var(--encre); }
:root[data-ambiance="jour"] .recherche-resultats__titre { color: var(--encre); }
:root[data-ambiance="jour"] .recherche-resultats__titre .fort { color: var(--or-texte); }
:root[data-ambiance="jour"] .recherche-resultats__form { background: var(--blanc); border-color: var(--pierre); }
:root[data-ambiance="jour"] .recherche-resultats__form > svg { color: var(--or-texte); }
@media (max-width: 600px) { .recherche-resultats { padding-bottom: 24px; } .recherche-resultats__form .btn { padding: 0 16px; } }

/* Menu mobile refait : plus visuel */
.mobile-menu { width: min(94vw, 430px); padding: 0 20px 36px; }
.mobile-menu .mm-tete { position: sticky; top: 0; z-index: 2; display: flex; justify-content: space-between; align-items: center; margin: 0 -20px 14px; padding: 14px 20px; background: var(--noir); border-bottom: 1px solid rgba(255,255,255,.08); }
.mobile-menu .mm-logo img { height: 30px; width: auto; display: block; }
.mobile-menu .mobile-close { position: static; }
.mm-recherche { display: flex; align-items: center; gap: 10px; height: 50px; padding: 0 16px; border-radius: 999px; background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.12); }
.mm-recherche svg { width: 18px; height: 18px; flex: none; color: var(--or-clair); }
.mm-recherche input { flex: 1; min-width: 0; background: transparent; border: 0; color: inherit; font: inherit; font-size: 16px; outline: none; }
.mm-recherche:focus-within { border-color: var(--or-clair); }
.mobile-menu a.mm-salon { display: flex; align-items: center; gap: 12px; margin-top: 14px; padding: 12px 14px; border-radius: 14px; background: var(--or-bouton); color: #fff; text-decoration: none; }
.mm-salon__badge { flex: none; padding: 5px 10px; border-radius: 999px; background: rgba(255,255,255,.2); font-size: 13px; font-weight: 700; }
.mm-salon__txt { flex: 1; display: flex; flex-direction: column; line-height: 1.3; }
.mm-salon__txt b { font-size: 15px; } .mm-salon__txt span { font-size: 13px; opacity: .9; }
.mm-salon svg { width: 18px; height: 18px; flex: none; }
.mm-titre { margin: 26px 0 8px; font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--or-clair); }
.mobile-menu .mm-familles details, .mobile-menu .mm-famille { border-bottom: 1px solid rgba(255,255,255,.09); }
.mobile-menu .mm-famille summary, .mobile-menu a.mm-famille--lien { display: flex; align-items: center; gap: 14px; padding: 9px 0; min-height: 70px; font-size: 18px; font-weight: 600; color: inherit; text-decoration: none; }
.mm-famille__img { flex: none; width: 56px; height: 56px; border-radius: 12px; overflow: hidden; background: #F3F1EC; }
.mm-famille__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.mm-famille__nom { flex: 1; }
.mobile-menu .mm-famille summary > svg, .mobile-menu a.mm-famille--lien > svg { width: 18px; height: 18px; flex: none; opacity: .7; }
.mobile-menu .mm-sous { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; padding: 2px 0 10px; }
.mobile-menu .mm-sous a.mm-sous__carte { display: flex; flex-direction: column; gap: 8px; padding: 8px 8px 10px; min-height: 0; border-radius: 12px; background: rgba(255,255,255,.06); color: inherit; font-size: 14.5px; font-weight: 600; line-height: 1.3; text-decoration: none; }
.mm-sous__img { display: block; aspect-ratio: 4 / 3; border-radius: 8px; overflow: hidden; background: #F3F1EC; }
.mm-sous__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.mobile-menu .mm-liens { display: flex; flex-direction: column; padding: 0 0 12px; }
.mobile-menu .mm-liens a { display: flex; align-items: center; gap: 10px; min-height: 44px; padding: 8px 0; color: #CFC6B5; font-size: 15px; text-decoration: none; }
.mobile-menu .mm-liens a svg { width: 16px; height: 16px; flex: none; color: var(--or-clair); }
.mobile-menu .mm-liens a.mm-tout { color: var(--or-clair); font-weight: 700; }
.mm-cles { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.mobile-menu a.mm-cle { display: flex; flex-direction: column; gap: 3px; padding: 16px 14px; border-radius: 14px; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.1); color: inherit; text-decoration: none; }
.mm-cle__ico { width: 40px; height: 40px; margin-bottom: 8px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: var(--or-bouton); color: #fff; }
.mm-cle__ico svg { width: 20px; height: 20px; }
.mm-cle b { font-size: 15.5px; line-height: 1.25; } .mm-cle > span:last-child { font-size: 13px; color: #CFC6B5; line-height: 1.35; }
.mobile-menu details.mm-plus { margin-top: 14px; border-top: 1px solid rgba(255,255,255,.09); }
.mobile-menu details.mm-plus summary { font-size: 17px; font-weight: 600; padding: 14px 0; }
.mm-metiers { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.mobile-menu a.mm-metier { position: relative; display: block; aspect-ratio: 3 / 4; border-radius: 12px; overflow: hidden; text-decoration: none; }
.mm-metier img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.mm-metier span { position: absolute; left: 0; right: 0; bottom: 0; padding: 8px; background: rgba(14,13,11,.74); color: #fff; font-size: 12.5px; font-weight: 600; line-height: 1.25; }
.mobile-menu a.mm-ligne { display: flex; justify-content: space-between; align-items: center; margin-top: 20px; padding: 16px 0; border-top: 1px solid rgba(255,255,255,.09); border-bottom: 1px solid rgba(255,255,255,.09); font-size: 17px; font-weight: 600; color: inherit; text-decoration: none; }
.mobile-menu a.mm-ligne svg { width: 16px; height: 16px; }
.mm-contact { margin-top: 22px; display: flex; flex-direction: column; gap: 12px; }
.mobile-menu .mm-contact .btn { margin-top: 0; width: 100%; }
.mobile-menu a.mm-tel { display: flex; align-items: center; gap: 12px; padding: 14px 16px; border-radius: 14px; border: 1px solid rgba(255,255,255,.14); color: inherit; text-decoration: none; }
.mm-tel > svg { width: 20px; height: 20px; flex: none; color: var(--or-clair); }
.mm-tel b { display: block; font-size: 17px; } .mm-tel small { display: block; font-size: 12.5px; color: #CFC6B5; line-height: 1.35; }
.mm-ambiance { display: flex; justify-content: space-between; align-items: center; font-size: 14px; color: #CFC6B5; }
/* Version jour */
:root[data-ambiance="jour"] .mobile-menu .mm-tete { background: var(--ivoire); border-bottom-color: rgba(27,25,21,.1); }
:root[data-ambiance="jour"] .mm-recherche { background: var(--blanc); border-color: var(--pierre); }
:root[data-ambiance="jour"] .mm-recherche svg, :root[data-ambiance="jour"] .mm-titre, :root[data-ambiance="jour"] .mobile-menu .mm-liens a svg, :root[data-ambiance="jour"] .mobile-menu .mm-liens a.mm-tout, :root[data-ambiance="jour"] .mm-tel > svg { color: var(--or-texte); }
:root[data-ambiance="jour"] .mobile-menu .mm-familles details, :root[data-ambiance="jour"] .mobile-menu .mm-famille, :root[data-ambiance="jour"] .mobile-menu details.mm-plus, :root[data-ambiance="jour"] .mobile-menu a.mm-ligne { border-color: rgba(27,25,21,.12); }
:root[data-ambiance="jour"] .mobile-menu .mm-sous a.mm-sous__carte { background: var(--blanc); color: var(--encre); }
:root[data-ambiance="jour"] .mobile-menu .mm-liens a { color: var(--gris); }
:root[data-ambiance="jour"] .mobile-menu a.mm-cle { background: var(--blanc); border-color: var(--pierre); color: var(--encre); }
:root[data-ambiance="jour"] .mm-cle > span:last-child, :root[data-ambiance="jour"] .mm-tel small, :root[data-ambiance="jour"] .mm-ambiance { color: var(--gris); }
:root[data-ambiance="jour"] .mobile-menu a.mm-tel { border-color: var(--pierre); background: var(--blanc); color: var(--encre); }
:root[data-ambiance="jour"] .mobile-menu summary, :root[data-ambiance="jour"] .mobile-menu a.mm-famille--lien, :root[data-ambiance="jour"] .mobile-menu a.mm-ligne { color: var(--encre); }
@media (max-width: 1180px) { .topbar .gauche.liens-top { display: none; } }
.mega .mega-apercu__titre { font-size: 24px; }
.mega-photo.contain img { object-fit: contain; padding: 10px; background: #fff; }
.recherche-resultats__form input[type="search"] { flex: 1 1 auto; width: auto; }
.recherche-resultats__form .btn { width: auto; flex: none; }

/* v3.15.0 · Formulaire : choix visibles en pastilles (au lieu de listes déroulantes) */
fieldset.champ.choix { border: 0; margin: 0; padding: 0; min-width: 0; }
.champ.choix legend { padding: 0; margin-bottom: 10px; font-size: 13.5px; font-weight: 500; color: #CFC6B5; }
.choix__aide { font-weight: 400; opacity: .8; }
.choix__liste { display: flex; flex-wrap: wrap; gap: 8px; }
.champ.choix label.choix__item { position: relative; display: inline-flex; cursor: pointer; font-size: 14.5px; }
.champ.choix .choix__item input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; padding: 0; opacity: 0; cursor: pointer; border: 0; background: none; }
.choix__item > span { display: inline-flex; align-items: center; min-height: 44px; padding: 8px 16px; border-radius: 999px; border: 1px solid rgba(255,255,255,.22); background: rgba(255,255,255,.05); color: #F0E9DC; font-weight: 600; line-height: 1.25; transition: background .2s, border-color .2s, color .2s; }
.choix__item > span::before { content: ""; width: 14px; height: 14px; margin-right: 9px; border-radius: 50%; border: 1.5px solid currentColor; opacity: .7; flex: none; }
.choix__item:hover > span { border-color: var(--or-clair); }
.choix__item input:checked + span { background: var(--or-bouton); border-color: var(--or-bouton); color: #fff; }
.choix__item input:checked + span::before { background: #fff; border-color: #fff; box-shadow: inset 0 0 0 3px var(--or-bouton); opacity: 1; }
.choix__item input:focus-visible + span { outline: 3px solid var(--or-clair); outline-offset: 2px; }
:root[data-ambiance="jour"] .champ.choix legend { color: var(--gris); }
:root[data-ambiance="jour"] .choix__item > span { border-color: #D8CFBF; background: var(--blanc); color: var(--encre); }
:root[data-ambiance="jour"] .choix__item:hover > span { border-color: var(--or-texte); }
:root[data-ambiance="jour"] .choix__item input:checked + span { background: var(--or-bouton); border-color: var(--or-bouton); color: #fff; }
:root[data-ambiance="jour"] .choix__item input:focus-visible + span { outline-color: var(--or-texte); }
.mm-metier span span { white-space: normal; } .mm-metier span { font-size: 12px; hyphens: auto; }

/* v3.15.1 · Gamme avec visuels (flacons de résine) */
.gamme-liste--visuels li { padding-top: 18px; }
.gamme-visuel { display: flex; align-items: flex-end; justify-content: center; height: 190px; margin: 0 0 10px; border-radius: 12px; background: var(--blanc); padding: 10px 0; }
.gamme-visuel img { max-height: 172px; max-width: 80%; width: auto; height: auto; object-fit: contain; filter: drop-shadow(0 14px 18px rgba(27,25,21,.18)); transition: transform .5s var(--ease); }
.gamme-liste--visuels li:hover .gamme-visuel img { transform: translateY(-4px) scale(1.03); }
@media (max-width: 860px) { .gamme-liste--visuels { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; } .gamme-liste--visuels li { padding: 14px 14px 18px; } .gamme-visuel { height: 140px; } .gamme-visuel img { max-height: 128px; } .gamme-liste--visuels h3 { font-size: 16.5px; } .gamme-liste--visuels p { font-size: 13.5px; } }

/* v3.15.1 · Vue 360° épurée : titre à gauche, la visionneuse et ses flèches à droite */
.t3d--epure .t3d__grille { grid-template-areas: "tete scene" "panneau scene"; grid-template-rows: 1fr auto; }
.t3d--epure .t3d__tete { align-self: center; }
@media (max-width: 1024px) { .t3d--epure .t3d__grille { grid-template-areas: "tete" "scene" "panneau"; grid-template-rows: auto; } }

/* ═══ v3.16.0 · Espace tarifs (page à code) ═══ */
.et { padding-top: clamp(40px, 6vw, 72px); }
.et__tete { max-width: 760px; margin-bottom: 34px; }
.et__tete h1 { font-size: clamp(34px, 5vw, 56px); margin: 14px 0 14px; }
.et__intro { font-size: 17px; line-height: 1.65; color: #CFC6B6; margin: 0; }
.et__code { max-width: 560px; padding: 32px; border-radius: 22px; border: 1px solid rgba(255,255,255,.14); background: rgba(255,255,255,.04); position: relative; }
.et__cadenas { display: inline-flex; width: 48px; height: 48px; align-items: center; justify-content: center; border-radius: 14px; background: rgba(196,154,82,.16); color: var(--or-clair); margin-bottom: 16px; }
.et__cadenas svg { width: 24px; height: 24px; }
.et__code label { display: block; font-weight: 600; margin-bottom: 8px; }
.et__code-ligne { display: flex; gap: 10px; flex-wrap: wrap; }
.et__code-ligne input { flex: 1 1 180px; min-width: 0; min-height: 50px; padding: 0 16px; border-radius: 12px; border: 1.5px solid rgba(255,255,255,.24); background: rgba(0,0,0,.25); color: #fff; font-size: 20px; letter-spacing: .3em; }
.et__code-ligne .btn { flex: 0 0 auto; }
.et__erreur { margin: 12px 0 0; padding: 10px 14px; border-radius: 10px; background: rgba(214,74,56,.14); color: #FFB4A8; font-weight: 600; }
.et__aide { margin: 16px 0 0; font-size: 14.5px; color: #B9B0A1; }
.et__aide a { color: var(--or-clair); }

.et__grille { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 36px; align-items: start; }
.et__etapes { display: grid; gap: 26px; min-width: 0; }
.et__etape { margin: 0; padding: 26px; border-radius: 22px; border: 1px solid rgba(255,255,255,.12); background: rgba(255,255,255,.03); min-width: 0; scroll-margin-top: 120px; }
.et__etape legend { display: flex; align-items: center; gap: 12px; float: left; width: 100%; margin-bottom: 18px; padding: 0; font-family: inherit; font-stretch: 125%; letter-spacing: -.02em; font-size: clamp(19px, 2vw, 23px); font-weight: 500; }
.et__etape legend + * { clear: both; }
.et__num { display: inline-flex; flex: none; width: 34px; height: 34px; align-items: center; justify-content: center; border-radius: 50%; background: var(--or-bouton); color: #fff; font-family: inherit; font-size: 15px; font-weight: 700; }
.et__cartes { display: grid; gap: 14px; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); clear: both; }
.et__cartes--postes, .et__cartes--options { grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); }
.et__carte { position: relative; display: flex; flex-direction: column; gap: 10px; padding: 16px; border-radius: 18px; border: 1.5px solid rgba(255,255,255,.16); background: rgba(255,255,255,.04); cursor: pointer; transition: border-color .25s, background .25s, box-shadow .25s; }
.et__carte input, .et__pastille input, .et__option input { position: absolute; left: 0; top: 0; opacity: 0; width: 1px; height: 1px; }
.et__carte:hover { border-color: var(--or-clair); }
.et__carte:has(input:checked) { border-color: var(--or-bouton); background: rgba(196,154,82,.12); box-shadow: 0 0 0 3px rgba(196,154,82,.18); }
.et__carte:has(input:focus-visible), .et__pastille:has(input:focus-visible), .et__option:has(input:focus-visible) { outline: 3px solid var(--or); outline-offset: 2px; }
.et__visuel { display: flex; align-items: center; justify-content: center; height: 130px; border-radius: 12px; background: radial-gradient(circle at 50% 40%, rgba(255,255,255,.12), rgba(255,255,255,0) 70%); }
.et__cartes--postes .et__visuel, .et__cartes--options .et__visuel { height: 90px; }
.et__visuel img { max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; }
.et__visuel--picto svg { width: 30px; height: 30px; color: var(--or-clair); }
.et__texte { display: flex; flex-direction: column; gap: 4px; }
.et__texte b { font-size: 16px; font-weight: 700; line-height: 1.25; }
.et__texte small { font-size: 13.5px; line-height: 1.4; color: #B9B0A1; }
.et__prix { font-weight: 700; color: var(--or-clair); font-size: 15.5px; white-space: nowrap; }
.et__prix abbr { text-decoration: none; font-size: .85em; }
.et__inclus { display: flex; gap: 6px; align-items: flex-start; margin-top: 4px; font-size: 12.5px; line-height: 1.4; color: #D9CFBE; }
.et__inclus svg { width: 14px; height: 14px; flex: none; margin-top: 2px; color: var(--or-clair); }
.et__coche { position: absolute; top: 12px; right: 12px; display: inline-flex; width: 26px; height: 26px; align-items: center; justify-content: center; border-radius: 50%; border: 1.5px solid rgba(255,255,255,.3); color: transparent; transition: background .2s, color .2s, border-color .2s; }
.et__coche svg { width: 14px; height: 14px; }
.et__carte:has(input:checked) .et__coche { background: var(--or-bouton); border-color: var(--or-bouton); color: #fff; }
.et__pastilles { display: flex; flex-wrap: wrap; gap: 10px; clear: both; }
.et__pastille { position: relative; cursor: pointer; }
.et__pastille > span { display: inline-flex; align-items: center; gap: 8px; min-height: 48px; padding: 8px 20px; border-radius: 999px; border: 1.5px solid rgba(255,255,255,.22); background: rgba(255,255,255,.05); font-weight: 600; transition: background .2s, border-color .2s, color .2s; }
.et__pastille > span::before { content: ""; width: 14px; height: 14px; border-radius: 50%; border: 1.5px solid currentColor; opacity: .7; flex: none; }
.et__pastille > span em { font-style: normal; font-weight: 500; opacity: .85; }
.et__pastille:hover > span { border-color: var(--or-clair); }
.et__pastille input:checked + span { background: var(--or-bouton); border-color: var(--or-bouton); color: #fff; }
.et__pastille input:checked + span::before { background: #fff; box-shadow: inset 0 0 0 3px var(--or-bouton); opacity: 1; }
.et__socle { margin-top: 16px; }
.et__option { position: relative; display: flex; gap: 14px; align-items: flex-start; padding: 16px 18px; border-radius: 16px; border: 1.5px dashed var(--or-clair); background: rgba(196,154,82,.08); cursor: pointer; }
.et__option::before { content: ""; flex: none; width: 20px; height: 20px; margin-top: 2px; border-radius: 6px; border: 1.5px solid var(--or-clair); }
.et__option:has(input:checked)::before { background: var(--or-bouton) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3'%3E%3Cpath d='M5 12l5 5 9-10'/%3E%3C/svg%3E") center/14px no-repeat; border-color: var(--or-bouton); }
.et__option b { display: block; margin-bottom: 3px; }
.et__option small { font-size: 13.5px; color: #B9B0A1; }
.et__champs { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 16px; clear: both; }
.et__champs .champ { margin: 0; display: flex; flex-direction: column; gap: 6px; }
.et__champs .plein { grid-column: 1 / -1; }
.et__champs label { font-weight: 600; font-size: 14.5px; }
.et__champs input:not([type="checkbox"]), .et__champs textarea { width: 100%; min-height: 48px; padding: 10px 14px; border-radius: 12px; border: 1.5px solid rgba(255,255,255,.22); background: rgba(0,0,0,.2); color: inherit; font: inherit; }
.et__champs .rgpd label { font-weight: 400; display: flex; gap: 10px; align-items: flex-start; }
.et__champs .rgpd input { margin-top: 4px; flex: none; width: 18px; height: 18px; }
.et__champs .rgpd a { color: var(--or-clair); }

.et__resume { position: sticky; top: 110px; }
.et__resume-carte { padding: 26px; border-radius: 22px; border: 1px solid rgba(196,154,82,.4); background: linear-gradient(160deg, rgba(196,154,82,.14), rgba(255,255,255,.03)); }
.et__resume h2 { font-size: 22px; margin: 0 0 16px; }
.et__lignes { list-style: none; margin: 0 0 16px; padding: 0; display: grid; gap: 10px; }
.et__lignes li { display: flex; justify-content: space-between; gap: 12px; font-size: 14.5px; line-height: 1.4; padding-bottom: 10px; border-bottom: 1px solid rgba(255,255,255,.1); }
.et__lignes li b { white-space: nowrap; }
.et__lignes .et__ligne--auto span, .et__lignes .et__ligne--auto b { color: #D9CFBE; font-size: 13.5px; }
.et__lignes .et__ligne--remise b { color: #8FD3A0; }
.et__lignes .et__vide { color: #B9B0A1; border: 0; }
.et__total { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; margin: 0; padding-top: 4px; }
.et__total span { font-weight: 600; }
.et__total strong { font-family: inherit; font-stretch: 125%; letter-spacing: -.02em; font-weight: 600; font-size: 32px; color: var(--or-clair); white-space: nowrap; }
.et__mention { font-size: 13px; color: #B9B0A1; margin: 6px 0 18px; }
.et__envoyer { width: 100%; white-space: normal; line-height: 1.3; padding-top: 14px; padding-bottom: 14px; }
.et__sortir { text-align: center; margin: 14px 0 0; font-size: 14px; }
.et__sortir a { color: #B9B0A1; }

@media (max-width: 1024px) {
  .et__grille { grid-template-columns: 1fr; }
  .et__resume { position: static; }
}
@media (max-width: 768px) {
  .et__etape { padding: 20px 16px; }
  .et__champs { grid-template-columns: 1fr; }
  .et__cartes, .et__cartes--postes, .et__cartes--options { grid-template-columns: 1fr 1fr; gap: 10px; }
  .et__visuel { height: 96px; }
  .et__cartes--postes .et__visuel, .et__cartes--options .et__visuel { height: 70px; }
  .et__carte { padding: 12px; }
  .et__code { padding: 22px 18px; }
  .et__code-ligne .btn { width: 100%; }
}
@media (max-width: 380px) { .et__cartes, .et__cartes--postes, .et__cartes--options { grid-template-columns: 1fr; } }

/* Version jour */
:root[data-ambiance="jour"] .et__intro { color: var(--gris); }
:root[data-ambiance="jour"] .et__code, :root[data-ambiance="jour"] .et__etape { background: var(--blanc); border-color: var(--pierre); }
:root[data-ambiance="jour"] .et__cadenas { background: #F4EBDA; color: var(--or-texte); }
:root[data-ambiance="jour"] .et__code-ligne input, :root[data-ambiance="jour"] .et__champs input:not([type="checkbox"]), :root[data-ambiance="jour"] .et__champs textarea { background: #fff; border-color: #D8CDB8; color: var(--encre); }
:root[data-ambiance="jour"] .et__erreur { background: #FDECEC; color: #B42318; }
:root[data-ambiance="jour"] .et__aide, :root[data-ambiance="jour"] .et__texte small, :root[data-ambiance="jour"] .et__option small, :root[data-ambiance="jour"] .et__mention, :root[data-ambiance="jour"] .et__sortir a, :root[data-ambiance="jour"] .et__lignes .et__vide { color: var(--gris); }
:root[data-ambiance="jour"] .et__aide a, :root[data-ambiance="jour"] .et__champs .rgpd a { color: var(--or-texte); }
:root[data-ambiance="jour"] .et__carte { background: #FDFBF7; border-color: #E2D8C5; }
:root[data-ambiance="jour"] .et__carte:has(input:checked) { background: #FBF5EA; box-shadow: 0 0 0 3px rgba(140,106,46,.14); }
:root[data-ambiance="jour"] .et__visuel { background: radial-gradient(circle at 50% 40%, #fff, #F3EEE5 75%); }
:root[data-ambiance="jour"] .et__visuel--picto svg, :root[data-ambiance="jour"] .et__inclus svg { color: var(--or-texte); }
:root[data-ambiance="jour"] .et__prix, :root[data-ambiance="jour"] .et__total strong { color: var(--or-texte); }
:root[data-ambiance="jour"] .et__inclus, :root[data-ambiance="jour"] .et__lignes .et__ligne--auto span, :root[data-ambiance="jour"] .et__lignes .et__ligne--auto b { color: #5E5648; }
:root[data-ambiance="jour"] .et__coche { border-color: #CDBF9F; }
:root[data-ambiance="jour"] .et__pastille > span { background: #fff; border-color: #D8CDB8; color: var(--encre); }
:root[data-ambiance="jour"] .et__pastille input:checked + span { background: var(--or-bouton); border-color: var(--or-bouton); color: #fff; }
:root[data-ambiance="jour"] .et__option { background: #FBF5EA; border-color: var(--or-texte); }
:root[data-ambiance="jour"] .et__option::before { border-color: var(--or-texte); }
:root[data-ambiance="jour"] .et__resume-carte { background: linear-gradient(160deg, #FBF5EA, #fff); border-color: #E4D3B0; }
:root[data-ambiance="jour"] .et__lignes li { border-bottom-color: #EDE5D6; }
:root[data-ambiance="jour"] .et__lignes .et__ligne--remise b { color: #1A7F37; }
.et__champs .rgpd label { flex-direction: row; }
.et__champs .rgpd input[type="checkbox"] { width: 18px !important; height: 18px; min-height: 0; padding: 0; order: -1; }
.et h1 .fort { color: var(--or-clair); }
:root[data-ambiance="jour"] .et h1 .fort { color: var(--or-texte); }
/* v3.16.1 · Espace tarifs : titre sur une seule ligne */
.et__tete { max-width: none; }
.et__tete h1 { font-size: clamp(30px, 4.4vw, 56px); line-height: 1.1; }
.et__tete h1 .fort { display: inline; }
.et__intro { max-width: 760px; }
@media (min-width: 769px) { .et__tete h1 { white-space: nowrap; } }
/* v3.16.1 · Espace tarifs : visuels entiers, jamais rognés */
.et__visuel { padding: 10px; overflow: hidden; }
.et__cartes--postes .et__visuel, .et__cartes--options .et__visuel { height: 150px; }
.et__visuel img { display: block; max-height: 100%; object-fit: contain; }
@media (max-width: 768px) { .et__cartes--postes .et__visuel, .et__cartes--options .et__visuel { height: 110px; } }

/* ═══ v3.16.3 · Version jour ═══
   1. La barre haute reste noire, comme en version nuit, pour être bien visible.
   2. Les sections noires de la version nuit passent en beige plus soutenu (celui du bandeau comparatif) :
      l'alternance des sections reste lisible en version jour. */
:root[data-ambiance="jour"] { --sable-section: #EFE8DC; }
:root[data-ambiance="jour"] :is(.section--noir, .imx-chiffres, .imx-exoplan, .imx-materiaux, .imx-nomade, .imx-recit, .imx-video, .financement, .bmarques, .hub, .page-hero, .article-hero) { background-color: var(--sable-section); }
:root[data-ambiance="jour"] .imx-chiffres { border-color: rgba(122,91,38,.14); }

/* v3.18.0 : flèche visible sur toutes les listes déroulantes des formulaires, en jour comme en nuit
   (les fonds des versions jour et nuit utilisent « background », ce qui effaçait la flèche). */
.champ select, .aide__form select {
  -webkit-appearance: none; appearance: none; padding-right: 48px !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23A88A4F' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important; background-position: right 18px center !important; background-size: 18px 18px !important;
}

/* v3.18.0 : vitrine de l'équipement de laboratoire (grandes photos, noms, une ligne). */
.labo-hero { padding: 40px 0 30px; }
.labo-hero .ariane-barre { margin-bottom: 34px; }
.labo-hero__titre { margin: 18px 0 18px; max-width: 980px; font-size: clamp(38px, 4.6vw, 68px); line-height: 1.04; font-weight: 300; letter-spacing: -.035em; }
.labo-hero__titre .fort { color: var(--or-texte); font-weight: 700; font-stretch: 125%; }
.labo-hero .chapo { color: var(--gris); max-width: 640px; }
.labo-grille { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.labo-carte { display: flex; flex-direction: column; border-radius: 26px; background: var(--blanc); border: 1px solid #EFEAE0; overflow: hidden; transition: transform .5s var(--ease), box-shadow .5s var(--ease); }
.labo-carte:hover { transform: translateY(-4px); box-shadow: 0 24px 50px -30px rgba(27,25,21,.35); }
.labo-carte__visuel { margin: 0; aspect-ratio: 1 / 1; display: grid; place-items: center; padding: 34px; background: radial-gradient(ellipse at 50% 42%, #FFFFFF 0%, #F2EDE3 78%); }
.labo-carte__visuel img { width: 100%; height: 100%; object-fit: contain; transition: transform .8s var(--ease); }
.labo-carte:hover .labo-carte__visuel img { transform: scale(1.04); }
.labo-carte__texte { padding: 22px 26px 26px; display: flex; flex-direction: column; gap: 6px; flex: 1; }
.labo-carte__marque { font-size: 12.5px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--or-texte); }
.labo-carte h3 { margin: 0; font-size: clamp(22px, 2vw, 28px); font-weight: 600; letter-spacing: -.02em; line-height: 1.1; }
.labo-carte p { margin: 0 0 10px; color: var(--gris); font-size: 15.5px; line-height: 1.5; }
.labo-carte .lien-fleche { margin-top: auto; }
.labo-aussi { margin: 30px 0 0; max-width: 860px; color: var(--gris); font-size: 15px; }
.labo-aussi + .labo-aussi { margin-top: 10px; }
.labo-aussi a { color: var(--encre); text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 1024px) { .labo-grille { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .labo-grille { grid-template-columns: minmax(0, 1fr); } .labo-carte__visuel { padding: 26px; } }
.fiche--labo { padding: 0; }

/* v3.18.1 : tableau des packs exocad DentalCAD. */
.packs { margin-top: 36px; border-radius: 22px; border: 1px solid #E8E1D3; background: var(--blanc); overflow: hidden; }
.packs__table { width: 100%; border-collapse: collapse; table-layout: fixed; font-size: 15px; }
.packs__table thead th { padding: 18px 10px; background: var(--ivoire); font-size: 14px; font-weight: 600; text-align: center; color: var(--encre); border-bottom: 1px solid #E8E1D3; }
.packs__table thead th:first-child { width: 40%; text-align: left; padding-left: 26px; }
.packs__table tbody th { padding: 13px 10px 13px 26px; text-align: left; font-weight: 500; color: var(--encre); }
.packs__table td { padding: 13px 8px; text-align: center; }
.packs__table tbody tr + tr :is(th, td) { border-top: 1px solid #F0EBE1; }
.packs__table tbody tr:hover :is(th, td) { background: #FBF8F2; }
.packs__coche { display: inline-grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: var(--or); color: #fff; }
.packs__coche svg { width: 14px; height: 14px; }
.packs__option { color: #9A9184; font-size: 13.5px; }
.packs__note { margin: 16px 0 0; color: var(--gris); font-size: 14px; }
@media (max-width: 768px) {
  .packs__table { font-size: 13px; }
  .packs__table thead th { padding: 12px 4px; font-size: 11.5px; line-height: 1.25; }
  .packs__table thead th:first-child, .packs__table tbody th { width: 36%; padding-left: 14px; }
  .packs__table tbody th { padding-top: 11px; padding-bottom: 11px; font-size: 13px; }
  .packs__table td { padding: 11px 2px; }
  .packs__option { font-size: 11.5px; }
  .packs__coche { width: 22px; height: 22px; } .packs__coche svg { width: 12px; height: 12px; }
}

/* v3.18.4 · Mode léger : ordinateurs anciens ou lents (détection dans le <head> et à la première visite).
   Pas de flou d'arrière-plan (le halo du curseur reste, v3.18.5), les animations décoratives en boucle ne jouent qu'une fois.
   Les bandeaux défilants (marques, avis) continuent de tourner. */
html.leger *, html.leger *::before, html.leger *::after { -webkit-backdrop-filter: none !important; backdrop-filter: none !important; }
html.leger *:not(.marques-piste):not(.avis-piste):not(.bmarques__piste), html.leger *::before, html.leger *::after { animation-iteration-count: 1 !important; }
html.leger .header { background: rgba(14,13,11,.98); }
html.leger .vitrine-hero { background: rgba(22,20,17,.94); }
html.leger .coord-gps, html.leger .video__badge, html.leger .video__play, html.leger .galerie figcaption,
html.leger .maison-legende, html.leger .carte-article__cat, html.leger .phare-img .badge { background: rgba(14,13,11,.88); }
html.leger .cookies { background: rgb(14,13,11); }

/* v3.18.5 · Retour à l'accueil dans les barres collantes des fiches (maison et logo) */
.barre-accueil { flex: none; display: inline-flex; align-items: center; gap: 10px; padding: 6px 14px 6px 6px; margin-right: 4px; border-radius: 999px; text-decoration: none; color: var(--encre); border: 1px solid rgba(27,25,21,.12); transition: background .25s, border-color .25s; }
.barre-accueil:hover { background: var(--ivoire); border-color: rgba(27,25,21,.22); }
.barre-accueil__maison { display: inline-grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: var(--or); color: #fff; }
.barre-accueil__maison svg { width: 16px; height: 16px; }
.barre-accueil__logo { height: 22px; width: auto; }
.fiche-sommaire .barre-accueil .logo-nuit, .sous-nav .barre-accueil .logo-nuit { display: none !important; }
.fiche-sommaire .barre-accueil .logo-jour, .sous-nav .barre-accueil .logo-jour { display: block !important; }
.sous-nav__nom { display: flex; align-items: center; gap: 12px; max-width: none; overflow: visible; }
.sous-nav__titre { min-width: 0; max-width: 240px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sous-nav .barre-accueil { display: none; }
html.sommaire-on .sous-nav .barre-accueil { display: inline-flex; }
@media (max-width: 1024px) {
  .barre-accueil { padding: 4px; margin-right: 0; }
  .fiche-sommaire .barre-accueil .barre-accueil__logo, .sous-nav .barre-accueil .barre-accueil__logo { display: none !important; }
  .fiche-sommaire__barre { grid-template-columns: auto minmax(0, 1fr) auto; }
  .fiche-sommaire__barre .barre-accueil { grid-row: 1; justify-self: start; }
}

/* v3.18.5 · Comparatifs : fines lignes verticales entre les colonnes (ordinateur et tablette) */
@media (min-width: 769px) {
  .comp__entete, .comp__ligne { --dg: 16px; }
  .comp--3 .comp__entete, .comp--3 .comp__ligne { --dg: 13px; }
  .comp__ligne { padding-top: 0; padding-bottom: 0; align-items: stretch; }
  .comp__ligne > .comp__label, .comp__ligne > .comp__val { padding-top: 18px; padding-bottom: 18px; }
  .comp__ligne > .comp__val { border-left: 1px solid rgba(127,120,108,.26); padding-left: var(--dg); margin-left: calc(-1 * var(--dg)); }
  .comp__entete { padding-top: 0; padding-bottom: 0; }
  .comp__entete > span { padding-top: 14px; padding-bottom: 14px; }
  .comp__entete > span:not(:first-child) { border-left: 1px solid rgba(255,255,255,.22); padding-left: var(--dg); margin-left: calc(-1 * var(--dg)); }
}
@media (min-width: 769px) and (max-width: 1024px) {
  .comp--3 .comp__entete, .comp--3 .comp__ligne { --dg: 9px; }
}

/* v3.18.5 · Barre du haut : point vert pendant les horaires de la hotline, icône téléphone devant le numéro */
.topbar-hotline { display: inline-flex; align-items: center; gap: 9px; }
.topbar-point { position: relative; flex: none; width: 8px; height: 8px; border-radius: 50%; background: #6F685C; }
.topbar-hotline[data-etat="info"] .topbar-point { background: transparent; box-shadow: inset 0 0 0 1.5px var(--or); }
.topbar-hotline[data-etat="pause"] .topbar-point { background: var(--or-clair); }
.topbar-hotline[data-etat="ouvert"] .topbar-point { background: #46C46A; box-shadow: 0 0 0 3px rgba(70,196,106,.22); }
.topbar-hotline[data-etat="ouvert"] .topbar-point::after { content: ""; position: absolute; inset: -5px; border-radius: 50%; border: 1px solid #46C46A; animation: pouls 2.2s var(--ease) infinite; }
.topbar-tel { display: inline-flex; align-items: center; gap: 7px; }
.topbar-tel svg { width: 15px; height: 15px; flex: none; }
@media (prefers-reduced-motion: reduce) { .topbar-point::after { animation: none !important; } }

/* v3.18.8 · Sous-navigation des fiches sur mobile : une seule ligne (maison, liens défilants, Devis). */
@media (max-width: 1024px) {
  .sous-nav__titre { display: none; }
  .sous-nav__nom { display: none; }
  html.sommaire-on .sous-nav__nom { display: flex; }
  html.sommaire-on .sous-nav__grille { grid-template-columns: auto minmax(0, 1fr) auto; }
  .sous-nav .barre-accueil { padding: 3px; border: 0; }
  .sous-nav .barre-accueil__maison { width: 34px; height: 34px; }
}

/* v3.18.9 · Pastille IPG dans le méga menu (Aoralscan Elite et Elite Wireless) */
.badge-menu { display: inline-flex; align-items: center; margin-left: 8px; padding: 3px 9px 2px; border-radius: 999px; font-size: 10.5px; font-weight: 700; letter-spacing: .08em; line-height: 1.2; vertical-align: 2px; text-transform: uppercase; white-space: nowrap; }
.badge-menu--ipg { background: var(--or-bouton); color: #fff; }
