
/* Hotelier Depot Booking Experience Platform v7.0 */
:root{
  --hdbe-v7-primary:#082b49;
  --hdbe-v7-secondary:#174e72;
  --hdbe-v7-accent:#7EB9E4;
  --hdbe-v7-surface:#ffffff;
  --hdbe-v7-text:#10243a;
  --hdbe-v7-muted:#718390;
  --hdbe-v7-border:#dce5eb;
  --hdbe-v7-radius-sm:8px;
  --hdbe-v7-radius-md:12px;
  --hdbe-v7-radius-lg:22px;
  --hdbe-v7-shadow:0 18px 50px rgba(8,43,73,.14);
}
.hdbe-v7-icon-button{
  display:grid!important;place-items:center!important;padding:0!important;
  width:var(--hdbe-cal-nav-size,42px)!important;height:var(--hdbe-cal-nav-size,42px)!important;
  border:1px solid var(--hdbe-cal-border,#dce5eb)!important;border-radius:12px!important;
  background:var(--hdbe-cal-surface,#fff)!important;color:var(--hdbe-cal-text,#10243a)!important;
  box-shadow:none!important;cursor:pointer;transition:.18s ease;
}
.hdbe-v7-icon-button:hover{background:var(--hdbe-cal-hover,#eef5fa)!important;transform:translateY(-1px)}
.hdbe-v7-icon-button svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}

.hdbe-v7-calendar{
  position:fixed!important;inset:0!important;z-index:2147482500!important;
  display:grid!important;place-items:center!important;padding:20px!important;
  background:transparent!important;border:0!important;border-radius:0!important;
  box-shadow:none!important;color:var(--hdbe-cal-text,#10243a)!important;
}
.hdbe-v7-calendar[hidden]{display:none!important}
.hdbe-ng-calendar-backdrop{position:absolute;inset:0;background:var(--hdbe-cal-overlay,rgba(7,20,33,.62));backdrop-filter:blur(3px)}
.hdbe-ng-calendar-panel{
  position:relative;z-index:1;width:min(var(--hdbe-cal-width,1120px),calc(100vw - 32px));
  max-height:calc(100vh - 32px);overflow:auto;padding:20px;
  border:1px solid var(--hdbe-cal-border,#dce5eb);border-radius:22px;
  background:var(--hdbe-cal-surface,#fff);box-shadow:0 28px 90px rgba(0,0,0,.34);
}
.hdbe-ng-calendar-head{position:sticky;top:-20px;z-index:5;display:grid!important;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;margin:-20px -20px 16px;padding:14px 20px;border-bottom:1px solid var(--hdbe-cal-border,#dce5eb);background:var(--hdbe-cal-surface,#fff)}
.hdbe-ng-calendar-head strong{text-align:center;font-size:16px}
.hdbe-ng-calendar-head-actions{display:flex;gap:8px}
.hdbe-ng-calendar-months{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:var(--hdbe-cal-month-gap,24px)!important}
.hdbe-ng-calendar-months[data-months="1"]{grid-template-columns:minmax(0,700px)!important;justify-content:center!important}
.hdbe-ng-month{min-width:0}
.hdbe-ng-month h4{margin:8px 0 16px;text-align:center;color:var(--hdbe-cal-text,#10243a);font-size:24px;font-weight:700}
.hdbe-ng-week,.hdbe-ng-days{gap:var(--hdbe-cal-cell-gap,6px)!important}
.hdbe-ng-week span{color:var(--hdbe-cal-muted,#718390)!important}
.hdbe-ng-day{
  min-height:var(--hdbe-cal-cell-height,74px)!important;padding:10px!important;
  border:1px solid var(--hdbe-cal-border,#dce5eb)!important;border-radius:var(--hdbe-cal-cell-radius,12px)!important;
  background:var(--hdbe-cal-surface,#fff)!important;color:var(--hdbe-cal-text,#10243a)!important;
  transition:.15s ease;
}
.hdbe-ng-day:not(:disabled):hover{background:var(--hdbe-cal-hover,#eef5fa)!important;border-color:var(--hdbe-cal-selected,#7EB9E4)!important;transform:translateY(-1px)}
.hdbe-ng-day.is-selected{background:var(--hdbe-cal-selected,#7EB9E4)!important;color:#082b49!important;border-color:var(--hdbe-cal-selected,#7EB9E4)!important}
.hdbe-ng-day.is-unavailable{background:color-mix(in srgb,var(--hdbe-cal-soldout,#c73545) 10%,#fff)!important;color:var(--hdbe-cal-soldout,#c73545)!important}
.hdbe-ng-day.is-few{background:color-mix(in srgb,var(--hdbe-cal-few,#d89b2b) 12%,#fff)!important}
.hdbe-ng-day.is-past{background:var(--hdbe-cal-past,#dfe5e9)!important;opacity:.66}
.hdbe-ng-calendar-legend{padding-top:14px;border-top:1px solid var(--hdbe-cal-border,#dce5eb)}
.hdbe-ng-calendar-legend .available:before{background:var(--hdbe-cal-available,#2ca36a)!important}
.hdbe-ng-calendar-legend .few:before{background:var(--hdbe-cal-few,#d89b2b)!important}
.hdbe-ng-calendar-legend .unavailable:before{background:var(--hdbe-cal-soldout,#c73545)!important}

.hdbe-ng-detail-gallery{gap:var(--hdbe-v7-gallery-gap,10px)!important}
.hdbe-ng-detail-gallery .hdbe-ng-gallery-image{border:0!important;outline:0!important;border-radius:var(--hdbe-v7-gallery-radius,14px)!important}
.hdbe-ng-gallery-open{
  left:16px!important;bottom:16px!important;display:inline-flex!important;align-items:center!important;gap:7px!important;
  padding:9px 12px!important;border:0!important;border-radius:10px!important;background:rgba(255,255,255,.94)!important;
  color:#082b49!important;font-size:11px!important;font-weight:800!important;box-shadow:0 10px 28px rgba(0,0,0,.16)!important;
}
.hdbe-ng-gallery-open svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linejoin:round}
.hdbe-ng-gallery-open b{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 5px;border-radius:999px;background:#082b49;color:#fff}

.hdbe-el-lightbox{background:var(--hdbe-v7-lightbox-bg,rgba(7,14,22,.97))!important}
.hdbe-el-lightbox-close,.hdbe-el-lightbox-prev,.hdbe-el-lightbox-next{border-radius:50%!important}
.hdbe-el-lightbox-thumbs button.is-active{border-color:var(--hdbe-v7-lightbox-accent,#7EB9E4)!important}

.hdos-gallery-ids-wrap input.hdos-gallery-ids{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important}
.hdos-gallery-manager{display:grid;gap:12px}
.hdos-gallery-toolbar{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.hdos-gallery-toolbar p{margin:0;color:#718390}
.hdos-gallery-preview{display:grid!important;grid-template-columns:repeat(auto-fill,minmax(120px,1fr))!important;gap:12px!important}
.hdos-gallery-preview figure{cursor:grab;aspect-ratio:4/3!important;border-radius:12px!important}
.hdos-gallery-preview figure.is-dragging{opacity:.45}
.hdos-gallery-preview figure:before{content:"⋮⋮";position:absolute;left:7px;top:6px;z-index:2;padding:3px 5px;border-radius:6px;background:rgba(8,43,73,.84);color:#fff;font-size:11px;letter-spacing:-2px}
.hdos-gallery-preview figure button{z-index:3}
.hdos-gallery-preview figcaption{position:absolute;left:0;right:0;bottom:0;padding:18px 7px 6px;background:linear-gradient(transparent,rgba(8,25,40,.78));color:#fff;font-size:9px;text-align:center}
@media(max-width:850px){
  .hdbe-ng-calendar-months{grid-template-columns:1fr!important}
  .hdbe-ng-calendar-panel{padding:14px}
  .hdbe-ng-calendar-head{top:-14px;margin:-14px -14px 12px;padding:10px 14px}
}
@media(max-width:620px){
  .hdbe-v7-calendar{padding:6px!important}
  .hdbe-ng-calendar-panel{width:calc(100vw - 12px);max-height:calc(100vh - 12px);border-radius:14px}
  .hdbe-ng-day{min-height:58px!important;padding:7px!important}
  .hdbe-ng-month h4{font-size:20px}
}

/* v7.0.1 calendar repair */
.hdbe-ng-calendar-panel.is-one-month{
 width:min(720px,calc(100vw - 32px))!important
}
.hdbe-ng-calendar-panel.is-one-month .hdbe-ng-calendar-months{
 grid-template-columns:minmax(0,1fr)!important;max-width:620px;margin:0 auto
}
.hdbe-ng-calendar-months:has(> .hdbe-ng-month:only-child){
 grid-template-columns:minmax(0,1fr)!important;max-width:620px;margin-left:auto;margin-right:auto
}
.hdbe-v7-icon-button{
 border-radius:50%!important;border-color:#d7e2e9!important;
 box-shadow:0 3px 10px rgba(8,43,73,.06)!important
}
.hdbe-v7-icon-button svg{width:18px!important;height:18px!important}
.hdbe-ng-calendar-head-actions{align-items:center}

/* v7.0.2 hard reset: search + shared calendar */
html.hdbe-calendar-open,body.hdbe-calendar-open{overflow:hidden!important}
.hdbe-ng-search{
 position:relative!important;
 overflow:visible!important;
}
.hdbe-ng-search-form{
 display:grid!important;
 grid-template-columns:repeat(5,minmax(0,1fr))!important;
 gap:var(--hdbe-search-gap,11px)!important;
 align-items:end!important;
}
.hdbe-ng-search-form>label,
.hdbe-ng-search-form>.hdbe-ng-submit{
 min-width:0!important;
}
.hdbe-ng-calendar[hidden]{display:none!important}
.hdbe-ng-calendar.hdbe-v7-calendar{
 position:fixed!important;
 inset:0!important;
 z-index:2147483000!important;
 display:grid!important;
 place-items:center!important;
 padding:18px!important;
 transform:none!important;
 width:auto!important;
 max-width:none!important;
 max-height:none!important;
 overflow:visible!important;
 background:transparent!important;
 border:0!important;
 box-shadow:none!important;
}
.hdbe-ng-calendar.hdbe-v7-calendar:before{display:none!important}
.hdbe-ng-calendar-backdrop{
 position:absolute!important;inset:0!important;
 background:var(--hdbe-cal-overlay,rgba(7,20,33,.62))!important;
 backdrop-filter:blur(3px)!important
}
.hdbe-ng-calendar-panel{
 position:relative!important;z-index:2!important;
 width:min(var(--hdbe-cal-width,1120px),calc(100vw - 36px))!important;
 max-height:calc(100vh - 36px)!important;overflow:auto!important;
 padding:20px!important;border:1px solid var(--hdbe-cal-border,#dce5eb)!important;
 border-radius:22px!important;background:var(--hdbe-cal-surface,#fff)!important;
 box-shadow:0 28px 90px rgba(0,0,0,.32)!important
}
.hdbe-ng-calendar-panel.is-one-month{
 width:min(720px,calc(100vw - 36px))!important
}
.hdbe-ng-calendar-months{
 display:grid!important;
 grid-template-columns:repeat(2,minmax(0,1fr))!important;
 gap:var(--hdbe-cal-month-gap,24px)!important;
 width:100%!important
}
.hdbe-ng-calendar-panel.is-one-month .hdbe-ng-calendar-months{
 grid-template-columns:minmax(0,1fr)!important;
 max-width:620px!important;margin:0 auto!important
}
.hdbe-ng-month{min-width:0!important}
.hdbe-ng-week,.hdbe-ng-days{
 display:grid!important;grid-template-columns:repeat(7,minmax(0,1fr))!important;
 gap:var(--hdbe-cal-cell-gap,6px)!important
}
.hdbe-ng-day-empty{min-height:var(--hdbe-cal-cell-height,74px)!important}
.hdbe-ng-day{
 width:100%!important;min-width:0!important;
 min-height:var(--hdbe-cal-cell-height,74px)!important
}
@media(max-width:1050px){
 .hdbe-ng-search-form{grid-template-columns:repeat(2,minmax(0,1fr))!important}
 .hdbe-ng-submit{width:100%!important}
}
@media(max-width:700px){
 .hdbe-ng-search-form{grid-template-columns:1fr!important}
 .hdbe-ng-calendar.hdbe-v7-calendar{padding:6px!important}
 .hdbe-ng-calendar-panel{width:calc(100vw - 12px)!important;max-height:calc(100vh - 12px)!important;padding:12px!important}
 .hdbe-ng-calendar-months{grid-template-columns:1fr!important}
}

/* v7.0.3 — calendar modal visibility hard fix */
.hdbe-ng-calendar.hdbe-v7-calendar[hidden],
.hdbe-ng-calendar[hidden].hdbe-v7-calendar,
.hdbe-v7-calendar[hidden]{
    display:none!important;
    visibility:hidden!important;
    opacity:0!important;
    pointer-events:none!important;
}
.hdbe-ng-calendar.hdbe-v7-calendar:not([hidden]){
    display:grid!important;
    visibility:visible!important;
    opacity:1!important;
    pointer-events:auto!important;
}

/* v7.1.0 — simplified booking journey */
body.hdbe-single-room-active .hdbe-ng-search:not(.hdbe-ng-single-search .hdbe-ng-search){
 display:none!important;
}
.hdbe-ng-single-search .hdbe-ng-search{
 max-width:none!important;margin:0!important;padding:16px!important;
 border-radius:16px!important;box-shadow:none!important
}
.hdbe-ng-single-search .hdbe-ng-search-form{
 display:grid!important;
 grid-template-columns:1fr!important;
 gap:11px!important
}
.hdbe-ng-single-search .hdbe-ng-search-form>label,
.hdbe-ng-single-search .hdbe-ng-submit{
 width:100%!important;min-width:0!important
}
.hdbe-ng-single-search .hdbe-ng-submit{
 margin-top:3px!important
}
.hdbe-ng-booking-aside{
 position:sticky;top:24px;align-self:start
}
.hdbe-ng-calendar-panel.is-loading .hdbe-ng-calendar-months{
 opacity:.34;pointer-events:none
}
.hdbe-ng-calendar-panel.is-loading:after{
 content:"Loading availability…";position:absolute;left:50%;top:50%;
 transform:translate(-50%,-50%);z-index:8;padding:10px 14px;
 border-radius:999px;background:#082b49;color:#fff;font-size:12px;font-weight:800
}
.hdbe-ng-room-actions .hdbe-ng-booking-button{
 order:2
}
.hdbe-ng-room-actions .hdbe-ng-details-button{
 order:1
}
@media(max-width:900px){
 .hdbe-ng-booking-aside{position:static}
}
