/* ESPAVEL Hotel Detail Premium – tour detail's composition / same tenant palette.
 * Loaded after existing hotel-detail.css: preserves gallery/modals/favorites and shared search component.
 */
.espa-hotel-detail--premium {
  --hd-ink:var(--espa-heading,#112c45);
  --hd-primary:var(--espa-primary,#ef2633);
  --hd-muted:var(--espa-text-muted,#687c91);
  --hd-border:var(--espa-border,#e5ebf2);
  --hd-bg:#f4f7fb;
  background:var(--hd-bg);
  font-family:inherit;
}
.espa-hotel-detail--premium a { text-decoration:none; }
.espa-hotel-detail--premium .espa-hotel-detail__main { padding:34px 0 110px; }
.espa-hotel-detail--premium .espa-hotel-detail__breadcrumb { margin-bottom:24px; font-size:12px; }
.espa-hotel-detail--premium .espa-hotel-detail__header { margin-bottom:24px; align-items:flex-end; }
.espa-hotel-detail__eyebrow-label {
  padding:5px 9px; border:1px solid #e1eaf3; border-radius:7px; background:#fff;
  color:#647a91; font-size:10px; font-weight:800; letter-spacing:.1em;
}
.espa-hotel-detail--premium .espa-hotel-detail__heading h1 {
  font-size:clamp(30px,3.5vw,48px); line-height:1.12; letter-spacing:-.045em;
  font-weight:850; color:var(--hd-ink);
}
.espa-hotel-detail--premium .espa-hotel-detail__stars { color:#e6a313; }
.espa-hotel-detail--premium .espa-hotel-detail__location { font-size:13px; color:var(--hd-muted); }
.espa-hotel-detail--premium .espa-hotel-detail__header-actions { padding-bottom:5px; }
.espa-hotel-detail--premium .espa-hotel-detail__action-btn { border-radius:999px; min-height:44px; padding:0 17px; background:white; }
.espa-hotel-detail--premium .espa-hotel-detail__gallery {
  height:clamp(360px,38vw,500px); grid-template-columns:minmax(0,1.65fr) minmax(320px,1fr);
  gap:8px; border-radius:24px; box-shadow:0 18px 45px rgba(13,33,53,.08);
}
.espa-hotel-detail--premium .espa-hotel-detail__gallery-main img,
.espa-hotel-detail--premium .espa-hotel-detail__gallery-thumb img { object-position:center; }
.espa-hotel-detail--premium .espa-hotel-detail__all-photos { min-height:45px; padding:0 15px!important; border-radius:999px; }
.espa-hotel-detail__quick-facts {
  display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin:20px 0 22px;
}
.espa-hotel-detail__quick-fact {
  display:flex; align-items:center; gap:12px; min-width:0; padding:17px 16px;
  border:1px solid var(--hd-border); border-radius:16px; background:#fff;
  box-shadow:0 8px 22px rgba(15,23,42,.035); color:var(--hd-ink);
}
.espa-hotel-detail__quick-fact .espa-hotel-detail__quick-icon {
  flex:0 0 42px; height:42px; display:grid; place-items:center; border-radius:13px;
  background:color-mix(in srgb,var(--hd-primary) 7%,#fff); color:var(--hd-primary);
}
.espa-hotel-detail__quick-icon iconify-icon { font-size:21px; }
.espa-hotel-detail__quick-fact > span:last-child { display:grid; min-width:0; gap:4px; }
.espa-hotel-detail__quick-fact small { font-size:10px; color:var(--hd-muted); font-weight:700; }
.espa-hotel-detail__quick-fact strong { overflow:hidden; text-overflow:ellipsis; font-size:13px; color:var(--hd-ink); font-weight:800; }
.espa-hotel-detail__quick-fact:hover { color:var(--hd-ink); border-color:#cad7e5; }
.espa-hotel-detail__live-search {
  position:relative; z-index:22; scroll-margin-top:120px; padding:25px 26px 28px;
  margin:20px 0 26px; border:1px solid #d9e3ed; border-radius:22px;
  background:linear-gradient(115deg,#edf4f9,#f7f9fb 70%);
  box-shadow:0 16px 38px rgba(13,33,53,.05);
}
.espa-hotel-detail__live-search-head { display:flex; align-items:center; justify-content:space-between; gap:22px; margin-bottom:20px; }
.espa-hotel-detail__live-search-head > div:first-child { min-width:0; }
.espa-hotel-detail__live-search-head > div:first-child > span {
  display:flex; align-items:center; gap:6px; color:var(--hd-primary);
  font-size:10px; letter-spacing:.11em; font-weight:850;
}
.espa-hotel-detail__live-search-head h2 { margin:7px 0 6px; font-size:clamp(20px,2vw,26px); font-weight:850; color:var(--hd-ink); letter-spacing:-.035em; }
.espa-hotel-detail__live-search-head p { max-width:780px; margin:0; font-size:12px; color:var(--hd-muted); line-height:1.6; }
.espa-hotel-detail__secure-chip {
  display:flex; align-items:center; gap:8px; padding:10px 13px; border-radius:999px;
  background:#fff; border:1px solid #dce8ed; color:#345d5a; font-size:11px; font-weight:750; white-space:nowrap;
}
.espa-hotel-detail__secure-chip iconify-icon { font-size:18px; color:#219771; }
.espa-hotel-detail--premium .espa-hotel-detail__live-search .espa-hotel-search { max-width:none; }
.espa-hotel-detail--premium .espa-hotel-detail__live-search .espa-hotel-search__form { box-shadow:0 10px 28px rgba(17,42,63,.04); }
.espa-hotel-detail--premium .espa-hotel-detail__nav {
  background:#fff; border:1px solid var(--hd-border); padding:8px 10px; border-radius:16px;
  box-shadow:0 7px 20px rgba(15,23,42,.035); margin-bottom:24px;
}
.espa-hotel-detail--premium .espa-hotel-detail__nav-scroll a { font-size:12px; }
.espa-hotel-detail--premium .espa-hotel-detail__layout { grid-template-columns:minmax(0,1fr) 338px; gap:24px; }
.espa-hotel-detail--premium .espa-hotel-detail__section {
  padding:30px; border:1px solid var(--hd-border); border-radius:20px; margin-bottom:18px;
  box-shadow:0 10px 30px rgba(15,23,42,.035); scroll-margin-top:120px;
}
.espa-hotel-detail--premium .espa-hotel-detail__section-heading h2 {
  color:var(--hd-ink); font-weight:850; font-size:25px; letter-spacing:-.03em;
}
.espa-hotel-detail--premium .espa-hotel-detail__section-kicker { letter-spacing:.11em; }
.espa-hotel-detail--premium .espa-hotel-detail__sidebar-sticky { top:120px; }
.espa-hotel-detail--premium .espa-hotel-detail__booking-card,
.espa-hotel-detail--premium .espa-hotel-detail__location-card {
  border-radius:20px; padding:22px; box-shadow:0 13px 31px rgba(15,23,42,.055);
}
.espa-hotel-detail__quote-head { display:flex; align-items:center; gap:13px; margin-bottom:18px; }
.espa-hotel-detail--premium .espa-hotel-detail__quote-head .espa-hotel-detail__booking-icon {
  flex:0 0 47px; width:47px; height:47px; border-radius:14px; margin:0;
}
.espa-hotel-detail__quote-head h2 { margin:0!important; font-size:18px!important; }
.espa-hotel-detail__quote-price { margin:17px 0; padding:16px; background:#f5f8fc; border:1px solid #e3ebf3; border-radius:15px; }
.espa-hotel-detail__quote-price small { display:block; margin-bottom:4px; color:var(--hd-muted); font-size:10px; }
.espa-hotel-detail__quote-price strong { color:var(--hd-ink); font-size:clamp(23px,2.2vw,30px); font-weight:850; letter-spacing:-.04em; }
.espa-hotel-detail__quote-price > span { display:block; margin-top:3px; color:#9ba9b7; text-decoration:line-through; font-size:12px; }
.espa-hotel-detail__quote-breakdown { margin:12px 0 18px; }
.espa-hotel-detail__quote-item { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; padding:10px 0; border-bottom:1px solid #edf1f6; }
.espa-hotel-detail__quote-item > span { display:grid; gap:3px; min-width:0; font-size:11px; color:#536a80; }
.espa-hotel-detail__quote-item b { color:var(--hd-ink); }
.espa-hotel-detail__quote-item small { font-size:10px; color:var(--hd-muted); }
.espa-hotel-detail__quote-item strong { white-space:nowrap; font-size:12px; color:var(--hd-ink); }
.espa-hotel-detail__booking-trust { display:flex; align-items:center; gap:7px; margin-top:14px; color:var(--hd-muted); font-size:10px; }
.espa-hotel-detail__booking-trust iconify-icon { color:#1c9774; font-size:16px; }
.espa-hotel-detail__rooms-intro { display:flex; gap:13px; align-items:center; margin-bottom:20px; padding:15px; border-radius:14px; background:#f4f8fc; }
.espa-hotel-detail__rooms-intro-icon { display:grid; place-items:center; width:46px; height:46px; flex:0 0 46px; border-radius:12px; background:#fff; color:var(--hd-primary); }
.espa-hotel-detail__rooms-intro-icon iconify-icon { font-size:23px; }
.espa-hotel-detail__rooms-intro h3 { margin:0 0 4px; color:var(--hd-ink); font-size:15px; font-weight:800; }
.espa-hotel-detail__rooms-intro p { margin:0; color:var(--hd-muted); line-height:1.5; font-size:12px; }
.espa-hotel-detail__rooms-status { display:flex; flex-direction:column; align-items:center; gap:8px; padding:38px 20px; border:1px dashed #cbd7e3; border-radius:15px; background:#f8fafc; text-align:center; }
.espa-hotel-detail__rooms-status > iconify-icon { color:var(--hd-primary); font-size:28px; }
.espa-hotel-detail__rooms-status strong { color:var(--hd-ink); font-size:15px; }
.espa-hotel-detail__rooms-status p { max-width:500px; margin:0; color:var(--hd-muted); font-size:12px; line-height:1.6; }
.espa-hotel-detail__rooms-status.is-loading { background:#fff; border-style:solid; }
.espa-hotel-detail__loading-spin { display:block; width:38px; height:38px; border:3px solid #e2e8f0; border-top-color:var(--hd-primary); border-radius:50%; animation:hd-spin .8s linear infinite; }
@keyframes hd-spin { to { transform:rotate(360deg); } }
.espa-hotel-detail__outline-link { display:inline-flex; align-items:center; gap:7px; color:var(--hd-primary); font-size:12px; font-weight:750; }
.espa-hotel-detail__room-results { display:grid; gap:22px; }
.espa-hotel-detail__room-group { min-width:0; }
.espa-hotel-detail__room-group-head { display:flex; align-items:center; gap:13px; margin-bottom:13px; }
.espa-hotel-detail__room-index { display:grid; place-items:center; flex:0 0 38px; width:38px; height:38px; border-radius:12px; color:#fff; background:var(--hd-ink); font-size:14px; font-weight:850; }
.espa-hotel-detail__room-group-head h3 { margin:0; font-size:17px; color:var(--hd-ink); font-weight:800; }
.espa-hotel-detail__room-group-head p { margin:3px 0 0; font-size:11px; color:var(--hd-muted); }
.espa-hotel-detail__offer-list { display:grid; gap:12px; }
.espa-hotel-detail__offer {
  display:grid; grid-template-columns:64px minmax(0,1fr) 192px; gap:16px;
  align-items:center; padding:18px; border:1px solid #e5ebf2; border-radius:16px; background:#fff;
  box-shadow:0 5px 17px rgba(12,33,53,.028); transition:border-color .2s,box-shadow .2s;
}
.espa-hotel-detail__offer:hover { border-color:#cdd9e7; box-shadow:0 10px 24px rgba(12,33,53,.055); }
.espa-hotel-detail__offer.is-selected { border-color:var(--hd-primary); box-shadow:0 0 0 3px color-mix(in srgb,var(--hd-primary) 8%,transparent); }
.espa-hotel-detail__offer-icon { height:62px; width:62px; display:grid; place-items:center; border-radius:13px; background:linear-gradient(145deg,#eaf3f8,#f7f9fb); color:#496b88; }
.espa-hotel-detail__offer-icon iconify-icon { font-size:32px; }
.espa-hotel-detail__offer-main { min-width:0; }
.espa-hotel-detail__offer-title-row { display:flex; align-items:center; flex-wrap:wrap; gap:9px; }
.espa-hotel-detail__offer h4 { margin:0; color:var(--hd-ink); font-size:15px; font-weight:800; }
.espa-hotel-detail__best-tag { display:flex; gap:4px; align-items:center; background:#fff5da; color:#996a0d; padding:4px 8px; border-radius:999px; font-size:10px; font-weight:800; }
.espa-hotel-detail__offer-chips { display:flex; flex-wrap:wrap; gap:7px; margin-top:9px; }
.espa-hotel-detail__offer-chips > span { display:flex; align-items:center; gap:5px; padding:6px 9px; border-radius:8px; background:#f4f7fa; color:#50677c; font-size:10px; font-weight:700; }
.espa-hotel-detail__offer-chips .is-refundable { background:#effaf5; color:#207657; }
.espa-hotel-detail__offer-chips .is-nonrefundable { background:#fff5ef; color:#a16a3a; }
.espa-hotel-detail__offer-aside { display:grid; justify-items:end; align-content:center; gap:4px; text-align:right; }
.espa-hotel-detail__offer-aside small { font-size:10px; color:var(--hd-muted); }
.espa-hotel-detail__offer-aside del { color:#97a7b8; font-size:11px; }
.espa-hotel-detail__offer-aside > strong { font-size:22px; line-height:1.1; font-weight:850; letter-spacing:-.04em; color:var(--hd-ink); }
.espa-hotel-detail__offer-select { display:inline-flex; justify-content:center; align-items:center; gap:6px; width:100%; margin-top:8px; min-height:39px; padding:7px 10px; background:var(--hd-primary); color:#fff; border:0; border-radius:10px; font-size:11px; font-weight:800; cursor:pointer; }
.espa-hotel-detail__offer.is-selected .espa-hotel-detail__offer-select { background:#167653; }
.espa-hotel-detail__offer-select:focus-visible { outline:3px solid #a9c3ee; outline-offset:3px; }
.espa-hotel-detail__offer-daily { margin-top:10px; font-size:11px; max-width:390px; }
.espa-hotel-detail__offer-daily summary { display:flex; align-items:center; gap:5px; color:#58738c; cursor:pointer; font-weight:750; }
.espa-hotel-detail__offer-daily > div { margin-top:8px; background:#f7fafc; border:1px solid #e8eef4; border-radius:10px; padding:8px 12px; }
.espa-hotel-detail__offer-daily > div > div { display:flex; justify-content:space-between; gap:10px; padding:5px 0; border-bottom:1px solid #edf1f5; }
.espa-hotel-detail__offer-daily > div > div:last-child { border-bottom:0; }
.espa-hotel-detail__no-room { display:flex; align-items:center; gap:10px; padding:22px 15px; border:1px dashed #d7e1ec; border-radius:13px; color:#728398; font-size:12px; }
.espa-hotel-detail__no-room iconify-icon { color:var(--hd-primary); font-size:23px; }
.espa-hotel-detail__rooms-disclaimer { display:flex; align-items:flex-start; gap:7px; margin:14px 0 0; color:#7b8da0; font-size:10px; line-height:1.5; }
.espa-hotel-detail__rooms-disclaimer iconify-icon { flex:0 0 auto; font-size:16px; }
@media (max-width:1199.98px) {
  .espa-hotel-detail__quick-facts { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .espa-hotel-detail--premium .espa-hotel-detail__layout { grid-template-columns:minmax(0,1fr) 290px; gap:16px; }
  .espa-hotel-detail--premium .espa-hotel-detail__section { padding:25px; }
  .espa-hotel-detail__offer { grid-template-columns:48px minmax(0,1fr); }
  .espa-hotel-detail__offer-icon { width:48px; height:48px; }
  .espa-hotel-detail__offer-aside { grid-column:2; justify-items:start; text-align:left; }
  .espa-hotel-detail__offer-select { width:auto; min-width:145px; }
}
@media (max-width:991.98px) {
  .espa-hotel-detail--premium .espa-hotel-detail__layout { display:block; }
  .espa-hotel-detail--premium .espa-hotel-detail__sidebar { display:none; }
  .espa-hotel-detail--premium .espa-hotel-detail__gallery { grid-template-columns:minmax(0,1.4fr) minmax(240px,.8fr); height:380px; }
  .espa-hotel-detail__live-search { padding:21px; }
  .espa-hotel-detail__secure-chip { display:none; }
  .espa-hotel-detail--premium .espa-hotel-detail__nav { top:68px; }
  .espa-hotel-detail__offer { grid-template-columns:58px minmax(0,1fr) 170px; }
  .espa-hotel-detail__offer-icon { width:58px; height:58px; }
  .espa-hotel-detail__offer-aside { grid-column:auto; justify-items:end; text-align:right; }
  .espa-hotel-detail__offer-select { width:100%; }
}
@media (max-width:767.98px) {
  .espa-hotel-detail--premium .espa-hotel-detail__main { padding:18px 0 115px; }
  .espa-hotel-detail--premium .espa-hotel-detail__header { gap:12px; }
  .espa-hotel-detail--premium .espa-hotel-detail__heading h1 { font-size:29px; }
  .espa-hotel-detail--premium .espa-hotel-detail__gallery { display:block; height:310px; margin:0 -12px 18px; border-radius:0; }
  .espa-hotel-detail__quick-facts { gap:9px; margin:14px 0 17px; }
  .espa-hotel-detail__quick-fact { padding:11px; gap:8px; }
  .espa-hotel-detail__quick-fact .espa-hotel-detail__quick-icon { height:34px; flex-basis:34px; }
  .espa-hotel-detail__quick-icon iconify-icon { font-size:17px; }
  .espa-hotel-detail__quick-fact strong { font-size:11px; }
  .espa-hotel-detail__quick-fact small { font-size:9px; }
  .espa-hotel-detail__live-search { padding:20px 14px; margin:15px 0 17px; border-radius:17px; }
  .espa-hotel-detail__live-search-head h2 { font-size:21px; }
  .espa-hotel-detail__live-search-head p { font-size:11px; }
  .espa-hotel-detail--premium .espa-hotel-detail__live-search .espa-hotel-search__form { box-shadow:none; }
  .espa-hotel-detail--premium .espa-hotel-detail__nav { margin:0 -12px 18px; border-radius:0; padding:6px 12px; top:60px; }
  .espa-hotel-detail--premium .espa-hotel-detail__section { padding:21px 16px; border-radius:15px; }
  .espa-hotel-detail--premium .espa-hotel-detail__section-heading h2 { font-size:21px; }
  .espa-hotel-detail__rooms-intro { padding:12px; }
  .espa-hotel-detail__offer { grid-template-columns:44px minmax(0,1fr); gap:12px; padding:15px; }
  .espa-hotel-detail__offer-icon { width:44px; height:44px; }
  .espa-hotel-detail__offer-icon iconify-icon { font-size:22px; }
  .espa-hotel-detail__offer h4 { font-size:14px; }
  .espa-hotel-detail__offer-aside { grid-column:1/-1; display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:7px 10px; padding-top:12px; border-top:1px solid #edf1f5; text-align:left; }
  .espa-hotel-detail__offer-aside small { width:100%; }
  .espa-hotel-detail__offer-aside > strong { font-size:22px; }
  .espa-hotel-detail__offer-select { flex:0 0 auto; width:auto; min-width:132px; margin:0; }
  .espa-hotel-detail__room-group-head h3 { font-size:15px; }
  .espa-hotel-detail__mobile-bar { padding-bottom:max(12px,env(safe-area-inset-bottom)); }
}
@media (max-width:400px) {
  .espa-hotel-detail--premium .espa-hotel-detail__heading h1 { font-size:25px; }
  .espa-hotel-detail__quick-fact { padding:9px; }
  .espa-hotel-detail__offer-aside { display:grid; grid-template-columns:1fr 1fr; align-items:end; }
  .espa-hotel-detail__offer-aside small { grid-column:1/-1; }
  .espa-hotel-detail__offer-aside del { grid-column:1; }
  .espa-hotel-detail__offer-aside > strong { grid-column:1; }
  .espa-hotel-detail__offer-select { grid-column:2; grid-row:2/span 2; min-width:0; }
}
.espa-hotel-detail__editorial-tags { display:flex; gap:7px; flex-wrap:wrap; margin-top:12px; }
.espa-hotel-detail__editorial-tags > span { display:inline-flex; align-items:center; gap:5px; background:color-mix(in srgb,var(--hd-primary) 7%,white); color:var(--hd-primary); border-radius:8px; padding:6px 10px; font-size:10px; font-weight:800; }
.espa-hotel-detail__editorial-highlights { margin-top:21px; padding:20px; border:1px solid #e3ebf3; background:#f8fafc; border-radius:16px; }
.espa-hotel-detail__editorial-highlights h3 { display:flex; align-items:center; gap:7px; color:var(--hd-ink); font-size:14px; font-weight:800; margin:0 0 12px; }
.espa-hotel-detail__editorial-highlights h3 iconify-icon { color:var(--hd-primary); }
.espa-hotel-detail__editorial-highlights > div { display:flex; flex-wrap:wrap; gap:8px; }
.espa-hotel-detail__editorial-highlights > div > span { display:inline-flex; align-items:center; gap:7px; padding:10px 12px; background:#fff; border:1px solid #e2eaf2; border-radius:10px; color:#334b62; font-size:11px; font-weight:700; }
.espa-hotel-detail__editorial-highlights > div iconify-icon { color:#1b9b72; font-size:15px; }
.espa-hotel-detail__rooms-status[hidden], .espa-hotel-detail__room-results[hidden], .espa-hotel-detail__quote-price[hidden] { display:none!important; }
.espa-hotel-detail__editorial-tags { display:flex; gap:7px; flex-wrap:wrap; margin-top:12px; }
.espa-hotel-detail__editorial-tags > span { display:inline-flex; align-items:center; gap:5px; background:color-mix(in srgb,var(--hd-primary) 7%,white); color:var(--hd-primary); border-radius:8px; padding:6px 10px; font-size:10px; font-weight:800; }
.espa-hotel-detail__editorial-highlights { margin-top:21px; padding:20px; border:1px solid #e3ebf3; background:#f8fafc; border-radius:16px; }
.espa-hotel-detail__editorial-highlights h3 { display:flex; align-items:center; gap:7px; color:var(--hd-ink); font-size:14px; font-weight:800; margin:0 0 12px; }
.espa-hotel-detail__editorial-highlights h3 iconify-icon { color:var(--hd-primary); }
.espa-hotel-detail__editorial-highlights > div { display:flex; flex-wrap:wrap; gap:8px; }
.espa-hotel-detail__editorial-highlights > div > span { display:inline-flex; align-items:center; gap:7px; padding:10px 12px; background:#fff; border:1px solid #e2eaf2; border-radius:10px; color:#334b62; font-size:11px; font-weight:700; }
.espa-hotel-detail__editorial-highlights > div iconify-icon { color:#1b9b72; font-size:15px; }
.espa-hotel-detail__rooms-status[hidden], .espa-hotel-detail__room-results[hidden], .espa-hotel-detail__quote-price[hidden] { display:none!important; }

/* =============================================================
   V12: nav + search as one sticky dock; true room catalogue cards
   ============================================================= */
.espa-hotel-detail--premium { --hd-scroll-offset: 205px; }
.espa-hotel-detail--premium .espa-hotel-detail__sticky-dock {
  position: sticky; top: 0; z-index: 1030; isolation: isolate;
  margin: 0 0 24px; display: flex; flex-direction: column;
  overflow: visible; transition: box-shadow .2s ease;
}
.espa-hotel-detail--premium .espa-hotel-detail__sticky-dock.is-stuck {
  border: 1px solid #e1e8f0; border-top: 0;
  border-radius: 0 0 16px 16px; padding: 6px 8px 9px;
  background: rgba(247, 249, 252, .97);
  box-shadow: 0 14px 28px rgba(15, 39, 58, .15);
  backdrop-filter: blur(12px);
}
.espa-hotel-detail--premium .espa-hotel-detail__sticky-dock .espa-hotel-detail__nav {
  position: relative !important; top: auto !important; left: auto !important;
  z-index: 1 !important; margin: 0 0 7px !important; flex: 0 0 auto;
  box-shadow: 0 5px 15px rgba(15, 39, 58, .035);
}
.espa-hotel-detail--premium .espa-hotel-detail__sticky-dock .espa-hotel-detail__live-search {
  position: relative; z-index: 3; margin: 0 !important;
  overflow: visible; flex: 0 0 auto;
}
.espa-hotel-detail--premium .espa-hotel-detail__sticky-dock.is-stuck .espa-hotel-detail__live-search {
  padding: 8px 10px 10px; border-radius: 13px;
  background: #eef3f7; box-shadow: none;
}
.espa-hotel-detail--premium .espa-hotel-detail__sticky-dock.is-stuck .espa-hotel-detail__live-search-head {
  display: none;
}
.espa-hotel-detail--premium .espa-hotel-detail__sticky-dock.is-stuck .espa-hotel-search__form {
  min-height: 60px; padding: 5px !important;
}
.espa-hotel-detail--premium .espa-hotel-detail__sticky-dock.is-stuck .espa-hotel-search__field {
  padding-top: 0; padding-bottom: 0;
}
/* Calendar and guests are anchored below the SEARCH, and thus above page content. */
.espa-hotel-detail--premium .espa-hotel-detail__sticky-dock .espa-hotel-search {
  position: relative; z-index: 7; overflow: visible;
}
.espa-hotel-detail--premium .espa-hotel-detail__sticky-dock .espa-hotel-search__calendar,
.espa-hotel-detail--premium .espa-hotel-detail__sticky-dock .espa-hotel-search__occupancy,
.espa-hotel-detail--premium .espa-hotel-detail__sticky-dock .espa-hotel-search__suggestions {
  z-index: 1100 !important;
  box-shadow: 0 18px 40px rgba(10, 32, 52, .2);
}
.espa-hotel-detail--premium .espa-hotel-detail__sticky-dock .espa-hotel-search__occupancy {
  max-height: min(580px, calc(100dvh - 180px));
}
.espa-hotel-detail--premium .espa-hotel-detail__section {
  scroll-margin-top: var(--hd-scroll-offset) !important;
}
.espa-hotel-detail__room-progress {
  margin: 0 0 17px; padding: 14px 15px;
  border: 1px solid #dfebf5; border-radius: 13px; background: #f5f9fd;
}
.espa-hotel-detail__room-progress > strong {font-size: 13px; color: var(--hd-ink);}
.espa-hotel-detail__room-progress > small {display: block; margin-top: 9px; font-size: 11px; color: var(--hd-muted);}
.espa-hotel-detail__progress-steps {display:flex; align-items:center; flex-wrap:wrap; gap:8px; margin-top:9px;}
.espa-hotel-detail__progress-steps button {
  display:inline-flex; align-items:center; gap:6px; min-height:36px; padding:7px 12px;
  border-radius:10px; border:1px solid #d7e2eb; background:#fff;
  color:var(--hd-ink); font-size:11px; font-weight:750; cursor:pointer;
}
.espa-hotel-detail__progress-steps button.is-active {border-color:#153550; background:#153550; color:white;}
.espa-hotel-detail__progress-steps button.is-done {border-color:#b2ddcd; background:#eaf8f1; color:#157350;}
.espa-hotel-detail__progress-steps button iconify-icon {font-size:15px;}
.espa-hotel-detail__room-group {scroll-margin-top:var(--hd-scroll-offset);}
.espa-hotel-detail__room-group + .espa-hotel-detail__room-group {
  border-top:1px solid #e8eff5; padding-top:23px;
}
.espa-hotel-detail__room-group-head {flex-wrap:wrap;}
.espa-hotel-detail__group-state {margin-left:auto; padding:6px 10px; border-radius:30px; color:#48667c; background:#f0f5f9; font-size:10px; font-weight:700;}
.espa-hotel-detail__room-type-card {
  display:grid; grid-template-columns: 205px minmax(0,1fr);
  gap: 17px; border:1px solid #dce6ee; border-radius:18px;
  background:#fff; padding:15px; box-shadow:0 8px 22px rgba(14,39,58,.04);
}
.espa-hotel-detail__room-type-card + .espa-hotel-detail__room-type-card {margin-top:14px;}
.espa-hotel-detail__room-type-visual {min-width:0;}
.espa-hotel-detail__room-visual {position:relative; width:100%; height:190px; border-radius:13px; overflow:hidden; background:#eef3f8;}
.espa-hotel-detail__room-cover {position:relative; width:100%; height:100%; border:0; padding:0; background:transparent; display:block; cursor:zoom-in;}
.espa-hotel-detail__room-cover img {width:100%;height:100%;object-fit:cover;display:block;}
.espa-hotel-detail__room-cover > span {position:absolute;bottom:10px;left:10px;display:flex;align-items:center;gap:5px;
  border-radius:30px;padding:6px 10px;background:rgba(11,31,49,.75);color:#fff;font-size:10px;font-weight:750;}
.espa-hotel-detail__room-visual-actions {position:absolute; top:50%; left:8px; right:8px; transform:translateY(-50%); display:flex; justify-content:space-between; pointer-events:none;}
.espa-hotel-detail__room-visual-actions button {pointer-events:auto;display:grid;place-items:center; height:31px;width:31px;border-radius:50%;border:1px solid #e3eaf2;background:rgba(255,255,255,.95);color:#153149;}
.espa-hotel-detail__room-image-empty {min-height:190px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:9px;border-radius:13px;background:#f0f5f9;color:#7190a8;font-size:11px;}
.espa-hotel-detail__room-image-empty iconify-icon {font-size:37px;}
.espa-hotel-detail__room-type-information {min-width:0; padding:3px 4px; align-self:center;}
.espa-hotel-detail__room-type-information h4 {margin:0 0 11px;color:var(--hd-ink);font-size:18px;font-weight:850;line-height:1.25;}
.espa-hotel-detail__room-metadata {display:flex;flex-wrap:wrap;gap:7px 11px;color:#567187;font-size:11px;}
.espa-hotel-detail__room-metadata > span {display:inline-flex;gap:5px;align-items:center;}
.espa-hotel-detail__room-metadata iconify-icon {color:var(--hd-primary);font-size:14px;}
.espa-hotel-detail__room-description {margin:10px 0 0;color:#566d82;font-size:11px;line-height:1.6;white-space:normal;overflow-wrap:anywhere;}
.espa-hotel-detail__room-features {margin-top:11px;}
.espa-hotel-detail__room-features summary {color:#245777;font-weight:750;font-size:11px;cursor:pointer;}
.espa-hotel-detail__room-features > div {display:flex;flex-wrap:wrap;gap:6px;margin-top:9px;}
.espa-hotel-detail__room-features > div > span {display:flex;align-items:center;gap:5px;border:1px solid #e2ebf2;border-radius:8px;padding:5px 8px;color:#425b70;background:#fafcff;font-size:10px;}
.espa-hotel-detail__room-features iconify-icon {color:#168660;}
.espa-hotel-detail__room-type-rates {grid-column:1/-1;border-top:1px solid #e7edf4;padding-top:12px;display:grid;gap:10px;}
.espa-hotel-detail__rate {display:grid;grid-template-columns:minmax(0,1fr) 171px;gap:15px;align-items:center;padding:12px;
  border:1px solid #e5edf4;border-radius:13px;background:#fdfefe;}
.espa-hotel-detail__rate.is-selected {border-color:#46b58b; background:#f6fcf9;box-shadow:0 0 0 2px #e2f5ea;}
.espa-hotel-detail__rate-top {display:flex;gap:7px;align-items:center;flex-wrap:wrap;}
.espa-hotel-detail__rate-top strong {font-size:12px;color:var(--hd-ink);}
.espa-hotel-detail__rate-badges {display:flex;flex-wrap:wrap;gap:6px;margin-top:7px;}
.espa-hotel-detail__rate-badges > span {display:inline-flex;align-items:center;gap:5px;padding:5px 8px;border-radius:8px;background:#f2f5f8;color:#597084;font-size:10px;font-weight:700;}
.espa-hotel-detail__rate-badges .is-refundable {background:#e9f9f0;color:#147850;}
.espa-hotel-detail__rate-badges .is-nonrefundable {background:#fff4e9;color:#985e1d;}
.espa-hotel-detail__rate-badges .is-approval {background:#fff1f1;color:#a72525;}
.espa-hotel-detail__plan-name {margin:7px 0 0;color:#8090a0;font-size:10px;}
.espa-hotel-detail__rate-terms {margin-top:8px;font-size:10px;color:#6c7e90;}
.espa-hotel-detail__rate-terms summary {cursor:pointer;color:#526f88;font-weight:700;}
.espa-hotel-detail__rate-terms p {margin:5px 0 0;line-height:1.6;}
.espa-hotel-detail__rate-price {text-align:right;display:flex;flex-direction:column;align-items:flex-end;gap:3px;}
.espa-hotel-detail__rate-price small {font-size:10px;color:#71849a;}
.espa-hotel-detail__rate-price del {font-size:10px;color:#a0afbf;}
.espa-hotel-detail__rate-price strong {font-size:19px;color:var(--hd-ink);font-weight:850;}
.espa-hotel-detail__rate-price button {margin-top:5px;min-width:140px;min-height:40px;display:flex;align-items:center;justify-content:center;gap:6px;background:var(--hd-primary);color:#fff;border:0;border-radius:10px;font-size:11px;font-weight:800;cursor:pointer;}
.espa-hotel-detail__rate.is-selected .espa-hotel-detail__rate-price button {background:#167b57;}
.espa-hotel-detail__rate-price button:disabled {background:#c5cdd5;cursor:not-allowed;}
.espa-hotel-detail__catalog-intro {display:flex;gap:10px;align-items:center;margin:0 0 12px;color:#3d5970;font-size:12px;border-radius:12px;padding:15px;background:#f2f7fc;}
.espa-hotel-detail__catalog-grid {display:grid;gap:13px;}
.espa-hotel-detail__catalog-card {display:grid;grid-template-columns:180px minmax(0,1fr);gap:14px;border:1px solid #e3ebf2;border-radius:15px;padding:12px;background:#fff;}
.espa-hotel-detail__catalog-card .espa-hotel-detail__room-visual {height:145px;}
.espa-hotel-detail__catalog-card .espa-hotel-detail__room-image-empty {min-height:145px;}
.espa-hotel-detail__catalog-card-info h3 {font-size:15px;color:var(--hd-ink);margin:0 0 8px;}
.espa-hotel-detail__room-photo-modal .modal-content, .espa-hotel-detail__review-modal .modal-content {border:0;border-radius:18px;overflow:hidden;}
.espa-hotel-detail__room-photo-modal .modal-header h2, .espa-hotel-detail__review-modal .modal-header h2 {font-size:18px;color:var(--hd-ink);margin:0;}
.espa-hotel-detail__room-photo-stage {display:grid;grid-template-columns:40px minmax(0,1fr) 40px;align-items:center;gap:9px;}
.espa-hotel-detail__room-photo-stage img {display:block;width:100%;height:min(58vh,550px);object-fit:contain;background:#edf3f7;border-radius:12px;}
.espa-hotel-detail__room-photo-stage button {width:40px;height:40px;display:grid;place-items:center;border:1px solid #dde5ed;border-radius:50%;background:white;color:var(--hd-ink);}
.espa-hotel-detail__room-photo-counter {text-align:center;color:#74869a;font-size:11px;margin:12px 0;}
.espa-hotel-detail__room-photo-thumbs {display:flex;gap:8px;max-width:100%;overflow-x:auto;padding:5px 0;}
.espa-hotel-detail__room-photo-thumbs button {padding:2px;flex:0 0 65px;width:65px;height:55px;border:2px solid transparent;border-radius:9px;background:transparent;}
.espa-hotel-detail__room-photo-thumbs button.is-active {border-color:var(--hd-primary);}
.espa-hotel-detail__room-photo-thumbs img {width:100%;height:100%;object-fit:cover;border-radius:5px;}
.espa-hotel-detail__review-room {display:flex;align-items:center;gap:12px;padding:14px 0;border-bottom:1px solid #e3ebf2;}
.espa-hotel-detail__review-room > div {flex:1;min-width:0;}
.espa-hotel-detail__review-room strong {font-size:13px;color:var(--hd-ink);}
.espa-hotel-detail__review-room p {font-size:11px;color:#5e7589;margin:5px 0;}
.espa-hotel-detail__review-room small {font-size:10px;color:#7b8a9a;}
.espa-hotel-detail__review-room b {font-size:13px;white-space:nowrap;}
.espa-hotel-detail__review-period {display:flex;gap:8px;align-items:center;color:#506981;font-size:12px;}
.espa-hotel-detail__review-total {display:flex;align-items:center;gap:12px;justify-content:flex-end;margin-top:14px;}
.espa-hotel-detail__review-total strong {font-size:25px;color:var(--hd-ink);}
.espa-hotel-detail__review-total del {font-size:12px;color:#90a0b0;}
.espa-hotel-detail__review-note,.espa-hotel-detail__review-caveat {font-size:11px;color:#7a8ea0;line-height:1.6;}
.espa-hotel-detail__review-note {margin:14px 0 0;}
.espa-hotel-detail__review-modal .modal-footer {justify-content:space-between;gap:12px;}
.espa-hotel-detail__review-close {border:1px solid #d9e3ee;background:#fff;padding:8px 15px;border-radius:9px;color:#34546b;font-size:12px;font-weight:750;}
@media(max-width:991.98px){
  .espa-hotel-detail--premium .espa-hotel-detail__sticky-dock {top:0;}
  .espa-hotel-detail__room-type-card {grid-template-columns:200px minmax(0,1fr);}
}
@media(max-width:767.98px){
  .espa-hotel-detail--premium .espa-hotel-detail__sticky-dock {margin-left:-12px;margin-right:-12px;}
  .espa-hotel-detail--premium .espa-hotel-detail__sticky-dock .espa-hotel-detail__nav {margin:0 0 6px!important;border-radius:12px;padding:5px 6px;}
  .espa-hotel-detail--premium .espa-hotel-detail__sticky-dock .espa-hotel-detail__live-search {border-radius:12px;padding:10px 8px;}
  .espa-hotel-detail__live-search-head {display:none!important;}
  .espa-hotel-detail--premium .espa-hotel-search__field--location {display:none;}
  .espa-hotel-detail--premium .espa-hotel-search__form {display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:7px;padding:6px!important;}
  .espa-hotel-detail--premium .espa-hotel-search__field {padding:5px 7px;border-right:0;border-bottom:1px solid #edf1f6;}
  .espa-hotel-detail--premium .espa-hotel-search__field label {display:none;}
  .espa-hotel-detail--premium .espa-hotel-search__submit-wrap {grid-column:1/-1;}
  .espa-hotel-detail--premium .espa-hotel-search__submit {min-height:35px;}
  .espa-hotel-detail--premium .espa-hotel-detail__sticky-dock.is-stuck .espa-hotel-search__field {padding:0 5px;}
  .espa-hotel-detail--premium .espa-hotel-detail__sticky-dock.is-stuck .espa-hotel-search__form {padding:2px!important;gap:3px;}
  .espa-hotel-detail__room-type-card {grid-template-columns:minmax(0,1fr);gap:12px;padding:12px;}
  .espa-hotel-detail__room-visual {height:220px;}
  .espa-hotel-detail__room-type-rates {grid-column:auto;}
  .espa-hotel-detail__rate {grid-template-columns:minmax(0,1fr);gap:8px;}
  .espa-hotel-detail__rate-price {align-items:stretch;text-align:left;border-top:1px solid #edf2f6;padding-top:10px;}
  .espa-hotel-detail__rate-price strong {font-size:21px;}
  .espa-hotel-detail__rate-price button {width:100%;}
  .espa-hotel-detail__catalog-card {grid-template-columns:minmax(0,1fr);}
  .espa-hotel-detail__room-photo-stage {grid-template-columns:30px minmax(0,1fr) 30px;gap:3px;}
  .espa-hotel-detail__room-photo-stage button {height:30px;width:30px;}
  .espa-hotel-detail__room-photo-stage img {height:min(50vh,360px);}
  .espa-hotel-detail__review-room {align-items:flex-start;flex-wrap:wrap;}
  .espa-hotel-detail__review-room b {margin-left:50px;}
}
@media(max-width:390px){
  .espa-hotel-detail__room-visual {height:185px;}
  .espa-hotel-detail__room-group-head h3 {font-size:14px;}
  .espa-hotel-detail__group-state {width:100%;margin:0;}
  .espa-hotel-detail--premium .espa-hotel-search__date-button {font-size:10px;}
}

/* ===========================================================
   V13 — Compact sticky bar, viewport-aware calendar & room UI
   =========================================================== */
.espa-hotel-detail--premium .espa-hotel-detail__dock-sentinel {
  height:1px; margin-bottom:-1px; pointer-events:none;
}
.espa-hotel-detail--premium .espa-hotel-detail__sticky-dock {
  z-index:1035;
  isolation:auto; /* fixed calendar must use the viewport, not a stacking layer */
}
.espa-hotel-detail--premium .espa-hotel-detail__sticky-dock.is-stuck {
  background:#f7f9fc;
  backdrop-filter:none; /* backdrop-filter would trap position:fixed descendants */
  -webkit-backdrop-filter:none;
  padding:5px 8px 8px;
}
.espa-hotel-detail--premium .espa-hotel-detail__sticky-dock.is-stuck .espa-hotel-detail__nav {
  margin-bottom:5px!important;
  min-height:48px;
}
.espa-hotel-detail--premium .espa-hotel-detail__sticky-dock.is-stuck .espa-hotel-detail__live-search {
  padding:7px 10px 9px;
  margin:0!important;
  border:1px solid #dbe5ee;
  box-shadow:none;
}
.espa-hotel-detail--premium .espa-hotel-detail__sticky-dock.is-stuck .espa-hotel-search__form {
  min-height:62px;
  box-shadow:none;
}
.espa-hotel-detail--premium .espa-hotel-detail__nav-scroll a {
  display:inline-flex;align-items:center;gap:7px;
}
.espa-hotel-detail--premium .espa-hotel-detail__nav-scroll iconify-icon {
  font-size:16px;flex:none;
}
/* The right booking summary remains visible beside long lists of room rates. */
@media(min-width:992px){
  .espa-hotel-detail--premium .espa-hotel-detail__layout {align-items:stretch;}
  .espa-hotel-detail--premium .espa-hotel-detail__sidebar {align-self:stretch;min-width:0;}
  .espa-hotel-detail--premium .espa-hotel-detail__sidebar-sticky {
    position:sticky!important;
    top:calc(var(--hd-dock-height, 155px) + 12px)!important;
    max-height:calc(100dvh - var(--hd-dock-height, 155px) - 24px);
    overflow-y:auto;
    overflow-x:hidden;
    scrollbar-width:thin;
    scrollbar-color:#c8d6e4 transparent;
    overscroll-behavior:contain;
    align-self:start;
    z-index:5;
  }
}
/* Only on desktop: floating calendar can appear above OR below the search form. */
@media(min-width:768px){
  .espa-hotel-detail--premium .espa-hotel-search__calendar:not([hidden]) {
    position:fixed!important;
    right:auto!important;
    transform:none!important;
    max-height:calc(100dvh - 24px);
    overflow-y:auto;
    overscroll-behavior:contain;
    z-index:1105!important;
    scrollbar-width:thin;
  }
  .espa-hotel-detail--premium .espa-hotel-search__calendar:not([hidden]) .espa-hotel-search__calendar-bottom {
    position:sticky;bottom:0;background:#fff;padding-bottom:6px;
  }
  /* No separate Apply step on the detail page: selecting exit commits both dates. */
  .espa-hotel-detail--premium .espa-hotel-search__calendar [data-hotel-apply-calendar] {display:none;}
}
/* The common mobile full-screen portal retains its existing positioning. */
.espa-hotel-detail__room-type-information {
  align-self:start!important;
  padding-top:3px!important;
}
.espa-hotel-detail__room-type-information h4 {margin-bottom:8px;}
.espa-hotel-detail__room-features {margin-top:14px;}
.espa-hotel-detail__room-feature-title {
  display:flex;align-items:center;gap:7px;
  font-size:11px;font-weight:800;color:#23445e;
}
.espa-hotel-detail__room-feature-title iconify-icon {font-size:15px;color:var(--hd-primary);}
.espa-hotel-detail__room-features > div {
  display:flex;flex-wrap:wrap;gap:7px;margin-top:8px;
}
.espa-hotel-detail__room-features > div > span {
  display:inline-flex;align-items:center;gap:5px;
  padding:6px 9px;border:1px solid #e2ebf2;border-radius:9px;
  font-size:10px;line-height:1.35;color:#36556c;background:#f8fbfe;
}
.espa-hotel-detail__room-features > div > span iconify-icon {font-size:14px;color:#198b69;}
.espa-hotel-detail__room-description-trigger {
  display:inline-flex;align-items:center;gap:6px;
  margin-top:12px;padding:8px 11px;
  border:1px solid #d9e7f2;border-radius:9px;
  background:#fff;color:#255d85;
  cursor:pointer;font-size:11px;font-weight:800;
}
.espa-hotel-detail__room-description-trigger:hover {
  background:#f2f8fc;border-color:#b8d4e5;
}
.espa-hotel-detail__room-description-trigger iconify-icon {font-size:15px;}
.espa-hotel-detail__room-text-modal .modal-content {
  border:0;border-radius:20px;overflow:hidden;
  box-shadow:0 24px 80px rgba(10,33,53,.18);
}
.espa-hotel-detail__room-text-modal .modal-header {padding:22px 24px;border-bottom:1px solid #e6ecf2;}
.espa-hotel-detail__room-text-modal .modal-header h2 {margin:6px 0 0;font-size:21px;color:#153149;font-weight:850;}
.espa-hotel-detail__room-text-eyebrow {font-size:10px;color:var(--hd-primary,#ef2633);font-weight:800;letter-spacing:.1em;}
.espa-hotel-detail__room-text-modal .modal-body {padding:24px;}
.espa-hotel-detail__room-text-description,
.espa-hotel-detail__room-text-extra {white-space:pre-wrap;overflow-wrap:anywhere;color:#3e5970;font-size:14px;line-height:1.8;}
.espa-hotel-detail__room-text-extra:not([hidden]) {margin-top:17px;padding-top:17px;border-top:1px solid #e8edf4;}
@media(max-width:767.98px){
  .espa-hotel-detail--premium .espa-hotel-detail__nav-scroll a {gap:5px;font-size:11px;padding:9px 10px;}
  .espa-hotel-detail--premium .espa-hotel-detail__nav-scroll a iconify-icon {font-size:15px;}
  .espa-hotel-detail--premium .espa-hotel-detail__sticky-dock.is-stuck {padding:4px 6px 6px;}
  .espa-hotel-detail--premium .espa-hotel-detail__sticky-dock.is-stuck .espa-hotel-detail__live-search {padding:6px;}
  .espa-hotel-detail__room-text-modal .modal-dialog {margin:0;max-width:none;min-height:100dvh;}
  .espa-hotel-detail__room-text-modal .modal-content {min-height:100dvh;border-radius:0;}
  .espa-hotel-detail__room-text-modal .modal-body {padding:20px;}
  /* Automatic selection on mobile too; the mobile portal is managed by the common JS. */
  .espa-hotel-detail--premium .espa-hotel-search__calendar [data-hotel-apply-calendar] {display:none;}
}

/* =============================================================
   V14 — mobile header alignment & ETS-style price/discount dock
   ============================================================= */
@media (max-width: 991.98px) {
  .espa-hotel-detail--premium .espa-hotel-detail__header {
    flex-direction: column;
    align-items: stretch !important;
    justify-content: flex-start;
    max-width: 100%;
    min-width: 0;
  }
  .espa-hotel-detail--premium .espa-hotel-detail__heading {
    display: block;
    flex: 1 1 auto;
    width: 100%;
    min-width: 0;
    text-align: left;
  }
  .espa-hotel-detail--premium .espa-hotel-detail__heading h1 {
    width: 100%;
    max-width: 100%;
    text-align: left;
    overflow-wrap: break-word;
    hyphens: auto;
  }
  .espa-hotel-detail--premium .espa-hotel-detail__eyebrow {
    flex-wrap: wrap;
    justify-content: flex-start;
    min-width: 0;
  }
  .espa-hotel-detail--premium .espa-hotel-detail__location {
    justify-content: flex-start;
  }
  .espa-hotel-detail--premium .espa-hotel-detail__header-actions {
    display: flex;
    align-self: stretch;
    width: 100%;
    max-width: 100%;
    min-width: 0;
  }
  .espa-hotel-detail--premium .espa-hotel-detail__header-actions > * {
    min-width: 0;
  }
}

/* A fixed footer needs room for the cookie revisit launcher at the right edge.
   The responsive right gutter prevents the launcher from obscuring the CTA,
   even when a third-party consent widget injects its own very high z-index. */
@media (max-width: 991.98px) {
  .espa-hotel-detail--premium .espa-hotel-detail__mobile-bar {
    --hd-mobile-safe-right: 48px;
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    width: 100%;
    max-width: 100vw;
    box-sizing: border-box;
    display: grid;
    grid-template-columns: minmax(0,1fr) minmax(108px,max-content);
    align-items: center;
    gap: 8px;
    padding: 9px max(var(--hd-mobile-safe-right),env(safe-area-inset-right,0px))
      calc(9px + env(safe-area-inset-bottom,0px)) 12px;
    min-height: 75px;
    z-index: 1040;
    background: rgba(255,255,255,.98);
    border-top: 1px solid #dfe7ef;
    box-shadow: 0 -9px 32px rgba(16,40,64,.13);
    -webkit-backdrop-filter: blur(12px);
    backdrop-filter: blur(12px);
  }
  .espa-hotel-detail--premium .espa-hotel-detail__mobile-price {
    min-width: 0;
    overflow: hidden;
    line-height: 1.25;
  }
  .espa-hotel-detail--premium .espa-hotel-detail__mobile-price > span {
    display: block;
    font-size: 9px;
    font-weight: 600;
    color: #6b7d91;
    line-height: 1.3;
  }
  .espa-hotel-detail--premium .espa-hotel-detail__mobile-price > del {
    display: block;
    width: fit-content;
    color: #94a3b4;
    font-size: 10px;
    line-height: 1.3;
    text-decoration-thickness: 1px;
    text-decoration-color: #aab6c2;
  }
  .espa-hotel-detail--premium .espa-hotel-detail__mobile-price > del[hidden] { display: none!important; }
  .espa-hotel-detail--premium .espa-hotel-detail__mobile-price > strong {
    display: block;
    margin: 1px 0 0;
    font-weight: 850;
    font-size: clamp(14px, 4vw, 18px);
    line-height: 1.2;
    color: var(--hd-ink);
    letter-spacing: -.035em;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
  }
  .espa-hotel-detail--premium .espa-hotel-detail__mobile-bar > a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    min-width: 0;
    max-width: 100%;
    min-height: 44px;
    height: auto;
    padding: 9px 11px;
    line-height: 1.2;
    text-align: center;
    white-space: normal;
    border-radius: 12px;
    box-sizing: border-box;
    font-size: 10px;
    font-weight: 800;
    box-shadow: 0 6px 15px rgba(239,38,51,.17);
  }
  .espa-hotel-detail--premium .espa-hotel-detail__mobile-bar > a iconify-icon {
    flex: 0 0 auto;
    font-size: 14px;
  }
  .espa-hotel-detail__mobile-breakdown-toggle {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    max-width: 100%;
    padding: 0;
    margin: 0 0 3px;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: #2275d9;
    font-size: 9px;
    line-height: 1.3;
    font-weight: 750;
    text-align: left;
    cursor: pointer;
  }
  .espa-hotel-detail__mobile-breakdown-toggle[hidden] { display:none!important; }
  .espa-hotel-detail__mobile-breakdown-toggle iconify-icon {font-size: 12px;flex:none;}
  .espa-hotel-detail__mobile-breakdown {
    position: fixed;
    bottom: calc(var(--hd-mobile-bar-height, 85px) + 1px);
    left: 0;
    right: 0;
    z-index: 1039;
    box-sizing: border-box;
    max-height: min(52dvh, 400px);
    overflow-y: auto;
    background: #fff;
    border-top: 1px solid #dce5ef;
    border-radius: 18px 18px 0 0;
    box-shadow: 0 -12px 34px rgba(15,35,55,.18);
    padding: 14px 16px;
    overscroll-behavior: contain;
  }
  .espa-hotel-detail__mobile-breakdown[hidden] {display:none!important;}
  .espa-hotel-detail__mobile-breakdown-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 10px;
    font-size: 14px;
    color: #112d47;
  }
  .espa-hotel-detail__mobile-breakdown-head button {
    display: grid;
    place-items: center;
    border: 1px solid #e5edf5;
    background: #f8fafc;
    color: #63788f;
    border-radius: 50%;
    width: 30px;
    height: 30px;
  }
  .espa-hotel-detail__mobile-breakdown-room,
  .espa-hotel-detail__mobile-breakdown-total {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 10px;
    padding: 11px;
    border-radius: 12px;
    background: #f4f7fb;
    margin-bottom: 8px;
  }
  .espa-hotel-detail__mobile-breakdown-room > div { display: grid; gap: 4px; min-width:0; }
  .espa-hotel-detail__mobile-breakdown-room strong {color: #132e46;font-size: 12px;}
  .espa-hotel-detail__mobile-breakdown-room small {color: #647b92;font-size: 10px;line-height:1.4;}
  .espa-hotel-detail__mobile-room-number {color:#2563b7;font-size:10px;font-weight:800;}
  .espa-hotel-detail__mobile-breakdown-room > span,
  .espa-hotel-detail__mobile-breakdown-total > span:last-child { display: grid; justify-items: end; gap: 4px; text-align:right; flex:0 0 auto; }
  .espa-hotel-detail__mobile-breakdown-room del,
  .espa-hotel-detail__mobile-breakdown-total del {font-size: 10px;color:#91a1b4;}
  .espa-hotel-detail__mobile-breakdown-room b {font-size: 12px;color:#142f47;}
  .espa-hotel-detail__mobile-breakdown-total {background:#eaf3fc; font-size:11px;font-weight:800;color:#16344d; margin-bottom:0;}
  .espa-hotel-detail__mobile-breakdown-total strong {font-size:15px;}
}
@media (max-width: 350px) {
  .espa-hotel-detail--premium .espa-hotel-detail__mobile-bar {
    grid-template-columns: minmax(0,1fr) minmax(102px,max-content);
    gap: 5px;
    padding-left: 9px;
  }
  .espa-hotel-detail--premium .espa-hotel-detail__mobile-bar > a {
    font-size: 9px;
    padding: 8px 7px;
  }
  .espa-hotel-detail--premium .espa-hotel-detail__mobile-price > strong {font-size: 13px;}
}
/* Known floating cookie-consent revisit widgets sit immediately above the
   booking bar rather than covering the room-review action. Full consent dialogs
   are intentionally untouched. */
@media (max-width: 991.98px) {
  body:has(.espa-hotel-detail--premium) .cky-btn-revisit-wrapper,
  body:has(.espa-hotel-detail--premium) #ot-sdk-btn-floating,
  body:has(.espa-hotel-detail--premium) .cookie-revisit-button,
  body:has(.espa-hotel-detail--premium) .cc-revoke {
    bottom: calc(var(--hd-mobile-bar-height,85px) + 10px)!important;
  }
}

/* Checkout transition inside selected-room summary modal. */
.espa-hotel-detail__review-continue{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;border:0;border-radius:12px;padding:10px 18px;background:var(--espa-primary,#f12734);color:#fff;font-size:12px;font-weight:800;box-shadow:0 8px 22px rgba(225,32,46,.18)}
.espa-hotel-detail__review-continue:disabled{opacity:.7;cursor:wait}
.espa-hotel-detail__review-error:not([hidden]){flex-basis:100%;color:#b32632;background:#fff0f0;border-radius:9px;font-size:12px;padding:10px}
@media(max-width:575.98px){.espa-hotel-detail__review-continue{width:100%}}


/* V15.2 — stable compact dock. Preserve document layout while the dock floats. */
.espa-hotel-detail--premium .espa-hotel-detail__dock-flow-space {
    display: none;
    height: 0;
    margin: 0;
    padding: 0;
    pointer-events: none;
    overflow-anchor: none;
}
.espa-hotel-detail--premium .espa-hotel-detail__dock-flow-space.is-active {
    display: block;
}
.espa-hotel-detail--premium .espa-hotel-detail__sticky-dock.is-fixed {
    position: fixed !important;
    top: 0 !important;
    right: auto !important;
    bottom: auto !important;
    margin: 0 !important;
    max-width: none;
    transform: none;
    overflow-anchor: none;
}
