/* Holdviola booking modal + form wiring — brand-matched (violet #4a0292, Prata/Caudex/Baloo). */
:root{
  --hv-violet:#4a0292;
  --hv-grad-a:linear-gradient(135deg,#250779,#ad56d9);
  --hv-grad-b:linear-gradient(135deg,#5a1fa0,#8f3dc7);
  --hv-panel:#f0edef;
  --hv-star:#ffb31f;
}

/* ---------- modal shell ---------- */
.hvb-overlay{
  position:fixed;inset:0;z-index:10000;display:none;
  align-items:flex-start;justify-content:center;
  background:rgba(37,7,55,.55);backdrop-filter:blur(4px);
  padding:4vh 16px;overflow-y:auto;opacity:0;transition:opacity .25s ease;
}
.hvb-overlay.is-open{display:flex;opacity:1;}
.hvb-modal{
  background:#fff;width:100%;max-width:540px;border-radius:16px;
  border:1.6px solid var(--hv-violet);
  box-shadow:0 24px 60px rgba(37,7,55,.35);
  overflow:hidden;position:relative;
  font-family:"Caudex",serif;color:#000;
  animation:hvb-pop .3s cubic-bezier(.16,1,.3,1);
}
@keyframes hvb-pop{from{transform:translateY(18px) scale(.98);opacity:0}to{transform:none;opacity:1}}
@media (prefers-reduced-motion:reduce){.hvb-modal{animation:none}.hvb-overlay{transition:none}}

.hvb-header{
  background:var(--hv-grad-b);color:#fff;padding:1.4rem 1.5rem;position:relative;
}
.hvb-header h3{
  font-family:"Prata",serif;font-weight:400;color:#fff;margin:0;
  font-size:1.4rem;line-height:1.25;
}
.hvb-header p{margin:.4rem 0 0;font-size:.95rem;opacity:.92;}
.hvb-close{
  position:absolute;top:.85rem;right:.95rem;width:34px;height:34px;border:none;
  background:rgba(255,255,255,.18);color:#fff;border-radius:50%;cursor:pointer;
  font-size:1.25rem;line-height:1;display:flex;align-items:center;justify-content:center;
  transition:background .2s;
}
.hvb-close:hover{background:rgba(255,255,255,.34);}

.hvb-body{padding:1.4rem 1.5rem 1.6rem;}

/* ---------- steps / progress ---------- */
.hvb-steps{display:flex;gap:.5rem;margin-bottom:1.1rem;}
.hvb-steps span{
  flex:1;height:5px;border-radius:1000px;background:#e7dff0;transition:background .3s;
}
.hvb-steps span.done{background:var(--hv-violet);}

.hvb-step-title{font-family:"Prata",serif;font-size:1.15rem;color:var(--hv-violet);margin:0 0 .9rem;}

/* ---------- lists of choices ---------- */
.hvb-group-label{
  font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;
  color:#7a5491;margin:1rem 0 .5rem;font-family:"Baloo Bhaijaan 2",sans-serif;font-weight:500;
}
.hvb-group-label:first-child{margin-top:0;}
.hvb-choice{
  display:flex;justify-content:space-between;align-items:center;gap:.75rem;
  width:100%;text-align:left;background:#fff;border:1.6px solid #e0cdf0;
  border-radius:10px;padding:.8rem 1rem;margin-bottom:.55rem;cursor:pointer;
  font-family:"Caudex",serif;font-size:1rem;color:#000;transition:border-color .18s,background .18s,transform .12s;
}
.hvb-choice:hover{border-color:var(--hv-violet);background:#fbf7ff;}
.hvb-choice.is-selected{border-color:var(--hv-violet);background:#f6efff;}
.hvb-choice .hvb-choice-meta{color:#6a4a85;font-size:.9rem;white-space:nowrap;}
.hvb-choice .hvb-chevron{color:var(--hv-violet);flex:0 0 auto;}

/* ---------- slot grid ---------- */
.hvb-day{font-family:"Prata",serif;color:var(--hv-violet);font-size:1.02rem;margin:1rem 0 .5rem;}
.hvb-day:first-of-type{margin-top:0;}
.hvb-slots{display:flex;flex-wrap:wrap;gap:.5rem;}
.hvb-slot{
  border:1.6px solid #e0cdf0;background:#fff;border-radius:1000px;
  padding:.45rem 1rem;cursor:pointer;font-family:"Caudex",serif;font-size:.95rem;
  color:var(--hv-violet);transition:all .15s;
}
.hvb-slot:hover{border-color:var(--hv-violet);background:#f6efff;}
.hvb-slot.is-selected{background:var(--hv-violet);color:#fff;border-color:var(--hv-violet);}

/* ---------- form fields ---------- */
.hvb-field{margin-bottom:.85rem;}
.hvb-field label{display:block;font-size:.9rem;margin-bottom:.3rem;color:#2d1e3c;}
.hvb-field input,.hvb-field textarea{
  width:100%;border:1.6px solid #e0cdf0;border-radius:10px;padding:.7rem .85rem;
  font-family:"Caudex",serif;font-size:1rem;color:#000;background:#fff;box-sizing:border-box;
}
.hvb-field input:focus,.hvb-field textarea:focus{outline:none;border-color:var(--hv-violet);}
.hvb-field textarea{min-height:74px;resize:vertical;}

.hvb-summary{
  background:var(--hv-panel);border-radius:10px;padding:.8rem 1rem;margin-bottom:1rem;
  font-size:.95rem;color:#2d1e3c;
}
.hvb-summary strong{color:var(--hv-violet);}

/* ---------- buttons ---------- */
.hvb-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.4rem;
  font-family:"Baloo Bhaijaan 2",sans-serif;font-weight:500;text-transform:uppercase;
  background:var(--hv-violet);color:#fff;border:1px solid var(--hv-violet);
  border-radius:1000px;padding:.85rem 1.5rem .7rem;cursor:pointer;font-size:1rem;
  transition:background .2s,color .2s;width:100%;
}
.hvb-btn:hover{background:#fff;color:var(--hv-violet);}
.hvb-btn[disabled]{opacity:.5;cursor:not-allowed;}
.hvb-btn.is-ghost{background:transparent;color:var(--hv-violet);}
.hvb-btn.is-ghost:hover{background:#f6efff;}
.hvb-actions{display:flex;gap:.7rem;margin-top:1.1rem;}
.hvb-actions .hvb-btn{width:auto;flex:1;}

/* ---------- states ---------- */
.hvb-msg{font-family:"Caudex",serif;font-size:.95rem;padding:.7rem .9rem;border-radius:10px;margin-bottom:.9rem;}
.hvb-msg.err{background:#fef3f2;color:#b42318;}
.hvb-loading{text-align:center;color:#6a4a85;padding:1.5rem 0;font-family:"Caudex",serif;}
.hvb-empty{color:#6a4a85;font-family:"Caudex",serif;padding:.5rem 0 1rem;}

.hvb-success{text-align:center;padding:.5rem 0 .5rem;}
.hvb-success .hvb-check{
  width:64px;height:64px;border-radius:50%;background:#ecfdf3;color:#027a48;
  display:flex;align-items:center;justify-content:center;margin:0 auto 1rem;font-size:2rem;
}
.hvb-success h4{font-family:"Prata",serif;font-weight:400;color:var(--hv-violet);font-size:1.3rem;margin:0 0 .6rem;}
.hvb-success p{margin:0 0 .4rem;color:#2d1e3c;}

/* spinner */
.hvb-spin{display:inline-block;width:18px;height:18px;border:2px solid #e0cdf0;border-top-color:var(--hv-violet);border-radius:50%;animation:hvb-rot .7s linear infinite;vertical-align:middle;}
@keyframes hvb-rot{to{transform:rotate(360deg)}}

/* ---------- newsletter / gift inline form feedback ---------- */
.hv-inline-msg{
  margin-top:.6rem;font-family:"Caudex",serif;font-size:.9rem;
}
.hv-inline-msg.ok{color:#9be7c4;}
.footer2_component .hv-inline-msg.ok{color:#cdeedd;}
.hv-inline-msg.err{color:#ffb4ad;}

.gift-success-box{
  background:var(--hv-panel);border:1.6px solid var(--hv-violet);border-radius:12px;
  padding:1.2rem 1.4rem;margin-top:1rem;font-family:"Caudex",serif;color:#2d1e3c;
}
.gift-success-box strong{color:var(--hv-violet);}

@media (max-width:480px){
  .hvb-overlay{padding:2vh 10px;}
  .hvb-header h3{font-size:1.2rem;}
}
