/* Voyance Immédiate — Cookie Banner */
:root{
  --vi-lav:#6A5ACD;
  --vi-lav-dark:#5c4ac0;
  --vi-lav-soft:#f5f3ff;
  --vi-ink:#0f172a;
  --vi-muted:#64748b;
  --vi-border:#e2e8f0;
  --vi-white:#ffffff;
  --vi-overlay:rgba(15,23,42,.40);
  --vi-shadow:0 18px 48px rgba(15,23,42,.18);
  --vi-shadow-soft:0 10px 28px rgba(15,23,42,.10);
}
.vi-cookie-hidden{display:none !important;}
.vi-cookie-backdrop{
  position:fixed; inset:0; background:var(--vi-overlay); backdrop-filter:blur(3px);
  z-index:120; opacity:0; pointer-events:none; transition:opacity .22s ease;
}
.vi-cookie-backdrop.is-visible{opacity:1; pointer-events:auto;}
.vi-cookie-banner{
  position:fixed; left:16px; right:16px; bottom:16px; z-index:130; max-width:1120px; margin:0 auto;
  background:rgba(255,255,255,.96); backdrop-filter:blur(10px);
  border:1px solid rgba(106,90,205,.12); box-shadow:var(--vi-shadow); border-radius:24px; overflow:hidden;
  transform:translateY(18px); opacity:0; pointer-events:none; transition:transform .22s ease, opacity .22s ease;
}
.vi-cookie-banner.is-visible{transform:translateY(0); opacity:1; pointer-events:auto;}
.vi-cookie-banner__inner{padding:18px 18px 16px;}
.vi-cookie-topline{
  display:inline-flex; align-items:center; gap:8px; padding:8px 12px; background:var(--vi-lav-soft);
  border:1px solid rgba(106,90,205,.18); border-radius:999px; box-shadow:var(--vi-shadow-soft);
}
.vi-cookie-dot{width:9px; height:9px; border-radius:999px; background:var(--vi-lav); flex:0 0 auto;}
.vi-cookie-topline span{font-size:12px; line-height:1; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:#312e81;}
.vi-cookie-grid{display:grid; gap:18px; margin-top:14px;}
.vi-cookie-copy h2{margin:0; font-size:1.05rem; line-height:1.25; color:var(--vi-ink); font-weight:700;}
.vi-cookie-copy p{margin:10px 0 0; color:#334155; font-size:.93rem; line-height:1.6; max-width:760px;}
.vi-cookie-copy a{color:var(--vi-lav); font-weight:600; text-decoration:none;}
.vi-cookie-copy a:hover{text-decoration:underline;}
.vi-cookie-actions{display:flex; flex-wrap:wrap; gap:10px;}
.vi-cookie-btn{
  appearance:none; border:none; cursor:pointer; border-radius:999px; padding:12px 18px;
  font-size:.92rem; font-weight:700; line-height:1;
  transition:transform .16s ease, background-color .16s ease, border-color .16s ease, color .16s ease, box-shadow .16s ease;
}
.vi-cookie-btn:hover{transform:translateY(-1px);}
.vi-cookie-btn--primary{background:var(--vi-lav); color:#fff; box-shadow:0 10px 22px rgba(106,90,205,.28);}
.vi-cookie-btn--primary:hover{background:var(--vi-lav-dark);}
.vi-cookie-btn--secondary{background:#fff; color:var(--vi-ink); border:1px solid var(--vi-border);}
.vi-cookie-btn--ghost{background:#f8fafc; color:#334155; border:1px solid #e2e8f0;}
.vi-cookie-panel{
  position:fixed; inset:0; display:grid; place-items:center; padding:16px; z-index:140;
  opacity:0; pointer-events:none; transition:opacity .22s ease;
}
.vi-cookie-panel.is-visible{opacity:1; pointer-events:auto;}
.vi-cookie-panel__dialog{
  width:min(720px,100%); background:rgba(255,255,255,.98); border:1px solid rgba(106,90,205,.14);
  border-radius:28px; box-shadow:var(--vi-shadow); overflow:hidden;
  transform:translateY(14px) scale(.985); transition:transform .22s ease;
}
.vi-cookie-panel.is-visible .vi-cookie-panel__dialog{transform:translateY(0) scale(1);}
.vi-cookie-panel__head{padding:22px 22px 14px; border-bottom:1px solid #eef2f7;}
.vi-cookie-panel__head h3{margin:0; font-size:1.08rem; font-weight:700; color:var(--vi-ink);}
.vi-cookie-panel__head p{margin:10px 0 0; color:#475569; font-size:.94rem; line-height:1.6;}
.vi-cookie-panel__body{padding:12px 22px 6px;}
.vi-cookie-item{display:grid; grid-template-columns:1fr auto; gap:14px; padding:14px 0; border-bottom:1px solid #eef2f7;}
.vi-cookie-item:last-child{border-bottom:none;}
.vi-cookie-item__title{font-weight:700; color:var(--vi-ink); margin:0; font-size:.96rem;}
.vi-cookie-item__desc{margin:6px 0 0; color:#475569; font-size:.9rem; line-height:1.55;}
.vi-switch{position:relative; display:inline-flex; width:52px; height:30px; flex:0 0 auto;}
.vi-switch input{position:absolute; opacity:0; pointer-events:none;}
.vi-switch__slider{position:absolute; inset:0; background:#dbe3ee; border-radius:999px; transition:background-color .18s ease;}
.vi-switch__slider::after{
  content:""; position:absolute; top:3px; left:3px; width:24px; height:24px; border-radius:50%;
  background:#fff; box-shadow:0 3px 8px rgba(15,23,42,.18); transition:transform .18s ease;
}
.vi-switch input:checked + .vi-switch__slider{background:var(--vi-lav);}
.vi-switch input:checked + .vi-switch__slider::after{transform:translateX(22px);}
.vi-switch input:disabled + .vi-switch__slider{background:#cbd5e1;}
.vi-cookie-panel__foot{display:flex; flex-wrap:wrap; gap:10px; justify-content:flex-end; padding:16px 22px 22px; border-top:1px solid #eef2f7;}
.vi-cookie-manage-link{
  display:inline-flex; align-items:center; gap:8px; font-size:.85rem; font-weight:600; color:rgba(255,255,255,.90);
  text-decoration:none; border-bottom:1px dashed rgba(255,255,255,.35); padding-bottom:2px;
}
.vi-cookie-manage-link:hover{color:#fff; border-color:rgba(255,255,255,.6);}
@media (min-width: 860px){
  .vi-cookie-grid{grid-template-columns:minmax(0,1fr) auto; align-items:end;}
  .vi-cookie-banner__inner{padding:20px 22px 18px;}
}
@media (max-width: 767px){
  .vi-cookie-banner{left:12px; right:12px; bottom:84px; border-radius:22px;}
  .vi-cookie-banner__inner{padding:16px 14px 14px;}
  .vi-cookie-copy h2{font-size:1rem;}
  .vi-cookie-copy p{font-size:.9rem;}
  .vi-cookie-actions{flex-direction:column;}
  .vi-cookie-btn{width:100%; justify-content:center;}

  .vi-cookie-panel{align-items:end; padding:0;}
  .vi-cookie-panel__dialog{
    width:100%; max-height:min(88dvh,760px); border-radius:24px 24px 0 0;
    display:flex; flex-direction:column;
  }
  .vi-cookie-panel__dialog::before{
    content:""; width:42px; height:5px; border-radius:999px; background:#dbe3ee;
    margin:10px auto 0; flex:0 0 auto;
  }
  .vi-cookie-panel__head,
  .vi-cookie-panel__body,
  .vi-cookie-panel__foot{padding-left:16px; padding-right:16px;}
  .vi-cookie-panel__head{
    padding-top:14px; padding-bottom:10px; position:sticky; top:0; z-index:2;
    background:rgba(255,255,255,.98);
  }
  .vi-cookie-panel__head h3{font-size:1rem;}
  .vi-cookie-panel__head p{margin-top:8px; font-size:.88rem; line-height:1.5;}
  .vi-cookie-panel__body{
    padding-top:6px; padding-bottom:4px; overflow:auto; flex:1 1 auto;
  }
  .vi-cookie-item{gap:12px; padding:12px 0; align-items:start;}
  .vi-cookie-item__title{font-size:.92rem;}
  .vi-cookie-item__desc{margin-top:5px; font-size:.84rem; line-height:1.45;}
  .vi-switch{margin-top:2px; width:50px; height:29px;}
  .vi-switch__slider::after{width:23px; height:23px;}
  .vi-switch input:checked + .vi-switch__slider::after{transform:translateX(21px);}
  .vi-cookie-panel__foot{
    justify-content:stretch; position:sticky; bottom:0; z-index:2;
    background:rgba(255,255,255,.98); box-shadow:0 -10px 24px rgba(15,23,42,.08);
    padding-top:12px; padding-bottom:calc(14px + env(safe-area-inset-bottom));
  }
  .vi-cookie-panel__foot .vi-cookie-btn{width:100%;}
}
