/* Page immersive (C25) : le plan occupe l'écran, un panneau porte le reste (offre, stands,
   confiance, questions). Jetons du plan (plan.css) et du thème.
   - Ordinateur (≥ 960 px) : plan à gauche, panneau à droite ; la page ne défile pas, seul le
     panneau défile.
   - Téléphone et tablette, avec JavaScript : plan plein écran, panneau en tiroir par le bas.
   - Sans JavaScript sur téléphone : le plan, puis le panneau ; la page défile. */

.ix { --ix-largeur: clamp(360px, 30vw, 440px); --ix-pad: 24px; color: var(--pl-texte); }
.ix-carte { position: relative; min-width: 0; min-height: 0; background: var(--pl-panneau); }
.ix .pl-view { height: 100%; min-height: 0; border: 0; border-radius: 0; }
.ix .pl-svg { touch-action: none; }

/* Commandes posées sur le plan */
.ix .pl-bar { position: absolute; z-index: 3; top: 12px; left: 12px; right: 12px; margin: 0; pointer-events: none; }
.ix .pl-bar > * { pointer-events: auto; }
.ix .pl-chip, .ix .pl-switch { background: rgba(255, 255, 255, .88); }
.theme-versailles .ix .pl-chip[aria-pressed="true"] { background: #2554FF; }
.ix .pl-switch { padding: 0 14px; border: 1px solid var(--pl-cadre); border-radius: 999px; }
.ix .pl-pied { position: absolute; z-index: 2; left: 12px; bottom: 12px; max-width: calc(100% - 96px); margin: 0; padding: 8px 14px; border: 1px solid var(--pl-cadre); border-radius: 14px; background: rgba(255, 255, 255, .88); pointer-events: none; }
.ix .pl-legende { gap: 4px 14px; font-size: 13px; }
.ix .pl-note { font-size: 12px; }
.ix .pl-flat { top: 64px; right: 12px; left: auto; }
.ix .pl-hint { top: 64px; bottom: auto; left: 12px; max-width: calc(100% - 200px); }
.ix .pl-hint.is-appel { border-color: var(--pl-libre); animation: ix-appel 1.2s ease-out 2; }
@keyframes ix-appel { 30% { transform: scale(1.06); box-shadow: 0 0 0 6px var(--ix-appel, rgba(0, 0, 0, .14)); } }
@supports (backdrop-filter: blur(8px)) {
  .ix .pl-chip, .ix .pl-switch, .ix .pl-pied { backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); }
}

/* Panneau */
.ix-panneau { position: relative; display: flex; flex-direction: column; min-width: 0; min-height: 0; background: var(--pl-panneau); color: var(--pl-texte); }
.ix-defile { flex: 1 1 auto; min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: var(--ix-pad) var(--ix-pad) 0; scrollbar-width: thin; }
.ix-poignee { display: none; }
.ix .pl-fiche { position: static; max-height: none; overflow: visible; padding: 0 0 20px; border: 0; border-radius: 0; background: none; box-shadow: none; animation: none; }
.ix .pl-fiche[data-vide] { display: none; }
.ix.is-choisi .ix-accueil { display: none; }
.ix.is-choisi .pl-view { height: 100%; }

