/* Hotel Manager - Main: Room cards */

body.hms-lock{overflow:hidden;}

.hms-muted{opacity:.75;font-size:13px;}
.hms-prose{font-size:15px;line-height:1.6;max-width:820px;}
.hms-prose p{margin:0 0 12px;}

.hms-room-grid{display:grid;gap:24px;}
.hms-room-grid.hms-room-grid--cols-1{grid-template-columns:1fr;}
.hms-room-grid.hms-room-grid--cols-2{grid-template-columns:repeat(2,minmax(0,1fr));}
.hms-room-grid.hms-room-grid--cols-3{grid-template-columns:repeat(3,minmax(0,1fr));}
.hms-room-grid.hms-room-grid--cols-4{grid-template-columns:repeat(4,minmax(0,1fr));}
@media (max-width: 900px){
  .hms-room-grid.hms-room-grid--cols-3,.hms-room-grid.hms-room-grid--cols-4{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width: 540px){
  .hms-room-grid{grid-template-columns:1fr !important;}
}

.hms-room-card{background:#fff;border-radius:10px;overflow:hidden;box-shadow:0 8px 24px rgba(0,0,0,.08);border:1px solid rgba(0,0,0,.06);}
.hms-room-card__media{position:relative;aspect-ratio: 16/9;background:#f2f4f7;}
.hms-room-card__media img{width:100%;height:100%;object-fit:cover;display:block;}

.hms-room-card__content{padding:14px 16px 8px;}
.hms-room-card__title{margin:0 0 6px;font-size:20px;line-height:1.2;}

.hms-room-card__subtitle{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:0 0 6px;font-size:14px;opacity:.9;}
.hms-room-card__fact{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;}
.hms-room-card__fact svg{width:16px;height:16px;flex:0 0 16px;display:inline-block;}

.hms-room-card__amenities{display:flex;flex-wrap:wrap;gap:12px 18px;margin-top:10px;}
.hms-room-card__amenity{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:#475569;}
.hms-room-card__amenity svg{width:16px;height:16px;flex:0 0 16px;opacity:.9;}

/* SERP: curated highlights (rate-plan driven) */
.hms-room-card__chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px;}
.hms-room-card__ratehint{margin-top:10px;font-size:13px;color:#475569;display:flex;flex-wrap:wrap;gap:6px;align-items:center;}
.hms-room-card__ratehint-label{color:#64748b;}
.hms-room-card__ratehint-name{font-weight:650;color:#0f172a;}
.hms-room-card__ratehint-sub{color:#64748b;}

.hms-room-card__options{margin-top:10px;width:100%;display:flex;flex-direction:column;gap:6px;}
.hms-room-card__option{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12px;color:#475569;}
.hms-room-card__option-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:140px;}
.hms-room-card__option-price{font-weight:650;color:#0f172a;}

.hms-room-card__divider{height:1px;background:rgba(0,0,0,.08);margin:10px 0;}

.hms-room-card__footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 16px 14px;}
.hms-room-card__price{text-align:right;line-height:1.05;}
.hms-room-card__price-from{font-size:11px;color:#94a3b8;margin-bottom:2px;}
.hms-room-card__price-main{display:flex;justify-content:flex-end;align-items:baseline;gap:2px;line-height:1;}
.hms-room-card__price-currency{font-size:14px;color:#0f172a;opacity:.9;}
.hms-room-card__price-amount{font-size:22px;font-weight:650;color:#0f172a;letter-spacing:-0.01em;}
.hms-room-card__price-unit{font-size:11px;color:#64748b;margin-top:2px;}

.hms-room-card__cta{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 14px;border-radius:8px;text-decoration:none;font-weight:600;line-height:1;background:#0b6aa7;color:#fff;white-space:nowrap;}
.hms-room-card__cta:hover{filter:brightness(.95);}
.hms-room-card__cta svg{width:16px;height:16px;flex:0 0 16px;display:inline-block;}
.hms-room-card__cta[aria-disabled="true"]{opacity:.6;pointer-events:none;}


/* Booking / SUG pages (clean Booking.com-like layout) */

.hms-booking-page{max-width:1200px;margin:0 auto;padding:18px 18px 40px;}
.hms-hero{border-radius:16px;overflow:hidden;min-height:260px;background:#e9eef5;background-size:cover;background-position:center;}
.hms-hero__overlay{padding:28px;background:linear-gradient(90deg,rgba(0,0,0,.55),rgba(0,0,0,.15));min-height:260px;display:flex;flex-direction:column;justify-content:flex-end;gap:10px;}
.hms-hero__title{margin:0;color:#fff;font-size:34px;line-height:1.1;}
.hms-hero__subtitle{color:rgba(255,255,255,.92);font-size:15px;max-width:680px;}

.hms-searchbar{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;background:#fff;border-radius:12px;padding:12px;box-shadow:0 10px 28px rgba(0,0,0,.14);}
.hms-searchbar__field label{display:block;font-size:12px;opacity:.7;margin:0 0 6px;}
.hms-searchbar__field input,.hms-searchbar__field select{width:100%;padding:10px 10px;border-radius:10px;border:1px solid rgba(0,0,0,.14);}
.hms-searchbar__cta{display:flex;align-items:flex-end;grid-column:1 / -1;}
.hms-searchbar__cta button{width:100%;padding:11px 16px;border-radius:10px;border:0;background:#0b6aa7;color:#fff;font-weight:700;white-space:nowrap;}
.hms-searchbar__cta button:hover{filter:brightness(.95);}

/* ------------------------
   SERP (Search Results Page)
   ------------------------ */
.hms-serp, .hms-serp *{box-sizing:border-box;}
.hms-serp .dot{opacity:.55;}
.hms-serp{max-width:1180px;margin:0 auto;padding:18px 16px;}
.hms-serp__top{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin-bottom:14px;}
.hms-serp__summary-title{font-size:20px;font-weight:800;letter-spacing:-.01em;margin:0;}
.hms-serp__summary-meta{display:flex;flex-wrap:wrap;gap:8px;align-items:center;color:#64748b;font-size:13px;margin-top:4px;}
.hms-serp__sort{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid rgba(15,23,42,.10);border-radius:12px;padding:10px 12px;}
.hms-serp__sort label{font-size:12px;color:#64748b;font-weight:700;}
.hms-serp__sort select{border:1px solid rgba(15,23,42,.14);border-radius:10px;padding:8px 10px;background:#fff;}

.hms-serp__layout{display:grid;grid-template-columns:320px 1fr;gap:16px;align-items:start;}
.hms-serp__filters{position:sticky;top:16px;}
.hms-serp__filters-block{background:#fff;border:1px solid rgba(15,23,42,.10);border-radius:14px;padding:12px;margin-bottom:12px;box-shadow:0 10px 28px rgba(0,0,0,.06);}
.hms-serp__filters-title{font-weight:800;font-size:13px;color:#0f172a;margin-bottom:8px;}
.hms-serp__filters-hint{font-size:12px;color:#94a3b8;margin-bottom:10px;}
.hms-serp__check{display:flex;gap:10px;align-items:center;font-size:13px;color:#334155;padding:6px 0;}

.hms-serp__results{display:flex;flex-direction:column;gap:12px;}

/* Make the existing card look like a modern SERP row when inside results */
.hms-serp__results .hms-room-card{display:grid;grid-template-columns:280px 1fr 220px;grid-template-areas:"media content footer";gap:0;align-items:stretch;}
/* Let the image column stretch to the card height (no wasted white space). */
.hms-serp__results .hms-room-card__media{grid-area:media;aspect-ratio:auto;height:100%;min-height:0;}
.hms-serp__results .hms-room-card__media img{height:100%;object-fit:cover;}
.hms-serp__results .hms-room-card__divider{display:none;}
.hms-serp__results .hms-room-card__content{grid-area:content;padding:14px 18px;min-width:0;display:flex;flex-direction:column;justify-content:space-between;gap:10px;}
.hms-serp__results .hms-room-card__footer{grid-area:footer;padding:14px 18px;display:flex;flex-direction:column;align-items:flex-end;justify-content:space-between;border-left:1px solid rgba(15,23,42,.10);min-height:0;}
.hms-serp__results .hms-room-card__price{text-align:right;}
.hms-serp__results .hms-room-card__cta{width:auto;min-width:170px;justify-content:center;}
.hms-serp__results .hms-room-card__option-label{max-width:190px;}

/* Tighten SERP typography & spacing so cards don't grow taller than needed. */
.hms-serp__results .hms-room-card__title{font-size:20px;line-height:1.15;margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.hms-serp__results .hms-room-card__subtitle{margin:0;font-size:13.5px;gap:9px;}
.hms-serp__results .hms-room-card__chips{margin-top:0;gap:8px;}
.hms-serp__results .hms-chip{padding:6px 10px;font-size:12.5px;}
.hms-serp__results .hms-room-card__ratehint{margin-top:0;font-size:12.5px;}
.hms-serp__results .hms-room-card__options{margin-top:8px;gap:6px;}

/* Searchbar inside the SERP sidebar should be single-column and not double-carded */
.hms-serp__filters .hms-searchbar{grid-template-columns:1fr;gap:10px;padding:0;box-shadow:none;background:transparent;}
.hms-serp__filters .hms-searchbar__cta{grid-column:auto;}

@media (max-width: 980px){
  .hms-serp__layout{grid-template-columns:1fr;}
  .hms-serp__filters{position:static;}
  .hms-serp__results .hms-room-card{grid-template-columns:1fr;grid-template-areas:"media" "content" "footer";}
  .hms-serp__results .hms-room-card__media{height:auto;min-height:0;aspect-ratio:16/9;}
  .hms-serp__results .hms-room-card__footer{border-left:0;border-top:1px solid rgba(15,23,42,.10);min-height:auto;align-items:center;flex-direction:row;}
  .hms-serp__results .hms-room-card__price{text-align:left;}
}

.hms-section{margin-top:26px;}
.hms-section__title{margin:0 0 12px;font-size:22px;}

@media (max-width: 900px){
  .hms-searchbar{grid-template-columns:1fr 1fr;}
  .hms-searchbar__cta{grid-column:1 / -1;}
  .hms-hero__title{font-size:28px;}
}

@media (max-width: 560px){
  .hms-searchbar{grid-template-columns:1fr;}
  .hms-searchbar__cta{grid-column:1 / -1;}
}


.hms-sug-page{max-width:1200px;margin:0 auto;padding:18px 18px 40px;}
.hms-sug-page__top{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:22px;align-items:start;}
.hms-sug-page__title{margin:0 0 10px;font-size:34px;}
.hms-sug-page__facts{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 14px;}
.hms-fact{display:inline-flex;align-items:center;gap:8px;font-size:14px;padding:8px 10px;border:1px solid rgba(0,0,0,.08);border-radius:999px;background:#fff;}

.hms-gallery{border-radius:14px;overflow:hidden;background:#fff;border:1px solid rgba(0,0,0,.06);box-shadow:0 10px 26px rgba(0,0,0,.07);}
.hms-gallery__hero{position:relative;aspect-ratio:16/9;background:#f2f4f7;}
.hms-gallery__heroBtn{all:unset;cursor:pointer;display:block;width:100%;height:100%;}
.hms-gallery__heroBtn img{width:100%;height:100%;object-fit:cover;display:block;}

.hms-gallery__nav{position:absolute;top:50%;transform:translateY(-50%);width:26px;height:26px;border-radius:10px;border:1px solid rgba(255,255,255,.20);background:rgba(0,0,0,.18);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:#fff;font-size:16px;line-height:24px;text-align:center;cursor:pointer;opacity:0;transition:opacity .16s ease, transform .16s ease, background .16s ease, border-color .16s ease;}
.hms-gallery__hero:hover .hms-gallery__nav{opacity:1;}
.hms-gallery__nav:hover{background:rgba(0,0,0,.26);border-color:rgba(255,255,255,.28);}
.hms-gallery__nav:active{transform:translateY(-50%) scale(.98);}
.hms-gallery__nav--prev{left:12px;}
.hms-gallery__nav--next{right:12px;}
.hms-gallery__counter{position:absolute;right:12px;bottom:12px;padding:3px 7px;border-radius:999px;background:rgba(0,0,0,.22);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:#fff;font-weight:700;font-size:11px;letter-spacing:-0.01em;}

.hms-gallery__stripWrap{display:flex;align-items:center;gap:6px;padding:5px 8px;border-top:1px solid rgba(0,0,0,.06);background:rgba(255,255,255,.94);}
.hms-gallery__strip{display:flex;gap:6px;overflow:auto;scroll-behavior:smooth;flex:1;scrollbar-width:none;align-items:center;padding:1px 0;}
.hms-gallery__strip::-webkit-scrollbar{display:none;}
.hms-gallery__stripNav{width:22px;height:22px;border-radius:9px;border:1px solid rgba(15,23,42,.10);background:rgba(255,255,255,.82);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:rgba(15,23,42,.82);font-size:15px;line-height:20px;text-align:center;cursor:pointer;flex:0 0 auto;opacity:.78;transition:opacity .16s ease, transform .16s ease, background .16s ease, box-shadow .16s ease;box-shadow:0 3px 10px rgba(15,23,42,.08);}
.hms-gallery__stripNav:hover{opacity:1;background:#fff;box-shadow:0 6px 14px rgba(15,23,42,.10);}
.hms-gallery__stripNav:active{transform:scale(.98);}

.hms-gallery__thumb{all:unset;cursor:pointer;flex:0 0 auto;border-radius:10px;overflow:hidden;border:1px solid rgba(15,23,42,.10);background:#f2f4f7;transition:transform .14s ease, box-shadow .14s ease, border-color .14s ease, opacity .14s ease;opacity:.92;}
.hms-gallery__thumb img{width:76px;height:48px;object-fit:cover;display:block;}
.hms-gallery__thumb:hover{transform:translateY(-1px);box-shadow:0 8px 16px rgba(15,23,42,.10);opacity:1;}
.hms-gallery__thumb.is-active{border-color:rgba(37,99,235,.55);box-shadow:0 0 0 2px rgba(37,99,235,.12);opacity:1;}

@media (hover:none){
  .hms-gallery__nav{opacity:1;}
}

/* Lightbox */
.hms-lightbox{position:fixed;inset:0;background:rgba(0,0,0,.75);display:none;align-items:center;justify-content:center;z-index:999999;}
.hms-lightbox.is-open{display:flex;}
.hms-lightbox__frame{position:relative;max-width:min(1100px,92vw);max-height:86vh;}
.hms-lightbox__img{max-width:100%;max-height:86vh;display:block;border-radius:14px;}
.hms-lightbox__close{position:absolute;top:-44px;right:0;width:28px;height:28px;border-radius:10px;border:1px solid rgba(255,255,255,.20);background:rgba(0,0,0,.20);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:#fff;font-size:16px;cursor:pointer;}
.hms-lightbox__close:hover{background:rgba(0,0,0,.36);}
.hms-lightbox__nav{position:absolute;top:50%;transform:translateY(-50%);width:30px;height:30px;border-radius:10px;border:1px solid rgba(255,255,255,.20);background:rgba(0,0,0,.20);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:#fff;font-size:18px;line-height:28px;text-align:center;cursor:pointer;}
.hms-lightbox__nav:hover{background:rgba(0,0,0,.36);}
.hms-lightbox__nav--prev{left:-44px;}
.hms-lightbox__nav--next{right:-44px;}
.hms-lightbox__caption{margin-top:10px;text-align:center;color:#fff;font-weight:700;font-size:12px;opacity:.9;}

.hms-amenities-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;}
.hms-amenity{display:flex;align-items:center;gap:10px;padding:10px;border:1px solid rgba(0,0,0,.08);border-radius:12px;background:#fff;}
.hms-amenity__icon img{display:block;}
.hms-amenity__name{font-size:14px;}

.hms-bookcard{position:relative;top:auto;border-radius:16px;background:#fff;border:1px solid rgba(0,0,0,.08);box-shadow:0 6px 18px rgba(0,0,0,.08);padding:14px;overflow:hidden;}
.hms-bookcard__head{background:linear-gradient(135deg,#eef4ff,#f7fbff);border-radius:14px;padding:10px 10px;margin:-6px -6px 12px;border:1px solid rgba(0,0,0,.04);}
.hms-bookcard__headRow{display:flex;align-items:center;justify-content:space-between;gap:10px;}
.hms-bookcard__title{font-size:13px;font-weight:700;letter-spacing:-0.01em;}
.hms-bookcard__subtitle{margin-top:2px;font-size:11px;opacity:.72;}
.hms-bookcard__badgeRow{margin-top:8px;display:flex;flex-wrap:wrap;gap:8px;}
.hms-badge{display:inline-flex;align-items:center;gap:5px;padding:4px 8px;border-radius:999px;font-size:11px;font-weight:600;border:1px solid rgba(0,0,0,.08);background:#fff;}
.hms-badge .hms-icon{opacity:.9;}
.hms-badge--green{background:rgba(22,163,74,.10);border-color:rgba(22,163,74,.22);color:#166534;}
.hms-badge--blue{background:rgba(37,99,235,.10);border-color:rgba(37,99,235,.22);color:#1e40af;}
.hms-badge--amber{background:rgba(245,158,11,.14);border-color:rgba(245,158,11,.30);color:#92400e;}
.hms-bookcard__rating{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:600;color:rgba(0,0,0,.72);white-space:nowrap;}
.hms-stars{display:inline-flex;gap:2px;}
.hms-stars .hms-icon{opacity:.85;}
.hms-rating__num{font-weight:700;}
.hms-rating__count{opacity:.7;font-weight:700;}

.hms-bookcard__hero{display:flex;gap:12px;align-items:center;margin-bottom:12px;}
.hms-bookcard__thumb{width:48px;height:48px;border-radius:12px;overflow:hidden;background:#f2f4f7;border:1px solid rgba(0,0,0,.06);flex:0 0 auto;}
.hms-bookcard__thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.hms-bookcard__prop{font-weight:700;line-height:1.25;}
.hms-bookcard__loc{font-size:11px;opacity:.72;margin-top:2px;}
.hms-bookcard__price{margin-top:8px;display:flex;align-items:baseline;gap:8px;}
.hms-bookcard__from{font-size:11px;opacity:.75;}
.hms-bookcard__price strong{font-size:18px;letter-spacing:-0.01em;}
.hms-bookcard__per{font-size:11px;opacity:.75;}
.hms-bookcard__meta{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px;}
.hms-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;font-size:12px;font-weight:800;background:#f8fafc;border:1px solid rgba(0,0,0,.08);}
.hms-chip--warn{background:rgba(245,158,11,.12);border-color:rgba(245,158,11,.25);color:#92400e;}

.hms-bookcard__fields{display:grid;gap:8px;}
.hms-bookcard__fields label{font-size:11px;opacity:.85;display:grid;gap:6px;}
.hms-bookcard__fields input,.hms-bookcard__fields select{width:100%;padding:10px 12px;border-radius:12px;border:1px solid rgba(0,0,0,.14);background:#fff;transition:box-shadow .15s ease,border-color .15s ease;}
.hms-bookcard__fields input:focus{outline:none;border-color:rgba(37,99,235,.55);box-shadow:0 0 0 4px rgba(37,99,235,.14);}

/* Rate options (shown after dates are selected) */
.hms-bk-rateoptions{padding:10px;border-radius:16px;border:1px solid rgba(0,0,0,.08);background:#fff;}
.hms-bk-rateoptions__head{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:600;opacity:.9;margin-bottom:8px;}
.hms-bk-rateoptions__head svg{width:16px;height:16px;opacity:.75;}
.hms-bk-rateoptions__list{display:flex;flex-direction:column;gap:8px;}
.hms-bk-rateopt{position:relative;display:flex !important;align-items:center;gap:12px;padding:14px 14px 14px 44px;border-radius:14px;border:1px solid rgba(15,23,42,.10);background:#fff;cursor:pointer;transition:transform .12s ease, box-shadow .12s ease, border-color .12s ease, background-color .12s ease;}
.hms-bk-rateopt:hover{transform:translateY(-1px);box-shadow:0 12px 26px rgba(15,23,42,.08);border-color:rgba(37,99,235,.22);}

/* Hide native radio (theme CSS often makes it look weird); we render our own selector */
.hms-bk-rateopt__radio{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none;}
.hms-bk-rateopt:before{content:'';position:absolute;left:14px;top:50%;transform:translateY(-50%);width:18px;height:18px;border-radius:999px;border:2px solid rgba(15,23,42,.22);background:#fff;box-shadow:inset 0 0 0 2px rgba(255,255,255,.9);}
.hms-bk-rateopt.is-selected:before{border-color:#0b5cab;}
.hms-bk-rateopt.is-selected:after{content:'';position:absolute;left:20px;top:50%;transform:translateY(-50%);width:8px;height:8px;border-radius:999px;background:#0b5cab;}
.hms-bk-rateopt__body{flex:1;min-width:0;}
.hms-bk-rateopt__name{display:block;font-size:14px;font-weight:750;color:rgba(2,6,23,.90);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.hms-bk-rateopt__subtitle{margin-top:3px;font-size:12px;font-weight:650;opacity:.72;line-height:1.25;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.hms-bk-rateopt__chips{margin-top:8px;display:flex;gap:6px;flex-wrap:wrap;}
.hms-bk-rateopt__chips .hms-chip{font-size:11px;padding:5px 10px;border-radius:999px;border:1px solid rgba(15,23,42,.10);background:#f8fafc;font-weight:750;opacity:.92;}
.hms-bk-rateopt__chips .hms-chip--best{background:rgba(22,163,74,.10);border-color:rgba(22,163,74,.25);color:#166534;}
.hms-bk-rateopt__price{min-width:118px;text-align:right;font-size:18px;font-weight:900;color:rgba(2,6,23,.92);line-height:1.05;}
.hms-bk-rateopt__sub{font-size:12px;font-weight:700;opacity:.68;margin-top:4px;}

/* Best-value highlight (subtle, Booking.com-like) */
.hms-bk-rateopt.is-best:not(.is-selected){border-color:rgba(22,163,74,.22);background:rgba(22,163,74,.04);}

/* Selected state (Google-clean) */
.hms-bk-rateopt.is-selected{border-width:2px;border-color:#0b5cab;background:#f7fbff;box-shadow:0 14px 30px rgba(15,23,42,.10);}

/* Disabled */
.hms-bk-rateopt.is-disabled{opacity:.65;cursor:not-allowed;}

@media (max-width: 540px){
  .hms-bk-rateopt{padding:14px 12px 14px 42px;}
  .hms-bk-rateopt__price{min-width:92px;font-size:17px;}
  .hms-bk-rateopt__chips .hms-chip{font-size:10px;padding:4px 9px;}
}

.hms-bk-dates{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.hms-datepill{position:relative;display:grid;gap:6px;padding:10px 12px;border-radius:14px;border:1px solid rgba(0,0,0,.12);background:#fff;cursor:pointer;transition:box-shadow .15s ease,border-color .15s ease;}
.hms-datepill:hover{border-color:rgba(37,99,235,.24);box-shadow:0 8px 18px rgba(37,99,235,.08);}
.hms-datepill:focus-within{border-color:rgba(37,99,235,.55);box-shadow:0 0 0 4px rgba(37,99,235,.14);}
.hms-datepill__label{font-size:11px;font-weight:600;opacity:.85;display:flex;align-items:center;gap:6px;}
.hms-datepill__value{font-size:13px;font-weight:600;color:rgba(0,0,0,.80);}
.hms-datepill__label,.hms-datepill__value{pointer-events:none;}
.hms-datepill input{position:absolute;inset:0;width:100%;height:100%;opacity:0.001;cursor:pointer;-webkit-appearance:none;appearance:none;background:transparent;border:0;pointer-events:auto;}

.hms-bk-guests{border:1px solid rgba(0,0,0,.08);border-radius:14px;padding:10px;background:#fff;}
.hms-bk-guests__head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px;}
.hms-bk-guests__label{font-size:12px;font-weight:600;display:flex;align-items:center;gap:8px;}
.hms-bk-guests__cap{font-size:11px;font-weight:600;opacity:.7;}
.hms-bk-guestrow{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 0;}
.hms-bk-guestrow + .hms-bk-guestrow{border-top:1px dashed rgba(0,0,0,.10);}
.hms-bk-guestrow__name{font-weight:600;}
.hms-stepper{display:flex;align-items:center;gap:10px;}
.hms-stepper__btn{width:34px;height:34px;border-radius:10px;border:1px solid rgba(0,0,0,.14);background:#fff;font-weight:700;font-size:16px;display:flex;align-items:center;justify-content:center;transition:transform .12s ease, box-shadow .12s ease, background .12s ease;}
.hms-stepper__btn:hover{background:#f5f8ff;box-shadow:0 6px 18px rgba(37,99,235,.10);}
.hms-stepper__value{width:56px;text-align:center;font-weight:700;border-radius:10px!important;}
.hms-stepper.hms-bump{transform:translateY(-1px);}

.hms-bk-promotoggle{margin-top:2px;width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid rgba(0,0,0,.10);background:#fff;border-radius:12px;padding:9px 10px;font-weight:600;font-size:12px;cursor:pointer;}
.hms-bk-promotoggle:hover{background:#f8fafc;}
.hms-bk-promotoggle.is-open .hms-bk-promochev{transform:rotate(180deg);}
.hms-bk-promochev{transition:transform .16s ease;opacity:.7;}
.hms-promoapply{display:flex;gap:8px;align-items:center;margin-top:8px;}
.hms-promoapply input{flex:1;}
.hms-bk-promoapply{padding:10px 12px;border-radius:12px;border:1px solid rgba(0,0,0,.12);background:#fff;font-weight:700;font-size:12px;cursor:pointer;transition:box-shadow .15s ease, transform .12s ease, background .12s ease;}
.hms-bk-promoapply:hover{background:#f8fafc;box-shadow:0 10px 20px rgba(0,0,0,.08);transform:translateY(-1px);}
.hms-bk-promostatus{margin-top:8px;}
.hms-bk-promobox input{margin-top:10px;}

.hms-bk-alert{margin-top:10px;border-radius:14px;border:1px solid rgba(245,158,11,.28);background:rgba(245,158,11,.08);padding:10px;display:grid;gap:8px;}
.hms-bk-alert__msg{font-weight:600;font-size:12px;color:#92400e;line-height:1.35;}
.hms-bk-alert__actions{display:flex;justify-content:flex-end;}
.hms-bk-apply{border:1px solid rgba(0,0,0,.10);background:#fff;border-radius:12px;padding:8px 10px;font-weight:600;font-size:12px;cursor:pointer;transition:box-shadow .14s ease, transform .14s ease;}
.hms-bk-apply:hover{box-shadow:0 10px 18px rgba(0,0,0,.08);transform:translateY(-1px);}

.hms-bookcard__trust{margin-top:10px;font-size:12px;opacity:.85;display:grid;gap:6px;}
.hms-trustitem{display:flex;align-items:center;gap:10px;font-weight:600;opacity:.9;}

.hms-bookcard__breakhead{font-weight:700;font-size:12px;display:flex;align-items:center;gap:8px;}
.hms-bookcard__nohidden{margin-top:6px;font-size:11px;font-weight:600;color:rgba(37,99,235,.92);}

.hms-bookcard__cta{margin-top:12px;width:100%;padding:12px 14px;border-radius:12px;border:0;background:linear-gradient(135deg,#2563EB,#1E40AF);color:#fff;font-weight:700;font-size:14px;box-shadow:0 8px 18px rgba(37,99,235,.18);transition:transform .14s ease, filter .14s ease, box-shadow .14s ease;}
.hms-bookcard__cta:hover{transform:translateY(-1px);filter:brightness(.99);box-shadow:0 10px 20px rgba(37,99,235,.20);}
.hms-bookcard__cta:active{transform:translateY(0);}

.hms-bookcard__breakdown{margin-top:12px;padding-top:12px;border-top:1px solid rgba(0,0,0,.08);display:grid;gap:8px;}
.hms-kv{display:flex;align-items:baseline;justify-content:space-between;gap:10px;font-size:13px;}
.hms-kv span{opacity:.85;}
.hms-kv strong{font-weight:600;}
.hms-kv--total{padding-top:8px;border-top:1px dashed rgba(0,0,0,.14);margin-top:2px;}
.hms-bookcard .hms-kv--total strong{font-size:16px;color:#1e40af;}
.hms-bookcard .hms-kv--total span{font-weight:700;opacity:.9;}

.hms-policy-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;}
.hms-policy-card{background:#fff;border:1px solid rgba(0,0,0,.08);border-radius:14px;padding:12px;}
.hms-policy-card__title{font-size:12px;opacity:.75;margin-bottom:6px;}
.hms-policy-card__value{font-size:14px;font-weight:700;}

.hms-loc-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:14px;align-items:stretch;}
.hms-loc-map{background:#fff;border:1px solid rgba(0,0,0,.08);border-radius:16px;overflow:hidden;}
.hms-loc-map__inner{position:relative;min-height:220px;background:linear-gradient(135deg,#eef3f8,#dde6f2);display:flex;align-items:center;justify-content:center;}
.hms-gmap{width:100%;height:100%;min-height:220px;position:relative;}
.hms-loc-map__pin{position:absolute;left:52%;top:44%;width:16px;height:16px;border-radius:50%;background:#0b6aa7;box-shadow:0 6px 20px rgba(11,106,167,.35);transform:translate(-50%,-50%);}
.hms-loc-caption{padding:10px 12px;font-size:13px;opacity:.8;}
.hms-loc-list{background:#fff;border:1px solid rgba(0,0,0,.08);border-radius:16px;padding:12px;display:grid;gap:8px;}
.hms-loc-item{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:10px;border-radius:12px;background:#f7f9fc;border:1px solid rgba(0,0,0,.05);}
.hms-loc-item > span{opacity:.9;}


.hms-gmap-zoom{position:absolute;right:12px;top:12px;display:grid;gap:6px;z-index:5;}
.hms-gmap-zoom__btn{width:32px;height:32px;border-radius:10px;border:1px solid rgba(0,0,0,.10);background:#fff;box-shadow:0 2px 8px rgba(0,0,0,.12);font-size:16px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;}
.hms-gmap-zoom__btn:active{transform:translateY(1px);}

.hms-loc-name{display:flex;align-items:center;gap:10px;min-width:0;}
.hms-loc-icon{width:20px;height:20px;border-radius:999px;background:#eef3f8;border:1px solid rgba(0,0,0,.06);color:#1f3b5c;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;}
.hms-loc-icon svg{width:14px;height:14px;opacity:1;fill:currentColor;}
.hms-loc-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}

.hms-faq{display:grid;gap:10px;}
.hms-faq__item{background:#fff;border:1px solid rgba(0,0,0,.08);border-radius:14px;padding:10px 12px;}
.hms-faq__item summary{cursor:pointer;font-weight:800;list-style:none;}
.hms-faq__item summary::-webkit-details-marker{display:none;}
.hms-faq__content{margin-top:8px;opacity:.9;}

.hms-addons{display:grid;gap:12px;}
.hms-addon{background:#fff;border:1px solid rgba(0,0,0,.08);border-radius:18px;padding:14px 14px;display:flex;align-items:center;justify-content:space-between;gap:14px;transition:box-shadow .15s ease,border-color .15s ease,transform .15s ease;cursor:pointer;}
.hms-addon:hover{border-color:rgba(0,0,0,.14);box-shadow:0 6px 18px rgba(0,0,0,.06);}
.hms-addon.is-selected{border-color:rgba(11,87,208,.35);box-shadow:0 10px 24px rgba(11,87,208,.10);}
.hms-addon__left{min-width:0;}
.hms-addon__title{font-weight:800;margin-bottom:4px;display:flex;align-items:center;gap:10px;line-height:1.15;}
.hms-addon__icon{width:26px;height:26px;border-radius:10px;background:#eef3f8;color:#1f3b5c;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;}
.hms-addon__icon svg{width:15px;height:15px;fill:currentColor;}
.hms-addon__desc{font-size:13px;opacity:.82;line-height:1.35;max-width:52ch;}
.hms-addon__right{display:flex;flex-direction:column;align-items:flex-end;gap:10px;min-width:96px;}
.hms-addon__price{font-weight:900;}
.hms-addon__btn{padding:6px 10px;border-radius:10px;border:1px solid rgba(0,0,0,.12);background:#fff;font-weight:800;font-size:13px;line-height:18px;min-width:64px;cursor:pointer;}
.hms-addon__btn:hover{background:#f5f7fb;}
.hms-addon.is-selected .hms-addon__btn{background:#e8f0fe;border-color:rgba(11,87,208,.45);color:#0b57d0;}

.hms-addon__btn:focus{outline:none;box-shadow:0 0 0 3px rgba(11,87,208,.18);}

.hms-addon__qty{display:flex;align-items:center;gap:6px;background:#fff;border:1px solid rgba(0,0,0,.12);border-radius:12px;padding:4px 6px;}
.hms-addon.is-selected .hms-addon__qty{border-color:rgba(11,87,208,.35);box-shadow:0 0 0 3px rgba(11,87,208,.10);}
.hms-addon__qtybtn{width:26px;height:26px;border-radius:10px;border:0;background:#f5f7fb;color:#0b57d0;font-weight:900;line-height:26px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;}
.hms-addon__qtybtn:hover{background:#eef3f8;}
.hms-addon__qtyval{width:34px;border:0;background:transparent;text-align:center;font-weight:900;outline:none;padding:0;margin:0;}
.hms-addon__qtyval::-webkit-outer-spin-button,.hms-addon__qtyval::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}
.hms-addon__qtyval{appearance:textfield;}

@media (max-width: 1000px){
  .hms-sug-page__top{grid-template-columns:1fr;}
  .hms-bookcard{position:relative;top:auto;}
}

@media (max-width: 720px){
  .hms-amenities-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .hms-sug-page__title{font-size:28px;}
  .hms-gallery__thumb img{width:86px;height:56px;}
  .hms-lightbox__nav--prev{left:-52px;}
  .hms-lightbox__nav--next{right:-52px;}
  .hms-policy-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .hms-loc-grid{grid-template-columns:1fr;}
}

@media (max-width: 460px){
  .hms-policy-grid{grid-template-columns:1fr;}
}


/* Booking card - guests stepper + promo */
.hms-bk-guests{border:1px solid rgba(15,23,42,.12);border-radius:12px;padding:12px;background:#fff;}
.hms-bk-guests__label{font-size:12px;opacity:.75;margin-bottom:10px;}
.hms-bk-guests__rows{display:grid;gap:10px;}
.hms-bk-guestrow{display:flex;align-items:center;justify-content:space-between;gap:12px;}
.hms-bk-guestrow__name{font-size:14px;font-weight:600;}
.hms-stepper{display:flex;align-items:center;gap:8px;}
.hms-stepper__btn{width:34px;height:34px;border:1px solid rgba(15,23,42,.16);border-radius:10px;background:#fff;cursor:pointer;line-height:1;font-size:18px;display:flex;align-items:center;justify-content:center;}
.hms-stepper__btn:active{transform:translateY(1px);}
.hms-stepper__value{width:54px;height:34px;border:1px solid rgba(15,23,42,.12);border-radius:10px;text-align:center;font-weight:600;background:#fff;}
.hms-bookcard__cta[disabled]{opacity:.5;cursor:not-allowed;}

/* Modal + form (Phase 2 booking engine) */
.hms-modal{position:fixed;inset:0;z-index:99999;display:none;}
body.hms-modal-open{overflow:hidden;}
.hms-modal[aria-hidden="false"]{display:block;}
.hms-modal__backdrop{position:absolute;inset:0;background:rgba(15,23,42,.55);}
.hms-modal__panel{position:relative;max-width:640px;margin:6vh auto;background:#fff;border-radius:18px;box-shadow:0 20px 60px rgba(0,0,0,.25);overflow:hidden;}
.hms-modal__header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:18px 18px 12px;border-bottom:1px solid rgba(0,0,0,.08);}
.hms-modal__title{font-size:18px;font-weight:900;}
.hms-modal__close{width:38px;height:38px;border-radius:12px;border:1px solid rgba(0,0,0,.12);background:#fff;font-size:22px;line-height:1;cursor:pointer;}
.hms-modal__body{padding:16px 18px;}
.hms-modal__footer{display:flex;justify-content:flex-end;gap:10px;padding:12px 18px 18px;border-top:1px solid rgba(0,0,0,.08);}

.hms-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.hms-form-grid__full{grid-column:1 / -1;}
.hms-form-grid label{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:700;}
.hms-form-grid input,.hms-form-grid textarea{border:1px solid rgba(15,23,42,.12);border-radius:12px;padding:10px 12px;font-weight:600;}
.hms-btn{border-radius:12px;padding:10px 14px;font-weight:800;border:1px solid rgba(15,23,42,.16);background:#fff;cursor:pointer;}
.hms-btn--primary{background:#0b5cab;border-color:#0b5cab;color:#fff;}
.hms-btn--ghost{background:#fff;}

@media (max-width: 720px){
  .hms-modal__panel{margin:3vh 12px;}
  .hms-form-grid{grid-template-columns:1fr;}
}
