
:root{
  --vt-gold-1:#f3e7b9;
  --vt-gold-2:#cdb26a;
  --vt-gold-3:#a8893a;
  --vt-ink:#0b0c0f;
  --vt-paper:#ffffff;
  --vt-muted:#aeb2b8;
  --vt-border:#e6e7ec;
  --vt-glass: rgba(12,13,16,.74);
  --vt-vh: 100dvh;
}

/* ===== Floating CTA bottom-right — versione luxury ===== */
.vt-fab-wrap{
  position:fixed; right: max(1rem, env(safe-area-inset-right)); bottom: max(1rem, env(safe-area-inset-bottom));
  z-index:2147483626; display:flex; flex-direction:column; align-items:flex-end; gap:.5rem;
  pointer-events:none; /* evita di bloccare tocchi sotto, riattiviamo sul contenuto */
}
.vt-fab-wrap > *{ pointer-events:auto; }

/* Badge raffinato */
.vt-fab-badge{
  display:inline-flex; align-items:center; gap:.4rem;
  background: rgba(12,13,16,.66);
  color:#fff; font:700 .78rem/1.15 'Open Sans', Arial; letter-spacing:.22px;
  padding:.42rem .65rem; border-radius:999px;
  position:relative;
}
.vt-fab-badge::before{
  content:""; position:absolute; inset:0; border-radius:999px; padding:1px;
  background: linear-gradient(135deg, var(--vt-gold-1), var(--vt-gold-2), var(--vt-gold-3));
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor; mask-composite: exclude;
  pointer-events:none;
}
.vt-fab-badge .dot{ width:6px; height:6px; border-radius:50%; background:var(--vt-gold-1); box-shadow:0 0 8px rgba(243,231,185,.75); }

/* Pulsante Prenota ora */
.vt-book-fab{
  position:relative;
  display:inline-flex; align-items:center; justify-content:center; gap:.6rem;
  border-radius:999px; padding:.9rem 1.35rem;
  font-weight:900; letter-spacing:.28px; text-transform:uppercase; font-size:.92rem;
  color:#fff; background: var(--vt-glass);
  box-shadow: 0 16px 42px rgba(0,0,0,.32), inset 0 0 0 1px rgba(255,255,255,.06);
  backdrop-filter: blur(12px) saturate(150%);
  transition: transform .22s ease, background .22s ease, color .22s ease;
  border: none;
}
/* Gold border con effetto “jewelry” */
.vt-book-fab::before{
  content:""; position:absolute; inset:0; border-radius:inherit; padding:1.6px;
  background: conic-gradient(from 160deg, var(--vt-gold-1), var(--vt-gold-2), var(--vt-gold-3), var(--vt-gold-2), var(--vt-gold-1));
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor; mask-composite: exclude;
  pointer-events:none;
}
/* Shine delicato */
.vt-book-fab::after{
  content:""; position:absolute; inset:0; border-radius:inherit;
  background: linear-gradient(120deg, transparent 45%, rgba(255,255,255,.22) 50%, transparent 55%);
  transform: translateX(-120%);
  animation: vtShine 4.2s linear infinite;
  pointer-events:none;
}
@keyframes vtShine{
  0%{ transform: translateX(-120%); }
  100%{ transform: translateX(120%); }
}
@media (prefers-reduced-motion: reduce){
  .vt-book-fab::after{ animation: none; opacity:0; }
}
.vt-book-fab:hover{ transform: translateY(-1px); background: rgba(12,13,16,.84); }
.vt-book-fab:active{ transform: translateY(0); }
.vt-book-fab__logo{
  width:22px; height:22px; border-radius:50%; overflow:hidden; display:inline-block;
  background:#fff; box-shadow:0 1px 2px rgba(0,0,0,.2);
}
.vt-book-fab__logo img{ width:100%; height:100%; object-fit:cover; display:block; }
.vt-book-fab__arrow{ font-size:1.1rem; line-height:1; transform: translateY(1px); }