.ix-resume { padding: 0 0 20px; }
.ix-surtitre { margin: 0 0 6px; font: 800 12px/1.4 var(--pl-font); letter-spacing: .14em; text-transform: uppercase; color: var(--pl-libre) !important; }
.ix-titre { margin: 0 0 6px; font: 700 clamp(28px, 2.3vw, 36px)/1.12 var(--font-serif, var(--pl-font)); color: var(--pl-texte); text-wrap: balance; }
.ix-quand { margin: 0 0 12px; font-size: 15px; line-height: 1.5; color: var(--pl-texte-2) !important; }
.ix-prix { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; margin: 0 0 16px; font-size: 15px; line-height: 1.4; color: var(--pl-texte-2) !important; }
.ix-prix strong { font: 800 26px/1.1 var(--pl-font); color: var(--pl-texte); }
.ix-prix__libres { display: inline-flex; align-items: center; gap: 7px; font-weight: 800; color: var(--pl-libre); }
.ix-prix__libres::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--pl-libre); }
.ix-lot { margin: -8px 0 14px; font-size: 13px; font-weight: 700; color: var(--pl-mur) !important; }
.ix-phase { padding: 8px 12px; border-left: 3px solid var(--pl-attente); border-radius: 0 10px 10px 0; background: color-mix(in srgb, var(--pl-attente) 10%, transparent); }
.ix-prix > span:first-child:not(.ix-prix__libres) { font-weight: 700; }
.ix-grille { width: 100%; margin: 4px 0 8px; border-collapse: collapse; font-size: 14px; }
.ix-grille th, .ix-grille td { padding: 8px 6px; border-bottom: 1px solid var(--pl-cadre); text-align: right; vertical-align: top; color: var(--pl-texte); }
.ix-grille thead th { font-size: 12px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; color: var(--pl-texte-2); }
.ix-grille th small { display: block; margin-top: 2px; font-size: 11px; font-weight: 600; letter-spacing: 0; text-transform: none; color: var(--pl-texte-2); }
.ix-grille th[scope="row"] { text-align: left; font-weight: 800; }
.ix-grille td { font-weight: 700; white-space: nowrap; }
.ix-grille tr.is-courant th, .ix-grille tr.is-courant td { background: rgba(0, 0, 0, .04); }
.ix-grille tr.is-courant th[scope="row"] { box-shadow: inset 3px 0 0 var(--pl-mur); }
.ix-grille tr.is-complet td, .ix-grille tr.is-complet th { color: var(--pl-texte-2); text-decoration: line-through; text-decoration-thickness: 1px; }
.ix-grille tr.is-complet th small { text-decoration: none; }
.ix-actions { display: grid; gap: 10px; }
.ix-cta { width: 100%; box-sizing: border-box; }
.ix-lien { justify-self: center; padding: 6px 0; font-weight: 700; }
.ix-note { margin: 10px 0 0; font-size: 14px; line-height: 1.55; color: var(--pl-texte-2) !important; }
.ix-apercu { margin: 0 0 16px; padding: 12px 14px; border-radius: 12px; background: #f3ede0; color: #5c4700 !important; font-size: 14px; font-weight: 700; line-height: 1.5; }
.ix-apercu a { color: #5c4700; }

/* Onglets (avec JavaScript) ; sans JavaScript, les volets se suivent */
.ix-onglets { position: sticky; top: 0; z-index: 2; display: flex; gap: 4px; margin: 0 calc(-1 * var(--ix-pad)); padding: 10px var(--ix-pad); border-top: 1px solid var(--pl-cadre); border-bottom: 1px solid var(--pl-cadre); background: var(--pl-panneau); overflow-x: auto; scrollbar-width: none; }
.ix-onglets::-webkit-scrollbar { display: none; }
html:not(.ix-js) .ix-onglets { display: none; }
/* Avant le script, seul le premier volet s'affiche : rien ne bouge quand les onglets s'activent. */
.ix-js .ix:not(.is-onglets) .ix-onglets ~ .ix-volet ~ .ix-volet { display: none; }
.ix-onglet { flex: none; min-height: 40px; padding: 8px 14px; border: 0; border-radius: 999px; background: transparent; color: var(--pl-texte-2); font: 800 14px/1.2 var(--pl-font); cursor: pointer; }
.ix-onglet:hover { color: var(--pl-texte); }
.ix-onglet[aria-selected="true"] { background: var(--pl-texte); color: var(--pl-panneau); }
.theme-versailles .ix-onglet { border-radius: 4px; font-weight: 600; }
.theme-versailles .ix-onglet[aria-selected="true"] { background: #2554FF; color: #FFFFFF; }
.ix-volet { padding: 22px 0 8px; }
.ix-volet + .ix-volet { border-top: 1px solid var(--pl-cadre); }
.ix-js .ix-onglets ~ .ix-volet { border-top: 0; }
.ix-volet__titre { margin: 0 0 12px; font: 700 22px/1.25 var(--font-serif, var(--pl-font)); color: var(--pl-texte); text-wrap: balance; }
.ix-h3 { margin: 22px 0 10px; font: 800 16px/1.35 var(--pl-font) !important; color: var(--pl-texte); }
.ix-lead { margin: 0 0 8px; font-size: 16px; line-height: 1.6; color: var(--pl-texte) !important; }
.ix-ticks { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.ix-ticks li { position: relative; padding-left: 26px; font-size: 15px; line-height: 1.5; color: var(--pl-texte-2); }
.ix-ticks li::before { content: ""; position: absolute; left: 3px; top: .42em; width: 11px; height: 6px; border-left: 2px solid var(--pl-mur); border-bottom: 2px solid var(--pl-mur); transform: rotate(-45deg); }
.ix-ticks--info li::before { left: 6px; top: .55em; width: 6px; height: 6px; border: 0; border-radius: 50%; background: var(--pl-texte-2); transform: none; }
.ix-ticks--non li::before { left: 4px; top: .35em; width: 10px; height: 10px; border: 0; transform: none; background: linear-gradient(45deg, transparent 43%, var(--pl-texte-2) 43% 57%, transparent 57%), linear-gradient(-45deg, transparent 43%, var(--pl-texte-2) 43% 57%, transparent 57%); }
.ix-temps { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.ix-temps > li { padding: 14px 16px; border: 1px solid var(--pl-cadre); border-radius: 14px; }
.ix-temps__titre { margin: 0 0 8px; font: 800 13px/1.3 var(--pl-font); letter-spacing: .1em; text-transform: uppercase; color: var(--pl-mur) !important; }
.ix-etapes { display: grid; gap: 12px; margin: 0; padding: 0; list-style: none; counter-reset: ix-etape; }
.ix-etapes li { position: relative; min-height: 28px; padding-left: 42px; font-size: 15px; line-height: 1.5; color: var(--pl-texte-2); counter-increment: ix-etape; }
.ix-etapes li::before { content: counter(ix-etape); position: absolute; left: 0; top: -2px; display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: var(--pl-mur); color: var(--pl-panneau); font: 800 14px/1 var(--pl-font); }
.theme-versailles .ix-etapes li::before { border-radius: 4px; background: #2554FF; color: #FFFFFF; }
.ix-bloc { padding: 4px 0 18px; }
.ix-bloc + .ix-bloc { padding-top: 18px; border-top: 1px solid var(--pl-cadre); }
.ix-bloc .ix-h3 { margin-top: 0; }
.ix-chiffre { margin: 0; font: 800 28px/1.2 var(--pl-font); color: var(--pl-texte) !important; }
.ix-label { margin: 14px 0 8px; font: 800 12px/1.4 var(--pl-font); letter-spacing: .08em; text-transform: uppercase; color: var(--pl-texte-2) !important; }
.ix-dl { display: grid; gap: 8px; margin: 0; }
.ix-dl div { display: flex; justify-content: space-between; gap: 12px; padding-bottom: 8px; border-bottom: 1px solid var(--pl-cadre); }
.ix-dl dt { font-size: 14px; color: var(--pl-texte-2); }
.ix-dl dd { margin: 0; font-size: 14px; font-weight: 700; text-align: right; color: var(--pl-texte); }
.ix-bouton { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 0 18px; border: 1px solid var(--pl-libre); border-radius: 999px; background: transparent; color: var(--pl-texte); font: 800 14px/1 var(--pl-font); text-decoration: none; cursor: pointer; }
.ix-bouton--plein { border-color: transparent; background: var(--color-accent, var(--pl-libre)); color: var(--r-on-accent, #fff); }
.theme-versailles .ix-bouton { border-radius: 4px; border-color: #101014; font-weight: 600; }
.theme-versailles .ix-bouton--plein { border-color: transparent; background: #2554FF; color: #FFFFFF; }
.theme-versailles .ix-bouton--plein:hover { background: #1A40D9; color: #FFFFFF; }
.theme-versailles .ix-titre, .theme-versailles .ix-volet__titre { font-weight: 400; letter-spacing: .01em; text-transform: uppercase; }
.theme-versailles .ix-grille tr.is-courant th[scope="row"] { box-shadow: inset 3px 0 0 #2554FF; }
.theme-versailles .ix-ticks li::before { border-color: #2554FF; }
.theme-versailles .ix-temps > li, .theme-versailles .ix-apercu, .theme-versailles .ix-alerte { border-radius: 8px; }
.theme-versailles .ix-rappel input, .theme-versailles .ix-option select { border-color: #77777F; border-radius: 4px; }
.theme-versailles .ix-visite-barre__jauge span { background: #2554FF; }
.ix-contact__direct { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; margin: 10px 0 0; }
.ix-rappel { display: grid; gap: 8px; margin-top: 4px; }
.ix-rappel input { min-height: 46px; padding: 0 14px; border: 1px solid var(--pl-cadre); border-radius: 12px; background: transparent; color: var(--pl-texte); font: 500 16px/1.2 var(--pl-font); box-sizing: border-box; width: 100%; }
.ix-rappel input::placeholder { color: var(--pl-texte-2); }
.ix-org { padding-top: 14px; border-top: 1px solid var(--pl-cadre); }
.ix-legal { margin: 20px calc(-1 * var(--ix-pad)) 0; padding: 16px var(--ix-pad) 20px; border-top: 1px solid var(--pl-cadre); }
.ix-legal p { margin: 0; font-size: 13px; line-height: 1.6; color: var(--pl-texte-2) !important; }
.ix-legal .loi-evin { margin-top: 6px; }

/* Visite du salon : carte dans le panneau, commandes sur le plan */
.ix.is-visite .ix-accueil, .ix.is-visite .pl-fiche { display: none; }
.ix.is-visite .pl-hint, .ix.is-visite .pl-pied { display: none; }
.ix-visite { padding: 0 0 18px; }
.ix-visite .ix-volet__titre:focus { outline: none; }
.ix-visite__logo { margin: 8px 0 12px; }
.ix-visite__logo img { display: block; width: 96px; height: 96px; padding: 8px; border-radius: 18px; background: #fff; object-fit: contain; box-sizing: border-box; }
.ix-visite .ix-actions { margin-top: 16px; }
.ix-visite .ix-ticks { margin-top: 10px; }
.ix-visite-lancer { gap: 8px; }
.ix-visite-lancer svg { width: 15px; height: 15px; fill: currentColor; }
.ix-visite-barre { position: absolute; z-index: 4; left: 50%; bottom: 16px; display: flex; align-items: center; gap: 6px; padding: 6px; border: 1px solid var(--pl-cadre); border-radius: 18px; background: rgba(255, 255, 255, .92); transform: translateX(-50%); }
.ix-visite-barre .pl-tool { width: 44px; height: 44px; }
.ix-visite-barre .pl-tool:disabled { opacity: .35; cursor: default; }
.ix-visite-barre [data-v-icone="lecture"] path { fill: currentColor; }
.ix-visite-barre__etat { display: grid; gap: 6px; min-width: 64px; padding: 0 6px; font: 800 13px/1 var(--pl-font); text-align: center; }
.ix-visite-barre__jauge { display: block; height: 3px; border-radius: 3px; background: var(--pl-cadre); overflow: hidden; }
.ix-visite-barre__jauge span { display: block; width: 0; height: 100%; background: var(--pl-mur); }
@supports (backdrop-filter: blur(8px)) { .ix-visite-barre { backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); } }

/* Paiement dans le panneau (lot C) */
.ix.is-achat .pl-fiche, .ix.is-achat .ix-accueil, .ix.is-achat .ix-visite { display: none; }
.ix-achat { padding: 0 0 18px; }
.ix-retour { display: inline-flex; align-items: center; gap: 6px; min-height: 40px; margin: 0 0 8px -6px; padding: 0 12px 0 4px; border: 0; border-radius: 999px; background: transparent; color: var(--pl-texte-2); font: 800 14px/1 var(--pl-font); cursor: pointer; }
.ix-retour:hover { color: var(--pl-texte); }
.ix-retour svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.ix-lignes { width: 100%; margin: 12px 0 16px; border-collapse: collapse; font-size: 15px; }
.ix-lignes th, .ix-lignes td { padding: 10px 0; border-bottom: 1px solid var(--pl-cadre); text-align: left; vertical-align: top; font-weight: 600; color: var(--pl-texte-2); }
.ix-lignes td { padding-left: 12px; text-align: right; white-space: nowrap; font-weight: 800; color: var(--pl-texte); }
.ix-lignes tfoot th, .ix-lignes tfoot td { border-bottom: 0; font-size: 17px; font-weight: 800; color: var(--pl-texte); }
.ix-achat[aria-busy="true"] .ix-lignes { opacity: .5; }
.ix-options { margin: 0 0 14px; padding: 0; border: 0; }
.ix-option { display: flex; align-items: center; gap: 10px; min-height: 44px; font-size: 15px; color: var(--pl-texte); cursor: pointer; }
.ix-option input { width: 20px; height: 20px; margin: 0; accent-color: var(--pl-libre); }
.ix-option select { min-height: 40px; padding: 0 10px; border: 1px solid var(--pl-cadre); border-radius: 10px; background: var(--pl-panneau); color: var(--pl-texte); font: 700 15px/1 var(--pl-font); }
.ix-tenue { font-weight: 700; color: var(--pl-texte) !important; }
.ix-checkout { margin: 14px 0 0; border-radius: 14px; overflow: hidden; }
.ix-checkout:empty { display: none; }
.ix-alerte { margin: 12px 0 0; padding: 12px 14px; border-radius: 12px; background: #fff0ee; color: #842f25 !important; font-size: 14px; font-weight: 700; line-height: 1.5; }
.ix-alerte .ix-bouton { margin-top: 8px; border-color: #842f25; color: #842f25; }

/* Stands en liste, dans le panneau */
.ix-liste { margin: 12px 0 0; border: 0; border-radius: 0; background: none; }
.ix-liste .pl-liste__zone { padding: 0 0 16px; }
.ix .pl-items { grid-template-columns: minmax(0, 1fr); }

/* Sections de la page dans l'édition (texte, questions) : mises au format du panneau */
.ix-cms .v-section, .ix-cms > section { padding: 0; margin: 0; background: none; border: 0; }
.ix-cms .v-container { max-width: none; padding: 0; }
.ix-cms .v-prose { max-width: none; }
.ix-cms .v-prose p, .ix-cms .v-lead p { font-size: 15px; line-height: 1.6; }
.ix-cms .v-head { max-width: none; margin: 0 0 14px; text-align: left; }
.ix-cms .v-head--center::after { display: none; }
.ix-cms .v-h2 { font-size: 22px; text-wrap: balance; }
.ix-cms .v-eyebrow { margin-bottom: 6px; font-size: 12px; }
.ix-cms .v-faq__list { max-width: none; gap: 8px; }
.ix-cms .v-faq__question { padding: 14px 44px 14px 16px; font-size: 15px; }
.ix-cms .v-faq__question::after { right: 18px; }
.ix-cms .v-faq__answer { padding: 0 16px 12px; }
.ix-cms .v-faq__answer p { font-size: 15px; }
.ix-offre .ix-cms, #ix-offre .ix-cms { margin-bottom: 8px; }

/* ── Ordinateur : plan et panneau côte à côte, sur la hauteur de l'écran ── */
@media (min-width: 960px) {
  .ix { display: grid; grid-template-columns: minmax(0, 1fr) var(--ix-largeur); height: calc(100vh - 80px); height: calc(100dvh - 80px); }
  .ix-panneau { border-left: 1px solid var(--pl-cadre); box-shadow: -18px 0 40px rgba(0, 0, 0, .18); }
  html.theme-versailles:has(.ix), html.theme-versailles:has(.ix) body { height: 100%; overflow: hidden; }
  .theme-versailles:has(.ix) .site-wrapper { display: flex; flex-direction: column; height: 100%; min-height: 0; }
  .theme-versailles:has(.ix) .v-main { display: flex; flex: 1 1 auto; min-height: 0; }
  .theme-versailles .ix { flex: 1 1 auto; height: auto; min-height: 0; width: 100%; }
}

/* ── Téléphone et tablette, avec JavaScript : panneau en tiroir ── */
@media (max-width: 959px) {
  .ix-js .ix { position: relative; height: calc(100vh - 64px); height: calc(100dvh - 64px); overflow: hidden; }
  html.theme-versailles.ix-js:has(.ix), html.theme-versailles.ix-js:has(.ix) body { height: 100%; overflow: hidden; }
  .theme-versailles.ix-js:has(.ix) .site-wrapper { display: flex; flex-direction: column; height: 100%; min-height: 0; }
  .theme-versailles.ix-js:has(.ix) .v-main { position: relative; flex: 1 1 auto; min-height: 0; }
  .theme-versailles.ix-js .ix { height: 100%; }
  .ix-js .ix-carte { position: absolute; inset: 0; }
  .ix-js .ix-panneau { --ix-pad: 18px; position: absolute; z-index: 5; left: 0; right: 0; bottom: 0; height: 90%; border-radius: 22px 22px 0 0; box-shadow: 0 -14px 40px rgba(0, 0, 0, .45); transform: translateY(calc(100% - 196px)); transition: transform .36s cubic-bezier(.2, .8, .2, 1); will-change: transform; }
  .ix-js .ix-poignee { display: flex; flex: none; align-items: center; justify-content: center; gap: 10px; width: 100%; min-height: 34px; padding: 10px 0 4px; border: 0; background: transparent; color: var(--pl-texte-2); cursor: grab; touch-action: none; }
  .ix-js .ix-poignee span { width: 44px; height: 5px; border-radius: 999px; background: var(--pl-texte-2); opacity: .55; }
  .ix-js .ix-defile { padding-top: 4px; }
  .ix-js .ix[data-tiroir="ferme"] .ix-defile { overflow: hidden; }
  .ix-js .ix .pl-bar { top: 8px; left: 8px; right: 8px; flex-wrap: nowrap; gap: 8px; }
  .ix-js .ix .pl-zones { flex: 1 1 auto; min-width: 0; }
  .ix-js .ix .pl-switch { flex: none; min-height: 36px; padding: 0 12px; font-size: 13px; }
  .ix-js .ix .pl-switch__suite { display: none; }
  .ix-js .ix .pl-chip { min-height: 36px; padding: 7px 12px; font-size: 13px; }
  .ix-js .ix .pl-pied { top: 54px; bottom: auto; left: 8px; max-width: calc(100% - 150px); padding: 6px 10px; }
  .ix-js .ix .pl-legende { gap: 2px 10px; font-size: 12px; }
  .ix-js .ix .pl-note { display: none; }
  .ix-js .ix .pl-flat { top: 54px; right: 8px; min-height: 36px; padding: 0 12px; font-size: 13px; }
  .ix-js .ix .pl-tools { top: 100px; bottom: auto; right: 8px; }
  .ix-js .ix .pl-tool { width: 40px; height: 40px; }
  .ix-js .ix-quand__lieu, .ix-js .ix-resume__note, .ix-js .ix-long { display: none; }
  .ix-js .ix-actions { grid-template-columns: minmax(0, 1fr) auto; }
  .ix-js .ix-actions > :only-child, .ix-js .ix-lien { grid-column: 1 / -1; }
  .ix-js .ix-visite-barre { bottom: calc(var(--ix-couvert, 196px) + 10px); }
  .ix-js .ix-visite-barre .pl-tool { width: 40px; height: 40px; }
  .ix-js .ix-resume { padding-bottom: 14px; }
  .ix-js .ix-onglets { padding-top: 8px; padding-bottom: 8px; }
  .ix-js .ix .pl-hint { top: auto; left: 50%; bottom: calc(var(--ix-couvert, 196px) + 12px); max-width: calc(100% - 32px); transform: translateX(-50%); white-space: nowrap; text-align: center; }
  .ix-js .ix.is-choisi .pl-tools { display: grid; }
  .ix-titre { font-size: 24px; margin-bottom: 4px; }
  .ix-quand { margin-bottom: 8px; font-size: 14px; }
  .ix-prix { margin-bottom: 12px; font-size: 14px; }
  .ix-prix strong { font-size: 21px; }
  .ix-js .ix-surtitre { display: none; }
}
@media (max-width: 959px) {
  html:not(.ix-js) .ix-carte { height: 72vh; }
  html:not(.ix-js) .ix-panneau { border-top: 1px solid var(--pl-cadre); }
}

@supports (color: color-mix(in srgb, red, blue)) {
  .ix-prix__libres::before { box-shadow: 0 0 0 4px color-mix(in srgb, var(--pl-libre) 24%, transparent); }
}
@media (prefers-reduced-motion: reduce) {
  .ix-js .ix-panneau { transition: none; }
  .ix .pl-hint.is-appel { animation: none; }
}

/* Thème Versailles, charte TCGCON v1.0 (ID1) : arrondi complet réservé aux badges ; cobalt
   pour l'appel du plan et la ligne du lot en cours. */
.theme-versailles .ix { --ix-appel: rgba(37, 84, 255, .22); }
.theme-versailles .ix-grille tr.is-courant th, .theme-versailles .ix-grille tr.is-courant td { background: rgba(37, 84, 255, .07); }
.theme-versailles .pl-hint, .theme-versailles .ix .pl-switch, .theme-versailles .ix-retour { border-radius: 4px; }
.theme-versailles .ix .pl-pied, .theme-versailles .ix-visite-barre, .theme-versailles .ix-checkout { border-radius: 8px; }
@media (max-width: 959px) { .theme-versailles.ix-js .ix-panneau, .theme-versailles .ix-js .ix-panneau { border-radius: 8px 8px 0 0; } }

/* Spec § 3 (05/11) : univers principal et bons d'achat dans le panneau d'achat */
.ix-profil .ix-champ { display: grid; gap: 6px; margin: 0 0 12px; }
.ix-profil label { font-size: 14px; font-weight: 600; color: var(--pl-texte); }
.ix-profil select { min-height: 44px; padding: 8px 10px; font: inherit; color: var(--pl-texte); background: #fff; border: 1px solid var(--pl-bord, #c9c9d1); border-radius: 8px; }
.ix-profil .ix-aide { font-size: 12.5px; line-height: 1.4; color: var(--pl-texte-2); }
.ix-champ--check label { display: flex; align-items: flex-start; gap: 10px; font-weight: 500; cursor: pointer; }
.ix-champ--check input { width: 20px; height: 20px; margin: 1px 0 0; flex: 0 0 auto; accent-color: var(--pl-libre); }
.ix-profil.is-requis select { border-color: var(--pl-texte); box-shadow: 0 0 0 3px rgba(0, 0, 0, .06); }
