/* ULC Booking widget — self-contained, theme-agnostic (works alongside Kadence). */
.ulc-booking { --ulc-accent:#8a6d3b; --ulc-line:#e3e0da; --ulc-bg:#fff; --ulc-ink:#2a2622;
  max-width:640px; margin:0 auto; color:var(--ulc-ink);
  font:15px/1.5 -apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif; }
.ulc-form h3, .ulc-done h3 { margin:0 0 .6em; font-size:1.35rem; color:var(--ulc-ink); }
.ulc-form label { display:block; margin:0 0 .85em; font-weight:600; }
.ulc-form input[type=text], .ulc-form input[type=email], .ulc-form input[type=tel],
.ulc-form input[type=date], .ulc-form select, .ulc-form textarea {
  display:block; width:100%; margin-top:.3em; padding:.6em .7em; font:inherit; font-weight:400;
  background:var(--ulc-bg); color:var(--ulc-ink); border:1px solid var(--ulc-line); border-radius:8px; box-sizing:border-box; }
.ulc-form textarea { resize:vertical; }
.ulc-form select:focus, .ulc-form input:focus, .ulc-form textarea:focus {
  outline:2px solid var(--ulc-accent); outline-offset:1px; border-color:var(--ulc-accent); }
.ulc-form fieldset { border:1px solid var(--ulc-line); border-radius:10px; padding:.9em 1em .3em; margin:0 0 1em; }
.ulc-form legend { font-weight:600; padding:0 .4em; font-size:.92rem; color:#6b645b; }
.ulc-check { font-weight:400 !important; display:flex; gap:.55em; align-items:flex-start; }
.ulc-check input { margin-top:.2em; }
.ulc-req { color:#b23; }
.ulc-note { background:#fbf6ec; border:1px solid #ecd9b0; border-radius:8px; padding:.6em .8em; font-size:.92rem; margin:0 0 1em; }
.ulc-hint { color:#6b645b; font-size:.92rem; margin:.2em 0 1em; }
/* slots */
.ulc-slots { display:flex; flex-wrap:wrap; gap:.5em; margin:0 0 1.1em; }
.ulc-slot { padding:.5em .8em; border:1px solid var(--ulc-line); background:var(--ulc-bg); color:var(--ulc-ink);
  border-radius:8px; cursor:pointer; font:inherit; }
.ulc-slot:hover { border-color:var(--ulc-accent); }
.ulc-slot.is-selected { background:var(--ulc-accent); color:#fff; border-color:var(--ulc-accent); }
/* honeypot — hidden from humans, present for bots */
.ulc-hp { position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
/* submit + messages */
.ulc-submit { display:inline-block; margin-top:.4em; padding:.75em 1.6em; font:inherit; font-weight:700; color:#fff;
  background:var(--ulc-accent); border:0; border-radius:9px; cursor:pointer; }
.ulc-submit:disabled { opacity:.6; cursor:default; }
.ulc-msg { margin-top:.9em; font-size:.95rem; }
.ulc-msg:empty { display:none; }
.ulc-msg.ulc-err  { color:#a12; }
.ulc-msg.ulc-warn { color:#8a5b00; background:#fbf6ec; border:1px solid #ecd9b0; border-radius:8px; padding:.6em .8em; }
.ulc-msg.ulc-info { color:#555; }
.ulc-done { text-align:center; padding:1.2em 0; }
.ulc-done a { color:var(--ulc-accent); }
/* calendar-only date picker */
.ulc-field { margin:0 0 1em; }
.ulc-fieldlabel { display:block; font-weight:600; margin-bottom:.35em; }
.ulc-cal { border:1px solid var(--ulc-line); border-radius:10px; padding:.6em; max-width:340px; }
.ulc-cal-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:.45em; }
.ulc-cal-title { font-weight:600; }
.ulc-cal-nav { border:1px solid var(--ulc-line); background:var(--ulc-bg); color:var(--ulc-ink); border-radius:7px;
  width:2em; height:2em; font-size:1rem; line-height:1; cursor:pointer; }
.ulc-cal-nav:disabled { opacity:.35; cursor:default; }
.ulc-cal-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:3px; }
.ulc-cal-dow { text-align:center; font-size:.72rem; color:#6b645b; padding:.2em 0; }
.ulc-day { border:1px solid transparent; background:var(--ulc-bg); color:var(--ulc-ink); border-radius:7px;
  height:2.2em; font:inherit; font-size:.9rem; cursor:pointer; padding:0; }
.ulc-day:hover:not([disabled]) { border-color:var(--ulc-accent); }
.ulc-day.is-selected { background:var(--ulc-accent); color:#fff; }
.ulc-day[disabled] { color:#cbc6be; cursor:default; }
@media (max-width:480px){ .ulc-booking{ font-size:16px; } .ulc-submit{ width:100%; } .ulc-cal{ max-width:100%; } }
