  *{box-sizing:border-box;margin:0;padding:0}
  :root{
    --accent:#e1251b;
    --ink:#0d1b28;
    --e-out:cubic-bezier(.23,1,.32,1);
    --e-io:cubic-bezier(.77,0,.175,1);
  }
  html{scroll-behavior:smooth}
  body{font-family:'Archivo',system-ui,sans-serif;background:#0b1622;color:#eef3f7;-webkit-font-smoothing:antialiased;text-wrap:pretty}
  a{color:inherit;text-decoration:none}
  a:hover{color:var(--accent)}
  button,input,textarea,select{font:inherit}
  ::selection{background:var(--accent);color:#fff}
  :focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}

  @keyframes vfadeup{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
  @keyframes vmodalin{from{opacity:0}to{opacity:1}}
  @keyframes vsheetin{from{opacity:0;transform:translateY(14px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}
  @keyframes vstepin{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
  @keyframes vpop{from{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}

  /* press feedback — every pressable */
  .vp{transition:transform 140ms var(--e-out),background-color 180ms ease,border-color 180ms ease,color 180ms ease,box-shadow 180ms ease}
  .vp:active{transform:scale(.975)}

  @media (hover:hover) and (pointer:fine){
    .vnav-a:hover{color:#fff}
    .vbtn-red:hover{background:#f5382e}
    .vbtn-ghost:hover{background:rgba(255,255,255,.09);border-color:rgba(255,255,255,.45)}
    .vsvc:hover{border-color:rgba(255,255,255,.26);transform:translateY(-3px)}
    .vsvc:hover .vsvc-img{transform:scale(1.045)}
    .vloc:hover{border-color:rgba(255,255,255,.24)}
    .vopt:not([data-on="1"]):hover{border-color:#c2ccd4}
    .vslot:not([disabled]):not([data-on="1"]):hover{border-color:var(--ink)}
    .vday:not([data-on="1"]):hover{border-color:var(--ink)}
    .vghost-l:hover{background:#eef1f4}
    .vclose:hover{background:#eef1f4}
  }

  /* booking option cards (light panel) */
  .vopt{transition:transform 140ms var(--e-out),border-color 180ms ease,box-shadow 180ms ease,background-color 180ms ease}
  .vopt:active{transform:scale(.99)}
  .vopt[data-on="1"]{border-color:var(--accent) !important;background:#fff6f5 !important;box-shadow:inset 0 0 0 1px var(--accent)}
  .vslot[data-on="1"]{border-color:var(--accent) !important;background:var(--accent) !important;color:#fff !important}
  .vslot[disabled]{opacity:.34;cursor:not-allowed;text-decoration:line-through}
  .vseg:active{transform:scale(.985)}
  .vseg:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
  .vday[data-on="1"]{border-color:var(--accent) !important;background:var(--accent) !important;color:#fff !important}

  .vinput{width:100%;background:#fff;border:1px solid #d5dde4;color:var(--ink);font-size:16px;padding:13px 14px;border-radius:8px;outline:none;transition:border-color 160ms ease,box-shadow 160ms ease;min-height:48px}
  .vinput:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(225,37,27,.14)}
  .vinput::placeholder{color:#9aa9b6}
  .vinput[data-err="1"]{border-color:var(--accent);background:#fff7f6}
  textarea.vinput{min-height:92px;resize:vertical}

  .vstagger>*{animation:vstepin 320ms var(--e-out) both}
  .vstagger>*:nth-child(2){animation-delay:40ms}
  .vstagger>*:nth-child(3){animation-delay:80ms}
  .vstagger>*:nth-child(4){animation-delay:120ms}
  .vstagger>*:nth-child(5){animation-delay:160ms}
  .vstagger>*:nth-child(6){animation-delay:200ms}

  .vscroll-x{scrollbar-width:thin}
  .vscroll-x::-webkit-scrollbar{height:6px}
  .vscroll-x::-webkit-scrollbar-thumb{background:#d5dde4;border-radius:99px}

  @media (max-width:1100px){
    .vsvc-grid{grid-template-columns:repeat(2,minmax(0,1fr)) !important}
  }
  @media (max-width:960px){
    .vbook-grid{min-height:0 !important}
    .vnav-desktop{display:none !important}
    .vnav-mobile{display:flex !important}
    .vhero-split{grid-template-columns:1fr !important}
    .vhero-split-photo{min-height:280px !important;order:-1}
    .vbook-grid{grid-template-columns:1fr !important}
    .vrecap{position:static !important;order:-1;margin:clamp(16px,3vw,28px) !important;margin-bottom:0 !important;padding:16px !important}
    .vrecap-body{display:none !important}
    .vrecap-label{display:none !important}
    .vrecap-note{display:none !important}
    .vrecap-compact{display:flex !important}
    .vloc-grid{grid-template-columns:1fr !important}
    .vfoot-grid{grid-template-columns:1fr !important}
  }
  @media (max-width:720px){
    .vsvc-grid{grid-template-columns:1fr !important}
    .vform-grid{grid-template-columns:1fr !important}
    .vhours-row{flex-direction:column !important;align-items:flex-start !important;gap:4px}
    .vmobile-cta{display:flex !important}
  }

  @media (prefers-reduced-motion:reduce){
    *,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.12s !important}
    .vp:active,.vopt:active,.vsvc:hover{transform:none !important}
    html{scroll-behavior:auto}
  }