/* Riduzione dimensioni su schermi piccoli */
@media (max-width: 420px){
  .vt-book-fab{ padding:.82rem 1.1rem; font-size:.9rem; }
  .vt-book-fab__logo{ width:20px; height:20px; }
  .vt-fab-badge{ font-size:.75rem; }
}

/* ===== Drawer & Calendar (come 3.6) ===== */
.vt-overlay{ position:fixed; inset:0; background:rgba(10,10,12,.46);
  opacity:0; visibility:hidden; transition:opacity .25s ease, visibility .25s ease;
  z-index:2147483600; }
.vt-overlay.vt-open{ opacity:1; visibility:visible; }

.vt-drawer{ position:fixed; top:0; right:0; height:100vh; width:min(520px,100vw);
  background:var(--vt-paper); box-shadow:-28px 0 64px rgba(0,0,0,.28); transform:translateX(100%); transition:transform .35s ease;
  z-index:2147483610; display:flex; flex-direction:column; border-left:1px solid var(--vt-border); }
.vt-drawer.vt-open{ transform:translateX(0); }
.vt-drawer__head{ position:sticky; top:0; z-index:2; display:flex; align-items:center; justify-content:space-between;
  padding:1rem 1.25rem; border-bottom:1px solid var(--vt-border); background:var(--vt-paper); }
