/* ---- Villa Quick Ask : n'utilise que les tokens du site ---- */
#vq-root{position:fixed;inset:0;z-index:100000;display:flex;align-items:flex-end;justify-content:center;
  font-family:var(--font-body,'Inter',sans-serif);overscroll-behavior:contain}
#vq-root[hidden]{display:none}
#vq-root .vq-scrim{position:absolute;inset:0;background:rgba(13,27,42,.72);opacity:0;transition:opacity .22s ease}
#vq-root.is-open .vq-scrim{opacity:1}

#vq-root .vq-sheet{position:relative;width:100%;max-width:520px;display:flex;flex-direction:column;overflow:hidden;
  background:var(--cream,#faf8f5);border-radius:16px 16px 0 0;
  box-shadow:0 -14px 46px rgba(13,27,42,.34);
  max-height:92vh;max-height:92dvh;
  transform:translate3d(0,100%,0);transition:transform .26s cubic-bezier(.22,.9,.3,1)}
#vq-root.is-open .vq-sheet{transform:translate3d(0,0,0)}
#vq-root .vq-sheet.is-dragging{transition:none}
#vq-root .vq-sheet:focus{outline:none}
@media (min-width:721px){
  #vq-root{align-items:center;padding:24px}
  #vq-root .vq-sheet{border-radius:14px;max-height:88vh;opacity:0;transform:translate3d(0,14px,0);
    transition:transform .18s ease,opacity .18s ease;box-shadow:0 18px 60px rgba(13,27,42,.36)}
  #vq-root.is-open .vq-sheet{opacity:1;transform:none}
}
@media (prefers-reduced-motion:reduce){
  #vq-root .vq-scrim, #vq-root .vq-sheet{transition:none}
  #vq-root .vq-sheet{transform:none;opacity:1}
}

/* poignée : posée sur une bande crème, jamais sur la photo (contraste garanti) */
#vq-root .vq-handle{flex:0 0 auto;height:16px;display:flex;align-items:center;justify-content:center;
  background:var(--cream,#faf8f5);touch-action:none}
#vq-root .vq-handle i{display:block;width:38px;height:4px;border-radius:2px;background:rgba(45,55,72,.28)}
@media (min-width:721px){#vq-root .vq-handle{display:none}}

/* ---- le reçu visuel : la villa cliquée, nommée et montrée ---- */
#vq-root .vq-hero{position:relative;margin:0;flex:0 0 auto;overflow:hidden;touch-action:none;
  background:var(--navy,#0d1b2a);height:clamp(104px,21vh,156px);transition:height .18s ease}
#vq-root .vq-hero__img{display:block;width:100%;height:100%;object-fit:cover;background:var(--navy,#0d1b2a)}
#vq-root .vq-hero__img[hidden]{display:none}
#vq-root .vq-hero__cap{position:absolute;left:0;right:0;bottom:0;
  padding:30px calc(58px + env(safe-area-inset-right,0px)) 10px calc(16px + env(safe-area-inset-left,0px));
  background:linear-gradient(180deg,rgba(13,27,42,0) 0%,rgba(13,27,42,.62) 34%,rgba(13,27,42,.94) 100%)}
#vq-root .vq-title{margin:0;color:var(--cream,#faf8f5);font-weight:600;
  font-family:var(--font-display,'Cormorant Garamond',Georgia,serif);
  font-size:clamp(1.3rem,5vw,1.6rem);line-height:1.14;overflow-wrap:break-word;
  text-shadow:0 1px 10px rgba(13,27,42,.55);
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
#vq-root .vq-meta{margin:3px 0 0;font-size:11px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--bw-accent,#C9A472);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* clavier ouvert : le hero se replie, la preuve reste visible, le champ remonte */
#vq-root .vq-sheet.is-compact .vq-hero{height:60px}
#vq-root .vq-sheet.is-compact .vq-hero__cap{top:0;display:flex;flex-direction:column;justify-content:center;
  padding-top:0;padding-bottom:0;
  background:linear-gradient(90deg,rgba(13,27,42,.94) 0%,rgba(13,27,42,.80) 100%)}
#vq-root .vq-sheet.is-compact .vq-title{font-family:var(--font-body,'Inter',sans-serif);
  font-size:15px;font-weight:600;letter-spacing:.02em;-webkit-line-clamp:1}
#vq-root .vq-sheet.is-compact .vq-meta{display:none}

#vq-root .vq-close{position:absolute;top:8px;right:calc(8px + env(safe-area-inset-right,0px));z-index:3;
  width:44px;height:44px;padding:0;border:0;border-radius:50%;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  color:var(--cream,#faf8f5);background:rgba(13,27,42,.62);
  box-shadow:0 1px 6px rgba(13,27,42,.45);-webkit-tap-highlight-color:transparent}
