/* =========================================================================
 * SyncBooking · Booking Bar (theme01 design)
 * Self-contained: depends only on the brand variables injected by the plugin
 * (--syncbooking_maincolor / --syncbooking_barfont), with sensible fallbacks.
 * Class prefix "sb-" + everything scoped under .sb-bookbar to avoid clashing
 * with the host theme.
 * ========================================================================= */

.sb-bookbar{
  /* typography */
  --sb-serif:'Cormorant Garamond', Georgia, 'Times New Roman', serif;
  --sb-sans:'Jost', system-ui, -apple-system, 'Segoe UI', sans-serif;
  /* neutral palette (from theme01) */
  --sb-ink:#2b2723;
  --sb-muted:#7d7468;
  --sb-line:#e6dfd2;
  /* brand-driven palette: follows each hotel's primary colour */
  --sb-bar-bg:var(--syncbooking_maincolor, #8a463f);
  --sb-bar-fg:var(--syncbooking_barfont, #ffffff);
  --sb-bar-fg-soft:rgba(255,255,255,.72);

  position:fixed;left:50%;transform:translateX(-50%);bottom:0;
  width:min(1060px,100vw);z-index:2147483000;
  font-family:var(--sb-sans);
}
.sb-bookbar *{box-sizing:border-box;}

/* ===== desktop bar ===== */
.sb-bookbar .sb-bar{
  background:var(--sb-bar-bg);border:0;
  box-shadow:0 -16px 44px -26px rgba(45,24,22,.6);
  display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr auto;
  align-items:stretch;width:100%;margin:0;
}
.sb-bookbar .sb-field{
  display:flex;flex-direction:column;gap:5px;
  padding:9px clamp(14px,1.8vw,26px);
  border-right:1px solid rgba(255,255,255,.18);justify-content:center;
}
.sb-bookbar .sb-title{
  font-family:var(--sb-sans);font-size:9.5px;font-weight:500;
  letter-spacing:.18em;text-transform:uppercase;color:var(--sb-bar-fg-soft);
}
.sb-bookbar .sb-control{position:relative;}
.sb-bookbar .sb-control select,
.sb-bookbar .sb-control input{
  font-family:var(--sb-serif);font-size:18px;line-height:1;color:var(--sb-bar-fg);
  background:transparent;border:0;padding:0;outline:none;
  -webkit-appearance:none;appearance:none;cursor:pointer;width:100%;font-weight:500;
}
.sb-bookbar .sb-control select option{color:var(--sb-ink);}
.sb-bookbar .sb-has-caret select{padding-right:22px;}
.sb-bookbar .sb-has-caret::after{
  content:"";position:absolute;right:2px;top:50%;width:8px;height:8px;
  border-right:1.6px solid rgba(255,255,255,.7);
  border-bottom:1.6px solid rgba(255,255,255,.7);
  transform:translateY(-65%) rotate(45deg);pointer-events:none;
}
.sb-bookbar .sb-submit{padding:0;border-right:0;}
.sb-bookbar .sb-submit button{
  height:100%;width:100%;min-width:160px;border:0;cursor:pointer;
  background:var(--sb-bar-bg);filter:brightness(.84);color:var(--sb-bar-fg);
  font-family:var(--sb-sans);font-weight:500;font-size:11px;letter-spacing:.2em;
  text-transform:uppercase;transition:filter .3s;padding:0 28px;
}
.sb-bookbar .sb-submit button:hover{filter:brightness(.7);}

/* ===== mobile bar ===== */
.sb-bookbar .sb-mobile{
  display:none;gap:0;padding:0;background:#fff;border-top:1px solid var(--sb-line);
  box-shadow:0 -18px 50px -28px rgba(45,24,22,.45);height:44px;
}
.sb-bookbar .sb-mobile a{
  flex:1;display:flex;align-items:center;justify-content:center;text-decoration:none;
  font-family:var(--sb-sans);font-weight:500;font-size:11px;letter-spacing:.16em;
  text-transform:uppercase;transition:.3s;
}
.sb-bookbar .sb-mobile .sb-book{background:var(--sb-bar-bg);color:var(--sb-bar-fg);}
.sb-bookbar .sb-mobile .sb-book:hover{filter:brightness(.85);}
.sb-bookbar .sb-mobile .sb-contact{background:#fff;color:var(--sb-bar-bg);border:1px solid var(--sb-bar-bg);}
.sb-bookbar .sb-mobile .sb-contact:hover{background:var(--sb-bar-bg);color:var(--sb-bar-fg);}

@media(max-width:768px){
  .sb-bookbar .sb-bar{display:none;}
  .sb-bookbar .sb-mobile{display:flex;}
}

/* ===== date range calendar (opens upward) ===== */
.sb-bookbar .sb-dates-field .sb-control{position:relative;}
.sb-bookbar .sb-dates-display{
  -webkit-appearance:none;appearance:none;background:transparent;border:0;padding:0;margin:0;
  text-align:left;cursor:pointer;font-family:var(--sb-serif);font-size:18px;line-height:1;
  font-weight:500;color:var(--sb-bar-fg);width:100%;
}
.sb-bookbar .sb-dates-pop{
  position:absolute;left:0;bottom:calc(100% + 14px);z-index:60;background:#fff;
  border:1px solid var(--sb-line);box-shadow:0 -24px 60px -28px rgba(45,24,22,.5);
  padding:18px;width:620px;max-width:92vw;
}
.sb-bookbar .sb-dates-pop[hidden]{display:none;}
.sb-bookbar .sb-cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;}
.sb-bookbar .sb-cal-months{
  display:flex;flex:1;justify-content:space-around;gap:20px;
  font-family:var(--sb-serif);font-size:18px;font-weight:500;color:var(--sb-ink);
}
.sb-bookbar .sb-cal-nav{
  -webkit-appearance:none;appearance:none;background:transparent;border:1px solid var(--sb-line);
  width:34px;height:34px;border-radius:50%;cursor:pointer;color:var(--sb-ink);font-size:18px;
  line-height:1;display:flex;align-items:center;justify-content:center;transition:.25s;flex:0 0 auto;
}
.sb-bookbar .sb-cal-nav:hover{background:var(--sb-bar-bg);color:var(--sb-bar-fg);border-color:var(--sb-bar-bg);}
.sb-bookbar .sb-cal-grids{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
.sb-bookbar .sb-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;}
.sb-bookbar .sb-cal-dow{
  font-family:var(--sb-sans);font-size:10px;letter-spacing:.06em;text-transform:uppercase;
  color:var(--sb-muted);text-align:center;padding:4px 0;
}
.sb-bookbar .sb-cal-day{
  -webkit-appearance:none;appearance:none;background:transparent;border:0;cursor:pointer;
  font-family:var(--sb-sans);font-size:13px;color:var(--sb-ink);aspect-ratio:1;
  display:flex;align-items:center;justify-content:center;position:relative;
  transition:background .2s,color .2s;
}
.sb-bookbar .sb-cal-day:hover:not(:disabled){background:rgba(0,0,0,.06);}
.sb-bookbar .sb-cal-day:disabled{color:#cdc5ba;cursor:default;}
.sb-bookbar .sb-cal-day.is-empty{visibility:hidden;cursor:default;}
.sb-bookbar .sb-cal-day.in-range{background:rgba(0,0,0,.05);}
.sb-bookbar .sb-cal-day.range-start,
.sb-bookbar .sb-cal-day.range-end{background:var(--sb-bar-bg);color:var(--sb-bar-fg);font-weight:600;}
.sb-bookbar .sb-cal-day.range-start{border-radius:50% 0 0 50%;}
.sb-bookbar .sb-cal-day.range-end{border-radius:0 50% 50% 0;}
.sb-bookbar .sb-cal-day.range-start.range-end{border-radius:50%;}
.sb-bookbar .sb-cal-foot{
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  margin-top:14px;padding-top:14px;border-top:1px solid var(--sb-line);
}
.sb-bookbar .sb-cal-summary{font-family:var(--sb-sans);font-size:13px;color:var(--sb-muted);}
.sb-bookbar .sb-dates-done{
  -webkit-appearance:none;appearance:none;border:0;cursor:pointer;background:var(--sb-bar-bg);
  color:var(--sb-bar-fg);font-family:var(--sb-sans);font-size:11px;letter-spacing:.18em;
  text-transform:uppercase;padding:11px 26px;transition:filter .3s;
}
.sb-bookbar .sb-dates-done:hover{filter:brightness(.85);}