.vt-drawer__title{ font:700 1.2rem/1.2 'Open Sans', Arial, Helvetica, sans-serif; color:#0e0f11; }
.vt-drawer__close{ background:transparent; border:0; font-size:1.7rem; cursor:pointer; color:#666; }
.vt-drawer__close:hover{ color:#000; }
.vt-scroll{ flex:1; overflow:auto; overscroll-behavior:contain; -webkit-overflow-scrolling:touch; padding:1rem 1.25rem 6.5rem; }
.vt-cal__nav{ display:flex; justify-content:space-between; align-items:center; margin-bottom:.65rem; }
.vt-cal__nav button{ background:#f6f6f8; border:1px solid var(--vt-border); border-radius:14px; padding:.5rem .75rem; cursor:pointer; font-weight:700; }
.vt-month{ font:800 1rem/1.1 'Open Sans'; color:#0e0f11; letter-spacing:.2px; }
.vt-cal__grid{ display:grid; grid-template-columns:repeat(7,1fr); gap:.4rem; }
.vt-cal__dow{ text-align:center; padding:.55rem .2rem; font-weight:800; color:#777; font-size:.85rem; }
.vt-cal__cell{ text-align:center; padding:.9rem .2rem; border-radius:14px; font-size:1rem; background:#fbfbfd; border:1px solid var(--vt-border);
  cursor:pointer; min-height:44px; box-shadow: 0 1px 0 rgba(0,0,0,.02) inset; }
.vt-cal__cell[aria-disabled="true"]{ opacity:.45; cursor:not-allowed; }
.vt-cal__cell.vt-selected{ background:var(--vt-gold-2); color:#000; border-color:var(--vt-gold-2); }
.vt-cal__cell.vt-inrange{ background:#f2e7c9; border-color:#f2e7c9; }

.vt-form{ display:grid; gap:.9rem; margin-top:1rem; }
.vt-form label{ display:flex; flex-direction:column; font-size:.98rem; color:#2d2e30; }
.vt-form select{ border:1px solid var(--vt-border); border-radius:14px; padding:.8rem .95rem; background:#fff; min-height:52px; }

.vt-submit-bar{ position:sticky; bottom:0; z-index:3;
  padding: .9rem 1.25rem max(1rem, env(safe-area-inset-bottom));
  background: linear-gradient(180deg, rgba(255,255,255,.88) 0%, #fff 38%);
  border-top:1px solid var(--vt-border); display:flex; gap:.6rem; }
.vt-submit-bar button{ flex:1; background:#0e0f11; color:#fff; border:0; border-radius:16px; min-height:56px;
  padding:.9rem 1rem; font-weight:900; letter-spacing:.35px; box-shadow:0 14px 30px rgba(0,0,0,.22); }
.vt-submit-bar button[disabled]{ opacity:.5; cursor:not-allowed; box-shadow:none; }
.vt-submit-bar button:hover:not([disabled]){ background: var(--vt-gold-2); color: #0e0f11; }

@media (max-width:768px){
  .vt-drawer{ width:100%; height:var(--vt-vh); right:0; left:0; top:0; bottom:0; border-left:none; border-top:none; transform:translateY(100%); border-radius:0; }
  .vt-drawer.vt-open{ transform:translateY(0); }
}

/* ===== Cookie modal (come v3.5/v3.6) ===== */
.vt-cookie-modal{ position:fixed; inset:0; z-index:2147483641; display:none; }
.vt-cookie-modal.vt-open{ display:block; }
.vt-cookie-modal__backdrop{ position:absolute; inset:0; background:rgba(8,9,11,.55); }
.vt-cookie-modal__dialog{
  position:absolute; left:50%; top:50%; transform:translate(-50%,-50%);
  width:min(820px, 94vw); max-height:88vh; overflow:auto;
  background: rgba(12,13,16,.86); color:#f2f3f7;
  border:1px solid rgba(255,255,255,.08);
  border-radius:18px; box-shadow:0 40px 100px rgba(0,0,0,.45);
  padding: clamp(1rem, 2.2vw, 1.4rem) clamp(1rem, 2.4vw, 1.6rem);
  backdrop-filter: blur(14px) saturate(130%);
}
.vt-cookie-modal h3{ font:800 1.25rem/1.15 'Open Sans', Arial; margin:.2rem 0 .75rem; color:#fff; letter-spacing:.2px; }
.vt-cookie-intro{ color:#d8dbe2; font:500 .96rem/1.6 'Open Sans', Arial; margin-bottom:.9rem; }
.vt-cookie-intro strong{ color:#fff; }
.vt-cookie-ul{ margin:.6rem 0 .9rem 1.1rem; padding:0; color:#d8dbe2; }
.vt-cookie-ul li{ margin:.25rem 0; }
.vt-cookie-list{ display:grid; gap:.8rem; }
.vt-cookie-item{ border:1px solid rgba(255,255,255,.10); border-radius:14px; padding:.85rem; background: linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.02)); }
.vt-cookie-item h4{ margin:0 0 .2rem; font:700 1rem/1.1 'Open Sans'; color:#fff; letter-spacing:.2px; }
.vt-cookie-item p{ margin:.1rem 0 0; color:#d8dbe2; }
.vt-cookie-switch{ display:flex; align-items:center; justify-content:space-between; gap:.6rem; }
.vt-switch input{ display:none; }
.vt-switch .track{ width:48px; height:28px; border-radius:999px; background:#2b2d34; position:relative; transition:background .2s; border:1px solid rgba(255,255,255,.08); }
.vt-switch .knob{ position:absolute; top:3px; left:3px; width:22px; height:22px; background:#fff; border-radius:50%; box-shadow:0 2px 4px rgba(0,0,0,.26); transition:left .2s; }
.vt-switch input:checked + .track{ background:var(--vt-gold-2); }
.vt-switch input:checked + .track .knob{ left:23px; }

.vt-cookie-modal__buttons{ display:flex; gap:.6rem; justify-content:flex-end; margin-top:1rem; }
.vt-btn{ border:0; border-radius:14px; padding:.8rem 1.1rem; font-weight:800; letter-spacing:.24px; cursor:pointer; }
.vt-btn--primary{ background:var(--vt-gold-2); color:#0e0f11; }
.vt-btn--ghost{ background:transparent; color:#f5f6fa; border:1px solid rgba(255,255,255,.18); }
.vt-btn--reject{ background:#23252b; color:#fff; border:1px solid rgba(255,255,255,.12); }
.vt-legal-links{ margin-top:.9rem; color:#cdd1d8; font-size:.9rem; }
.vt-legal-links a{ color: var(--vt-gold-1); text-decoration:underline; }