#vq-root .vq-close svg{width:20px;height:20px}
#vq-root .vq-close:focus-visible{outline:2px solid var(--gold,#b8956c);outline-offset:2px}

/* ---- corps défilant ---- */
#vq-root .vq-body{flex:1 1 auto;overflow-y:auto;-webkit-overflow-scrolling:touch;
  overscroll-behavior:contain;touch-action:pan-y;
  padding:14px calc(16px + env(safe-area-inset-right,0px)) 6px calc(16px + env(safe-area-inset-left,0px))}
#vq-root .vq-lede{margin:0 0 12px;font-size:.94rem;line-height:1.45;color:var(--text,#2d3748)}

/* ---- canal de réponse : explicite, 44px, jamais deviné ---- */
#vq-root .vq-tabs{display:flex;margin:0 0 12px;background:#fff;border-radius:10px;overflow:hidden;
  border:1px solid rgba(14,35,54,.20)}
#vq-root .vq-tab{flex:1 1 0;min-width:0;min-height:44px;border:0;background:transparent;cursor:pointer;
  font-family:inherit;font-size:13px;font-weight:600;letter-spacing:.04em;
  color:var(--text-light,#718096);-webkit-tap-highlight-color:transparent}
#vq-root .vq-tab[aria-pressed="true"]{background:var(--navy,#0d1b2a);color:var(--cream,#faf8f5)}
#vq-root .vq-tab:focus-visible{outline:2px solid var(--gold,#b8956c);outline-offset:-2px}

#vq-root .vq-field{margin:0 0 12px}
#vq-root .vq-label{display:block;margin:0 0 5px;font-size:.72rem;font-weight:600;letter-spacing:.06em;
  text-transform:uppercase;color:var(--text,#2d3748)}
#vq-root .vq-opt{font-weight:400;letter-spacing:0;text-transform:none;color:var(--text-light,#718096)}
/* 16px en dur : en dessous, iOS zoome à chaque focus et la preuve sort du cadre */
#vq-root .vq-input{display:block;width:100%;box-sizing:border-box;min-width:0;min-height:48px;padding:12px 14px;
  font-family:inherit;font-size:16px;line-height:1.35;color:var(--text,#2d3748);background:#fff;
  border:1px solid rgba(14,35,54,.20);border-radius:10px;-webkit-appearance:none;appearance:none;
  transition:border-color .15s ease,box-shadow .15s ease}
#vq-root .vq-input::placeholder{color:var(--text-light,#718096);opacity:.8}
#vq-root .vq-input:focus{outline:none;border-color:var(--gold,#b8956c);box-shadow:0 0 0 3px rgba(184,149,108,.22)}
#vq-root .vq-input--area{min-height:62px;line-height:1.4;resize:vertical}
#vq-root .vq-input.is-invalid{border-color:var(--gold,#b8956c);box-shadow:0 0 0 3px rgba(184,149,108,.34)}
#vq-root .vq-hint{margin:5px 0 0;font-size:12px;line-height:1.35;color:var(--text-light,#718096)}
#vq-root .vq-hint b{color:var(--text,#2d3748);font-weight:600}
/* hauteur réservée : un message d'erreur ne doit JAMAIS déplacer le bouton */
#vq-root .vq-error{margin:4px 0 0;min-height:17px;font-size:12.5px;line-height:1.35;font-weight:600;
  color:var(--navy,#0d1b2a)}

#vq-root .vq-hp{position:absolute!important;left:-9999px!important;top:auto!important;
  width:1px!important;height:1px!important;overflow:hidden!important}

/* ---- confirmation, dans la même feuille ---- */
#vq-root .vq-done{padding:2px 0 10px}
#vq-root .vq-done__mark{width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  background:var(--navy,#0d1b2a);color:var(--cream,#faf8f5);margin:0 0 10px}
#vq-root .vq-done__mark svg{width:20px;height:20px}
#vq-root .vq-done__title{margin:0 0 8px;font-family:var(--font-display,'Cormorant Garamond',Georgia,serif);
  font-weight:600;font-size:1.35rem;line-height:1.2;color:var(--navy,#0d1b2a);outline:none}
#vq-root .vq-done__recap{margin:0 0 10px;padding:10px 12px;border-radius:8px;white-space:pre-line;
  background:var(--bw-bg-alt,#ECE6D5);color:var(--text,#2d3748);font-size:13.5px;line-height:1.5;
  overflow-wrap:break-word}
#vq-root .vq-done__text{margin:0;font-size:13px;line-height:1.5;color:var(--text-light,#718096)}

/* ---- pied fixe : le bouton d'envoi n'est jamais sous le clavier ---- */
#vq-root .vq-foot{flex:0 0 auto;background:var(--cream,#faf8f5);border-top:1px solid rgba(14,35,54,.10);
  box-shadow:0 -6px 18px rgba(13,27,42,.06);
  padding:10px calc(16px + env(safe-area-inset-right,0px))
          calc(10px + env(safe-area-inset-bottom,0px)) calc(16px + env(safe-area-inset-left,0px))}
#vq-root .vq-reassure{margin:0 0 8px;font-size:11.5px;line-height:1.35;text-align:center;color:var(--text-light,#718096)}
#vq-root .vq-reassure a{color:var(--text,#2d3748)}
#vq-root .vq-submit{display:flex;align-items:center;justify-content:center;gap:9px;width:100%;min-height:52px;
  padding:0 16px;border:0;border-radius:6px;cursor:pointer;font-family:inherit;font-size:15px;
  font-weight:600;letter-spacing:.02em;text-align:center;
  background:var(--bw-bg-dark,#0E2336);color:var(--bw-bg,#F4F0E6);
  -webkit-tap-highlight-color:transparent;touch-action:manipulation;
  transition:filter .15s ease,box-shadow .15s ease}
#vq-root .vq-submit:active{filter:brightness(.93)}
#vq-root .vq-submit.is-ready{box-shadow:0 0 0 2px rgba(201,164,114,.6)}
#vq-root .vq-submit[disabled]{opacity:.7;cursor:default}
#vq-root .vq-submit:focus-visible{outline:2px solid var(--gold,#b8956c);outline-offset:2px}
#vq-root .vq-spin{display:none;width:15px;height:15px;border-radius:50%;
  border:2px solid rgba(244,240,230,.35);border-top-color:var(--bw-bg,#F4F0E6);animation:vqspin .7s linear infinite}
#vq-root .vq-submit.is-sending .vq-spin{display:block}
@keyframes vqspin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){#vq-root .vq-spin{animation-duration:2.4s}}
#vq-root .vq-wa{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:44px;
  margin:8px 0 0;border-radius:6px;text-decoration:none;font-size:13.5px;font-weight:600;
  color:var(--navy,#0d1b2a);border:1.5px solid rgba(14,35,54,.26);
  -webkit-tap-highlight-color:transparent;touch-action:manipulation}
#vq-root .vq-wa svg{width:17px;height:17px;flex:0 0 auto;color:#25D366}
#vq-root .vq-wa.is-strong{border-color:#25D366;box-shadow:0 0 0 2px rgba(37,211,102,.22)}
#vq-root .vq-wa:focus-visible{outline:2px solid var(--gold,#b8956c);outline-offset:2px}

/* ---- verrou de page : rien ne flotte par-dessus la feuille ---- */
body.vq-lock{position:fixed;left:0;right:0;width:100%;overflow:hidden}
body.vq-lock .lp-tabbar,
body.vq-lock .lp-mobile-cta-bar,
body.vq-lock .float-contact,
body.vq-lock [class*="float"],
body.vq-lock [class*="fab"]{display:none!important}

/* ---- carte : état « déjà demandé », sans décalage de mise en page ---- */
a.lp-villa-ask.vq-requested{background:transparent;color:var(--bw-ink-soft,#3F4F6A);
  box-shadow:inset 0 0 0 1.5px rgba(14,35,54,.28)}

/* ---- galerie : le bouton d'entrée n°2, injecté dans sa barre ---- */
.vgal .vgal-bar{flex-wrap:wrap;row-gap:10px}
.vgal .vgal-name{flex:1 1 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vgal .vq-gal-ask{flex:0 0 auto;min-height:44px;padding:0 16px;border:0;border-radius:4px;cursor:pointer;
  background:var(--bw-accent,#C9A472);color:#0E2336;
  font-family:var(--font-body,'Inter',sans-serif);font-size:13px;font-weight:600;letter-spacing:.03em;
  -webkit-tap-highlight-color:transparent;touch-action:manipulation}
.vgal .vq-gal-ask:focus-visible{outline:2px solid #faf8f5;outline-offset:2px}
/* sous 640px : le CTA prend sa propre ligne pleine largeur, la barre ne casse pas */
@media (max-width:640px){
  .vgal .vgal-nav{order:2}
  .vgal .vq-gal-ask{order:3;flex:1 0 100%;width:100%}
}