/* ═══ CARAVELLI V91 — Le Concierge, déclinaison Luxury Branch ═══
   S'appuie sur les jetons de main.css (--warm-black, --ivory, --gold…). */
.cvb-toggle{
  position:fixed;right:24px;bottom:24px;z-index:9990;
  width:54px;height:54px;border-radius:50%;cursor:pointer;
  background:var(--warm-black,oklch(.1611 calc(var(--ol-c-pat)*.045) var(--ol-h-pat)));color:var(--gold-soft,oklch(.7581 calc(var(--ol-c-pat)*.907) var(--ol-h-pat)));
  border:1px solid var(--line,oklch(.9418 calc(var(--ol-c-pat)*.225) var(--ol-h-pat) / .16));
  font:500 1.35rem/1 "Marcellus","Cormorant Garamond",serif;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 10px 30px rgba(0,0,0,.45);
  transition:transform .3s var(--ease,ease),border-color .3s var(--ease,ease);
}
.cvb-toggle:hover{transform:translateY(-2px);border-color:var(--gold,oklch(.6789 calc(var(--ol-c-pat)*1.1) var(--ol-h-pat)))}
.cvb-toggle:focus-visible{outline:2px solid var(--gold,oklch(.6789 calc(var(--ol-c-pat)*1.1) var(--ol-h-pat)));outline-offset:3px}
.cvb-panel{
  position:fixed;right:24px;bottom:92px;z-index:9991;
  width:min(370px,calc(100vw - 32px));max-height:min(560px,calc(100vh - 130px));
  display:flex;flex-direction:column;
  background:oklch(.1611 calc(var(--ol-c-pat)*.045) var(--ol-h-pat) / .97);color:var(--ivory,oklch(.9418 calc(var(--ol-c-pat)*.225) var(--ol-h-pat)));
  border:1px solid var(--line,oklch(.9418 calc(var(--ol-c-pat)*.225) var(--ol-h-pat) / .16));border-radius:4px;
  box-shadow:0 24px 60px rgba(0,0,0,.55);
  overflow:hidden;
}
.cvb-panel[hidden]{display:none}
.cvb-head{
  padding:16px 18px 13px;border-bottom:1px solid var(--line,oklch(.9418 calc(var(--ol-c-pat)*.225) var(--ol-h-pat) / .16));
  display:flex;align-items:baseline;justify-content:space-between;gap:12px;
}
.cvb-title{font:400 1.05rem/1.2 "Marcellus",serif;letter-spacing:.06em;color:var(--gold-soft,oklch(.7581 calc(var(--ol-c-pat)*.907) var(--ol-h-pat)))}
.cvb-sub{font:400 .68rem/1 "Instrument","Instrument Sans",sans-serif;letter-spacing:.28em;text-transform:uppercase;color:var(--stone,oklch(.6762 calc(var(--ol-c-pat)*.186) var(--ol-h-pat)))}
.cvb-close{
  background:none;border:0;cursor:pointer;color:var(--stone,oklch(.6762 calc(var(--ol-c-pat)*.186) var(--ol-h-pat)));
  font:400 .72rem/1 "Instrument","Instrument Sans",sans-serif;letter-spacing:.18em;text-transform:uppercase;padding:4px 2px;
}
.cvb-close:hover{color:var(--ivory,oklch(.9418 calc(var(--ol-c-pat)*.225) var(--ol-h-pat)))}
.cvb-close:focus-visible{outline:2px solid var(--gold,oklch(.6789 calc(var(--ol-c-pat)*1.1) var(--ol-h-pat)));outline-offset:2px}
.cvb-log{flex:1;overflow-y:auto;padding:16px 18px;display:flex;flex-direction:column;gap:10px;scrollbar-width:thin}
.cvb-m{
  max-width:88%;padding:10px 13px;border-radius:3px;
  font:400 .9rem/1.55 "Frank Ruhl Libre",Georgia,serif;white-space:pre-line;
}
.cvb-bot{align-self:flex-start;background:oklch(.9418 calc(var(--ol-c-pat)*.225) var(--ol-h-pat) / .06);border:1px solid var(--line,oklch(.9418 calc(var(--ol-c-pat)*.225) var(--ol-h-pat) / .16))}
.cvb-user{align-self:flex-end;background:var(--oxblood,oklch(.2443 calc(var(--ol-c-sang)*.85) calc(var(--ol-h-sang) + 7.2)));border:1px solid oklch(.7581 calc(var(--ol-c-pat)*.907) var(--ol-h-pat) / .25)}
.cvb-wait{color:var(--stone,oklch(.6762 calc(var(--ol-c-pat)*.186) var(--ol-h-pat)));font-style:italic}
.cvb-act{
  align-self:flex-start;margin:-2px 0 2px;padding:8px 14px;
  border:1px solid var(--gold,oklch(.6789 calc(var(--ol-c-pat)*1.1) var(--ol-h-pat)));border-radius:2px;color:var(--gold-soft,oklch(.7581 calc(var(--ol-c-pat)*.907) var(--ol-h-pat)));
  font:500 .72rem/1 "Instrument","Instrument Sans",sans-serif;letter-spacing:.2em;text-transform:uppercase;
  text-decoration:none;transition:background .25s,color .25s;
}
.cvb-act:hover{background:var(--gold,oklch(.6789 calc(var(--ol-c-pat)*1.1) var(--ol-h-pat)));color:var(--warm-black,oklch(.1611 calc(var(--ol-c-pat)*.045) var(--ol-h-pat)))}
.cvb-form{display:flex;gap:8px;padding:13px 14px;border-top:1px solid var(--line,oklch(.9418 calc(var(--ol-c-pat)*.225) var(--ol-h-pat) / .16))}
.cvb-in{
  flex:1;min-width:0;background:oklch(.9418 calc(var(--ol-c-pat)*.225) var(--ol-h-pat) / .05);color:var(--ivory,oklch(.9418 calc(var(--ol-c-pat)*.225) var(--ol-h-pat)));
  border:1px solid var(--line,oklch(.9418 calc(var(--ol-c-pat)*.225) var(--ol-h-pat) / .16));border-radius:2px;padding:10px 12px;
  font:400 .9rem/1.3 "Frank Ruhl Libre",Georgia,serif;
}
.cvb-in::placeholder{color:var(--stone,oklch(.6762 calc(var(--ol-c-pat)*.186) var(--ol-h-pat)))}
.cvb-in:focus{outline:none;border-color:var(--gold,oklch(.6789 calc(var(--ol-c-pat)*1.1) var(--ol-h-pat)))}
.cvb-send{
  background:none;border:1px solid var(--line,oklch(.9418 calc(var(--ol-c-pat)*.225) var(--ol-h-pat) / .16));border-radius:2px;cursor:pointer;
  color:var(--gold-soft,oklch(.7581 calc(var(--ol-c-pat)*.907) var(--ol-h-pat)));padding:0 14px;
  font:500 .7rem/1 "Instrument","Instrument Sans",sans-serif;letter-spacing:.18em;text-transform:uppercase;
  transition:border-color .25s,color .25s;
}
.cvb-send:hover{border-color:var(--gold,oklch(.6789 calc(var(--ol-c-pat)*1.1) var(--ol-h-pat)))}
.cvb-send:focus-visible,.cvb-in:focus-visible{outline:2px solid var(--gold,oklch(.6789 calc(var(--ol-c-pat)*1.1) var(--ol-h-pat)));outline-offset:2px}
.cvb-send[disabled]{opacity:.45;cursor:default}
@media (max-width:560px){
  .cvb-toggle{right:16px;bottom:16px}
  .cvb-panel{right:12px;left:12px;bottom:82px;width:auto}
}
@media (prefers-reduced-motion:reduce){
  .cvb-toggle,.cvb-act,.cvb-send{transition:none}
}

/* V91.1 — dégagement du rail Maison. Le rail fait 90px de large, right:0, et n'existe
   que sur les 3 accueils (classe cvb-has-rail posée par le script). Le panneau monte
   jusqu'à 560px et traverserait le rail : on décale panneau ET bouton de 104px,
   soit 14px de garde au-delà des 90px du rail. Mesuré sous Chromium. */
@media (min-width:1181px){
  .cvb-has-rail .cvb-toggle{right:104px}
  .cvb-has-rail .cvb-panel{right:104px;width:min(370px,calc(100vw - 136px))}
}
